Đề bài: phân tích và thiết kế hệ thống tạo khảo sát online
UC Diagram
Danh sách Actor:
Thành viên
Người dùng
Quản trị
Danh sách Usecase
Tạo khảo sát
Quản lý khảo sát
Tạo câu hỏi
Quản lý câu hỏi
Nạp phí thành viên
Xem kết quả khảo sát
Xem biểu đồ
Tìm kiếm khảo sát
Quản trị quản lý khảo sát
Quản trị quản lý thành viên
Sơ đồ Usecase:
85 trang |
Chia sẻ: huongthu9 | Lượt xem: 632 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng môn Phân tích thiết kế hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐỐI TƯỢNG
TRANG II > OOAD
MỤC LỤC
MỤC LỤC ......................................................................................................................................................... ii
HƯỚNG DẪN .................................................................................................................................................. iv
BÀI 1: QUY TRÌNH RUP ..................................................................................................... 1
1.1 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM ...................................................................................................... 1
1.2 QUY TRÌNH RUP ........................................................................................................................................ 3
1.2.1 Giới thiệu ............................................................................................................................................. 3
1.2.2 Quy trình RUP ..................................................................................................................................... 5
1.2.3 Phát triển theo mô hình lặp .................................................................................................................. 6
1.2.4 Một số workflow chính trong RUP......................................................................................................... 8
BÀI TẬP ĐỀ NGHỊ.......................................................................................................................................... 11
BÀI 2: TỔNG QUAN UML ................................................................................................. 12
2.1 KHÁI NIỆM ............................................................................................................................................... 12
2.2 CÁC BIỂU ĐỒ CỦA UML ......................................................................................................................... 14
2.2.1 Biểu đồ Usecase ................................................................................................................................ 14
2.2.2 Biểu đồ hoạt động – Activity diagram ................................................................................................. 17
2.2.3 Biểu đồ lớp – Class diagram .............................................................................................................. 21
2.2.4 Biểu đồ tuần tự - Sequence diagram .................................................................................................. 24
2.2.5 Biểu đồ giao tiếp – Communication diagram ....................................................................................... 27
2.2.6 Biểu đồ trạng thái – State diagram ..................................................................................................... 28
2.2.7 Biểu đồ gói – Package diagram .......................................................................................................... 29
2.2.8 Biểu đồ thành phần – Component diagram ......................................................................................... 30
2.2.9 Biểu đồ triển khai – Deployment diagram ........................................................................................... 30
BÀI TẬP ĐỀ NGHỊ.......................................................................................................................................... 32
BÀI 3: LẤY YÊU CẦU ........................................................................................................ 34
3.1 KHÁI NIỆM ............................................................................................................................................... 34
3.2 KỸ THUẬT LẤY YÊU CẦU ....................................................................................................................... 35
MỤC LỤC > TRANG III
3.2.1 Phỏng vấn ......................................................................................................................................... 36
3.2.2 Họp nhóm .......................................................................................................................................... 36
3.2.3 Quan sát ............................................................................................................................................ 37
3.2.4 Công việc tạm thời ............................................................................................................................. 37
3.2.5 Điều tra qua câu hỏi ........................................................................................................................... 37
3.2.6 Xem xét tài liệu .................................................................................................................................. 38
3.2.7 Xem xét phần mềm ............................................................................................................................ 38
3.3 KẾT QUẢ CỦA GIAI ĐOẠN LẤY YÊU CẦU ............................................................................................. 38
3.3.1 Kết quả .............................................................................................................................................. 38
3.3.2 Đặc tả UC .......................................................................................................................................... 38
BÀI TẬP ĐỀ NGHỊ.......................................................................................................................................... 41
BÀI 4: PHÂN TÍCH & THIẾT KẾ ..................................................................................... 42
4.1 GIỚI THIỆU .............................................................................................................................................. 42
4.2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG Ở TRẠNG THÁI TĨNH ....................................................................... 43
4.3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG Ở TRẠNG THÁI ĐỘNG .................................................................... 48
BÀI TẬP ĐỀ NGHỊ.......................................................................................................................................... 50
TÀI LIỆU THAM KHẢO ................................................................................................................................. 51
PHỤ LỤC – ĐỒ ÁN THAM KHẢO .................................................................................................................. 52
TRANG IV > OOAD
HƯỚNG DẪN
MÔ TẢ MÔN HỌC
Môn học Phân Tích Thiết Kế Hướng Đối Tượng Cung cấp kiến thức và kỹ năng
phân tích thiết kế phần mềm theo phương pháp hướng đối tượng, cung cấp
kiến thức về UML và case tool để thiết kế hệ thống.
Mục tiêu của môn học là sử dụng ngôn ngữ UML và các case tool để lấy yêu
cầu, phân tích và thiết kế, viết tài liệu cho một phần mềm thực tiễn.
Sau khi kết thúc môn học, người học phải có khả năng lấy yêu cầu, phân
tích, thiết kế và viết tài liệu cho một phần mềm.
NỘI DUNG MÔN HỌC
Bài 1: Giới thiệu quy trình phát triển phần mềm RUP
Tổng quan
Giới thiệu quy trình RUP
Phát triển phần mềm theo quy trình lặp
Bài 2: Tổng quan về ngôn ngữ UML
Khái niệm
Các biểu đồ của UML
Bài 3: Lấy yêu cầu
Khái niệm
Kỹ thuật lấy yêu cầu
Kết quả giai đoạn lấy yêu cầu
Bài 4: Phân tích & thiết kế
HƯỚNG DẪN > TRANG V
Tổng quan
Phân tích và thiết kế ở trạng thái tĩnh
Phân tích và thiết kế ở trạng thái động
KIẾN THỨC TIỀN ĐỀ
Cấu trúc dữ liệu, Cơ sở dữ liệu, Lập trình trong window (Visual C++), Lập
trình hướng đối tượng.
YÊU CẦU MÔN HỌC
Người học phải dự học đầy đủ các buổi lên lớp và tham gia thực hành đầy
đủ. Người học phải có máy tính và sử dụng các case tool như: Astah, Star
UML, Rational Rose.
CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC
Để học tốt môn này, người học cần phải tìm hiểu thông tin, kiến thức về
các lĩnh vực mà phần mềm thực hiện hướng đến.
PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC
Môn học được đánh giá gồm:
Điểm quá trình: 30%. Hình thức và nội dung do GV quyết định, phù hợp
với quy chế đào tạo và tình hình thực tế tại nơi tổ chức học tập.
Điểm báo cáo đồ án: 70%. Hình thức thi vấn đáp. Sinh viên làm việc
nhóm và trả lời các câu hỏi liên quan về đề tài của mình. Hình thức phân
chia công việc: phân chia theo Use Case. Một nhóm tối đa 3 sinh viên.
BÀI 1: QUY TRÌNH RUP > TRANG 1
BÀI 1: QUY TRÌNH RUP
1.1 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM
Quy trình phát triển phần mềm: gồm một tập hợp các hoạt động được tổ
chức mà mục đích của nó là xây dựng và phát triển phần mềm:
Quy trình xác định ai làm gì, khi nào và bằng cách nào để đạt được một
mục tiêu nào đó
Quy trình phần mềm xác định một bộ khung và tiêu chuẩn để triển khai
công nghệ phần mềm
Khi xây dựng và phát triển một phần mềm, thường thì cần phải làm việc
trong đội, nhóm:
Ngôn ngữ mô hình hóa hợp nhất (Unified Modeling Language - UML):
Là ngôn ngữ dùng để
Xác định (Specifying)
Trực quan hóa (Visualizing)
Xây dựng (Constructing)
Lập tài liệu (Documenting)
Cho các kết quả (artifacts) của quá trình thực hiện phần mềm.
Lịch sử của UML:
TRANG 2 > OOAD
Những người tham gia tạo ra ngôn ngữ UML:
BÀI 1: QUY TRÌNH RUP > TRANG 3
1.2 QUY TRÌNH RUP
1.2.1 GIỚI THIỆU
Quy trình phát triển phần mềm hợp nhất Rational (Rational Unified Process
hay RUP) là một quy trình phát triển phần mềm. Nó cung cấp các phương
pháp, các nguyên tắc phân công nhiệm vụ và trách nhiệm trong các tổ chức
phát triển phần mềm. Nó là phương pháp dùng để tạo ra một sản phẩm phần
mềm có chất lượng cao đảm bảo các dự thảo về thời gian và và kinh phí với
khách hàng.
Quy trình này được tổ chức làm bốn giai đoạn:
Từ phương diện quản lý, vòng đời của một phần mềm theo RUP được chia
theo thời gian qua bốn giai đoạn nối tiếp nhau, mỗi giai đoạn có một mốc
quan trọng, mỗi giai đoạn thực chất là khoảng giữa của 2 điểm mốc. Cuối
mỗi giai đoạn, bộ phận kiểm định sẽ thực hiện thẩm định các đối tượng của
TRANG 4 > OOAD
giai đoạn này. Nếu việc kiểm tra thích hợp thì dự án sẽ được chuyển sang
giai đoạn tiếp theo.
Giai đoạn Inception: Kết quả của giai đoạn này là đạt được sự nhất trí giữa
tất cả những người đóng vai trò chủ chốt về các mục tiêu của dự án. Trong
giai đoạn này phải chỉ ra được các mục tiêu quan trọng cần cố gắng đạt
được, trong đó rủi ro của các yêu cầu, các chức năng nghiệp vụ cũng phải
được chỉ ra trước khi dự án bắt đầu. Trong giai đoạn này cũng đề cập đến
việc cải tiến từ các hệ thống đã có, tuy nhiên vẫn chỉ tóm tắt, giai đoạn này
chú trọng đến cả 2 điều quan trọng của dự án: đáng để làm hay không và
khả năng thực hiện.
Mục tiêu chính của giai đoạn Inception
Thiết lập phạm vi phần mềm và các điều kiện biên của dự án, bao gồm:
nhìn nhận khả năng thực hiện, các điều kiện thỏa thuận và những gì
sản phẩm mong đợi và không mong đợi
Nhận định đúng đắn về các Use case của hệ thống, kịch bản của các
hành vi trong hệ thống sẽ đóng vai trò định hướng quan trọng cho kết
quả của phần thiết kế
Trình bày, minh họa một số kiến trúc ứng cử viên cho một vài kịch bản
chính
Dự trù tất cả chi phí, lập kế hoạch cho toàn bộ dự án
Dự trù các rủi ro tiềm ẩn
Chuẩn bị môi trường hỗ trợ cho dự án
Giai đoạn Elaboration: Kết quả của giai đoạn này là tạo ra một baseline
cho kiến trúc của hệ thống tạo cơ sở cho quá trình thiết kế và thực thi trong
giai đoạn construction. Kiến trúc này mở rộng việc phân tích các yêu cầu
quan trọng của hệ thống (các yêu cầu có sự ảnh hưởng lớn đến hệ thống) và
BÀI 1: QUY TRÌNH RUP > TRANG 5
đánh giá các rủi ro. Sự ổn định của kiến trúc được đánh gia qua nhiều
nguyên bản của kiến trúc.
Giai đoạn Construction
Đây là giai đoạn xây dựng sản phầm và phát triển các phiên bản, kiến
trúc, các kế hoạch cho đến khi đạt được phiên bản hoàn thiện nhất – có
thể chuyển giao cho người dùng
Giai đoạn này sẽ được kết luận dựa vào các mốc là khả năng thực hiện
các chức năng yêu cầu ban đầu đã xác định
Giai đoạn Transition
Chuyển giao sản phẩm cho những người sử dụng nó, bao gồm: sản
xuất, phân phát, huấn luyện, hỗ trợ và bảo trì cho đến khi người sử
dụng hài lòng.
Giai đoạn này được kết luận thông qua mốc các phiên bản của sản
phẩm – kết thúc từng chu trình lặp của giai đoạn này
Thời gian dành cho các giai đoạn này được ước tính như sau:
1.2.2 QUY TRÌNH RUP
Quy trình RUP bao gồm 4 phases và 9 workflow, được thể hiện như sau:
TRANG 6 > OOAD
Hàng ngang của biểu đồ mô tả qui trình về mặt thời gian và vòng
đời của một giai đoạn trong qui trình (khởi tạo, chi tiết hóa, xây dựng
và chuyển giao)
Hàng dọc của biểu đồ mô tả trạng thái tĩnh của qui trình, các giai
đoạn của qui trình
1.2.3 PHÁT TRIỂN THEO MÔ HÌNH LẶP
Một dự án sử dụng quy trình phát triển lặp lại có một vòng đời chứa các quá
trình lặp lại. Một quá trình lặp là sự kết hợp chặt chẽ một chuỗi các hoạt
động: mô hình nghiệp vụ, tiếp nhận yêu cầu, phân tích và thiết kế, thực thi,
kiểm lỗi và triển khai với mức độ lặp không giống nhau, tùy theo vị trí cụ thể
của vòng phát triển.
Quản lý, tiếp nhận yêu cầu và thiết kế là các hoạt động trọng điểm trong giai
đoạn khởi tạo và phân tích chi tiết dự án; các hoạt động thiết kế, thực thi và
kiểm lỗi đóng vai trò chủ chốt trong giai đoạn xây dựng; và các hoạt động
kiểm lỗi, triển khai đóng vai trò chủ đạo trong giai đoạn chuyển giao dự án.
BÀI 1: QUY TRÌNH RUP > TRANG 7
Một thiết kế ban đầu chỉ là một sản phẩm chưa hoàn thiện, dựa trên các yêu
cầu căn bản, về sau quá trình thiết kế càng phát hiện ra thêm nhiều nhược
điểm đó là kết quả trả giá từ việc chạy thử và trong một số trường hợp dự án
phải hủy bỏ.
Tất cả các dự án đều có một tập các rủi ro phức tạp. Lúc ban đầu bạn có thể
xác định để ngăn ngừa một vài rủi ro theo đúng như kế hoạch của mình. Tuy
nhiên có rất nhiều rủi ro mà bạn không thể phát hiện ra một các đơn giản,
trơn tru cho đến khi bạn cố gắng tích hợp hệ thống. Bạn sẽ không bao giờ có
thể dự đoán trước được tất cả các rủi ro khi không quan tâm đến kinh
nghiệm của nhóm phát triển.
Lợi ích của phát triển lặp lại
TRANG 8 > OOAD
Hạn chế được nhiều rủi ro do các phần tử được tích hợp, xây dựng dần
dần
Cho phép thay đổi các yêu cầu, các phương thức cho thích hợp hơn
Các tổ chức có thể nắm được phương pháp này và phát triển cho qui
trình của họ
Tăng khả năng tái sử dụng
1.2.4 MỘT SỐ WORKFLOW CHÍNH TRONG RUP
Mô hình hóa nghiệp vụ
Lấy yêu cầu:
BÀI 1: QUY TRÌNH RUP > TRANG 9
Phân tích thiết kế:
TRANG 10 > OOAD
Hiện thực
Kiểm thử:
BÀI 1: QUY TRÌNH RUP > TRANG 11
Quản trị dự án:
BÀI TẬP ĐỀ NGHỊ
Câu 1: Đọc và nghiên cứu quy trình phát triển phần mềm XP (eXtreme
Programming)
TRANG 12| OOAD
BÀI 2: TỔNG QUAN UML
2.1 KHÁI NIỆM
Ngôn ngữ mô hình hóa hợp nhất (Unified Modeling Language - UML):
Là ngôn ngữ dùng để
Xác định (Specifying)
Trực quan hóa (Visualizing)
Xây dựng (Constructing)
Lập tài liệu (Documenting)
Cho các kết quả (artifacts) của quá trình thực hiện phần mềm.
Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông tin
cả về cấu trúc cũng như hoạt động. Cách tiếp cận theo mô hình của UML giúp
ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng
như những người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về hệ
thống thông tin dự định xây dựng. Cách nhìn bao quát này giúp nắm bắt trọn
vẹn các yêu cầu của người dùng; phục vụ từ giai đoạn phân tích đến việc
thiết kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin. Các
mô hình hướng đối tượng được lập cũng là cơ sở cho việc ứng dụng các
chương trình tự động sinh mã trong các ngôn ngữ lập trình hướng đối tượng,
chẳng hạn như ngôn ngữ C++, Java, ... Phương pháp mô hình này rất hữu
dụng trong lập trình hướng đối tượng. Các mô hình được sử dụng bao gồm
Mô hình đối tượng (mô hình tĩnh) và Mô hình động.
UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô hình
(model elements). Tập hợp các phần tử mô hình tạo thành các Sơ đồ UML
(UML diagrams). Có các loại sơ đồ UML chủ yếu sau:
BÀI 2: TỔNG QUAN UML > TRANG 13
Sơ đồ tình huống sử dụng (Use Cases Diagram)
Sơ đồ lớp (Class Diagram)
Sơ đồ đối tượng (Object Diagram)
Sơ đồ trình tự (Sequence Diagram)
Sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure
Diagram)
Sơ đồ trạng thái (State Machine Diagram)
Sơ đồ thành phần (Component Diagram)
Sơ đồ hoạt động (Activity Diagram)
Sơ đồ triển khai (Deployment Diagram)
Sơ đồ gói (Package Diagram)
Sơ đồ liên lạc (Communication Diagram)
Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0)
Sơ đồ phối hợp thời gian (Timing Diagram - UML 2.0)
UML ra đời do công của James Rumbaugh, Grady Booch và Ivar Jacobson.
TRANG 14| OOAD
2.2 CÁC BIỂU ĐỒ CỦA UML
2.2.1 BIỂU ĐỒ USECASE
Một UC minh họa một đơn vị chức năng được hệ thống cung cấp. Mục đích
chính của việc sử dụng sơ đồ UC là giúp các nhóm phát triển hình dung ra
các yêu cầu chức năng của một hệ thống, bao gồm mối quan hệ của "các
vai" (con người, người sẽ tương tác với hệ thống) với các quy trình cần thiết,
cũng như các mối quan hệ trong số các UC khác nhau.
Actor
- Là người sử dụng hệ thống. Người sử dụng hệ thống có thể
là người, máy, hệ thống khác hoặc một hệ thống con trong mô
hình. Bất cứ tương tác nào từ bên ngoài hay bên trong hệ thống
đều được gọi là Actor.
Use Case
- Use case là một chức năng của hệ thống
- Use case là một kỹ thuật thu thập các yêu cầu chức
năng của hệ thống
Use case hoạt động dựa trên việc mô tả các tương tác đặc trưng giữa
người sử dụng hệ thống và chính hệ thống (scenario)
System Boundary
Là ranh giới giữa hệ thống và bên
ngoài
Actor
UseCase
U seC ase
S y ste m
B ounda ry
BÀI 2: TỔNG QUAN UML > TRANG 15
Use: Một actor hoặc usecase yêu cầu một
actor hoặc usecase khác thực hiện một vài tương
tác. Quan hệ use là một loại nhỏ hơn của quan hệ
phục thuộc.
Association: Thể hiện quan hệ giữa
các thành phần trong mô hình.
Generalization: Thể hiện tính kế
thừa, tính sử dụng lại của các actor
Actor B thừa kế thuộc tính và vai trò
của actor A
Inclusion: Thể hiện UseCase2 bao
gồm các chức năng của UseCase1
Extension: UseCase2 mở rộng tác
động, hành vi của Usecase1
Realization: UseCase2 thực hiện
hoặc hiện thực hóa UseCase1
Actor
UseCase
>
A c to r
U s e C a se
A c t o r AA c t o r B
UseCase1UseCase2
>
UseCase1UseCase2
>
UseCase1UseCase2
TRANG 16| OOAD
Dependency: UseCase2 phụ thuộc
vào UseCase1.
UseCase Diagram:
Một biểu đồ UseCase thể hiện các tương tác giữa các actor và các usecase.
Nó thể hiện các yêu cầu chức năng của hệ thống, thể hiện sự tương tác giữa
các tác nhân bên ngoài và bên trong hệ thống với hệ thống.
Bài tập: Đọc sơ đồ UC dưới đây:
UseCase1UseCase2
BÀI 2: TỔNG QUAN UML > TRANG 17
2.2.2 BIỂU ĐỒ HOẠT ĐỘNG – ACTIVITY DIAGRAM
Sơ đồ hoạt động hiển thị luồng kiểm soát theo thủ tục giữa hai hay nhiều
đối tượng lớp khi xử lý một hoạt động.
Mục đích của sơ đồ hoạt động
Mô tả luồng nghiệp vụ của hệ thống
Mô tả các hoạt động của UC
Mô tả thuật toán
Các ký hiệu
TRANG 18| OOAD
Mô tả nghiệp vụ hệ thống
Mô tả hoạt động của UC
BÀI 2: TỔNG QUAN UML > TRANG 19
Mô tả thuật toán
TRANG 20| OOAD
BÀI 2: TỔNG QUAN UML > TRANG 21
2.2.3 BIỂU ĐỒ LỚP – CLASS DIAGRAM
Object:
Trong thế giới thực chúng ta có thể các đối tượng là bất cứ gì như: Người,
Xe, Cây, Bàn, Nhà.
Trong lập trình thì các đối tượng thực chất là mô hình hóa của các đối
tượng trong thế giới thực dưới mỗi ngôn ngữ lập trình hay mô hình khác
nhau. Chúng ta có thể thấy các đối tượng đã được định nghĩa sẵn trong
một số ngôn ngữ lập trình như Number, TextField, String, File, Windows,
tiến trình, collection.
Đối tượng không phải là kiểu dữ liệu trừu tượng, một đối tượng là một thể
hiện của một class khi thực hiện. Ví dụ xe hơi có biển kiểm soát là “29A-
1736” là một thể hiện của lớp “xe hơi” với thuộc tính là biển kiểm soát.
Một Object bao giờ cũng có thuộc tính và phương thức. Thuộc tính là
những gì mà object có sở hữu, và nó là kiến thức mà chính bản thân object
có được. Phương thức, services là những gì mà object có khả năng làm
được.
Class:
Lớp là sự đại diện cho một tập các đối tượng có chung thuộc tính, phương
thức. Class bao giờ cũng có thuộc tính (dữ liệu) và phương thức (dịch vụ,
hành vi).
TRANG 22| OOAD
Association: Thể hiện mối quan
hệ giữa 2 lớp cũng như giữa 2 đối tượng
(Link ).
Trong UML, sự kết hợp được định
nghĩa là một quan hệ gồm một tập các
mối liên kết, mỗi liên kết là một liên kết
ngữ nghĩa giữa hai đối tượng hay mối
quan hệ giữa hai lớp.
Có 2 kiểu quan hệ kết hợp là một
phía (uni-direction) và hai phía (bi-direction)
Aggregation: là một trường hợp đặc biệt của
quan hệ kết hợp được dùng để biểu diễn “Tổng thể -
Thành phần”, điều đó có nghĩa là một lớp sẽ bao gồm một
hoặc nhiều lớp khác.
Với quan hệ tập hợp thì khi Class1 bao gồm Class2
nhưng không sở hữu. Class2 tồn tại một cách độc lập, khi
Class1 mất đi thì Class2 không bị mất đi.
Quan hệ aggregation được coi như quan hệ có môt(has - a).
Composition: Mạnh hơn aggregation ở chỗ
Class4 bao gồm Class3 nhưng lại sở hữu Class3. Class3
không tồn tại bên ngoài Class4 và khi Class4 mất đị thì
Class3 cũng mất đi.
Với quan hệ tập hợp thì khi Class tạo thành mất
đi(Class1) thì Class được tạo thành không bị mất
đi(Class2).
Quan hệ aggregation được coi như quan hệ có
môt(has - a).
Class1 Class2-End1
*
-End2
*
Class4 Class3-End1
*
-End2
*
Class5 Class6-End1
*
-End2
*
C lass 1
C lass 2
-End 11
-End 2*
Class4
Class3
-End11
-End2*
BÀI 2: TỔNG QUAN UML > TRANG 23
Generalization: Là quan hệ giữa một lớp tổng
quát (Class5) và một lớp đặc biệt (Class6).
Class5 được gọi là lớp cha và Class6 được gọi là
lớp con.
Lớp con được kế thừa toàn bộ thuộc tính và
phương thức mà lớp cha có.
Realization: Class8 hiện thực hóa Class7. Class8
là lớp hiện thực và Class7 là lớp đặc tả.
Class7 là Interface và Class8 là một lớp thực hiện
Interface
Dependency: Là một liên kết giữa 2 lớp trong đó
một lớp độc lập(Class1) và một lớp phụ thuộc(Class2).
Những thay đổi trong lớp độc lập sẽ ảnh hưởng đến lớp
phụ thuộc.
Visibility (Scope): Thể hiện phạm vi truy cập đối với thuộc tính hay
phương thức của Class
Stereotype: có nghĩa là làm gia tăng thêm ý nghĩa của một Class. Nội
dung được đặt trong > , ở đây abc chỉ mang tính chất giải thích
rõ nghĩa thêm mà không có ảnh hưởng gì tới Class.
Cardinality (Multiplicity): Xác định số đối tượng của mỗi lớp có thể
liên kết với nhau. Và nó có thể là: *, 0, 0..*, 0..1, 1, 1.., 1..*, 2..8
Thông thường, người ta phân loại class thành 3 loại đặc biệt sau:
C lass 5
C lass 6
Class 7
Class 8
C lass 1
C lass 2
TRANG 24| OOAD
Boundary Class – Lớp biên: Là một lớp để mô tả việc tương tác giữa
actor với hệ thống, điển hình ta có thể thấy Boundary là giao diện
chương trình. Nó thể hiện các tương tác giữa người dùng với hệ thống ở
mức độ giao diện màn hình.
Entity Class – Lớp dữ liệu: Là một kho (Store) để thu thập thông tin
và knowledge trong hệ thống.
Controller Class – Lớp điều khiển: Là một khuôn lớp để thể hiện các
control, quản lý các thực thể. Control được tổ chức và schedule cho các
tương tác khác nhau với các thành phần khác nhau.
Class diagram
2.2.4 BIỂU ĐỒ TUẦN TỰ - SEQUENCE DIAGRAM
Biểu đồ tuần tự thể hiện sự tương tác giữa hai hay nhiều object để hiện
thực các chứng năng của hệ thống theo thứ tự về thời gian. Nó được sử dụng
để mô tả dòng thông điệp được gửi đi và và các đối tượng phối hợp nhận và
BÀI 2: TỔNG QUAN UML > TRANG 25
Biểu đồ tuần tự thông thường được sử dụng như một mô hình giải thích
cho kịch bản usecase. Biểu đồ tuần tự thể hiện rất rõ đối tượng nào tương
tác với đối tượng nào và thông điệp là gì. Khi đọc một biểu đồ tuần tự ta đọc
từ trái qua phải và từ trên xuống dưới.
Lifelines: Thể hiện sự tồn tại của đối tượng theo thời gian (thời gian
sống của đối tượng). Trong UML nó được biểu diễn bởi được đường nét
rời đứng.
Activations: Thể hiện thời gian, chu trình sống của đối tượng khi thực
hiện một service nào đó (thời gian mà service đó còn tồn tại). Trong
UML nó được biểu diễn bằng một hình chữ nhật hẹp, đứng.
Message: Một object gửi một thông điệp đến
một object khác nhờ thực hiện một service nào đó mà
nó không có. Khi gửi một message có thể có tham số
kèm theo và đó là knowledge (data) của object gửi.
Message (Call, Procedure): gọi một phương
thức cụ thể của object đích.
Self message: Self message là tự gọi một
phương thức ngay tại trong lớp đó.
Return message: Là message kết quả trả về
sau khi đã thực hiện một message gửi
Destroy: Kết thúc chu trình sống của đối tượng
thì ta phải huỷ đối tượng.
Sơ đồ tuần tự
TRANG 26| OOAD
BÀI 2: TỔNG QUAN UML > TRANG 27
2.2.5 BIỂU ĐỒ GIAO TIẾP – COMMUNICATION DIAGRAM
Một biểu đồ giao tiếp miêu tả tương tác giữa các đối tượng cũng giống như
biểu đồ tuần tự, nhưng nó tập trung trước hết vào các sự kiện, tức là tập
trung chủ yếu vào sự tương tác giữa các đối tượng.
Trong một biểu đồ cộng tác, các đối tượng được biểu diễn bằng kí hiệu lớp.
Thứ tự trong biểu đồ cộng tác được thể hiện bằng cách đánh số các thông
điệp. Kỹ thuật đánh số được coi là hơi có phần khó hiểu hơn so với kỹ thuật
mũi tên sử dụng trong biểu đồ tuần tự.
TRANG 28| OOAD
2.2.6 BIỂU ĐỒ TRẠNG THÁI – STATE DIAGRAM
Biểu đồ trạng thái thể hiện vòng đời của các đối tượng, các hệ thống con
(Subsystem) và các hệ thống. Chúng cho ta biết các trạng thái mà một đối
tượng có thể có và các sự kiện (các thông điệp nhận được, các khoảng thời
gian đã qua đi, các lỗi xảy ra, các điều kiện được thỏa mãn) sẽ ảnh hưởng
đến những trạng thái đó như thế nào dọc theo tiến trình thời gian.
Ví dụ biểu đồ trạng thái:
BÀI 2: TỔNG QUAN UML > TRANG 29
2.2.7 BIỂU ĐỒ GÓI – PACKAGE DIAGRAM
Package dùng để nhóm các phần tử trong UML lại với nhau theo một ngữ
nghĩa nhất định, với mục đích làm đơn giản hóa quá trình tổ chức, quản lý
các thành phần trong UML.
TRANG 30| OOAD
2.2.8 BIỂU ĐỒ THÀNH PHẦN – COMPONENT DIAGRAM
Một biểu đồ thành phần cung cấp một khung nhìn vật lý của hệ thống. Mục
đích của nó là hiển thị các phụ thuộc mà phần mềm có trên các thành phần
phần mềm khác (ví dụ, các thư viện phần mềm) trong hệ thống. Sơ đồ này
có thể được hiển thị ở mức rất cao, chỉ với các thành phần có độ chi tiết lớn
hoặc nó có thể được hiển thị tại mức gói.
2.2.9 BIỂU ĐỒ TRIỂN KHAI – DEPLOYMENT DIAGRAM
Biểu đồ triển khai cho thấy cách một hệ thống sẽ được triển khai cụ thể
trong môi trường phần cứng. Mục đích của nó là hiển thị các thành phần khác
BÀI 2: TỔNG QUAN UML > TRANG 31
nhau của hệ thống cụ thể sẽ chạy ở đâu và làm thế nào để chúng giao tiếp
với nhau.
Ví dụ:
TRANG 32| OOAD
BÀI TẬP ĐỀ NGHỊ
Công ty Skydoor muốn phát triển một hệ thống web để quảng bá du lịch
tại Việt Nam.Trang web có tích hợp google map để hiển thị bản đồ của các
địa điểm du lịch. Hệ thống có các yêu cầu như sau:
Đối với mọi người sử dụng web, trang web phải hiển thị được bản đồ của
nước việt nam với các tỉnh thành và địa điểm du lịch cho các tỉnh thành đó.
Người sử dụng có thể đọc các bài mô tả về các địa điểm, tìm kiếm thông tin
về các địa điểm theo tỉnh thành, theo tên địa điểm. Người sử dụng có thể
đăng ký thành viên của trang web.
Đối với thành viên, trang web phải cung cấp các chức năng cho phép thêm
địa điểm mới, viết bài mô tả, hoặc đánh giá cho từng địa điểm. Thành viên có
thể tự thiết kế các tour du lịch cho riêng mình theo các địa điểm hiện có. Sau
đó hệ thống có thể cho phép thành viên in ra chi tiết tour du lịch mà mình tự
thiết kế.
Đối với người quản trị web, người quản lý có quyền quản lý các thành viên,
quản lý các bài đánh giá, các địa điểm du lịch do các thành viên đăng lên.
Người quản lý cũng có quyền chọn để xuất bản các địa điểm do thành viên
thêm vào để chia sẽ với các thành viên khác trong cộng đồng, nếu địa điểm
chưa được người quản trị cho phép xuất bản thì địa điểm này chỉ thấy được
bởi người tạo ra nó. Hệ thống cũng có các thống kê cho biết địa điểm du lịch
nào được nhiều người đi đến nhất.
Hãy phân tích và thiết kế hệ thống trên theo yêu cầu sau:
1. Hãy vẽ Usecase diagram cho hệ thống trên.
2. Hãy vẽ Entity class diagram cho hệ thống trên.
3. Hãy thiết kế giao diện cho usecase thành viên thiết kế tour du lịch cho
mình.
4. Hãy vẽ collaboration diagram cho usecase thành viên viên thiết kế tour
du lịch cho mình.
BÀI 2: TỔNG QUAN UML > TRANG 33
5. Vẽ sơ đồ triển khai của hệ thống này.
TRANG 34| OOAD
BÀI 3: LẤY YÊU CẦU
3.1 KHÁI NIỆM
Một yêu cầu là một đặc trưng của hệ thống, hay là sự mô tả những việc,
mà hệ thống có khả năng thực hiện để hoàn thành mục tiêu của hệ thống.
Xác định yêu cầu: là mô tả các dịch vụ mà hệ thống được mong đợi phải
cung cấp và các ràng buộc mà hệ thống phải tuân thủ khi vận hành. Nó chỉ
có các đặc tả bên ngoài của hệ thống mà không liên quan đến các đặc tính
thiết kế. Nó phải được viết sao cho người ta có thể hiểu được mà không cần
một kiến thức chuyên môn đặc biệt nào. Các yêu cầu của phần mềm được
chia thành hai loại:
Các yêu cầu hệ thống chức năng: các dịch vụ mà hệ thống phải
cung cấp.
Các yêu cầu phi chức năng: các ràng buộc mà hệ thống phải tuân
theo.
BÀI 3: LẤY YÊU CẦU > TRANG 35
Đánh giá các yêu cầu
Đánh giá các yêu cầu phần mềm liên quan với việc cho biết các yêu cầu
thực sự định nghĩa hệ thống đáp ứng đòi hỏi của khách hàng. Nếu việc đánh
giá này không chính xác, các lỗi trong phần yêu cầu sẽ truyền tới thiết kế hệ
thống và triển khai hệ thống. Chi phí sửa chữa lỗi sẽ rất lớn. Sự thay đổi về
yêu cầu ngụ ý rằng việc thiết kế và triển khai cũng phải thay đổi theo. Một số
khía cạnh của yêu cầu cần phải kiểm chứng:
Giá trị: người dùng có thể nghĩ rằng hệ thống cần một số chức năng,
tuy nhiên sau một số phân tích, có thể xác định các chức năng khác
cần được đưa vào. Do hệ thống có nhiều loại người sử dụng nên có
các yêu cầu khác nhau và không thể tránh khỏi sự thỏa hiệp các nhu
cầu đó.
Chắc chắn: mọi yêu cầu không được mâu thuẫn với các yêu cầu
khác
Hoàn chỉnh: định nghĩa cần phải bao gồm mọi chức năng và các
ràng buộc
Hiện thực: không có các yêu cầu đặc biệt đến mức phi hiện thực. Có
thể dự đoán trước các phát triển phần cứng, tuy nhiên phát triển
phần mềm thì khó dự đoán hơn.
Mẫu: là một mô hình chạy được của hệ thống được trình bày với
người sử dụng. Đây là một kỹ thuật đánh giá yêu cầu hiệu quả. Nó
cho phép người dùng thử nghiệm với hệ thống. Việc đánh giá lại yêu
cầu không nên được coi là công việc tiếp theo của tư liệu hóa yêu cầu
sau khi đã hoàn thành. Các xem xét về yêu cầu định kỳ liên quan với
người dùng và kỹ sư phần mềm luôn cần thiết.
3.2 KỸ THUẬT LẤY YÊU CẦU
Khi lấy yêu cầu, thường ta để ý đến các mức yêu cầu:
TRANG 36| OOAD
3.2.1 PHỎNG VẤN
Phỏng vấn là việc tập hợp một số lượng ít người - thường với một hoặc hai
người - cho một thời gian cố định với một mục đích cụ thể. Trong quá trình
phỏng vấn, các câu hỏi có thể được thay đổi. Bạn có thể đánh giá được cảm
nhận của họ, động cơ và thói quen đối với các phòng ban, quá trình quản lý,
ứng dụng hoặc các thực thể khác đáng chú ý. Kiểu phỏng vấn được xác định
bởi kiểu thông tin yêu cầu. Phỏng vấn nên được dẫn dắt sao cho cả hai bên
tham gia đều cảm thấy thoả mãn với kết quả. Được chuẩn bị kỹ đồng nghĩa
là hiểu rõ người đang được phỏng vấn, do đó bạn không làm họ bối rối và
bạn có thể có vài câu hỏi ban đầu được chuẩn bị cho dù không phải là tất cả.
3.2.2 HỌP NHÓM
Họp nhóm là việc tập hợp ba hoặc nhiều hơn một số người cho một thời
hạn nhất định để thảo luận một số chủ đề. Họp nhóm có thể vừa bổ sung và
thay thế phỏng vấn. Nó bổ sung phỏng vấn bằng cách cho phép nhóm kiểm
tra lại các kết quả phỏng vấn cá nhân. Nó có thể thay thế cho phỏng vấn
BÀI 3: LẤY YÊU CẦU > TRANG 37
bằng cách cung cấp một diễn đàn cho các người sử dụng cùng tìm ra các đòi
hỏi và các giải pháp cho ứng dụng.
3.2.3 QUAN SÁT
Quan sát là hoạt động có thể tiến hành thủ công hoặc tự động như sau:
Theo cách thủ công, người quan sát ngồi tại một chỗ và ghi chép các
hoạt động, các bước xử lý công việc. Ghi chép hoặc băng ghi hình
được dùng để phân tích cho các sự kiện, các mô tả động từ chính,
hoặc các hoạt động chỉ rõ lý do, công việc hoặc các thông tin về công
việc.
Theo cách tự động, máy tính sẽ lưu giữ các chương trình thường trú,
lưu lại vết của các chương trình được sử dụng, email và các hoạt
động khác được xử lý bởi máy. Các file nhật ký của máy sẽ được phân
tích để mô tả công việc.
3.2.4 CÔNG VIỆC TẠM THỜI
Với một công việc tạm thời, ta có được nhận thức đầy đủ hơn về các nhiệm
vụ, đồng thời nó cung cấp cho ta kinh nghiệm thực tế. Đầu tiên, ta học các
thuật ngữ và ngữ cảnh sử dụng nó. Thời gian tiến hành thường từ 2 tuần đến
1 tháng đủ dài để bạn có thể quen thuộc với phần lớn các công việc thông
thường và các tình huống ngoại lệ nhưng không được quá dài để trở thành
chuyên gia thực sự đối với công việc
3.2.5 ĐIỀU TRA QUA CÂU HỎI
Điều tra qua câu hỏi là xây dựng các câu hỏi để phỏng vấn trên giấy hoặc
máy tính. Các câu hỏi được dùng để nhận các thông tin từ số lượng lớn người
sử dụng và thường ở dạng khả năng lựa chọn, người trả lời chỉ việc đánh dấu.
Các mục câu hỏi, như là phỏng vấn, có thể là câu hỏi mở hoặc câu hỏi đóng
nhưng không chỉ rõ tên, dẫn đến các câu trả lời trung thực hơn nhiều phỏng
vấn.
TRANG 38| OOAD
3.2.6 XEM XÉT TÀI LIỆU
Khái niệm tài liệu ám chỉ tới các cẩm nang, quy định, các thao tác chuẩn
mà tổ chức cung cấp như là hướng dẫn cho các nhà quản lý và nhân viên.
Các tài liệu thực sự hữu ích cho các kỹ sư phần mềm để học về các lĩnh vực
mà họ chưa từng có kinh nghiệm. Nó có thể hữu ích cho việc xác định các
câu hỏi về quá trình thao tác và sản xuất. Tài liệu đưa ra các thông tin khách
quan.
3.2.7 XEM XÉT PHẦN MỀM
Khi các ứng dụng cũ phải được thay thế các phần mềm mới, việc nghiên
cứu các phần mềm đã tồn tại cung cấp cho chúng ta các thông tin về quá
trình xử lý công việc hiện thời và các mở rộng có ràng buộc bởi thiết kế phần
mềm.
3.3 KẾT QUẢ CỦA GIAI ĐOẠN LẤY YÊU CẦU
3.3.1 KẾT QUẢ
Khi lấy yêu cầu, kết quả của giai đoạn này bao gồm:
Danh sách các actor
Danh sách các use case
Use case diagram
Cho từng Use Case:
- Phát thảo giao diện
- Vẽ sơ đồ hoạt động
- Viết đặc tả Use case
3.3.2 ĐẶC TẢ UC
Đặc tả một Use Case thường được thực hiện trong văn bản. Đây là lời đặc
tả đơn giản và nhất quán về việc các actor và các Use Case (hệ thống) tương
tác với nhau ra sao. Nó tập trung vào ứng xử đối ngoại của hệ thống và
BÀI 3: LẤY YÊU CẦU > TRANG 39
không đề cập tới việc thực hiện nội bộ bên trong hệ thống. Ngôn ngữ và các
thuật ngữ được sử dụng trong lời miêu tả chính là ngôn ngữ và các thuật ngữ
được sử dụng bởi khách hàng/người dùng.
Nội dung đặc tả UC thường bao gồm:
- Mục đích của Use Case: Mục đích chung cuộc của Use Case là gì? Cái gì
cần phải được đạt tới? Use Case nói chung đều mang tính hướng mục đích và
mục đích của mỗi Use Case cần phải rõ ràng.
- Use Case được khởi chạy như thế nào: Tác nhân nào gây ra sự thực
hiện Use Case này? Trong hoàn cảnh nào?
- Chuỗi các thông điệp giữa actor và Use Case: Use Case và các actor
trao đổi thông điệp hay sự kiện nào để thông báo lẫn cho nhau, cập nhật
hoặc nhận thông tin và giúp đỡ nhau quyết định? Yếu tố nào sẽ miêu tả dòng
chảy chính của các thông điệp giữa hệ thống và actor, và những thực thể nào
trong hệ thống được sử dụng hoặc là bị thay đổi?
- Dòng chảy thay thế trong một Use Case: Một Use Case có thể có
những dòng thực thi thay thế tùy thuộc vào điều kiện. Hãy nhắc đến các yếu
tố này, nhưng chú ý đừng miêu tả chúng quá chi tiết đến mức độ chúng có
thể “che khuất“ dòng chảy chính của các hoạt động trong trường hợp căn
bản. Những động tác xử lý lỗi đặc biệt sẽ được miêu tả thành các Use Case
khác.
- Use Case sẽ kết thúc với một giá trị đối với tác nhân như thế nào:
Hãy miêu tả khi nào Use Case được coi là đã kết thúc, và loại giá trị mà nó
cung cấp đến tác nhân.
Ví dụ:
Chi tiết tài khoản: // tên Use Case
Số Use Case: UCSEC35
Miêu tả ngắn: // miêu tả ngắn gọn Use Case
Use Case "chi tiết tài khoản" cho phép nhân viên nhà băng xem các chi tiết của một tài khoản mà
anh ta định tìm hiểu.
TRANG 40| OOAD
Dòng chảy các sự kiện: // dòng logic chung
Nhân viên chọn Chi Tiết Tài Khoản trên menu. Một con đường khác để chỉ ra các thông tin chi
tiết của tài khoản là gọi từ Màn Hình Tóm Tắt Thông Tin Về Tài Khoản (xem Use Case số
UCSEC99).
Dòng hành động chính: // dòng logic chi tiết.
Mỗi khách hàng sẽ có một số định danh gọi là CustomerId. Một khách hàng có thể có nhiều tài
khoản. Sau khi nhân viên nhập CustomerId vào hệ thống, màn hình phải in ra tất cả những tài
khoản thuộc về khách hàng này và thuộc về nhà băng ABC, rải rác tại tất cả các chi nhánh. Khi
chọn tiếp loại tài khoản và số tài khoản, các chi tiết của tài khoản mong muốn sẽ được in ra.
Loại tài khoản tiết kiệm: Nếu loại tài khoản được chọn là tài khoản tiết kiệm, thì theo Use Case
số UCSEC45, các chi tiết sau đây sẽ được in ra:
- Mức tiền hiện có
- Các tờ sec chưa thanh toán
- Lượng tiền tín dụng được phép
- Lượng tiền lãi cho tới ngày hôm nay
- Lượng tiền tối thiểu cần phải có trong tài khoản
Loại tài khoản đầu tư: Nếu loại tài khoản được chọn là loại đầu tư, thì theo Use Case số
UCSEC46, các chi tiết sau đây sẽ được in ra.
- Hạn đầu tư
- Số tiền đầu tư
- Ngày đầu tư
- Lượng tiền cuối hạn
- Ngày cuối hạn
- Tỷ lệ lời
Dòng hành động thay thế: // chuỗi logic thay thế
Không tìm thấy chi tiết: Khi chọn một số tài khoản không thích hợp (không có tài khoản tương
ứng) dù vì lý do chức năng hay kỹ thuật, theo Use Case số UCSEC12, hệ thống sẽ đưa ra một
màn hình báo lỗi.
Điều kiện thoát: // Use Case kết thúc như thế nào?
Nút Thoát: Khi chọn nút thoát, người sử dụng sẽ quay trở lại màn hình chính.
BÀI 3: LẤY YÊU CẦU > TRANG 41
Nút Xem Thêm: Khi chọn nút này, người sử dụng sẽ được yêu cầu chọn loại tài khoản từ một
danh sách đổ xuống.
Nút Xem Giao Dịch: Khi chọn nút này, người sử dụng sẽ được chuyển sang màn hình "Giao
dịch" và theo Use Case số UCSEC91, màn hình sẽ chỉ ra những giao dịch đã xảy ra đối với tài
khoản, bên cạnh những chi tiết chính của tài khoản.
Nút Yêu Cầu In Kết Quả: Khi chọn phần thực đơn này, kết quả giao dịch theo Use Case số
UCSEC70 sẽ được in ra ở một máy in địa phương nối trực tiếp với máy tính của nhân viên.
Các yêu cầu đặc biệt: // các yêu cầu đặc biệt
Theo Use Case số UCSEC110, hệ thống có khả năng in lên màn hình bằng những ngôn ngữ khác.
Chức năng này sẽ được kích hoạt khi người sử dụng chọn mục Ngoại Ngữ trên menu.
Điều kiện trước đó: // điều xảy ra trước khi Use Case được thực hiện
Bảo an: Người sử dụng (nhân viên tiếp khách) được cung cấp một số định danh riêng biệt để truy
nhập vào hệ thống.
Dịch chuyển: Người sử dụng chỉ đến được màn hình Chi Tiết Tài Khoản sau khi đã truy nhập
thành công và Identify thành công.
Điều kiện sau đó: // điều gì xảy ra sau khi Use Case được thực hiện?
Hệ thống sẽ không lưu trữ lại bất kỳ một thông tin nào liên quan tới khách hàng lên đĩa cứng cục
bộ.
BÀI TẬP ĐỀ NGHỊ
Câu 1: Lấy yêu cầu cho hệ thống quản lý thư viện
TRANG 42| OOAD
BÀI 4: PHÂN TÍCH & THIẾT KẾ
4.1 GIỚI THIỆU
Các công việc và vai trò phải thực hiện trong giai đoạn phân tích thiết kế:
Trong phần này, chúng ta sẽ tìm hiểu phân tích và thiết kế theo định
hướng từng Use Case. Cho từng Use Case, chúng ta sẽ phân tích thiết kế ở
trạng thái tĩnh và trạng thái động:
BÀI 4: PHÂN TÍCH & THIẾT KẾ > TRANG 43
Các bước dùng cho quá trình phân tích thiết kế như sau:
4.2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG Ở TRẠNG THÁI
TĨNH
Khi phân tích hệ thống ở trạng thái tĩnh, ta tiến hành tìm các lớp phân tích
và vẽ sơ đồ class diagram, tìm kiếm các thuộc tính cho các lớp này.
Lớp bao gồm 3 thành phần như sau:
TRANG 44| OOAD
Với mỗi một UC, có thể tồn tại 3 loại lớp: Lớp boundary, lớp control và lớp
entity.
Ký hiệu:
BÀI 4: PHÂN TÍCH & THIẾT KẾ > TRANG 45
Lớp biên (boundary): Dùng để mô tả sự tương tác giữa các actor với hệ
thống, lớp biên có thể là: Giao diện người dùng, Lớp tương tác với các
thiết bị phần cứng, lớp tương tác với các hệ thống khác.
Lớp điều khiển ( controller): thông thường 1 UC có 1 lớp Controller điều
khiển hoạt động của UC
Lớp Thực thể ( Entity): Mô tả các thực thể chứa dữ liệu cần thiết để
hiện thực UC.
Các lớp này được thể hiện trong sơ đồ sau:
TRANG 46| OOAD
Ví dụ:
Entity class:
BÀI 4: PHÂN TÍCH & THIẾT KẾ > TRANG 47
Control class
Sau khi phân tích, dựa vào đặc tả ta có thể tìm kiếm các attribute của các
lớp. Sơ đồ class diagram được vẽ như sau:
TRANG 48| OOAD
4.3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG Ở TRẠNG THÁI
ĐỘNG
Khi phân tích và thiết kế ở trạng thái động, ta vẽ sơ đồ tuần tự & sơ đồ
giao tiếp để tìm kiếm các hàm ( method) cho các lớp phân tích ở trên.
Mỗi một thông điệp giữa các object là lời gọi hàm để hiện thực UC.
BÀI 4: PHÂN TÍCH & THIẾT KẾ > TRANG 49
Nếu UC có nhiều luồng thông tin, ta phải vẽ nhiều sơ đồ:
Ở giai đoạn thiết kế, ta thêm vào các tham số cho hàm, kiểu dữ liệu cho
các tham số, kiểu kết quả trả về.
TRANG 50| OOAD
BÀI TẬP ĐỀ NGHỊ
Câu 1: Phân tích & thiết kế hệ thống đã lấy yêu cầu ở bài 3
BÀI 5: > TRANG 51
TÀI LIỆU THAM KHẢO
1. Pro ASP.NET 4 in CSharp 2010, Matthew MacDonald, Adam Freeman,
and Mario Szpuszta, appress 2010.
2. ASP.NET 2.0 Everyday Apps For Dummies, Doug Lowe, Wiley
Publishing, 2007
PHỤ LỤC – ĐỒ ÁN THAM KHẢO
Đề bài: phân tích và thiết kế hệ thống tạo khảo sát online
UC Diagram
Danh sách Actor:
Thành viên
Người dùng
Quản trị
Danh sách Usecase
Tạo khảo sát
Quản lý khảo sát
Tạo câu hỏi
Quản lý câu hỏi
Nạp phí thành viên
Xem kết quả khảo sát
Xem biểu đồ
Tìm kiếm khảo sát
Quản trị quản lý khảo sát
Quản trị quản lý thành viên
Sơ đồ Usecase:
BÀI 5: > TRANG 53
Thiết kế chi tiết chức năng:
Giao diện trang chủ:
Tạo khảo sát
Phát thảo giao diện:
Đặc tả usecase:
Name Tạo khảo sát
Description Thành viên tạo khảo sát
Actor Thành viên
Pre conditions Đăng nhập vào tài khoản thành viên
Hiển thị trang tạo khảo sát
Post conditions Thông báo kết quả tạo khảo sát
Flow of events 1. Hệ thống lấy thông tin tài khoản người dùng
2. Hệ thống kiểm tra tài khoản.
3. Hệ thống hiển thị tùy chọn tạo khảo sát có tính
phí hay không.
4. Người dùng nhập tên khảo sát
5. Người dùng nhập giới thiệu khảo sát
6. Chọn ngày bắt đầu khảo sát
7. Chọn ngày kết thúc khảo sát
BÀI 5: > TRANG 55
8. Nhấn nút tạo khảo sát
8.1 Hệ thống lưu nội dung khảo sát xuống cơ sở
dữ liệu
8.2 Không lưu được: A1
8.3 Thông báo kết quả lên trang web
Alternative flow A1: Thông báo không tạo được khảo sát.
Trở lại trang tạo khảo sát
A2: Thông báo không lưu được khảo sát
Trở lại trang tạo khảo sát
Activity diagram:
Sequence diagram:
Class diagram:
Quản lý khảo sát
Giao diện:
BÀI 5: > TRANG 57
Đặc tả usecase:
Name Thành viên quản lý khảo sát
Description Thành viên quản lý các khảo sát đã tạo
Actor Thành viên
Pre conditions Đăng nhập vào tài khoản thành viên
Hiển thị trang thành viên quản lý khảo sát
Post conditions Thông báo kết quả thao tác
Flow of events 1. Hệ thống load danh sách khảo sát đã tạo của
thành viên.
2. Hệ thống hiển thị danh sách khảo sát đã tạo
3. Người dùng chọn khảo sát
4. Nhấn nút chỉnh sửa
5. Không sửa được: A1
6. Hệ thống hiển thị trang cập nhật khảo sát
7. Người dùng nhấn nút xoá khảo sát
9. Hệ thống xoá khảo sát khỏi cơ sở dữ liệu
10. Thông báo kết quả xoá
11. Quay lại trang quản lý khảo sát
Alternative flows A1: Thông báo không cập nhật được khảo sát
A2: Thông báo không xoá được khảo sát
Activity diagram:
Sequence diagram:
BÀI 5: > TRANG 59
Class diagram:
Tạo câu hỏi
Giao diện
Đặc tả usecase:
Name Tạo câu hỏi
Description Thêm mới câu hỏi khảo sát
Actor Thành viên
Pre conditions Đăng nhập vào tài khoản thành viên
Hiển thị trang danh sách câu hỏi
Post conditions Thông báo kết quả tạo câu hỏi
Flow of events 1. Hệ thống hiển thị trang tạo câu hỏi
2. Người dùng chọn loại câu hỏi
3. Người dung chọn trang hiển thị
4. Nhập nội dung câu hỏi
BÀI 5: > TRANG 61
6. Nhấn nút tạo câu hỏi
6.1 Không lưu được câu hỏi : A1
6.2 Hệ thống lưu câu hỏi xuống cơ sở dữ liệu
7. Nhấn nút huỷ: quay lại trang quản lý câu hỏi
Alternative flow A1: Thông báo không lưu được câu hỏi
Activity diagram:
Class diagram:
Quản lý câu hỏi
Giao diện
BÀI 5: > TRANG 63
Đặc tả usecase:
Name Quản lý câu hỏi
Description Thành viên quản lý tạo, cập nhật, xoá câu hỏi
Actor Thành viên
Pre conditions Đăng nhập vào tài khoản thành viên
Hiển thị trang quản lý câu hỏi
Post conditions Thông báo kết quả thao tác
Flow of events 1. Hệ thống lấy danh sách câu hỏi theo khảo sát và
người tạo khảo sát.
2. Hệ thống hiển thị danh sách câu hỏi
3. Không hiển thị được: A1
4. Người dùng nhấn nút tạo câu hỏi
5. Hệ thồng chuyển sang trang tạo câu hỏi mới
6. Người dùng nhấn nút chỉnh sửa của câu hỏi
7. Hệ thống hiển thị trang chỉnh sửa câu hỏi
7.1 Không thể sửa: A2
8. Người dùng nhấn nút xoá câu hỏi
8.1 Không thể xóa: A3
Altenative flows A1: Thông báo không hiển thị được.
A2: Thông báo không sửa được câu hỏi
A3: Thông báo không xóa được câu hỏi.
Activity diagram:
Sequence diagram:
BÀI 5: > TRANG 65
Class diagram:
Xem kết quả khảo sát
Giao diện:
Đặc tả usecase:
Name Xem kết quả khảo sát
Description Người dùng xem kết quả khảo sát đã kết thúc
Actor Người dùng
Pre conditions Đăng nhập vào tài khoản người dùng
Hiển thị trang xem kết quả
Post conditions Hiển thị kết quả khảo sát
Flow of events 1. Hệ thống tải lên danh sách các khảo sát
2. Không tải lên được: A1
3. Hệ thống hiển thị danh sách các khảo sát
4. Người dùng chọn tên khảo sát
5. Hệ thống tải lên danh sách các câu hỏi
6. Không tải được câu hỏi: A2
7. Hệ thống hiển thị danh sách các câu hỏi
8. Hệ thống hiển thị câu trả lời và tỉ lệ
BÀI 5: > TRANG 67
10. Nhấn nút xem chi tiết
11. Không hiển thị được: A3
12. Hệ thống hiển thị chi tiết kết quả khảo sát của
câu hỏi đã được chọn.
Alternative flows A1: Thông báo lên trang web không tải được khảo
sát
A2: Thông báo không tải được câu hỏi
A3: Thông báo không hiển thị được chi tiết.
Activity diagram:
Sequence diagram:
Class diagram:
Tham gia khảo sát
Giao diện
BÀI 5: > TRANG 69
Đặc tả usecase:
Name Tham gia khảo sát
Description Người truy cập web tham gia khảo sát
Actor Người dùng web
Pre conditions Hiển thị trang tham gia khảo sát
Post conditions Thông báo kết quả hoàn thành khảo sát
Flow of events 1. Hệ thống hiển thị trang giới thiệu khảo sát
2. Người dùng nhấn nút bắt đầu
3. Hệ thống hiển thị trang câu hỏi đầu tiên
4. Hệ thống tải danh sách câu hỏi và trả lời
5. Người dùng chọn câu trả lời
6. Nhấn nút tiếp tục
7. Hệ thống lưu câu trả lời của người dùng xuống
8. Không lưu được: A2
9. Hiển thị trang cảm ơn người tham gia khảo sát
Alternative flows A1: Thông báo không lưu được dữ liệu
Activity diagram:
Sequence diagram:
BÀI 5: > TRANG 71
Class diagram:
Xem biểu đồ
Giao diện
Đặc tả usecase:
Name Xem biểu đồ khảo sát
Description Người dùng xem biểu đồ kết quả khảo sát đã kết
thúc
Actor Người dùng
BÀI 5: > TRANG 73
Pre conditions Đăng nhập vào tài khoản người dùng
Hiển thị trang xem kết quả
Post conditions Hiển thị biểu đồ kết quả khảo sát
Flow of events 1. Hệ thống tải lên danh sách các khảo sát
2. Không tải lên được: A1
3. Hệ thống hiển thị danh sách các khảo sát
4. Người dùng chọn tên khảo sát
5. Nhấn nút xem biểu đồ
6. Hệ thống tạo biểu đồ
7. Không tạo được biểu đồ: A2
8. Hệ thống hiển thị biểu đồ lên trang web
Alternative flows A1: Thông báo không tải dữ liệu lên được
A2: Thông báo không tạo được biểu đồ
Activity diagram:
Sequence diagram:
BÀI 5: > TRANG 75
Class diagram:
Tìm kiếm khảo sát
Giao diện
BÀI 5: > TRANG 77
Name Tìm kiếm khảo sát
Description Người dùng tìm kiếm khảo sát
Actor Người dùng
Pre conditions Hiển thị trang tìm kiếm khảo sát
Post conditions Hiển thị kết quả tìm kiếm khảo sát
Flow of events 1. Hệ thống tải lên danh sách các khảo sát
2. Không tải lên được: A1
3. Hệ thống hiển thị danh sách các khảo sát
4. Người dùng chọn điều kiện tìm kiếm
5. Nhập vào thông tin tìm kiếm
6. Nhấn nút tìm kiếm
7. Hệ thống tìm kiếm khảo sát trong cơ sở dữ liệu
8. Không tìm thấy khảo sát:A2
9. Hệ thống tải lên các khảo sát tìm được
10. Không tải lên được:A3
11. Hiển thị danh sách khảo sát tìm được
Alternative flows A1: Thông báo không tải dữ liệu lên được
A2: Thông báo không tìm thấy khảo sát
A3: Thông báo không tải dữ liệu lên được
Activity diagram:
Sequence diagram:
BÀI 5: > TRANG 79
Class diagram:
Các file đính kèm theo tài liệu này:
- bai_giang_mon_phan_tich_thiet_ke_huong_doi_tuong.pdf