UML - Tổng quan
UML là một ngôn ngữ tiêu chuẩn để chỉ định, hình dung, xây dựng và ghi lại các thành phần của hệ thống phần mềm.
UML được tạo ra bởi Nhóm Quản lý Đối tượng (OMG) và bản thảo đặc tả UML 1.0 đã được đề xuất cho OMG vào tháng 1 năm 1997.
OMG không ngừng nỗ lực để tạo ra một tiêu chuẩn công nghiệp thực sự.
UML là viết tắt của Unified Modeling Language.
UML khác với các ngôn ngữ lập trình thông thường khác như C ++, Java, COBOL, v.v.
UML là một ngôn ngữ hình ảnh được sử dụng để tạo các bản thiết kế phần mềm.
UML có thể được mô tả như một ngôn ngữ mô hình trực quan có mục đích chung để hình dung, chỉ định, xây dựng và lập tài liệu hệ thống phần mềm.
Mặc dù UML thường được sử dụng để mô hình hóa các hệ thống phần mềm, nhưng nó không bị giới hạn trong ranh giới này. Nó cũng được sử dụng để mô hình hóa các hệ thống không phải phần mềm. Ví dụ, quy trình trong một đơn vị sản xuất, v.v.
UML không phải là một ngôn ngữ lập trình nhưng các công cụ có thể được sử dụng để tạo mã bằng nhiều ngôn ngữ khác nhau bằng cách sử dụng sơ đồ UML. UML có mối quan hệ trực tiếp với phân tích và thiết kế hướng đối tượng. Sau một số tiêu chuẩn hóa, UML đã trở thành một tiêu chuẩn OMG.
Mục tiêu của UML
Một bức tranh có giá trị bằng một ngàn từ , thành ngữ này hoàn toàn phù hợp để mô tả UML. Các khái niệm hướng đối tượng đã được giới thiệu sớm hơn nhiều so với UML. Vào thời điểm đó, không có phương pháp luận tiêu chuẩn nào để tổ chức và củng cố sự phát triển theo hướng đối tượng. Đó là lúc UML đi vào hình ảnh.
Có một số mục tiêu để phát triển UML nhưng quan trọng nhất là xác định một số ngôn ngữ mô hình hóa mục đích chung, mà tất cả các nhà lập mô hình đều có thể sử dụng và nó cũng cần được làm cho đơn giản để hiểu và sử dụng.
Biểu đồ UML không chỉ được tạo cho các nhà phát triển mà còn cho người dùng doanh nghiệp, những người bình thường và bất kỳ ai quan tâm để hiểu hệ thống. Hệ thống có thể là hệ thống phần mềm hoặc không phần mềm. Vì vậy, phải rõ ràng rằng UML không phải là một phương pháp phát triển mà nó đi kèm với các quy trình để biến nó thành một hệ thống thành công.
Tóm lại, mục tiêu của UML có thể được định nghĩa như một cơ chế mô hình hóa đơn giản để mô hình hóa tất cả các hệ thống thực tế có thể có trong môi trường phức tạp ngày nay.
Mô hình khái niệm của UML
Để hiểu mô hình khái niệm của UML, trước hết chúng ta cần làm rõ mô hình khái niệm là gì? và tại sao cần phải có mô hình khái niệm?
Mô hình khái niệm có thể được định nghĩa là một mô hình được tạo thành từ các khái niệm và các mối quan hệ của chúng.
Mô hình khái niệm là bước đầu tiên trước khi vẽ sơ đồ UML. Nó giúp hiểu các thực thể trong thế giới thực và cách chúng tương tác với nhau.
Khi UML mô tả các hệ thống thời gian thực, điều rất quan trọng là phải tạo ra một mô hình khái niệm và sau đó tiến hành dần dần. Mô hình khái niệm của UML có thể được thành thạo bằng cách học ba yếu tố chính sau:
- Các khối xây dựng UML
- Quy tắc kết nối các khối xây dựng
- Các cơ chế chung của UML
Các khái niệm hướng đối tượng
UML có thể được mô tả là sự kế thừa của phân tích và thiết kế hướng đối tượng (OO).
Một đối tượng chứa cả dữ liệu và phương thức kiểm soát dữ liệu. Dữ liệu đại diện cho trạng thái của đối tượng. Một lớp mô tả một đối tượng và chúng cũng tạo thành một hệ thống phân cấp để mô hình hóa hệ thống trong thế giới thực. Hệ thống phân cấp được biểu diễn dưới dạng kế thừa và các lớp cũng có thể được liên kết theo những cách khác nhau theo yêu cầu.
Đối tượng là các thực thể trong thế giới thực tồn tại xung quanh chúng ta và các khái niệm cơ bản như trừu tượng, đóng gói, kế thừa và đa hình đều có thể được biểu diễn bằng UML.
UML đủ mạnh để đại diện cho tất cả các khái niệm tồn tại trong phân tích và thiết kế hướng đối tượng. Biểu đồ UML chỉ là biểu diễn các khái niệm hướng đối tượng. Vì vậy, trước khi học UML, điều quan trọng là phải hiểu khái niệm OO một cách chi tiết.
Sau đây là một số khái niệm cơ bản của thế giới hướng đối tượng:
Objects - Các đối tượng đại diện cho một thực thể và khối xây dựng cơ bản.
Class - Lớp là bản in màu xanh lam của một đối tượng.
Abstraction - Tính trừu tượng thể hiện hành vi của một thực thể trong thế giới thực.
Encapsulation - Tính đóng gói (Encapsulation) là cơ chế liên kết các dữ liệu lại với nhau và giấu chúng ra khỏi thế giới bên ngoài.
Inheritance - Kế thừa là cơ chế tạo ra các lớp mới từ những lớp đã có.
Polymorphism - Nó xác định cơ chế tồn tại ở các dạng khác nhau.
Phân tích và thiết kế OO
OO có thể được định nghĩa là một cuộc điều tra và nói một cách cụ thể hơn, đó là việc điều tra các đối tượng. Thiết kế có nghĩa là sự hợp tác của các đối tượng được xác định.
Vì vậy, điều quan trọng là phải hiểu các khái niệm phân tích và thiết kế OO. Mục đích quan trọng nhất của phân tích OO là xác định các đối tượng của hệ thống được thiết kế. Phân tích này cũng được thực hiện cho một hệ thống hiện có. Giờ đây, một phân tích hiệu quả chỉ có thể thực hiện được khi chúng ta có thể bắt đầu suy nghĩ theo cách mà các đối tượng có thể được xác định. Sau khi xác định các đối tượng, các mối quan hệ của chúng được xác định và cuối cùng là thiết kế được sản xuất.
Mục đích của phân tích và thiết kế OO có thể được mô tả là:
Xác định các đối tượng của một hệ thống.
Xác định mối quan hệ của họ.
Tạo một thiết kế, có thể được chuyển đổi thành tệp thực thi bằng ngôn ngữ OO.
Có ba bước cơ bản để áp dụng và thực hiện các khái niệm OO. Các bước có thể được định nghĩa là
OO Analysis → OO Design → OO implementation using OO languages
Ba điểm trên có thể được mô tả chi tiết là:
Trong quá trình phân tích OO, mục đích quan trọng nhất là xác định các đối tượng và mô tả chúng một cách thích hợp. Nếu các đối tượng này được xác định một cách hiệu quả, thì công việc thiết kế tiếp theo sẽ dễ dàng. Các đối tượng cần được xác định với trách nhiệm. Trách nhiệm là các chức năng được thực hiện bởi đối tượng. Mỗi và mọi đối tượng đều có một số loại trách nhiệm phải thực hiện. Khi những trách nhiệm này được hợp tác, mục đích của hệ thống được thực hiện.
Giai đoạn thứ hai là thiết kế OO. Trong giai đoạn này, nhấn mạnh vào các yêu cầu và việc thực hiện chúng. Trong giai đoạn này, các đối tượng được hợp tác theo sự liên kết dự định của chúng. Sau khi liên kết xong, thiết kế cũng hoàn thành.
Giai đoạn thứ ba là thực hiện OO. Trong giai đoạn này, thiết kế được thực hiện bằng các ngôn ngữ OO như Java, C ++, v.v.
Vai trò của UML trong thiết kế OO
UML là một ngôn ngữ mô hình hóa được sử dụng để mô hình hóa các hệ thống phần mềm và phi phần mềm. Mặc dù UML được sử dụng cho các hệ thống không phải phần mềm, trọng tâm là mô hình hóa các ứng dụng phần mềm OO. Hầu hết các biểu đồ UML được thảo luận cho đến nay được sử dụng để mô hình hóa các khía cạnh khác nhau như tĩnh, động, v.v. Bây giờ, dù là khía cạnh nào, thì các tạo tác không là gì ngoài các đối tượng.
Nếu chúng ta nhìn vào sơ đồ lớp, sơ đồ đối tượng, sơ đồ cộng tác, sơ đồ tương tác, tất cả về cơ bản sẽ được thiết kế dựa trên các đối tượng.
Do đó, mối quan hệ giữa thiết kế OO và UML là rất quan trọng cần hiểu. Thiết kế OO được chuyển đổi thành sơ đồ UML theo yêu cầu. Trước khi hiểu chi tiết về UML, khái niệm OO nên được học đúng cách. Sau khi phân tích và thiết kế OO được thực hiện, bước tiếp theo rất dễ dàng. Đầu vào từ phân tích và thiết kế OO là đầu vào cho biểu đồ UML.