Unified Modelling Language (UML)

Файлы

МППО тема 2.txt

UML: Назначение

UML: Особенности

Типы диаграмм

Структурные диаграммы

Диаграммы поведения

Диаграммы взаимодействия

UML: преимущества

UML: Способы построения

MS Visio

Визуальные: Преимущества

Визуальные: Недостатки

PlantUML

PlantUML: Диаграмма последовательности

@startuml
Alice -> Bob: Authentication
    Request
Bob --> Alice: Authentication
Response
Alice -> Bob: Another request
Alice <-- Bob: Another response
@enduml
@startuml
Bob -&gt;x Alice
Bob -&gt; Alice
Bob -&gt;&gt; Alice
Bob -\ Alice
Bob \\- Alice
Bob //-- Alice
Bob -&gt;o Alice
Bob o\\-- Alice
Bob &lt;-&gt; Alice
Bob &lt;-&gt;o Alice
@enduml

PlantUML: Диаграмма использования

@startuml
(Start) as Start
    (Use the application) as Using
User -&gt; Start
User --&gt; Using : A small label
:Main Admin: ---&gt; Using : This is\nyet
    another\nlabel
@enduml

PlantUML: Диаграмма классов

@startuml
interface Product {
    + setName(String name)
    + getName()
}
class ConcreteProduct {
    - String name
    + setName(String name)
    + getName()
}
abstract class Creator {
    + Product factoryMethod()
}
class ConcreteCreator {
    + Product factoryMethod()
}
Product &lt;|- ConcreteProduct
    Creator &lt;|- ConcreteCreator
    ConcreteProduct &lt;.. ConcreteCreator
@enduml

PlantUML: Диаграмма деятельности

@startuml
start
:Прослушать лекции;
:Выполнить лабораторные работы;
repeat
:Подготовиться к экзамену;
if (Есть допуск?) then
    :Прийти на экзамен;
endif
    repeat while (Как экзамен?) is (:()
stop
@enduml

PlantUML: Диаграмма компонентов

@startuml
package "Some Group" {
    HTTP - [First Component]
    [Another Component]
    }
    node "Other Groups" {
    FTP - [Second Component]
    [First Component] --&gt; FTP
    }
    cloud {
    [Example 1]
    }
    database "MySql" {
    folder "This is my folder" {
    [Folder 3]
    }
    frame "Foo" {
    [Frame 4]
    }
    }
    [Another Component] --&gt; [Example 1]
    [Example 1] --&gt; [Folder 3]
    [Folder 3] --&gt; [Frame 4]
@enduml

PlantUML: Диаграмма состояний

@startuml
[*] --&gt; NotShooting
    state "Not Shooting State" as NotShooting {
    state "Idle mode" as Idle
    state "Configuring mode" as Configuring
    [*] --&gt; Idle
    Idle --&gt; Configuring : EvConfig
    Configuring --&gt; Idle : EvConfig
    }
note right of NotShooting : This is a\nnote on a
    composite state
@enduml

PlantUML: Диаграмма развертывания

@startuml
node "&lt;<device>&gt;\nWeb Server" as
    WebServer {
    artifact Website
    }
    node "&lt;<device>&gt;\n:DB Server" as
    DbServer {
    artifact "MySQL DB"
    }
    node "&lt;<device>&gt;\n:User Client" as
    UserClient {
    node "&lt;<device>&gt;\nBrowser" {
    artifact "HTML 5"
    }
    }
WebServer –- DbServer
WebServer -- UserClient : http:80
@enduml
</device></device></device></device>

PlantUML: Диаграмма объектов

@startuml
object User {
    id = 123
    name = "John Doe"
    }
object AuthToken {
    salt = "w34a290sdfh2i8dsf"
    secret = "2237w3bed023usdf799"
    }
User "1" o-- "1" AuthToken
@enduml

Что использовать?