PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
1
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
2
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 use-
case
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
3
Vò trí của Thiết kế Use-Case
Architect
Designer
Architectural
Analysis
Architecture
Reviewer
Review the
Design
Review the
Architecture
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
6
Nhắc lại: Use-Case Realization
Class Diagrams
Sequence Diagrams
Use Case
Use-Case Model Design Model
Use Case Use-Case Realization
Collaboration Diagrams
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
7
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
<<boundary>>
BillingSystem
<<subsystem>>
IBillingSystem
CourseCatalogSystem
// get course offerings()
<<boundary>>
CourseCatalogSystem
<<subsystem>>
ICourseCatalogSystem
Analysis Classes Design Elements
Ví dụ: Tích hợp Subsystem Interfaces
getCourseOfferings(forSemester : Semester) : CourseOfferingList
submitBill(forTuition : Double, forStudent : Student)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
11
Ví dụ: Trước khi tích hợp SubSystem Interfaces
Phải thay bằng subsystem interface
: Student
: RegisterForCoursesForm : RegistrationController : Schedule : Student: CourseCatalogSystem
Một ds các học phần
có thể đăng ký trong HK
được hiển thò
Student muốn
Tạo mới
schedule
1. // create schedule( )
1.2. // display course offerings( )
1.1. // get course offerings( )
1.1: // get course offerings( )
2.1.2: // add schedule(Schedule)
1.1.1: getCourseOfferings(Semester)
1.3: // display blank schedule( )
Tại vò trí này Submit Schedule subflow được thực hiện
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
Đã thay vào subsystem interface
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
13
Ví dụ: Tích hợp Subsystem Interfaces (VOPC)
ICourseCatalogSystem
getCourseOfferings()
initialize()
(from External System Interfaces)
<<Interface>>
RegisterForCoursesForm
// submit schedule()
// display course offerings()
// display schedule()
// save schedule()
// create schedule()
// select 4 primary and 2 alternate offerings()
// display blank schedule()
<<entity>>
0 *
1
0 1
0 1
currentSchedule
CourseOffering
number
startTime
endTime
days
// addStudent()
// removeStudent()
// new()
// setData()
(from University Artifacts)
<<entity>>
0 *
0 4
primaryCourses
0 *
0 2
alternateCourses
0 *
1
Subsystem interface
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
14
Analysis Class Các cơ chế
16
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
17
Tăng mức độ trừu tượng
Đó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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
18
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
Dương Anh Đức
21
Dùng các subsystem interface như điểm đồng bộ hóa
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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
22
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
23
Mô tả các hành vi liên quan đến cơ chế Persistence
Persistency, Legacy Interface
Persistency, Legacy Interface
Distribution
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
Schedule Persistency, Security
Legacy Persistency (RDBMS )
deferred to Subsystem Design
OODBMS
Persistency
RDBMS
Persistency