連載
» 2008年10月20日 00時00分 UPDATE

誰でも使える形式手法(2):VDMはソフトウェア開発でこう使う! (1/3)

“VDMを開発プロセスの中でどのように活用すべきか”について、「導入」と「運用」に分けて、具体的な施策を示しながら解説する。

[植木雅幸(CSK),@IT MONOist]

 前回、「VDM(Vienna Development Method)」は仕様記述において強力な道具であり、現場への導入がしやすい手法だと紹介しました。

 では、この手法さえ導入すれば開発におけるすべての問題が解決するでしょうか?

 残念ながらその答えは「ノー」です。VDMは、何でも解決してしまうドラえもんのひみつ道具でもなければ、夢をかなえる魔法のランプでもありません。また、仕様の品質向上に効果があり、なおかつ現場への導入がしやすいとはいえ、実際に現場に取り入れるとなると抵抗や不安を感じるものです。前回の解説を読んだ方もきっとそのように感じているのではないでしょうか?

 というわけで今回は「VDMをどのようにソフトウェア開発の現場で使ったらよいのか?」について紹介し、導入に際しての抵抗や不安という障壁を取り除いていこうと思います。

開発現場においてVDMを使うには?

 VDMに限らず、新しい手法を開発現場に導入する際は、その手法の「導入」や「運用」の方法について具体的に検討し、環境を整えたうえで取り入れると、良い効果が生まれます。当然、VDMもその例外ではありません。今回紹介するさまざまな施策は、『VDMを効果的に使う』ことを目的とし、その前提で考えるべきことは何か? に対する答えを示しています。

 以降では、VDMの「導入」と「運用」の2つに分け、それぞれで検討すべきことを解説していきます。まずは、VDMを導入することで解決したい問題点や改善点を明らかにしましょう。そのうえで、

  • VDMを開発プロセスのどこで使うか?
  • VDMをどのように記述していくか?

など「導入」に対して考えるべきことを詳しく解説します。

 そして、実際にVDMを開発現場で「運用」していく際に考えるべきこととして、

  • 仕様を構造化して記述する
  • 効果的に仕様を検証する
  • 分かりやすく仕様を記述する

について紹介していきます。

 それでは、1つ1つの要素についてじっくり見ていきましょう。

VDMを開発プロセスのどこで使うか?

開発プロセスにおけるVDM適用範囲

 VDMは仕様を記述し、その仕様を検証する手法です。そのため、開発プロセスの中でいえば、要求仕様をアウトプットとする「要求分析工程」で使用できます。それでは、ほかの工程では使えないということなのでしょうか?

 実は、そんなことはありません。第1回「ライトウェイトな形式手法で高品質な仕様をこの手に!」で説明したとおり、VDMは形式手法のうち“仕様を「記述」することに特化した手法”の1つであり、VDMが持つ言語は大変表現力に優れています。そのため、要求分析工程だけでなく、その下流である「設計工程」でも使うことが可能です。

 図1に、開発プロセスとVDMの関係、導入効果のイメージを示します。

開発プロセスとVDMの関係、導入効果のイメージ 図1 開発プロセスとVDMの関係、導入効果のイメージ

 VDMを要求分析と設計のいずれに適用するべきかを決定するには、現行開発プロセスのどこに問題を抱えているか? その問題は仕様を明確に記述し、さらに検証することで解決できるのか? といった視点で検討することが重要となります。

要求分析工程への適用メリット

 要求分析、設計の両者にはそれぞれ適用メリットがありますが、今回はVDMが最も効果を生む要求分析に適用した場合に得られるメリットを紹介します。

 まず、メリットの1つ目は以下2つの仕様の役割によるものから得られます。

  • 要求から「抜け」「モレ」「間違い」なくシステムで実現すべき機能や制約などを盛り込む
  • 設計や実装といった下流工程に対して、仕様を間違いなく伝える

 上記の「要求から『抜け』『モレ』『間違い』なく仕様を定義する」に対しては、VDMが明確な言語定義のうえで成り立っていますので、あいまいな記述ができず、記述をしていくに従って「抜け」「モレ」「間違い」に気付けます。例えば、if−then−elseで記述できるような条件分岐に対して、if−then部分が記述してあるにもかかわらず、else部分が抜けているようなときに、else部分の抜けに気付けるということです。こういったことは、日本語で記述していると意外と気が付きませんが、VDMであればelse部分が記述されていないことが一目瞭然です。

 また、「間違いなく下流工程に伝える」という部分に対しては、VDMは日本語のようにさまざまな解釈ができる言語ではありませんので、人によって解釈違いを起こすことはありません。例えば、日本語で仕様を記述した場合に、漠然とした表現をすることで、仕様の読者が自分で行間を埋めて勝手な解釈をするといったことがないということです。つまり、VDMを適用すれば下流工程へ誤解を与えない、つまり精度の高い指示ができることを意味します。これが1つ目のメリットです。

 もう1つのメリットは、仕様の段階で検証できるため、仕様が間違いなく作られているかどうかの確認が開発の初期段階で可能だという点です。VDMは、仕様に対してテストケースを用いてテストをするため、記述した仕様が矛盾を含まず、正しいものかどうかを検証できます。また、仕様に対するテストケースはシステムテストのテストケースとしても使用できます。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.