- vừa được xem lúc

Biểu Đồ lớp UML

0 0 29

Người đăng: HuuNV

Theo Viblo Asia

Biểu đồ UML Class (Unified Modeling Language Class) là một tập các ký hiệu đồ họa được sử dụng để xây dựng và trực quan hóa các hệ thống hướng đối tượng. Một sơ đồ Class trong ngôn ngữ mô hình hóa thống nhất (UML) là một loại sơ đồ cấu trúc tĩnh mô tả cấu trúc của một hệ thống bằng cách hiển thị:

  • Các class,
  • Các thuộc tính,
  • Các phương thức,
  • Các mối quan hệ giữa các đối tượng.

Class là gì ?

Một class không phải là một đối tượng mà nó là một mô tả cho đối tượng đó. Trong thực tế, class mô tả loại đối tượng, trong khi các đối tượng là các thể hiện có thể sử dụng của các class. Mỗi đối tượng được xây dựng từ cùng một tập hợp các bản thiết kế và do đó chứa các thành phần giống nhau (thuộc tính và phương thức). Ý nghĩa tiêu chuẩn là một đối tượng là một thể hiện của một class và đối tượng - Các đối tượng có các trạng thái và hành vi.

Ký hiệu UML class

Một claas đại diện cho một khái niệm đóng gói trạng thái (thuộc tính) và hành vi (phương thức). Mỗi thuộc tính có một loại. Mỗi phương thức có một chữ ký. Tên lớp là thông tin bắt buộc duy nhất.

Tên class:

  • Tên của lớp xuất hiện trong phân vùng đầu tiên.

Thuộc tính class:

  • Các thuộc tính được hiển thị trong phân vùng thứ hai.
  • Thuộc tính được hiển thị sau dấu hai chấm.
  • Thuộc tính map vào các biến thành viên (thành viên dữ liệu) trong code.

Phương thức:

  • Phương thức được hiển thị trong phân vùng thứ ba. Chúng là các dịch vụ mà class cung cấp.
  • Kiểu trả về của một phương thức được hiển thị sau dấu hai chấm ở cuối chữ ký phương thức.
  • Kiểu trả về của các tham số phương thức được hiển thị sau dấu hai chấm theo tên tham số.

Sơ đồ hoạt động vào các phương thức lớp trong mã

Các dấu (+) , (-) và (#) tương ứng với các thuộc tính (public), (private) và (proteted).

Định hướng tham số

Mỗi tham số trong một hoạt động (phương thức) có thể được ký hiệu là vào, ra hoặc vào trong đó chỉ định hướng của nó đối với người gọi. Hướng này được hiển thị trước tên tham số.

Cách thể hiện sơ đồ class

Tùy thuộc vào bạn muốn thể hiên điều gì và nhấn mạnh vào vấn đề gì thì bạn có thể trình diễn hoặc kết hợp một trong cách sơ đồ bên dưới đây:

  • Conceptual: đại diện cho các khái niệm trong miền.
  • Specification: trọng tâm là các giao diện của Kiểu dữ liệu trừu tượng (ADTs) trong phần mềm.
  • Implementation: mô tả cách các calss sẽ thực hiện giao diện của nó.

Trong triển khai sơ đồ class thì tên class thứ duy nhất ta không được bỏ.

Mối quan hệ giữa các class

UML không phải chỉ là những hình ảnh đẹp. Nếu được sử dụng một cách chính xác, UML truyền tải chính xác cách thức code được triển khai từ các sơ đồ. Nếu được giải thích chính xác, code được triển khai sẽ phản ánh chính xác ý định của người thiết kế. Bạn có thể mô tả ý nghĩa của từng mối quan hệ liên quan đến ngôn ngữ lập trình mục tiêu của bạn được hiển thị trong hình bên dưới không?

Nếu bạn chưa thể nhận ra chúng, không có vấn đề gì trong phần này nhằm giúp bạn hiểu các mối quan hệ của lớp UML. Một lớp có thể tham gia vào một hoặc nhiều mối quan hệ với các lớp khác. Một mối quan hệ có thể là một trong các loại sau:

Association

Association là sự liên kết giữa 2 class khi mà không cái nào sở hữu cái nào. Vòng đời các thể hiện của 2 class thì độc lập nhau và không có mối quan hệ sở hữu nào trong biểu diễn này.

Inheritance (or Generalization)

Còn có tên khác là:

  • Quan hệ tổng quát hóa
  • Quan hệ khái quát hóa
  • Quan hệ kế thừa Đối tượng cụ thể (concrete) sẽ kế thừa các thuộc tính và phương thức của đối tượng tổng quát (general).

Ký hiệu: A is-a B

Đọc là :

  • A là tổng quát của B, B là chi tiết của A
  • B là trường hợp đặc biệt của A
  • A là cha của B, B là con của A

Realization

Realization là một mối quan hệ giữa lớp kế hoạch chi tiết và đối tượng chứa các chi tiết mức độ thực hiện tương ứng của nó. Đối tượng này được cho là nhận ra lớp kế hoạch chi tiết. Nói cách khác, bạn có thể hiểu đây là mối quan hệ giữa interface và lớp implementing .

Dependency

Một đối tượng của một classA có thể sử dụng một đối tượng của một classB khác trong một phương thức của classA. Nếu đối tượng (classA) không được lưu trữ trong bất kỳ trường nào (của classB), thì điều này được mô hình hóa như một mối quan hệ phụ thuộc. Ta nói classA phụ thuộc vào classB.

Aggregation

  • ClassA và ClassB có quan hệ Association với nhau
  • Object của ClassA có chứa object của ClassB
  • Object của ClassA và Object của ClassB có vòng đời riêng biệt. Nghĩa là A bị hủy thì B sẽ không bị hủy theo.
  • Còn gọi là : Whole A – Part B . Nghĩa là A được tạo từ nhiều B kết hợp lại , và B có thể tạo ra độc lập , không cần phải tạo ra A , B có thể cùng thuộc 1 whole khác A.

Composition

  • ClassA và ClassB có quan hệ Association với nhau
  • Còn gọi là Whole A – Part B . Nghĩa là A được tạo từ nhiều B kết hợp lại , nhưng B không thể đứng 1 mình được , B chỉ là thuộc A mà thôi không thể cùng thuộc Whole khác được.
  • Object của Class A có chứa object của ClassB. Nếu A bị hủy thì B sẽ không tồn tại. ngược lại, B bị hủy thì se không ảnh hưởng đến A

nguồn : https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 525

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 397

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 738

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 358

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 450

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 433