Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Use-Case Analysis

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

pdf79 trang | Chia sẻ: maiphuongtl | Ngày: 11/07/2013 | Lượt xem: 2110 | Lượt tải: 3download
Bạn đang xem nội dung 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, để tải tài liệu về máy 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