Mục tiêu
Xác định mục đích của thiết kế ca sử dụng và vị trí của
nó trong vòng đời phát triển phần mềm
 Kiểm chứng tính nhất quán trong thực thi ca sử dụng
 Làm mịn hiện thực hóa ca sử dụng từ những phân tích
ca sử dụng sử dụng Các phần tử mô hình thiết kế
              
            1Giáo viên: TS. Trần Mạnh Tuấn
Bộ môn: Hệ thống thông tin
Khoa: Công nghệ thông tin
Email: 
[email protected]
Điện thoai: 0983.668.841
PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN
Bài 11. Thiết kế Use Case
Mục tiêu
2
 Xác định mục đích của thiết kế ca sử dụng và vị trí của 
nó trong vòng đời phát triển phần mềm
 Kiểm chứng tính nhất quán trong thực thi ca sử dụng
 Làm mịn hiện thực hóa ca sử dụng từ những phân tích
ca sử dụng sử dụng Các phần tử mô hình thiết kế
Tổng quan về thiết kế ca sử dụng
3
Supplementary
Specifications
Use-Case
Design Use-Case Realization
(Refined)
Design Subsystems and Interfaces
Design Classesuse-case
Các bước thiết kế ca sử dụng
4
 Mô tả sự tương tác giữa các đối tượng
thiết kế
 Đơn giản hoá biểu đồ tuần tự sử dụng hệ 
thống con 
 Mô tả các hành vi liên quan dữ liệu bền
vững
 Làm mịn sự mô tả luồng các sự kiện
 Thống nhất các lớp và các hệ thống con
Các bước thiết kế ca sử dụng
5
 Mô tả sự tương tác giữa các đối tượng thiết kế
 Đơn giản hoá biểu đồ tuần tự sử dụng hệ thống con 
 Mô tả các hành vi liên quan dữ liệu bền vững
 Làm mịn sự mô tả luồng các sự kiện
 Thống nhất các lớp và các hệ thống con
Nhắc lại: Hiện thực hóa ca sử dụng
6
Class Diagrams
Use Case
Collaboration 
Diagrams
Use-Case Model Design Model
Use Case Use-Case Realization
Sequence 
Diagrams
Nhắc lại: Từ Lớp phân tích thới Phần tử thiết kế
7
Lớp phân tích Phần tử thiết kế
Ánh xạ Nhiều – Nhiều
>
>
>
>
Làm mịnh những hiện thực hóa ca sử dụng
8
 Xác định đối tượng tham gia trong luồng các sự kiện của ca 
sử dụng
 Phân phối trách nhiệm cho các đối tượng
 Minh hoạ việc gửi thông điẹp giữa các đối tượng sử dụng
các hình mũi tên
 Mô tả kết quả của việc xử lý từ các thông điệp và những gì
đối tượng thực hiện khi nó nhận được thông điệp
 Mô hình hóa các kết hợp của các lớp
Class DiagramsSequence Diagrams
Các bước làm mịn sự trừu tượng hóa ca sử dụng
9
 Xác định các đối tượng tham gia vào luồng sự kiện
của cá sử dụng
 Biểu diễn mỗi đối tượng tham gia trong một lược đồ
tuần tự
 Incrementally incorporate applicable architectural 
mechanisms
Biểu diễn các hệ thống con trên lược đồ tuần tự
10
 Giao diện (Interfaces)
 Biểu diễn một phần tử thiết kế hiện thực hóa giao diện
 Không vẽ thông điệp đi ra từ giao diện
 Lớp Proxy
 Biểu diễn một hệ thống con riêng biệt
 Thông điệp có thể được vẽ đi ra từ proxy
