6/7 - 4 Use Case AnalysisNội dung trình bày Tổng quan về phân tích Use Case Sơ ñồ lớp phân tích Analysis Class Diagram Các sơ ñồ tương tác Interaction Diagram Mô hình phân tích Use-Ca
Trang 1Phân tích mô hình Use Case
Giảng viên: Mai Thúy Nga
Unified Modeling Language
6/7 - 3 Use Case Analysis
Nội dung môn học
Đặc tả Yêu cầu với
mô hình Use Case I
Đặc tả Yêu cầu với
mô hình Use Case II
Tổng quan về Phân tích và Thiết kế
Phân tích Use
Case II
Ôn tập
Mô hình hóa Thiết kế
Phân tích Use Case I
1
5 4
2
6 3
Trang 26/7 - 4 Use Case Analysis
Nội dung trình bày
Tổng quan về phân tích Use Case
Sơ ñồ lớp phân tích (Analysis Class Diagram)
Các sơ ñồ tương tác (Interaction Diagram)
Mô hình phân tích Use-Case
Đặc tả Use Case
bổ sung
Thuật ngữ
Phân tích Use-Case
Trang 36/7 - 6 Use Case Analysis
Phân tích hướng ñối tượng (OOA)
Tìm kiếm
Actor
Phân tích hướng đối tượng (OOA)
Mô hình Use Case
Sơ đồ hành động
Xây dựng mẫu
Các sơ đồ tương tác Trách nhiệm, hàm, thuộc tính
Đánh giá
& lặp lại
Mô hình lớp phân tích
6/7 - 7 Use Case Analysis
Mô hình phân tích trong quá trình phát triển
Mô hình phân tích
Mức giải pháp
Trang 46/7 - 8 Use Case Analysis
Mô hình phân tích là quá trình trung gian
Mô hình phân tích là mô hình ở mức khái niệm về hệ thống sẽ
làm việc thế nào
Các lớp phân tích thường sẽ “mất ñi” khi giai ñoạn thiết kế
hoàn thành
thường ñược ñóng trong một hệ thống con (chức năng con)
nào ñó (cơ chế phân tích)
Không nên dành quá nhiều thời gian ñể tạo ra các mô hình này
một cách quá chi tiết, nó sẽ bị thay ñổi tại giai ñoạn thiết kế
Nội dung trình bày
Tổng quan về phân tích Use Case
Sơ ñồ lớp phân tích (Analysis Class Diagram)
Các sơ ñồ tương tác (Interaction Diagram)
Trang 56/7 - 10 Use Case Analysis
Tìm các lớp phân tích trong Use-Case
Tìm các lớp phân tích trong Use Case
Khái niệm lớp phân tích (Analysis Class)
System information
System information
<<boundary>>
<<entity>>
13
Trang 66/7 - 12 Use Case Analysis
Lớp biên (Boundary class)
Là lớp trung gian thể hiện sự tương tác giữa hệ
thống và những gì bên ngoài hệ thống
Các lớp biên:
Lớp giao diện giữa người dùng và hệ thống
Lớp giữa hệ thống và các hệ thống bên ngoài
Lớp giữa hệ thống và thiết bị ngoại vi
Với mỗi cặp Actor/Use-Case bao giờ cũng có 1 lớp
biên
Vai trò của lớp biên
Mô hình hoá sự tương tác giữa hệ thống và môi trường bao
Trang 76/7 - 14 Use Case Analysis
UC Dangkyhoc: Tìm lớp biên
Ít nhất một lớp biên cho mỗi cặp actor/use case
Sinh viên Đăng kí học HT QL Monhoc
Chú ý: Trong ví dụ này không tìm cách xây dựng HT QL Môn học, mà sử dụng lại HT bên ngoài, vì thế nó sẽ là tác nhân
6/7 - 15 Use Case Analysis
Một số chú ý với lớp biên
Các lớp giao diện người dùng (GUI)
Tập trung vào cấu trúc thông tin cần thiết cho người dùng
Không tập trung vào chi tiết giao diện người dùng
Các lớp giao diện hệ thống và thiết bị ngoại vi (API)
Tập trung vào cấu trúc dữ liệu trao ñổi giữa chúng
Tập trung vào giao thức tương tác giữa chúng với hệ
thống ở mức cao
Không quan tâm ñến việc giao thức ñược thực thi thế nào
và dữ liệu ñược truyền ñi thế nào
Trang 86/7 - 16 Use Case Analysis
Lớp thực thể (Entity class)
Là các lớp mô tả những thực thể
chính xuất hiện trong hệ thống
Thực thể là những thông tin tồn tại
và ñược lưu trữ lâu dài trong hệ thống
Chỉ mô tả ở mức trừu tượng, không mô tả quá chi tiết
các thuộc tính của thực thể này
Trang 96/7 - 18 Use Case Analysis
Tìm các lớp thực thể
Sử dụng luồng sự kiện của Use-Case là ñầu vào
Sử dụng các “khái niệm” trừu tượng hoá chính (Key
abstractions)
Lọc các danh từ
Tìm các mệnh ñề danh từ trong luồng sự kiện
Loại bỏ một số thành phần không cần thiết
Loại bỏ các từ mô tả cụ thể một thuộc tính thông tin nào
ñó, nhưng lưu lại ñể sau này có thể sử dụng cho:
6/7 - 19 Use Case Analysis
UC Dangkyhoc: Tìm các lớp thực thể
Chức năng ñăng ký học (Tạo thời khóa biểu)
TKB
Monhoc Lophoc
Xem TKB
Sinhvien
Dang ky Mon hoc
Dang nhap
Sinhvien
Trang 106/7 - 20 Use Case Analysis
Lớp ñiều khiển (Control class)
ðược sử dụng ñể thực hiện một hoặc nhiều hành
ñộng nào ñó trong hệ thống
Là lớp thực hiện chức năng chính trong các Use Case
Với những Use Case thích hợp, có thể có nhiều hơn một
Trang 116/7 - 22 Use Case Analysis
Trang 126/7 - 24 Use Case Analysis
UC Dangkyhoc: Sơ ñồ lớp phân tích
Các biểu tượng cho lớp phân tích trong UML
UML cho phép sử dụng một số biểu tượng khác nhau
cho các lớp phân tích
Các lớp phân tích ñược biểu thị cùng với stereotype
Entity Control Boundary
Trang 136/7 - 26 Use Case Analysis
Nội dung trình bày
Tổng quan về phân tích Use Case
Sơ ñồ lớp phân tích (Analysis Class Diagram)
Các sơ ñồ tương tác (Interaction Diagram)
6/7 - 27 Use Case Analysis
Phân bổ các hành vi của Use Case vào các lớp
Trong từng luồng sự kiện của từng Use Case
Trang 146/7 - 28 Use Case Analysis
Trách nhiệm của các lớp phân tắch
Lớp biên
Chịu trách nhiệm thể hiện sự tương tác giữa hệ thống và
tác nhân bên ngoài
Chịu trách nhiệm kiểm tra dữ liệu qua lại trong quá trình
tương tác
Lớp thực thể
Chịu trách nhiệm quản lý thông tin của nó
đóng gói thông tin, và thay ựổi trạng thái của nó
Lớp ựiều khiển
Chịu trách nhiệm chắnh cho một Use Case nào ựó
Tránh ựể lớp ựiều khiển làm quá ắt việc
Sơ ựồ trình tự (Sequence diagram)
Đoạn điều khiển
Thông điệp gọi chắnh nó Vòng đời của đối tượng
1.1: kắch hoạt hàm B
Đánh số thông điệp theo các mức độ Thông điệp
(Message)
Trang 156/7 - 30 Use Case Analysis
UC Dangkyhoc: Sơ ñồ trình tự
: H T Q L
M on ho c : S inhvien : F orm D a ng k y hoc : B D K D a ng k y ho c : S inh vien : T K B : L op ho c : M on ho c : H T M on ho c A P I
Sơ ñồ cộng tác (Collaboration Diagram)
PerformResponsibility
Đối tượng Client
Đối tượng Supplier
Thông điệp
Quan hệ
:Client
:Supplier
Trang 166/7 - 32 Use Case Analysis
mô tả các luồng sự kiện
phức tạp trên phương diện
thời gian thực
Sơ ñồ cộng tác
ràng trong quá trình tương tác
công tác
của quá trình tương tác trên từng ñối tượng
Trang 176/7 - 34 Use Case Analysis
UC Dangkyhoc: Sơ ñồ lớp chi tiết
Trang 186/7 - 36 Use Case Analysis
Kiểm tra tính hợp lý của các lớp phân tích
Hai lớp làm cùng một nhiệm vụ
Một nhiệm vụ ñược tách rời vào nhiều hơn 1 lớp
Một lớp chỉ có một nhiệm vụ duy nhất hoặc không có
nhiệm vụ nào
Một lớp tương tác với quá nhiều lớp khác
Tìm kiếm thuộc tính
Thể hiện thuộc tính, ñặc tính của một lớp
Thông tin cần thiết ñể ñể lớp có thể thực thi các trách
nhiệm (chức năng, hàm) của nó
Chú ý ñến các “danh từ” mà không ñủ ñể trở thành
lớp trong quá trình tìm kiếm lớp phân tích
ClassName
<<stereotype>>
Attribute : Type = InitValue
Attribute : Type = InitValue
Attribute : Type = InitValue attribute
Lophoc
ID : String = "100"
TGbatdau : Time TGketthuc : Time Ngay : Enum SoSV : Int
<<entity>>
Trang 196/7 - 38 Use Case Analysis
Quan hệ giữa các lớp
Quan hệ giữa các lớp chỉ ra rằng ñối tượng của lớp
này có thể gửi thông ñiệp ñến ñối tượng của lớp kia
Quan hệ có thể có 1 chiều hoặc 2 chiều
Trong UML thể hiện bằng ñường vẽ không mũi tên
hoặc có mũi tên
Trang 206/7 - 40 Use Case Analysis
Chúng có thể tồn tại mà không phụ thuộc lẫn nhau,
lớp quan hệ có thể mất ñi mà lớp còn lại vẫn tồn tại
0 2,4 1
Trang 216/7 - 42 Use Case Analysis
Tập hợp/Thành phần
Là một hình thức mạnh của kết hợp
ðây là quan hệ mang tính thành phần, lớp thành phần
sẽ bị mất ñi nếu như lớp chứa của nó mất ñi
0 * 1
6/7 - 43 Use Case Analysis
Kết hợp hay Tập hợp
Nếu 2 ñối tượng thường ñược xem xét ñộc lập, mặc
dù chúng ñược liên kết với nhau
0 2,4 1
Trang 226/7 - 44 Use Case Analysis
Vai trò của lớp trong mối quan hệ
Thể hiện rõ vai trò của một lớp trong mối quan hệ ñó
Bội số của quan hệ (Multiplicity)
Bội số cho phép chỉ ra số lượng của 1 ñối tượng cần
thiết ñể quan hệ với số lượng của 1 ñối tượng khác
Không cụ thể
Một Không hoặc nhiều Không hoặc nhiều Một hoặc nhiều Không hoặc một Khoảng cách cụ thể Khoảng cách cụ thể
2 4 0 1 1 *
0 *
1
*
2, 4 6
Trang 236/7 - 46 Use Case Analysis
Bội số của quan hệ
Bội số của quan hệ trả lời 2 câu hỏi
Sự kết hợp là bắt buộc hay tuỳ chọn
Số lượng nhỏ nhất và lớn nhất các ñối tượng có thể kết
nối với các ñối tượng của lớp khác
Monhoc
0 3 0 *
Lophoc 0 * 1
MonhocYCtruoc
6/7 - 47 Use Case Analysis
UC Dangkyhoc: Quan hệ trong sơ ñồ lớp
Trang 246/7 - 48 Use Case Analysis
TKB
Lophoc
Sinhvien BDK DongDangky FormDongDangky
TKB
HT Monhoc API
Monhoc
HT Monhoc API Lophoc
Monhoc
BDK Dangky
Sinhvien
BDK DongDangky FormDangk i
FormDongDangki
TKB
Ví dụ về UC Bán hàng trên mạng
Mô tả:
muốn
Tiền ñiều kiện:
Hậu ñiều kiện:
thực hiện thành công Hóa ñơn ñược lập, hàng hóa ñược dành riêng cho KH ñó
lập, hàng cũng không ñược bán ra
Thực thể:
Use case liên quan:
Trang 256/7 - 50 Use Case Analysis
Luồng sự kiện cho Use Case
1 KH duyệt, tìm kiếm và xem thông tin các mặt hàng muốn mua (xem
Use-Case xem hàng)
2 KH có thể lặp lại quá trình này ñể mua tiếp các mặt hàng khác
3 Quản lý giỏ hàng
lượng và giá cả từng loại
4 KH có thể chọn chức năng thành toán, xem luồng phụ “Thanh toán”
6/7 - 51 Use Case Analysis
Luồng phụ: Thanh toán
1 KH có thể chọn chức năng thanh toán
2 KH ñược yêu cầu nhập thẻ thanh toán và ñịa chỉ giao hàng (???)
3 Thông tin thanh toán ñược ñưa tới ngân hàng, hệ thống sẽ chờ kết
quả từ ngân hàng ñó
4 Nếu ngân hàng không chập nhận giao dịch
5 Nếu ngân hàng chấp nhận
qua mail của KH
Trang 266/7 - 52 Use Case Analysis
Sơ ñồ lớp phân tích
Sơ ñồ trình tự
Trang 276/7 - 54 Use Case Analysis
Sơ ñồ cộng tác
6/7 - 55 Use Case Analysis
Tổng kết
Quy trình phân tích Use Case
Vai trò của các mô hình phân tích
Sự phát triển của mô hình phân tích tới mô hình thiết kế
Sơ ñồ lớp phân tích (Analysis Class Diagram)
Tìm kiếm lớp phân tích
Sơ ñồ lớp phân tích
Các sơ ñồ tương tác (Interaction Diagram)
Sơ ñồ trình tự, công tác