Comments
Description
Transcript
高信頼化技術適用事例 設計工程における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