(57)【要約】【課題】従来の開発では、自動生成等のツールにより開発の効率化が行われている。しかしながら、度重なる仕様変更や、保守工程における不具合によるプログラムの修正等が行われ、再度、自動生成ツールを用いた再生成を用いるケースは少なく、手動での作業が行われている。これにより、設計書とプログラムとの差異が発生しメンテナンスの効率が悪化する原因となっている。【解決手段】本方式では、設計書とプログラムの差異を検出できることから、設計書とプログラムの整合性を確保することができる。【選択図】図２
2009129038.tif 000002
【特許請求の範囲】
【請求項１】
利用者により作成された、画面設計書および画面を構成するプログラムコードを元に、双方の整合性および画面遷移情報の不整合を検知するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのテスト工程および保守フェーズにいたる期間において、設計書とプログラムコードの整合性を明らかにすることで、不具合個所の特定を行い、保守工数を削減する技術に関する。
【背景技術】
【０００２】
近年のソフトウェア開発は短納化が進み、開発過程の中で自動生成の仕組みが取り込まれている。自動生成により品質が向上される一方、度重なる仕様変更によって、再度自動生成を行うことは少なく、手作業による取り込み漏れが生じ、設計書とプログラムコードに不整合が発生する可能性がある。
【０００３】
特許文献１においては、入力項目に特化した方式であるが、オンライン処理におけるインタフェース開発では、画面遷移を含めた仕様書とソースコードの不整合を検出することが必要となる。
【０００４】
【特許文献１】特開平11-234164号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
現状、開発工程終了後、結合テストから総合テストにおいて、顧客からの仕様要件を満たせない等により、仕様変更が発生する可能性がある。その際に、大規模なプロジェクトにおいては、設計担当者と製造担当者が異なることから変更管理が杜撰になり、設計書を修正したがプログラムが修正されていないことやプログラムのみを修正し、設計書に未反映の案件が発生し得る。
【課題を解決するための手段】
【０００６】
そこで、本発明では、仕様変更対応後に、変更した設計書およびプログラムの整合性をチェックすることにより、双方の差異を検出することができる。また、仕様変更にとらわれず、開発後の不具合対応や、開発直後の設計書とプログラムの整合性を確認することが可能である。
【発明の効果】
【０００７】
本発明によれば、開発を行う上での工数および保守工程における工数を削減することが可能になる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施の形態について、図面を用いて説明する。
【０００９】
まず、本実施の形態におけるシステム構成図を図１に示す。コンピュータは、メモリ（101）、ハードディスクを含む外部記憶装置（105）、ＣＰＵ（102）などの処理装置を有し、記憶装置に格納されたプログラムに従って、処理装置が情報処理を実行するものである。外部記憶装置（105）には、図２で示す画面設計書を含むドキュメント群およびツール群が保存されている。
【００１０】
本機能の概要図を図２に示し、以下に概要を説明する。
【００１１】
本機能は、開発したアプリケーション（202）に対し、開発元となる画面設計書（201）を元に、自動でその整合性をチェックする機能を提供する。データ項目整合性摘出ツール（203）は、画面設計書（201）と入力項目および画面遷移を定義するソースコード（202）を入力とし、ツール（203）を実行することで、それぞれ同一のフォーマットであるドキュメント中間ファイルXML（202）およびソースコード中間ファイルXML（205）に変換する。変換後、２つのXMLを比較し、差異があるものについて、項目整合性抽出結果ファイル（207）に出力する。
【００１２】
以下に画面設計書（201）、ソースコード（202）、構成一覧（204）、データ項目整合性抽出ツール（203）、ドキュメント中間ファイルXML（205）、ソースコード中間ファイルXML（206）、項目整合性抽出結果ファイル（207）の処理内容の詳細を示す。
（１）画面設計書（201）
画面設計書は、図３に示す画面の入出力を定義する画面入出力定義書（301）と図４に示す画面遷移等を定義するイベント設計（401）から構成される（必ずしも２つで構成されている必要はないが、内容としては、２つのカテゴリに分類される）。画面入出力定義書（301）は、プログラムと紐付けをとるための画面名称および画面IDがあり、画面内における入出力項目名、項目IDとそれぞれに対応するサイズ等が記載されている。イベント設計書（401）についても、同様にプログラム（202）と紐付けをとるための画面名称および画面IDがあり、ボタン等によるアクションを一意に定義するActionPath名に対して、正常時の画面遷移先およびエラー時の遷移先が記述されている。
（２）ソースコード（202）
ソースコードも同様に、図６に示す画面の構成を表す記述と図７に示す画面遷移について定義する２つのモジュールから成り立つ（必ずしも２つのモジュールで構成される必要はないが、開発時のプラットフォームに依存する）。画面を構成するモジュール（601）は、項目IDに対応した項目属性、エリアサイズおよび入力時のマックスサイズを定義している。画面の遷移を定義するモジュール（701）では、対象のActionPathに対する正常時の遷移先の定義、及び異常時の遷移先の指定を行っている。
（３）構成一覧（204）
構成一覧は、設計書（201）とモジュール（202）の紐付きを定義するドキュメント（204）である。図５に示すように、画面名称、画面IDとモジュールから構成され、画面IDとモジュールを対に定義するドキュメントである。
（４）ドキュメント中間ファイルXML（205）
ドキュメント中間ファイルXML（205）は、本ツール（203）で比較対象となるドキュメント（201）とソースコード（202）との共通項目を図８と図９のフォーマットで構成する。本XMLは、設計書（201）と同様に入出力項目を定義するXML（801）と遷移情報を定義する２つのXMLファイル（901）で構成される。前者は、図８に示すように、項目名称、項目ID、タグ属性、サイズ属性で定義されており、後者については、図９に示すようにActionPath毎の正常時、異常時の遷移情報から構成される。
（５）ソースコード中間ファイルXML（206）
ソースコード中間ファイルXML（206）は、ドキュメント中間ファイルXML（205）と同様のフォーマットで且つ２種類のXMLファイルで定義する。一つは、図８に示すように画面の入出力を定義するXML（901）であり、２つ目は図９に示すように画面遷移を定義するXMLファイル（902）である。本構成についてもドキュメント中間ファイルXML（205）と同様である。
（６）データ項目整合性抽出ツール（203）
本ツールは、３機能から構成される。一つは、画面設計書（201）からドキュメント中間ファイルXML（205）を作成する機能。２つ目は、プログラムコード（202）からソースコード中間ファイルXML（206）を作成する機能。３つ目は、出力されたドキュメント中間ファイルXML（205）とソースコード中間ファイルXML（206）を比較し、その差分情報を出力する機能である。詳細については後述参照。
（７）差分情報ファイル（207）
データ項目整合性抽出ツール（203）の最終アウトプットであり、ドキュメント中間ファイルXML（205）とソースコード中間ファイルXML（206）の差分情報である。この差分情報が、プログラムと設計書との差異項目となる。構成としては、図１０に示すように、画面設計書名、プログラム名、差異内容である。
【００１３】
次に、本実施の形態の処理内容について、図１１を参照しながら詳細を説明する。
【００１４】
ステップ1101では、構成項目一覧（203）より、画面IDおよびモジュール名を取得する。
【００１５】
ステップ1102では、ステップ1101で取得した画面IDより、対象の画面入出力項目定義書（301）の有無について判断する。有る場合は、ステップ1103へ、無い場合は、ステップ1104へフローが遷移する。
【００１６】
ステップ1103では、画面IDより、対象のイベント設計書（401）の有無について判断する。有る場合は、ステップ1105へ、無い場合は、ステップ1104へフローが遷移する。
【００１７】
ステップ1104では、対象の設計書（201）がないため、本プログラムを終了しエラーメッセージを出力する。
【００１８】
ステップ1105では、対象モジュール名（画面構成）より、対象のプログラム（601）の有無について判断する。有る場合は、ステップ1107へ、無い場合は、ステップ1106へフローが遷移する。
【００１９】
ステップ1107では、対象モジュール名（遷移情報）より、対象のプログラム（701）の有無について判断する。有る場合は、ステップ1108へ、無い場合は、ステップ1106へフローが遷移する。
【００２０】
ステップ1106対象の対象モジュール名がないため、本プログラムを終了しエラーメッセージを出力する。
【００２１】
ステップ1108では、ステップ1102で特定した画面IDに対する画面入出力定義書（1202）の中の、項目ID、タグ種別、サイズ、最大サイズを図１２に示すようにドキュメント中間ファイルXML（1201）のタグ毎に設定を行い出力する。出力結果を図１３に示す。
【００２２】
ステップ1109では、ステップ1103で特定した画面IDに対するイベント設計書（1302）の中の、ActionPath毎に正常時の遷移画面ID、エラー時の遷移画面IDを図１３に示すようにドキュメント中間ファイルXML（1301）のタグ毎に設定を行い出力する。出力結果を図１５に示す。
【００２３】
ステップ1110では、ステップ1105で特定した対象モジュールを元に、画面ID、入出力項目ID、タグ種別、サイズ、最大サイズを図１６に示すようにソースコード中間ファイルXML（1601）のタグ毎に設定を行い出力する。出力結果を図１８に示す。
【００２４】
ステップ1111では、ステップ1107で特定した対象モジュールを元に画面ID毎に、項目ID、正常時の遷移画面ID、エラー時の遷移画面IDを図１７に示すようにそれぞれのXMLのタグ毎に設定を行い出力する。出力結果を図１８に示す。画面遷移のモジュールについては、図１６に示すように、一般に画面毎に定義するのではなく、特定の単位（１取引単位や複数取引で構成される１サービス単位等）で定義されるため、ステップ1111では、対象の画面IDに対して、一旦処理が完了した画面IDの対象モジュールについては、処理を行わない。
【００２５】
ステップ1112では、図２０に示すように、ステップ1108から1111で出力されたXML（2001,2002,2003,2004）を差異について判断し、差分（2005）のみを出力する。
【００２６】
ステップ1113では、構成管理一覧（203）がすべて処理実施済みかを確認する。実施済みの場合、ステップ1114にフローが遷移する。未済の場合は、ステップ1101に遷移する。
【００２７】
ステップ1114では、すべての処理を終了する。
【産業上の利用可能性】
【００２８】
本発明は、取引の仲介を、コンピュータを用いて実現することが可能になる。
【図面の簡単な説明】
【００２９】
【図１】システム構成図。
【図２】機能構成図。
【図３】画面入出力定義書サンプル。
【図４】イベント設計書サンプル。
【図５】構成一覧サンプル。
【図６】ソースコード（画面項目構成）サンプル。
【図７】ソースコード（遷移情報）サンプル。
【図８】ドキュメント中間ファイルＸＭＬサンプル。
【図９】ソースコード中間ファイルＸＭＬサンプル。
【図１０】項目整合性抽出結果サンプル。
【図１１】項目整合性抽出結果作成までのフロー図。
【図１２】画面入出力定義書からドキュメント中間ファイルＸＭＬ作成マッピング概要。
【図１３】イベント定義書からドキュメント中間ファイルＸＭＬ作成マッピング概要。
【図１４】ドキュメント中間ファイルＸＭＬ（画面項目構成情報）サンプル。
【図１５】ドキュメント中間ファイルＸＭＬ（画面遷移情報）サンプル。
【図１６】ソースコード（画面項目構成）からソースコード中間ファイルＸＭＬ作成マッピング概要。
【図１７】ソースコード（画面遷移情報）からソースコード中間ファイルＸＭＬ作成マッピング概要。
【図１８】ソースコード中間ファイルＸＭＬ（画面項目構成情報）サンプル。
【図１９】ソースコード中間ファイルＸＭＬ（画面遷移情報）サンプル。
【図２０】ドキュメント中間ファイルＸＭＬとソースコード中間ファイルＸＭＬとの差分情報出力概要。
【符号の説明】
【００３０】
201…画面設計書、202…ソースコード、203…データ項目整合性抽出ツール、204…構成一覧、205…ドキュメント中間ファイルＸＭＬ、206…ソースコード中間ファイルＸＭＬ、207…項目整合性抽出結果。
【図１】
2009129038.tif 000003
【図２】
2009129038.tif 000004
【図３】
2009129038.tif 000005
【図４】
2009129038.tif 000006
【図５】
2009129038.tif 000007
【図６】
2009129038.tif 000008
【図７】
2009129038.tif 000009
【図８】
2009129038.tif 000010
【図９】
2009129038.tif 000011
【図１０】
2009129038.tif 000012
【図１１】
2009129038.tif 000013
【図１２】
2009129038.tif 000014
【図１３】
2009129038.tif 000015
【図１４】
2009129038.tif 000016
【図１５】
2009129038.tif 000017
【図１６】
2009129038.tif 000018
【図１７】
2009129038.tif 000019
【図１８】
2009129038.tif 000020
【図１９】
2009129038.tif 000021
【図２０】
2009129038.tif 000022