ビジュアルにモデリングすべし (UML)

ビジュアル モデリングを使用すると抽象化のレベルが上がります。
トピック
ビジュアル モデリングは、ソフトウェア設計を把握するために、豊富な意味を備えるグラフィックとテキストを使用した設計の表記法です。UML などの表記法を使用すると、厳格な構文とセマンティクスを維持しながら、抽象化のレベルを上げることができます。これにより、設計を行ってレビューする際に設計チーム内での意思の疎通が向上するため、メンバーで設計について検討することが可能になり、実装用の明確な基盤もできあがります。
モデルはシステムを単純化して示します。モデルは、特定の観点からシステムの重要な要素を示し、重要でない要素は示しません。モデルは次の目的のために役立ちます。
システムが複雑になるにしたがって、モデルの重要性が増します。たとえば、犬小屋は設計図がなくても作ることができます。一方、人が住む家や高層ビルになると、設計図が必要になります。
同様に、個人が数日で作成する小さなアプリケーションは、全体を容易に理解することができます。一方、何万行ものソース コード (以下 SLOC) で構築された電子商取引システム (または数十万行の SLOC で構築された航空管制システム) は、個人が容易に理解することはできません。モデルを作成すると、開発者は全体像に焦点を合わせ、コンポーネントが相互作用する方法を理解し、重大な欠陥を識別することができます。
モデルには次のような例があります。
- 振る舞いを明確に示すユース ケース
- 設計を把握するクラス図とデータ モデル図
- 動的な振る舞いをモデル化する状態遷移図
モデリングは重要です。それは、モデリングによって、設計チームは複雑さを失わずにシステムの構造と振る舞いを視覚化、構築、文書化できるからです。
単純なモデルは低コストで作成と変更を行い、設計の代替案を調べることができます。高価なコードの開発を始める前に、ほかの開発者から革新的な発想を得たり設計をレビューしてもらうことができます。反復型の開発と組み合わせた場合、開発者はビジュアル モデリングを使用して設計の変更内容を評価し、開発チーム全体でこの変更点について意見を交換することができます。
現在多くのプロジェクトが、オブジェクト指向のプログラミング言語を使用して、再利用が可能で変更に適応する安定したシステムを構築します。これらの利点を活用するには、設計にオブジェクト技術を使用することがより重要になります。Rational Unified Process (以下 RUP) は、実装の基礎となるオブジェクト指向の設計モデルを作成します。
適切なツールのサポートにより、設計モデルを使用して実装のための初期コード セットを生成することができます。これを「フォワード エンジニアリング」または「コード生成」と呼びます。設計モデルは、十分な情報を盛り込んだシステムを容易に構築することもできます。
既存の実装から設計モデルを生成するために、リバース エンジニアリングを適用することもできます。この方法は、既存の実装を評価するために使用する場合もあります。
フォワード エンジニアリングとリバース エンジニアリングを組み合わせた「ラウンド トリップ エンジニアリング」を使用すると、設計とコードの整合性を確保することができます。反復的なプロセスおよび適切なツールと組み合わせると、ラウンド トリップ エンジニアリングで各反復期間の設計とコードを同期することができます。
システムを構築する前に、要求を把握することが重要です。正確で明確なモデルを使用して要求を示すと、すべての利害関係者が要求を理解して同意することができます。
実装からシステムの外部的な振る舞いを分離したモデルを使用すると、実装の詳細部分にはとらわれずに、システムの使用目的に焦点を当てることができます。
RUP は、システム工学とビジネス工学に適用できる一貫した表記法として、統一モデリング言語 (以下 UML) を使用します。標準の表記法は次の役割を果たします (参考資料 [BOO95] を参照)。
- 「内容が不明確かコードそのものから内容を推測できない決定事項を伝えるための言語として機能する。」
- 「すべての重要な戦略と戦術の決定事項を把握するための豊富なセマンティクスを提供する。」
- 「人が判断したりツールが機能するために十分具体的な形式を提供する。」
UML は、オブジェクト技術の業界全体のソフトウェア モデリングにおける最善の実践原則を集約したものです。UML について詳しくは、Web サイト http://www-306.ibm.com/software/rational/uml を参照してください。
|