|
|
(не показано 12 промежуточных версий 6 участников) |
Строка 1: |
Строка 1: |
− | Можно автоматически рисовать UML-диаграммы классов по их текстовому описанию, | + | Можно автоматически рисовать UML-диаграммы классов по их текстовому описанию, причём с помощью двух расширений: |
− | близкому к описанию классов на языках типа Java/С#. | + | * [http://plantuml.sourceforge.net/ PlantUML] — более удобный, чем UMLGraph, по собственному языку разметки. |
| + | * [http://www.umlgraph.org/ UMLGraph] — по близкому к описанию классов на языках типа Java/С#. |
| | | |
− | ==Диаграммы классов== | + | = [http://plantuml.sourceforge.net/ PlantUML] = |
| + | |
| + | Полная справка по языку — [[Media:PlantUML Language Reference Guide.pdf]]. [[Файл:PlantUML Language Reference Guide.pdf|thumb|Справка по PlantUML]] |
| + | |
| + | Синтаксис вставки — просто |
| + | <pre> |
| + | <uml> |
| + | ...код... |
| + | </uml> |
| + | </pre> |
| + | |
| + | Пример графа: |
| + | {{Annotated| |
| + | <uml> |
| + | title Основной цикл — получение агрегированных проводок |
| + | |
| + | autonumber "<b>[0]" |
| + | |
| + | note left of МСФО: 1.1 |
| + | activate МСФО |
| + | МСФО -> Система: Запрос справочников |
| + | deactivate МСФО |
| + | |
| + | note right of Система: 2.1 |
| + | activate Система |
| + | Система -> МСФО: Возврат справочников |
| + | deactivate Система |
| + | note left of МСФО: 1.2 |
| + | |
| + | activate МСФО |
| + | МСФО -> Система: Запрос используемых аналитик |
| + | deactivate МСФО |
| + | note right of Система: 2.2 |
| + | activate Система |
| + | Система -> МСФО: Возврат используемых аналитик |
| + | deactivate Система |
| + | note left of МСФО: 1.3 |
| + | |
| + | activate МСФО |
| + | МСФО -> Система: Запрос выгрузки/выгрузок |
| + | deactivate МСФО |
| + | note right of Система: 2.3 |
| + | activate Система |
| + | Система -> МСФО: Возврат выгрузки/выгрузок |
| + | deactivate Система |
| + | note left of МСФО: 1.4 |
| + | |
| + | activate МСФО |
| + | МСФО -> Система: Результат выгрузки/выгрузок |
| + | deactivate МСФО |
| + | activate Система |
| + | note right of Система: 2.4 |
| + | </uml> |
| + | |<code-xml> |
| + | <uml> |
| + | title Основной цикл — получение агрегированных проводок |
| + | |
| + | autonumber "<b>[0]" |
| + | |
| + | note left of МСФО: 1.1 |
| + | activate МСФО |
| + | МСФО -> Система: Запрос справочников |
| + | deactivate МСФО |
| + | |
| + | note right of Система: 2.1 |
| + | activate Система |
| + | Система -> МСФО: Возврат справочников |
| + | deactivate Система |
| + | note left of МСФО: 1.2 |
| + | |
| + | activate МСФО |
| + | МСФО -> Система: Запрос используемых аналитик |
| + | deactivate МСФО |
| + | note right of Система: 2.2 |
| + | activate Система |
| + | Система -> МСФО: Возврат используемых аналитик |
| + | deactivate Система |
| + | note left of МСФО: 1.3 |
| + | |
| + | activate МСФО |
| + | МСФО -> Система: Запрос выгрузки/выгрузок |
| + | deactivate МСФО |
| + | note right of Система: 2.3 |
| + | activate Система |
| + | Система -> МСФО: Возврат выгрузки/выгрузок |
| + | deactivate Система |
| + | note left of МСФО: 1.4 |
| + | |
| + | activate МСФО |
| + | МСФО -> Система: Результат выгрузки/выгрузок |
| + | deactivate МСФО |
| + | activate Система |
| + | note right of Система: 2.4 |
| + | </uml> |
| + | </code-xml> |
| + | |Разметка}} |
| + | |
| + | = [http://www.umlgraph.org/ UMLGraph] = |
| + | |
| + | == Диаграммы классов == |
| <code-java> | | <code-java> |
| /** | | /** |
Строка 18: |
Строка 118: |
| <umlgraph> | | <umlgraph> |
| /** | | /** |
− | * @opt nodefontcolor "blue" | + | * @opt nodefontcolor «blue» |
| */ | | */ |
| class Person { | | class Person { |
− | String Name; | + | String Name; |
| } | | } |
| | | |
Строка 28: |
Строка 128: |
| class Client extends Person {} | | class Client extends Person {} |
| </umlgraph> | | </umlgraph> |
− |
| |
− |
| |
− |
| |
| | | |
| <umlgraph> | | <umlgraph> |
Строка 38: |
Строка 135: |
| | | |
| /** | | /** |
− | * @composed 1 - 4 Tyre | + | * @composed 1 — 4 Tyre |
− | * @composed 1 - 1 Engine | + | * @composed 1 — 1 Engine |
− | * @composed 1 - 1 Body | + | * @composed 1 — 1 Body |
| */ | | */ |
| class Car {} | | class Car {} |
Строка 47: |
Строка 144: |
| | | |
| <code-java> | | <code-java> |
− |
| |
| | | |
| class Tyre {} | | class Tyre {} |
Строка 61: |
Строка 157: |
| | | |
| </code-java> | | </code-java> |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
| | | |
| <code-java> | | <code-java> |
Строка 125: |
Строка 216: |
| </umlgraph> | | </umlgraph> |
| | | |
− | | + | === Большой пример === |
− | ===Большой пример=== | + | |
| | | |
| <umlgraph> | | <umlgraph> |
− |
| |
− |
| |
| /** | | /** |
| * @hidden | | * @hidden |
Строка 197: |
Строка 285: |
| */ | | */ |
| class RunningCounter extends Counter{} | | class RunningCounter extends Counter{} |
− |
| |
− |
| |
| </umlgraph> | | </umlgraph> |
| | | |
− | ===Generalisation Relationships=== | + | === Generalisation Relationships === |
| | | |
| <umlgraph> | | <umlgraph> |
− |
| |
− |
| |
| /* | | /* |
| * Generalisation | | * Generalisation |
Строка 233: |
Строка 317: |
| class CheckingAccount extends BankAccount {} | | class CheckingAccount extends BankAccount {} |
| class SavingsAccount extends BankAccount {} | | class SavingsAccount extends BankAccount {} |
− |
| |
| </umlgraph> | | </umlgraph> |
− | ===Advanced Relationships=== | + | |
| + | === Advanced Relationships === |
| | | |
| <umlgraph> | | <umlgraph> |
− |
| |
− |
| |
| /* | | /* |
| * Advanced relationships | | * Advanced relationships |
Строка 261: |
Строка 343: |
| * @navassoc - - - PowerManager | | * @navassoc - - - PowerManager |
| */ | | */ |
− | class SetTopController implements URLStreamHandler { | + | class SetTopController implements URLStreamHandler { |
| int authorizationLevel; | | int authorizationLevel; |
| void startUp() {} | | void startUp() {} |
Строка 268: |
Строка 350: |
| } | | } |
| | | |
− | /** @depend - <friend> - SetTopController */ | + | /** @depend — <friend> — SetTopController */ |
| class ChannelIterator {} | | class ChannelIterator {} |
| | | |
Строка 277: |
Строка 359: |
| void toExternalForm(); | | void toExternalForm(); |
| } | | } |
| + | </umlgraph> |
| | | |
| + | === Relationships Inference === |
| | | |
− | </umlgraph>
| |
− |
| |
− | ===Relationships Inference===
| |
| <umlgraph> | | <umlgraph> |
− |
| |
− |
| |
| import java.util.List; | | import java.util.List; |
| import java.util.Map; | | import java.util.Map; |
Строка 318: |
Строка 397: |
| Person owner; | | Person owner; |
| } | | } |
− |
| |
| | | |
| </umlgraph> | | </umlgraph> |
| | | |
− | ===Schema=== | + | === Schema === |
| + | |
| <umlgraph> | | <umlgraph> |
− |
| |
| | | |
| /* | | /* |
Строка 395: |
Строка 473: |
| Name name; | | Name name; |
| } | | } |
− |
| |
| | | |
| </umlgraph> | | </umlgraph> |
| | | |
− | ===Element Visibility=== | + | === Element Visibility === |
| + | |
| <umlgraph> | | <umlgraph> |
− |
| |
| | | |
| /** | | /** |
Строка 428: |
Строка 505: |
| private void compact() {} | | private void compact() {} |
| } | | } |
− |
| |
| | | |
| </umlgraph> | | </umlgraph> |
| | | |
− | ===Association Types=== | + | === Association Types === |
| + | |
| <umlgraph> | | <umlgraph> |
− |
| |
| | | |
| /** | | /** |
Строка 443: |
Строка 519: |
| * @hidden | | * @hidden |
| */ | | */ |
− | class UMLOptions {} | + | class UMLOptions {} |
| | | |
− | /** @assoc * - "*\n\n+user " User */ | + | /** @assoc * — "*\n\n+user " User */ |
| class UserGroup {} | | class UserGroup {} |
| | | |
− | /** @navassoc "1\n\n+owner\r" - "*\n\n+key" Password */ | + | /** @navassoc «1\n\n+owner\r» — «*\n\n+key» Password */ |
| class User{} | | class User{} |
| | | |
| class Password{} | | class Password{} |
− |
| |
| | | |
| </umlgraph> | | </umlgraph> |
| | | |
− | ===Real Example (Catalina Classes)=== | + | === Real Example (Catalina Classes) === |
| + | |
| <umlgraph> | | <umlgraph> |
− |
| |
| | | |
| /* | | /* |
Строка 484: |
Строка 559: |
| abstract interface ServletResponse {} | | abstract interface ServletResponse {} |
| abstract interface Response {} | | abstract interface Response {} |
− |
| |
| | | |
| </umlgraph> | | </umlgraph> |
| | | |
− | ===Class Stereotypes and Tagged Values=== | + | === Class Stereotypes and Tagged Values === |
| + | |
| <umlgraph> | | <umlgraph> |
− |
| |
| | | |
| /* | | /* |
Строка 519: |
Строка 593: |
| /** @stereotype query */ | | /** @stereotype query */ |
| int length() {}; | | int length() {}; |
− | /** @stereotype "helper functions" */ | + | /** @stereotype «helper functions» */ |
| void reorder() {}; | | void reorder() {}; |
| } | | } |
− |
| |
| | | |
| </umlgraph> | | </umlgraph> |
| | | |
− | ===Fonts, Colors, Global and Local Options=== | + | === Fonts, Colors, Global and Local Options === |
| + | |
| <umlgraph> | | <umlgraph> |
− |
| |
| | | |
| /** | | /** |
Строка 566: |
Строка 639: |
| /** @hidden */ | | /** @hidden */ |
| class ColorValue{} | | class ColorValue{} |
− |
| |
| | | |
| </umlgraph> | | </umlgraph> |
| | | |
− | | + | == Еще пример == |
− | | + | |
− | ==Еще пример== | + | |
| | | |
| <umlgraph> | | <umlgraph> |
| /** | | /** |
− | * @assoc * - 1 Aeroport | + | * @assoc * — 1 Aeroport |
− | * @assoc * - 1 Aeroport | + | * @assoc * — 1 Aeroport |
− | * @assoc * - 1 PlaneModel | + | * @assoc * — 1 PlaneModel |
− | * @assoc * - 1 Company | + | * @assoc * — 1 Company |
− | */ | + | * / |
| class Race { | | class Race { |
| public DateTime dtime_depart_local; | | public DateTime dtime_depart_local; |
Строка 590: |
Строка 660: |
| | | |
| /** | | /** |
− | * @has 1 - 1..* Town | + | * @has 1 — 1..* Town |
− | */ | + | * / |
| class Country { | | class Country { |
| public Name name_rus; | | public Name name_rus; |
| public Name name_eng; | | public Name name_eng; |
| } | | } |
− |
| |
| | | |
| /** | | /** |
− | * @composed 1 - 1..* PlacesBlock | + | * @composed 1 — 1..* PlacesBlock |
− | */ | + | * / |
| class PlaneModel { | | class PlaneModel { |
| public Name name; | | public Name name; |
Строка 606: |
Строка 675: |
| | | |
| /** | | /** |
− | * @assoc * - 1 PlaceType | + | * @assoc * — 1 PlaceType |
− | */ | + | * / |
| class PlacesBlock { | | class PlacesBlock { |
| public int count; | | public int count; |
Строка 619: |
Строка 688: |
| public Name name_eng; | | public Name name_eng; |
| } | | } |
− |
| |
| | | |
| /** | | /** |
− | * @assoc * - 1 Company | + | * @assoc * — 1 Company |
− | * @assoc * - 1 Race | + | * @assoc * — 1 Race |
− | */ | + | * / |
| class Tariff { | | class Tariff { |
| public Name name_rus; | | public Name name_rus; |
Строка 633: |
Строка 701: |
| | | |
| /** | | /** |
− | * @assoc * - 1 PlaceType | + | * @assoc * — 1 PlaceType |
− | * @assoc * - 1 Race | + | * @assoc * — 1 Race |
| * @note Rest | | * @note Rest |
− | * of tickets | + | * of tickets |
− | */ | + | * / |
| class Rest { | | class Rest { |
| public int count; | | public int count; |
| } | | } |
| | | |
− |
| |
| /** | | /** |
− | * @assoc * - 1 Town | + | * @assoc * — 1 Town |
− | */ | + | * / |
| class Aeroport{ | | class Aeroport{ |
| public Name code; | | public Name code; |
Строка 680: |
Строка 747: |
| </umlgraph> | | </umlgraph> |
| | | |
− | ==Ссылки== | + | == Ссылки == |
| * http://umlgraph.org Automated Drawing of UML Diagrams | | * http://umlgraph.org Automated Drawing of UML Diagrams |
| | | |
− | [[Категория: CustisWiki:Справка]] | + | [[Категория:Справка]] |
− | [[Категория: CustisWikiToLib]]
| + | {{replicate-from-custiswiki-to-lib}} |
| + | {{replicate-from-custiswiki-to-4intranet}} |
Можно автоматически рисовать UML-диаграммы классов по их текстовому описанию, причём с помощью двух расширений:
.