キーワードベースドレビュー－ドキュメントのあいまいさや不備に着目したレビュー手法－

JaSST’10 Tokyo
２０１０年１月２８日（木）河野哲也，猪塚修，藤森麻紀子，河野哲也
本間周二，茂中義典
高品質ソフトウェア技術者交流会（QuaSTom）
現場改善技法検討分科会ＳＥチーム

プレゼンテーションの流れ○ 研究の背景○ 提案内容のスコープの明確化
レビュー手法の全体像
 リーディング技法について○ 提案内容観点の整理
 ツールの開発
 手法の提案○ 適用例とまとめ2

ドキュメントのレビューの問題○ ソフトウェアが大規模化・複雑化している

ドキュメントの規模が肥大化し、あいまいさや不備が頻発• あいまいさや不備が思いもよらない障害につながることもある○ 肥大化したドキュメントのレビューが大変
ドキュメントのほとんどは自然言語（日本語）である
 目視で確認せざるを得ない• レビューに時間がかかる、時間が足りない○ あいまいさや不備はレビューで検出することは難しい

レビューのチェックリストでは、「あいまいさがないこと」、「不備がないこと」だけしか書かれていない場合が多い• 検出が暗黙的、ノウハウ依存になってしまう3

問題とその対応策○ ドキュメントの肥大化：時間がかかる、時間が足りない
狭く深くやる• 例えば、重要な機能に絞ってさまざまな視点でレビューする 浅く広くやる• 例えば、特定の観点に絞って全体を網羅的に確認する○ あいまいさや不備の検出：検出が暗黙的、ノウハウ依存
具体的にあいまいさや不備を特定できるようにする• チェックリストの整備、および充実• 具体的なあいまいさや不備に関する記述内容のリストの作成
 ベテランを常にアサインする• マネジメント的な解決を目指す
4

本研究における対応の位置づけ○ ドキュメントの肥大化：時間がかかる、時間が足りない
狭く深くやる• 例えば、重要な機能に絞ってさまざまな視点でレビューする 浅く広くやる• 例えば、特定の観点に絞って全体を網羅的に確認する○ あいまいさや不備の検出：検出が暗黙的、ノウハウ依存
具体的にあいまいさや不備を特定できるようにする• チェックリストの整備、および充実• 具体的なあいまいさや不備に関する記述内容のリストの作成
 ベテランを常にアサインする• マネジメント的な解決を目指す

5

提案のアプローチ○ ドキュメントのあいまいさや不備を体系的に整理
あいまいさや不備の観点の整理
 あいまいさや不備につながる具体的記述（キーワード）の導出
○ あいまいさや不備の検出を支援するためのツールの開発、および手法の提案
あいまいさや不備につながるキーワードをツールを用いて検出 レビューの一通りの流れを手法として整理

6プレゼンテーションの流れ○ 研究の背景○ 提案内容のスコープの明確化
レビュー手法の全体像
 リーディング技法について○ 提案内容観点の整理
 ツールの開発
 手法の提案○ 適用例とまとめ
7

レビュー手法の概観○ レビューのプロセス・運用法（レビュー手法）
パスアラウンド ウォークスルー
 チームレビュー ピアレビュー インスペクション
○ レビュー対象の読み方（リーディング技法）
アドホックレビュー チェックリストレビュー
 シナリオに基づくレビュー 観点に基づくレビュー
 欠陥に基づくレビュー8

本研究の立ち位置○ レビューのプロセス・運用法（レビュー手法）
パスアラウンド ウォークスルー
 チームレビュー ピアレビュー インスペクション
○ レビュー対象の読み方（リーディング技法）
アドホックレビュー チェックリストレビュー
 シナリオに基づくレビュー 観点に基づくレビュー
 欠陥に基づくレビュー
9

リーディングの流れ○ 特定フェーズ
ドキュメントを読みながら問題点･欠陥候補となる記述内容を特定する○ 検討フェーズ
 問題点・欠陥候補対して、問題点や欠陥として指摘すべきかどうかを検討する• 前後の文脈との整合性や他のドキュメントの関係性などを確認する○ 項目設計フェーズ
 問題点や欠陥に対して指摘項目を設計する• 指摘の意図や指摘内容を具体的に記述する
ドキュメントドキュメント貯水タンクの水量デー
タは逐次データ管理機能に送信
貯水タンクの水温デー
タは30分間隔で管理機能に送信
データ管理機能はデー
タの管理を行うことができる

貯水タンクの水量デー
タは逐次データ管理機能に送信
貯水タンクの水温デー
タは30分間隔で管理機能に送信
データ管理機能はデータの管理を行う
ことができる

特定NG
検討OK
10

指摘項目

問題点・欠陥貯水タンクの水量データは逐次デー
タ管理機能に送信特定フェーズに戻る

逐次の時間間隔が特定できない項目
設計

水量データの具体的内容が特定できない・・・・・・・・・・・・

