モデルとは物事を分かりやすく説明するために、不要な部分を捨て、注目するところのみを記述したものです。ソフトウェア開発では、まず開発対象を抽出し、捨象し、また抽象化し、一部は具象化します。そして必要に応じてUMLやSysMLなどのツールを使って、クラス図などソフトウェアシステムの設計図を描きます。この設計図がソフトウェアシステムのモデルとなり、これらの行為がモデリングです。
ソフトウェアシステムにおけるモデリングはいろいろな目的のために行います。また多くの副次的な効果もあります。以下にそれらを列挙します。
仕様の検証(Verification)、仕様の妥当性確認(Validation)、仕様の整理や調整、コード生成と検証、シミュレーション、コミュニケーション、品質向上、生産性向上、リスク対策など
また、他の目的でモデリングされることもあります。このようにモデリングの目的や効果は多岐にわたります。このため、総花的なモデリングにせず、目的を絞り込んでモデリングすることが重要になります。
モデリングにいろいろな目的と副次的効果があるのは(1-2)で示しましたが、その一番大切な目的はソフトウェア開発を「コード中心からモデル中心」の方針で実施することです。コードよりも理解しやすいモデルで開発する文化にすることが、大きな目的になります。これにより、従来のコード中心で職人的な文化で開発していたものを、分かりやすく・伝えやすいモデルを中心とした方法で開発できるようになります。
モデルはコードより理解しやすいため、モデルであれば、ソフトウェアエンジニアでなくとも全体のソフトウェア構成を理解できます。つまり誰でも設計の議論に参加でき、開発に参加できるようになります。これにより従来の職人的ギルド的開発から、ユーザーも含めた全員参加的開発に向かうことができます。
モデルの「分かりやすさ」です。この分かりやすさ(了解性)こそがモデルの肝心です。逆に言えば、この了解性を犠牲にしてまで、モデルの正確性や完全性を追いかけないでください。多くの場合、分かりにくいモデルに価値はありません。
一方、モデルを分かりやすくすることは困難です。これについてはこの連載のメインテーマになっていますので、連載を再読してください。
Copyright © ITmedia, Inc. All Rights Reserved.