UML

Unified Modeling Language

Intro

Problem

Как программные системы …​ ?

  • визуализировать

  • специфицировать

  • конструировать

  • документировать

Solution

UML

UML: class-diagram

One of many

Common

Class

UML class diagram: class

OOP: abstraction

UML class diagram: abstraction

OOP: inheritance

UML class diagram: inheritance

OOP: inheritance

UML class diagram: inheritance (simple)

Interface

UML class diagram: interface

Inheritance vs. Interface

UML class diagram: inheritance vs. interface

Abstract Class

UML class diagram: abstract class

Relations

Relation: dependency

UML class diagram: dependency

Зависимость:

  • Класс А могут затронуть изменения в классе B. Другими словами: изменяя класс B (названия полей, методов, их параметры и возвращаемый тип) возможно потребуется делать изменения и в классе A

Relation: association

UML class diagram: association

Ассоциация:

  • Класс A зависит от B.

  • Объект A знает об объекте B.

Relation: aggregation

UML class diagram: aggregation

Агрегация:

  • Класс A зависит от B.

  • Объект A знает об объекте B.

  • Объект A состоит из объекта B.

Relation: composition

UML class diagram: composition

Композиция:

  • Класс A зависит от B.

  • Объект A знает об объекте B.

  • Объект A состоит из объекта B.

  • Объект A управляет жизненным циклом объекта B.

Relation: Interface

UML class diagram: interface

Relation: Interface

Реализация:

  • Класс A зависит от B.

  • Класс A определяет методы объявленные интерфейсом B.

  • Объекты A можно рассматривать через интерфейс B.

Relation: inheritance

UML class diagram: inheritance

Relation: inheritance

Наследование:

  • Класс A зависит от B.

  • Класс A наследует интерфейс и реализацию класса B, но может переопределить её.

  • Объекты A можно рассматривать через интерфейс класса B.

Relations

UML class diagram: relations