Phân tích thiết kế hệ thống thông tin sử dụng biểu đồ UML (Phần 1)

1.Giới Thiệu

img_UML.png

Tiếng nói 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 tiếng nói mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng người dùng sử dụng để thiết kế các mạng lưới hệ thống thông tin một cách nhanh chóng.

Cách xây dựng các mô hình trong UML phù hợp mô tả các mạng lưới 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 dân thiết kế và thực hiện mạng lưới hệ thống thông tin cũng như những người dân sử dụng nó; tạo nên một chiếc nhìn chung và đầy đủ về mạng lưới hệ thống thông tin dự kiến xây dựng. Cách nhìn chung 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ừ thời đ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. Các mô hình hướng đối tượng người dùng được lập cũng là cơ sở cho việc ứng dụng các lớp học tự động hóa sinh mã trong các tiếng nói lập trình hướng đối tượng người dùng, ví như tiếng nói C++, Java,… Phương pháp mô hình này rất hữu dụng trong lập trình hướng đối tượng người dùng. Các mô hình được sử dụng gồm có Mô hình đối tượng người dùng (mô hình tĩnh) và Mô hình động.

UML sử dụng một mạng lưới hệ thống ký hiệu thống nhất trình diễn các Thành phần mô hình (model elements). Tập hợp các thành phần mô hình tạo thành các Sơ đồ UML (UML diagrams). Có những loại sơ đồ UML chủ yếu sau:

  • Sơ đồ lớp (Class Diagram)
  • Sơ đồ đối tượng người dùng (Object Diagram)
  • Sơ đồ tình huống sử dụng (Use Cases Diagram)
  • Sơ đồ trình tự (Sequence Diagram)
  • Sơ đồ hợp 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 kì (Timing Diagram – UML 2.0)

2.Một số dạng biểu đồ UML phổ quát

2.1.Biểu đồ Use case (Use Case Diagram)

Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên kết của chúng so với Use case mà mạng lưới hệ thống cung cấp. Một Use case là một lời miêu tả của một chức năng mà mạng lưới hệ thống cung cấp. Lời miêu tả Use case thường là một văn bản tài liệu, nhưng kèm Từ đó cũng luôn có thể là một biểu đồ hoạt động. Các Use case được miêu tả duy nhất theo phía nhìn từ ngoài vào của những tác nhân (hành vi của mạng lưới hệ thống theo như sự mong đợi của người sử dụng), không miêu tả chức năng được cung cấp sẽ hoạt động nội bộ bên trong mạng lưới hệ thống ra sao. Các Use case khái niệm các yêu cầu về mặt chức năng so với mạng lưới hệ thống.

  • Khối hệ thống: Với vai trò là thành phần của biểu đồ use case, mạng lưới hệ thống trình diễn ranh giới giữa bên trong và bên phía ngoài của một chủ thể trong phần mềm tất cả chúng ta xây dựng.Một mạng lưới hệ thống ở trong biểu đồ use case không nhất thiết là một hệ phần mềm; nó có thể là một chiếc máy,hoặc là một mạng lưới hệ thống thực như một doanh nghiệp, một trường ĐH,…

  • Tác nhân(actor):là người dùng của mạng lưới hệ thống, một tác nhân có thể là một người dùng thực hoặc các mạng lưới hệ thống máy tính khác có vai trò nào đó trong hoạt động của mạng lưới hệ thống. Như vậy, tác nhân thực hiện các use case. Một tác nhân có thể thực hiện nhiều use case và trái lại một use case cũng luôn có thể được thực hiện bởi nhiều tác nhân

    Tác nhân được kí hiệu:

    hoặc

  • Các use case: Đây là thành phần cơ bản của biểu đồ use case. Các use case được trình diễn bởi các hình elip.Tên các use case thể hiện một chức năng xác định của mạng lưới hệ thống.

    Các Use case được kí hiệu bằng hình elips.

    Use-Case-Notation.jpg

  • Quan hệ giữa các use case:

    • Association: thường được dùng làm mô tả quan hệ giữa Actor và Use Case và giữa các Use Case với nhau

    Association.jpg

    Ví dụ quan hệ association:

    • Include: là quan hệ giữa các Use Case với nhau, nó mô tả việc một Use Case lớn được chia ra thành các Use Case nhỏ để dễ setup (module hóa) hoặc thể hiện sự dùng lại.

    Ví dụ quan hệ include:

    • Extent: Extend dùng làm mô tả quan hệ giữa 2 Use Case. Quan hệ Extend được sử dụng khi có một Use Case được tạo ra để bổ sung chức năng cho một Use Case có sẵn và được sử dụng trong một điều kiện kèm theo nhất định nào đó.

    Ví dụ quan hệ extent:

    • Generalization: được sử dụng để thể hiện quan hệ thừa kế giữa các Actor hoặc giữa các Use Case với nhau.

    Ví dụ quan hệ Generalization:

