Table of Contents
UML (viết tắt của Unified Modeling Language) là định dạng ngôn ngữ hợp nhất được dùng để mô hình hóa hệ thống/phần mềm.
Mười ba loại lược đồ (diagram) bên dưới chia làm 3 loại:
Structure
Biểu thị view “tĩnh” (static) của hệ thống và các thành phần
Class Diagram
Mô hình kiểu object và các mối quan hệ xung quanh chúng. Nó giúp mô tả phần nhỏ nhất, và mức độ trừu tượng thấp nhất. Ví dụ: class, interface.
Thông thường sẽ được vẽ bởi các developer trong các design activity.
Thành phần chính:
- Classifiers: loại class: concrete, abstarct, interface, enum,…
- Ký hiệu: C – concrete class, A – Abstract class, I – Interface, E -Enum
- Generic class dùng hình vuông ở góc phải trên của class hiện tại.
- Active class: là một sẽ có 2 side bar hai bên, active class là class sẽ run tự động trong thread của nó.
- Features: cung cấp tính chất cấu trúc hoặc hành vi như: thuộc tính, và method.
- Structural: Properties.
Cú pháp:
[visibility] name: type [multiplicity] = default value {property-modifier}- Visibility: – private, # protected, ~ friendly, + public.Multiplicity: *: 0 hoặc nhiều, 1..*: một hoặc nhiều, 1: chính xác 1, m..n: giữa khoảng m và n.
- Property modifier: id, readOnly, ordered/unordered, unique/nonunique.
- Behavioral: Method.
Cú pháp của method:
[visibility] method-name (parameter-list): return-type {property-modifier}
Bên cạnh visibility và property-modifier, method có thêm parameter-list. mỗi item trong đó phải theo cú pháp :
[direction] name: type = default-value.- Direction: in, out, inout,return
- Structural: Properties.
- Relationships: cách các class phụ thuộc hoặc kế thừa lẫn nhau. Hoặc class nào implement interface nào. Nó cũng thể hiện được tính: association, generalization và depenency.
Giữa 2 class có thể chia làm những mối quan hệ:- Associate
- Association Link: 1 class là nguồn gốc có liên quan đến instance của class kia. Biểu diễn bằng một mũi tên, hai đầu có chứa [multiplicity].
Aggregation và Composition - Association Class
- Association Link: 1 class là nguồn gốc có liên quan đến instance của class kia. Biểu diễn bằng một mũi tên, hai đầu có chứa [multiplicity].
- Generalization
- Dependency
- Associate
Component Diagram
Object Diagram
Composite Structure Diagram
Package Diagram
Diagram sẽ hữu dụng khi bạn cần build một ứng dụng lớn và phức tạp. diagram này sẽ group hàng trăm class lại và tạo ra cây kế thừa.
Deployment Diagram
Cho thấy big picture của một hệ thống trong thể giới thực của các thiết bị, network, OS, DB.
Dùng bởi architect và development team để mô tả kiến trúc của một hệ thống. Capture cả phần mềm và phần cứng được dùng
Có ba element chính:
- Nodes: đại diện hardware, có hình hộp, có tên trên đầu.
- Artifacts: những gì được deploy trên node đó. VD: exe, jar, docs
- Relationships: bao gồm có thể 2 chiều hoặc 1 chiều
- Communication path: giữa các node
- Dependency
Behavior
Biểu thị view động của hệ thống và các thành phần:
Use case diagram
Capture lại chức năng hệ thống ở mức high-level dùng ký hiệu: actor, use cases và relationships
Hay được dùng bởi các bạn BA nhằm mô tả tổng hợp các use case trong hệ thống
Use case là gì ?
Trong kỹ thuật phần mềm và hệ thống, cụm từ use case là một polyseme có hai nghĩa: Một kịch bản sử dụng cho một phần mềm; thường được sử dụng ở số nhiều để gợi ý các tình huống mà một phần mềm có thể hữu ích. Một kịch bản tiềm năng trong đó hệ thống nhận được yêu cầu bên ngoài và đáp ứng yêu cầu đó.
Wikipedia
Có 4 thành phần chính:
- Actor: Có thể là người dùng hoặc một hệ thống khác
- Primary Actor: Mục tiêuToàn bộ hệ thống phải phục vụ
- Secondary actor: Thường là một hệ thống bên ngoài tham gia vào
- Use Case: tình bầu, màu xám chứa tiêu đề
- Association: Quan hệ giữa use case và actor
- Giữa các Use Case
- Include:
- Extend: Optional được add thêm vào hệ thống
Activity diagram
Dùng để vẽ workflow hoặc qui trình. Tương tự flow charts nhưng có hành vi song song và nhiều actor tham gia.
Được dùng bởi nhiều đối tượng: BA, Developer để capture requirement understanding.
Có 6 thành phần chính
- Start và End node
- Action
- Flow
- Fork & Join
- Fork: ngắt process hiện thành thành 2 track song song. Có một flow đến và nhiều flow đi
- Join: ngược với Fork: Có nhiều flow đến và một flow đi. Luồng đi chỉ bắt đầu khi tất cả luồng đến đã vào.
- Decision & Merge
- Decision: điều kiện, có 1 flow đến và nhiều luồng đi riêng dựa theo từng điều kiện
- Swimlanes: Mô tả đối tượng thực hiện. Mỗi đối tượng đại diện bởi 1 swimlane
Swimlane có thể mô tả dạng nằm ngang như sau:
State machine diagram
Được sử dụng để mô phỏng hành vi động của một đối tượng, chi tiết về các trạng thái mà đối tượng có thể ở và các chuyển đổi giữa các trạng thái này. Biểu đồ này nhấn mạnh vào tính chất sự kiện của hệ thống.
Interaction
Biểu thị tương tác
- Giữa các thành phần của một hệ thống
- Giữa hệ thống và các tác nhân bên ngoài
Class và attribute được minh họa qua static diagrams, trong khi tương tác: methods sẽ được mô tả bằng sequence diagram.
Sequence diagram
Loại diagram này sẽ capture hành vi / giao tiếp tương tác giữa hai hay nhiều entities trong một scenario
Hướng:
- Trên-xuống
- Trái-sang-phải hoặc phải-sang-trái
Thành phần trong sequence diagram:
- Participant: đối tượng sống
- Lifetime: đi từ trên-xuống
- Interaction messages:
- Request: participant làm hành động, dùng mũi tên đường thẳng
- Response: dùng mũi tên đứt khúc, khi có giá trị trả về, mô tả kiểu dữ liệu trả về.
- Đặc tả Activation / execution
- Fragments: conditional
- Opt: tùy chọn
- Alt: alternative, tương tự if / else
- Loop: Vòng lặp
Communication diagram
Loại diagram này khá tương tự sequence diagram. Điểm khác biệt ở chỗ: nó không có lifeline, mà tập trung lên mối liên kết giữa các object.
Timing diagram
Thường dùng trong kỹ thuật điện tử để xem các thành phần trong một đường điện.
Bốn thành phần chính trong loại diagram:
- Timeline: thang đơn vị thời gian
- Frames: đại diện đối tương mà lifetime đang minh họa
- Lifelines: phần động trong diagram này, mô tả các trạng thái của một đối tượng. Có 2 loại giá trị:
- Value lifetime: vẽ bằng 1 miền, chuyển qua lại giữa khác giá trị. Ví dụ: on/off
- State lifetime
- Messages
Interaction Overview Diagram
Mô tả tổng quan của control flow, kết hợp activity và interaction diagrams.
Bao gồm ba loại thành phần
- Frame: Hình vuông với header trên-trái mô tả action, có thể là ref (reference), sd (sequen diagram).
- Node:
- Interaction
- Interaction use