Bai giang ve ngon ngu UML Bai 7
Trang 1Phân Tích và Thiết Kế Hướng Đối Tượng
Trang 2Muc tiêu: Use-Case Analysis
e Tìm hiểu mục đích của công đoạn Use-
Case Analysis vị trí của nó trong chu kỳ
sông của QT PTPM
e Xác định các class thực hiện một use- case
flow of events
e Phân phôi các hành vi (behaviour) của use-
case vé cac class của nó, thông qua việc
xác định nhiệm vụ của các class
e Phát triên các use-case realization mo hinh
hóa collaboration giữa các thê hiện của các
class đã xác định
Trang 3Use-Case Analysis trong ngiv canh
>
Describe Distribution
Trang 4Tổng quan về Use-Case Analysis
Supplementary odeling Guidelines
Trang 5Cac bước thực hiện phân tích Use-base
e BO sung Use-Case Description
e Với mỗi use-case realizafion
— Tim cac Class tu Use-Case Behavior
— Phan b6 Use-Case Behavior vé cac Class
e Voi mdi analysis class da tim thay
— Mô tả nhiệm vụ của chúng
— Mô tả các Attribute và các Association
— Lượng gia (qualify) cac Analysis Mechanism
e Hop nhat cac Analysis Class
e Checkpoints
Trang 6Cac bước thực hiện phân tích Use-base
a Bo sung Use-Case Description
e Voi moi use-case realization
— Tim cac Class tu Use-Case Behavior
— Phân b6 Use-Case Behavior vé cac Class
e Voi mdi analysis class da tim thay
— Mô tả nhiệm vụ của chúng
— Mô tả cac Attribute va cac Association
— Lượng gia (qualify) cac Analysis Mechanism
e Hop nhat cac Analysis Class
e Checkpoints
Trang 7học (course
offerings)
> ¢ Hé thong truy van
va hién thi mét danh
sách các lớp học
đang mở từ CSDL
course catalog kế
thừa từ HT cũ.
Trang 8Cac bước thực hiện phân tích Use-base
e Bồ sung Use-Case Description
e Với mỗi use-case realizafion
* — Tim cac Class tu Use-Case Behavior
— Phan bo Use-Case Behavior vé cac Class
e Voi mdi analysis class da tim thay
— Mô tả nhiệm vụ của chúng
— Mô tả cac Attribute va cac Association
— Lượng gia (qualify) cac Analysis Mechanism
e Hop nhat cac Analysis Class
e Checkpoints
Trang 9Review: Class
e Là một sự trừu tượng hóa
e Mô tả một nhóm các đôi tượng có chung:
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 9
Trang 10
Review: Use-Case Realization
Trang 11Tìm kiểm các 0lass từ Use-Case Behavior
e loàn bộ hành vi của một use case phải
được phân bô vê cho các analysis class
II
™ <<entity>>
Trang 12
System boundary
OOAD Su dung UML - Phan tich Use-Case
Trang 13
Cac Analysis Class: Buéc dau tién dén cai dat
Use Cases Analysis Jecsion Source Exec
Classes -~emens Coce
Xu 7
-Y Use-Case Analysis
Trang 14Thé nao la Boundary Class?
e Làm trung gian giao tiêp với những gì nằm
e Một sô kiêu
— Các User interface class
— Cac System interface class
— Cac Device interface class
e Mot boundary class cho 1 cap actor/use
Trang 15
Vai trò của một Boundary 0lass
oem ly
Mô hình hóa sự tương tác giữa system và môi trường của nó
OOAD Sử dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 15
Trang 16Ví dụ: Tìm kiểm cac Boundary Class
Trang 17Guidelines: Boundary Class
e Cac User Interface Class
- Tập trung vào những thông tin gì được thê hiện
cho người dùng
— KHÔNG tập trung vào các chỉ tiết UI
e Cac System va Device Interface Class
— Tập trung vào những protocols nào phai d/n
— KHÔNG tập trung vào cách mà các protocol sẽ
được cải đặt
Tập trung vào các nhiệm vụ, chứ không phải chỉ tiêt!
Trang 18Thé nao la mét Entity Class?
e Các trừu tượng hóa then chôt của system
Analysis class Stereotype
Trang 19
Lưu trữ và quản tri cac thong tin trong system
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 19
Trang 20Ví dụ: Tìm kiểm các Entity Class
e Dung use-case flow of events như Input
e Các trừu tượng hóa then chốt của use case
e Hướng tiép can truyén thong (nouns filtering)
— Gạch dưới các cụm danh từ trong flow of events
— Loại bỏ các ứng viên dư thừa
— Loại bỏ các ứng viên mơ hô, không rõ ràng
— Loại bỏ các actor (ngoài phạm vi)
— Loại bỏ các kiên trúc cài đặt
— Loại bỏ các attribute (đề lại dùng sau)
— Loại bỏ các operation
Trang 21Ví dụ: Chọn ung vién cho cac Entity Class
e Đăng ký học phân (Lập lịch)
Student
Schedule
Trang 22Review: Generalization
e Mot class chia sé cau
truc va/hoac hanh vi
của một hay nhiều —_—Superelass
Withdraw() Getinterest()
Trang 25
Ví dụ: Generalization (Chia sẻ ngữ nghĩa)
Có sự tông address
quát hóa
FulltimeStudent ParttimeStudent gradDate maxNumCourses
OOAD Su dung UML - Phan tich Use-Case
25
Dương Anh Đức 9/2000
Trang 26Thé nao la mét Control Class?
e Nhà điêu phôi các hành vi của Use-case
e Chi mdt control class cho mét use case
Phu thuộc use-case, độc lập môi trường
OOAD Sử dung UML - Phan tich Use-Case
Trang 27Vai tro cua mét Control Class
Điêu phôi các hành vi của use-case
OOAD Sử dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 27
Trang 28Vi du: Tim cac Control Class
OOAD Su dung UML - Phan tich Use-Case
Trang 29_<<boundary>> <<control>> <<boundary>>
RegisterF orCoursesForm RegistrationController CourseCatalogSystem
<<entity>> <<entity>> <<entity>>
Trang 30Cac bước thực hiện phân tích Use-base
e Bồ sung các mô tả của Use-Case
e D/v méi use-case realization
— Tim cac Class tu Use-Case Behavior
r -— Phan bé Use-Case Behavior cho cac Class
e D/v mdi analysis class tìm được
— M6 ta cac nhiém vu cua chung
— M6 ta cac Attribute va Association
— Luong gia cac Analysis Mechanism
e Hop nhat cac Analysis Class
e Checkpoints
Trang 31Distribute Use-Case Behavior to Classes
e D/v mdi use-case flow of events:
— Xac dinh cac analysis class
— Gắn kết các trách nhiệm của use-case cho các
analysis class
— Mô hình hóa tương tác của cac analysis class
trong interaction diagram
Trang 32Guidelines: Allocating Responsibilities to Classes
e Dung cac A.Class stereotype lam guide:
— Cac Boundary Class
se Các hành vị liên quan đên sự giao tiêp voi actor
— Cac Entity Class
e Cac hanh vi lién quan đến dữ liệu được gói trong
mot abstraction
— Cac Control Class
e Cac hanh vi dac thu cho mot use case hoac mot
phan rat quan trong cua flow of events
Trang 33Guidelines: Allocating Responsibilities to Classes
e Ai có dữ liệu cân cho việc thực hiện
nhiệm vụ?
— Một class có dữ liệu, hãy để n/v cùng với dl
- Nhiêu class có dữ liệu :
e Hay dé n/v trong 1 class va thêm quan hệ với các
class khac
s Tạo một class mdi, dé n/v trong class mới này, và
thêm quan hệ với các class cũ
e Hay dé n/v trong control class, và thêm quan hệ
VỚI các class cân đê thực hiện n/v
OOAD Sử dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 33
Trang 34The Anatomy of Sequence Diagrams
Trang 35Vi du: Sequence Diagram
A list of the available 12 disp py eens offerings )
course offerings for this a
semester are displayed
2.1 /{ create schedule with offering ” ~ —
L 2.1.1 // create with offerings( )
ATại điểm này Submit Schedule subflow được thị hành
OOAD Sử dụng UML, - Phân tich Use-Case
Dương Anh Đức 9/2000 35
Trang 36
Vi du: Sequence Diagra
Repeat for a course Offer!
An attempt is made
to register the 1.1.2.4 student for all
e conflicts ] student(Schedule) = |
Trang 37The Anatomy of Collaboration Diagrams
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 37
Trang 38
Vi du: Collaboration Diagram
1.2 // display course offerings( ) 1.3 // display blank schedule( )
>
: RegIsterForCoursesForm
1 // create schedule( ) [A // select 4 primary and 2 alternate offerings
2.1 // create schedule with offerings( ) 1.1.1.1 // get off e offerings( )
Trang 39>
1.1.2.4 // any conflicts?( )
>
1.1.2.3 // still open?( ) 1.1.2.5 // add student(Schedule)
Trang 40
One Interaction Diagram Not Good Enough
Basic Flow
Alternate Flow 2
Alternate Flow 5
Alternate Flow 3
Alternate Flow n
Trang 41Collaboration Diagrams Vs Sequence Diagrams
các v/đ cân g/q tap the
OOAD Sử dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 41
e Sequence Diagrams
— Chỉ ra rõ ràng chuỗi
các thông điệp
— Trực quan hóa tốt hơn
toàn bộ luông sự kiện
— Tốt hơn cho các đặc tả real-time va cho cac
scenario phức tạp
Trang 42Exercise: Use-Case Analysis, Part 1
e Hay xay dung:
— Use-Case Model, dac biét la cac use-case
flows of events
— Các trừu tượng hóa/class then chốt
(còn tiễn)
Trang 43Exercise: Use-Case Analysis, Part 1 (cont.)
Trang 44Exercise: Use-Case Analysis, Part 1 (cont.)
e Voi mot use case cu thé, hãy thiết lập:
— Use-case realization interaction diagram cho téi thiêu một trong các use-case flows of events
Trang 45Use-Case Analysis Steps
e Bồ sung các mô tả của Use-Case
e D/v mỗi use-case realization
— Tim các Class từ Use-Case Behavior
— Phân b6 Use-Case Behavior cho cac Class
e D/v mdi analysis class tìm được
yy — Mô tả các nhiệm vụ của chúng
— M6 ta cac Attribute va Association
— Luong gia cac Analysis Mechanism
e Hop nhat cac Analysis Class
e Checkpoints
Trang 46Describe Responsibilities
e Trach nhiém (responsibilities) la gi’?
e Lam thé nao dé tim ra chung?
// PerformResponsibility
OOAD Su dung UML - Phan tich Use-Case
Trang 47Vi du: View of Participating Classes (VOPC) Class
<<control>>
RegistrationController <<boundary>>
RegisterForCoursesForm // get course offerings()
// submit schedule() // get course offerings() // submit schedule() // create schedule with offerings()
// display course offerings()
// display schedule()
// create schedule()
// select 4 primary and 2 alternate offerings() <<entity>>
// display blank schedule() <<entity>> ScheduleOfferinglnfo
// create with offerings() // mark as selected()
// submit() // mark as cancelled()
<<entity>> // save() // is selected?()
number : String = "100' PrimaryScheduleOfferinglnfc startTime : Time grade
endTime : Time days : Enum // is enrolled in?()
// mark as enrolled in()
// add student() // still open?() // save()
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 47
Trang 48Maintaining Consistency: What to Look For
e In order of criticality
— Redundant responsibilities across classes
— Disjoint responsibilities within classes
— Class with one responsibility
— Class with no responsibilities
— Better distribution of behavior
— Class that interacts with many other classes
Trang 49Use-Case Analysis Steps
e Bồ sung các mô tả của Use-Case
e D/v modi use-case realization
— Tim cac Class tw Use-Case Behavior
— Phan b6 Use-Case Behavior cho cac Class
e D/v mdi analysis class tìm được
— M6 ta cac nhiém vu cua chung
y& — M6 ta cac Attribute va Association
— Luong gia cac Analysis Mechanism
e Hop nhat cac Analysis Class
e Checkpoints
Trang 50Describe Attributes and Associations
e Dinh nghia cac Attribute
e Thiết lập các môi quan hệ dạng
Aggregation va Association
Trang 51Review: What is an Attribute?
Trong analysis, khong nén
tôn nhiêu thời gian cho
<<entity>> Việc xác định cac attribute CourseOffering signature
bat ‘String=" 100°
tartTime : Time ndTime: Time
Trang 52Finding Attributes
e Cac thuéc tinh/dac diém của các class
e Các thông tin ddc giữ lại bởi các class
e Các “danh từ” không biên thành class
— Các thông tin mà giá trị của chúng là quan
trọng
- Các thông tin ddc sở hữu bởi 1 object duy nhất
— Các thông tin không có hành vi
Trang 53Review: What is an Association?
e Mô hình hóa một liên hệ ngữ nghĩa giữa
cac thé hién (instances) cua cac class
Association la mét quan hé cau truic
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 53
Trang 54
Review: What are Roles ?
“Nhân vật” mà một class “đóng vai" trong
Trang 55
Vi du: Multiple Associations
Cac Multiple association phai phan anh multiple roles
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 55
Trang 57| <<entity>>
CourseOffering
Trang 60
Review: What is Aggregation?
e Mot dang dac biét cua association dung dé
mô hình hóa một môi quan hệ toàn thé-bd
phận giữa toàn thê và các phân của nó
Trang 61Khi cam thay nghi ngo hay dung association
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 61
Trang 62Association Class
>
e Mot class “duoc gan” vao mét association
e Chua cac thuéc tinh cua relationship
e Môi thê hiện / 1 link
OOAD Sử dung UML - Phan tich Use-Case // is enrolled in‘?()
// mark as enrolled in()
<<entity>> CourseOffering
Trang 64
VÍ dụ: VOPC: Finding Relationships
// display blank schedule // select 4 primary and 2 alternate offerings()
Trang 65Vi du: VOPC: Finding Relationships (contd)
<<entity>>
PrimaryScheduleOfferinglnfob grade
// is enrolled in‘?() <<entity>>
// mark as enrolled in() CourseOffering
<<entity>> | number : String = "100"
primaryCourses endTime : Time
<<entity>>
ScheduleOfferinglnfo status
// mark as selected() // mark as cancelled() // is selected ?()
OOAD Su dung UML - Phan tich Use-Case
Dương Anh Đức 9/2000 65
Trang 66Use-Case Analysis Steps
e Bồ sung các mô tả của Use-Case
e D/v mỗi use-case realization
— Tim các Class từ Use-Case Behavior
— Phân b6 Use-Case Behavior cho cac Class
e D/v mdi analysis class tìm được
— M6 ta cac nhiém vu cua chung
— M6 ta cac Attribute va Association
r - Lượng giá các Analysis Mechanism
e Hợp nhất các Analysis Class
e Checkpoints
Trang 67Describing Analysis Mechanisms
Trang 68
Vi du: Describing Analysis Mechanisms
e Anh xa gitva Analysis class va analysis
mechanism
CourseOffering Persistency, Legacy Interface
RegistrationController Distribution