リーディングの難しさ○ リーディング技法は特定フェーズと検討フェーズを支援するためのツールである
各技法は汎用性を持たせるためにかなり抽象的である• 実適用で具体的にしたとしても特定が暗黙的になりやすい
 各技法には意図が隠れている• 意図を理解しないと検討がまちまちになる–

チェックリストの背景を理解しないと機能しない

ドキュメントドキュメント貯水タンクの水量デー
タは逐次データ管理機能に送信
貯水タンクの水温デー
タは30分間隔で管理機能に送信
データ管理機能はデータの管理を行うことができる

貯水タンクの水量デー
タは逐次データ管理機能に送信
貯水タンクの水温デー
タは30分間隔で管理機能に送信
データ管理機能はデータの管理を行うことができる

特定NG
検討OK
11

リーディング技法(チェックリスト)

指摘項目

問題点
・欠陥
貯水タンクの水量データは逐次デー
タ管理機能に送信

特定フェーズに戻る

逐次の時間間隔が特定できない項目
設計

水量データの具体的内容が特定できない・・・・・・・・・・・・

本研究の提案内容○ 特定フェーズを支援するツールを開発する


ドキュメントのあいまいさや不備につながる具体的記述（キーワード）を整理して、ツールに組み込む○ 検討フェーズを支援するチェックリストを提案する

キーワードに対して確認すべきポイントを整理する

ドキュメントドキュメント貯水タンクの水量デー
タは逐次データ管理機能に送信
貯水タンクの水温デー
タは30分間隔で管理機能に送信
データ管理機能はデータの管理を行うことができる

貯水タンクの水量デー
タは逐次データ管理機能に送信
貯水タンクの水温デー
タは30分間隔で管理機能に送信
データ管理機能はデータの管理を行うことができる

特定ツール

NG
検討
OK
確認
ポイント
12

指摘項目

問題点
・欠陥
貯水タンクの水量データは逐次デー
タ管理機能に送信

特定フェーズに戻る

逐次の時間間隔が特定できない項目
設計

水量データの具体的内容が特定できない・・・・・・・・・・・・

プレゼンテーションの流れ○ 研究の背景○ 提案内容のスコープの明確化
レビュー手法の全体像
 リーディング技法について○ 提案内容観点の整理
 ツールの開発
 手法の提案○ 適用例とまとめ
13

提案のイメージ○ 特定フェーズ


ツールによる特定を行う（半自動化）• 例えば、「場合」という文言はあいまいさや不備につながりやすいのでその文章やその個所をレビュアーに案内する

仕様例：
貯水タンク水量管理システム

貯水タンクの水量が20リットルセンサーを超えていた
場合、管理機能に水量データを逐次送信すること

特定ツール

14

貯水タンクの水量が20リットルセンサーを超えていた
場合、管理機能に水量データを逐次送信すること

提案のイメージ○ 検討フェーズ
確認ポイントにより検討作業を支援する• 例えば、「場合」という記述において、超えていなかった場合に対しての記述があるか？
もしくは、場合の条件が明確に特定できるか？

貯水タンクの水量が20リットルセンサーを超えていた
場合、管理機能に水量データを逐次送信すること

・場合以外の記述がない
・条件が特定できない
NG
検討確認ポイント
15問題点・欠陥・超えていなかった場合の仕様が不明である
・”超える”という記述がどちらにも解釈できる

提案イメージを実現するために必要なこと○ ツールの開発


あいまいさや不備につながるキーワードの用意• あいまいさや不備に関する議論• キーワードの分類・整理


上記を組み込んだツールの開発• キーワードにヒットした文章や個所の案内○ 確認ポイントの整理

キーワードに対しての確認すべきポイントの整理• どのようにあいまいさや不備につながるかの検討

16

あいまいさや不備の議論○ あいまいな記述とは、いくつもの意味で解釈できる記述内容

例えば、「ソフトウェア再起動後は設定データを消去すること」• 設定データのすべてを消去するのか、一部を消去するのか–

欠陥を作り込んだ原因は、知識不足や誤解釈として片付けられてしまう○ 記述の不備とは、記述内容に記載されていない事柄全く記載されていないわけではなく部分的には記載されている
 例えば、「警告センサーを超えていた場合、データを送信」• 超えていなかった場合、何をするのかが記載されていない–仕様の行間を読んで解釈しなければならない○ ただし、あいまいな記述と記述の不備は区別しない

あいまいなのは記述が足りないから、記述が足りないのは表現があいまいだから、という意味の無い議論になってしまう
17

観点とキーワードの整理○ あいまいさや不備につながる具体的な記述例を収集○ 各記述内容を分類し観点として整理○ 観点に該当するキーワードを導出し、拡充を行う○ これらキーワードをツールに実装

観点
数値的表現
時間的表現

具体的記述の例
から、"～"、以上、以下
あとで、先に、事前に、後程(のちほど)、常に、いつも、常時、逐次、一定

