Ngôn ngữ mô hình hóa thống nhất (tiếng Anh: Unified Modeling Language, viết tắt thành UML) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng.
UML là ngôn ngữ dành cho việc đặc tả, hình dung, xây dựng và làm tài liệu của các hệ thống phần mềm.
UML tạo cơ hội để viết thiết kế hệ thống, bao gồm những khái niệm như tiến trình nghiệp vụ và các chức năng của hệ thống.
Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông tin cả về cấu trúc cũng như hoạt động. Cách tiếp cận theo mô hình của UML giúp ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như những người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về hệ thống thông tin dự định xây dựng. Cách nhìn bao quát này giúp nắm bắt trọn vẹn các yêu cầu của người dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin.
UML hữu dụng cho những ngôn ngữ khai báo, giản đồ cơ sở dữ liệu, thành phần phần mềm có khả năng tái sử dụng.
Mục tiêu của UML
UML cung cấp cho người dùng một ngôn ngữ mô hình hoá trực quan sẵn sàng để dùng và có ý nghĩa:
- Cho phép phát triển và trao đổi những mô hình mang nhiều ý nghĩa.
- Cung cấp khả năng mở rộng và chuyên môn hoá để mở rộng những khái niệm cốt lõi.
- Độc lập với ngôn ngữ lập trình chuyên biệt và các tiến trình phát triển.
- Cung cấp nền tảng về sự hiểu biết ngôn ngữ mô hình hoá.
- Khuyến khích và hỗ trợ sự phát triển của các công cụ hướng đối tượng.
- Hỗ trợ những khái niệm phát triển cấp độ cao như collaboration, framework, pattern and component.
- Tích hợp một cách tốt nhất với thực tiễn.
Có các loại sơ đồ UML chủ yếu sau:
- Sơ đồ tình huống sử dụng, hay còn gọi biểu đồ chức năng (Use Cases Diagram)
- Sơ đồ đối tượng (Object Diagram)
- Sơ đồ lớp (Class Diagram)
- Sơ đồ tiến trình (Sequence Diagram)
- Sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure Diagram)
- Sơ đồ trạng thái (State Machine Diagram)
- Sơ đồ thành phần (Component Diagram)
- Sơ đồ hoạt động (Activity Diagram)
- Sơ đồ triển khai (Deployment Diagram)
- Sơ đồ gói (Package Diagram)
- Sơ đồ liên lạc (Communication Diagram)
- Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0)
- Sơ đồ phối hợp thời gian (Timing Diagram - UML 2.0)
Trong khuôn khổ bài viết này không thể cung cấp cho bạn tất cả, tuy nhiên sẽ cung cấp những biểu đồ cơ bản của UML để bạn có thể hiểu được tổng quan về cách phân tích và thiết kế một hệ thống phần mềm sử dụng ngôn ngữ thiết kế UML.
Biểu đồ chức năng (Use Case Diagram)
Biểu đồ chức năng, hay sơ đồ tình huống sử dụng (tiếng Anh Use case diagram) mô tả sự tương tác đặc trưng giữa người dùng và hệ thống. Sơ đồ này thể hiện các ứng xử của hệ thống đối với bên ngoài, trong một hoàn cảnh nhất định, xét từ quan điểm của người sử dụng. Nó mô tả các yêu cầu đối với hệ thống, có nghĩa là những gì hệ thống phải làm chứ không phải mô tả hệ thống làm như thế nào. Tập hợp tất cả các sơ đồ tình huống sử dụng của hệ thống thể hiện tất cả các trường hợp mà hệ thống có thể được sử dụng.
Uses case diagram đưa ra cách nhìn bao quát (từ trên xuống) cách sử dụng của hệ thống cũng như cách nhìn hệ thống từ bên ngoài.
Biểu đồ này hiển thị những chức năng của hệ thống hoặc các lớp và tương tác của hệ thống với thế giới bên ngoài như thế nào.
Uses case diagram được dùng trong quá trình phân tích hệ thống để nắm bắt được yêu cầu của hệ thống và hiểu được sự hoạt động của hệ thống.
Các tiến trình cơ bản của thang máy có thể mô tả bằng biểu đồ phương pháp case:
- Hành khách ở tầng dưới bấm nút.
- Hệ thống thang máy phát hiện ra sự kiện ấn nút xuống
- Thang máy xuống tầng
- Thang máy mở cửa
- Hành khách bước vào và ấn nút lên tầng mình cần
- Thang máy đóng cửa
- Thang máy đi đến tầng mà khách yêu cầu
- Thang máy mở cửa
- Hành khách đi ra
- Thang máy đóng cửa
Một sơ đồ chức năng có thể có những biến thể. Mỗi một biến thể được gọi là một kịch bản (scenario). Phạm vi của sơ đồ thường được giới hạn bởi các hoạt động mà người dùng thực hiện trên hệ thống trong một chu kì hoạt động để thực hiện một sự kiện nghiệp vụ.
Biểu đồ tiến trình (Sequence Diagram)
Sequence diagram mô tả sự tương tác của các lớp trong trình tự về thời gian. Những mô hình này được liên kết với phương pháp case (tình huống).
Sequence diagram hiển thị cho bạn từng bước những sự kiện xảy ra trong phương pháp case.
Biểu đồ này là cách tốt nhất để phân tích và thiết kế hệ thống bởi vì nó khá đơn giản và dễ lĩnh hội.
Đây là một ví dụ nhỏ mô tả một quá trình phục vụ việc bấm nút đi thang máy.
Lời Kết
Việc xây dựng một bản thiết kế phần mềm không cần thiết phải xây dựng toàn bộ những biểu đồ như trên, tuỳ theo từng phần mềm mà bạn lựa chọn những biểu đồ thích hợp cho mình.
Có thể thấy UML giúp bạn tránh được nhiều khả năng thất bại trong quá trình phát triển phần mềm, có cái nhìn tường tận về những gì mà bạn đang làm, tận dụng khả năng sử dụng lại thành phần và vô số những tiện dụng khác.
Hiện nay bạn có thể xây dựng ngôn ngữ UML trên rất nhiều phần mềm, trước đây các phần mềm vẫn hay dùng để thiết kế là Visio và Rational Rose. Hiện nay có nhiều công cụ online với nhiều tính năng và mẫu (template) để lựa chọn. Hoặc bạn cũng có thể dùng Excel để vẽ các sơ đồ như vậy.
Hy vọng bài viết trên đã giúp các bạn phần nào hiểu được UML là gì và sẽ giúp ích các bạn trong quá trình thiết kế phần mềm cho mình.