PT & TK Hướng đối tượng – Thiết kế kiến trúcArchitectural 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 Tổ chức mô hình thiết
Trang 1PT & TK Hướng đối tượng – Thiết kế kiến trúc
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 Tổ chức mô hình thiết kế
w Checkpoints
Trang 2Xác định các khả năng dùng lại
§ Để 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.
§ 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
Trang 3PT & TK Hướng đối tượng – Thiết kế kiến trúc
Những cơ hội dùng lại
§ Nhận biết sự giống nhau giữa các package và các subsystem
§ 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
Trang 4Cơ hội dùng lại ngay bên trong hệ thống
Trang 5PT & TK Hướng đối tượng – Thiết kế kiến trúc
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 Checkpoints
Trang 6Hướng tiếp cận phân lớp truyền thống
General
functionality
Specific
functionality
Trang 7PT & TK Hướng đối tượng – Thiết kế kiến trúc
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
Trang 9PT & TK Hướng đối tượng – Thiết kế kiến trúc
Base Reuse global
Middleware <<layer>>
Application <<layer>>
Business Services
<<layer>>
Ví dụ: Architectural Layers
Trang 10Các tiêu chuẩn phân chia
Hãy thử loại bỏ các phụ thuộc xoay vòng
Trang 11PT & TK Hướng đối tượng – Thiết kế kiến trúc
B
Package B
Ví dụ: Partitioning
Trang 12Ví duï: Registration Package
Trang 13PT & TK Hướng đối tượng – Thiết kế kiến trúc
FulltimeStudent <<entity>> ParttimeStudent <<entity>>
0 *
1
instructor 0 1
Trang 14IBillingSystem <<Interface>> ICourseCatalogSystem <<Interface>>
Ví duï: External System Interfaces Package
Trang 15PT & TK Hướng đối tượng – Thiết kế kiến trúc
Registration
<<layer>> Application
Ví dụ: Application Layer
Trang 16Application <<layer>>
Business Services
<<layer>>
Security Registration
GUI Framework
External System Interfaces
Trang 17PT & TK Hướng đối tượng – Thiết kế kiến trúc
BillingSystem
<<subsystem>>
CourseCatalogSystem <<subsystem>>
External System Interfaces
University Artifacts
ObjectStore Support
<<layer>>
Business Services
GUI Framework
Secure Interfaces
Security
<<subsystem>> Security Manager
Ví dụ: Business Services Layer
Trang 18Middleware <<layer>>
Business Services
<<layer>>
java.sql com.odi
University Artifacts
Secure Interfaces
Security
<<subsystem>>
Security Manager
Ví duï: Business Services Layer Context
Trang 19PT & TK Hướng đối tượng – Thiết kế kiến trúc
Trang 20Architectural 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ế
Trang 21PT & TK Hướng đối tượng – Thiết kế kiến trúc
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 ?
Trang 22Checkpoints (tt.)
không?
các class chứa bên trong không?
các quan hệ giữa các class chứa bên trong không?
tiêu chuẩn phân chia package không?
package?
Trang 23PT & TK Hướng đối tượng – Thiết kế kiến trúc
thiết cho use-case realizations?
association có diễn tả chính xác mối quan hệ?
Trang 24Nhắc lại: Architectural Design
định được nó?
Trang 25PT & TK Hướng đối tượng – Thiết kế kiến trúc
Bài tập: Architectural Design, Part 2
§ 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
Trang 27PT & TK Hướng đối tượng – Thiết kế kiến trúc
Bài tập: Architectural Design, Part 2 (tt.)
§ Bảng liệt kê các design element và các package
“sở hữu” chúng