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

Tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Subsystem: 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 12: Thiết kế Subsystem 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ế Subsystem và vị trí của công đoạn này trong qui trình w Định nghĩa các hành vi đươc mô tả trong interfaces của subsystem dưới dạng collaboration của các class chưa bên trong w Lập sưu liệu về cấu trúc bên trong của subsystem w Xác định các phụ thuộc cào các phần tử bên ngoài subsystem 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ế Subsystem 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 ...

pdf32 trang | Chia sẻ: hunglv | Lượt xem: 2011 | 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ế Subsystem, để 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 12: Thiết kế Subsystem 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ế Subsystem và vị trí của công đoạn này trong qui trình w Định nghĩa các hành vi đươc mô tả trong interfaces của subsystem dưới dạng collaboration của các class chưa bên trong w Lập sưu liệu về cấu trúc bên trong của subsystem w Xác định các phụ thuộc cào các phần tử bên ngoài subsystem 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ế Subsystem 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ế Subsystem Subsystem DesignUse-Case Realization Use-Case Realization (updated) Design Subsystems and Interfaces Design Subsystems and Interfaces (updated) Design ClassesDesign Guidelines PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 5 w Subsystem là sự “kết hợp” giữa package và class w Hiện thực hóa 1 hoặc nhiều interfaces định nghĩa hành vi của nó > Subsystem Name Interface Subsystem > Subsystem Name Interface Realization (Canonical form) Realization (Elided form) > Interface Nhắc lại: Subsystems và Interfaces PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 6 Chìa khóa là abstraction và encapsulation A > B > C > Subsystem Guidelines wMục tiêu § Giảm thiểu kết nối § Có tính cơ động, tương thích plug-and-play § Cách ly các thay đổi § Tiến hóa độc lập w Những đề nghị § Đừng khảo sát chi tiết, chỉ interfaces § Chỉ phụ thuộc vào interfaces khác PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 7 Nhắc lại: Các qui ước mô hình hóa CourseCatalogSystem > ICourseCatalogSystem ICourseCatalogSystem CourseCatalogSystem > CourseCatalogSystem >Interfaces start with an “I” > package > class PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 8 Các bước thiết kế Subsystem w Phân bố các hành vi của Subsystemcho các phần tử của nó w Lập sưu liệu về các phần tử của Subsystem wMô tả các phụ thuộc của Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 9 Các bước thiết kế Subsystem w Phân bố các hành vi của Subsystemcho các phần tử của nó w Lập sưu liệu về các phần tử của Subsystem wMô tả các phụ thuộc của Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 10 CourseCatalogSystem >ICourseCatalogSystem getCourseOfferings() > subsystem responsibility Các nhiệm vụ của Subsystem w Các interface operation xác định nhiệm vụ của Subsystem w Interface operations được hiện thực hóa bởi § Internal class operations § Internal subsystem operations PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 11 Phân bố nhiệm vụ của Subsystem w Xác định các phân tử thiết kế mới, hoặc dùng lại cái có sẵn, (chẳng hạn, các class hay subsystem) w Gán trách nhiệm của subsystem cho các phần tử của nó w Tích hợp các cơ chế khả dụng (persistence, distribution, …) w Lập sưu liệu về collaboration giữa các phần tử thiết kế trong “interface realizations” § Một hay nhiều interaction diagrams/interface operation § Class diagram(s) chứa các quan hệ cần thiết w Tham khảo lại phần thiết kế kiến trúc § Chỉnh subsystem boundaries và các phụ thuộc, nếu cần PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 12 Qui ước: Subsystem Interaction Diagrams Subsystem Client Subsystem Proxy Design Element 1 performResponsibility( ) Op1() subsystem responsibility Op2() Design Element 2 Op3() Op4() Internal subsystem interactions Không hiển thị Subsystem interface PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 13 Ví dụ: CourseCatalogSystem Subsystem 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( ) 4: // display course offerings( ) 2: // get course offerings( ) 9: // add schedule(Schedule) 3: getCourseOfferings(Semester) 5: // display blank schedule( ) At this, point the Submit Schedule subflow is executed. 6: // select 4 primary and 2 alternate offerings( ) 7: // create schedule with offerings( ) 8: // create with offerings( ) A blank schedule is displayed for the students to select offerings subsystem responsibility Legacy RDBMS Database Access PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 14 Analysis Class Analysis Mechanism(s) Student CourseOffering Course RegistrationController Persistency, Security Persistency, Legacy Interface Persistency, Legacy Interface Distribution Tích hợp cơ chế kiến trúc: Persistency w Bảng ánh xạ Analysis-Class với các cơ chế kiến trúc có từ phân tích Use-Case Schedule Persistency, Security OODBMS Persistency đã khảo sát trong Use-Case Design OODBMS Persistency RDBMS Persistency PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 15 w Cung cấp khả năng truy suất đến thư viện các class cần để cài đặt JDBC § Cung cấp java.sql package w Tạo các DBClass cần thiết § Một DBClass/một persistent class § Course Offering persistent class => DBCourseOffering Nhắc lại: Các bước tích hợp JDBC Ư Ư - Done (còn tiếp) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 16 w Tích hợp các DBClass vào thiết kế § Gán cho các package/layer • DBCourseOffering đặt vào CourseCatalogSystem subsystem § Thêm các quan hệ với persistency clients • Persistency clients là CourseCatalogSystem subsystem clients w Tạo/Hiệu chỉnh các interaction diagram mô tả: § Việc khởi tạo Database § Truy xuất đến Persistent class: Create, Read, Update, Delete Nhắc lại: Các bước tích hợp JDBC (tt.) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 17 Ví dụ: Local CourseCatalogSystem Subsystem Interaction Subsystem Proxy RDBMS Read Retrieve all available course offerings for the current semester CourseCatalog System Client : CourseCatalogSystem : DBCourseOfferring : CourseOffering : CourseOfferingList : ResultSet: Course Catalog: Statement: Connection 1. getCourseOfferings(Semester) 1.1. read(string) 1.1.1. createStatement( ) 1.1.2. executeQuery(String) sql statement is passed in specifying the search criteria -- course offerings in the current semester 1.1.4. new( ) Repeat these operations for each element returned from the executeQuery() command. The CourseOfferingList is loaded with the data retrieved from the database. The getData and setData operations are called for each attribute in the each retrieved class instance. 3. setData( ) Create a list to hold all retrieved course offerings Add the retrieved course offering to the list to be returned 2. getString( ) 1.1.3. new( ) 4. add(CourseOffering) 1.1.2.1. // executeQuery( ) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 18 Ví dụ: Billing System Subsystem Send student and tuition to the Billing System, which will do the actual billing to the student for the schedule. : Registrar : CloseRegistrationForm : CourseOffering : Schedule : Student. : IBillingSystem : ICourseCatalogSystem : CloseRegistrationController Close registration for each course offering Retrieve a list of course offerings for the current semester If the maximum number of selected primary courses have not been committed, select alternate course offerings). Currently assuming tuition based on number of offerings taken and certain attributes of students. If different offerings get different prices this will change slightly. Repeat twice this is for simplicity; realistically, an indefinite number of iterations could occur) Finally commit or cancel the course offering once all leveling has occurred 1. // close registration( ) 2. // close registration( ) 2.2. // close registration( ) 1.1. // is registration open?( ) 2.6. submitBill(Student, double) 2.3. // level( ) 2.1. getCourseOfferings(Semester) 2.4. // close( ) 2.5. getTuition( ) subsystem interface subsystem responsibility PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 19 Ví dụ: Local BillingSystem Subsystem Interaction Billing System Client : BillingSystem : StudentBillingTransaction : BillingSystemInterface : Billing System : Student. 1. submitBill(Student, double) 1.1. create(Student, double) 1.2. submit(StudentBillingTransaction) 1.1.1. // get contact info( ) Retrieve the information that must be included on the bill 1.2.1. // open connection( ) 1.2.2. // process transaction( ) 1.2.3. // close connection( ) Subsystem Proxy PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 20 Các bước thiết kế Subsystem w Phân bố các hành vi của Subsystemcho các phần tử của nó w Lập sưu liệu về các phần tử của Subsystem wMô tả các phụ thuộc của Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 21 Ví dụ: CourseCatalogSystem Subsystem Elements Subsystem Proxy Subsystem Interface DBCourseOfferring create() : CourseOffering read(searchCriteria : string) : CourseOfferingList CourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList > ICourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList (from External System Interfaces) > Statement executeQuery() executeUpdate() (from java.sql) Connection createStatement() (from java.sql) 1 1 CourseOfferingList new() add() (from University Artifacts) CourseOffering new() setData() (from University Artifacts) > 1 0..* ResultSet getString() (from java.sql) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 22 Ví dụ: Billing System Subsystem Elements StudentBillingTransaction create(forStudent : Student, forAmount : double) Student. // get contact info() (from University Artifacts) > BillingSystem submitBill(forStudent : Student, forTuition : double) > BillingSystemInterface submit(theTransaction : StudentBillingTransaction) 0..1 1 IBillingSystem submitBill() (from External System Interfaces) > Subsystem Proxy Subsystem Interface PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 23 Các bước thiết kế Subsystem w Phân bố các hành vi của Subsystemcho các phần tử của nó w Lập sưu liệu về các phần tử của Subsystem wMô tả các phụ thuộc của Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 24 Mềm dẻo Describing Subsystem Dependencies w Subsystem phụ thuộc vào một subsystem w Subsystem phụ thuộc vào package Server Client Support > Server Support > Dùng nhưng cẩn thận Client Support > Supporting Types PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 25 Ví dụ: CourseCatalogSystem Subsystem Dependencies java.sql (from Middleware) CourseCatalogSystem (from Business Services) > External System Interfaces (from Business Services) University Artifacts (from Business Services) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 26 Ví dụ: BillingSystem Subsystem Dependencies BillingSystem (from Business Services) > External System Interfaces (from Business Services) University Artifacts (from Business Services) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 27 Các bước thiết kế Subsystem w Phân bố các hành vi của Subsystemcho các phần tử của nó w Lập sưu liệu về các phần tử của Subsystem wMô tả các phụ thuộc của Subsystem w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 28 Checkpoints: Thiết Subsystems w Đã định nghĩa realization association cho mỗi interface đề nghị bởi subsystem? w Đã định nghĩa một dependency association cho mỗi interface dùng bởi subsystem chưa? w Hãy chắc chắn rằn, không có một phần tử nào của subsystem có public visibility. w Mỗi operation trên một interface được hiện thực hóa bởi subsystem đã được mô tả trên một interaction diagram chưa ? Nếu chưa, operation có được hiển thực hóa bởi một class đơn không? Khi đó, có dề thấy đó là ánh xạ 1:1 giữa class operation và interface operation? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 29 Nhắc lại: Thiết kế Subsystem Design wMục đích của thiết kế Subsystem là gì ? w Cần tạo ra bao nhiêu interaction diagrams trong khi thiết kế Subsystem? w Tại sao phải đặt các phụ thuộc của một subsystem lên subsystem interface? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 30 (còn tiếp) Bài tập: Thiết kế Subsystem w Cho biết các điều sau: § Định nghĩa các subsystem, các interface và các quan hệ của chúng với các phần tử thiết kế khác (các lược đồ trong ngữ cảnh của subsystem) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 31 (còn tiếp) Bài tập: Thiết kế Subsystem (tt.) w Với một subsystem cụ thể, hãy xác định: § Các phần tử thiết kế chứa trong subsystem và các quan hệ của chúng § Các cơ chế kiến trúc khả dụng § Các interaction cần để cài đặt các subsystem interface operation PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 32 Bài tập: Thiết kê Subsystem Design (tt.) w Với một subsystem cụ thể, hãy tạo các lược đồ: § “Interface realizations” • Interaction diagram cho mỗi interface operation • Class diagram chưa các phần tử của subsystem hiện thực hóa các chức năng của interface và quan hệ của chúng § Class diagram thể hiện subsystem và tất cả các phụ thuộc lên các external package và subsystem (subsystem dependencies class diagram)

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

  • pdfBAI12.PDF