(57)【特許請求の範囲】
【請求項１】
設計書間の関係に基づいて、設計書の変更の影響を受けた他設計書の修正対応状況を特定するソフトウェア開発支援装置であって、
前記設計書上の位置と設計項目を対応付けて保持する手段と、
前記設計項目同士の関連を保持する手段と、
前記保持する手段に保持された設計項目の１つに対する指示を受け付ける手段と、
指示された前記設計項目について、前記保持する手段に保持された関連を用いて、当該設計項目に関連する設計項目を特定し、特定された設計項目からさらに前記関連を用いて連鎖的に、指示された前記設計項目に対する影響波及範囲を、設計項目間の関連の列である経路として取得する手段とを備え、
前記取得する手段は、前記設計書について、変更があった場合、当該変更の前後の経路をそれぞれ算出し、さらに、前記変更の前後の経路を比較する手段と、比較の結果として差異の生じた経路の更新状況を特定する手段と、前記更新状況に基づいて、前記設計書の変更を受けた他設計書の修正対応状況を判断する手段とを備えることを特徴とするソフトウェア開発支援装置。
【請求項２】
請求項１に記載のソフトウェア開発支援装置において、
さらに、前記更新状況について時系列で記録する手段を備えることを特徴とするソフトウェア開発支援装置。
【請求項３】
請求項１または２のいずれかに記載のソフトウェア開発支援装置において、
さらに、
監視対象となる経路を特定する手段と、
前記特定された監視対象となる経路に関係する設計書に対し、第三者が行った変更を取得して、当該経路への影響を把握する手段とを備えることを特徴とするソフトウェア開発支援装置。
【請求項４】
請求項３に記載のソフトウェア開発支援装置において、
さらに、
前記監視対象の経路の状況に応じて、当該ソフトウェア開発支援装置を利用するユーザに対する問合せを発信する手段と、
当該問合せに対する前記ユーザの回答を受付け、前記監視対象の経路の状況を更新する手段を備えることを特徴とするソフトウェア開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務システム等におけるソフトウェア開発を支援するための技術に関する。その中でも特に、設計書の変更の影響波及を把握するための技術に関する。
【背景技術】
【０００２】
ソフトウェア開発、特に、業務システムのような大規模なソフトウェア開発では、多数の設計書を作成する。設計書間には複雑な依存関係が存在するため、１つの設計書の変更は、複数の設計書に影響波及する。当該変更に対し、設計者は、他の設計書への影響波及を含む設計書修正作業の進捗状況を監視する必要がある。
一般に、ソフトウェア開発において、成果物と成果物の関係の追跡情報を保持し、影響波及範囲の把握やチェックに用いることを、トレーサビリティ管理と呼ぶ。
【０００３】
このトレーサビリティ管理に関係する技術の例として、特許文献１及び特許文献２を示す。
特許文献１では、要件・機能から、仕様書・ソースコードを追跡するための管理テーブルを利用し、修正対象と修正状況を含む修正報告書を自動生成することで、仕様書間、および、仕様書〜ソースコード間の関連を保ちつつ、過不足なく修正作業を進める。
特許文献２では、細粒度の設計要素単位で設計成果物間の関係を管理し、設計要素に対する追加・削除・変更を監視・検知して、関係者へ通知する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２６６９３４号公報
【特許文献２】特開２００７−１７２２２３号項
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記の特許文献に記載された技術では、変更対象の設計書の修正に対し、影響波及する他設計書の修正が完了した判断を機械的に行うことができない。
また、変更対象の設計書を修正した時点（もしくは直前）で影響波及する他設計書のみが監視対象となる。変更対象の設計書を修正した後に第三者が実施した他設計書への追加・削除・変更の影響を考慮できない。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明では、設計項目位置と設計項目間関連を用いて、修正すべき設計項目の設計項目位置を起点として、設計項目間関連が示す依存先について、次々と特定することで連鎖的にその波及範囲を特定するものである。この際、経路についても併せて特定してもよい。より具体的には、設計書フォーマット定義情報として、設計項目位置と設計項目間関連を定義しておき、設計項目位置と設計項目間関連を用いて、影響波及の追跡経路を定期的に算出しておく。特定の設計項目位置に変化があった場合、影響波及範囲の設計書の修正状況を、追跡経路の変化を元に判定する。
【発明の効果】
【０００７】
本発明によれば、従来に比較して設計書変更の影響波及の特定を、容易かつ正確に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態におけるソフトウェア構成例を示すブロック図。
【図２】本発明の一実施形態におけるハードウェア構成例を示すブロック図。
【図３】本発明の一実施形態で用いられる設計書(設計書格納部)の例。
【図４】本発明の一実施形態で用いられる設計書フォーマット定義(設計書フォーマット定義格納部)の例。
【図５】本発明の一実施形態で用いられる設計情報格納部の例。
【図６】本発明の一実施形態で用いられるトレース経路格納部の例。
【図７】本発明の一実施形態で用いられるトレース経路解析結果格納部の例。
【図８】本発明の一実施形態における設計情報抽出部の処理フローの例。
【図９】本発明の一実施形態におけるトレース経路取得部の処理フローの例。
【図１０】本発明の一実施形態におけるトレース経路解析部の処理フローの例。
【図１１】本発明の一実施形態におけるトレース経路の概念図(修正前)の例。
【図１２】本発明の一実施形態におけるトレース経路の概念図(修正後１)の例。
【図１３】本発明の一実施形態におけるトレース経路の概念図(修正後２)の例。
【図１４】本発明の一実施形態におけるトレーサビリティ管理支援ツールの画面(設計書変更)の例。
【発明を実施するための形態】
【０００９】
以下、本発明の一実施形態を、図面を参照しながら詳細に説明する。
図１は、本実施形態の処理を行うシステムでのソフトウェア構成の例を示すブロック図である。
ソフトウェア開発支援装置１０１(システム)のユーザは、作成した設計書を任意のタイミングで設計書格納部１１１に格納する。ここで、当該設計書は、設計書の種別ごとの定義された設計書フォーマットに従い、当該設計書フォーマット定義は、設計書フォーマット定義格納部１１２に保持される。
設計情報抽出部１２１は、設計書フォーマット定義格納部１１２に格納された設計書フォーマット定義を用い、設計書格納部１１１に格納された設計書から設計情報を任意の体ミグで抽出し、設計情報格納部１１３に格納する。
トレース経路取得部は、設計情報（１１３）と、設計書フォーマット定義（１１２）を用い、トレース経路を生成し、トレース経路格納部に任意のタイミングで格納する。
トレース経路解析部は、格納のタイミングが異なるトレース経路（１１４）間の差異を検出し、設計情報に変更が発生したものと見做し、当該設計情報をトレース基点とする監視を開始する。監視の過程で、設計者への通知や応答依頼が発生した場合は、トレース経路解析結果通知格納部１１６に通知情報を格納する。本実施形態では、トレース経路解析結果通知格納部１１６が、一時的にデータを保存するデータベースやファイルである想定とするが、電子メールや図１４に示すようなユーザインタフェースへの直接通知の手段を取ってもよい。
【００１０】
図２は、本実施形態のシステムにおけるハードウェア構成の例を示すブロック図である。つまり、図１で示したソフトウェアに従って本ハードウェアで演算することで、後述する各種処理を実行する。
ソフトウェア開発支援環境２０１は、ＣＰＵ２０２、メモリ２０３、外部記憶装置２０４、表示装置２０５、入力装置２０６、外部媒体入出力装置２０７、および、ネットワーク通信装置２０８、等を備える計算機に搭載する。
ＣＰＵ２０２は、メモリ２０３に記憶されたプログラムを実行することによって、各種処理を実行する。メモリ２０３は、ＣＰＵ２０２のワークエリアとして機能し、プログラム及びプログラムの実行に必要なデータを記憶する。
ここで、プログラムとは、具体的には、ソフトウェア開発支援環境１０１の要素処理である、設計情報抽出部１２１、トレース経路取得部１２２、トレース経路解析部１２３に該当する。
また、データとは、具体的には、設計書格納部１１１、設計書フォーマット定義格納部１１２、設計情報格納部１１３、トレース経路格納部１１４、トレース経路解析結果格納部１１５、および、トレース経路解析結果通知格納部１１６、に格納する各情報に該当する。
【００１１】
外部記憶装置２０４は、例えば、ハードディスク装置等、各種データを永続的に格納する装置である。ここで、メモリ２０３に記憶するデータを外部記憶装置２０４に格納してもよいし、あるいは、外部記憶装置２０４に格納したデータをメモリ２０３に記憶してもよい。また、各プログラムは、予めメモリ２０３または外部記憶装置２０４に格納しても良いし、必要に応じて、利用可能な媒体を介して、他の装置からメモリ２０３または外部記憶装置２０４に導入してもよい。媒体とは、例えば、外部媒体入出力装置２０７に着脱可能な記憶媒体、または、ネットワーク通信装置２０８を指す。
表示装置２０５は、ディスプレイ等、プログラムの処理結果等を表示するユーザインタフェースである。
入力装置２０６は、キーボード及びマウス等、処理の実行指示、及び、処理に必要な情報の入力するためのユーザインタフェースである。
【００１２】
外部媒体入出力装置２０７は、外部媒体入出力装置２０７に着脱可能で可搬性のある外部媒体と、メモリ２０３や外部記憶装置２０４に格納されているデータの入出力を行う。
ネットワーク通信装置２０８は、有線／無線にて外部との情報伝達を可能とする外部インタフェースである。
【００１３】
図３は、本実施形態で扱う設計書の例（コード一覧表３０１、コード仕様書３０２）である。
コード一覧表３０１は、単一のテーブルを持つフォーマットであり、項番３１１、コード名３１２、コードＩＤ３１３、説明３１４、等を列として持つ。また、設計書種別名をヘッダ部３２１に持つ。なお、本実施形態では、「単一」のテーブルとしたが、上述の各種データを登録できればよい。
【００１４】
コード仕様書３０２は、２つのテーブルを持つフォーマットであり、上段のテーブル（左列がヘッダ）は、コード名３２１、コードＩＤを行として持ち、下段のテーブル（上行がヘッダ）は、項番３３１、コード値３３２、意味３３３、説明３３４、等を列として持つ。また、設計書種別名をヘッダ部３２２に持つ。
【００１５】
ここで、設計書フォーマットには、上記のようなテーブルの他に、単一の文字列、マトリクス形式の表、ツリー形式の表、図形を組み合せたツリーやグラフ、等を構成要素として採り得るものとする。
【００１６】
図４は、図３に挙げた設計書のフォーマットを定義した「設計書フォーマット定義」４０１である。ここでは、コード一覧表３０１を対象としており、対象４１１、設計項目４１２、設計項目リンク４１３により、設計書フォーマットを定義している。
対象４１１は、設計書の種別を一意に表す名称として、設計書種別名４２１を持ち、本例では「コード一覧表」が記載される。
【００１７】
設計項目４１２は、設計書フォーマット上の設計項目の一覧を表すテーブルであり、当該テーブルは、設計項目の名称である設計項目４３１、当該設計項目の記載位置（基点）を示す位置４３２、設計項目４３１や位置４３２を構成するパタンを示す構成パタン４３３、等を持つ。
【００１８】
設計項目リンク４１３は、当該設計書フォーマット定義の対象である設計書（本例ではコード一覧表）とトレーサビリティにおけるリンクを持つ設計書（本例ではコード仕様書）を定義するテーブルであり、リンク元の設計項目４４１（設計項目４１２の設計項目４３１のいずれか）、リンク先の設計書種別４４２、リンク先の設計項目４４３、リンクの成立を判断するルール４４４、等を持つ。ここで、ルールには、リンク元設計項目４４１の値Ａと、リンク先設計項目４４３の値Ｂに対し、リンクが成立する条件（「一致」Ａ＝Ｂ、「不一致」Ａ≠Ｂ、「大きい」Ａ＞Ｂ、「小さい」Ａ＜Ｂ、等）を示す
図５は、設計情報抽出部１２１が生成し、設計情報格納部１１３に格納する設計情報を、テーブル形式で表現した例である５１１。本例では、図４の設計項目４３１に対応する設計項目５０１、図４の位置４３２に対応する位置５０２、当該設計書の位置５０２から取得可能な文字列である値５０３、等を持つ。
【００１９】
図６は、トレース経路取得部１２２が生成し、トレース経路格納部１１４に格納するトレース経路を、テーブル形式で表現した例である６１１。本例では、トレース経路を一意に特定する経路ＩＤ６０１、トレース経路を構成する設計書／設計項目（本例では「a1」「b１」「c1」…で略記）のリストである経路６０２、当該経路を取得した日時である日時６０３、等を持つ。
【００２０】
図７は、トレース経路解析部１２３が生成し、トレース経路解析結果格納部１１５に格納するトレース経路解析結果を、テーブル形式で表現した例である７１１。本実施形態では、図６の経路ＩＤに対応する経路ＩＤ７０１、図６の経路６０２と日時６０３に対応し、経路の差異を検出した前後を示す経路（１）７０２、日時（１）７０３、経路（２）７０４、日時（２）７０５、当該経路の開始状況を示すステータス７０６、等を持つ。
ここで、管理の履歴の相当する経路（Ｎ）、日時（Ｎ）は、複数セット持つことが可能である。また、ステータスは、当該監視対象のトレース経路７０１の監視状況を示し、例えば、日時（１）と日時（Ｎ：最新）における経路が同じ場合は「不変」、差異がある場合は「差異」、一度経路に差異が生じた後に元に戻った場合は「復旧」、差異に対してユーザ向けにトレース経路解析結果通知格納部１１６経由で確認中の場合は「確認中」、同確認に対して回答を取得済みの場合は「回答あり」、等とする。
【００２１】
図８は、設計情報抽出部の処理フローである。
まず、システムは、設計情報格納部１１１から、設計書を取得する（８０１）。
次に、システムは、設計書フォーマット定義格納部１１２から、前ステップで取得した設計書に該当する設計書フォーマット定義４０１を取得する（８０２）。ここでは、設計書フォーマット定義格納部４０１の設計書種別名４２１と、設計書の設計書名３２１、３２２を突合する。
【００２２】
次に、システムは、前ステップで取得した設計書フォーマット定義の設計項目４１２の定義を用い、設計書から、設計情報格納部に格納する設計情報の設計項目５０１、位置５０２、値５０３を取得する（８０３）。
なお、本処理は、設計情報格納部１２１を軸に、設計書フォーマット定義格納部１１２を検索してもよく、逆に、設計書フォーマット定義格納部１１２を軸に、設計情報格納部１２１を検索してもよい。
【００２３】
図９は、トレース経路取得部の処理フローである。
まず、システムは、設計書フォーマット定義格納部１１２から、設計書フォーマット定義４０１を選択する（９０１）。
【００２４】
次に、システムは、設計情報格納部１１３から、前ステップで取得した設計書フォーマット定義に該当する設計情報を取得する（９０２）。
【００２５】
次に、システムは、前ステップで取得した設計情報から、設計書フォーマット定義の設計項目リンク４１３のリンク元設計項目４４１に該当する行を取得する（９０３）。
次に、システムは、前ステップで取得した設計情報の行（設計項目５０１、値５０２）をリンク元とし、設計項目リンク４１３のリンク先設計書種別４４２、リンク先設計項目４４３に該当する設計情報を、設計情報格納部から検索する（９０４）。
【００２６】
次に、システムは、前ステップの検索でヒットしたリンク先設計情報の値５０２と、リンク元設計情報の値５０２に対し、設計書フォーマット定義のルール４４４が成立する場合、リンクが成立したと判断する（９０５）。
【００２７】
次に、システムは、前ステップで成立したリンクに対し、経路ID６０１を採番し、トレース経路６０２に、リンク元設計情報とリンク先設計情報を加える。（９０６）
ステップまでを、新たなリンク先がヒットしなくなるまで繰返し、トレース経路６０２を作成し、作成した日時６０３を保存する（９０７）。
なお、本処理は、設計情報格納部１２１を軸に、設計書フォーマット定義格納部１１２を検索してもよく、逆に、設計書フォーマット定義格納部１１２を軸に、設計情報格納部１２１を検索してもいい。
【００２８】
図１０は、本実施形態におけるトレース経路解析部の処理フローである。
まず、システムは、監視対象のトレース経路を、トレース経路解析結果７１１の経路ID７０１、経路（前）７０２、日時（前）７０３に格納する（１００１）。
次に、システムは、任意のタイミングで、監視対象のトレース経路を更新し、トレース経路解析結果７１１の経路（後）７０４、日時（後）７０５に格納する（１００２）。
【００２９】
次に、システムは、監視対象のトレース経路の変化状況から、トレース経路解析結果７１１のステータス７０６を更新する（１００３）。
ここで、ステップ１００３で、ユーザ確認が必要と定められた変化状況の場合、トレース経路解析結果通知格納部１１６に通知情報を出力する（１００４）。
また、ステップ１００３で、通知回答待ちと定められた現状ステータスの場合、トレース経路解析結果通知格納部１１６から通知回答を取得し、通知回答に基づいてステータスを更新する（１００４）。
【００３０】
図１１は、トレース経路格納部１１４に格納されたトレース経路の概念説明図である。ここでは、設計書種別Ａ〜Ｄがあり、a1、b1、…は、設計書の単位を示す。設計書の単位を繋ぐ矢印線は、トレース経路６０２と同様に、設計書フォーマット定義に設計項目リンク４１３の記載があり、かつ、リンク元４４１とリンク先４４３の設計項目の値が、ルール４４４を満たしていることを示す。ここでは、（１）a1⇒b1⇒c1⇒d1、（２）a1⇒b1⇒c1⇒d2、（３）a1⇒b1⇒c3⇒d3、（４）a1⇒b3、の計４本のトレース経路が成立している。
【００３１】
図１２は、図１１に対して、a1に該当する設計書／設計項目の監視において、a1の変更により、トレース経路が変化したケースの概念説明図である。ここでは、a1の変更で、設計書／設計項目b1へのリンクがb2に変わっている（前述トレース経路1、2、3に該当）。
図１１の状態から図１２の状態への変化は、トレース経路解析結果格納部１１５より監視可能であり、以後の監査の継続により、トレース経路解析結果のステータス７０６を機械的に更新することができる。
【００３２】
図１３は、図１１に対して、監視対象であるa1以外の設計書／設計項目b4が追加／修正されたことにより、監視開始後に新たな経路a1⇒b4⇒c2が生じたケースの概念説明図である。図１１の状態から図１２の状態への変化は、トレース経路解析結果格納部１１５より監視可能である。a1の監視において、当該経路の新規発生は、他設計書にも影響する可能性があるため、システムは、ユーザへの通知を、トレース経路解析結果通知格納部１１６を介して行う。
【００３３】
図１４は、本実施形態での、設計書変更への対応状況監視を支援するソフトウェア開発支援環境の画面例である。トレース起点１４１１は、トレース経路解析結果格納部１１５の経路７０２のトレース起点（図７ではa1）に相当し、ユーザが任意の手段を用いて指定してもよく、また、システムが、設計情報格納部１１３に格納された設計情報の変化、もしくは、トレース経路格納部１１４に格納されたトレース経路の変化を検知して機械的に指定してもよい。ステータス１４１２は、トレース経路解析結果格納部１１５のステータス７０６に対応する。詳細１４１３は、ユーザが、トレース起点１４１１の監視状況の詳細を確認するための操作トリガであり、設計情報格納部１１３に格納した設計情報、トレース経路格納部１１４に格納したトレース経路、トレース経路解析結果格納部１１５に格納したトレース経路解析結果、トレース経路解析結果通知格納部１１６に格納したトレース経路解析結果通知を、それぞれ任意の形式で参照するユーザインタフェースを呼び出す。回答１４１４は、詳細１４１３と同様に、ユーザが、トレース経路解析結果通知格納部１１６に格納したトレース経路解析結果通知を介し、警告に対する応答・指示を行うための操作トリガである。
【符号の説明】
【００３４】
１０１  ソフトウェア開発支援装置
１１１  設計書格納部
１１２  設計書フォーマット定義格納部
１１３  設計情報格納部
１１４  トレース経路格納部
１１５  トレース経路解析結果格納部
１１６  トレース経路解析結果通知格納部
１２１  設計情報処理部
１２２  トレース経路取得部
１２３  トレース経路解析部
【図１】
0006482997.tif 000002
【図２】
0006482997.tif 000003
【図３】
0006482997.tif 000004
【図４】
0006482997.tif 000005
【図５】
0006482997.tif 000006
【図６】
0006482997.tif 000007
【図７】
0006482997.tif 000008
【図８】
0006482997.tif 000009
【図９】
0006482997.tif 000010
【図１０】
0006482997.tif 000011
【図１１】
0006482997.tif 000012
【図１２】
0006482997.tif 000013
【図１３】
0006482997.tif 000014
【図１４】
0006482997.tif 000015