UMLを使用して開発を行うということは、言語により開発を行うのではなくモデルにより設計を行うことです。それではモデルベース設計を行うと、どのような効果があるかを考えてみましょう。
UMLはシステム全体の構造を把握するのに便利な表記法です。UMLを使うと、システムの構造を考えながら設計しやすくなります。また、その際、オブジェクト指向を利用することで、似たような処理を1つにまとめられます。こうすると、無駄な処理の記述を減らせます。事実、オブジェクト指向で設計する際は、モデルで考えた方が容易に行えます。ソフトウェア開発ではまず、上流工程においてきっちりとシステム設計を行うことが大切ですが、UMLを使用すればそれが可能になります。
大規模化する組み込み開発において、複数人で開発が行われるのは当たり前で、近年では100人規模で編成される開発プロジェクトも珍しくありません。多くの人数で開発を行うためには、コミュニケーションを円滑にする「見える化」が重要になってきます。まず開発中には開発者同士のレビューを行う必要がありますが、その際にソースコードを用いてレビューを行っていたのでは大変です。UMLは標準言語であるため、誰にでも理解可能で、視覚化されているのでソースコードよりも内容の把握が容易です。そしてシステムが大規模化すればするほどUMLを使用する効果が上がります。また担当者が代わったときなど、引き継ぎを行う際のドキュメントとしてもUMLは効果を発揮します。
さらに近年では海外リソースを使用するケースも増えてきていますが、UMLは標準化ドキュメントであるため、たとえ海外の人が見ても理解できます。またその際に英語などへの翻訳を行う必要も出てきますが、UMLは文章ではなく図で表現しているため、翻訳コストを低く抑えることが可能です。
複雑化する組み込み開発においては、開発によるコスト、品質が重要になってきます。まず「不具合はどこで作られるか」と題した図2を見てください。
これによると、上流工程に当たるソフトウェア設計とシステム設計による不具合が合わせて68%で、大多数を占めていることが分かります。一方、コーディングによる不具合は21%と意外に少ないことも分かります。
そしてその不具合が開発の最終段階で分かったのでは対策も容易ではありません。時間的な余裕がないため、その場限りの対応しか取れず、全体的な関連を考慮していないため不具合が不具合を呼び、品質も保持できません。よって開発のコストは多大になってしまいます。このような開発における手戻りを削減するには、UMLによりモデリングを行い、開発の初期段階においてシステムのアーキテクチャによる設計をしっかり行うことが重要となります。
また、「生産性向上に効果のあるソフトウェア技術」と題した表1を見てください。
ソフトウェア技術 | 4年利用後の1ドル 当たりの投資効果($) |
---|---|
完全なソフトウェア再利用 | 30 |
I-CASE | 25 |
ソフトウェアの品質測定 | 17 |
ソフトウェアの見積もりツール | 17 |
正規の設計インスペクション | 15 |
正規のコードインスペクション | 15 |
オブジェクト指向プログラミング | 12 |
ソフトウェアの生産性測定 | 10 |
ソフトウェアプロセスアセスメント | 10 |
機能的尺度 | 8 |
表1 生産性向上に効果のあるソフトウェア技術 出典:Assessment and Control of Software Risks : Prince-Hall, 1994, 邦訳:島崎・富野「ソフトウェア病理学」共立出版, 1995 |
生産性向上に最も効果のあるソフトウェア技術は「再利用性」であるという結果が出ています。システムの「品質」「コスト」を考えるとソフトウェアの再利用は欠かせませんが、UMLは設計変更した際のほかの部分への影響を把握できます。よってどこをどのように設計変更すればよいかを考慮しながら変更ができます。つまり製品の品質が向上します(図3)。
Copyright © ITmedia, Inc. All Rights Reserved.