高信頼化技術適用事例 設計工程におけるTERASOLUNA DSの

高信頼化技術適用事例
設計工程におけるTERASOLUNA DSの適用
2014年6月24日
株式会社 NTTデータ
技術開発本部 ソフトウェア工学推進センタ センタ長 冨安 寛
Copyright © 2014 NTT DATA Corporation
概要
• システム開発における設計書品質とレビュー
• 設計書間の整合性を維持
• 設計書の整合性を機械的に確認できるツール
「TERASOLUNA DS」
• 開発経緯と適用事例、効果
Copyright © 2014 NTT DATA Corporation
1
アジェンダ
1. システム開発における設計書の重要性
- 設計書と下流工程との関係
2. 設計品質低下の原因
- 労働集約型作業
3. 整合性を機械的に確保する
- 労働集約型作業から知的集約型作業へ
4. 要素技術
- 文書解析技術、スキーマレスDB
5.効果
-事例紹介
6. 新たな課題への挑戦
- 設計書の自動生成/自動修正
ソースコード解析技術との融合
Copyright © 2014 NTT DATA Corporation
2
1.システム開発における設計書の重要性
ポイント:
1. システム設計では段階的に詳細化されていく
2. 上流の誤りが放置されると、下流で増幅される
後工程で直すのは多大なコストがかかる(2工程すり抜けると4.4倍のコストが必要)
3. 設計不具合はテスト工程で発覚し、これがプロジェクトの遅延/予算超過を招く
Copyright © 2014 NTT DATA Corporation
3
システム開発と段階的詳細化
要件を満たすための実現方法を段階的に詳細化
記述量も段階的に増大
工程
要件定義
• 要件定義書
設計
• 外部設計書
• 内部設計書
製造
• プログラム
• 設定ファイル
テスト
Copyright © 2014 NTT DATA Corporation
記述される情報と量
•
•
•
•
テスト項目
テストデータ
テスト証跡
バグ一覧
4
設計情報の修正工数
上流工程で不具合を修正することが重要
要件定義
外部設計
工程
内部設計
プログラム製造
記述量
修正工数
比率
後工程にすり抜けるほど修正工数は増大
詳細設計:結合テスト = 1.00:4.44 (※1)
Copyright © 2014 NTT DATA Corporation
(※1) 「マルチベンダ情報システム開発における障害修正工数の要因分析」
http://www.empirical.jp/paperdb/papers/archive/151/151.pdf
5
設計品質の低下が招くこと
テスト工程で問題発覚
コスト超過/納期遅延
要件定義
結合テストで異常終了多発
設計
エラーメッセージから
該当プログラムを特定できず
製造
テスト資材が足りない
テスト
正しい情報はどこ?
Copyright © 2014 NTT DATA Corporation
6
2.設計品質低下の原因
ポイント:
1.「分散開発」 「納期優先」により、設計書間の整合性を維持することが難しくなっている
2.現状、設計書の品質確保は人手に頼っているが、人間の能力を超えてしまっている
Copyright © 2014 NTT DATA Corporation
7
労働集約によるソフトウェア開発
従来のソフトウェア開発は
労働集約的に作業を実施
設計
大量ドキュメントを作成
コーディング
テスト
要員を大量確保して作業
チェック対象
プログラム量の増加
設計書
Copyright © 2014 NTT DATA Corporation
8
問題意識
複数チーム/拠点間で作成された
設計書間で不整合が多発
設計
チームA
チームB
チームC
複数チームで並行設計
Copyright © 2014 NTT DATA Corporation
全体を通してみると
不整合だらけ
9
設計書間の不整合
設計書の不整合例
処理定義書
テーブル定義書
・処理名:P
テーブルAのd列にステータ
スを格納する
テーブル名:A
- 列 b 数値型
- 列 c 文字列型
- 列 e 数値型
存在しない列への代入処理
プログラム
Copyright © 2014 NTT DATA Corporation
DB
10
設計書の品質は後工程になって顕在化
不整合が残存したままコーディング・テストと進み
問題プロジェクト化
製造
テスト
チームA
設計書通り
コーディング
チームB
チームC
設計書
プログラム
多数のバグ
Copyright © 2014 NTT DATA Corporation
問題化
11
保守工程における設計書品質
設計書間の不整合は
開発フェーズ後半~保守フェーズでも発生
開発
保守・更改
開発フェーズでは大量要員が残っているため
メンテナンスが可能
保守フェーズでは要員が削減され
メンテナンスが困難に
設計書
設計書のメンテナン
スは後回しと…
Copyright © 2014 NTT DATA Corporation
プログラム
システムに直接影響する
プログラムが優先される
12
設計ドキュメントに関する課題
多くのプロジェクトでは実際に設計書は修正されない
時間経過と共に陳腐化が進んでいく
保守作業におけるドキュメントの修正度
[n=371]
完全に修正している
[20.7%]
約80%のプロジェクトで
設計書の品質低下が発生
※経済産業省, JUAS, “ユーザ企業 ソフトウェアメトリックス調査2011”, pp223, 2011
Copyright © 2014 NTT DATA Corporation
13
なぜ設計書は修正されないか?
設計書を修正しなくても「すぐには困らない」
<プログラムと設計書の修正に関する比較>
プログラム
設計書
修正結果の正し
さを確認できる?
動作結果により
確認可能
目視でしか
確認できない
修正しないと
どうなる?
業務に支障がでる
すぐには困らない
テスト工程でバグをなおす「もぐらたたき」になる
Copyright © 2014 NTT DATA Corporation
14
なぜ設計書は修正されないか?(続き)
設計書修正は最小限とし
プログラム製造/テスト実施を優先
プロジェクト最優先事項
品質
29%
コスト
24%
※引用: 経済産業省, JUAS, “ソフトウェアメトリックス調査”, pp68, 2012
Copyright © 2014 NTT DATA Corporation
15
開発規模が人間の能力を超えている
大規模システム開発の設計書量は
人手によるレビュー能力を超えている
要件定義
設計書
外部設計
工程
内部設計
プログラム製造
プログラム
4万ファイル
40万ページ
17万ファイル
2Mステップ
記述量
Copyright © 2014 NTT DATA Corporation
16
3.整合性を機械的に確保する
ポイント:
1.定型的なレビュー観点は、機械化可能である
2.機械化可能な領域
3.チェックルールの具体例
Copyright © 2014 NTT DATA Corporation
17
不整合箇所の摘出方法(従来)
労働集約的にレビューを実施
作成・修正
多人数、並行で設計
(擦り合わせ)
設計内容をチェック
修正箇所確認
完成・維持
影響範囲を調査/修正
不整合
変更箇所
影響範囲
問題
記述票
Copyright © 2014 NTT DATA Corporation
複数回実施
18
TERASOLUNA DSのコンセプト
形式レビューを自動化
品質向上・コスト削減
作成・修正
多人数、並行で設計
(擦り合わせ)
設計内容をチェック
修正箇所確認
完成・維持
影響範囲を調査/修正
不整合
変更箇所
影響範囲
エラー
レポート
Copyright © 2014 NTT DATA Corporation
19
TERASOLUNA DS 概要
設計情報間の整合性や影響分析を支援
設計品質向上と効率化を実現するツール
Copyright © 2014 NTT DATA Corporation
20
想定効果:バグ件数の削減
設計品質の向上による
結合テスト工程摘出バグ件数の削減
• 結合テストで発見されるバグの約50%は「設計書の不具合」に起因
(弊社内サンプル調査結果)
設計
製造
テスト
設計起因バグ数の削減
DSで不具合検知、修正 → 高品質な設計書
TERASOLUNA DS
摘出バグ数
エンティティ
定義書
エンティティ定義書
処理定義書
150
修
正
SQL定義書
Copyright © 2014 NTT DATA Corporation
処理定義書
コ
ー
デ
ィ
ン
グ
テ
ス
ト
プログラム
100
50
♡
0
DS未導入
DS導入
SQL定義書
21
TERASOLUNA DS機能概要
設計書内の情報をデータベースに格納し
整合性チェックと影響調査効率化を実現
整合性チェック
問題
記述表
影響調査効率化
取
込
整合性チェック
レポート
全文検索
設計書DB
セルフチェック
Copyright © 2014 NTT DATA Corporation
CRUD
22
TERASOLUNA DSの機能イメージ
<整合性チェックレポート>
必須項目が空欄
一覧に存在しているものが
定義書の方にない
エンティティ名が重複
Copyright © 2014 NTT DATA Corporation
23
TERASOLUNA DSの機能イメージ
<セルフチェック>
オレンジ部分が
エラー発生箇所
Copyright © 2014 NTT DATA Corporation
24
TERASOLUNA DSの機能イメージ
<全文検索>
ファイルの種類が
選択できる
・ファイル名
・更新日時
・格納先
Copyright © 2014 NTT DATA Corporation
検索画面
検索結果画面
25
TERASOLUNA DSの機能イメージ
<CRUD>
No
CRUD一覧
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SYSTEM
ID
AAA
AAA
AAA
AAA
AAA
AAA
AAA
AAA
BBB
BBB
BBB
BBB
BBB
BBB
BBB
BBB
BBB
BBB
BBB
ID
名称
ID
PGM
名称
CRUD回数
C
R
U
D
3
5
4
0
3
5
4
0
3
2
2
0
3
2
0
0
3
2
0
0
3
2
0
0
3
2
4
0
3
0
0
0
3
0
0
0
3
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
SYSTEM
TABLE
ID
A01
A02
A03
A04
A05
A06
A07
A08
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
B11
Copyright © 2014 NTT DATA Corporation
1
2
3
4
5
6
7
AAA
AAA
AAA
BBB
BBB
BBB
BBB
PG1
PG2
PG3
PG1
PG2
PG3
PG4
CRUD
CRUD
CRUD
CRUD
CRUD
CRUD
C R U D C R U D C R U D C R U D C R U D C R U D C
C R U
R
U
C R U
C R U
R
C R U
R
U
C R U
C R U
R
C
R U
C
C
R U
C
R
C
C
R
C
R
C
C
R
C
R
C
C
R
C
U
R
U
C
U
C
U
R
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
CRUD
R U D
R U
R U
U
26
TERASOLUNA DSにおける整合性チェック
”知的集約型作業”に注力できるよう
労働集約型作業を自動化
TERASOLUNA DSの対象範囲
労
働
集
約
型
機能間・設計間で
整合性がとれているか?
形式レビュー
知
識
集
約
型
設計がそもそも
正しいか?
有識者
レビュー
Copyright © 2014 NTT DATA Corporation
27
TERASOLUNA DSの整合性チェック範囲
チェック対象となる情報
チェック可能な表現形式
設計書や規約など具体化された情報
チェック
対象
チェック可能
設計規約 他設計書
XX
設計書
チェック困難
業務要件
ノウハウ
設計書
有識者
Copyright © 2014 NTT DATA Corporation
XX
フォーマット
が正しいか
整合性がとれ
ているか
文書や図で表現されているもの
有識者の知見などの情報
チェック
対象外
表形式で記述されたもの
1.1 顧客検索処理
(1)画面からの入力を
変数Formへ格納
(2) Formを入力チェッ
ク関数によりチェック
(3) チェック結果が
Falseの場合、エラー
画面へ遷移する
(4) チェック結果が
文章で記述
されたもの
チェック困難
画面キャプチャ
レイアウト図
設計書
28
整合性チェックルールの整備
品質向上につながる
チェックルールを整備
(1)開発標準に含まれている設計書レビュー観点
→ 199ルールを設定
(2)プロジェクトに蓄積されているレビューノウハウ
→ 各プロジェクト独自設定
(3)結合試験時にバグとなるインタフェース情報
→ 138ルールを設定
Copyright © 2014 NTT DATA Corporation
29
整合性チェックの例
 整合性チェック(結合試験時にバグとなるインタフェース情報)の例
