Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế kiến trúc
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
w Diễ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
w Mô 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
ned 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
File đính kèm:
- Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế kiến trúc.pdf