Q&Aで読むモデリングの極意――モデリングの問答集32問と教訓集72カ条:プロジェクトを成功させるモデリングの極意(7)(3/10 ページ)
連載「プロジェクトを成功させるモデリングの極意」の総集編として、今回はモデリングとは何か?からその運用までをFAQ(Q&A)形式でまとめました。プロジェクトを成功させる極意としてご利用ください。
1. モデリング全般
(1-1) モデリングとは?
モデルとは物事を分かりやすく説明するために、不要な部分を捨て、注目するところのみを記述したものです。ソフトウェア開発では、まず開発対象を抽出し、捨象し、また抽象化し、一部は具象化します。そして必要に応じてUMLやSysMLなどのツールを使って、クラス図などソフトウェアシステムの設計図を描きます。この設計図がソフトウェアシステムのモデルとなり、これらの行為がモデリングです。
(1-2) モデリングは何のためにするの?
ソフトウェアシステムにおけるモデリングはいろいろな目的のために行います。また多くの副次的な効果もあります。以下にそれらを列挙します。
モデリングで得られる副次的効果の例
仕様の検証(Verification)、仕様の妥当性確認(Validation)、仕様の整理や調整、コード生成と検証、シミュレーション、コミュニケーション、品質向上、生産性向上、リスク対策など
また、他の目的でモデリングされることもあります。このようにモデリングの目的や効果は多岐にわたります。このため、総花的なモデリングにせず、目的を絞り込んでモデリングすることが重要になります。
(1-3) モデリングの一番大切な目的は?
モデリングにいろいろな目的と副次的効果があるのは(1-2)で示しましたが、その一番大切な目的はソフトウェア開発を「コード中心からモデル中心」の方針で実施することです。コードよりも理解しやすいモデルで開発する文化にすることが、大きな目的になります。これにより、従来のコード中心で職人的な文化で開発していたものを、分かりやすく・伝えやすいモデルを中心とした方法で開発できるようになります。
(1-4) モデルはコードよりも何が優れているの?
モデルはコードより理解しやすいため、モデルであれば、ソフトウェアエンジニアでなくとも全体のソフトウェア構成を理解できます。つまり誰でも設計の議論に参加でき、開発に参加できるようになります。これにより従来の職人的ギルド的開発から、ユーザーも含めた全員参加的開発に向かうことができます。
(1-5) モデリングするときに大事なことは?
モデルの「分かりやすさ」です。この分かりやすさ(了解性)こそがモデルの肝心です。逆に言えば、この了解性を犠牲にしてまで、モデルの正確性や完全性を追いかけないでください。多くの場合、分かりにくいモデルに価値はありません。
一方、モデルを分かりやすくすることは困難です。これについてはこの連載のメインテーマになっていますので、連載を再読してください。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- モデリングを成功させるために――持続可能なモデリングを目指して
今回はモデリングで失敗しないだけでなく、さらにモデリングを成功させ、継続するための方法を探ります。失敗しないコツが盾であるならば、成功と持続のコツは矛に相当しますので、これらを学んでモデリングを持続可能(sustainable)なものとしていきましょう。 - モデリングで失敗しないために――失敗から学ぶモデリングの実践的なコツ
モデリングを失敗しないためには、失敗の原因と失敗しないためのコツを知ることが肝要です。今回は失敗しないための実践的なコツを紹介します。 - モデリングはなぜ失敗するのか―― 悪いモデル、汚いモデル、意味がないモデル
誰もが失敗したくてモデリングする訳ではないのに、失敗しているモデリングを見る機会は減りません。今回はモデルの失敗例を通じてその原因を探ります。 - UMLやSysMLなどのモデリングは“いつ”“何を”“どうするのか”
「モデリングはいつ誰が何をどのようにするのか」――今回はソフトウェア開発の現場で、モデリングを実際にどのように実施しているのか見ていきましょう。またUMLやSysMLの使いにくいところを、開発現場ではどのようにカバーしているのかも見ていきます。 - UMLやSysMLを活用できないエンジニアのための実践的活用術(後編)
前編では「モデル」の目的とその効果、具体的なモデル手法について代表的なものを説明しましたが、後編ではその手法を実践するツールを紹介します。 - UMLやSysMLを活用できないエンジニアのための実践的活用術(前編)
モデリングの手法やツールの基礎を覚えるだけでなく、モデリングの目的やその本質をつかんで、ソフトウェアの開発現場で実際に役立つように基本を学んでいきましょう。