処理設計書
テーブル名
「処理設計書」の処理対象が
「テーブル定義書」と整合が取れている
かをチェック
テーブル定義書
Copyright © 2014 NTT DATA Corporation
30
4.要素技術
ポイント:
1.「非定型データ処理基盤」を構築
2.設計書様式の標準化
3.「エンリッチ」と「NoSQLデータベース」が重要な技術
Copyright © 2014 NTT DATA Corporation
31
「非構造化データ活用基盤」整備の構想
「非構造化データ活用基盤」とは:
以下の特徴を持つシステムを支える、柔軟で拡張性に優れたデータ管理基盤
• テキスト文書などの非定型データに対し、データの意味を踏まえた検索や分析を可能とする
• データの追加/変更に素早く対応できる
エンリッチ
エンジン
NoSQL DB
検索・分析
AP
自然言語処理
技術
大規模分散処理
NoSQL技術
データ分析
(BI/BA)技術
非構造化データ
活用基盤
Copyright © 2014 NTT DATA Corporation
32
TERASOLUNA DS機能要素
非構造データ活用基盤上に
設計書処理機能を実装
設計書取り込み
設計書
設計書活用
レビュー用
設計書
MarkLogic Server
自動修正済み
設計書
管理情報
・・・
ソースコード
設計品質
評価
状況確認
取り込み設定
活用設定
運用支援
Copyright © 2014 NTT DATA Corporation
33
設計書フォーマットの標準化
表形式(Microsoft Excel)設計書
「標準様式」を定義
表形式の設計書イメージ
標準で46種類の設計様式を定義
全社で共有/再利用
Copyright © 2014 NTT DATA Corporation
34
半構造化データ、非構造化データを検索・集計する仕組み
設計書は「半構造化データ」
意味解釈を行うための技術開発が必要
構造化データ
半構造化データ
非構造化データ
構造が厳密に
定義されている
構造の一部が
定義されている
構造が定義されて
いない
構造を定義する技術
構造を推定する技術
構造を付与する技術
RDBMSやスキーマ記述
言語など汎用的な技
術・製品が存在
厳密・明示的に構造が
定義されていないデータの
構造を推定する
構造化されていない
データを構造化する
エンリッチ
形態素解析&意味類推技術
Copyright © 2014 NTT DATA Corporation
35
「エンリッチ」とは
データの意味を解釈し、データに意味情報を付加する技術
エンリッチ済みデータ
表データ
取得テーブル
テーブル名
項目名
顧客
顧客コード
商品
商品コード
テキストデータ
エンリッチ
特定サイトでブラウザか
らファイルをアップロード
電源起動時、まれにUIM
すると完了後の画面で一
カードを認識しない場合
部文字化けが発生する
がある。
場合がある。
またSDカードを認識しな
いときは、端子部分を乾
いた綿棒などで拭いてく
ださい。
用語辞書
Copyright © 2014 NTT DATA Corporation
表記
ルール
<データ>
<テーブル名>顧客</テーブル名>
<項目名>顧客コード</項目名>
</データ>
<データ>
<テーブル名>商品</テーブル名>
<項目名>商品コード</項目名>
</データ>
<条件>電源起動</条件>時、まれに<症
状>UIMカードを認識しない</症状>場合
がある。
また<症状><周辺機器>SDカード</周辺
機器>を認識しない</症状>ときは、<対
応策>端子部分を乾いた綿棒などで拭い
</対応策>てください。
36
設計書のエンリッチ例
設計書
Microsoft Excel形式
エンリッチ後データ
XML形式
Copyright © 2014 NTT DATA Corporation
37
NoSQLデータベースとは
NoSQLデータベースでは
データベーススキーマの事前定義が不要
RDB
データ構造の決定
データの格納
テーブルのスキーマにあわせて
データを格納する
データ構造(テーブルの構成・スキーマ)を決定
DBに対してテーブル定義を行っておく
ID
名称
住所
代表者名 担当者
ID
001
002
…
名称
NTTデータ
NTTデータアイ
…
住所
東京都江東区
NULL
…
代表者名
光石
佐藤
…
担当者
NULL
斉藤
NoSQL(XMLDB)
データの格納
データ構造の決定
データ構造(XML構造)を決定
事前のテーブル定義は不要
<個人加盟店 ID = “001”>
<名称>NTTデータ<名称>
<住所>東京都江東区</住所>
<代表者名>光石</代表者名>
</個人加盟店>
Copyright © 2014 NTT DATA Corporation
<個人加盟店 ID = “002”>
<名称>NTTデータアイ<名称>
<代表者名>佐藤</代表者名>
<担当者名>斉藤</担当者名>
</個人加盟店>
データ格納時に
データ構造を自動的に解析しDBに格納
事前のテーブル定義は不要
ID
001
002
…
名称
NTTデータ
NTTデータアイ
…
住所
東京都江東区
…
代表者名
光石
佐藤
…
担当者
斉藤
※図はRDBで考えた場合のイメージ
38
データ変更対応の違い
NoSQLデータベースでは
アプリケーション影響範囲を局所化可能
RDB
カラムの追加
AP
AP
テーブルの追加
既存テーブルの再設計
AP
AP
AP
AP
該当テーブルにアクセスしている全APの修正が必要
タグの追加
XMLDB
<doc>
<doc>
<a></a>
<doc>
<a></a>
<a></a>
</doc>
</doc>
</doc>
AP
タグ<a>にアクセス
タグ<b>を含む
データを追加
<doc>
<doc>
<a></a>
<doc>
<a></a>
<a></a>
</doc>
</doc>
</doc>
<doc>
<a></a>
<b></b>
</doc>
AP
タグ<a>にアクセス
タグ<b>追加の影響を受けない
既存APの修正は不要
Copyright © 2014 NTT DATA Corporation
39
NoSQLデータベースの効果
NoSQLデータベースでは
設計様式の追加・変更対応が容易になる
テーブル定義書
RDB
テーブル名
項目名
項目属性
ID
001
テーブル名
・・・
…
…
カラム名
カラム属性
A
…
…
処理定義書テーブル
処理定義書
処理名
項目名
処理内容
テーブル定義書テーブル
ID
001
…
処理名
登録処理
…
項目名
AP
処理内容
・・・
…
A, B
…
I/F仕様書テーブル
格納
I/F仕様書
インタフェース名
項目名
項目属性
追加
Copyright © 2014 NTT DATA Corporation
ID インタフェース名
001
登録I/F
002
…
…
…
種別
項目名
…
…
…
…
項目属性
B
追加データも
同一クエリで検索可能
NoSQL
<テーブル定義書 ID = “001”>
<テーブル名>TBL</テーブル名>
<項目名>A</項目名>
<項目属性>数値</項目属性>
</ テーブル定義書 >
テーブル定義書XML
追加テーブルに対して
クエリ修正が必要
<処理定義書 ID=“001”>
<処理名>PROC</処理名>
<項目名>A</項目名>
<処理内容>・・・</処理内容>
</処理定義書>
処理定義書XML
<IF定義書 ID=“IF01”>
<インタフェース名>IF</イン
タフェース名>
<項目名>B</項目名>
</インタフェース名>
クエリ
AP
I/F仕様書XML
40
5.効果
ポイント:
実プロジェクトによる効果確認
- クレジット系基幹システム更改
- 銀行系CRMシステム更改
Copyright © 2014 NTT DATA Corporation
41
効果の目論見
製造~テスト工程における摘出バグ数を削減
全体工数を削減
工数
摘出バグ数
設計品質向上によるテスト時の摘出バグ数減
• 設計工程のバグ数増
• 製造・テスト工程のバグ数減
製造・テスト
設計
設計
製造・テスト
DS未適用
50%削減
DS
適
用
工程
Copyright © 2014 NTT DATA Corporation
必
要
工
数
DS
未
適
用
未
適
用
DS
DS
摘
出
バ
グ
数
システム品質向上による全体工数減
• 設計工程における修正工数増
• 製造・テスト工程における修正工数減
DS適用
適
用
工程
42
実案件における効果確認
大量設計書間の整合性維持、品質向上
及び調査工数削減効果を確認
案件
効果
テスト時の摘出バグ密度削減
銀行系
• 設計書の品質向上により、テスト工程におけ
CRMシステム更改
るバグ摘出密度を従来比45%削減
大量設計書間の整合性維持
• データ辞書との整合性維持
クレジット系
データ辞書(10,000項目)と
基幹システム更改
関連設計書(18,000本)の整合性をチェック、
不整合0件を達成
Copyright © 2014 NTT DATA Corporation
43
適用事例1 金融系システム更改
課題 設計起因の不具合すり抜けで発生するバグの削減
設計
エンティティ定義書
テスト
製造
自動生成
投入
V1.0
プログラム
自動生成ツール
変更発生
自動生成
DB
エンティティ定義書
V2.0
エンティティ定義書の
変更情報投入漏れ発生
Copyright © 2014 NTT DATA Corporation
プログラムとDB間で
不整合発生
44
適用事例1 金融系システム更改(続き)
TERASOLUNA DSにより設計情報の不整合を設計工程で検知
設計
エンティティ定義書
V1.0
変更発生
投入
自動生成
プログラム
自動生成ツール
修正
エラー
自動生成
レポート
エンティティ定義書
V2.0
TERASOLUNA DSによる
整合性チェック
Copyright © 2014 NTT DATA Corporation
テスト
製造
DB
プログラムとDB間の
整合性を担保
45
適用事例1 金融系システム更改(続き)
適用効果 設計起因の不具合すり抜けで発生するバグの防止
<結合テストバグ検出密度の比較>
2.5
バ
グ 2
摘
出
密 1.5
度
(
Ksteps
件
/
)
削
減
1
0.5
0
DS未適用
DS適用
TERASOLUNA DS導入により
結合テストにおけるバグ密度45%の削減を確認
※比較した案件は、同じオフショア会社が開発を実施した結果であり、開発規模、アーキテクチャなどは異なる
Copyright © 2014 NTT DATA Corporation
46
適用事例2 クレジット系基幹システム更改
課題:並行して更新される設計書間の整合性
A社(お客様)
並行更新のイメージ
データ辞書
連携日
データ
辞書
約10,000項目
(各項目ごとに4個の属性)
デ
ー
タ
辞
書
Ver1.0
Ver1.2
Ver1.1
Ver1.3
並行更新
弊社(3チーム)
各
設
計
書
約18,000本の設計書
Copyright © 2014 NTT DATA Corporation
設計書A Ver1.0
Ver1.1
設計書B Ver1.0
設計書C Ver1.0
Ver1.2
Ver1.1
Ver1.1
Ver1.2
47
適用事例2 クレジット系基幹システム更改
TERASOLUNA DSにより、データ辞書と各設計書の整合性をチェック
お客様
TERASOLUNA DS
データ
辞書
各設計書
B
データ
辞書
エラー
レポート
整合性をチェック
A
C
設計書
設計書
不整合箇所の確認・修正
Copyright © 2014 NTT DATA Corporation
48
適用事例2 クレジット系基幹システム更改
設計工程完了時点で不整合件数0件を実現
データ辞書連携日
40000
35000
30000
データ辞書更新中のため
エラーが多発
エ 25000
ラ
ー
件 20000
数
15000
データ辞書が
最新化され
エラー解消
10000
5000
データ辞書に
登録されていないものを修正
0
1週目
Copyright © 2014 NTT DATA Corporation
2週目
3週目
4週目
5週目
49
6.新たな課題への挑戦
ポイント:
1.設計書チェック範囲の拡大
2.設計書自動生成/自動修正
3.適用範囲をソースコードへ拡大(TERASOLUNA DS ACA拡張)
4.ルール作成機能の高度化
Copyright © 2014 NTT DATA Corporation
50
自動チェック範囲の拡大
TERASOLUNA DS自動チェック範囲を拡大
すり抜けバグを削減する
TERASOLUNA DS 自動チェック範囲
チ
ェ
ッ
ク
不
可
チ
ェ
ッ
ク
可
“リスク価格項目に
12桁の9を設定する”
1.1 顧客検索処理
(1)画面からの入力を
変数Formへ格納
(2) Formを入力チェッ
ク関数によりチェック
(3) チェック結果がFalseの場合、
エラー画面へ遷移する
(4) チェック結果が
「リスク価格項目」は
10桁の数値
解析機能の強化
1.1 顧客検索処理
(1)画面からの入力を
変数Formへ格納
(2) Formを入力チェッ
ク関数によりチェック
明文化されている 表形式/フロー図で記述
XX
XX
設計書
不整合
実施事項
専門家
設計規約
インタフェース定義書
処理定義書
明文化されていない
業務要件
ノウハウ
TERASOLUNA DS導入案件で ”すり抜けバグ”が多発
・ 文章で記述され、DS自動チェック不可
処理名=顧
客検索
自然文解析
他設計書
設計様式/規約の改善 全社標準様式に反映
1.1 顧客検索処理
(1)画面からの入力を
変数Formへ格納
(2) Formを入力チェッ
ク関数によりチェック
XX
設計様式を変更
他設計書
FY2013試行結果
・ 自動化によりすり抜けバグを3分の1に削減可能
Copyright © 2014 NTT DATA Corporation
51
設計書自動生成/修正機能
“設計書自動生成機能”と”設計書自動修正機能”により
設計書作成/修正工数を削減
設計書自動生成機能
定義書
一覧
元設計書選択
定義書
DS
条件指定
自動生成
一覧
設計工程の工数5%削減
・ 各種一覧
(画面一覧/テーブル一覧)
・ 管理用メトリクス (FP、スコープ、テスト消化状況 etc.)
設計書自動修正機能
誤り一覧
修正候補確認
問題記述表
「ユーザテーブル」が
”DB定義書”に存在しない
自動修正
修正結果
”利用者テーブル”
に修正しますか?Y/n
DS
不整合の30-80%は「表記ゆれ」
テキスト処理技術で自動修正可能
(用語辞書、編集距離計算等)
Copyright © 2014 NTT DATA Corporation
任意の時点
に戻せる
エラー118件中
表記ゆれ98件
52
ソースコードチェック機能(ACA機能)概要
「設計書陳腐化防止」と「テスト工数の削減」を目的とした
“設計書-ソース” と ”ソース-テスト環境”の整合性チェック
①設計書の整合性
②設計書とソース
コード間の整合性
③ソースコード
の整合性
ソースコード
設計書
オープン系
(Java等)
ホスト系
(COBOL等)
自動化範囲
Copyright © 2014 NTT DATA Corporation
テスト環境
コンパイラや統合開発
環境によるチェック
TERASOLUNA DS
凡例
④ソースコードとシステム間の
整合性
有識者のレビュー
による同期
テスト環境で
整合性を確認
手作業範囲
構成管理・リリース
管理の仕組みで同
期
TERASOLUNA DS ACA機能対象範囲
53
ソースコードチェック(ACA)機能 試行結果
工数削減を目的とした4種類のツールを試作
実プロジェクトにおいて有効性を確認
# 対象言語
目的
1 COBOL
テスト
工数削減
方法
実プロジェクトにおける試行結果
結合テストで異常終了と
なるバグを事前摘出
・事前摘出バグ数 : 277件
・削減工数
:約7人月
単体テスト完了直前ソースを解析(対象数:4,485本)
2 シェルスク
リプト
調査
工数削減
プログラム間の呼出関係 ・工数削減率:70~80%
を可視化
3 Java, JSP
調査
工数削減
設計書とソースコード間
の整合性をチェック
(設計書-ソース
間の乖離調査)
4 JavaScript
COBOL版 ACA と組み合わせて実施
結合試験中ソースを解析
(対象数: COBOL 3,205本、シェル 5,259本)
・摘出不整合数:3,850件
・工数削減率:70~80%
+潜在バグ1,800件摘出(機能追加時に顕在化)
サービス開始後の設計書/ソースを解析
(※対象数:設計書:300本、ソース1,800本)
影響範囲
プログラム間の呼出関係 ・工数削減率:23%
調査工数削減 を可視化
サービス開始後のソースを解析(対象数: 360本)
Copyright © 2014 NTT DATA Corporation
54
ルール作成機能の高度化
簡単に設定を追加できるGUIツールを提供
前バージョンと比べ平均10分の1の工数で設定可能
※ 設計書解析設定画面の例
Copyright © 2014 NTT DATA Corporation
55
まとめ
• 高品質なシステムを開発するためには、設計書間の整
合性維持が非常に重要
• 設計品質低下の要因は「労働集約型」で作業を行って
いることである
• 整合性チェックを機械的に確保することで、労働集約
型作業から解放され 「知識集約型」作業へ集中できる
• 実プロジェクトにおいて、システム全体の品質向上につ
ながることが確認できている
Copyright © 2014 NTT DATA Corporation
56
Copyright © 2011 NTT DATA Corporation
Copyright © 2014 NTT DATA Corporation