2.2.Biểu đồ lớp (Class Diagram)

Một biểu đồ lớp chỉ ra cấu trúc tĩnh của những lớp trong mạng lưới hệ thống. Các lớp là đại diện thay mặt cho những “đối tượng người dùng” được xử lý trong mạng lưới hệ thống. Các lớp có thể quan hệ với nhau trong nhiều dạng thức:

  • liên kết (associated – được nối kết với nhau),
  • phụ thuộc (dependent – một lớp này phụ thuộc vào lớp khác),
  • chuyên biệt hóa (specialized – một lớp này là một kết quả chuyên biệt hóa của lớp khác),
  • hay đóng gói ( packaged – phù hợp với nhau thành một đơn vị).

Tất cả những quan hệ này đều được thể hiện trong biểu đồ lớp, đi kèm với cấu trúc bên trong của những lớp theo khái niệm tính chất (attribute) và thủ tục (operation). Biểu đồ được xem là biểu đồ tĩnh theo phương diện cấu trúc được miêu tả ở đây có hiệu lực tại bất kỳ thời khắc nào trong toàn bộ vòng đời mạng lưới hệ thống.

Một mạng lưới hệ thống thường sẽ sở hữu được một loạt các biểu đồ lớp – không phải bao giờ tất cả những biểu đồ lớp này cũng được nhập vào trong 1 biểu đồ lớp tổng thể duy nhất – và một lớp có thể tham gia vào nhiều biểu đồ lớp.

2.2.1.Một lớp có những thành phần sau

  • Tên lớp

  • Các tính chất

  • Các phương thức

2.2.2.Liên kết giữa các lớp

  • Liên kết (Association)
    • Mối liên hệ ngữ nghĩa giữa hai hay nhiều lớp chỉ ra sự liên kết giữa các thể hiện của chúng
    • Quan hệ về mặt cấu trúc chỉ ra các đối tượng người dùng của lớp này còn có kết nối với những đối tượng người dùng của lớp khác.

Bội số quan hệ: là số lượng thể hiện của một lớp liên quan tới một thể hiện của lớp khác. Với mỗi liên kết, có hai bội số quan hệ cho hai đầu của liên kết.

Ví dụ:

Với mỗi đối tượng người dùng của Professor, có nhiều Course Offerings có thể được dạy. Với mỗi đối tượng người dùng của Course Offering, có thể có một hoặc 0 Professor giảng dạy.

  • Trình diễn bội số quan hệ:

Trình diễn Ý nghĩa Unspecified 1 xác thực 1 0..* 0 hoặc nhiều * 0 hoặc nhiều 1..* 1 hoặc nhiều 0..1 0 hoặc 1 2..4 Specified Range 2, 4..6 Multiple, Disjoint Ranges

  • Kết tập (Aggregation)

    • Là một dạng đặc biệt quan trọng của liên kết mô hình hóa quan hệ toàn thể-bộ phận (whole-part) giữa đối tượng người dùng toàn thể và các phòng ban của nó.
    • Kết tập là quan hệ “là một phần” (“is a part-of”).
    • Bội số quan hệ được trình diễn tựa như những liên kết khác
    • Cấu thành (Composition) là :Một dạng của kết tập với quyền sở hữu mạnh và các vòng đời trùng khớp giữa hai lớp

    ▫ Whole sở hữu Part, tạo và hủy Part.

    ▫ Part bị bỏ đi khi Whole bị bỏ, Part không thể tồn tại nếu Whole không tồn tại.

    Untitled(4).png

