Thiết kế Use Case
Trang 1Phân tích và Thiết kế Hướng đối tượng
dùng UML
Module 11: Thiết kế Use-Case
Trang 2PT & TK Hướng đối tượng – Thiết kế kiến trúc
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
Trang 3Vò trí cuûa Thieát keá Use-Case
Architect
Designer
Architectural Analysis
Architecture Reviewer
Review the Design
Review the Architecture
Use-Case Analysis
Architectural Design ConcurrencyDescribe DistributionDescribe
Class Design
Subsystem Design
Use-Case
Trang 4PT & TK Hướng đối tượng – Thiết kế kiến trúc
Tổng quan về Thiết kế Use-Case
Supplementary
Specifications
Use-Case Design
Use-Case Realization Use-Case Realization
Design Subsystems and Interfaces
Design Classes Use Case
Trang 5Cá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
Trang 6PT & TK Hướng đối tượng – Thiết kế kiến trúc
Nhắc lại: Use-Case Realization
Class Diagrams
Sequence Diagrams
Use Case
Use Case Use-Case Realization
Collaboration Diagrams
Trang 7Các bước thiết kế Use-Case
w Mô tả tương tác giữa các Design Object
các Subsystem (optional)
Persistence
Trang 8PT & TK Hướng đối tượng – Thiết kế kiến trúc
Sequence Diagrams Class Diagrams
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
Trang 9Cá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)
Trang 10PT & TK Hướng đối tượng – Thiết kế kiến trúc
Tất cả các analysis class khác được ánh xạ thành các design class
BillingSystem // submit bill()
Ví dụ: Tích hợp Subsystem Interfaces
getCourseOfferings(forSemester : Semester) : CourseOfferingList
submitBill(forTuition : Double, forStudent : Student)
Trang 11Ví dụ: Trước khi tích hợp SubSystem Interfaces
Phải thay bằng subsystem interface
Một ds các học phần
có thể đăng ký trong HK
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( )
Trang 12PT & TK Hướng đối tượng – Thiết kế kiến trúc
Ví dụ: Sau khi tích hợp Subsystem Interface
: Student
: RegisterFor
A list of the available
course offerings for this
semester are displayed
Student wishes to
create a new
schedule
1: // create schedule( )
1.2: // display 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( )
Trang 13Ví dụ: Tích hợp Subsystem Interfaces (VOPC)
ICourseCatalogSystem
getCourseOfferings() initialize()
(from External System Interfaces)
// select 4 primary and 2 alternate offerings()
// display blank schedule()
(from University Artifacts)
<<entity>>
RegistrationController
// submit schedule() // save schedule() // create schedule with offerings() // getCourseOfferings()
(from Registration)
<<control>>
0 1 0 1 registrant
semester // submit() // save() // any conflicts?() // new()
(from University Artifacts)
CourseOffering number
startTime endTime days // addStudent() // removeStudent() // new()
0 *
0 2 alternateCourses 0 * 1
Subsystem interface
Trang 14PT & TK Hướng đối tượng – Thiết kế kiến trúc
Student
CourseOffering Course
RegistrationController
Persistency, Security
Persistency, Legacy Interface Persistency, Legacy Interface Distribution
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
Schedule Persistency, Security
Trang 15Analysis Class Các cơ chế
Student
CourseOffering Course
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
Schedule Persistency, Security
Trang 16PT & TK Hướng đối tượng – Thiết kế kiến trúc
Các bước thiết kế Use-Case
w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional)
Persistence
Trang 17Tă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
Trang 18PT & TK Hướng đối tượng – Thiết kế kiến trúc
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
Trang 19MySubsystem InterfaceA
:InterfaceA
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
Trang 20PT & TK Hướng đối tượng – Thiết kế kiến trúc
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 khixâ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ế)
Trang 21Dù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
Trang 22PT & TK Hướng đối tượng – Thiết kế kiến trúc
Các bước thiết kế Use-Case
các Subsystem (optional)
w Mô tác các hành vi liên quan đến tính
Persistence
Trang 23Mô 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
Trang 24PT & TK Hướng đối tượng – Thiết kế kiến trúc
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
Trang 25Analysis Class Analysis Mechanism(s)
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
Trang 26PT & TK Hướng đối tượng – Thiết kế kiến trúc
Các bước thiết kế Use-Case
các Subsystem (optional)
Persistence
w Tinh chỉnh mô tả về các Flow of Events
Trang 27Detailed Flow of Events Description Options
w Annotate the interaction diagrams
: Actor1 : ClassA : ClassB1: Do Something
2: Do Something More
Scripts can be used to describe the details surrounding these messages.
Notes can include more information about a particular diagram element
Script
Note
Trang 28PT & TK Hướng đối tượng – Thiết kế kiến trúc
Các bước thiết kế Use-Case
các Subsystem (optional)
Persistence
w Hợp nhất các Class và các Subsystem
Trang 29Design Model Unification Considerations
w Tên của các phần tử mô hình phải diễn tả được chức năng của chúng
w Trộn các phần tử giống nhau
w Dùng phép kế thừa với các phần tử trừu tượng
w Giữ cho model elements và flows of events
bền vững
Trang 30PT & TK Hướng đối tượng – Thiết kế kiến trúc
Các bước thiết kế Use-Case
các Subsystem (optional)
Persistence
w Checkpoints
Trang 31Checkpoints: Design Model
w Việc chia thành package/subsystem có hợp lý và bền vững?
w Tên của các packages/subsystems có gợi nhớ?
w Các public package class and các subsystem interface có cung cấp một tập các dịch vụ duy nhất và bền vững hợp lý?
w Các phụ thuộc giữa các package/subsystem có tương ứng với quan hệ giữa các class chứa bên trong không?
w Các class chứa trong package có phù hợp với tiêu chí phân chia thành package?
w Có thể tách package/subsystem thành hai?
w Tỉ lệ các packages/subsystems và số lượng các class có hợp lý không?
Trang 32PT & TK Hướng đối tượng – Thiết kế kiến trúc
Checkpoints: Use-Case Realizations
w Tất cả các luồng chính và sub-flows trong vong lặp này đã xử lý chưa?
w Tất cả các hành vi đã phân bổ cho các phần tử thiết kế chưa?
w Việc phân bố này có chính xác không?
w Nếu có vài interaction diagrams dành cho case realization, việc xác định collaboration
use-diagrams nào liên quan đến flow of events nào có dễ dàng không?
Trang 33Nhắc lại: Use-Case Design
w Mục tiêu của Use-Case Design là gì?
w Việc đóng gói các subsystem interaction có ý nghĩa gì ? Tại sao đây là việc hữu ích?
Trang 34PT & TK Hướng đối tượng – Thiết kế kiến trúc (continued)
Bài tập: Use-Case Design, Part 1
w Thực hiện các việc sau:
§ Analysis use-case realizations (VOPCs and
interaction diagrams)
§ The analysis-class-to-design-element map
§ The analysis-class-to-analysis-mechanism map
§ Analysis-to-design-mechanism map
§ Patterns of use for the architectural mechanisms
Trang 35Bài tập: Use-Case Design, Part 1 (cont.)
w Identify the following for a particular use case:
§ The design elements that replaced the analysis
classes in the analysis use-case realizations
§ The architectural mechanisms that affect the case realizations
use-§ The design element collaborations needed to
implement the use case
§ The relationships between the design elements needed to support the collaborations
Trang 36PT & TK Hướng đối tượng – Thiết kế kiến trúc
Bài tập: Use-Case Design, Part 1 (cont.)
w Produce the following for a particular use case:
§ Design use-case realization
• Interaction diagram(s) per use-case flow of events that describes the DESIGN ELEMENT collaborations required to implement the use case
• Class diagram (VOPC) that includes the DESIGN ELEMENTS that must collaborate to perform the use case, and their relationships
Trang 37Bài tập: Use-Case Design, Part 2 (optional)
w Given the following:
§ The architectural layers, their packages, and their dependencies
§ All design use-case realization VOPCs (design elements, their packages, and their relationships)
Trang 38PT & TK Hướng đối tượng – Thiết kế kiến trúc
Bài tập: Use-Case Design, Part 2(optional) (tt.)
w Identify the following:
§ Any updates to the package relationships needed
to support the class relationships
w Produce the following diagrams:
§ Refined class diagram that contains all packages and their dependencies (organized by layer)