研究紹介シリーズ(第7回)

ソフトウェア成果物のためのスペクトル分析

ソフトウェア開発は要求分析、仕様書作成、設計、実装、テスト、保守といった工程を辿るが、最上流工程である要求分析、要求仕様書作成の段階で漏れや誤りなどがあると、後工程に甚大な影響を及ぼしてしまう。もしくはシステムの完成後に、「こんな使い勝手の悪いシステムは使えない」といったことになりかねず、開発を一からやり直すといった最悪の事態も招きかねない。そのため、要求仕様書作成の段階でできる限り厳密かつ正確に要求を定義しておく必要がある。

しかし、この要求を定義する作業はソフトウェア開発者と発注者や利用者とのコミュニケーションに負うところが大きく、どうしても齟齬が発生しやすい。そこで、要求を可視化し定義するための工学的なアプローチが試みられている。「要求工学」と呼ばれる研究分野では、このようなアプローチも行っている。

要求定義の中でも、システムが備えるべき品質を定義する非機能要求の評価に「スペクトル分析」の手法を応用し、定量的に検証しようという試みを行っているのが、信州大学工学部情報工学科の海谷治彦准教授(兼国立情報学研究所アーキテクチャ科学研究系客員教授)である。

非機能要求の定量的検証の重要性に着目

信州大学工学部情報工学科 海谷治彦准教授

要求工学は、曖昧で変化しやすい要求を工学的に扱うことによって高品質の要求仕様書を効率的に作成する手法を研究する分野である。要求仕様書に記述される要求には大きく分けて機能要求と非機能要求がある。機能要求とはシステムが持つ機能そのもののこと。一方、非機能要求とはセキュリティやユーザビリティ、信頼性などシステムが備えるべき属性(品質)のことである。

機能要求とは異なり、非機能要求に関してはこれまで定量的な検証が行われてこなかった。「使い勝手の良いシステムを作って下さい」と言われても、実際にどのように作れば良いか具体案が示されることはほとんどなく、それを検証する手立てもないというのが実情である。

海谷准教授が研究する「ソフトウェア成果物のためのスペクトル分析」は、スペクトル分析を、非機能要求の評価に用いようとする試みだ。そもそもスペクトルとは、一般的には、複雑な情報や信号を構成している各成分に分解し、大小に従って配列したもののこと。そして、スペクトル分析とは物質が固有のスペクトルを持っていることを利用した成分分析の手法のことである。このスペクトル分析を使って非機能要求の要求定義を可視化し、定量的に検証しようという、非常にユニークな試みである。

要求仕様書の非機能要求を定量化・可視化

では、スペクトル分析をどのように要求仕様の評価に用いるのだろうか。具体的には、要求仕様書内に散在している非機能要求の記述に対し、通常インターネットなどのキーワード検索などに用いられている情報検索技術を応用して研究開発した分析ツールを使ってテキスト解析を行い、その結果をスペクトルのように色情報に変換して可視化するのである。

例えば、セキュリティに関する記述は赤、ユーザビリティは青といった具合に、要求項目ごとに色を定め、要求定義書の中に、非機能要求の各項目に該当するキーワードが、どれだけ含まれているかを、解析ツールを使って調べ上げ、その結果を図やグラフなどによって表すというわけだ。

それにより、要求仕様書に記述されている非機能要求に関する項目の大まかな傾向が一目瞭然で分かるほか、既存のソフトウェアの要求仕様書と比較することで、欠陥を見つけやすくなる。逆に、既存のソフトウェアとの違いを差別化要因として発注者にアピールすることもできる。

たしかに、これまで非機能要求の定義に関しては、ソフトウェア開発者の勘と経験に頼るところが大きく、また、“発注者や利用者のニーズを満たしているか否かは、実装してからでないと分からない”という状況だった。

「そもそも、既存のソフトウェアの要求仕様書と比較するためのモノサシ自体がこれまで存在していなかったのです。しかし、我々が開発した分析ツールを使えば、非機能要求に関する定量化と可視化を行うことができるので、ソフトウェア開発者にとって、発注者のニーズに合致した要求仕様書になっているか否か、もしくは自分が意図した要求仕様書になっているか否かを簡単にチェックすることができます」(海谷准教授)。

ソフトウェア開発工程におけるあらゆる中間成果物の分析が行えるツールの開発も

ソフトウェアの品質の良し悪しを 定量的に把握することができます (海谷准教授)

海谷准教授が非機能要求に関する分析ツールの研究開発を行おうと考えた最大の理由は、非機能要求は機能要求に比べて共通性が高く、一度パターン化してしまえば、異なる分野のソフトウェアであっても長期間にわたって有効利用することができるため。そしてISO/IEC 9126(JIS X 0129)などパターン化のための枠組みが多数存在するためである。

「非機能要求にはたくさんの項目がありますが、どのシステムであっても濃淡の違いこそあれ同じ枠組みになります。ごく一般的なソフトウェアにおける非機能要求の要求定義を定量化できれば、それが1つのガイドラインになるのではないかと考えたのです」(海谷准教授)。

海谷准教授が研究開発を行っている非機能要求のスペクトル分析ツールのメリットをまとめると、以下のようになる。

まず、要求仕様書の作成段階で開発対象(ソフトウェア)と既存のソフトウェアとの違いを要求項目ごとに明確化することができるので、重要な要求が漏れていないかなどが容易に把握でき、ステークホルダの想定に、より近いソフトウェア開発が可能となる。

次に、要求仕様書を作成する段階でシステムが達成すべき品質のレベルを定めることができる。ソフトウェアの品質を高めることと開発コストはトレードオフの関係にあり、費用対効果を見極める必要がある。スペクトル分析を行うことで、より過不足なく非機能要求を定義することができるようになるため、発注者のニーズに合致した品質のソフトウェアを適正な価格で開発できるようになる。見積りに関する参考情報にもなる。

現在、実現できているスペクトル分析の機能について海谷准教授は次のように説明する。

「現在のところ、英語と日本語のいずれかの自然言語で書かれた要求仕様書であれば、分析することができます。しかしながら、要求仕様書で定義された非機能要求がその後の工程にきちんと継承されているか否かをチェックできる有効な手段は今のところなく、実装段階で担保するのが難しい状況です」

今後のチャレンジは、UMLやソースコードなど、ソフトウェア開発工程におけるさまざまな中間成果物に関しても分析が行えるよう、新たな分析ツールの研究開発を行うことだという。

海谷治彦准教授より
本分析ツールは、例えば、プロダクトファミリーの組み込みソフトウェア開発など同じ分野でソフトウェア開発を続けているソフトウェア開発者にとって特に有用な分析ツールであると捉えています。今後は、要求仕様書に限らず、設計図やソースコードなどソフトウェア開発におけるあらゆる中間成果物に対して、散在して記述される特性を定量的に分析するための手法とツールの研究開発に着手していきたいと考えています。そのため、システムの規模は問いませんが、複数の要求仕様書,そして可能なら設計図やソース等を見せていただける企業の方々のご協力を広く求めております。

プロジェクトページ

コメントは停止中です。