messyなkitchenなブログ

ただひたすらに散らかった台所や人生やその他を晒す。

MENU

脱W〇rd, 脱E×cel, 脱@st@h : #3

コンポーネント図でオブジェクトの配置を調整する

PlantUML では、通常は特に指示しなくても、ツールが自動的にいい塩梅にオブジェクトを配置してくれます。

component    compoA  as obj1 #lightpink
component   コンポB  as obj2 #lightblue

オブジェクト同士を接続するときに、次のように hidden キーワードを付与すると 線が描画されずにコンポーネント間の位置関係を調整できます。

component    compoA  as obj1 #lightpink
component   コンポB  as obj2 #lightblue

obj1 -[hidden]-> obj2

component    compoA  as obj1 #lightpink
component   コンポB  as obj2 #lightblue

obj2 -[hidden]> obj1

Note: -[hidden]->-[hidden]> が異なることに注意。

次のようなマクロを設定しておくと、便利かもしれません。

/'レイアウト調整用マクロ'/
!define cd(o1, o2)  o1 -[hidden]-> o2    /'Connect to Down'/
!define cr(o1, o2)  o1 -[hidden]>  o2    /'Connect to Right'/

component   compoA  as obj1 #lightpink
component   コンポB  as obj2 #lightblue
component   こんぽC  as obj3 #lightgreen

cd(obj2, obj1)
cr(obj3, obj2)

脱W〇rd, 脱E×cel, 脱@st@h : #2

コンポーネント図で四角形を描画する

PlantUML のコンポーネント図において、次の方法で四角形の描画と文字を表示できます。

' 方法1
rectangle   "表示文字 1"    as alias_1
' 方法2
rectangle   alias_2 [
                表示文字 2
            ]

四角形に色を付けたい場合は、色コードを付与します。

' 方法3
rectangle   "表示文字 3"    as alias_3  #red
' 方法4
rectangle   alias_4 #0000FF [
                表示文字 4
            ]

エイリアス名で操作できます。

alias_1 -> alias_2  /' to right '/
alias_3 --> alias_4  /' to down'/

おまけ:オンライン版 PlantUML

脱W〇rd, 脱E×cel, 脱@st@h : #1

シーケンス図で "実行仕様" を付与

PlantUML を使って、シーケンス図を描いてみます。
注:UMLとしての記述の厳密さ && 例題は気にしないで。

actor        ann as a    #red
actor       bob as b    #blue

a -> b : attack
a <- b : counter-attack

hide footbox

この例では、2つのオブジェクト (annさんとbobさん) で、メッセージのやり取りをしています。
注:UMLとしての記述の厳密さは、ここでは気にしないでください。

ここで、annさんからbobさんがメッセージを受けてなにかを実行する場合、これを「四角いバー」で示すことができます。

PlantUML では、ライフライン(Lifeline) に 実行仕様 (Execution Specification) (または活性区間)を付与する方法は、いくつかあるようです。

必要な部分に明示する方法 (activate, deactivate)

実行仕様の記述が必要になった部分/不要になった部分に、明示的に記述します。

actor        ann as a    #red
actor       bob as b    #blue

a -> b : attack
activate b
a <- b : counter-attack
deactivate b

hide footbox

自動的に付与する方法 (autoactivate)

autoactivate on を書いておくと、自動的に実行仕様を付与することができます。

actor        ann as a    #red
actor       bob as b    #blue

autoactivate on

a -> b : attack
a <- b : counter-attack

hide footbox

必要な部分に明示する方法 2 (++, --)

実行仕様の記述が必要になった部分/不要になった部分に、明示的に記述します。
前述の方法とは異なり、メッセージ(Message) の記述と同時に、実行仕様を指定できます。

個人的に便利に感じる の使い方です。

actor        ann as a    #red
actor       bob as b    #blue

a -> b ++ : attack
a <- b -- : counter-attack

hide footbox

おまけ: 実行仕様に 色を付ける

メッセージの最後に色コードを付与すると、実行仕様に色が付きます。

actor        ann as a    #red
actor       bob as b    #blue

a -> b ++ #green: attack
a <- b -- : counter-attack

hide footbox

脱W〇rd, 脱E×cel, 脱@st@h : #0

なぜ PlantUML を使うことにしたのか

ブロック図を描いたり、シーケンス図を描いたり、けっこうありませんか?

例えば、ソフトウェアコンポーネントの構成図を、Excel でがんばって描いたりします。

資料を描き終わって、レビューが通過し、提出が済みました。
しかしここで間違いに気付いて、一部を修正したとします。

どこを直したか、わかりません。。。

修正履歴があればまだ変化点を追いやすいですが、 Excel のオートシェイプで書かれていたりしたら どうやって比較すればよいものか・・・
マクロで検出したり、目視で調べるというのもありますが・・・

でも、このような図がテキストで生成されているものだとしたらどうでしょう?

修正前のコンポーネント図は、次のようなテキストファイルで記述されています。

component    鬼
component   鬽
component   魂
component   魁
component   鬾
component   鬿
component   魅
component   魃
component   魄
component   䰠
component   魈
component   魍
component   魎
component   魏
component   魌
component   魋
component   魊
component   魔
component   魑
component   魕

修正後のコンポーネント図は、次のテキストファイルです。

component    魘
component   鬽
component   魂
component   魁
component   鬾
component   鬿
component   魅
component   魃
component   魄
component   䰠
component   魈
component   魍
component   魎
component   魗
component   魌
component   魖
component   魊
component   魔
component   魑
component   魕

差分は、diff を使えばすぐに知ることができます。

3箇所に差分がありました。
上記例では文字の変化だけだったので、一つ一つを比較すれば全てを見つけられますが、 シャッフルがあった場合は目視で探し出すのは大変です。
このようにテキストでの比較ができれば、どこが変化したかが検出しやすいですし、 ソースコードバージョン管理システムを使っての管理も容易になります。

PlantUML というツールで、テキストからの描画ができます。
ツールの名前の通り、UML に関連する図の描画が主体です。

必要な図はできる限り、このツールで作るような取り組みを始めています。
私は次のものを主に利用しています。

PlantUML を使っていく中で見つけた・調べた、便利な使い方などを備忘録を兼ねてメモしていこうと思います。

ワードさん、勝手にスタイル適用やめてくらさい。図を貼っていっても、体裁をドタバタしないでくらさい。
エクセルさん、広大なシート上にシェイプでお絵描きしていくと、何がどこに配置してあるかわからんとです。
アスターさん、最近無償版が商用利用できないっす。あと、図の再利用や体裁整えが難しいっす。

なんかね、1000view/月を越えていたことに気付く

コンテンツの更新が滞り、コンテンツのジャンルも散らかっていて(まさに"散らかった台所"状態)、誰が読むのだこのサイト、でした。

久しぶりにはてなブログアプリを起動したら「月間1000ビューを越えた」って通知がありました。

更新もしていなくて 文字数も少ないのに、見てくださったかたには申し訳ない。

さて、どんなコンテンツが人気なのか、ちょっと調べてみました。


はい。
"離婚" のカテゴリでした。

1年半くらい前の出来事なので、当時の記憶も薄れつつあります。
人は忘れることで前へ進むことができるのだ。

でも、もしかしたら、ひょっとして、今から・これから、困っている人への、僅かでも助力になれるのならば、記憶と感覚を思い起こして、更なる体験の記録を残そうと思います。

本日のところは、その気持ちを記しました。

不定期でやります。

グーグルホームがうちに来た

f:id:messykitchen:20180408133151j:plain:w240

安く売ってたのを見つけ、つい買ってしまいました。Google Homeを。

「おっけー、グーグル。」「ねぇ、グーグル。」

使い方はこれからいろいろ調べてやってみます。
目覚ましとタイマーが、声で設定できるのは便利です。
目覚ましを止めるのも声でできるけど、寝起きの寝惚け状態で、声出しするのはけっこう辛いぞ。

おっけー、ぐーぐる
おはよー

おはようございます

へ〜、こんなことって、あるんだね

愛車のリコールで、ディーラーから借りたスリーダイヤの代車で国道を通る。
信号待ちから発車すると、対向車線右折レーンにいる車に目が止まった。
ホワイトパールの230J AUTECH AXIS。フロントグリルが特徴的。
まさかなー、と思っていたら、そのまさか。
運転席には見覚えのある顔。その顔は笑っている。
助手席には誰かが乗っている。確認できなかった。
道路上ですれ違い、ほんの1秒。
見たくもない顔。しかも笑っている。
私がサングラスをかけていてよかった。そうでなければ、たぶん目が合っただろう。

Uターンして追いかけようかと思った。
私がこの車に乗っているのは知らないだろうし、すれ違ったなんてことも気が付いていないだろう。

しばらく走りながら、ずっとそんなことを考えた。
追いかけて何を確認したいのだ、と自問自答しながら。


とまあ、こんな感じで元パートナーに遭遇しちゃって、心穏やかにいられない黄昏時を過ごしたわけです。
こんなの初めて。

じつは数時間前、元嫁と子の話を知人としたばかり。夏以来、連絡とかあったりしたか、とか。こんな話は初めてしたくらい。

そしたらその直後に遭遇。
こんなことって、あるもんなんだね〜。そだねー

・・・嫌になっちまう。