人間を支援するツールとしてプロセスを導入する ―― ソフトウェア品質シンポジウム 2012(SQiP 2012)(2)
2012年9月12日~14日,東洋大学 白山キャンパス(東京都文京区)にて,「ソフトウェア品質シンポジウム 2012(SQiP 2012)」が開催された(概要および基調講演のレポートはこちら).ここでは,技術セッションの内容について,いくつか紹介する.
●再利用しやすさを判別できるメトリクスを究明
早稲田大学の鷲崎 弘宜氏は,「組込みソフトウェアの派生開発におけるソースコードメトリクスによる再利用性測定」について発表した.組み込みソフトウェア開発では,既存のソース・コードを改変して新しい製品を開発する派生開発の割合が高い.ところが,派生開発でも大幅な改変が必要になって苦労するプロジェクトと,スムーズに再利用を行えるプロジェクトがある.そこで,開発を始める前に,そのソフトウェアが再利用に適しているかどうかを確認できるソース・コードのメトリクス(測定の方法と尺度)がないかどうかを調べた.
具体的には,ソース・コード品質評価ツール「Adqua」を利用してメトリクスを分析した.まず,某建機メーカが実際に行った派生開発の10プロジェクトから,典型例となりそうな4プロジェクトを選択した.そして,各プロジェクトについて,派生前のソース・コードを本ツールにかけて割り出した再利用率の予測値と,派生後のソース・コードから算出した再利用率の実績値を比較した.その結果,102種のメトリクス候補から,再利用率と相関関係のあるメトリクス3種を識別した(写真1).
写真1 再利用率と相関関係のあるメトリクスを重回帰分析によって識別した

得られたメトリクスは,「インクルードするヘッダ・ファイル種類数」,「他ファイル外部結合グローバル変数を使用する関数」,「外部結合グローバル変数経由の依存外部ディレクトリ」である.これに基づいて再利用しやすいソース・コードを考えると,写真2のような指針が得られる.つまり,モジュール間の依存関係を下げれば再利用しやすくなるという,言われてみれば当たり前の結論に行き着いたのだが,プロジェクトの実績値と比較して得られた結果ということで納得感がある.
写真2 得られた知見

●あいまいキーワードを事前にチェックしてレビューのレベルを上げる
日立製作所 情報・通信システム社の山本 芳郎氏は,「曖昧キーワードチェックツールの開発と実践的適用」について発表した.仕様書などにあいまいな記述があると,開発で不具合を作り込んでしまうことが多い.例えば,「~の場合」という記述がある仕様書には,そうでない場合についての記述がもれていることがある.また,「~を超える」という記述も,その値を含むか否かで誤解を生じやすく,不具合が発生しやすい.そのようなキーワードは経験的に分かっているが,レビューの際に目視で確認することが多く,レビューに時間がかかってしまっていた.そこで山本氏らは,あいまいさや不備につながりやすいキーワードを文書から抽出するチェック・ツールを作り,レビューの前に担当者と品質管理部門とで確認することにした(写真3).
写真3 作成したチェック・ツールのデモンストレーション
分析したいWordファイルを選択し,ファイル内の分析範囲や分析内容を指定する.

あいまいさや不備につながりやすいキーワードとチェック・ツールについては,既に,河野 哲也氏(電気通信大学 西研究室,当時)らが「キーワードベースドレビュー」という研究を行っている(2010年1月開催の「JaSST'10 Tokyo」における発表資料はこちら).山本氏らは,これを基に,さらに33個のキーワードを追加した(写真4).チェック・ツールは,当初はWordのマクロ機能を使ってチェックしていたが,処理速度を上げるため,独立したアプリケーション・ソフトウェアとして開発した.
写真4 あいまいキーワードの一覧

このチェック・ツールを,まずは仕様書を作成した本人が使用し,不適切な記述がないかどうかを確認する.次に,品質管理部門が,修正済みの仕様書に対して再度チェック・ツールを使用し,問題点を発見したら作成者に指摘を行う.その後,作成者が再度修正した仕様書に対してレビューを行う(写真5).こうすることによって,レビューでの指摘を技術的な内容に絞ることができる.
写真5 チェック・ツール導入後のレビューのプロセス

実際に,作成済みの機能仕様書について適用してみたところ,有効な指摘が行われることが分かった(写真6).なお,これらのキーワードが入っているからといって,必ず文章が不適切であるとは限らない.その表現が適切であるかどうかは,人間が確認する必要がある.しかし,作成担当者も品質管理部門も,いずれにせよ仕様書の全文には目を通すので,キーワードと一致した個所には気を配るが,一致した個所が多くてもそれほど手間が増えるわけではないという.
写真6 キーワードと一致した件数(ヒット件数)と問題件数の例
プロジェクト1において9ページの仕様書にツールを適用したところ,84件の記述がキーワードと一致した.それらを確認し,実際に問題があると判断したのは16件である.

あいまいさや不備につながりやすいキーワードへの対策のノウハウもまとまってきたという.「~の場合」という記述がある文章は,条件分けをマトリクスで図示するとよい.また,文書作成者が自らツールを使用することであいまいさや不備につながりやすいキーワードを明確に認識でき,学習効果もある.