Exercise: Use-Case Analysis, Part 1
w Hãy xây dựng:
§ Use-Case Model, đặc biệt là các use-c
of events
§ Các trừu tượng hóa/class then chốt
(còn tie
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
42
Exercise: Use-Case Analysis, Part 1 (
w Hãy xác định các thông tin sau cho
case cụ thể:
§ Các analysis class, cùng vụựi chuựng laứ:
ã Brief descriptions
ã Stereotypes
ã Responsibilities
Đ Caực collaboration can thiết để cài đặt
(còn tie
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
43
Exercise: Use-Case Analysis, Part 1 (
w Với một use case cụ thể, hãy thiết la
§ Use-case realization interaction diagra
thiểu một trong các use-case flows of e
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
44
Use-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 C
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
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
45
Describe Responsibilities
w Trách nhiệm (responsibilities) là gì?
w Làm thế nào để tìm ra chúng?
Interaction Diagram
:Client
:Supplier
// PerformResponsibility
Class Diagram
Supplier
// PerformResponsibility
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
46
Ví dụ: View of Participating Classes (VOPC)
Diagram
<<control>>
RegistrationController
<<boundary>>
RegisterForCoursesForm
// submit schedule()
// display course offerings()
// display schedule()
// create schedule()
// select 4 primary and 2 alternate offerings()
// display blank schedule()
<<entity>>
Student
// add schedule()
// has pre-requisites()
// get course offerings()
// submit schedule()
// create schedule with offerings()
// get co
<<entity>>
Schedule
Sch
statu
// create with offerings()
// submit()
// save()
// ma
// ma
// is s
<<entity>>
CourseOffering
number : String = "100"
startTime : Time
endTime : Time
days : Enum
// add student()
// still open?()
// save()
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
<<
Course
47
Primary
grade
// is enro
// mark a
Maintaining Consistency: What to Loo
w In order of criticality
§
§
§
§
§
§
Redundant responsibilities across clas
Disjoint responsibilities within classes
Class with one responsibility
Class with no responsibilities
Better distribution of behavior
Class that interacts with many other c
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
48
Use-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 C
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
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
49
Describe Attributes and Associations
w Định nghóa các Attribute
w Thiết lập các mối quan hệ dạng Agg
và Association
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
50
Review: What is an Attribute?
<<stereotype>>
ClassName
Attribute : Type = InitValue
Attribute : Type = InitValue
Attribute : Type = InitValue
<<entity>>
CourseOffering
attribute
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
number :String=“100”
startTime : Time
endTime: Time
days: enum
51
Trong analys
tốn nhiều th
việc xác địn
signature
Finding Attributes
w Các thuộc tính/đặc điểm của các cl
w Các thông tin ddc giữ lại bởi các cla
w Các danh từ không biến thành class
§ Các thông tin mà giá trị của chúng là
§ Các thông tin ddc sở hữu bởi 1 object
§ Các thông tin không có hành vi
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
52
Review: What is an Association?
w Mô hình hóa một liên hệ ngữ nghóa
thể hiện (instances) của các class
<<entity>>
Student
<<entity>
CourseOffe
Simple
association
is a pre-req
<<entity>>
Schedule
Reflexive
association
Association là một quan hệ cấu t
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
53
Review: What are Roles?
w Nhân vật mà một class đóng vai tro
association
<<entity>>
Professor
<<entity>>
CourseOffering
Instructor
Depa
Role Name
<<entity>>
Departmen
Pre-requisites
<<entity>>
Course
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
54
Ví dụ: Multiple Associations
primaryCourses
<<entity>>
Schedule
<
CourseO
alternateCourses
<<entity>>
Schedule
add student to
remove student from
<
Co
Các Multiple association phải phản ánh multi
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
55
Review: Multiplicity
w Không mô tả
w Duy nhất một
w Zero hoặc nhiều
(many, unlimited)
w
w
w
w
1
0..*
*
Một hoặc nhiều
Zero hoặc 1
Một đoạn
Nhiều đoạn rời nhau
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
1..*
0..1
2..4
2, 4..6
56
Ví dụ: Multiplicity
Bản số
<<entity>>
Student
1
0..*
<<entity>>
Schedule
0..*
0..*
primaryCourses
0..2
alternateCourses
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
57
0
Review: Navigability
w Khả năng định hướng từ associating
đến target class
Hai chiều
Một chiều
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
Class1
C
Class1
58
Ví dụ: Navigability
<<boundary>>
1
RegisterForCoursesForm
1
<
Regist
1-way navigation
<<entity>>
Schedule
0..4
0..*
primaryCourses
0..*
0..2
alternateCourses
<
Course
2-way navigation
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
59
Review: What is Aggregation?
w Một dạng đặc biệt của association d
mô hình hóa một mối quan hệ toàn
phận giữa toàn thể và các phần của
Whole/aggregate
<<entity>>
Student
1
0..*
part
<<entity>>
Schedule
0..*
0..*
primaryCourses
0..2
alternateCourses
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
60
0
Association or Aggregation?
w Xem xét
§ Ngữ cảnh, các đặc trưng độc lập của
Class1
Clas
association
Class1
aggregation
Clas
Khi cảm thấy nghi ngờ hãy dùng as
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
61
Association Class
w Một class được gắn vào một associa
w Chứa các thuộc tính của relationshi
w Một thể hiện / 1 link
<<entity>>
ScheduleOfferingInfo
status
// mark as selected()
// mark as cancelled()
// is selected?()
<<entity>>
Schedule
0..*
0..*
<<entity>>
PrimaryScheduleOfferingInfob
grade
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
// is enrolled in?()
// mark as enrolled in()
62
// mark as committed()
alterna
prima
Finding Relationships
1: PerformResponsibi
Collaboration
Diagram
:Client
Link
Client
Class
Diagram
Client
0..*
0..*
Prime suppliers
Perform
Association
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
Tạo relationship cho mọi link!
63
Ví dụ: VOPC: Finding Relationships
<<boundary>>
RegisterForCoursesForm
// create schedule ()
// display course offerings ()
// display blank schedule
// select 4 primary and 2 alternate offering
1
1
<<boundary>>
CourseCatalogSystem
1
// get course offerings(forSemester)
0..*
<<control>>
RegistrationController
// get course offerings()
// create schedule with offerings
0..1
0..1
0..1
1
registrant
currentSchedu
<<entity>>
Student
<<entity>>
Schedule
// add schedule (Schedule)
// create with offerings()
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
64
Ví dụ: VOPC: Finding Relationships (c
<<entity>>
PrimaryScheduleOfferingInfob
grade
// is enrolled in?()
// mark as enrolled in()
<<entity>>
Schedule
primaryCours
// cancel(theOffering : CourseOffering)
// submit()
0..*
// any conflicts?()
0..*
// create with offerings()
0
alternateCourses
<<entity>>
ScheduleOfferingInfo
status
// mark as selected()
// mark as cancelled()
// is selected?()
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
65
Use-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 C
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
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức
66