Architectural &
Deployment
Modeling
Phân tích & Thiết kế Hệ thống – Chương 7
NGUYỄN NGỌC HUY
LÊ VĂN THIỆN
Package Diagram Deplopment Diagram
Đối tượng tìm hiểu
Component Diagram
Package Diagrams
Package Diagram cho 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
Sự phụ thuộc
Package A phụ thuộc B khi A dùng lớp/đối tượng trong B.
Tại sao lại cầ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ụ:
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ụ
Đo lường tính gắ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
Package of Interfaces
Các interface 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
Stable vs Unstable Packages
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
Package of Independent elements
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
Mô tả kiến trú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
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
Interfaces in Component
2 loạ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
UML 2.0 Component
UML 2.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
Ports
Port: mapping interface →hiện thực bên trong
Xuất hiện như hình vuông nhỏ trên cạnh component
Bộ kết nối
2 loạ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
Ví dụ hệ thống mua sắm trực tuyến gồm:
Webstore subsystem
Warehouses subsystem
Accounting subsystem
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).
Specification level (Type level)
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
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
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

Bài thuyết trình - Architectural & Deployment Modeling

  • 1.
    Architectural & Deployment Modeling Phân tích& Thiết kế Hệ thống – Chương 7 NGUYỄN NGỌC HUY LÊ VĂN THIỆN
  • 2.
    Package Diagram DeplopmentDiagram Đối tượng tìm hiểu Component Diagram
  • 3.
    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
  • 4.
    Sự phụ thuộc PackageA phụ thuộc B khi A dùng lớp/đối tượng trong B.
  • 5.
    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
  • 15.
    Ports Port: mapping interface→hiện thực bên trong Xuất hiện như hình vuông nhỏ trên cạnh component
  • 16.
    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
  • 17.
    Ví dụ hệthống mua sắm trực tuyến gồm: Webstore subsystem Warehouses subsystem Accounting subsystem
  • 18.
    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