Phân tích và Thiết kế Hướng đối tượng
dùng UML
Module 11: Thiết kế Use-Case
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
1
Mục tiêu
w Tìm hiểu mục đích của bước thiết kế Use-Case
và thời điểm thực hiện công đoạn này
w Kiểm định tính nhất quán trong cài đặt usecase
w Tinh chỉnh use-case realizations có được từ
bước phân tích Use-Case dựa trên các phần tử
thiết kế đã được xây dựng
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
2
Vị trí của Thiết kế Use-Case
Architectural
Analysis
Describe
Architectural
Design
Concurrency
Architect
Review the
Design
Use-Case
Design
Class
Design
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
Review the Architecture
Architecture Reviewer
Subsystem Design
Use-Case
Analysis
Designer
Describe
Distribution
3
Design
Reviewer
Tổng quan về Thiết kế Use-Case
Supplementary
Specifications
Design Subsystems and Interfaces
Use-Case Realization
Use-Case
Design
Design Classes
Use Case
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
4
Use-Case Realization
Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
5
Nhắc lại: Use-Case Realization
Use-Case Model
Design Model
Use Case
Use-Case Realization
Sequence Diagrams
Collaboration Diagrams
Use Case
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
Class Diagrams
6
Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
7
Tinh chỉnh Use-Case Realization
w Xác định các object có tham gia vào Use-Case
w Phân công trách nhiệm cho các object
w Mo hình hóa các thông điệp giữa các object
w Mô tả các kết quả xử lý từ các thông điệp
w Mô hình hóa quan hệ giữa các class liên quan
Class Diagrams
Sequence Diagrams
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
8
Các bước tinh chỉnh Use-Case Realization
w Thay thế các class khả dụng bằng các
subsystem interface kết hợp với chúng
w Từng bước tích hợp các cơ chế kiến trúc khả
dụng
w Hiệu chỉnh use-case realization
§ Các Interaction diagram
§ View of participating classes (VOPC) class
diagram(s)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
9
Ví dụ: Tích hợp Subsystem Interfaces
Analysis Classes
Design Elements
<<boundary>>
BillingSystem
// submit bill()
<<subsystem>>
BillingSystem
IBillingSystem
submitBill(forTuition : Double, forStudent : Student)
<<boundary>>
CourseCatalogSystem
// get course offerings()
ICourseCatalogSystem
<<subsystem>>
CourseCatalogSystem
getCourseOfferings(forSemester : Semester) : CourseOfferingList
Tất cả các analysis class khác được ánh xạ thành các design class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
10
Ví dụ: Trước khi tích hợp SubSystem Interfaces
Phải thay bằng subsystem interface
: RegisterForCoursesForm
: Student
: RegistrationController
: CourseCatalogSystem
: Schedule
1. // create schedule( )
1.1. // get course offerings( )
Student muốn
Tạo mới
schedule
1.1.1. // get course offerings(forSemester)
1.2. // display course offerings( )
Một ds các học phần
có thể đăng ký trong HK
được hiển thị
A blank schedule
is displayed for the
students to select
offerings
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( )
2.1.2. // add schedule(Schedule)
Tại vị trí này Submit Schedule subflow được thực hiện
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
11
: Student
Ví dụ: Sau khi tích hợp Subsystem Interface
Đã thay vào subsystem interface
: Student
: RegisterFor
CoursesForm
: Registration
Controller
: ICourseCatalog
System
: Schedule
1: // create schedule( )
1.1: // get course offerings( )
Student wishes to
create a new
schedule
1.1.1: getCourseOfferings(Semester)
1.2: // display course offerings( )
A list of the available
course offerings for this
semester are displayed
A blank schedule
is displayed for the
students to select
offerings
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( )
2.1.2: // add schedule(Schedule)
Taïi vị trí này Submit Schedule subflow được thực hiện
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
12
: Student
Ví dụ: Tích hợp Subsystem Interfaces (VOPC)
<<boundary>>
RegisterForCoursesForm
(from Registration)
// submit schedule()
// display course offerings()
// display schedule()
// save schedule()
// create schedule()
// select 4 primary and 2 alternate offerings()
// display blank schedule()
<<Interface>>
ICourseCatalogSystem
Subsystem interface
(from External System Interfaces)
<<control>>
RegistrationController
0..*
(from Registration)
1 1 // submit schedule()
// save schedule()
// create schedule with offerings() 0..1
// getCourseOfferings()
1
getCourseOfferings()
initialize()
currentSchedule
0..1
0..1
0..*
<<entity>>
Student.
// addSchedule()
// getSchedule()
// hasPrerequisites()
// passed()
// submit()
// save()
// any conflicts?()
// new()
0..*
(from University Artifacts)
- name
- address
- studentID : int
(from University Artifacts)
semester
0..1
registrant
<<entity>>
Schedule
1
primaryCourses
0..4
0..*
alternateCourses
0..2
<<entity>>
CourseOffering
(from University Artifacts)
number
startTime
endTime
days
// addStudent()
// removeStudent()
// new()
// setData()
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
13
Tích hợp các cơ chế kiến trúc: Security
w Bảng ánh xạ các Analysis-Class với các cơ chế
kiến trúc có từ bước phân tích Use-Case
Analysis Class
Các cơ chế
Student
Persistency, Security
Schedule
Persistency, Security
CourseOffering
Persistency, Legacy Interface
Course
Persistency, Legacy Interface
RegistrationController
Distribution
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
14
Tích hợp các cơ chế kiến trúc: Distribution
w Bảng ánh xạ các Analysis-Class với các cơ chế
kiến trúc có từ bước phân tích Use-Case
Analysis Class
Các cơ chế
Student
Persistency, Security
Schedule
Persistency, Security
CourseOffering
Persistency, Legacy Interface
Course
Persistency, Legacy Interface
RegistrationController
Distribution
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
15
Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
16
Đóng gói các Subsystem Interaction
w Có thể mô tả các tương tác dưới nhiều mức độ
khác nhau
w Tương tác giữa các Subsystem có thể mô tả
bởi các interaction diagram của chúng
Tăng mức độ trừu tượng
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
17
Khi nào đóng gói Sub-Flows trong Subsystem
w Sub-flow xuất hiện trong nhiều use-case
realizations
w Sub-flow có tiềm năng tái sử dụng
w Sub-flow phức tạp và dễ dàng đóng gói
w Sub-flow do 1 người/đội đảm nhiệm
w Sub-flow tạo ra một kết quả xác định tốt
w Sub-flow được gói gọn trong một component
trong mô hình cài đặt
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
18
Guidelines: Đóng gói Subsystem Interactions
w Các Subsystem phải được biểu diễn với các
interface của chúng trong interaction diagrams
w Các thông điệp đến subsystems được mô hình
như các thông điệp đến subsystem interface
w Các thông điệp đến subsystems tương ứng với
các operation của subsystem interface
w Các tương tác trong subsystems được mô hình
trong Subsystem Design
:InterfaceA
InterfaceA
<<subsystem>>
MySubsystem
Op1()
op1()
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
19
Lợi ích của việc đóng gói Subsystem Interaction
w Use-case realization bớt hỗn độn
w Use-case realization có thể được tạo trước khi
xây dựng thiết kế bên trong của subsystems
(parallel development)
w Use-case realizations generic hơn và dễ dàng
thay đổi (subsystems có thể được thay thế)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
20
Parallel Subsystem Development
w Chú ý vào các y/c ảnh hưởng đến subsystem
interfaces
w Phác thảo các interface cần thiết
w Mo hình hóa các thông điệp băng qua ranh giới
các subsystem
w Vẽ interaction diagrams dùng các subsystem
interfaces cho mỗi use case
w Tinh chỉnh các interface cần để cung cấp các
thông điệp
w Phát triển song song các subsystem
Dùng các subsystem interface như điểm đồng bộ hóa
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
21
Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
w Đơn giản hóa các Interaction Diagram nhờ vào
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
w Tinh chỉnh mô tả về các Flow of Events
w Hợp nhất các Class và các Subsystem
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
22
Mô tả các hành vi liên quan đến cơ chế Persistence
w Mô tả các hành vi liên quan đến cơ chế
Persistence
§ Mô hình hóa các Transaction
§ Lưu (ghi) các Persistent Object
§ Đọc các Persistent Object
§ Hủy các Persistent Object
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
23
Mô hình hóa các Transaction
w Transaction là gì?
§ Lời gọi đến các Atomic operation
§ “Tất cả hoặc không operation nào”
§ Cung cấp tính bền vững
w Modeling Options
§ Văn bản (scripts)
§ Các thông điệp hiện
w Error conditions
§ Có thể đòi hỏi các interaction diagrams riêng biệt
§ Rollback
§ Failure modes
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
24
Tích hợp các cơ chế kiến trúc: Persistency
w Bảng ánh xạ các Analysis-Class với các cơ chế
kiến trúc có từ bước phân tích Use-Case
Analysis Class
Analysis Mechanism(s)
Student
Persistency, Security
Schedule
Persistency, Security
CourseOffering
Persistency, Legacy Interface
Course
Persistency, Legacy Interface
RegistrationController
Distribution
Legacy Persistency (RDBMS )
deferred to Subsystem Design
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
25
OODBMS
Persistency
RDBMS
Persistency