Object A Interface Object B
1: Message 1
2: Message 2
Object A Proxy Object B
1: Message 1
2: Message 2X
Thông điệp không hợp lệ Thông điệp hợp lệ
Biểu diễn các hệ thống con trên lược đồ tuần tự
11
Lớp phân tích sẽ được thay thế bởi một giao diên
: Student
: RegisterForCoursesForm : RegistrationController : Schedule : Student: CourseCatalogSystem
Student wishes
to create a new 
schedule
1. // create schedule( )
1.2. // display course offerings( )
1.1. // get course offerings( )
1.1.1. // get course offerings(forSemester)
1.3. // display blank schedule( )
2. // select 4 primary and 2 alternate offerings( )
2.1. // create schedule with offerings( )
2.1.1. // create with offerings( )
A blank schedule 
is displayed for the 
students to select 
offerings
2.1.2. // add schedule(Schedule)
At this point, the Submit Schedule subflow is executed
A list of the available 
course offerings for this 
semester are displayed
Kết hợp các cơ chế kiến trúc: Bảo mật (Security)
12
 Ánh xạ Lớp phân tích với Cơ chế kiến trúc từ việc
phân tích ca sử dụng
Lớp phân tích Cơ chế phân tích
Student
CourseOffering
Course
RegistrationController
Persistency, Security
Persistency, Legacy Interface
Persistency, Legacy Interface
Distribution
Schedule Persistency, Security
Chi tiết xem trong phụ lục
Kết hợp các cơ chế kiến chúc: Phân tán (Distribution)
13
 Ánh xạ Lớp phân tích với Cơ chế kiến trúc từ việc
phân tích ca sử dụng
Lớp phân tích Cơ chế phân tích
Student
CourseOffering
Course
RegistrationController
Persistency, Security
Persistency, Legacy Interface
Persistency, Legacy Interface
Distribution
Schedule Persistency, Security
Các bước thiết kế ca sử dụng
14
 Mô tả sự tương tác giữa các đối tượng thiết kế
 Đơn giản hoá biểu đồ tuần tự sử dụng hệ thống con 
 Mô tả các hành vi liên quan dữ liệu bền vững
 Làm mịn sự mô tả luồng các sự kiện
 Thống nhất các lớp và các hệ thống con
Đóng gói sự các tương tác vào trong các hệ thống con
15
 Sự tương tác có thể được mô tả ở một số cấp độ
 Các tương tác hệ thống con có thể được mô tả
trong các lược đồ tương tác của riêng chúng
Nâng mức trừu tượng hóa
Khi nào thì đóng gói các luồng con vào trong một hệ thống con
16
Đóng gói một luồng con vào trong một hệ thống
con khi:
 Xuấ hiện trong nhiều hiện thực hóa ca sử dụng
 Có tiềm năng tái sử dụng
 Phức tạp và dễ dàng đóng gói
 Tương ứng với lượng công việc của một người hoặc một đội
 Tạo ra một kế quả có cấu trúc tốt
 Được đóng gói trong một thành phần mô hình cài đặt đơn lẻ (a 
single Implementation Model component)
Hướng dẫn: Đóng gói các tương tác trong hệ thống con
17
 Các hệt hống con nên được biểu diễn bởi giao diện của
chúng trong các lược đồ tương tác
 Thông điệp tới hệ thống con tương ứng với hoạt động
(operations) của giao diện hệ thống con đó
 Tương tác bên trong hệ thống con được mô hình hóa
trong Thiết kế hệ thống con (Subsystem Design)
>
MySubsystem
op1()
>
:InterfaceA
Ưu điểm của đóng gói sự tương tác trong các hệ thống con
18
Hiện thực hóa ca sử dụng: 
 Hiện thực hoá (realization) ca sử dụng trở nên ít nhầm lẫn, 
đặc biệt với thiết kế bên trong của các hệ thống phức tạp.
 Hiện thực hoá ca sử dụng có thể được tạo ra trước các thiết
kế bên trong của các hệ thống con (tạo khả năng phát triển
đồng thời)
 Hiện thực hoá ca sử dụng trở nên dễ dàng thay đổi, đặc biệt
nếu hệ thống con cần thay thế cho hệ thống con khác.
Phát triển hệ thống con một cách đồng thời
19
 Tập trung vào những yêu cầu ảnh hưởng tới giao
diện hệ thống
 Phác thảo giao diện được yêu cầu
 Mô hình hóa thông điệp giữa các của các hệ
thống con
 Vẽ các lược đồ tương tác ở góc độ giao diện hệ
thống con cho mỗi ca sử dụng
 Làm mịn giao diện cần thiết để cung cấp các
thông điệp
 Phát triển các hệ thống con một cách song song
 Refine the interfaces needed to provide 
