はじめに
本投稿は金沢工業大学 AdventCalenderの6日目の記事になります。
また、投稿者は今回が初めての投稿になりますので、暖かい目で記事を読んでいただけると、ありがたいです。
この記事について
今回のこの記事は、「システムモデリング」を投稿者が学んでみての感想などについて書いていこうと思います。「システムモデリング」はかなり概念的な話が多いため、魔翻訳(理解しきれてないだけ)して、説明等を行なおうと考えているので、面白半分くらいの感じでお読みください。
システムモデリングについて
まず、モデリングとは、どのような定義がされているのかについて見ていくと、児玉公信氏による『UMLモデリング入門』(日経BP社、2008)では
モデリングとは、「対象を深く知るために、その振る舞いを観察し、それを論理的に記述し、関係者と共有する活動」である。
と、定義されています。
ここからも分かるように、モデリングとは物事を深く考えるためのものです。そして、深く考えた結果をステークホルダーと共有し、話し合うためのものになります。いわゆる、上流工程って感じですかね。
モデリングの種類
ここまで、ざっくりとモデリングと呼んでいましたが、実はモデリングには種類があり、
- 静的側面:ある時点でのモデルの概念同士の関わり方を表す
- 機能側面:システムの外部と受け答えの仕方を表す
- 動的側面:概念が時間経過に沿って、どのような振る舞い(変化)をするのかを表す
の3つの側面で大別されています。
私の勉強が追い付いていないのもあるので、
次節からは、モデリングの静的側面(以下、静的モデリング)について、実例を挙げながら見ていきましょう。
実例
前節でも記載しましたが、静的モデリングではある時点でのシステム間の関連を示します。
例えば、学食のある時点での関連をクラス図というもので表すと以下のようになります。
箱が3つ描かれ、線で結ばれていますね。
箱ひとつひとつについて注目してみると3段構成になっており、一番左の箱についてさらに注目すると
- 1段目:顧客
- 2段目:名称、所属、性別
- 3段目:支払う
といった構成になっています。
まず、この箱には名前がついており、クラス図と呼びます。
次に、1段目の「顧客」というのは実体についての名称で型名と呼びます。2段目・3段目に関してはそれぞれ属性・操作という名称がありますが、今回は扱いません。
(2・3段目について気になったり、この記事でシステムモデリングについて興味を持ったりした方はぜひ私と一緒にシステムモデリングを勉強しましょう!!!)
ここまでの説明をまとめて、先ほどの画像を見ると、なんとなく意味が分かってきた方もいると思います。
そうです。この図は、「顧客が商品を注文する」という関わりと「店員さんが商品を調理する」という関わりについて、記述しているものになります。
このように、学食のシステムについて考えてみると、顧客・商品・店員の3つがあれば最低限の学食のシステムになります。
そして、ここから「システムの効率化」をしたいのであれば注文するという関連自体をさらに詳しく見ていくなど、要望に応じてシステムの粒度を変える必要が出てきます。先ほどでは、3つのものの関連でクラス図を描きましたが、学食で言えば「食券を買う」ことをクラス図に追加してもよさそうです。
このように、システムモデリングの面白いところは「対象をいかに観察して、どう見える化をするか」というところであると私は考えています。
勉強してみて
最後にシステムモデリングを勉強してみて、思ったことを少しだけ書こうと思います。
その前に突然の話にはなってしまいますが、二郎系ラーメンで「ロッドを乱すな」と言われていることをご存知でしょうか?
正直に言うと、私はシステムモデリングを勉強するまでは、「『ロッドを乱す』ってなんだよ。」と思っていました。
一応、ここで、ご存じない方のために、「ロッド」を説明しておくと、ロッドとは「麺をゆでるときに1回でゆでられる量(玉数)」を表す言葉です。
さて、本題に戻りますが、システムモデリングを勉強していくと、業務の改善を実際に考えてみたくなります。そこで、ラーメン屋さんで改善案を考えると、「1回でゆでられる限界量ずつ麺をゆでられれば、効率的にお客さんをさばくことが出来て、お店側はハッピーである」という1つの結論が出ます(他にも改善案はきっとあるけれども)。
つまり、「ロッドを乱すな」は意味・意義のあることで、お店側からは守ってもらいたいことなのです。
今回はコールのシステムについては言及はしません!!!!
さいごに
今回は、システムモデリングについての定義や、システムモデリングを勉強してみて感じたことに関して書きました。
また、本記事ではクラス図というものを紹介しましたが、UML2.0(統一モデリング言語(モデリングするための記述方法))では13種の図が規定されており、今回の記事では、UMLの少ししか話していません。
今回の記事でシステムモデリングに興味が出た人は、ぜひ私と勉強しましょう!!!
それでは、ここまで見てくださり、ありがとうございました!!
また、どこかで!