PT & TK Hướng đối tượng – Thiết kế kiến trúcMuc tiêu: Use-Case Analysis Analysis vị trí của nó trong chu kỳ sống của QT PTPM flow of events use-case về các class của nó, thông qua việc x
Trang 1Phân Tích và Thiết kế hệ thống
Sử Dụng UML
Use-Case Analysis
Trang 2PT & TK Hướng đối tượng – Thiết kế kiến trúc
Muc tiêu: Use-Case Analysis
Analysis vị trí của nó trong chu kỳ sống của
QT PTPM
flow of events
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
hóa collaboration giữa các thể hiện của các class đã xác định
Trang 3Designer
Architectural Analysis
Architecture Reviewer
Review the Design
Review the Architecture
Use-Case Analysis
Architectural Design Concurrency Describe Distribution Describe
Class Design
Subsystem Design
Use-Case
Use-Case Analysis trong ngữ cảnh
Trang 4PT & TK Hướng đối tượng – Thiết kế kiến trúc
Use-Case Modeling Guidelines
Trang 5Các bước thực hiện phân tích Use-Case
§ Tìm các Class từ Use-Case Behavior
§ Phân bổ Use-Case Behavior về các Class
§ 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
Trang 6PT & TK Hướng đối tượng – Thiết kế kiến trúc
w 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
w 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
w Hợp nhất các Analysis Class
Các bước thực hiện phân tích Use-Case
Trang 7• Hệ thống hiển thị một danh sách các lớp học (course
offerings).
• 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ũ.
Bổ sung đặc tả Use-Case
Trang 8PT & TK Hướng đối tượng – Thiết kế kiến trúc
w Bổ sung Use-Case Description
w 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
w 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
w Hợp nhất các Analysis Class
Các bước thực hiện phân tích Use-Case
Trang 9Professor name empID create( ) save( ) delete( ) change( )
Class Name Attributes Operations
Review: Class
§ Properties (attributes)
§ Behavior (operations)
§ Relationships
§ Ngữ nghĩa (Semantics)
Trang 10PT & TK Hướng đối tượng – Thiết kế kiến trúc Class Diagrams
Sequence Diagrams
Use Case
Use Case Use-Case Realization
Collaboration Diagrams
Review: Use-Case Realization
Trang 11phân bổ về cho các analysis class
Trang 12PT & TK Hướng đối tượng – Thiết kế kiến trúc
<<control>>
<<boundary>>
<<entity>>
System boundary
Use-case behavior coordination
System information
Thế nào là một Analysis Class?
Trang 13Use Cases Analysis
Use-Case Analysis
Các Analysis Class: Bước đầu tiến đến cài đặt
Trang 14PT & TK Hướng đối tượng – Thiết kế kiến trúc Ph? thu?c mơi tru?ng
<<boundary>>
Analysis class stereotype
a2 Boundary Class?
ngoài hệ thống
§ Các User interface class
§ Các System interface class
§ Các Device interface class
case
Trang 15Mô hình hóa s? tuong tác gi?a system và môi tru?ng c?a nó
Trang 16PT & TK Hướng đối tượng – Thiết kế kiến trúc
Course Catalog System Register for Courses
Ví dụï: Tìm kiếm các Boundary Class
Trang 17Tập trung vào các nhiệm vụ, chứ không phải chi tiết!
Guidelines: Boundary 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
§ 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
Trang 18PT & TK Hướng đối tượng – Thiết kế kiến trúc
Use Case
Architectural Analysis
Abstractions
Thế nào là một Entity Class?
Trang 19Lưu trữ và quản trị các thông tin trong system
Trang 20PT & TK Hướng đối tượng – Thiết kế kiến trúc
Ví dụï: Tìm kiếm các Entity Class
§ 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 21CourseOffering
Schedule
Ví dụï: Chọn ứng viên cho các Entity Class
Trang 22PT & TK Hướng đối tượng – Thiết kế kiến trúc
Account balance
name number
Withdraw() CreateStatement()
Checking Withdraw()
Savings
GetInterest() Withdraw()
Superclass (parent)
Subclasses
Generalization Relationship
Review: Generalization
w Một class chia sẻ cấu
trúc và/hoặc hành vi
của một hay nhiều
class
w Mối quan hệ Là một
dạng của
w Trong phân tích, sử
dụng ở mức độ đơn
giản, sơ sài
Trang 23Tìm Generalization: Generalization của các Class
Savings Checking Stock
Trang 24PT & TK Hướng đối tượng – Thiết kế kiến trúc
Tìm Generalization: Specialization của các Class
Trang 25Student name address
FulltimeStudent
studentID
gradDate
ParttimeStudent maxNumCourses
Part-timeStudent
name address numberCourses
Full-timeStudent
name address studentID gradDate
Trang 26PT & TK Hướng đối tượng – Thiết kế kiến trúc
Use Case
Phụ thuộc use-case, độc lập môi trường
<<control>>
Analysis class stereotype
Thế nào là một Control Class?
Trang 27Vai trò của một Control Class
Ði?u ph?i các hành vi c?a use-case
Trang 28PT & TK Hướng đối tượng – Thiết kế kiến trúc
Course Catalog System Register for Courses
Student
<<control>>
RegistrationController
Ví dụ: Tìm các Control Class
Trang 29Student Register for Courses Course Catalog System
Trang 30PT & 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 Hợp nhất các Analysis Class
Các bước thực hiện phân tích Use-Case
Trang 31Sequence Diagrams Collaboration Diagrams
Distribute Use-Case Behavior to Classes
§ 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
Trang 32PT & TK Hướng đối tượng – Thiết kế kiến trúc
Guidelines: Allocating Responsibilities to Classes
§ Các Boundary Class
• Các hành vi liên quan đến sự giao tiếp với actor
§ Các Entity Class
• Các hành vi liên quan đến dữ liệu được gói trong một abstraction
§ Các 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)
Trang 33Guidelines: Allocating Responsibilities to Classes (cont.)
w 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 một class mới, để 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 các class cần để thực hiện n/v
Trang 34PT & TK Hướng đối tượng – Thiết kế kiến trúc
1.1: PerformAnother Responsibility
The Anatomy of Sequence Diagrams
Hierarchical Message
Numbering
Trang 35Ví 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( )
2 // select 4 primary and 2 alternate offerings( )
2.1 // create schedule with offerings( )
2.1.1 // create with offerings( )
Trang 36PT & TK Hướng đối tượng – Thiết kế kiến trúc
Ví dụ: Sequence Diagram (cont.)
: CourseOffering : Student : RegisterForCoursesForm : RegistrationController : Schedule
: Student :
Trang 38PT & TK Hướng đối tượng – Thiết kế kiến trúc
Ví dụ: Collaboration Diagram
: Student
: RegisterForCoursesForm
: RegistrationController
: Schedule : Student
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( )
Trang 39Ví duï: Collaboration Diagram (cont.)
: CourseOffering
: Student
: RegistrationController
: Schedule
: Student
: PrimaryScheduleOfferingInfob
1.1.2.2 // has pre-requisites(CourseOffering)
Trang 40PT & TK Hướng đối tượng – Thiết kế kiến trúc
AF1 AF2 AF3
Basic Flow
One Interaction Diagram Not Good Enough
Trang 41Collaboration Diagrams Vs Sequence Diagrams
w 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ể