messages
 Develop each subsystem in parallel
Sử dụng giao diện hệ thống con như điểm đồng bộ
Các bước thiết kế ca sử dụng
20
 Mô tả sự tương tác giữa các đối tượng thiết kế
 Đơn giản hoá biểu đồ tuần tự sử dụng hệ thống con 
 Mô tả các hành vi liên quan dữ liệu bền vững
 Làm mịn sự mô tả luồng các sự kiện
 Thống nhất các lớp và các hệ thống con
Mô tả hành vi liên quan tới sự bền vững
21
 Mô tả hành vi liên quan tới sự bền vững
 Mô hình hóa các giao dịch (Modeling Transactions) 
 Viết ra các đối tượng dữ liệu bền vững (Writing Persistent 
Objects)
 Đọc đối tượng bền vững (Reading Persistent Objects)
 Xóa đối tượng dữ liệu bền vững (Deleting Persistent Objects)
Mô hình hóa các giao dịch
22
Giao dịch là gì?
 Là việc gọi các phép toán nguyên tử (atomic operation)
 “All or nothing”
 Cung cấp sự nhất quán (provide consistency)
Mô hình hóa các tùy chọn
 Theo đúng nguyên bản (textually scripts)
 Các thông điệp tường minh (explicit messages)
Những điều kiện lỗi (error conditions)
 Khôi phụ (Rollback)
 Các chế độ lỗi (Failure mode)
 Có thể đòi hỏi các lược đồ tương tác riêng biệt
Kết hợp các cơ chế kiến trúc: Lưu trữ bền vững
23
 Analysis-Class-to-Architectural-Mechanism Map 
from Use-Case Analysis
Lớp phân tích Các cơ chế phân tích
Student
CourseOffering
Course
RegistrationController
Lưu trữ bền vững, an ninh
Lưu trữ bền vững, kế thừa giao diên
Phân tán
Schedule Lưu trữ bền vững, an ninh
Lưu trữ bền vững, kế thừa giao diên
Kế thừa giao diên (RDBMS ) sẽ
được nói đến trong bài
Subsystem Design.
OODBMS 
Persistency
RDBMS 
Persistency
Các bước thiết kế ca sử dụng
24
 Mô tả sự tương tác giữa các đối tượng thiết kế
 Đơn giản hoá biểu đồ tuần tự sử dụng hệ thống con 
 Mô tả các hành vi liên quan dữ liệu bền vững
 Làm mịn sự mô tả luồng các sự kiện
 Thống nhất các lớp và các hệ thống con
Những tùy chọn trong mô tả chi tiết luồng sự kiện
25
 Chú giải về các lược đồ tương tác
: Actor1 : ClassA : ClassB
1: Do Something
2: Do Something More
Các kichj bản có
thể được sử
dụng để mô tả
chi tiết xung
quanh các thông
điệp Chú thích có thể
gồm nhiều thông tin 
về một phần tử mô
hình cụ thể
Script
Note
Những tùy chọn trong mô tả chi tiết luồng sự kiện
26
 Chú giải về các lược đồ tương tác
: Actor1 : ClassA : ClassB
1: Do Something
2: Do Something More
Các kichj bản có
thể được sử
dụng để mô tả
chi tiết xung
quanh các thông
điệp Chú thích có thể
gồm nhiều thông tin 
về một phần tử mô
hình cụ thể
Script
Note
Các bước thiết kế ca sử dụng
27
 Mô tả sự tương tác giữa các đối tượng thiết kế 
 Đơn giản hoá biểu đồ tuần tự sử dụng hệ thống con 
 Mô tả các hành vi liên quan dữ liệu bền vững
 Làm mịn sự mô tả luồng các sự kiện
 Thống nhất các lớp và các hệ thống con
Những cân nhắc về việc thống nhất các mô hình thiết kế
28
 Tên các phần tử mô hình nên mô tả chức năng của chúng
 Hợp nhất các phần tử mô hình tương tự
 Sử dụng thừa kế để trừu tượng hóa các phần tử mô hình
 Giữ lại các phần tử mô hình và luồng sự kiện vững chắc
(consistent)
29
Trao đổi, câu hỏi?