ソフトウェア品質シンポジウム2023

ソフトウェア品質シンポジウム
MDAツールによるソフトウェア品質保証

株式会社

IHIエスキューブ

品質保証部
○平井宣

E-mail：hirai9589@ihi-g.com

本日の内容について■研究のきっかけ：QCD原体験とSEの生産性■着想：開発ドキュメントの適正量とは■MDAによるドキュメント削減と品質確保■評価方法と結果■評価に対する考察
■まとめ
想定参加者

■開発期間が短くＳＥの確保で苦労しているＰＭ■運用保守で忙しいわりに先行きが見通せないＳＥ■ｺﾝｻﾙが入って要件ｺﾝﾄﾛｰﾙに苦労しているＰＭ■開発ドキュメントをコンパクトにしたいＱＡ
ソフトウェア品質シンポジウム2023

2

QCD意識が高まった原体験

たった一人のＰＭが約400人の設計者を束ね，Doors(※)でQCDをコントロールしていた．
ドキュメント体系はISO/IEC 12207準拠と思われる．書式は国内と大きく異なりMS Word中心．
QCDの統合的管理を考えるきっかけとなった．
※IBM Rational Doors:Word/Excelなどのセンテンスをリンクさせ台帳管理できるツール．
組込み系で実績が多い．他にSiemens SoftwareのPolarionなどが知られている．
ソフトウェア品質シンポジウム2023

3

品質王国日本の開発ドキュメント事情
日本の設計書はデータ項目が多く，ドキュメントのフォーマットにこだわることで，生産性や品質を確保する傾向がある．
以下は，神奈川県におけるHER-SYS（感染症管理ｼｽﾃﾑ）の入力要領．

神奈川県公式サイト
ソフトウェア品質シンポジウム2023

4欧米と日本の労働時間(週平均(h))

米，日本にくらべ，息が長いソフトウェ
アベンダーが多い

出典 2016年 IPA/同志社大学
日本のソフトウェア技術者の生産性及び処遇の向上効果研究 より
ソフトウェア品質シンポジウム2023

5

開発ドキュメントによるQCDコントロールの課題
機械，工作機の設計は，材料，機構，構造で品質指標がほぼ定まる．
システム構築の場合，ドキュメントでQCDは確保できるのか？

ソフトウェア品質シンポジウム2023

6

開発ドキュメントの適正量とは
IPA/SEC ソフトウェア開発分析データ集2022 抜粋

例えば，開発コスト１億円，工期12ケ月は，ソースコード500KSLOC相当．
基本設計書は5,310頁，結合テスト仕様書は862頁（1頁30件換算）．
10cm箱ファイルで6箱相当．

・１画面いくら，１バッチいくらで見ると多くはないか
・ソースコードを印刷した量（約7,000頁）と比べてどうか．
・迫る納期の中で，書かないと進まないのか
ソフトウェア品質シンポジウム2023

7

V字モデルに基づくドキュメント削減アプローチ「開発メンバーへの落し込み」に最低限必要な基本設計書を見極め，他のアウトプットを絞り込む
要件定義

項目ﾚﾍﾞﾙのﾃｽﾄは前倒し（項目ﾚﾍﾞﾙは担当に任せQAが全体品質を保証）

基本設計
設計の先送り（落し込めたら，残りの設計は担当に任せる）

UAT

総合テスト

結合テスト

詳細設計～単体テスト（ソースコード量は変わらず）※V字モデルとはIPA/SEC 共通フレームにおいて各プロセスのインプットや相関性を図式化したモデルのことである．
ソフトウェア品質シンポジウム2023

8メタモデルによる設計書のデータベース化
設計情報をメタモデルに基づいてデータベース化するものと，担当者に任せるものに仕分け，任せるものは，情報量を減らさずに，プログラムに追い出したり，モックアップで表現する．
ToBe：メタモデル
AsIs：基本設計
エンティティ
アイテム登録アイテム…
ｱｲﾃﾑﾘﾝｸ
正規化できない
設計情報

アタッチメント

プログラム群
コメント
アイテムの内部仕様ソフトウェア品質シンポジウム2023

ドキュメントリバース
ユニットテスト
9

MDAツールによるアイテム管理

エンティティツリー

アイテムリスト

アタッチリスト

ソフトウェア品質シンポジウム2023

10画面エンティティのアイテム例

画面アイテム画面エンティティ

画面イメージ

ソフトウェア品質シンポジウム2023

11

機能とDBエンティティのアイテム例

機能とDB
エンティティ

ソフトウェア品質シンポジウム2023

12

結合テストエンティティのアイテム例

結合テスト
エンティティ

ソフトウェア品質シンポジウム2023

MDAにおける３つのアイテム

設計アイテム

プログラム
アイテム

テストアイテム
ソフトウェア品質シンポジウム2023

14

アイテムの構造
設計アイテムからプログラムアイテムとテストアイテムを導く．プログラ
ムアイテムで単体テスト，テストアイテムで結合テストを実施．
エンティティ

アイテム

プロパティ

設計アイテム

プログラム
アイテム

テスト
アイテム
１

１

１

１
n

３つのアイテムを紐づける

アイテムリンク

1

