Page 1
IPA RISE委託研究 ソフトウェアのベンチマークとなる品質実態
調査における品質評価枠組み 早稲田大学グローバルソフトウェアエンジニアリング研究所 所長
国立情報学研究所 客員准教授
ISO/IEC/JTC1/SC7/WG20 Convenor
IEEE Computer Society Japan Chapter Chair
SEMAT Japan Chapter Chair
鷲崎 弘宜 http://www.washi.cs.waseda.ac.jp/
わしざき ひろのり
早稲田大学・Fraunhofer IESE 共催セミナー 2015年9月4日
Page 3
目次
• 調査プロジェクトの概要
• 測定
• 個別評価と実態分析
• まとめとお願い
3
Page 4
IPA RISE委託研究 2015-2016年度(代表: 鷲崎) 「測定評価と分析によるソフトウェア製品品質の実態定
量化および総合的品質評価枠組みの確立」
4
40製品 パッケージ/SaaS
内部・外部・利用時 PSQ認証も
……
……
……
……
……
……
0
2
4
6
8
10
1 2 3 4 5 6
Page 5
評価 委託
評価 結果
認証 結果
評価・分析 結果 協力
依頼
相互協力
体制と流れ
ソフトウェアベンダ 評価機関 5
提供
……
……
……
……
……
……
0
5
Page 6
製品提供者における準備とメリット
6
製品説明文書 利用者用文書 仕様書 設計書
ソースコード 規約違反数 脆弱性 等
内部品質用
テスト仕様 テスト結果 バグ情報
等
外部品質用
アンケート結果 クレーム・要望 不具合報告
等
利用時の品質用
フィード バック
0
2
4
6
品質評価
個別評価
PSQ認証 (適合時)
実態分析
0
2
4
6
8
10
1 2 3 4 5 6
品質ポジション
0
2
4
6
影響関係
Page 7
目次
• 調査プロジェクトの概要
• 測定
• 個別評価と実態分析
• まとめとお願い
7
Page 8
測定におけるポイント
1. 客観的: 入力と手順の明確化+第三者評価
2. 標準的: SQuAREシリーズ準拠 1. 品質モデル ISO/IEC 25010
2. 内部・外部品質メトリクス ISO/IEC 25023
3. 利用時の品質メトリクス ISO/IEC 25022
4. PSQ認証時の文書チェック ISO/IEC 25051
3. 網羅的 – 内部・外部品質を副特性レベルで100%網羅
– 利用時の品質を特性レベルで100%網羅
4. 納得感: GQMの適用+仮定の明示
8
Page 9
内部・外部品質※
• 機能適合性 – 例: 機能正確性 X=1-A/B (A: 欠陥未修正の機能数、様式記載の全機能数)
• 性能効率性 – 例: 時間効率性 X=A/B (A: 平均応答時間、B: 目標時間)
• 互換性 – 例: 相互運用性 X=A/B (A: 可能な数、B: 交換可能と指定のデータフォーマット数)
• 使用性 – 例: 適切度認識性 X=A/B (A: マニュアル記載数、B: 可能な利用シナリオ数)
• 信頼性 – 例: 成熟性 X=A/B (A: 開発中の修正欠陥数、B: 開発中の発見欠陥数)
• セキュリティ – 例: 責任追跡性 X=A/B (A: 操作履歴の残る機能数、B: 全機能数)
• 保守性 – 例: 修正性 X=Σ(Ai / Bi) / N (A: 欠陥修正日 – 発見日、B: 規定の修正時間)
• 移植性 – 例: 適応性 X=1-A/B (A: インストール環境によっては使えない機能数 、機能数)
9 ※予定、変更可能性あり
Page 10
利用時の品質
• 満足性
• 利用状況網羅性
• 有効性
• 効率性
• リスク回避性
10
ユーザアンケート、機能改善要望から測定予定
調査の一環としてユーザテスト実施、追加アン
ケート設計予定
Page 11
11
納得感: 「仮定」の明確化
機能適合性 保守性 ・・・互換性
モジュール性 再利用性 修正性G. 目標 ・・・
コールグラフ階層の深さ
サイクロマティック複雑度
関数内の戻り点の数
処理が複雑すぎないか?
処理が構造化されているか?
処理が複雑であると修正時に予期せぬ影響を生じる
M. 測定法
A. 仮定
Q. 質問
プログラムソースコード …… …
…… ……… ……… …
・・・
・・・
・・・ ・・・
Page 12
目次
• 調査プロジェクトの概要
• 測定
• 個別評価と実態分析
• まとめとお願い
12
Page 13
評価レベルに応じた入力と出力
13
0 2 4 6
Lv1
PSQ認証の取得にあたり必要な・製品情報 ・文書有無情報・機能一覧+試験文書類および品質特性との対応表・製品説明文書 ・利用者文書 ・試験文書・リリース後欠陥情報および製品バージョン情報 +要望やクレーム・試験計画および試験結果・利用時品質ヒアリング(ユーザー評価)
・仕様書、設計書における機能単位の規模情報・コーディング規約違反数や脆弱性の評価結果・欠陥情報(登録日、修正日、重大度など)・ユーザアンケート結果 ・機能改善要望 など
Lv3 ・ソースコード
Lv2
Page 14
Lv2. 欠陥数推移による信頼性評価
予測欠陥数の変動 欠陥数と予測モデル
K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14
Page 15
Lv3. ソースコードの品質評価
15
• 静的解析ツールを用いた品質評価
– 7副特性、38メトリクス
• 例
– 変更性: コメント比率、子クラスの数 ほか
– 解析性: サイクロマティック複雑度 ほか
void foo(int p){
if (p < LIMIT){
bar();
} else {
baz();
}
}
= 2
Page 16
Lv1-3. 実態分析に向けて
16
被使用外部ファイル率
関数 再利 用率
呼出し関数の数
実測値
予測値
鷲崎弘宜,田邉浩之, 小池利和,”ソースコード解析による品質評価の仕組み“, 日経エレクトロニクス, 2010年1月25日号 鷲崎弘宜, 小池利和, 波木理恵子, 田邉浩之, "C言語プログラムソースコードの再利用性測定法とその評価", JaSST'09
関係分析
品質ポジション
件数
測定値
void foo(int p){
if (p < LIMIT){
bar();
} else {
baz();
}
}
Page 17
目次
• 調査プロジェクトの概要
• 測定
• 個別評価と実態分析
• まとめとお願い
17
Page 18
まとめとお願い
• 品質実態調査
– パッケージ/SaaS、40製品、内部・外部・利用時の品質、PSQ認証も!
– 標準的、網羅的、納得感、客観的
– 現在トライアル中。今秋、本調査開始予定。
• お願い
– 本調査にご興味を持たれましたら、ぜひアンケート用紙に連絡先をご記入ください。
– 折り返し、早稲田大学またはCSAJ担当より詳細をご連絡します。
18