Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Use-Case Analysis
Bổsung Use-Case Description
zVớ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
zVớ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
zHợp nhất các Analysis Class
zCheckpoints
te : 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 association phải phản ánh multiple roles 56 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Review: Multiplicity z Không mô tả z Duy nhất một z Zero hoặc nhiều (many, unlimited) z Một hoặc nhiều z Zero hoặc 1 z Một đoạn z Nhiều đoạn rời nhau * 1 0..* 1..* 0..1 2..4 2, 4..6 57 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Ví duï:ï Multiplicity Bản số 0..4 0..2 primaryCourses alternateCourses 0..* 0..* 0..*1 > Student > Schedule > CourseOffering 58 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Review: Navigability z Khả năng định hướng từ associating class đến target class Class1 Class2 Hai chiều Một chiều Class1 Class2 59 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Ví duï:ï Navigability 1-way navigation 1 1 > RegisterForCoursesForm > RegistrationController 2-way navigation 0..4 0..2 primaryCourses alternateCourses 0..* 0..* > Schedule > CourseOffering 60 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Review: What is Aggregation? z Một dạng đặc biệt của association dùng để mô hình hóa một mối quan hệ toàn thể-bộ phận giữa toàn thể và các phần của nó Whole/aggregate part 0..4 0..2 primaryCourses alternateCourses 0..* 0..* > Schedule > CourseOffering 1> Student 0..* 61 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Association or Aggregation? z Xem xét – Ngữ cảnh, các đặc trưng độc lập của Class2 Class1 Class2 association Khi cảm thấy nghi ngờ hãy dùng association Class1 Class2aggregation 62 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Association Class z Một class “được gắn” vào một association z Chứa các thuộc tính của relationship z Một thể hiện / 1 link ScheduleOfferingInfo status // mark as selected() // mark as cancelled() // is selected?() > CourseOffering > Schedule > 0..* 0..4 primaryCourses alternateCourses 0..* 0..2 PrimaryScheduleOfferingInfob grade // is enrolled in?() // mark as enrolled in() // mark as committed() > 63 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Finding Relationships 1: PerformResponsibility :ClientCollaboration Diagram :Supplier Link Client Supplier Association Class Diagram 0..* Prime suppliers 0..* Supplier PerformResponsibility() Client Tạo relationship cho mọi link! 64 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Ví duï:ï VOPC: Finding Relationships RegisterForCoursesForm // create schedule () // display course offerings () // display blank schedule // select 4 primary and 2 alternate offerings() > 1 1 1 0..* Schedule // create with offerings() > RegistrationController // get course offerings() // create schedule with offerings > // get course offerings(forSemester) CourseCatalogSystem > Student // add schedule (Schedule) > registrant 0..1 0..1 0..1 1 currentSchedule 65 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Ví duï:ï VOPC: Finding Relationships (contd) ScheduleOfferingInfo status // mark as selected() // mark as cancelled() // is selected?() > PrimaryScheduleOfferingInfob grade // is enrolled in?() // mark as enrolled in() > CourseOffering number : String = "100" startTime : Time endTime : Time days : Enum // add student() // cancel() // still open?() // save() > Schedule // cancel(theOffering : CourseOffering) // submit() // any conflicts?() // create with offerings() > 0..* 0..4 alternateCourses0..* 0..2 primaryCourses 66 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 67 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Describing Analysis Mechanisms z Tập hợp tất cả analysis mechanisms trong 1 danh sách z Vẽ một ánh xạ các client classes đến các analysis mechanism z Xác định các đặc trưng của Analysis Mechanisms Analysis Class Analysis Mechanism(s) 68 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Ví duï:ï Describing Analysis Mechanisms z Ánh xạ giữa Analysis class và analysis mechanism Analysis Class Analysis Mechanism(s) Student Schedule CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Persistency, Legacy Interface Distribution Persistency, Security 69 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Ví duï:ï Describing Analysis Mechanisms (cont.) z Các đặc trưng của Analysis mechanism z Persistency của Schedule class: – Granularity: 1 đến 10 Kbytes / sản phẩm – Volume: tối đa 2,000 schedule – Access frequency z Create: 500 lần / ngày z Read: 2,000 lần / giờ z Update: 1,000 lần / ngày z Delete: 50 lần / ngày – Etc. 70 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 71 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Unify Analysis Classes > > >> 72 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Evaluate Your Results Supplementary Specification Glossary Design Model Analysis Classes Use-Case Model 73 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 74 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Checkpoints: Analysis Classes z Các class có hợp lý không? z Tên của các class có phản ánh đúng vai trò của chúng? z Class có biểu diễn 1 single well-defined abstraction? z Tất cả các attribute và responsibility có gắn kết với nhau về mặt chức năng không? z Class có cung cấp các hành vi được y/c? z Tất cả các y/c cụ thể đã được thể hiện trên class chưa? (continued) 75 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Checkpoints: Use-Case Realizations z Tất cả các luồng chính và luồng con đã được điều khiển chưa, bao gồm cả các t/h ngoài lệ? z Đã tìm thấy tất cả các đối tượng cần thiết? z Đã phân phối một cách rõ ràng tất cả các hành vi về các đối tượng chưa? z Các hành vi có được phân phối về đúng đối tượng không? z Các interaction diagrams nằm ở đâu, mối quan hê gwiax chúng có rõ ràng và phù hợp không? 76 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Review: Use-Case Analysis z Mục tiêu của Use-Case Analysis là gì? z Một analysis class là gì? Cho biết tên và mô tả về 3 analysis stereotype. z Use-case realization là gì? z Mô tả một vài hoạt động khảo sát when đặt các trách nhiệm cho các analysis class. z Bao nhiêu interaction diagram phải được xây dựng trong giai đoạn Use-Case Analysis? 77 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Exercise: Use-Case Analysis, Part 2 z Hãy cho biết các khái niệm sau: – Các Requirements artifact, đặc biệt là đặc tả bổ sung – Các cơ chế phân tích có thể – Các flow of events interaction diagram cho một use case cụ thể (continued) 78 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Exercise: Use-Case Analysis, Part 2 (cont.) z Với mỗi use case hãy xác định các dữ kiện sau: – Các thuộc tính và các mối quan hệ của Analysis class – Các cơ chế phân tích Analysis class (continued) 79 OOAD Sử dụng UML - Phân tích Use-Case Dương Anh Đức 9/2000 Exercise: Use-Case Analysis, Part 2 (cont.) z Xây dựng các lược đồ sau: – VOPC class diagram, chứa các analysis class, stereotype của chúng, nhiệm vụ, các attribute, và relationship. – Ánh xạ Analysis class với các cơ chế phân tích
File đính kèm:
- Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Use-Case Analysis.pdf