CHƯƠNG 1 CƠ SỞ LÝ LUẬN 1. Tổng quan về UML 1.1 Lịch sử ra đời của UML Những năm đầu của thập kỷ 90 đã có rất nhiều phương pháp phân tích, thiết kế hệ thống hướng đối tượng với các hệ thống ký hiệu khác nhau. Trong đó có 3 phương pháp phổ biến nhất là OMT (Object Modeling Technique) của James Rumbaugh, Booch của Grady Booch và OOSE (Object – Oriented Software Engienering) của Ivar Jacobson. Mỗi phương pháp đều có những điểm mạnh điểm yếu.
Như OMT mạnh trong khâu phân tích và yếu ở khâu thiết kế, Booch mạnh trong khâu thiết kế và yếu ở khâu phân tích, còn OOSE mạnh ở phân tích các ứng xử, đáp ứng của hệ thống mà yếu trong các khâu khác. Mỗi phương pháp luận và ngôn ngữ đều có những hệ thống ký hiệu riêng, phương pháp xử lý riêng và công cụ hỗ trợ riêng. Điều này đã thúc đẩy những người đi tiên phong trong lĩnh vực mô hình hóa hướng đối tượng ngồi lại với nhau để tích hợp các điểm mạnh của mỗi phương pháp với nhau và đưa ra mô hình thống nhất chung. James Rumbaugh, Grady Booch và Ivar Jacobson đã cùng xây dựng một ngôn ngữ mô hình hóa thống nhất và đặt tên là UML (Unifiled Modeling Language).
UML đầu tiên được đưa ra vào năm 1997 và sau đó được chuẩn hóa thành phiên bản 1. Hiện nay đã có bản 2. Sử dụng UML trong việc lập mô hình, mỗi ký hiệu mang một ý nghĩa rõ ràng và duy nhất nên một nhà phát triển phần mềm có thể đọc được mô hình xây dựng bằng UML do một người khác viết. 3 Việc nắm bắt cấu trúc chương trình thông qua đọc mã lệnh là rất khó khăn thì nay được thể hiện trực quan.
Sử dụng UML làm cho mô hình rõ ràng, sáng sủa làm tăng khả năng giao tiếp, trao đổi giữa các nhà phát triển.2 UML là ngôn ngữ dùng để chi tiết hóa Chi tiết hóa có nghĩa là xây dựng các mô hình một cách tỉ mỉ, rõ ràng, đầy đủ ở các mức độ chi tiết khác nhau. UML thực hiện việc chi tiết hóa tất cả các quyết định quan trọng trong phân tích, thiết kế và thực thi một hệ thống phần mềm.3 UML là ngôn ngữ dùng để sinh ra mã ở dạng nguyên mẫu Các mô hình xây dựng bằng UML có thể ánh xạ tới một ngôn ngữ lập trình cụ thể như Java, C++ hay cả các bảng trong một CSDL quan hệ hay CSDL hướng đối tượng. Một mô hình tốt trở nên vô nghĩa nếu nó không phản ánh đúng hệ thống nên đòi hỏi phải có một cơ chế đồng bộ hóa giữa mô hình và mã lệnh. UML cho phép xây dựng một mô hình từ các mã lệnh thực thi (ánh xạ ngược).
Điều này tạo ra sự nhất quán giữa mô hình của hệ thống và các đoạn mã thực thi mà ta xây dựng cho hệ thống đó.4 UML là ngôn ngữ dùng để lập và cung cấp tài liệu Dưới đây là các loại tài liệu mà UML cung cấp: Các yêu cầu của khách hàng. Kiến trúc hệ thống. Mã nguồn Kế hoạch dự án.5Các thành phần của UML 4 1.1 Các phần tử mang tính cấu trúc Các phần tử mang tính cấu trúc gồm: 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 và các mối quan hệ với các đối tượng khác. Sự cộng tác (Collaboration) Là 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 Use Case.
Giao diện (Interface) Là một tập hợp các phương thức tạo nên dịch vụ của một lớp hoặc một thành phần. Các phương thức chỉ dừng ở mức khai báo không phải ở mức thực thi. Ca sử dụng (Use Case) Là một khối chức năng được thực hiện bởi hệ thống để mang lại một kết quả có giá trị đối với một tác nhân nào đó. Thành phần (Component) Là biểu diễn vật lý của mã nguồn như các file mã nguồn, file nhị phân được tạo ra trong quá triển phát triển hệ thống.
Lớp hoạt động (Active 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. Nodes 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.2 Các phần tử thể hiện hành vi Các phần tử thể hiện hành vi bao gồm: 5 Sự tương tác (Interaction) Gồm một tập các thông báo 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 đó. Máy chuyển trạng thái ( States Machine) Thể hiện trạng thái của đối tượng khi có các sự kiện hay tác động từ bên ngoài vào.3 Các phần tử mang tính nhóm Các phần tử mang tính nhóm bao gồm: Gói (Package) Để nhóm các phần tử có một ý nghĩa chung nào đó vào thành nhóm. Nhóm chỉ mang tính trừu tượng và dùng để nhìn hệ thống ở mức tổng quát hơn.
Ghi chú (Annotational) Là các chú thích dùng để mô tả, sáng tỏ và ghi chú về bất cứ phần tử nào có trong mô hình.4 Các mối quan hệ Các mối quan hệ trong UML là: Quan hệ phụ thuộc (Dependency) Nếu có sự thay đổi ở đối tượng độc lập thì đối tượng phụ thuộc sẽ bị ảnh hưởng. Quan hệ kết hợp (Association) Là mối quan hệ giữa hai lớp khi nhận và gửi thông điệp cho nhau. Quan hệ kết tập (Aggreagation) Là một dạng đặc biệt của quan hệ liên kết. Là mối quan hệ toàn thể - bộ phận.
Quan hệ gộp (Compostion) 6 Là một dạng của quan hệ kết tập, nếu đối tượng toàn thể bị hủy thì các đối tượng bộ phận của nó cũng bị hủy theo. Quan hệ tổng quát hóa (Generalization) Là mối quan hệ thổng quát hóa, trong đó đối tượng cụ thể sẽ kế thừa thuộc tính và phương thức của đối tượng tổng quát hóa Quan hệ hiện thức hóa (Realization) Là mối quan hệ giữa giao diện và lớp hay các thành phần.5 Các loại biểu đồ UML cung cấp các loại biểu đồ sau: Biểu đồ lớp (Class Diagram) Bao gồm tập hợp các lớp, các giao diện, sự cộng tác và các mối quan hệ giữa chúng. Nó thể hiện mặt tĩnh hệ thống. Biểu đối tượng (Object Diagram) Bao gồm tập hợp các đối tượng và các mối quan hệ của chúng Biểu đồ ca sử dụng (Use Case Diagram) Bao gồm các ca sử dụng, các tác nhân và mối quan hệ giữa chúng.
Biểu đồ trạng thái (State Diagram) Bao gồm các trạng thái, các bước chuyển trạng thái và các hoạt động. Biểu đồ tuần tự (Sequence Diagram) Biểu diễn sự tương tác giữa các đối tượng theo thứ tự thời gian. Biểu đồ cộng tác (Collaboration Diagram) Gần giống như biểu đồ tuần tự, thể hiện việc trao đổi thông điệp qua lại giữa các đối tượng mà không quan tâm đến thứ tự các thông báo đó. Biểu đồ hoạt động (Activity Diagram) 7 Chỉ ra luồng đi từ hoạt động này sang hoạt động khác trong hệ thống.
Biểu đồ thành phần (Component Diagram) Chỉ ra cách tổ chức và sự phụ thuộc giữa các thành phần (component). Biểu đồ triển khai (Deployment Diagram) Mô tả các tài nguyên vật lý trong hệ thống, gồm các nút (Nodes), thành phần và kết nối. Biểu đồ gói (Package Diagram) Phản ánh sự tổ chức các gói và các thành phần của chúng. Biểu đồ liên lạc (Communication Diagram) Biểu đồ liên lạc thể hiện thông tin giống như biểu đồ tuần tự nhưng nó nhấn mạnh vào mối quan hệ giữa các đối tượng.6 Các cơ chế chung của UML ( General Mechnism) Các cơ chế chung mà UML cung cấp gồm: Trang trí (Adornment) Các ký hiệu trong UML giúp nhận biết các đặc điểm quan trọng của đối tượng, khái niệm được mô tả một cách dễ dàng và nhanh chóng.
Ghi chú (Note) Ghi chú trong UML giúp một thành phần nào đó trong biểu đồ không bị hiểu lầm. Đặc tả (Specification) Các phần tử mô hình có thuộc tính chứa các giá trị về phần tử này. Một thuộc tính được định nghĩa với một tên và một giá trị đính kèm. Thuộc tính được sử dụng để thêm các đặc tả bổ sung về một phần tử, những thông tin bình thường ra không được thể hiện trong bản đồ.7 Kiến trúc của hệ thống 8 Khi xem xét một hệ thống, chúng ta cần xây dựng các mô hình từ những khía cạnh khác nhau, xuất phát từ thực tế là những người làm việc với hệ thống với những vai trò khác nhau sẽ nhìn hệ thống từ những khía cạnh khác nhau.
UML xét hệ thống trên 5 khía cạnh: Hướng nhìn Use Case Đây là hướng nhìn chỉ ra khía cạnh chức năng của một hệ thống, nhìn từ hướng tác nhân bên ngoài. Hướng nhìn Logic Chỉ ra chức năng bên trong hệ thống được thiết kế như thế nào. Hướng nhìn thành phần Chỉ ra khía cạnh tổ chức của các thành phần code. Hướng nhing song song Chỉ ra sự tồn tại song song/trùng hợp trong hệ thống, hướng đến việc giao tiếp và đồng bộ trong hệ thống.
Hướng nhìn triển khai Chỉ ra khía cạnh triển khai hệ thống vào các kiến trúc vật lý.9 Mở rộng UML UML có thể được mở rộng hoặc có thể được sửa đổi để phù hợp với một phương pháp đặc biệt, một tổ chức cụ thể hay một người dùng cụ thể. Khuôn mẫu (Stereotype) Cơ chế mở rộng khuôn mẫu định nghĩa một loại phần tử mô hình dựa trên một phần tử mô hình đã tồn tại. Khuôn mẫu có thể là một phần tử đã có sẵn, cộng thêm phần quy định ngữ nghĩa riêng biệt không có trong phần tử gốc. Giá trị đính kèm (Tagged Value) 9 Các phần tử mô hình có thể có các thuộc tính chứa một cặp – tên giá trị về bản thân chúng được gọi là các giá trị đính kèm.
Mọi dạng thông tin đều có thể được đính kèm vào phần tử. Rằng buộc (Constraint) Là một sự giới hạn về sự sử dụng hoặc ý nghĩa của một phần tử.10 Giới thiệu về UML 2.0 Những cải tiến trong UML 2.0 đã nhanh chóng trở thành chuẩn được chấp nhận trong việc nhận định, làm tài liệu, và mường tượng về hệ thống phần mềm. UML cũng được sử dụng trong việc mô hình hóa hệ thống không phải là hệ thống phần mềm, và nó được dùng một cách rộng rãi trong hầu hết các lĩnh vực công nghiệp gồm tài chính, quân đội, thiết kế.0 định nghĩa 13 loại biểu đồ cơ bản và được chia làm hai nhóm: nhóm biểu đồ cấu trúc (Structural Modeling Diagram) và nhóm biểu đồ hành vi (Behavioral Modeling Diagram).