UMLを学ぶ上で概要を知っておこう
UMLってなに?
UML(Unified Modeling Language)とは、オブジェクト指向によって複雑性を排除したシステムを設計するために用いられるモデリング言語です。
開発において、設計を捗らせる効果を持ちます。
なぜUMLを学ぶ必要があるの?
設計の重要性がわかればUMLの重要性わかる
設計の重要性について
家を建てるときに設計をしない建築家はいません。
システム開発でもそれは同じことが言えます。
大きなシステムを作るとき、何も設計をせずに作っていくとどうなるでしょうか。
最初のうちはいいかもしれません。しかし、コード量が増えるにしたがって、どこにどの処理を書いたのかわからなくなったり、バグが発生した際に、依存関係が整理ができていないがためにバグがどこにあるのかがわからなくなってしまいます。
最終的に何が残るかというとスパゲッティコードです。
読みたくないですよね。スパゲッティコード。
でも、生み出したら最後、あなたはスパゲッティコードと付き合わなければなりません。嫌でしょう?
もしあなたがスパゲッティコードとのお付き合いを容認するにしても、無計画なコーディングはチームメンバーの作業効率を落とすことにつながりかねません。
そうした事態を避けるために設計を行います。
そして、その設計を捗らせるのがUMLです。
設計におけるUMLの役割
UMLはソフトウェアが持つ機能、構造、振る舞いを視覚的に表してくれます。視覚的にシステムを俯瞰して見られる、という点がポイントです。
**ソースコードだったら俯瞰して見るのははっきり言って無理です。**一面に表示される文字を眺めて、「このSubクラスはBaseクラスを継承しているから、メンバ関数としてfunction1()を持っていて……」という風に、ミクロ的な(非常に狭い範囲での)視点でしかクラス間の関係性を理解することはできません。
こうした場合、UMLを使っていれば、まず関係するクラス全体が目に入ります。しかもそれらが線でつながっているので、それぞれがどういう関係を持っているのかも一目でわかります。
こうした特性からわかるように、UMLは機能、構造、振る舞いといった、それぞれの妥当性を多人数で検討するために有効な手段です。
議論はより良いものを作り出すための燃料になります。UMLはその着火剤になります。
UMLをより理解するために
UMLの生い立ち
オブジェクト指向が世の中に浸透し始めた頃、ソフトウェアの構造や振る舞いなどの表現記法は各プログラミング言語ごとにあるというような状態で、一つの言語に使用される表現方法を学んだとしても、他の表現方法を学んだ人との意思疎通が困難になっていました。
こうした問題を解決するために、オブジェクト指向におけるソフトウェア表現のやり方を統一しよう、ということで生まれたのがUMLです。
UMLをより理解するために必要なこと
こうした背景からわかるように、オブジェクト指向を知ることは、UMLを使う上で必ず必要です。
というか、オブジェクト指向があってこそのUMLなので、重要性はいわずもがなでしょう。
というわけで、オブジェクト指向についても理解するとよいです。
UMLの主要な図とかんたんな説明
図の名前 | 役割 |
---|---|
ユースケース図 | システムに関係する役者、機能などを表現 |
クラス図 | クラスのメンバ、メンバ関数を定義し、また、他のクラスとの関係も表現する。 |
シーケンス図 | クラス図で定義されたそれぞれのオブジェクトが実際にどのように呼び出しを行い、機能を実現しているかを表現する。 |
それぞれの図は相互に関係してます。クラス図が変わったら当然、シーケンス図も変更しなければなりません。
次回以降はそれぞれについて掘り下げていこうと思います。
〜まとめ〜UMLとは
-UMLは、システムを考えるための「言葉」です。
-UMLは、システムを表現するための「言葉」です。
-UMLは、システムについて議論するための「言葉」です。
参考文献
「UMLとは?」https://inim.online/2018/08/11/uml/#i
「かんたんUML入門」技術評論社竹政昭利ほか(2017)<ーおすすめ