• Thứ Sáu, 09/01/2004 10:40 (GMT+7)

    Tiếp cận ngôn ngữ UML

    Giới Thiệu

    UML (Unified Modeling Language) 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ụ thể, nó 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.

    UML được phát triển bởi Rational Rose và một số nhóm cộng tác, nó nhanh chóng trở thành một trong những ngôn ngữ chuẩn để xây dựng hệ thống phần mềm hướng đối tượng (Object-Oriented). Đây là ngôn ngữ kế vị xứng đáng cho những ngôn ngữ mô hình hoá như Booch, OOSE/Jacobson, OMT và một số các phương thức khác.

     

    Mục Tiêu Của Uml

    1. 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.

    2. 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.

    3. Độ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.

    4. Cung cấp nền tảng về sự hiểu biết ngôn ngữ mô hình hoá.

    5. Khuyến khích và hỗ trợ sự phát triển của các công cụ hướng đối tượng.

    6.Hỗ trợ những khái niệm phát triển cấp độ cao như collaboration, framework, pattern and component.

    7. Tích hợp một cách tốt nhất với thực tiễn.

    Một điểm quan trọng cần chú ý là UML là một “ngôn ngữ” dành cho việc chỉ định, đặc tả chứ không phải là các phương thức hay thủ tục. UML được sử dụng để định nghĩa hệ thống phần mềm, chi tiết về hệ thống, làm tài liệu và xây dựng hệ thống, nó là một ngôn ngữ để lên kế hoạch cho việc viết chi tiết. UML có thể được sử dụng theo nhiều cách để hỗ trợ cho các phương pháp luận trong việc phát triển phần mềm.

    Để tiếp cận với UML bạn phải tiếp xúc với nhiều khái niệm. Trong khuôn khổ bài viết này tôi không thể cung cấp cho bạn tất cả, tuy nhiên tôi sẽ cố gắng 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 UML cung cấp 9 loại biểu đồ:

     

    Biểu Đồ Lớp (Class Diagram)

    Class diagram là xương sống của hầu như tất cả các phương pháp hướng đối tượng, bao gồm cả UML. Chúng mô tả các cấu trúc tĩnh của hệ thống.

     

    Biểu Đồ Gói (Package Diagram)

    Package Diagram là tập hợp các class diagram. Các package diagram thiết lập mối quan hệ giữa các pakage, trong đó pakage là những nhóm phần tử của hệ thống có mối quan hệ liên quan đến nhau.

     

    Biểu Đồ Chức Năng

    (Use Case Diagram)

    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

     

    Biểu Đồ Tương Tác

    (Collaboration Diagram)

    Collaboration Diagram cung cấp về cách nhìn sự tương tác hoặc mối quan hệ có cấu trúc giữa các đối tượng trong mô hình hiện thời. Collaboration Diagram bao gồm các đối tượng, liên kết và thông báo. Sử dụng mô hình như là một phương tiện chính để mô tả những tương tác và cách giải quyết của các hành vi trong hệ thống.

     

    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.

     

    Biểu Đồ Trạng Thái (Statechart Diagram)

    Bạn sử dụng Statechart Diagram mô tả những hành động của các lớp và đối tượng riêng lẻ,  mô tả trình tự những trạng thái mà các đối tượng sẽ đi qua.

     

    Biểu Đồ Hoạt Động (Activity Diagram)

    Activity Diagram mô tả tiến trình xử lý và trình tự những hành động trong tiến trình xử lý, Trông nó giống như biểu đồ tiến trình (flowchart) bởi vì nó mô tả dòng làm việc từ hoạt động sang hoạt động và từ hoạt động sang trạng thái. Khi xây dựng activity diagram nó giúp bạn có thể hiểu được toàn bộ tiến trình hoạt động. Nó rất hữu dụng khi bạn mô tả những tiến trình song song hoặc mô tả  một vài tương tác trong use case.

     

    Biểu Đồ Thành Phần (Component Diagram)

    Component Diagram cho chúng ta cách nhìn vật lý của mô hình thực tế. Nó thể hiện rõ cho chúng ta thấy sự cấu tạo và sự phụ thuộc giữa các thành phần của phần mềm bao gồm mã nguồn, mã nhị phân (binary code) và những thành phần có khả năng thực thi.

     

    Biểu Đồ Triển Khai (Deployment Diagram)

    Deployment Diagrams mô tả các tài nguyên vật lý trong hệ thống, bao gồm các nút (node), thành phần và kết nối. Mỗi mô hình chỉ bao gồm một deployment diagram hiển thị ánh xạ giữa những tiến trình xử lý tới thiết bị phần cứng.

     

    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, tuy nhiên hai phần mềm vẫn hay dùng để thiết kế là Visio và Rational Rose. Với Rational Rose bạn có được sức mạnh khá cao, nó có thể sản sinh cho bạn mã nguồn với sự hỗ trợ rất nhiều ngôn ngữ cấp cao như C++, Visual Basic, Ada, Java, CORBA, v.v. Tác giả hi vọng trong thời gian tới sẽ cung cấp cho độc giả bài viết về cách tạo phần mềm với những công cụ xây dựng phần mềm trên.

     

    Tạ Yên Thái

    Email: tayenthai@yahoo.co.uk

    ID: A0210_94