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

Tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Use-Case: PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 1 Phân tích và Thiết kế Hướng đối tượng dùng UML Module 11: Thiết kế Use-Case PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 2 Mục tiêu w Tìm hiểu mục đích của bước thiết kế Use-Case và thời điểm thực hiện công đoạn này w Kiểm định tính nhất quán trong cài đặt use- case w Tinh chỉnh use-case realizations có được từ bước phân tích Use-Case dựa trên các phần tử thiết kế đã được xây dựng PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 3 Vị trí của Thiết kế Use-Case 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 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 4 Tổng quan...

pdf38 trang | Chia sẻ: hunglv | Lượt xem: 1313 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Use-Case, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 1 Phân tích và Thiết kế Hướng đối tượng dùng UML Module 11: Thiết kế Use-Case PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 2 Mục tiêu w Tìm hiểu mục đích của bước thiết kế Use-Case và thời điểm thực hiện công đoạn này w Kiểm định tính nhất quán trong cài đặt use- case w Tinh chỉnh use-case realizations có được từ bước phân tích Use-Case dựa trên các phần tử thiết kế đã được xây dựng PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 3 Vị trí của Thiết kế Use-Case 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 PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 4 Tổng quan về Thiết kế Use-Case Supplementary Specifications Use-Case DesignUse-Case Realization Use-Case Realization Design Subsystems and Interfaces Design Classes Use Case PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 5 Các bước thiết kế Use-Case wMô tả tương tác giữa các Design Object w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional) wMô tác các hành vi liên quan đến tính Persistence w Tinh chỉnh mô tả về các Flow of Events w Hợp nhất các Class và các Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 6 Nhắc lại: Use-Case Realization Class Diagrams Sequence Diagrams Use Case Use-Case Model Design Model Use Case Use-Case Realization Collaboration Diagrams PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 7 Các bước thiết kế Use-Case wMô tả tương tác giữa các Design Object w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional) wMô tác các hành vi liên quan đến tính Persistence w Tinh chỉnh mô tả về các Flow of Events w Hợp nhất các Class và các Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 8 Sequence Diagrams Class Diagrams Tinh chỉnh Use-Case Realization w Xác định các object có tham gia vào Use-Case w Phân công trách nhiệm cho các object wMo hình hóa các thông điệp giữa các object wMô tả các kết quả xử lý từ các thông điệp wMô hình hóa quan hệ giữa các class liên quan PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 9 Các bước tinh chỉnh Use-Case Realization w Thay thế các class khả dụng bằng các subsystem interface kết hợp với chúng w Từng bước tích hợp các cơ chế kiến trúc khả dụng w Hiệu chỉnh use-case realization § Các Interaction diagram § View of participating classes (VOPC) class diagram(s) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 10 Tất cả các analysis class khác được ánh xạ thành các design class BillingSystem // submit bill() > BillingSystem > IBillingSystem CourseCatalogSystem // get course offerings() > CourseCatalogSystem > ICourseCatalogSystem Analysis Classes Design Elements Ví dụ: Tích hợp Subsystem Interfaces getCourseOfferings(forSemester : Semester) : CourseOfferingList submitBill(forTuition : Double, forStudent : Student) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 11 Ví dụ: Trước khi tích hợp SubSystem Interfaces Phải thay bằng subsystem interface : Student : RegisterForCoursesForm : RegistrationController : Schedule : Student: CourseCatalogSystem Một ds các học phần có thể đăng ký trong HK được hiển thị Student muốn Tạo mới 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( ) A blank schedule is displayed for the students to select offerings 2.1.2. // add schedule(Schedule) Tại vị trí này Submit Schedule subflow được thực hiện PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 12 Ví dụ: Sau khi tích hợp Subsystem Interface : Student : RegisterFor CoursesForm : Registration Controller : Schedule : Student: ICourseCatalog System 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( ) 2.1.2: // add schedule(Schedule) 1.1.1: getCourseOfferings(Semester) 1.3: // display blank schedule( ) Tại vị trí này Submit Schedule subflow được thực hiện 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 Đã thay vào subsystem interface PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 13 Ví dụ: Tích hợp Subsystem Interfaces (VOPC) ICourseCatalogSystem getCourseOfferings() initialize() (from External System Interfaces) > RegisterForCoursesForm // submit schedule() // display course offerings() // display schedule() // save schedule() // create schedule() // select 4 primary and 2 alternate offerings() // display blank schedule() (from Registration) > Student. - name - address - studentID : int // addSchedule() // getSchedule() // hasPrerequisites() // passed() (from University Artifacts) > RegistrationController // submit schedule() // save schedule() // create schedule with offerings() // getCourseOfferings() (from Registration) > 0..1 0..1registrant 1 1 Schedule semester // submit() // save() // any conflicts?() // new() (from University Artifacts) > 0..* 1 0..1 0..1 currentSchedule CourseOffering number startTime endTime days // addStudent() // removeStudent() // new() // setData() (from University Artifacts) > 0..* 0..4 primaryCourses 0..* 0..2 alternateCourses 0..* 1 Subsystem interface PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 14 Analysis Class Các cơ chế Student CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Persistency, Legacy Interface Distribution Tích hợp các cơ chế kiến trúc: Security w Bảng ánh xạ các Analysis-Class với các cơ chế kiến trúc có từ bước phân tích Use-Case Schedule Persistency, Security PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 15 Analysis Class Các cơ chế Student CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Persistency, Legacy Interface Distribution Tích hợp các cơ chế kiến trúc: Distribution w Bảng ánh xạ các Analysis-Class với các cơ chế kiến trúc có từ bước phân tích Use-Case Schedule Persistency, Security PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 16 Các bước thiết kế Use-Case wMô tả tương tác giữa các Design Object w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional) wMô tác các hành vi liên quan đến tính Persistence w Tinh chỉnh mô tả về các Flow of Events w Hợp nhất các Class và các Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 17 Tăng mức độ trừu tượng Đóng gói các Subsystem Interaction w Có thể mô tả các tương tác dưới nhiều mức độ khác nhau w Tương tác giữa các Subsystem có thể mô tả bởi các interaction diagram của chúng PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 18 Khi nào đóng gói Sub-Flows trong Subsystem w Sub-flow xuất hiện trong nhiều use-case realizations w Sub-flow có tiềm năng tái sử dụng w Sub-flow phức tạp và dễ dàng đóng gói w Sub-flow do 1 người/đội đảm nhiệm w Sub-flow tạo ra một kết quả xác định tốt w Sub-flow được gói gọn trong một component trong mô hình cài đặt PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 19 > MySubsystemInterfaceA op1() Op1() :InterfaceA Guidelines: Đóng gói Subsystem Interactions w Các Subsystem phải được biểu diễn với các interface của chúng trong interaction diagrams w Các thông điệp đến subsystems được mô hình như các thông điệp đến subsystem interface w Các thông điệp đến subsystems tương ứng với các operation của subsystem interface w Các tương tác trong subsystems được mô hình trong Subsystem Design PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 20 Lợi ích của việc đóng gói Subsystem Interaction w Use-case realization bớt hỗn độn w Use-case realization có thể được tạo trước khi xây dựng thiết kế bên trong của subsystems (parallel development) w Use-case realizations generic hơn và dễ dàng thay đổi (subsystems có thể được thay thế) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 21 Dùng các subsystem interface như điểm đồng bộ hóa Parallel Subsystem Development w Chú ý vào các y/c ảnh hưởng đến subsystem interfaces w Phác thảo các interface cần thiết wMo hình hóa các thông điệp băng qua ranh giới các subsystem w Vẽ interaction diagrams dùng các subsystem interfaces cho mỗi use case w Tinh chỉnh các interface cần để cung cấp các thông điệp w Phát triển song song các subsystem PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 22 Các bước thiết kế Use-Case wMô tả tương tác giữa các Design Object w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional) wMô tác các hành vi liên quan đến tính Persistence w Tinh chỉnh mô tả về các Flow of Events w Hợp nhất các Class và các Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 23 Mô tả các hành vi liên quan đến cơ chế Persistence wMô tả các hành vi liên quan đến cơ chế Persistence § Mô hình hóa các Transaction § Lưu (ghi) các Persistent Object § Đọc các Persistent Object § Hủy các Persistent Object PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 24 Mô hình hóa các Transaction w Transaction là gì? § Lời gọi đến các Atomic operation § “Tất cả hoặc không operation nào” § Cung cấp tính bền vững w Modeling Options § Văn bản (scripts) § Các thông điệp hiện w Error conditions § Có thể đòi hỏi các interaction diagrams riêng biệt § Rollback § Failure modes PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 25 Analysis Class Analysis Mechanism(s) Student CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Persistency, Legacy Interface Distribution Tích hợp các cơ chế kiến trúc: Persistency w Bảng ánh xạ các Analysis-Class với các cơ chế kiến trúc có từ bước phân tích Use-Case Schedule Persistency, Security Legacy Persistency (RDBMS ) deferred to Subsystem Design OODBMS Persistency RDBMS Persistency PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 26 Các bước thiết kế Use-Case wMô tả tương tác giữa các Design Object w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional) wMô tác các hành vi liên quan đến tính Persistence w Tinh chỉnh mô tả về các Flow of Events w Hợp nhất các Class và các Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 27 Detailed Flow of Events Description Options w Annotate the interaction diagrams : Actor1 : ClassA : ClassB 1: Do Something 2: Do Something More Scripts can be used to describe the details surrounding these messages. Notes can include more information about a particular diagram element Script Note PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 28 Các bước thiết kế Use-Case wMô tả tương tác giữa các Design Object w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional) wMô tác các hành vi liên quan đến tính Persistence w Tinh chỉnh mô tả về các Flow of Events w Hợp nhất các Class và các Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 29 Design Model Unification Considerations w Tên của các phần tử mô hình phải diễn tả được chức năng của chúng w Trộn các phần tử giống nhau w Dùng phép kế thừa với các phần tử trừu tượng w Giữ cho model elements và flows of events bền vững PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 30 Các bước thiết kế Use-Case wMô tả tương tác giữa các Design Object w Đơn giản hóa các Interaction Diagram nhờ vào các Subsystem (optional) wMô tác các hành vi liên quan đến tính Persistence w Tinh chỉnh mô tả về các Flow of Events w Hợp nhất các Class và các Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 31 Checkpoints: Design Model w Việc chia thành package/subsystem có hợp lý và bền vững? w Tên của các packages/subsystems có gợi nhớ? w Các public package class and các subsystem interface có cung cấp một tập các dịch vụ duy nhất và bền vững hợp lý? w Các phụ thuộc giữa các package/subsystem có tương ứng với quan hệ giữa các class chứa bên trong không? w Các class chứa trong package có phù hợp với tiêu chí phân chia thành package? w Có thể tách package/subsystem thành hai? w Tỉ lệ các packages/subsystems và số lượng các class có hợp lý không? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 32 Checkpoints: Use-Case Realizations w Tất cả các luồng chính và sub-flows trong vong lặp này đã xử lý chưa? w Tất cả các hành vi đã phân bổ cho các phần tử thiết kế chưa? w Việc phân bố này có chính xác không? w Nếu có vài interaction diagrams dành cho use- case realization, việc xác định collaboration diagrams nào liên quan đến flow of events nào có dễ dàng không? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 33 Nhắc lại: Use-Case Design wMục tiêu của Use-Case Design là gì? w Việc đóng gói các subsystem interaction có ý nghĩa gì ? Tại sao đây là việc hữu ích? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 34 (continued) Bài tập: Use-Case Design, Part 1 w Thực hiện các việc sau: § Analysis use-case realizations (VOPCs and interaction diagrams) § The analysis-class-to-design-element map § The analysis-class-to-analysis-mechanism map § Analysis-to-design-mechanism map § Patterns of use for the architectural mechanisms PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 35 (continued) Bài tập: Use-Case Design, Part 1 (cont.) w Identify the following for a particular use case: § The design elements that replaced the analysis classes in the analysis use-case realizations § The architectural mechanisms that affect the use- case realizations § The design element collaborations needed to implement the use case § The relationships between the design elements needed to support the collaborations PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 36 Bài tập: Use-Case Design, Part 1 (cont.) w Produce the following for a particular use case: § Design use-case realization • Interaction diagram(s) per use-case flow of events that describes the DESIGN ELEMENT collaborations required to implement the use case • Class diagram (VOPC) that includes the DESIGN ELEMENTS that must collaborate to perform the use case, and their relationships PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 37 (continued) Bài tập: Use-Case Design, Part 2 (optional) w Given the following: § The architectural layers, their packages, and their dependencies § All design use-case realization VOPCs (design elements, their packages, and their relationships) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 38 Bài tập: Use-Case Design, Part 2(optional) (tt.) w Identify the following: § Any updates to the package relationships needed to support the class relationships w Produce the following diagrams: § Refined class diagram that contains all packages and their dependencies (organized by layer)

Các file đính kèm theo tài liệu này:

  • pdfBAI11.PDF
Tài liệu liên quan