ソフトウェアモデリングとUML
ソフトウェアモデリングは、システムの構造と振る舞いを捉える抽象化を通じてシステムを表現するものであり、統一モデリング言語(UML)は、そのようなモデルを表現するための標準的なグラフィカル表記法です。
PaperMindでテーマを探す近日公開Find papers & topics
Tools & resources
Learn & explore
動画近日公開
Definition
ソフトウェアモデリングとは、ソフトウェアシステムを分析、設計、および伝達するために、その抽象的な表現を構築することであり、UMLは、これらの表現のための統一された図の種類を提供する、標準化された汎用モデリング言語です。
Scope
このトピックでは、クラス図、コンポーネント図、配置図などの構造モデル、ユースケース図、シーケンス図、アクティビティ図、ステートマシン図などの振る舞いモデル、分析、設計、コミュニケーションにおけるモデルの役割、モデル駆動型エンジニアリングとコード生成、および特定のプロジェクトに適したモデリングの厳密さのレベルについて扱います。
Core questions
- システムのどの側面が構造モデルと振る舞いモデルによって捉えられますか?
- 主要なUML図の種類はどのように設計を表現しますか?
- 特定のプロジェクトにはどの程度のモデリングの厳密さが適切ですか?
- モデルからの自動コード生成はいつ価値がありますか?
Key theories
- システムの複数のビュー
- システムは、静的構造、相互作用、状態の振る舞い、配置といった補完的な視点からモデル化され、それぞれ適切な図の種類によって捉えられます。これは、単一のビューでは関連するすべての設計情報を伝えることができないためです。
- モデル駆動型エンジニアリング
- モデルは、変換を通じて実装が部分的または全体的に生成される主要な開発成果物として機能し、抽象化のレベルを高め、設計をコードに直接結びつけることができます。
Clinical relevance
モデルは設計意図を明確にし、コードが存在する前の分析をサポートし、チーム全体で共通の言語を提供します。その価値は、適切な量のモデリングを使用するかどうかにかかっており、過剰なモデルや陳腐化したモデルは、利益なしにコストを課すことになります。
Evidence & guidelines
OMG UML仕様は標準的な表記法とセマンティクスを定義しており、SysMLやMOFなどの関連するOMG標準は、モデリングをシステムエンジニアリングやメタモデリングに拡張しています。
History
UMLは1990年代半ばにBooch、OMT、Objectoryの各手法の統合から生まれ、1997年にOMG標準として採用され、UML 2へと進化しました。モデル駆動型アプローチと軽量なスケッチングは、どの程度の形式的なモデリングが効果的かという議論とともに共存しています。
Debates
- 重厚なモデル駆動型開発と軽量なスケッチング
- モデルがコード生成を駆動する権威ある成果物であるべきか、それともコミュニケーションのための非公式なスケッチであるべきかについては議論があります。モデルをプログラムと見なすビジョンは一貫性を約束する一方で、スケッチ指向の使用法は低いオーバーヘッドと適応性を重視します。
Key figures
- Grady Booch
- James Rumbaugh
- Ivar Jacobson
- Martin Fowler
Related topics
Seminal works
- booch2005
- omg2017uml
- fowler2003
Frequently asked questions
- アジャイル開発においてUMLは依然として関連性がありますか?
- はい、ただし、より軽く使用されることが多いです。アジャイルチームは、UML図を網羅的な仕様としてではなく、設計に関するコミュニケーションや推論のための非公式なスケッチとして使用する傾向があり、目の前の問題を明確にするのに十分なモデリングのみを適用します。
- モデリングにはUMLが必要ですか?
- いいえ。UMLは最も広く標準化された表記法ですが、モデリングには他の表記法やドメイン固有言語を使用することもできます。本質的な考え方は構造と振る舞いの抽象化であり、UMLはそのための十分にサポートされた選択肢の一つです。