１

１

１
１

１n

１
イベント一覧

1

イベント別
テーブル一覧

n１
ダミー

ソフトウェア品質シンポジウム2023

15

テストアイテムリンクの目的
設計アイテム機能とＤＢの設計アイテム（機能とDB)

アイテム
リンク

プログラム
アイテム

ソフトウェア品質シンポジウム2023

テスト
結合テストのテストアイテム
アイテム

設計アイテムをもとにテストアイテムを登録する

16

プログラムアイテムリンクの目的
設計アイテムに関連するプログラムを紐づける．関連プログラムの洗出しにはPG処理方式設計が不可欠．
ﾌﾟﾛｸﾞﾗﾑ処理方式(一部)：設計アイテム共通のプログラム
ソフトウェア品質シンポジウム2023：プログラムアイテム
17

プログラムアイテムリンクのメリット（１）コメントによるドキュメントリバース
OpenJDK:Hashtalbeのコメント記述

生成されたJavaDoc※Java以外はDoxygenやJSDocを活用
ソフトウェア品質シンポジウム2023

18

（２）アサーションによるユニットテスト
ソースコード
パネル

テスト結果
パネル

テスト実行

引用元：github.com/rsdcastro/btree-dotnet

19

評価方法
■評価モデル・過去ＰＪからMDAを構築し，品質データを比較
・過去ＰＪは匿名化が必要であるため評価モデルを策定・比較する品質データは基本設計書と結合テスト仕様書

■評価観点
評価観点

評価方法

開発ドキュメントがＭＤＡで減るか

評価モデルの設計書頁数とテスト件数を比較する

基本設計の先送りは品質に問題ないか

設計アイテムとテストアイテムを比較して抜け漏れを確認する

基本設計の変更に対し生産性に問題はないか設計アイテムの追加，変更，削除に対してテストアイテムとの関連付けを確認する
20

評価モデル・対象システム名：ワークフローシステム
・開発コスト：¥5,000,000（基本設計～総合テスト）
・開発期間：5 ケ月
・成果物:
ﾌﾟﾛｸﾞﾗﾑ：画面(7 本)，帳票(0 本)，ﾊﾞｯﾁ(1 本)，ｲﾝﾀﾌｪｰｽ(1 本)

開発ﾄﾞｷｭﾒﾝﾄ ：基本設計書，結合ﾃｽﾄ仕様書兼報告書【品質・工数の実績データ】
工程

基本設計

詳細設計～単体ﾃｽﾄ

160.0

600.0

80.0

80.0

設計書(頁)

20

51010

ﾃｽﾄ件数

-

40

30

5

ﾊﾞｸﾞ件数

-

20

72

指摘件数

20

20

52

KSLOC

-

4.6-

-

工数(h)

ソフトウェア品質シンポジウム2023

結合ﾃｽﾄ 総合ﾃｽﾄ

21

評価１：設計書とテスト件数の比較

25%減3倍※IPA指標はIPA/SEC ソフトウェア開発分析データ集2022より引用
22評価２：テスト漏れの有無
設計アイテム設計アイテムのプロパティを点線で結線

テストアイテム
テスト漏れは点線で残る【凡例】

イベント画面・バッチ
テーブル

テスト予定
テスト済
23

評価３：設計変更への追従性
変更後の設計アイテム
アイテムキー

変更前のテストアイテム

設計属性

変更アイテムアイテムキー

アイテムリンク

追加アイテム

設計削除アイテム

設計属性

変更アイテム削除アイテムテスト

変更アイテム削除アイテムマッチングで追加・削除を識別
設計変更の有無

設計アイテム

テストアイテム

アイテムリンク

影響検索

追加

〇××可

変更

〇〇〇

可※

削除×〇〇

可

※アイテムの更新日付で比較を要する
ソフトウェア品質シンポジウム202324

評価結果に対する考察■得られた知見・MDA手法により，設計書量が減り，テスト件数も減る見通しを立てることができた．
・ｱｲﾃﾑﾘﾝｸにより，テストの網羅性や設計変更への追従性が確保できることが分かった．

■前提条件，課題・訴求ポイントを絞るため，評価モデルや検証範囲が限定的．例えば実ＰＪで実用面での深堀など．
・担当に落し込み，担当分を積上げるＰＪに有効で，ｵﾌｼｮｱなど設計と実装の担当が分かれるPJは不向き．
ソフトウェア品質シンポジウム202325

成果（まとめ）■成果
・設計書をｺﾝﾊﾟｸﾄにすることで，ﾃｽﾄ件数が減り，生産性も高まる手法「MDA」を発見できた．
・MDAﾂｰﾙは，設計情報やﾃｽﾄ仕様をﾃﾞｰﾀﾍﾞｰｽ化し，抜け漏れを防止できるので，QCD見える化に有効である．
■展望
QCD見える化は，DXでも注目される大規模Agileへの対応や大規模PJのQCD対策(ﾘｽｸ早期発見，未然防止)に不可欠な技術である．
品保の活動の中でさらに育てていきたい．
ソフトウェア品質シンポジウム2023

26

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

ソフトウェア品質シンポジウム

ソフトウェア品質シンポジウム2023

27