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

Tài liệu Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế kiến trúc: 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 8: Thiết kế kiến trúc 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 công đoạn Thiết kế kiến trúc và thời điểm thực hiện công đoạn này wDiễn giải về các cơ chế thiết kế và cài đặt và cách gán chúng từ các cơ chế phân tích w Tìm hiểu về subsystems aà interfaces và vai trò của chúng trong kiến trúc hệ thống wMô tả quy trình xác định các interfaces và subsystems w Tìm hiểu các lý lẽ và các cở sở hỗ trợ cho các quyết định về kiến trúc PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 3 Architect Designer Architectural Analysis Architecture Reviewer Review the Design Review the Architecture Use-Case Analysis Architectural Design Describe Concurrency Describe Distribution Class...

pdf68 trang | Chia sẻ: hunglv | Lượt xem: 1996 | 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ế kiến trúc, để 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 8: Thiết kế kiến trúc 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 công đoạn Thiết kế kiến trúc và thời điểm thực hiện công đoạn này wDiễn giải về các cơ chế thiết kế và cài đặt và cách gán chúng từ các cơ chế phân tích w Tìm hiểu về subsystems aà interfaces và vai trò của chúng trong kiến trúc hệ thống wMô tả quy trình xác định các interfaces và subsystems w Tìm hiểu các lý lẽ và các cở sở hỗ trợ cho các quyết định về kiến trúc PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 3 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 Vị trí của Phân tích kiến trúc PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 4 Supplementary Specifications Architectural Design Software Architecture Document Design Model Design Model Design Guidelines Glossary Design Guidelines Analysis Classes Tổng quan về phân tích kiến trúc PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 5 Architectural Design Topics w Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 6 Architectural Design Topics w Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 7 Process View Deployment View Logical View Use-Case View Implementation View End-user Functionality Programmers Software management Performance Scalability Throughput System integrators System topology Delivery, installation communication System engineering Analysts/Designers Structure Mô hình kiến trúc “4+1 View” Logical View là phần có ý nghĩa về mặt kiến trúc của Design Model PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 8 Class Name Package Name Nhắc lại: Class và Package w Thế nào là class? § Là mô tả của một tập các đối tượng cùng chia xẻ các trách nhiệm, mối quan hệ, các tác vụ, thuộc tính, và ngữ nghĩa. w Thế nào là package? § Là một cơ chế dùng chung để nhóm các phần tử thành các nhóm § Là một phần tử của môhình có thể chứa bên trong các phần tử khác PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 9 Foundation Classes global Các Global Package w Toàn bộ package được sử dụng bởi tất cả các package khác w Những package này được đánh dấu là global PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 10 Architectural Design Topics w Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 11 Các cơ chế thiết kế và cài đặt Analysis Design Implementation Remote Method Invocation (RMI) Persistency Analysis Mechanism (Conceptual) Design Mechanism (Concrete) Implementation Mechanism (Actual) OODBMS RDBMS JDBC ObjectStore Java 1.2 from Sun Legacy Data New Data Distribution Persistency PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 12 w Các cơ chế kiến trúc có thể xem như các khuôn mẫu (pattern) Documenting Architectural Mechanisms Structural Aspect Behavioral Aspect Pattern Name Template Parameters Được ghi nhận trong Design Guidelines PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 13 Ví dụ: Persistency: RDBMS: JDBC ResultSet getString() : string (from java.sql) Connection createStatement() : Statement (from java.sql) Statement executeQuery(sql : String) : ResultSet executeUpdate(sql : String) : int (from java.sql) DriverManager getConnection(url, user, pass) : Connection (from java.sql) DBClass create() : PersistentClass read(searchCriteria : string) : PersistentClassList update(c : PersistentClass) delete(c : PersistentClass) > 1 1 PersistencyClient (from SamplePersistency Client) > PersistentClass getData() setData() command() new() (from SamplePersistentClass) > PersistentClassList new() add(c: PersistentClass) (from SamplePersistentClass) > 0..* 1 Roles sẽ được điền bởi designer áp dụng cơ chế PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 14 Ví dụ: Persistency: RDBMS: JDBC: Khởi tạo : DBClass : DriverManager 1. getConnection(url, user, pass) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 15 Ví dụ: Persistency: RDBMS: JDBC: Create : Connection : Statement: PersistencyClient : DBClass : PersistentClass 1. create( ) 1.1. New() 1.3. createStatement( ) 1.4. executeUpdate(String) 1.2. getData( ) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 16 Ví dụ: Persistency: RDBMS: JDBC: Read : Connection : Statement : ResultSet: PersistencyClient : DBClass : PersistentClass : PersistentClassList 1. read(string) 1.1. createStatement( ) 1.2. executeQuery(string) 1.4. new() 1.5. getString( ) 1.6. setData( ) called for each attribute in the class returns a Statement 1.3. new( ) Create a list to hold all retrieved data 1.7. add(PersistentClass) Add the retrieved course offering to the list to be returned Repeat these operations for each element returned from the executeQuery() command. The PersistentClassList is loaded with the data retrieved from the database. The SQL statement built by the DBClass using the given criteria is passed to executeQuery()The criteria used to access data for the persistent class PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 17 Ví dụ: Persistency: RDBMS: JDBC: Update : DBClass: PersistencyClient : PersistentClass : Connection : Statement 1. update(PersistentClass) 1.2. createStatement( ) 1.1. getData( ) 1.3. executeUpdate(string) execute SQL statement PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 18 Ví dụ: Persistency: RDBMS: JDBC: Delete : PersistencyClient : DBClass : Connection : Statement 1. delete(PersistentClass) 1.1. createStatement( ) 1.2. executeUpdate(string) execute SQL statement PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 19 Deferred Tổng hợp JDBC: Các bước w Cung cấp khả năng truy cập đến class libraries cần thiết để cài đặt JDBC § Cung cấp java.sql package w Tạo các DBClass cần thiết § Một DBClass / persistent class w Tích hợp các DBClass vào thiết kế § Xếp đặt vào package/layer § Thêm các mối quan hệ từ các persistency client w Tạo/cập nhật interaction diagram để diễn tả: § Database initialization § Persistent class access: Create, Read, Update, Delete PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 20 java.sql ResultSet (from java.sql) Connection (from java.sql) Statement (from java.sql) DriverManager (from java.sql) Sample Persistency Client Package Ví dụ: Tổng hợp JDBC PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 21 Architectural Design Topics w Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 22 Analysis Classes Design Elements Quan hệ nhiều nhiều Từ Analysis Classes đến Design Elements > > > > PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 23 Xác định các Design Class w Analysis class ánh xạ thẳng thành design class nếu: § Đơn giản § Biểu diễn một single logical abstraction w Các analysis class phức tạp hơn có thể: § Tách thành nhiều class § Trở thành một package § Trở thành một subsystem (sẽ khảo sát sau) § Một tổ hợp bất kỳ … w Các analysis class đơn giản có thể trở thành một design class PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 24 PackageB +Class B1 -Class B2 PackageA Class A1 Class A3 Class A2 A B Public visibility Private visibility Chỉ các public class mới được tham chiếu từ bên ngoài package sở hữu nó Nguyên lý OO : Encapsulation Các phụ thuộc Package: Tính khả kiến của các ptử PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 25 wMột dạng trung gian giữa package (có thể chứa các phần tử khác) và class (có hành vi) w Hiện thực hoá 1 hoặc nhiều interface đị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: Subsystem và Interface PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 26 > SubsystemA InterfaceK > X() W() > SubsystemB Class B1 W() Y() Class B2 X() Class B3 Z() Class A1 W() Class A2 X() Subsystem và Interface (tt.) w Các Subsystem: § Hoàn toàn đóng gói hành vi § Thể hiện một khả năng hoàn toàn độc lập, với các interface rõ ràng (có tiềm năng tái sử dụng) § Mô hình hoá nhiều phương án cài đặt khác nhau PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 27 A > PackageB Class B1 Class B2 Client Class Encapsulation là mấu chốt ! So sánh Package với Subsystem w Subsystem cung cấp hành vi, package không w Subsystem hoàn toàn đóng gói nội dung của nó, package thì không w Subsystem dễ dàng được thay thế PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 28 Các Subsystem nâng cao mức độ trừu tượng Cách dùng Subsystem w Subsystem có thể dùng để chia system thành các phần độc lập về: § Thứ tự, cấu hình, hoặc vận chuyển § Phát triển, chừng nào mà interface còn chưa thay đổi § Triển khai trên các node tính toán phân tán § Thay đổi mà không phá vỡ các phần khác của system w Subsystem còn có thể dùng để: § Phần chia system thành các đơn vị cung cấp độ bảo mật cao đối với các tài nguyên then chốt § Biểu diễn các sản phẩm có sẵn hoặc các system nằm ngoài bản thiết kế (chẳng hạn như các component) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 29 Các gợi ý giúp xác định các Subsystem w Tìm kiếm sự cộng tác giữa các object w Tìm kiếm sự tuỳ chọn w Chú ý user interface của system w Chú ý các Actor w Tìm kiếm sự kết dính giữa các class w Xem xét sự thay thế (các mức độ service) w Xem xét sự phân bố w Xem xét sự kém bền vững PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 30 w Các Analysis classe có thể tiến hoá thành các subsystem § Các Class cung cấp các dịch vụ và/hoặc các tiện ích trọn vẹn § Các Boundary class (user interface và external system interface) w Các sản phẩm sẵn có hoặc các system nằm ngoài thiết kế § Communication software § Database access support § Các kiểu và cấu trúc dữ liệu § Các tiện ích dùng chung § Các sản phẩm ứng dụng đặc thù Các Subsystem tiềm năng PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 31 InterfaceA > Y() Z() > SubsystemK ClassA Y() Z() “Superman Class” Identifying Subsystems ? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 32 Các interface ổn định, thiết kế tốt là nền tảng cho một kiến trúc bền vững Identifying Interfaces w Mục đích § Để xác định interface của các subsystem dựa trên nhiệmvụ của chúng w Các bước § Xác định một tập các interface tiềm năng cho tất cả các subsystem § Tìm kiếm sự tương tự giữa các interface § Định nghĩa các phụ thuộc của interface § Ánh xạ các interface đến các subsystem § Định nghĩa hành vi được mô tả bới interface § Đoán gói các interface PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 33 Interface Guidelines w Đặt tên cho Interface § Thể hnện vai trò trong system wMô tả Interface § Chuyển tải các nhiệm vụ w Định nghĩa Operation § Tên phải phản ánh đúng kết quả của operation § Mô tả operation được thực hiện, tất cả các tham số và kết quả w Interface documentation § Package các thông tin hỗ trợ: sequence aà state diagrams, kế hoạch kiểm chứng, … PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 34 BillingSystem // submit bill() > BillingSystem > IBillingSystem CourseCatalogSystem // get course offerings() > CourseCatalogSystem > ICourseCatalogSystem Tất cả các analysis class khác đều chuyển thành design class Analysis Design Ví dụ: Các Design Subsystem 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 35 Analysis Class Design Element CourseCatalogSystem BillingSystem All other analysis classes map directly to design classes CourseCatalogSystem Subsystem BillingSystem Subsystem Via dụ: Analysis-Class-To-Design-Element Map PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 36 CourseCatalogSystem > ICourseCatalogSystem ICourseCatalogSystem CourseCatalogSystem > CourseCatalogSystem >Interfaces start with an “I” > package > class Qui ước mô hình hoá: Subsystem và Interface PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 37 courseCatalog CourseOfferingList CourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList > RegistrationController // get course offerings() // get current schedule() // delete current schedule() // submit schedule() // is registration open?() // save schedule() // create schedule with offerings() // update schedule with new selections() > CloseRegistrationController // is registration open?() // close registration() > ICourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList > 1 0..* 1 0..1 courseCatalog Ví dụ: Subsystem Context: CourseCatalogSystem Interface defined PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 38 BillingSystem submitBill(forStudent : Student, forTuition : double) > IBillingSystem submitBill(forTuition : Double, forStudent : Student) > Student > 0..1 1 +Biller CloseRegistrationController // is registration open?() // close registration() > Ví dụ: Subsystem Context: Billing System PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 39 Bài tập: Architectural Design, phần 1 w Cho biết các vấn đề sau: § Các analysis class và mối quan hệ của chúng PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 40 (còn tiếp) Bài tập: Architectural Design, phần 1 (tt.) w Hãy xác định: § 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 § Ánh xạ các analysis class thành các phần tử thiết kế PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 41 Bài tập: Architectural Design, Part 1 (tt.) w Hãy xây dựng các lược đồ sau: § Với mỗi subsystem, xây dựng 1 subsystem context class diagram § Xây dựng bảng ánh xạ các analysis class thành các phần tử thiết kế (design element) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 42 Architectural Design Topics w Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 43 Xác định các khả năng dùng lại wMục đích § Để xác định nơi đâu có thể dùng lại các subsystem hay các component đã xây dựng dựa trên interface của chúng. w Các bước § Tìm kiếm các interface tương tự nhau § Hiệu chỉnh các interface mới để phù hợp hơn § Thay thế các interface cần có bằng các interface có sẵn § Ánh xạ các subsystem cần có với các component có sẵn PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 44 Những cơ hội dùng lại w Bên trong hệ thống đang xây dựng: § Nhận biết sự giống nhau giữa các package và các subsystem w Bên ngoài hệ thống đang xây dựng: § Các component thương mại § Các component từ các ứng dụng đã xây dựng trước đó § Các component đã được reverse engineered PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 45 ? Cơ hội dùng lại ngay bên trong hệ thống PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 46 Architectural Design Topics w Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 47 Hướng tiếp cận phân lớp truyền thống General functionality Specific functionality PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 48 Mục đích là giảm sự chồng lắp và tăng khả năng bảo trì nâng cấp Layering Guidelines w Tính khả kiến § Chỉ có các phụ thuộc giữa layer hiện tại và layer kế w Tính dễ thay đổi § Các layer ngoài bị thay đổi khi y/c đ/v HT thay đổi § Các layer trong bị thay đổi khi môi trường hoạt động thay đổi w Tính tổng quát § Các phần tử có chức năng tổng quát ở các layer thấp w Số lượng các layer § Hệ thống nhỏ: 3-4 layer § Hệ thống phức tạp: 5-7 layer PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 49 Layer 1 > > > Layer 2 > > > > > Layer 3 > > > > Các Design Element và Kiến trúc PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 50 Base Reuse global Middleware > Application > Business Services > Ví dụ: Architectural Layers PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 51 Các tiêu chuẩn phân chia w Sự chồng lắp và kết dính w Tổ chức của đơn vị sử dụng w Năng lực và kỹ năng w Sự phân bố của hệ thống w Tính bảo mật w Khả năng biến đổi Hãy thử loại bỏ các phụ thuộc xoay vòng PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 52 B A Package A Package B Ví dụ: Partitioning PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 53 RegistrationController > MainStudentForm RegisterForCoursesForm > 1 1 1 0..1 CloseRegistrationController > MainRegistrarForm CloseRegistrationForm > 1 1 1 0..1 Ví dụ: Registration Package PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 54 FulltimeStudent > ParttimeStudent > PrimaryScheduleOfferingInfo > ScheduleOfferingInfo > Student > Course > Professor > Schedule > CourseOffering > CourseOfferingList 1 preRequisites 0..* 0..* 1 instructor 0..1 0..* 0..*0..* 0..* 0..4 primaryCourses 0..* 0..2 alternateCourses 0..* 1 Vó dụ: University Artifacts Package PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 55 IBillingSystem > ICourseCatalogSystem > Ví dụ: External System Interfaces Package PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 56 Registration > Application Ví dụ: Application Layer PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 57 Application > Business Services > Security Registration GUI Framework External System Interfaces University Artifacts > Application > Business Services Secure Interfaces Ví dụ: Application Layer Context PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 58 BillingSystem > CourseCatalogSystem > External System Interfaces University Artifacts ObjectStore Support > Business Services GUI Framework Secure Interfaces Security > Security Manager Ví dụ: Business Services Layer PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 59 Middleware > Business Services > java.sqlcom.odi > Middleware BillingSystem > CourseCatalogSystem > External System Interfaces University Artifacts ObjectStore Support > Business Services GUI Framework Secure Interfaces Security > Security Manager Ví dụ: Business Services Layer Context PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 60 com.odi Database (from com.odi) Session (from com.odi) Transaction (from com.odi) Map (from com.odi) java.sql ResultSet (from com.odi) Connection (from com.odi) Statement (from com.odi) DriverManager (from com.odi) Ví dụ: Middleware Layer PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 61 Architectural Design Topics w Các khái niệm then chốt w Các cơ chế thiết kế và cài đặt w Các Design Class và Subsystem w Các khả năng tái sử dụng w Tổ chức mô hình thiết kế w Checkpoints PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 62 Checkpoints w Tổng quát § Kiến trúc có cung cấp 1 bức tranh dề hiểu về những dịch vụ của các package khác nhau không? § Kiến trúc có cung cấp 1 bức tranh dề hiểu về các cơ chế không? § Bạn có thể tìn được lời giải có thể dùng rộng rãi hơn trong lãnh vực của ứng dụng không ? w Layers § Có nhiều hơn 7 layers không? w Subsystems § Việc phân chia thành các subsystem có logic và phù hợp với toàn bộ mô hình không? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 63 Checkpoints (tt.) w Packages § Tên của các package có dễ hiểu, có ý nghĩa không? § Mô tả về package có khớp với trách nhiệm của các class chứa bên trong không? § Sự phụ thuôc giữa các package có tương ứng với các quan hệ giữa các class chứa bên trong không? § Các class bên trong package có phù hợp với các tiêu chuẩn phân chia package không? § Có thể phân chia một package thành hai package? § Tỉ lệ giữa số package và số các classcó hợp lý? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 64 Checkpoints (tt.) wCác Class § Tên mỗi class có phản ánh đúng vai trò của nó ? § Liệu class có kết dính như một thể thống nhất ? § Toàn bộ các thành phần trong class có cần thiết cho use-case realizations? § Tên của role trong các aggregation và association có diễn tả chính xác mối quan hệ? § Các bản số trong mối quan hệ có chính xác? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 65 Nhắc lại: Architectural Design wMục tiêu của Architectural Design là gì? w Thiết kế và cài đặt là gì? wMechanisms? Cho ví dụ. w Interface là gì? w Subsystem là gì? Khác package chỗ nào? w Subsystem dùng để làm gì và làm sao để xác định được nó? w Phân lớp và chia nhóm như thế nào? PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 66 Bài tập: Architectural Design, Part 2 w Làm các việc sau: § Xây dựng layers, packages, và các phụ thuộc § Xây dựng các design elements (chẳng hạn, các class, subsystem, interface) và quan hệ của chúng PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 67 (continued) Bài tập: Architectural Design, Part 2 (tt.) w Hãy xác định § Vị trí của các design element (như, subsystem và design class) trong kiến trúc (nghĩa là, xác định các package/layer chứa các design element) PT & TK Hướng đối tượng – Thiết kế kiến trúc Dương Anh Đức 68 Bài tập: Architectural Design, Part 2 (tt.) w Hãy xây dựng: § Bảng liệt kê các design element và các package “sở hữu” chúng

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

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