Tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Use-Case: 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
Use-Case
Analysis
Architectural
Design
Describe
Concurrency
Describe
Distribution
Class
Design
Subsystem Design
Use-Case
Design
Design
Reviewer
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 4
Tổng quan...
38 trang |
Chia sẻ: hunglv | Lượt xem: 1396 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Use-Case, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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
Use-Case
Analysis
Architectural
Design
Describe
Concurrency
Describe
Distribution
Class
Design
Subsystem Design
Use-Case
Design
Design
Reviewer
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 4
Tổng quan về Thiết kế Use-Case
Supplementary
Specifications
Use-Case
DesignUse-Case Realization Use-Case Realization
Design Subsystems and Interfaces
Design Classes
Use Case
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 5
Các bước thiết kế Use-Case
wMô 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)
wMô 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
wMô 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)
wMô 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 8
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
wMo hình hóa các thông điệp giữa các object
wMô tả các kết quả xử lý từ các thông điệp
wMô hình hóa quan hệ giữa các class liên quan
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 9
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 10
Tất cả các analysis class khác được ánh xạ thành các design class
BillingSystem
// submit bill()
>
BillingSystem
>
IBillingSystem
CourseCatalogSystem
// get course offerings()
>
CourseCatalogSystem
>
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.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)
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 12
Ví dụ: Sau khi tích hợp Subsystem Interface
: Student
: RegisterFor
CoursesForm
: Registration
Controller
: Schedule : Student: ICourseCatalog
System
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( )
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)
>
RegisterForCoursesForm
// submit schedule()
// display course offerings()
// display schedule()
// save schedule()
// create schedule()
// select 4 primary and 2 alternate offerings()
// display blank schedule()
(from Registration)
>
Student.
- name
- address
- studentID : int
// addSchedule()
// getSchedule()
// hasPrerequisites()
// passed()
(from University Artifacts)
>
RegistrationController
// submit schedule()
// save schedule()
// create schedule with offerings()
// getCourseOfferings()
(from Registration)
>
0..1
0..1registrant
1 1
Schedule
semester
// submit()
// save()
// any conflicts?()
// new()
(from University Artifacts)
>
0..*
1
0..1
0..1
currentSchedule
CourseOffering
number
startTime
endTime
days
// addStudent()
// removeStudent()
// new()
// setData()
(from University Artifacts)
>
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ế
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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 15
Analysis Class Các cơ chế
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: 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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 16
Các bước thiết kế Use-Case
wMô 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)
wMô 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
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 19
>
MySubsystemInterfaceA
op1()
Op1()
: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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 20
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 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
wMo 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
wMô 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)
wMô 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
wMô 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 24
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 25
Analysis Class Analysis Mechanism(s)
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: 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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 26
Các bước thiết kế Use-Case
wMô 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)
wMô 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 27
Detailed Flow of Events Description Options
w Annotate the interaction diagrams
: Actor1
: ClassA : ClassB
1: 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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 28
Các bước thiết kế Use-Case
wMô 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)
wMô 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 29
Design 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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 30
Các bước thiết kế Use-Case
wMô 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)
wMô 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 31
Checkpoints: 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?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 32
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 use-
case realization, việc xác định collaboration
diagrams nào liên quan đến flow of events nào
có dễ dàng không?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 33
Nhắc lại: Use-Case Design
wMụ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?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 34
(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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 35
(continued)
Bà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 use-
case realizations
§ The design element collaborations needed to
implement the use case
§ The relationships between the design elements
needed to support the collaborations
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 36
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
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 37
(continued)
Bà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)
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 38
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)
Các file đính kèm theo tài liệu này:
- BAI11.PDF