深さや長さを表す言葉 消去する、残す、保持する、制限する、記憶する
実態のない表現
条件指定表現否定表現
受動表現
不明瞭な表現管理する、運用する、処理する、実行する
とき、でないとき、以外、以内、の際、ではないとき、している(する)最中
しない、できないことはない、できない、ないはずはない
される、と思われるぐらい、とか、みたいな、的には、おそらく、
ほぼ、ような、ぐらい、できるだけ、

形容表現

多、少、速、遅18
指示表現

これ、あれ、それ、どれ、その、この確認ポイントの整理○ 各キーワードに対してではなく、各観点に対して確認ポイントを整理した


同じ観点に属するキーワードに対して確認すべきポイントは同じであった

観点

確認ポイント

数値的表現

表現の数値の境界が明確に切り分けできているか？

時間的表現

表現の時間が明確に特定できるか？

深さや長さの表現表現の程度(レベル)が明確に特定できるか？

実態のない表現

表現が具体的に実態を表す内容に展開できるか？

条件指定表現指定された条件以外の条件についての記述があるか？

否定表現実施すべき内容が並列に記述されているか？

受動表現

表現の主体が明確に特定できるか？
(プロセス実現/プロダクト実現)

不明瞭な表現19

具体的/明確な表現が追記されているか？

形容表現

具体的な数値仕様を特定できるか？

指示表現

指示先が明確に特定できるか？

提案手法：キーワードベースドレビュー○ 特定フェーズ


ツールによるあいまいさや不備につながるキーワードの特定○ 検討フェーズ


確認ポイントに基づく特定個所を検討しあいまいな記述や記述の不備を明らかにする○ 項目設計フェーズ

あいまいな記述や記述の不備に対して指摘項目を設計する
ルール内ドキュメント

ドキュメント・貯水タンクの水量
データは逐次デー
タ管理機能に送信
・貯水タンクの水温データは30分間隔で管理機能に送信・データ管理機能はデータの管理を行うことができる

特定ツール

・貯水タンクの水量
データは逐次デー
タ管理機能に送信
・貯水タンクの水温データは30分間隔で管理機能に送信・データ管理機能はデータの管理を行うことができる

指摘項目

あいまいな記述
NG 記述の不備
検討OK
確認ポイント20

貯水タンクの水量データは逐次デー
タ管理機能に送信特定フェーズに戻る

逐次の時間間隔が特定できない項目
設計

水量データの具体的内容が特定できない・・・・・・・・・・・・

手法適用の流れ○ 適用の手順
準備作業• 確認ポイントの用意（確認ポイントのチェックリストの印刷）• ドキュメントの抽出・貼り付け特定フェーズ• キーワードの特定（「Check」ボタン押下）検討フェーズ• 確認ポイントによるヒット個所の確認


指摘項目の設計フェーズ

21

プレゼンテーションの流れ○ 研究の背景○ 提案内容のスコープの明確化
レビュー手法の全体像
 リーディング技法について○ 提案内容観点の整理
 ツールの開発
 手法の提案○ 適用例とまとめ
22

適用例：設計書のレビュー○ レビュー対象のプロファイル
受託開発のソフトウェアのける設計書
 約1200文を1時間でレビューして欲しい• 1ページ30文としたら40ページ
○ 適用結果226文がキーワードにヒットした
 確認ポイントに基づく内容の検討後、7文章があいまいな記述/記述の不備として該当した
 それらに対して指摘項目を設計した• 例えば、「開始から一定時間経過した 」という記述内容の“一定時間”が明確ではない ７項目に対して、6項目が具体的に設計書の記述の修正が行われた• 例えば、 “一定時間”に対して具体的な時間を記述するように修正した

23

適用例：アドホックレビューとの比較○ レビュー対象のプロファイル
機能仕様書２２ページ（196文章）
 レビューアー• アドホックレビュー：PM（ベテラン技術者）• 提案手法によるレビュー：
チームリーダ（中堅技術者）

指摘項目の内容の内訳
8件
6件
5件

○ レビュー結果（約1時間で実施）
アドホックレビュー• 14件の指摘項目を設計


提案手法によるレビュー• 6件の指摘項目を設計 24

あいまいな記述/記述の不備

仕様そのものの不足

書き方の問題キーワードに基づくレビュー手法の提案○ ソフトウェアは大規模化・複雑化しているドキュメントの肥大化を考えると目視の確認では限界
 あいまいさや不備が思いもよらない障害に繋がることもある○ あいまいさや不備につながるキーワードに基づく
レビュー手法の提案
あいまいな記述や記述の不備の分類・整理、およびツールの開発
 確認ポイントの整理○ おことわり

本研究は、高品質ソフトウェア技術者交流会（QuaSTom）
現場改善技法検討分科会ＳＥチームの研究活動成果の一部 である

本研究成果のツールは QuaSTom会員に公開します• 詳しく知りたい方は直接河野までお尋ね下さい25

ご清聴ありがとうございました

問い合わせは河野まで
電気通信大学大学院 / 河野 哲也
kouno@se.uec.ac.jp「この資料で使用されている会社名（商号）、商品名は、各社の登録商標または商標です。
（また、本文中および図中では、™、®マークは表記しておりません。）」