From: リスキルテクノロジー 高坂
ソフトウェアの
開発現場においては、
さまざまな手法で
設計書が作成されています。
今回は
最も広く普及している
設計書の表現手法である...
「UML」
...についてご紹介しましょう。
目次
設計書の表現はさまざま
言葉というものは
使い方や言い回しひとつで
さまざまな表現を
することができます。
言葉の使い方は
人によってさまざまですので
極端な話をすれば
100人いれば100通りの表現があります。
では、
プログラムの設計書の場合を
考えてみましょう。
設計書も同じく
100人書けば100通りの
設計書が生まれる可能性はあります。
しかし、
プログラムの設計をするのに
100通りの書き方が存在すると、
必ずしも期待通りの
プログラムが書かれるとは限りません。
プログラマーが読み違えて
設計で意図していない
プログラムが生まれる可能性もあります。
そしてこのような現象は
実際に開発現場で起きています。
さまざまな企業の
開発を経験するSIerや、
転職経験のある
エンジニアならご存知かと思いますが、
開発現場や企業によって
実際に設計書の書き方が
大きく違うというケースは多いのです。
このような
「違い」
...をできるだけ無くし、
統一された書き方が生まれました。
それが...
「UML」
...なのです。
表現を統一すれば理解しやすい
UMLとは
Unified Modeling Language
の略称で...
Unified(統一された)
Modeling(モデリング)
Language(言語)
...という意味です。
「統一モデリング言語」
と和訳されていますね。
オブジェクト指向開発における
統一された設計書の表現方法については
1990年代ごろから
さまざまな方法が考案されてきましたが、
検討を重ねて
それらのさまざまな方法を
ベースにして生まれたのがUMLです。
UMLには多くのメリットがあります。
たとえば
表現方法の統一されている点です。
設計書の表現方法が
統一されているので、
UMLの読み方を理解している
エンジニアであれば
設計仕様を正確に読み取りやすくなります。
また、
UMLは文字だけの仕様記述ではなく、
基本的に図(ダイアグラム)で
仕様を表現しているため、
エンジニアにとって理解しやすいですし、
設計変更が起きた場合でも
どのプログラムを変更する必要があるのかが
把握しやすくなります。
UMLのダイアグラム
UMLには用途によって
いくつかのダイアグラムがあります。
システム構造に関するダイアグラム
■1:クラス図
システムを構成している
クラスの関連性を表現したものです。
あるクラスが
どのクラスとどのような関係があるのか、
どのような変数を保持しているのかなどを
視覚的に理解することができます。
■2:パッケージ図
複数のクラスが集まって
ひとつのパッケージが構成されますが、
そのパッケージの関連性を
表現したダイアグラムです。
■3:オブジェクト図
クラス図ではクラス間の
関連性を把握することができますが、
オブジェクト図では
実際にプログラムが動作する際に
どのような状態になるかを表現します。
システムの振る舞いに関するダイアグラム
■4:アクティビティ図
プログラムの処理の流れを
表現するダイアグラムです。
「フローチャートのUML版」と言えば
理解しやすいかも知れません。
■5:ユースケース図
システムの利用者(アクター)が
システムの利用の仕方や、
システムがアクターに対して
提供する機能を表現します。
■6:ステートチャート図
システムがある処理を行う際、
オブジェクトの状態に
どのような変化が起きるのかを表現します。
ステートチャート図は
「状態遷移図」
と呼ばれることもあります。
システム間の相互作用に関するダイアグラム
■7:シーケンス図
オブジェクト間の連携や
動作の流れを表現するダイアグラムです。
イベントが起きた時に
どのような流れで処理が進むかなどを
表現しています。
■8:コミュニケーション図
オブジェクト間での
メッセージやデータのやりとりを
表現したダイアグラムです。
オブジェクト間で
実際にどのようなデータが
受け渡しされるのかを理解できます。
「コラボレーション図」
と呼ばれることもありますが、
これは古い呼び方です。
習得することをオススメします
この他にも
さまざまなダイアグラムがありますが、
主に使用されているのは
ここで紹介したダイアグラムになります。
これから
プログラムを学ぶ方にとって
UMLを学ぶことは大きなメリットがあります。
UMLはシステムの構成や動作を
俯瞰的に見ることができますので、
プログラムだけでなく
システム全体を理解しやすいのです。
しっかりとした
開発スキルを身に着けたいならば
UMLの習得することをオススメします。
UMLは、
あなたが実際に
プログラムを作る時だけでなく、
設計する時にも役立つ手法なのです。
リスキルテクノロジー
高坂
PS