2.3. Mơ hình khái niệm của UML
2.3.1. Các khối xây dựng (building blocks
* Các sự vật cấu trúc (structural things)
1. Lớp (Class): Là một tập hợp các đối tượng có cùng một tập thuộc tính, các
hành vi, các mối quan hệ với những đối tượng khác.
Hình 2.2. Biểu diễn lớp
2. Sự cộng tác (Collaboration): Thể hiện một giải pháp thi hành bên trong hệ
thống, bao gồm các lớp/đối tượng, mối quan hệ và sự tương tác giữa chúng để đạt được một chức năng mong đợi của ca sử dụng.
Hình 2.3. Biểu diễn cộng tác
3. Giao diện (Interface): Là một tập hợp các phương thức (operation) tạo nên
dịch vụ của một lớp hoặc một thành phần (component). Nó chỉ ra một tập các operation ở mức khai báo chứ khơng phải ở mức thực thi (implementation).
Hình 2.4. Biểu diễn giao diện
Tên lớp Các thuộc tính
Các phương phức
4. Ca sử dụng (Use case): là mô tả một tập hợp của nhiều hành động tuần tự mà
hệ thống thực hiện để đạt được một kết quả có thể quan sát được đối với một actor cụ thể nào đó. Actor là những gì ở bên ngồi mà tương tác với hệ thống. Use case mô tả sự tương tác giữa actor và hệ thống. Nó thể hiện chức năng mà hệ thống sẽ cung cấp cho actor. Tập hợp các Use case của hệ thống sẽ tạo nên tất cả các trường hợp mà hệ thống có thể được sử dụng.
Hình 2.5. Biểu diễn ca sử dụng
5. Lớp hoạt động (Acitive class): là một lớp mà các đối tượng của nó thực hiện
các hoạt động điều khiển. Lớp tích cực cũng giống như lớp bình thường ngoại trừ việc các đối tượng của nó thể hiện các phần tử mà ứng xử của chúng có thể thực hiện đồng thời với các phần từ khác. Lớp này thường dùng để biểu diễn tiến trình(process) và luồng(thread)
Hình 2.6. Biểu diễn lớp hoạt động
6. Thành phần (Component): là biểu diễn vật lý của mã nguồn. Trong hệ thống
ta sẽ thấy các kiểu khác nhau của component như các thành phần COM+ hay JavaBeans cũng như là các thành phần như các file mã nguồn, các file nhị phân tạo ra trong quá trình phát triển hệ thống.
7. Nút (Node): là thể hiện một thành phần vật lý như là một máy tính hay một
thiết bị phần cứng.
Hình 2.8. Biểu diễn nút
* Các sự vật hành vi (behavioral things)
1. Sự tƣơng tác (Interaction): bao gồm một tập các thông báo (message) trao đổi
giữa các đối tượng trong một ngữ cảnh cụ thể nào đó để thực hiện một chức năng nào đó.
Hình 2.9. Biểu diễn thơng báo
2. Máy trạng thái (States machine): thể hiện các trạng thái của một đối tượng
trong thời gian sống của nó nhằm đáp ứng các sự kiện, các tác động từ bên ngồi.
* Các sự vật nhóm gộp (Grouping things)
Gói (Package): Dùng để nhóm các phần tử có một ý nghĩa chung nào đó vào thành nhóm. Khơng giống như các thành phần (component - tồn tại trong lúc thực thi), một package chỉ mang tính trừu tượng. Package dùng để nhìn hệ thống ở một mức độ tổng quát hơn so với việc xem xét từng phần tử trong package.
* Sự vật giải thích (Annotational thing): là các chú thích dùng để mơ tả, làm sáng tỏ
và ghi chú về bất cứ phần tử nào trong mơ hình. Thường dùng nhất là Note gồm các ràng buộc hoặc ghi chú, được gắn với một phần tử hoặc một tập hợp các phần tử.
* Các quan hệ (Relationships)
1. Quan hệ phụ thuộc (Dependency): Là mối quan hệ ngữ nghĩa giữa hai sự vật,
trong đó sự thay đổi của một sự vật (sự vật độc lập) có thể tác động đến ngữ nghĩa của một sự vật khác (sự vật phụ thuộc).
Hình 2.11. Biểu diễn quan hệ phụ thuộc
2. Quan hệ kết hợp ( Association): Là mối quan hệ cấu trúc mô tả một tập các
mối liên kết giữa một số các đối tượng của một lớp. Nói một cách đơn giản, khi một đối tượng của lớp này gửi thông điệp tới hoặc nhận thông điệp từ một đối tượng của lớp kia thì ta nói giữa 2 lớp có mối quan hệ association.
Hình 2.12. Biểu điễn quan hệ kết hợp
3. Quan hệ tập hợp (Aggreagation): Là một dạng đặc biệt của quan hệ liên kết.
Nó thể hiện sự liên kết ―chặt‖ hơn, đó là mối quan hệ tồn thể-bộ phận.
Hình 2.13. Biểu diễn quan hệ tập hợp
4. Quan hệ hợp thành (Composition): là một dạng đặc biệt của quan hệ tập hợp
(aggregation). Trong đó nếu như đối tượng tồn thể bị hủy thì các đối tượng bộ phận của nó cũng bị hủy theo.
Hình 2.14. Biểu diễn quan hệ hợp thành
5. Quan hệ tổng qt hố (Generalization): là mối quan hệ tổng qt hóa/cụ thể
hóa trong đó đối tượng cụ thể sẽ kế thừa các thuộc tính và phương thức( behavior) của đối tượng tổng quát.
Hình 2.15. Biểu diễn quan hệ tổng quát hóa
6. Quan hệ sự thực hiện hóa (Realization): Là mối quan hệ ngữ nghĩa giữa các
phân lớp, sao cho các phân lớp khác nhau đảm nhiệm thực hiện những trách nhiệm khác nhau. Mối quan hệ thực hiện được đưa vào hai vị trí: giữa các giao diện và các lớp hoặc các thành phần thực hiện của nó. Một mối quan hệ thực hiện được xem như một mối quan hệ nằm giữa mối quan hệ tổng quát và mối quan hệ phụ thuộc.
* Các biểu đồ của UML
Có 9 loại biểu đồ được sử dụng trong UML như được thể hiện trong Hình 2.19.
Hình 2.17. Các biểu đồ trong UML 1. Biểu đồ ca sử dụng (Use Case Diagram)
Biểu đồ ca sử dụng để mơ hình hố các khía cạnh động của hệ thống. Nó là trung tâm để mơ hình hố hành vi của hệ thống, một hệ thống con, một lớp. Mỗi biểu đồ chỉ ra một tập các ca sử dụng, các tác nhân và các mối quan hệ giữa chúng.
Biểu đồ ca sử dụng mơ tả cách nhìn từ bên ngồi để thấy được bối cảnh mà trong đó hệ thống đang tồn tại và những mối quan hệ giữa nó và môi trường, mô tả hoạt động của hệ thống từ bên ngồi khơng lệ thuộc vào việc nó thực hiện các hoạt động đó như thế nào. Vì vậy, mơ hình ca sử dụng là phương tiện để mô tả các yêu cầu của hệ thống. Ta sử dụng biểu đồ ca sử dụng để:Mơ hình hố ngữ cảnh của hệ thống và Mơ hình hố các u cầu của một hệ thống.
Hình 2.18. Biểu đồ ca sử dụng Biểu đồ ca sử dụng Scenario Diagrams Scenario Diagrams Biểu đồ cộng tác thành phần Biểu đồ Biểu đồ triển khai Biểu đồ đối tượng Scenario Diagrams Scenario Diagrams Biểu đồ trạng thái Biểu độ tuần tự Biểu đồ lớp Biểu đồ hoạt động Các mơ hình
2. Biểu đồ lớp (Class Diagram)
Biểu đồ lớp là một tập các lớp, các giao diện, sự cộng tác và mối quan hệ của chúng. Ta sử dụng biểu đồ lớp để mơ hình hố khung nhìn thiết kế tĩnh của hệ thống. Ta sử dụng biểu đồ lớp để:Mơ hình hóa bảng từ vựng của hệ thống và mơ hình hố các sự cộng tác đơn giản
Hình 2.19. Biểu đồ lớp 3. Biểu đồ đối tƣợng (Object Diagram)
Biểu đồ đối tượng mơ hình hóa các thể hiện của các sự vật trong một biểu dồ lớp. Một biểu đồ đối tượng đưa ra một tập các đối tượng và các mối quan hệ giữa chúng tại một thời điểm. Ta sử dụng biểu đồ đối tượng để mơ hình hóa các khía cạnh thiết kế tĩnh hoặc các khía cạnh tiến trình tĩnh của hệ thống. Nó cũng được sử dụng để mơ hình hóa cấu trúc của đối tượng.
Hình 2.20. Biểu đồ đối tƣợng 4. Biểu đồ thành phần (Component Diagram)
Các biểu đồ thành phần sử dụng để mơ hình hóa mặt vật lý của các hệ hướng đối tượng. Nó cho ta cách nhìn việc bố trí và thực thi tĩnh của một hệ thống. Ta sử dụng biểu đồ thành phần để :
- Mơ hình hóa mã nguồn
- Mơ hình hóa xuất phẩm có thể thực hiện được - Mơ hình hóa các cơ sở dữ liệu vật lý
- -
Hình 2.21. Biểu đồ thành phần 5. Biểu đồ triển khai (Deployment Diagram)
Biểu đồ triển khai mơ hình hóa các khía cạnh vật lý của một hệ thống hướng đối tượng. Nó biểu diễn cấu hình các nút xử lý đang vận hành và các thành phần hoạt động ở trên chúng. Nó có thể cịn bao gồm các nút và các ràng buộc. Nó cũng hướng vào việc mơ hình hóa sự phân tán, gửi đi và cài đặt các phần tạo nên hệ thống vật lý. Ta sẽ sử dụng các biểu đồ bố trí để :
- Mơ hình hóa các hệ thống nhúng
- Mơ hình hóa các hệ thống máy khách/máy dịch vụ - Mơ hình hóa các hệ thống phần tán đầy đủ
Hình 2.22. Biểu đồ triển khai 6. Biểu đồ hoạt động (Activity Diagram)
Biểu đồ hoạt động là trường hợp đặc biệt của biểu đồ trạng thái. Nó chỉ dịng điều khiển chính từ hoạt động này đến hoạt động khác, nó cũng bao gồm việc mơ hình hóa các bước tuần tự (có thể là đồng thời) trong một tiến trình xử lý. Biểu đồ trạng thái và biểu đồ hoạt động biểu diễn khía cạnh động của hệ thống. Chúng có thể dùng cho việc mơ hình hóa vịng đời của một đối tượng. Ta sẽ dùng biểu đồ hoạt động để :
- Mơ hình hóa luồng cơng việc (có thể có rẽ nhánh, phân nhánh, sát nhập) - Mơ hình hóa một tác vụ (một thủ tục tính tốn)
Hình 2.23. Biểu đồ hoạt động 7. Biểu đồ sơ đồ trạng thái (Statechart Diagram)
Biểu đồ sơ đồ trạng thái biểu diễn một máy trạng thái. Nó biểu diễn dịng điều khiển từ trạng này tới trạng thái khác. Nó nhấn mạnh dòng điều khiển từ hoạt động này đến hoạt động khác đang xảy ra bên trong một máy trạng thái.
Hình 2.24. Biểu đồ trạng thái
8. Biểu đồ tƣơng tác (Interaction Diagram): Biểu đồ cộng tác và Biểu đồ tuần tự
là hai dạng của biểu đồ tương tác. Chúng dùng để mơ hình hố các khía cạnh động của hệ thống. Nó gồm một tập các đối tượng và các mối quan hệ truyền thông báo giữa chúng. Biểu đồ tuần tự nhấn mạnh đến trình tự thời gian của các thơng báo; còn biểu đồ cộng tác nhấn mạnh tới tổ chức cấu trúc của các đối tượng gửi và nhận thông báo.
Mặc dù chín biểu đồ trên đã vượt xa nhu cầu chung nhất mà ta thường gặp trong thực tế phát triển phần mềm hướng đối tượng. Tuy nhiên, UML còn cung cấp những loại biểu đồ khác cho phép mơ hình hóa những trường hợp kinh tế hơn.