Muïc tieâu:Use-Case Analysis
-Tìm hiểumục đích của công đoạn Use-Case Analysis vịtrí của nó trongchu kỳ
sống của QT PTPM
-Xác định các classthực hiện mộtuse-case
flow of events
-Phân phối các hành vi (behaviour) của use-case vềcácclass của nó,thông qua việc
xác địnhnhiệm vụcủacác class
-Phát triển cácuse-case realization mô hình
hóacollaborationgiữa các thểhiện của các
class đã xác định
79 trang |
Chia sẻ: maiphuongtl | Lượt xem: 2744 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Use-Case Analysis, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000 1
Phaân Tích vaø Thieát Keá Höôùng Ñoái Töôïng â ø á á ù á ï
Söû duïng UMLû ï
Use-Case Analysis
2
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Muïc tieâu:ï â Use-Case Analysis
z 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
z Xác định các class thực hiện một use- case
flow of events
z Phân phối các hành vi (behaviour) của use-
case về các class của nó, thông qua việc
xác định nhiệm vụ của các class
z 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
3
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Use-Case Analysis trong ngöõ caûnhõ û
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
4
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Toång quan veà Useå à -Case Analysis
Supplementary
Specifications
Use-Case Realization
(identified)
Use-Case Realization
(developed)
Glossary
Use-Case Model
Use-Case
Analysis
Use-Case
Modeling Guidelines
Design Model
Analysis Classes
Analysis Model (optional)
Software Architecture
Document
5
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Caùc böôùc thöïc hieän phaân tích Useù ù ï ä â -Case
z Bổ sung Use-Case Description
z Với mỗi use-case realization
– Tìm các Class từ Use-Case Behavior
– Phân bổ Use-Case Behavior về các Class
z Với mỗi analysis class đã tìm thấy
– Mô tả nhiệm vụ của chúng
– Mô tả các Attribute và các Association
– Lượng giá (qualify) các Analysis Mechanism
z Hợp nhất các Analysis Class
z Checkpoints
6
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Caùc böôùc thöïc hieän phaân tích Useù ù ï ä â -Case
z Bổ sung Use-Case Description
z Với mỗi use-case realization
– Tìm các Class từ Use-Case Behavior
– Phân bổ Use-Case Behavior về các Class
z Với mỗi analysis class đã tìm thấy
– Mô tả nhiệm vụ của chúng
– Mô tả các Attribute và các Association
– Lượng giá (qualify) các Analysis Mechanism
z Hợp nhất các Analysis Class
z Checkpoints
7
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Boå sung Useå -Case Description
• Hệ thống truy vấn
và hiển thị một danh
sách các lớp học
đang mở từ CSDL
course catalog kế
thừa từ HT cũ.
• Hệ thống hiển
thị một danh
sách các lớp
học (course
offerings).
8
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Caùc böôùc thöïc hieän phaân tích Useù ù ï ä â -Case
z Bổ sung Use-Case Description
z Với mỗi use-case realization
– Tìm các Class từ Use-Case Behavior
– Phân bổ Use-Case Behavior về các Class
z Với mỗi analysis class đã tìm thấy
– Mô tả nhiệm vụ của chúng
– Mô tả các Attribute và các Association
– Lượng giá (qualify) các Analysis Mechanism
z Hợp nhất các Analysis Class
z Checkpoints
9
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Review: Class
Professor
name
empID
create( )
save( )
delete( )
change( )
Class Name
Attributes
Operations
z Là một sự trừu tượng hóa
z Mô tả một nhóm các đối tượng có chung:
– Properties (attributes)
– Behavior (operations)
– Relationships
– Ngữ nghĩa (Semantics)
10
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Review: Use-Case Realization
Use-Case Model Design Model
Use Case Use-Case Realization
Sequence Diagrams Collaboration Diagrams
Class Diagrams
Use Case
11
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Tìm kieám caùcá ù Class töøø Use-Case Behavior
z Toàn bộ hành vi của một use case phải
được phân bổ về cho các analysis class
>
>>
>
>
12
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Theá naøo laø moät Analysis Class?á ø ø ä
>
>
>
System
boundary
Use-case
behavior
coordination
System
information
13
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Caùc Analysisù Class: Böôùc ñaàuù à tieán ñeán caøi ñaëtá á ø ë
Use Cases Analysis
Classes
Source
Code
ExecDesign
Elements
Use-Case Analysis
14
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Theá naøo laø Boundary Class?á ø ø
Phụ thuộc môi trường
>
Analysis class
stereotype
z Làm trung gian giao tiếp với những gì nằm
ngoài hệ thống
z Một số kiểu
– Các User interface class
– Các System interface class
– Các Device interface class
z Một boundary class cho 1 cặp actor/use
case
15
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Vai troø cuûa moät Boundary Classø û ä
Mô hình hóa sự tương tác giữa system và môi trường của nó
Customer
>
>
>
>
> >
16
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Tìm kieám caùcá ù Boundary Class
Course Catalog SystemRegister for CoursesStudent
>
RegisterForCoursesForm
>
CourseCatalogSystem
z Một boundary class cho 1 cặp actor/use
case
17
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Guidelines: Boundary Class
z Các 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 chi tiết UI
z Các System và Device Interface Class
– Tập trung vào những protocols nào phải đ/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 chi tiết!
18
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Theá naøo laø moät Entity Class?á ø ø ä
z Các trừu tượng hóa then chốt của system
Glossary
Business-Domain Model
>
Analysis class
stereotype
Architectural Analysis
Abstractions
Use Case
Độc lập môi trường
19
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Vai troø cuûa moät Entity Classø û ä
Customer
>
>
>
>
> >
Lưu trữ và quản trị các thông tin trong system
20
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Tìm kieám caùcá ù Entity Class
z Dùng use-case flow of events như input
z Các trừu tượng hóa then chốt của use case
z Hướng tiếp cận truyền thống (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
21
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Choïn öùng vieânï ù â cho caùc Entityù Class
z Đăng ký học phần (Lập lịch)
Student
CourseOffering
Schedule
22
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Review: Generalization
Account
balance
name
number
Withdraw()
CreateStatement()
Checking
Withdraw()
Savings
GetInterest()
Withdraw()
Superclass
(parent)
Subclasses
Generalization
Relationship
z Một class chia sẻ cấu
trúc và/hoặc hành vi
của một hay nhiều
class
z Mối quan hệ “Là một
dạng của”
z Trong phân tích, sử
dụng ở mức độ đơn
giản, sơ sài
23
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Tìm Generalization: Generalization cuûaû caùc Classù
Savings Checking
Stock
Bond
RealEstate Asset
RealEstate
Savings
BankAccount
Checking Stock
Security
Bond
Tổng quát hơn
24
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Tìm Generalization: Specialization cuûa caùcû ù Class
Asset
Asset
RealEstate
Savings
BankAccount
Checking Stock
Security
Bond
Chuyên biệt hơn
25
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Generalization (Chia seû ngöõ nghóa)û õ
Student
name
address
FulltimeStudent
studentID
gradDate
ParttimeStudent
maxNumCourses
Part-timeStudent
name
address
numberCourses
Full-timeStudent
name
address
studentID
gradDate
Không có sự
tổng quát hóa
Có sự tổng
quát hóa
studentID
26
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Theá naøo laø moät Control Class?á ø ø ä
z Nhà điều phối các hành vi của Use-case
z Chỉ một control class cho một use case
>
Analysis class
stereotypeUse Case
Phụ thuộc use-case, độc lập môi trường
27
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Vai troø cuûa moät Control Classø û ä
Điều phối các hành vi của use-case
Customer
>
>
>
>
> >
28
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Tìm caùcù Control Class
z Một control class cho một use case
Course Catalog SystemRegister for CoursesStudent
>
RegistrationController
29
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï: Toång keát veà caùc ï å á à ù Analysis Class
Course Catalog SystemRegister for CoursesStudent
Use-Case Model
Design Model
>
RegisterForCoursesForm
>
RegistrationController
>
CourseCatalogSystem
>
Student
>
Schedule
>
CourseOffering
30
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Caùc böôùc thöïc hieän phaân tích Useù ù ï ä â -Case
z Bổ sung các mô tả của Use-Case
z Đ/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
z Đ/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
z Hợp nhất các Analysis Class
z Checkpoints
31
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Distribute Use-Case Behavior to Classes
z Đ/v mỗi use-case flow of events:
– Xác định các 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 các analysis class
trong interaction diagram
Collaboration DiagramsSequence Diagrams
Use Case Use-Case Realization
32
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Guidelines: Allocating Responsibilities to Classes
z Dùng các A.Class stereotype làm guide:
– Các Boundary Class
z Các hành vi liên quan đến sự giao tiếp với actor
– Các Entity Class
z Các hành vi liên quan đến dữ liệu được gói trong
một abstraction
– Các Control Class
z 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
(continued)
33
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Guidelines: Allocating Responsibilities to Classes
(cont.)
z 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 :
z Hãy để n/v trong 1 class và thêm quan hệ với các
class khác.
z Tạo một class mới, để n/v trong class mới này, và
thêm quan hệ với các class cũ
z Hãy để n/v trong control class, và thêm quan hệ
với các class cần để thực hiện n/v
34
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
The Anatomy of Sequence Diagrams
Supplier ObjectClient Object
1: PerformResponsibility
Message
:Client :Supplier
Focus of Control
Reflexive Message
Object Lifeline
1.1: PerformAnother
Responsibility
Hierarchical Message
Numbering
Đây là một
script mẫu.
35
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Sequence Diagram
: Student
:
RegisterForCoursesForm
:
RegistrationController
: Schedule : Student
: Course Catalog
:
CourseCatalogSystem
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( )
1.1.1. // get course offerings(forSemester)
1.3. // display blank schedule( )
ATại điểm này Submit Schedule subflow được thi hành.
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)
1.1.1.1. // get course offerings( )
36
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Sequence Diagram (cont.)
: CourseOffering
: Student
: RegisterForCoursesForm : RegistrationController : Schedule : Student:
PrimaryScheduleOfferingInfob
Repeat for all primary
course offerings.
An attempt is made
to register the
student for all
selected course
offerings
1. // submit schedule( )
1.1. // submit schedule( )
1.1.2. // submit( )
1.1.2.3. // still open?( )
1.1.2.5. // add student(Schedule)
1.1.2.2. // has pre-requisites(CourseOffering)
1.1.2.4. // any conflicts?( )
1.1.2.1. // is selected?( )
1.1.2.6. // mark as enrolled in( )
1.1.1. // save( )
[ has pre-requisites, course offering open,
and no schedule conflicts ]
[ is selected ]
37
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
The Anatomy of Collaboration Diagrams
:Client
:Supplier
Client Object
Link Supplier Object
1: PerformResponsibility
Message
38
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Collaboration Diagram
: Student
: RegisterForCoursesForm
: RegistrationController
:
Schedule
: Student
: CourseCatalogSystem
1.2. // display course offerings( )
1.3. // display blank schedule( )
: Course Catalog
1. // create schedule( )
2. // select 4 primary and 2 alternate offerings( )
1.1. // get course offerings( )
2.1. // create schedule with offerings( )
2.1.1. // create with offerings( )
1.1.1. // get course offerings(forSemester)
2.1.2. // add schedule(Schedule)
1.1.1.1. // get course offerings( )
39
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Collaboration Diagram (cont.)
:
CourseOffering
: Student
:
RegistrationController
:
Schedule
: Student
:
PrimaryScheduleOfferingInfob
1.1.2.4. // any conflicts?( )
: RegisterForCoursesForm
1. // submit schedule( )
1.1. // submit schedule( )
1.1.2. // submit( )
1.1.1. // save( ) 1.1.2.3. // still open?( )
1.1.2.5. // add student(Schedule)
1.1.2.1. // is selected?( )
1.1.2.6. // mark as enrolled in( )
1.1.2.2. // has pre-requisites(CourseOffering)
40
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
One Interaction Diagram Not Good Enough
Basic Flow
Alternate Flow 1 Alternate Flow 2 Alternate Flow 3
AF1
AF2
AF3
Alternate Flow 4 Alternate Flow 5 Alternate Flow n
41
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Collaboration Diagrams Vs Sequence Diagrams
z Collaboration
Diagrams
– Chỉ ra các mối quan hệ
bổ sung cho các tương
tác
– Trực quan hóa tốt hơn
các mẫu cộng tác
– Trực quan hóa tốt hơn
các hiệu ứng tác động
lên một đối tượng cụ
– Dễ sử dụng hơn trong
các v/đ cần g/q tập thể
z 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 và cho các
scenario phức tạp
42
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Exercise: Use-Case Analysis, Part 1
z Hãy xây dựng:
– Use-Case Model, đặc biệt là các use-case
flows of events
– Các trừu tượng hóa/class then chốt
(còn tiếp)
43
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Exercise: Use-Case Analysis, Part 1 (cont.)
z Hãy xác định các thông tin sau cho một use
case cụ thể:
– Các analysis class, cùng với chúng là:
z Brief descriptions
z Stereotypes
z Responsibilities
– Các collaboration cần thiết để cài đặt use case
(còn tiếp)
44
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Exercise: Use-Case Analysis, Part 1 (cont.)
z Với một use case cụ 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
45
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Use-Case Analysis Steps
z Bổ sung các mô tả của Use-Case
z Đ/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
z Đ/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
z Hợp nhất các Analysis Class
z Checkpoints
46
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Describe Responsibilities
z Trách nhiệm (responsibilities) là gì?
z Làm thế nào để tìm ra chúng?
Interaction Diagram
// PerformResponsibility
:Client :Supplier
Class Diagram
Supplier
// PerformResponsibility
47
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
RegisterForCoursesForm
// submit schedule()
// display course offerings()
// display schedule()
// create schedule()
// select 4 primary and 2 alternate offerings()
// display blank schedule()
>
PrimaryScheduleOfferingInfo
grade
// is enrolled in?()
// mark as enrolled in()
>
CourseCatalogSystem
// get course offerings()
>RegistrationController
// get course offerings()
// submit schedule()
// create schedule with offerings()
>
Student
// add schedule()
// has pre-requisites()
>
ScheduleOfferingInfo
status
// mark as selected()
// mark as cancelled()
// is selected?()
>
CourseOffering
number : String = "100"
startTime : Time
endTime : Time
days : Enum
// add student()
// still open?()
// save()
>
Schedule
// create with offerings()
// submit()
// save()
>
Ví duï:ï View of Participating Classes (VOPC) Class
Diagram
48
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Maintaining Consistency: What to Look For
z 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
49
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Use-Case Analysis Steps
z Bổ sung các mô tả của Use-Case
z Đ/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
z Đ/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
z Hợp nhất các Analysis Class
z Checkpoints
50
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Describe Attributes and Associations
z Định nghĩa các Attribute
z Thiết lập các mối quan hệ dạng
Aggregation và Association
51
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Review: What is an Attribute?
ClassName
>
Attribute : Type = InitValue
Attribute : Type = InitValue
Attribute : Type = InitValue
Trong analysis, không nên
tốn nhiều thời gian cho
việc xác định các attribute
signatureCourseOffering
>
number :String=“100”
startTime : Time
endTime: Time
days: enumattribute
52
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Finding Attributes
z Các thuộc tính/đặc điểm của các class
z Các thông tin ddc giữ lại bởi các class
z 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
53
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Review: What is an Association?
z 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
>
Student
>
Schedule
>
CourseOffering
Reflexive
association
is a pre-requisite of
>
Course
Association là một quan hệ cấu trúc
54
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Review: What are Roles?
z “Nhân vật” mà một class “đóng vai” trong
association
Department head
>
Professor
>
Department
>
CourseOffering
Instructor
Role Name
Pre-requisites
>
Course
55
OOAD Sử dụng UML - Phân tích Use-Case
Dương Anh Đức 9/2000
Ví duï:ï Multiple Associations
CourseOffering
>
Schedule
>
primaryCourses
alternateCourses
CourseOffering
>
Schedule
> add student to
remove student from
Các Multiple