Package Diagrams
Package Diagramcho phép nhóm các phần tử có liên quan với nhau
-Một số lớp liên quan với nhau sẽ được nhóm vào trong 1 package
-Một số package liên quan với nhau sẽ được nhóm vào 1 package khác
-Package có thể phụ thuộc vào Package khác
Ký hiệu
Tại sao lạicần Package?
Dễ quản lý & hiểu hệ thống
Giảm phụ thuộc và độ phức tạp
Nhóm phát triển có thể làm việc song song
Hỗ trợ tái sử dụng và mở rộng
Ví dụ:
6.
Nguyên tắc tổchức
của Package
Sự gắn kết của chức năng
Các class/interface nhóm lại phải có
mục đích, chức năng, dịch vụ liên quan
Ví dụ: Package "Payments" chứa tất cả lớp xử lý thanh toán
Package “Domain” chứa lớp dữ liệu & quy tắc nghiệp vụ
7.
Đo lường tínhgắn kết
Mức độ cohesion (C) cho biết package tổ chức tốt hay không
C nhỏ →package chứa nhiều phần tử không liên quan
Có thể xảy ra lỗi tổ chức như:
Package chứa nhiều mục không liên quan
Ví dụ “tools package” chứa các hàm linh tinh
Một phần nhỏ gắn kết nhưng toàn bộ package không gắn kết
8.
Package of Interfaces
Cácinterface liên quan nên đặt chung trong 1 package
Các lớp triển khai tách riêng
Giúp thay thế hoặc tái sử dụng dễ dàng
9.
Stable vs UnstablePackages
Stable elements: hiếm thay đổi
Unstable elements: thay đổi thường xuyên
→Nên tách thành hai package riêng để giảm tác động lẫn nhau
Package càng được nhiều package khác phụ thuộc →càng phải ổn định
Cách tăng độ ổn định package:
Chứa interface hoặc abstract class
Không phụ thuộc vào package khác
Chỉ phụ thuộc package rất ổn định
Code bên trong ổn định và hoàn thiện
10.
Package of Independentelements
Các phần tử dùng độc lập hoặc trong nhiều
bối cảnh khác nhau cần tách package
Ví dụ: SQLite & Oracle cho môi trường dev/test và production
11.
Mô tả kiếntrúc vật lý của hệ thống
Class = tổ chức logic
Component = triển khai vật lý
Component có thể là: class, subsystem, ứng dụng, hệ thống
Artifact: mã nguồn, file nhị phân, executable, database, script
Component Diagram
Ký hiệu
12.
Phụ thuộc vàHiện thực hóa
Phụ thuộc đại diện cho các loại quan hệ tồn tại giữa các thành phần trên
Component Diagram.
Mô hình hóa các phụ thuộc
Component là trừu tượng
Realization: bất kỳ lớp nào triển khai component
Component có thể chứa các lớp hiện thực bên trong
13.
Interfaces in Component
2loại interface:
Provided interface: cách component cung cấp dịch vụ
Required interface: dịch vụ mà component cần
Ví dụ: Order cung cấp các dịch vụ
Kết nối các giao diện yêu cầu và cung cấp để hình
thành mối quan hệ hợp tác giữa các thành phần
14.
UML 2.0 Component
UML2.0 cung cấp một cách để biểu diễn tất cả thông tin đã được xác
định cho một thành phần cho đến nay, bao gồm Interfaces, Realizations
và Artifacts.
white box
Bộ kết nối
2loại connector:
Delegation connector
Chuyển yêu cầu từ port đến component khác hoặc implementation
Assembly connector
Kết nối required ↔provided interface
Deployment Diagrams
Mô tảcách artifact được triển khai lên node (thiết bị hoặc môi trường)
Artifact gồm: executable, library, file cấu hình, DB schema…
Node là: phần cứng hoặc môi trường chạy phần mềm
Nodes có thể kết nối lẫn nhau
Deloyment Diagrams có thể mô tả kiến trúc ở mức độ đặc tả (còn gọi là mức loại)
hoặc ở mức độ thể hiện (tương tự như sơ đồ lớp và sơ đồ đối tượng).
19.
Specification level (Typelevel)
Mô tả kiến trúc tổng quát, không chỉ rõ instance
ứng dụng web được triển khai trên máy chủ Tomcat JSP và các sơ đồ cơ sở dữ liệu - đến hệ thống
cơ sở dữ liệu
20.
Instance level
Mô tảbản triển khai cụ thể
Hiển thị tên server thật
Phù hợp để mô tả triển khai ở Development / Staging / Production
Sơ đồ triển khai cấp thực thể - ứng dụng web triển khai trên máy chủ Tomcat JSP và
các sơ đồ cơ sở dữ liệu - tới hệ thống cơ sở dữ liệu
21.
Tổng kết
Package Diagram→tổ chức logic
Component Diagram →tổ chức vật lý
Deployment Diagram →tổ chức triển khai
→Cả ba cung cấp nhìn tổng quan và chi tiết về kiến trúc hệ thống