UMLの図っていくつあるの??

本日も、応用情報技術者試験の勉強をした際の調べたことを記録しようと思う。

 

問題は以下

https://www.ap-siken.com/kakomon/25_haru/q64.html

 

UML/Unified Modeling Language(統一モデリング言語)とは

簡潔にいうと、オブジェクト指向開発における設計〜実装までのモデリング手法

 

結論から言うとUMLで用いられる図の種類は9種類らしい。

 

まず、分類として「構造」にフォーカスした図か「振る舞い」にフォーカスした図かによって2つに大別される。

 

<構造>

・クラス図

コンポーネント

・配置図

・パッケージ図

(4種類)

 

<振る舞い>

ユースケース

・シーケンス図

・コラボレーション図

・ステートマシン図(UML2.0以前は「ステートチャート図」)

・アクティビティ図

(5種類)

 

これらの図がどういった用途で利用されるのか見ていく。

 

まずオブジェクト思考開発プロセスには以下のフェーズが存在する。

 

1.ビジネス分析

 ビジネスの理解、ビジネスの可視化

2.要求分析

 ユースケースモデル作成 => ユーザから見た機能を単位としたモデル

3.システム分析

 「要求」=>「設計」に落とし込むためのワンクッション(要求中の概念構造理解)

 ここのフェーズがシステムの構造把握において最も重要!!

4.システム設計

 設計モデル作成:オブジェクトという概念中心のモデル化(ロジックを考慮しない)

5.実装・テスト

 

特にどのフェーズで、どのUML図を利用するといった決まりはない。

例えば、ビジネス分析において、ビジネスの大枠を捉えるためにアクティビティ図を利用することもあれば、クラス図でオブジェクトだけを取り出し、属性などは考慮せずにビジネス理解を深めるといった方法もあるらしい。

以下のサイトが、UMLを取り入れる概念が具体例を交えてわかりやすく書かれていた。

https://www.itmedia.co.jp/im/articles/0308/19/news001.html

 

よって、重要なのは各UML図がそれぞれどういった特徴を持っているのかという点である。

個々のUML図の特徴は以下のサイトに詳しく乗っている。

http://objectclub.jp/technicaldoc/uml/umlintro2

 

なお、以下の記事を見てUML・・ ・と言うよりかはソフトウェア設計は奥が深いなと感じた。まあ何のために作っているか、誰のために作っているのかを考えると当たり前のような気もするが。

個人的には詳細なモデル図からUMLツールを用いてソースコードの自動生成ができるということに衝撃を受けた。いつかはコードを書かなくなる日が来るのだろうか。

https://cpp-learning.com/uml/