Sự khác nhau giữa Association, Aggregation và Composition

  • Tổng quát hóa (Generalization)

    • Quan hệ giữa các lớp trong đó một lớp san sớt cấu trúc và/hoặc hành vi với một hoặc nhiều lớp khác

    • Xác định sự phân cấp về mức độ trừu tượng hóa trong đó lớp con thừa kế từ một hoặc nhiều lớp cha

      ▫ Đơn thừa kế (Single inheritance)

      ▫ Đa thừa kế (Multiple inheritance)

    • Là mối liên hệ “là một loại” (“is a kind of”)

Lớp trừu tượng và lớp cụ thể (Abstract and Concrete Class)

2.2.3.Gói

Nếu khách hàng đang mô hình hóa một mạng lưới hệ thống lớn hoặc một ngành nghiệp vụ lớn, thì không thể tránh khỏi, sẽ sở hữu được nhiều phân loại khác nhau trong mô hình của bạn. Việc quản lý tất cả những lớp có thể là một nhiệm vụ khó khăn, do vậy UML cung cấp một thành phần tổ chức được gọi là gói. Các gói được chấp nhận các nhà tạo mô hình tổ chức các phân loại của mô hình thành các vùng tên, là một kiểu tựa như những thư mục trong một mạng lưới hệ thống tệp. Việc phân chia một mạng lưới hệ thống thành nhiều gói làm cho mạng lưới hệ thống trở thành dễ hiểu, nhất là nếu từng gói đại diện thay mặt cho một phần cụ thể của mạng lưới hệ thống

Có hai phương pháp để vẽ các gói trên sơ đồ. Không có quy tắc để xác định xem ký pháp nào sẽ tiến hành sử dụng, ngoại trừ việc tuân theo phán xét riêng của bạn về việc ký pháp nào là dễ đọc các sơ đồ lớp mà bạn đang vẽ nhất. Cả hai cách sẽ mở màn bằng một hình chữ nhật lớn với một hình chữ nhật nhỏ hơn (phiếu) nằm ở phía trên cùng bên trái nó, như trong . Nhưng nhà tạo mô hình phải quyết định cách thể hiện các thành viên của gói ra làm sao, ví dụ như sau:

goi 1.jpg

Nếu nhà tạo mô hình quyết định hiển thị các thành viên của gói bên trong hình chữ nhật lớn, thì tất cả những thành viên4 sẽ phải được đặt trong hình chữ nhật đó. Cũng vậy, tên của gói cần được đặt trong hình chữ nhật nhỏ hơn của gói Nếu nhà tạo mô hình quyết định hiển thị các thành viên của gói bên phía ngoài hình chữ nhật lớn, thì tất cả những thành viên sẽ tiến hành hiển thị trên sơ đồ cần phải được để ở bên phía ngoài hình chữ nhật ấy. Để cho thấy phân loại nào thuộc về gói, thì một đường thẳng sẽ tiến hành vẽ từ từng phân loại đến một vòng tròn có dấu cộng (+) bên trong vòng tròn gắn liền với gói.

Ví dụ:

goi 2.jpg

====> Như vậy trong phần này tôi đã giới thiệu với những bạn về biểu đồ UML và 2 dạng biểu đồ cơ bản hay được sử dụng trong các tài liệu thiết kế mạng lưới hệ thống.Ở phần tiếp theo tôi sẽ tiếp tục giới thiệu tới các bạn 3 dạng biểu đồ tiếp theo là:

  • Biểu đồ trạng thái (State Diagram)
  • Biểu đồ tuần tự (Sequence Diagram)
  • Biểu đồ hoạt động (Active Diagram)

3.Phương tiện vẽ biểu đồ UML

  • Phương tiện offline

    • Diagram tải về tại đây: http://diagram-designer.en.softonic.com/
  • Phương tiện trực tuyến

    • https://cacoo.com/diagrams/
    • http://creately.com/Draw-UML-and-Class-Diagrams-Trên Internet

4.Tài liệu tham khảo

Các chúng ta cũng có thể xem những qui định chuẩn trong thiết kế biểu đồ UML tại đây:

  • http://www.tutorialspoint.com/uml/uml_standard_diagrams.htm
  • https://www.smartdraw.com/uml-diagram/
  • http://www.holub.com/goodies/uml/

Hứa hẹn tái ngộ các bạn trong nội dung bài viết tiếp theo!

You May Also Like

About the Author: v1000