PlantUMLで出力を見やすい様に制御する

  • 2019年10月30日
  • 2019年10月30日
  • 言語

 PlantUMLはUML図を生成する記法です。
シンプルなテキストファイルで UML が書ける、オープンソースのツール
PlantUML integration – Plugins | JetBrains
 便利なのですが生成の配置の制御が大雑把なのが玉に瑕です。
 画面に10個、20個もノードを描画すると関係線(この記事で使う造語。関係を表現する線)が交差して複雑になりだします。

@startuml

abstract class AbstractList
abstract AbstractCollection
interface List
interface Collection


class ArrayList {
Object[] elementData
size()
}

enum TimeUnit {
DAYS
HOURS
MINUTES
}

abstract class AbstractList2
abstract AbstractCollection2
interface List2
interface Collection2


List <|-- AbstractList
Collection <|-- AbstractCollection

Collection <|-- List
AbstractList <|-- ArrayList

List2 <|-- AbstractList2
AbstractList2 <|-- AbstractCollection2
AbstractList2 <|-up- Collection2


AbstractCollection <|- AbstractList

ArrayList <|-- ArrayList2
AbstractList <|-- AbstractList2
AbstractCollection <|-- AbstractCollection2
List <|-- List2
Collection <|-- Collection2

@enduml

 このためにpackage{}で集約を作ったり矢印のstyleskinparam linetype ortho-left-|>で方向を制御します。集約は簡単にいい感じになるので定義できるときはできる限り記述しておくべきです。

@startuml
skinparam linetype ortho

package 1st {
    abstract class AbstractList
    abstract AbstractCollection
    interface List
    interface Collection


    class ArrayList {
    Object[] elementData
    size()
    }

}

enum TimeUnit {
    DAYS
    HOURS
    MINUTES
}

package 2nd {
    abstract class AbstractList2
    abstract AbstractCollection2
    interface List2
    interface Collection2

    class ArrayList2 {
        Object[] elementData
        size()
    }
}

List <|-- AbstractList
Collection <|-- AbstractCollection

Collection <|-- List
AbstractList <|-- ArrayList

List2 <|-- AbstractList2
AbstractList2 <|-- AbstractCollection2
AbstractList2 <|-up- Collection2


AbstractCollection <|- AbstractList

ArrayList <|-down- ArrayList2
AbstractList <|-down- AbstractList2
AbstractCollection <|-down- AbstractCollection2
List <|-down- List2
Collection <|-down- Collection2

@enduml

 見やすくするなる時に重要になるのは連続した関係線があまり曲がらないことです。a -> b-> cとなる時に、a -right-> b, b-right-> c, の様に書くとやりやすいです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG