![見出し画像](https://assets.st-note.com/production/uploads/images/136086808/rectangle_large_type_2_a4e7ada19b41509531da230b668986ed.png?width=1200)
『島唄』をモデリングした
ごきげんよう🙋♀️あっきー(@kuronekopunk)です。
カクカクシカジカモデリングというモデリングの勉強会をやっています。
大学の授業くらいでしかUMLを書いたことがなかったので、初回開催の #1 でUMLを描こうということで『島唄』をモデリングしました。
モデリングとは
物事を模型や図表などによって表現する行為や、その手法を指す。
図化することはモデリングなのだ。
その昔バズった『島唄』の図解もモデリング
これも物事(唄)を図化したもの。つまりモデリング。
※元ツイートが消えているので作成しました
![](https://assets.st-note.com/img/1712152765306-kceICmLbfh.png?width=1200)
『島唄』をモデリングしてみよう
今回はどんな形式でもOKとしてクラス図やシーケンス図に起こしてみるワークを行いました。
モデリング対象
今回はこのフレーズをモデリングします。
島唄よ 風に乗り 鳥とともに 海を渡れ
島唄よ 風に乗り 届けておくれ 私の涙
島唄よ 風に乗り 鳥とともに 海を渡れ
島唄よ 風に乗り 届けておくれ 私の愛を
登場人物や期待されている動作は何?
要求に出てくるキーワードを洗い出しました。
『島唄』
『風』に『乗る』
『鳥』と『ともに』
『海』を『渡る』
『私の涙』『私の愛』
『届ける』
モデリング結果
こんなアウトプットが生まれました。
モデリング結果1(クラス図)
![](https://assets.st-note.com/img/1712153433723-tO2dYZBqa8.png?width=1200)
『私の涙/愛』は運ぶ対象の『荷物』
『風』は島唄や鳥を乗せることができる『乗り物』
『乗り物』に乗れるのは『Object』として定義されています。
「Objectって命名はちょっと抽象度高いんじゃない?」などのコメントがありました。
モデリング結果2(シーケンス図)
![](https://assets.st-note.com/img/1712153285054-OlAQCuzbLm.png?width=1200)
『私』起点で『島唄』に依頼をして運んでもらうシーケンスです。
移動中に海を超えるコメントが有るのが個人的に好きです。
「目的地は登場人物なの?」などのコメントがありました。
モデリング結果3(クラス図)
![](https://assets.st-note.com/img/1712153412692-Lkmo1kveQd.png?width=1200)
『島唄』と『鳥』は何かを届けてくれる『運搬者』
『鳥とともに』なので『運搬グループ』があります。
『海』は関連付けがされずモデリングからは除外された概念になります。
「『運搬グループ:私のもの』は『1:0..1』と定義されてるけど運ぶのは1個まででいいの?」という疑問が出て、多重度を記載することで定義に関する議論ができたのが良かったです。
ワークを通して
そもそもUMLをちゃんと書いたことがなかったので良い練習になりました。
次回はもう少しシステム的な要件で書いてみようと思います。
運営はモデリング初心者ですが興味のある方は遊びに来てください!
いいなと思ったら応援しよう!
![あっきー](https://assets.st-note.com/production/uploads/images/2432/profile_35a20adac0f75f18e15340d16a98622a.jpg?width=600&crop=1:1,smart)