w Bổ sung các mô tả của Use-Casew Đ/v mỗi use-case realization § Tìm các Class từ Use-Case Behavior § Phân bổ Use-Case Behavior cho các Class w Đ/v mỗi analysis class tìm được § Mô tả cá
Trang 1PT & TK Hướng đối tượng – Thiết kế kiến trúc
Trang 2( còn tiếp)
Exercise: Use-Case Analysis, Part 1 (cont.)
w Hãy xác định các thông tin sau cho một use case cụ thể:
Trang 3PT & TK Hướng đối tượng – Thiết kế kiến trúc
Exercise: Use-Case Analysis, Part 1 (cont.)
w Với một use case cụ thể, hãy thiết lập:
thiểu một trong các use-case flows of events
Trang 4w Bổ sung các mô tả của Use-Case
w Đ/v mỗi use-case realization
§ Tìm các Class từ Use-Case Behavior
§ Phân bổ Use-Case Behavior cho các Class
w Đ/v mỗi analysis class tìm được
§ Mô tả các Attribute và Association
§ Lượng giá các Analysis Mechanism
w Hợp nhất các Analysis Class
w Checkpoints
Use-Case Analysis Steps
Trang 5PT & TK Hướng đối tượng – Thiết kế kiến trúc
w Trách nhiệm (responsibilities) là gì?
w Làm thế nào để tìm ra chúng?
Trang 6// select 4 primary and 2 alternate offerings()
// display blank schedule()
<< boundary>>
PrimaryScheduleOfferingInfo grade
// is enrolled in?() // mark as enrolled in()
<<entity>>
CourseCatalogSystem // get course offerings()
<<boundary>>
RegistrationController
// get course offerings() // submit schedule() // create schedule with offerings()
<< control>>
Student
// add schedule() // has pre-requisites()
<<entity>>
ScheduleOfferingInfo status
// mark as selected() // mark as cancelled() // is selected?()
<<entity>>
CourseOffering number : String = "100"
startTime : Time endTime : Time days : Enum // add student() // still open?()
<<entity>>
Schedule // create with offerings() // submit()
// save()
<< entity>>
Ví duï: View of Participating Classes (VOPC) Class
Diagram
Trang 7PT & TK Hướng đối tượng – Thiết kế kiến trúc
Maintaining Consistency: What to Look For
w In order of criticality
Trang 8w Bổ sung các mô tả của Use-Case
w Đ/v mỗi use-case realization
§ Tìm các Class từ Use-Case Behavior
§ Phân bổ Use-Case Behavior cho các Class
w Đ/v mỗi analysis class tìm được
§ Mô tả các nhiệm vụ của chúng
§ Lượng giá các Analysis Mechanism
w Hợp nhất các Analysis Class
w Checkpoints
Use-Case Analysis Steps
Trang 9PT & TK Hướng đối tượng – Thiết kế kiến trúc
Describe Attributes and Associations
w Định nghĩa các Attribute
w Thiết lập các mối quan hệ dạng Aggregation và Association
Trang 10ClassName <<stereotype>>
Attribute : Type = InitValue Attribute : Type = InitValue Attribute : Type = InitValue
CourseOffering <<entity>>
number :String=“100”
startTime : Time endTime: Time days: enum
attribute
Trong analysis, không nên tốn nhiều thời gian cho việc xác định các attribute signature
Review: What is an Attribute?
Trang 11PT & TK Hướng đối tượng – Thiết kế kiến trúc
Finding Attributes
w Các thuộc tính/đặc điểm của các class
w Các thông tin ddc giữ lại bởi các class
w Các danh từ không biến thành class
Trang 12Review: What is an Association?
w Mô hình hóa một liên hệ ngữ nghĩa giữa các thể hiện (instances) của các class
Simple association
is a pre-requisite of
<<entity>> Course
Association là một quan hệ cấu trúc
Trang 13PT & TK Hướng đối tượng – Thiết kế kiến trúc
Review: What are Roles?
w Nhân vật mà một class đóng vai trong
Trang 14remove student from
Ví duï: Multiple Associations
Trang 15PT & TK Hướng đối tượng – Thiết kế kiến trúc
Review: Multiplicity
2 4 0 1 1 *
0 * 1
*
Trang 16Bản số
0 4 0 2
primaryCourses alternateCourses
Trang 17PT & TK Hướng đối tượng – Thiết kế kiến trúc
Trang 182-way navigation
0 4 0 2
primaryCourses alternateCourses
Trang 19PT & TK Hướng đối tượng – Thiết kế kiến trúc
Whole/aggregate part
0 4 0 2
primaryCourses alternateCourses
Review: What is Aggregation?
w Một dạng đặc biệt của association dùng để
mô hình hóa một mối quan hệ toàn thể-bộ
phận giữa toàn thể và các phần của nó
Trang 20Khi cảm thấy nghi ngờ hãy dùng association
Trang 21PT & TK Hướng đối tượng – Thiết kế kiến trúc
Association Class
w Một class được gắn vào một association
w Chứa các thuộc tính của relationship
w Một thể hiện / 1 link ScheduleOfferingInfo
status
// mark as selected() // mark as cancelled() // is selected?()
<<entity>>
CourseOffering
<<entity>> Schedule
<<entity>>
0 *
0 4 primaryCourses
alternateCourses
PrimaryScheduleOfferingInfob grade
// is enrolled in?() // mark as enrolled in() // mark as committed()
<<entity>>
Trang 23PT & TK Hướng đối tượng – Thiết kế kiến trúc
RegisterForCoursesForm // create schedule ()
// display course offerings () // display blank schedule // select 4 primary and 2 alternate offerings()
<<entity>>
currentSchedule registrant
0 1
0 1
Ví dụ: VOPC: Finding Relationships
Trang 24ScheduleOfferingInfo status
// mark as selected() // mark as cancelled() // is selected?()
<<entity>>
PrimaryScheduleOfferingInfob grade
// is enrolled in?() // mark as enrolled in()
<< entity>>
CourseOffering number : String = "100" startTime : Time
endTime : Time days : Enum // add student() // cancel() // still open?() // save()
<<entity>> Schedule
Trang 25PT & TK Hướng đối tượng – Thiết kế kiến trúc
w Bổ sung các mô tả của Use-Case
w Đ/v mỗi use-case realization
§ Tìm các Class từ Use-Case Behavior
§ Phân bổ Use-Case Behavior cho các Class
w Đ/v mỗi analysis class tìm được
§ Mô tả các nhiệm vụ của chúng
§ Mô tả các Attribute và Association
w Hợp nhất các Analysis Class
w Checkpoints
Use-Case Analysis Steps
Trang 26w Tập hợp tất cả analysis mechanisms trong 1 danh sách
w Vẽ một ánh xạ các client classes đến các
analysis mechanism
w Xác định các đặc trưng của Analysis
Mechanisms
Analysis Class Analysis Mechanism(s)
Describing Analysis Mechanisms
Trang 27PT & TK Hướng đối tượng – Thiết kế kiến trúc
Analysis Class Analysis Mechanism(s)
Student Schedule CourseOffering Course
RegistrationController
Persistency, Security
Persistency, Legacy Interface Persistency, Legacy Interface Distribution
Persistency, Security
Ví dụ: Describing Analysis Mechanisms
w Ánh xạ giữa Analysis class và analysis mechanism
Trang 28Ví dụ: Describing Analysis Mechanisms (cont.)
w Các đặc trưng của Analysis mechanism
w Persistency của Schedule class:
• Create: 500 lần / ngày
• Read: 2,000 lần / giờ
• Update: 1,000 lần / ngày
• Delete: 50 lần / ngày
Trang 29PT & TK Hướng đối tượng – Thiết kế kiến trúc
w Bổ sung các mô tả của Use-Case
w Đ/v mỗi use-case realization
§ Tìm các Class từ Use-Case Behavior
§ Phân bổ Use-Case Behavior cho các Class
w Đ/v mỗi analysis class tìm được
§ Mô tả các nhiệm vụ của chúng
§ Mô tả các Attribute và Association
§ Lượng giá các Analysis Mechanism
w Checkpoints
Use-Case Analysis Steps
Trang 31PT & TK Hướng đối tượng – Thiết kế kiến trúc
Supplementary Specification
Glossary
Use-Case Model Design Model
Analysis Classes
Evaluate Your Results
Trang 32Use-Case Analysis Steps
w Bổ sung các mô tả của Use-Case
w Đ/v mỗi use-case realization
§ Tìm các Class từ Use-Case Behavior
§ Phân bổ Use-Case Behavior cho các Class
w Đ/v mỗi analysis class tìm được
§ Mô tả các nhiệm vụ của chúng
§ Mô tả các Attribute và Association
§ Lượng giá các Analysis Mechanism
w Hợp nhất các Analysis Class
Trang 33PT & TK Hướng đối tượng – Thiết kế kiến trúc
Checkpoints: Analysis Classes
w Các class có hợp lý không?
w Tên của các class có phản ánh đúng vai trò của chúng?
w Class có biểu diễn 1 single well-defined
abstraction?
w Tất cả các attribute và responsibility có gắn kết với nhau về mặt chức năng không?
w Class có cung cấp các hành vi được y/c?
w Tất cả các y/c cụ thể đã được thể hiện trên class chưa?
Trang 34Checkpoints: Use-Case Realizations
w Tất cả các luồng chính và luồng con đã được điều khiển chưa, bao gồm cả các t/h ngoài
lệ?
w Đã tìm thấy tất cả các đối tượng cần thiết?
w Đã phân phối một cách rõ ràng tất cả các
hành vi về các đối tượng chưa?
w Các hành vi có được phân phối về đúng đối tượng không?
w Các interaction diagrams nằm ở đâu, mối
quan hê gwiax chúng có rõ ràng và phù hợp không?
Trang 35PT & TK Hướng đối tượng – Thiết kế kiến trúc
Review: Use-Case Analysis
w Mục tiêu của Use-Case Analysis là gì?
w Một analysis class là gì? Cho biết tên và mô tả về 3 analysis stereotype.
w Use-case realization là gì?
w Mô tả một vài hoạt động khảo sát when đặt các trách nhiệm cho các analysis class.
w Bao nhiêu interaction diagram phải được xây dựng trong giai đoạn Use-Case Analysis?
Trang 36Exercise: Use-Case Analysis, Part 2
w Hãy cho biết các khái niệm sau:
sung
use case cụ thể
Trang 37PT & TK Hướng đối tượng – Thiết kế kiến trúc
( còn tiếp)
Exercise: Use-Case Analysis, Part 2 (cont.)
w Với mỗi use case hãy xác định các dữ kiện sau:
class
Trang 38Exercise: Use-Case Analysis, Part 2 (cont.)
w Xây dựng các lược đồ sau:
stereotype của chúng, nhiệm vụ, các attribute, và relationship.