Use-Case Analysis
Trang 1Phan Tich va Thiét ké hé thong
Su Dung UML
Use-Case Analysis
Trang 2Muc tiéu: Use-Case Analysis
¢ Tim hiéu muc dich cua công đoạn UJse-Case
Analysis vị trí của nó trong chu kỳ sống của
QT PTPM
*® Xác định các class thực hiện một use- case flow of events
¢ Phan phdi cac hành vi (behaviour) cla use-
case vé Cac class cua no, théng qua viéc xac dinh nhiém vu cua cac class
* Phát triển các use-case realization mô hình hóa collaboration giữa các thể hiện của các class đã xác định
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 3Use-Case Analysis trong ngữ cảnh
Architectural
PT & TK Hướng đối tượng - Thiết kế kiến †rúc
Dương Anh Đức
| >
Architectural Describe Design Concurrency
Trang 4Tổng quan về Use-Case Analysis
Glossary Use-Case Document |
Supplementary odeling Guidelines | Analysis Classes
Trang 5ác bước thực hiện phân tich Use-Case
¢ BO sung Use-Case Description
*® Với mỗi use-case realization
= Tim các Class từ Use-Case Behavior
= Phan b6 Use-Case Behavior vé cdc Class
® Với môi analysis class da tim thay
" Mô tả nhiệm vụ của chúng
" Mô tả các Attribute và các Associafion
= Luong gia (qualify) cac Analysis Mechanism
*® Hợp nhất các Analysis Class
¢ Checkpoints
Trang 6ác bước thực hiện teh tich Use-Case
¢ BO sung Use-Case Description
*® Với mỗi use-case realization
“m Tìm các Class từ Use-Case Behavior
= Phan b6 Use-Case Behavior vé cdc Class
® Với môi analysis class da tim thay
" Mô tả nhiệm vụ của chúng
" Mô tả các Attribute và các Associafion
" Lượng giá (qualify) các Analysis Mechanism
*® Hợp nhất các Analysis Class
¢ Checkpoints
Trang 8ác bước thực hiện teh tich Use-Case
¢ BO sung Use-Case Description
*® Với mỗi use-case realization
= Phan b6 Use-Case Behavior vé cdc Class
® Với môi analysis class da tim thay
" Mô tả nhiệm vụ của chúng
" Mô tả các Attribute và các Associafion
" Lượng giá (qualify) các Analysis Mechanism
*® Hợp nhất các Analysis Class
¢ Checkpoints
Trang 9Review: Class
*® Là một sự trừu tượng hóa
*® Mô tả một nhóm các đối tượng có chung:
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 10Review: Use-Case Realization
Trang 11u2 Use-Case Behavior
® Toàn bộ hành vi của một use case phải được
phân bổ về cho các analysis class
<<entity>>
Trang 12
Thé nao la mot Analysis
Trang 13Cac Analysis Class: Budc dau tién dén cai dat
Use Cases Analysis Design Source Exec
_J
Use-Case Analysis
Trang 14
" Cac User interface class
=" Cac System interface class
=" Cac Device interface class
¢ Mot boundary class cho I cap actor/use
Trang 15Vai tro cua Boundary Class
Trang 16Ví dụ: Tìm kiém cac Boundary Class
Trang 17Guidelines: Boundary OES
¢ Cac User Interface Class
= Tap trung vao nhting thong tin gi dugc thể hiện cho người dùng
: tập trung vào các chi tiét Ul
¢ Cac System va Device Interface Class
= Tap trung vao nhting protocols nao phai d/n tập trung vào cách mà các protocol sẽ
được cài đặt
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 18Thé nao la mét Entity Class?
Trang 19Vai tro cua mét Entity Class
Trang 20Ví dụ: Tìm kiếm các Entity Glass
¢ Dung use-case flow of events nhu input
® Các trừu tượng hóa then chốt của use case
® Hướng tiếp cận truyền thong (nouns filtering)
Gạch dưới các cụm danh tu 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 vì)
Loại bỏ các kiến trúc cài đặt
Loại bỏ các attribute (để lại dùng sau)
Trang 21Ví dụ: Chọn ứng viên cho cac Entity Class
Trang 22PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Withdraw() Getlnterest()
Trang 23
Tim Generalization: Generalization cua cac Class
Savings
Checking
Stock
À
Trang 24
Tim Generalization: Specia
»>
À
ization của các 6lass
Chuyén bi?t hon
Trang 25Vi du: Generalization (Chia sẽ ngữ nghĩa)
Trang 26
Thé nao la mét Control Class?
¢ Nha diéu phdi cac hanh vi cia Use-case
*® Chỉ một control class cho mot use case
Trang 27Vai tro cua mot Control Class
Trang 28Vi du: Tim cac Control OES
¢ Mot control class cho mot use case
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 29<<entity>> <<entity>> <<entity>>
student schedule CourseOffering
Trang 30ác bước thực hiện teh tich Use-Case
¢ BO sung các mô tả của UJse-Case
® Ð/v mỗi use-case realization
= Tim cac Class tu Use-Case Behavior
ye = Phan bé Use-Case Behavior cho cac Class
¢ Ð/v mỗi analysis class tim được
" Mô tả các nhiệm vụ của chúng
= M6 ta cac Attribute va Association
= Ludng gia cac Analysis Mechanism
¢ Hap nhat cac Analysis Class
¢ Checkpoints
Trang 31Distribute Use-Case Dehavior to Classes
¢ Ð/v mỗi use-case flow of events:
=" Xac dinh cac analysis class
=" Gan 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 các analysis class
trong interaction diagram
Sequence Diagrams Collaboration Diagrams
PT & TK Hướng đối tượng - Thiết kế kiến †rúc
Trang 32Guidelines: Allocating Responsibilities to Classes
¢ Dung cac A.Class stereotype lam guide:
" Cac Boundary Class
Các hành vi liên quan đến sự giao tiếp với
actor
=" Cac Entity Class
Các hành vi liên quan đến dữ liệu được gói
trong một abstraction
=" Cac Control Class
Các hành vi đặc thù cho một use case hoặc
một phần rất quan trọng của flow of events
(còn tiếp)
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 33Guidelines: Allocating Responsibilities to Classes (cont }
® 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 :
Hãy để n/v trong 1 class và thêm quan hệ
với các class khác
Tạo mot class mdi, dé n/v trong class mới
này, và thêm quan hệ với các class cũ Hãy để n/v trong control class, và thêm quan
hệ với cac class can để thực hiện n/W
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 34The Anatomy of Sequence Diagrams
1: PerformResponsibility
Đây là một
Trang 35Vi du: Sequence DEE tu
2.1 /{)create schedule with offering
— 2.1.1 // create with offerings( )
AT3iidi?m này Submit Schedule subflow du ?6|thi hành
PT & TK Hướng đối tượng - Thiết kế kiến †rúc
Dương Anh Đức 35
Trang 36Vi du: Sequence Diagram (cont.)
An attempt i$; made gÍÌ
to register the // any conflicts?( ) student for al 1
selected cours offerings [ has pre-requisites, course offering o
and no schedule conflicts ] 1.1.2.5 // add student(Schedule) _ |
Trang 37The Anatomy of Uollaboration Diagrams
Trang 38Vi du: Collaboration Dliagram
crea’ with offerings( )
Trang 39
Vi dy: Collaboration Diagram (cont.)
—
1.1.2.4 // any conflicts?( )
ed
1.1.2.3 // still open?( ) 1.1.2.5 // add student(Schedule)
Trang 40
One Interaction Diagram Not Good Enough
Trang 41Collaboration Diagrams Vs sequence Diagrams
¢ Collaboration L)iagrams
Dé sti dụng hơn trong các v/đ cần g/q tap thé
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
¢ Sequence Diagrams
Chi ra r6 rang chudi
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
Trang 43Exercise: Use-Case Analysis, Part 1 (cont.)
¢ Hay xac dinh các thông tin sau cho một use case cụ thể:
" Cac analysis class, cung vdi chung là:
Trang 44Exercise: Use-Case Analysis, Part 1 (cont.)
* Với một use case cu thể, hãy thiết lập:
= Use-case realization interaction diagram cho tối
IDII210NAD TÔI trong cac use-case flows of events
Trang 45Use-Case Analysis sii
¢ BO sung các mô tả của UJse-Case
¢ D/v moi use-case realization
“m Tìm các Class tu Use-Case Behavior
= Phan bd Use-Case Behavior cho cac Class
¢ Ð/v mỗi analysis class tim được
` * Mô tả các nhiệm vụ của chúng
=» M6 ta cac Attribute va Association
= Ludng gia cac Analysis Mechanism
¢ Hap nhat cac Analysis Class
¢ Checkpoints
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 47Vi du: View of Participating Classes (VOPC) Class
RegisterForCoursesForm /I get course offerings()
// submit schedule() // get course offerings() /1 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
sftafus
number : String = "100" PrimaryScheduleOffering|Info startTime : Time grade
endTime : Time
days : Enum // is enrolled in?()
/! mark as enrolled in()
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 48Maintaining Consistency: What to Look For
¢ 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 sii
¢ BO sung các mô tả của UJse-Case
¢ D/v moi use-case realization
m Tìm các Class từ Use-Case Behavior
= Phan bd Use-Case Behavior cho cac Class
¢ Ð/v mỗi analysis class tim được
" Mô tả các nhiệm vụ của chúng
*'" M6 ta cac Attribute va Association
= Ludng gia cac Analysis Mechanism
¢ Hap nhat cac Analysis Class
¢ Checkpoints
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 50Describe Attributes and Associations
¢ Dinh nghia cac Attribute
¢ Thiét lap cac mdi quan hé dang Aggregation
va Association
Trang 51Review: What Is an Attribute :
Trong analysis, không nên
tốn nhiều thời gian cho
<<entity>> việc xác định các aftribute
Trang 52Finding Attributes
*® Các thuộc tính/đặc diém ctia cac class
*® Các thông tin ddc giữ lại bởi cac class
¢ Cac danh từ không biến thành class
=" Cac thong tin ma gia tr} cua chung là quan trọng
= Cac thông tin ddc sở hữu bởi 1 object duy nhất
=" Các thông tin không có hành vị
Trang 53Review: What is an Association?
* 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
<<entity>>
Student
Trang 54
Review: What are OY,
*® Nhân vật mà một class đóng vai trong
association
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 55Vi du: Multiple Associations
Trang 56
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 †rúc Dương Anh Đức
Trang 60Review: What is Aggregation?
nx
¢ Mot dạng đặc biệt cua association dung dé
mô hình hóa một mối quan hệ toàn thể-bộ
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 61Khi cam thay nghi ngo hay dung association
PT & TK Hướng đối tượng - Thiết kế kiến †rúc
Trang 62Association Class
»>
¢ Mot class được gắn vào một association
se Chứa các thuộc tính của relationship
/ƒ is enrolled in?()
PT & TK Hướng đối tượng - Thiết kế kiến trúc /¡ mark as alee Te in()
Dương Anh Đức // fAark as committed()
Trang 64
Vi du: VOPC: Finding Helationships
// create schedule () // display course offerings ()
// display blank schedule // select 4 primary and 2 alternate offerings()
Trang 65Vi dy: VOPC: Finding Relationships (contd)
/ƒ is enrolled in?Q <<entity>>
/ƒ mark as enrolled in(Q CourseOffering
<<entily>> number : String = "100"
primaryCourses |endTime : Time // cancel(theOffering : CourseOffering days : Enum
// any conflicts?() // add student() // create with offerings() ` 2 |// cancel()
// still open?() /1 save()
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 66Use-Case Analysis sii
¢ BO sung các mô tả của UJse-Case
¢ D/v moi use-case realization
m Tìm các Class từ Use-Case Behavior
= Phan bd Use-Case Behavior cho cac Class
¢ Ð/v mỗi analysis class tim được
" Mô tả các nhiệm vụ của chúng
=» M6 ta cac Attribute va Association
*y* Lượng giá các Analysis Mechanism
*® Hợp nhất các Analysis Class
¢ Checkpoints
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 67Describing Analysis Mechanisms
¢ Tap hap tat ca analysis mechanisms trong 1 danh sach
Trang 68Vi du: Describing AnalyslS Mechanisms
¢ Anh xa gitia Analysis class va analysis mechanism
Trang 69Vi du: Describing Analysis Mechanisms (cont )
¢ Cac dac trung cua Analysis mechanism
¢ Persistency cua Schedule class:
" Granularity: 1 dén 10 Kbytes / san pham
= Volume: t6i da 2,000 schedule
"AÁCCess Írequency
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 70Use-Case Analysis sii
¢ BO sung các mô tả của UJse-Case
¢ D/v moi use-case realization
m Tìm các Class từ Use-Case Behavior
= Phan bd Use-Case Behavior cho cac Class
¢ Ð/v mỗi analysis class tim được
" Mô tả các nhiệm vụ của chúng
=» M6 ta cac Attribute va Association
= Ludng gia cac Analysis Mechanism
¢ Hop nhat cdc Analysis Class
¢ Checkpoints
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức
Trang 71Unify Analysis Classes
Trang 72Evaluate Your Results
oe
Use-Case Model
Trang 73Use-Case Analysis sii
¢ BO sung các mô tả của UJse-Case
¢ D/v moi use-case realization
m Tìm các Class từ Use-Case Behavior
= Phan bd Use-Case Behavior cho cac Class
¢ Ð/v mỗi analysis class tim được
" MÔ tả các nhiệm vụ của chúng
= M6 ta cac Attribute va Association
= Ludng gia cac Analysis Mechanism
*® Hợp nhất các Analysis Class
¢ Checkpoints
PT & TK Hướng đối tượng - Thiết kế kiến †rúc Dương Anh Đức