(57)【要約】【課題】ソフトウェア開発の効率を向上させることができるソフトウェア成果物管理システム、方法及びそのプログラムを提供する。【解決手段】コンピュータは、既に作成されたソフトウェア成果物に含まれる情報に基づいて他のソフトウェア成果物に含まれる情報を作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物の情報と、該情報に基づいて作成された他のソフトウェア成果物の情報とを関連付けた状態で成果物リポジトリ13に記憶し、成果物リポジトリ13に記憶されたソフトウェア成果物の情報が情報入力部12によって変更されると、変更された情報に関連付けられた他のソフトウェア成果物の情報を影響箇所として成果物リポジトリ13から抽出し、抽出された影響箇所のうち、情報入力部12によって選択された影響内容に対応する影響箇所のみを表示部11に表示する。【選択図】図１
2009104336.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理システムであって、
前記コンピュータは、
情報入力手段と、
既に作成されたソフトウェア成果物に含まれる情報に基づいて他のソフトウェア成果物に含まれる情報を作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物の情報と、該情報に基づいて作成された他のソフトウェア成果物の情報とを関連付けた状態で記憶する記憶手段と、
記憶手段に記憶されたソフトウェア成果物の情報が情報入力手段によって変更されると、変更された情報に関連付けられた他のソフトウェア成果物の情報を影響箇所として記憶手段から抽出する特定手段と、
特定手段によって抽出された影響箇所のうち、情報入力手段によって選択された内容に対応する影響箇所のみを表示する表示手段とを備える
ことを特徴とするソフトウェア成果物管理システム。
【請求項２】
前記記憶手段は、
ソフトウェアの振舞を実現するためのデータを含む複数の第１のソフトウェア成果物を、各第１のソフトウェア成果物のデータと、該データに基づき作成された他の第１のソフトウェア成果物のデータとを関連付けるとともに、各第１のソフトウェア成果物のデータと、該データを含むタスクからなる第２のソフトウェア成果物の該タスクとを関連付けた状態で記憶し、第２のソフトウェア成果物を、第２のソフトウェア成果物のタスクと、該タスクに基づき作成された他の第２のソフトウェア成果物のタスクとを関連付けた状態で記憶し、
前記特定手段は、
記憶手段に記憶された第１のソフトウェア成果物のデータまたは第２のソフトウェア成果物のタスクが情報入力手段によって変更されると、変更されたデータまたはタスクに関連付けられた第１のソフトウェア成果物のデータ及び第２のソフトウェア成果物のタスクを影響箇所として記憶手段から抽出する
ことを特徴とする請求項１記載のソフトウェア成果物管理システム。
【請求項３】
前記表示手段は、
特定手段によって抽出された影響箇所のうち情報入力手段によって選択された影響箇所を含むソフトウェア成果物を表示するとともに、該ソフトウェア成果物を表示するときに、影響箇所に対応する箇所を他の箇所よりも際立たせて表示する
ことを特徴とする請求項１記載のソフトウェア成果物管理システム。
【請求項４】
ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理方法であって、
前記コンピュータは、
既に作成されたソフトウェア成果物に含まれる情報に基づいて他のソフトウェア成果物に含まれる情報を作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物の情報と、該情報に基づいて作成された他のソフトウェア成果物の情報とを関連付けた状態で所定の記憶部に記憶し、
記憶部に記憶されたソフトウェア成果物の情報が所定の情報入力部によって変更されると、変更された情報に関連付けられた他のソフトウェア成果物の情報を影響箇所として記憶部から抽出し、
抽出された影響箇所のうち、前記情報入力部によって選択された内容に対応する影響箇所のみを所定の表示部に表示する
ことを特徴とするソフトウェア成果物管理方法。
【請求項５】
前記コンピュータは、
ソフトウェアの振舞を実現するためのデータを含む複数の第１のソフトウェア成果物を、各第１のソフトウェア成果物のデータと、該データに基づき作成された他の第１のソフトウェア成果物のデータとを関連付けるとともに、各第１のソフトウェア成果物のデータと、該データを含むタスクからなる第２のソフトウェア成果物の該タスクとを関連付けた状態で前記記憶部に記憶し、第２のソフトウェア成果物を、第２のソフトウェア成果物のタスクと、該タスクに基づき作成された他の第２のソフトウェア成果物のタスクとを関連付けた状態で記憶部に記憶し、
記憶部に記憶された第１のソフトウェア成果物のデータまたは第２のソフトウェア成果物のタスクが前記情報入力部によって変更されると、変更されたデータまたはタスクに関連付けられた第１のソフトウェア成果物のデータ及び第２のソフトウェア成果物のタスクを影響箇所として記憶部から抽出する
ことを特徴とする請求項４記載のソフトウェア成果物管理方法。
【請求項６】
前記コンピュータは、
抽出された影響箇所のうち前記情報入力部によって選択された影響箇所を含むソフトウェア成果物を前記表示部に表示するとともに、該ソフトウェア成果物を表示するときに、影響箇所に対応する箇所を他の箇所よりも際立たせて表示する
ことを特徴とする請求項４記載のソフトウェア成果物管理方法。
【請求項７】
請求項４乃至６何れか１項記載の方法をコンピュータに実行させるためのソフトウェア成果物作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理システム、方法及びそのプログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発においては、ソースコードだけでなく、ユーザ要求や簡略化したソフトウェア動作のフロー、ソースコードを作成するための設計書等のドキュメント（以下、上流成果物と称する。）がソフトウェア成果物として作成される。これらの上流成果物は、ソフトウェア開発時に開発者の理解を助け、ユーザ要求を満たすソフトウェアを開発するために重要なものである。しかし、ソフトウェア開発時や運用時において機能変更が発生したために、既に作成されたソフトウェア成果物を変更した場合には、ソフトウェアの保有する機能を正確に反映しなければならず、変更されたソフトウェア成果物に関連する他のソフトウェア成果物も変更する必要が生じる。この場合、ソフトウェア成果物の数が多くなるに従って、関連するソフトウェア成果物の特定及びそのソフトウェア成果物における変更箇所の特定が困難になるという問題点があった。そのため、これまで種々の特定方法が検討されている。
【０００３】
ところで、ソフトウェア成果物には、開発するソフトウェアの振舞を規定するための動的情報（タスク）が表現された動的成果物と、ソフトウェアがその振舞を実行するために必要なデータ情報が規定された静的成果物とが存在し、ソフトウェア成果物の変更により影響を受ける他のソフトウェア成果物及びその影響箇所を特定する方法が、これまでに提案されている。
【０００４】
例えば、非特許文献１では、ＵＣ記述やシーケンス図等のように、ソフトウェアの機能動作を表す複数の動的成果物間の関係を利用して、動的成果物の変更により影響を受ける他の動的成果物及びその影響箇所を特定することが可能である。
【非特許文献１】井上他「成果物変更における伝播箇所特定方法の提案」、電子情報通信学会総合大会論文集、２００７年３月、５４９頁
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来例では、多数の動的成果物毎に多数のタスクが存在する場合に、タスクの変更により影響を受ける他の動的成果物及びその影響箇所を特定したときには、膨大な量の動的成果物及びそのタスクが影響箇所として単に提示されることから、開発者が影響箇所を閲覧することが困難になり、効率的なソフトウェア開発の妨げになっている。
【０００６】
本発明は前記問題点に鑑みてなされたものであり、その目的とするところは、ソフトウェア開発の効率を向上させることができるソフトウェア成果物管理システム、方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のソフトウェア成果物作成システムは、前記目的を達成するために、ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理システムであって、前記コンピュータは、情報入力手段と、既に作成されたソフトウェア成果物に含まれる情報に基づいて他のソフトウェア成果物に含まれる情報を作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物の情報と、該情報に基づいて作成された他のソフトウェア成果物の情報とを関連付けた状態で記憶する記憶手段と、記憶手段に記憶されたソフトウェア成果物の情報が情報入力手段によって変更されると、変更された情報に関連付けられた他のソフトウェア成果物の情報を影響箇所として記憶手段から抽出する特定手段と、特定手段によって抽出された影響箇所のうち、情報入力手段によって選択された内容に対応する影響箇所のみを表示する表示手段とを備えている。
【０００８】
また、本発明のソフトウェア成果物作成方法は、前記目的を達成するために、ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理方法であって、前記コンピュータは、既に作成されたソフトウェア成果物に含まれる情報に基づいて他のソフトウェア成果物に含まれる情報を作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物の情報と、該情報に基づいて作成された他のソフトウェア成果物の情報とを関連付けた状態で所定の記憶部に記憶し、記憶部に記憶されたソフトウェア成果物の情報が所定の情報入力部によって変更されると、変更された情報に関連付けられた他のソフトウェア成果物の情報を影響箇所として記憶部から抽出し、抽出された影響箇所のうち、前記情報入力部によって選択された内容に対応する影響箇所のみを所定の表示部に表示している。
【０００９】
さらに、本発明のソフトウェア成果物管理プログラムは、前記目的を達成するために、前記ソフトウェア成果物作成方法をコンピュータに実行させる。
【００１０】
これにより、各ソフトウェア成果物に含まれる情報が、該情報に基づいて作成された他のソフトウェア成果物の情報と関連付けられた状態で記憶されていることから、該情報が変更されたときには、変更された情報に関連付けられた他のソフトウェア成果物の情報を全て抽出することが可能となる。この場合、選択された内容に対応する影響箇所のみが表示されることから、開発者は、変更による影響を受けるソフトウェア成果物及びその影響箇所を絞り込んで閲覧することが可能となる。
【発明の効果】
【００１１】
本発明のソフトウェア成果物作成システム、方法及びそのプログラムによれば、変更による影響を受けるソフトウェア成果物及びその影響箇所を絞り込んで閲覧することができるので、ソフトウェア成果物の数が膨大になった場合でも、開発者は、ソフトウェア成果物に含まれる情報の変更により影響を受ける他のソフトウェア成果物及びその影響箇所を漏れなく確認することができる。従って、変更の影響を受ける他のソフトウェア成果物の修正漏れを確実に防止することができるので、ソフトウェア成果物の品質を向上させることができるとともに、ソフトウェア開発の効率を大幅に向上させることができる。
【発明を実施するための最良の形態】
【００１２】
以下に図面を参照して本発明の一実施形態を説明する。
【００１３】
＜前提＞
ソフトウェア成果物には、開発するソフトウェアがその振舞を実現するために必要なデータ情報を規定する第１のソフトウェア成果物としての静的なソフトウェア成果物（以下、静的成果物と称する。）と、開発するソフトウェアの振舞を規定するための動的情報（タスク）を表現した第２のソフトウェア成果物としての動的なソフトウェア成果物（以下、動的成果物と称する。）とが存在し、本実施形態では、あるソフトウェア成果物の内容が変更されたときに影響を受ける動的成果物、静的成果物及びそれらの影響箇所を特定するソフトウェア成果物管理システムについて説明する。
【００１４】
本発明のソフトウェア成果物管理システム10は、周知のＣＰＵを主体として構成されたコンピュータからなり、図１に示すとおり、表示部11、情報入力部12、成果物リポジトリ13、特定結果リポジトリ14及び制御部15から構成されている。
【００１５】
表示部11は、液晶ディスプレイ等のように情報を表示するためのモジュールであり、制御部15の制御により図２、図３及び図４に示すような成果物描画画面20を表示する。
【００１６】
情報入力部12は、キーボードやマウス等のように情報を入力するためのモジュールであり、入力情報を制御部15に送信する。
【００１７】
成果物リポジトリ13は、ソフトウェア開発工程において作成された動的成果物及び静的成果物と、後述のタスク達成構造、パラメータ依存構造及び成果物ルールを保存するモジュールである。
【００１８】
特定結果リポジトリ14は、ソフトウェア成果物の内容が変更されたときに影響を受ける動的成果物、静的成果物の影響箇所を保存するモジュールである。
【００１９】
制御部15は、上記各モジュール11〜14と接続され、各モジュール11〜14間の情報、または各モジュール11〜14間の情報を組合わせた情報を、受け渡すモジュールである。また、制御部15には、ＲＯＭ等の記憶装置が設けられており、制御部15は、記憶装置に記憶されたプログラムを実行することにより各モジュール11〜14の制御を行う。
【００２０】
また、成果物描画画面20は、ソフトウェア成果物の修正・変更時、動的成果物の作成時または静的成果物の作成時のそれぞれに応じた構成で表示部11に表示される。即ち、ソフトウェア成果物の修正・変更時における成果物描画画面20は、図２に示すように、修正・変更対象のソフトウェア成果物を選択するための成果物選択部21と、修正・変更対象のソフトウェア成果物を表示するための描画部22と、修正・変更時に影響を受けるソフトウェア成果物の影響箇所を一覧表示するための特定結果一覧表示部23とから構成されている。
【００２１】
また、動的成果物の作成時における成果物描画画面20は、図３に示すように、成果物選択部21と、作成対象の動的成果物を表示するための動的成果物描画部24と、作成対象の動的成果物の基となる静的成果物を表示するための静的成果物表示部25と、作成対象の動的成果物よりも上流の工程で作成された動的成果物のタスクを表示するためのタスク表示部26とから構成されている。
【００２２】
さらに、静的成果物の作成時における成果物描画画面20は、図４に示すように、成果物選択部21と、作成対象の静的成果物の基となる静的成果物を表示するための参照部27と、作成対象の静的成果物を表示するための静的成果物描画部28とから構成されている。なお、上記のソフトウェア成果物の修正・変更、動的成果物の作成及び静的成果物の作成を、情報入力部12を用いて行うことができるようになっている。また、動的成果物描画部24及び静的成果物描画部28には、作成されたソフトウェア成果物を成果物リポジトリ13に登録するための登録指示部（図示省略）が設けられており、情報入力部12を用いて登録を指示することができるようになっている。
【００２３】
＜動的成果物タスクの形式化＞
動的成果物には、ソフトウェアが実現する機能に対する振舞が複数のタスクのフローとして記述されている。この一つのタスク30は、入力主体31、出力主体32、動作33、入力パラメータ34及び出力パラメータ35の５つの要素からなるものとして表現される。タスクを自然言語で表現した場合、入力主体31、出力主体32、動作33、各パラメータ34,35は、主語、間接目的語、述語、目的語にそれぞれ対応する。例えば、図５に示すように、「オペレータがＯＬＴ（Optical Line Terminal）情報を端末に入力する」というタスクの入力主体31は「オペレータ」、出力主体32は「端末」、動作33は「入力する」、入力パラメータ34は「ＯＬＴ情報」となる。また、ＵＭＬにおけるシーケンス図のメッセージからタスクを表現する場合には、タスク30は図６のように示される。なお、図５及び図６のように表現された構造をタスク構造と称し、動的成果物描画部24にて作成された動的成果物に含まれるタスクやメッセージは、タスク構造に変換されてから成果物リポジトリ13に記憶される。
【００２４】
動的成果物は、表現する機能が同じものであっても、動的成果物に含まれるタスクの詳細度（粒度）がソフトウェア開発工程毎に異なっている。即ち、図７に示すように、上流工程の動的成果物、例えばＵＣ（ユースケース）に含まれるタスク30aの粒度は、下流工程の動的成果物、例えばアクティビティ図に含まれる複数のタスク30b,30c,30dに記載されるタスクの粒度よりも粗くなっている。同様に、アクティビティ図に含まれる各タスク30b,30c,30dの粒度は、その下流工程の動的成果物、例えばシーケンス図に含まれる複数のタスク30e,30f,30g,30hの粒度よりも粗くなっている。また、ＵＣのタスク30aがアクティビティ図の各タスク30b,30c,30dに分解されている場合、ＵＣのタスク30aとアクティビティ図の各タスク30b,30c,30dとの間には、ＵＣのタスク30aがアクティビティ図の各タスク30b,30c,30dの基となったタスクであり、アクティビティ図の各タスク30b,30c,30dがＵＣのタスク30aに基づいて作成されたという関係を有している。本実施形態では、このような関係を表す情報を達成関係40として表現することとし、ＵＣのタスク30aとアクティビティ図の各タスク30b,30c,30dは、達成関係40で結び付けられる。なお、アクティビティ図の各タスク30b,30c,30dと、シーケンス図の各タスク30e,30f,30g,30hについても、上記と同様に達成関係40で結び付けられる。この場合、作成された動的成果物のタスク及び工程毎のタスク間の関係は図７に示すような構造で表現される。なお、この構造をタスク達成構造と呼び、タスク達成構造は成果物リポジトリ13に記憶される。
【００２５】
＜静的成果物の形式化＞
静的成果物には、ソフトウェアの振舞を実現するためのデータ情報（パラメータ）が記述されている。本実施形態では、図８に示すように、該パラメータ50を、セット51、エレメント52、リレーション53の３つの要素からなるものとして表現している。例えば、静的成果物の一例としてクラス図を表現する場合には、図９に示すようにクラス名がパラメータ50a,50b,50cのセット51a,51b,51cに、クラスの属性がエレメント52a〜52eに、クラス間の関連がリレーション53a,53bにそれぞれ対応する。
【００２６】
「Class-A」というセット51aには、Class-Aの属性即ち「attr-a1」というエレメント52a及び「attr-a2」というエレメント52bが接続されており、「Class-B」というセット51bには、Class-Bの属性即ち「attr-b1」というエレメント52cが接続されている。さらに、「Class-C」というセット51cには、Class-Cの属性即ち「attr-c1」というエレメント52d及び「attr-c2」というエレメント52eが接続されている。
【００２７】
また、「Class-A」というセット51aと「Class-B」というセット51bは、互いに「relation」というリレーション53aで接続されており、「Class-A」というセット51aと「Class-C」というセット51cは、互いに「relation」というリレーション53bで接続されている。
【００２８】
このように表現された構造をパラメータ構造と称し、静的成果物に含まれる各パラメータは、パラメータ構造に変換された状態で成果物リポジトリ13に記憶される。この場合、静的成果物に含まれる全てのパラメータを形式化して記憶しておくことにより、例えば自然言語、ＵＭＬ、独自図形等のように様々な形態で表された静的成果物を共通に取り扱うことが可能となる。
【００２９】
なお、リレーション53a,53bは、クラス図作成時において開発者がクラス間の関連線を作成した時点で生成されるようにしてもよいし、クラス図作成後に成果物リポジトリ13に記憶されるときに生成されるようにしてもよい。これにより、リレーション53a,53bが生成されるか否かは、開発者が任意に設定することにより決められる。
【００３０】
静的成果物は、表現するパラメータが同じものであっても、表現される観点がソフトウェア開発工程毎に異なっている。例えば、上流工程の静的成果物に記載されるパラメータは、人間にとって理解し易いという観点に基づき作成されているが、下流工程の静的成果物に記載されるパラメータは、ソフトウェアとして実装する場合の実装の容易さや、ソフトウェア実行時の動作速度といった観点に基づき作成される。但し、表現される観点が異なるとしても、下流工程の静的成果物のパラメータは、上流工程の静的成果物のパラメータを利用する等のように、上流工程の静的成果物のパラメータに基づき作成される。本実施形態では、上流工程の静的成果物のパラメータと、それに基づき作成された下流工程の静的成果物のパラメータとを関連付けた情報を、依存関係として表す。
【００３１】
この依存関係について図１０を参照して説明する。まず、上流工程において作成される静的成果物としての用語集と、用語集作成後の工程において作成される静的成果物としてのデータ分析モデルと、データ分析モデル作成後の工程において作成される静的成果物としてのテーブル設計図とが存在する場合に、用語集、データ分析モデル及びテーブル設計図のそれぞれに対応するパラメータ構造60,61,62が成果物リポジトリ13に記憶されている。ここで、データ分析モデルに対応するパラメータ構造61の一つのパラメータが、用語集に対応するパラメータ構造60の一つのパラメータに基づき作成された場合には、それぞれのパラメータを構成するセット、エレメント及びリレーションが依存関係70によって関連付けられる。また、テーブル設計図に対応するパラメータ構造62の一つのパラメータが、データ分析モデルに対応するパラメータ構造61の一つのパラメータに基づき作成された場合も上記と同様である。このように、各静的成果物のパラメータ間の関係を表したものをパラメータ依存構造と呼ぶこととし、パラメータ依存構造は成果物リポジトリ13に記憶される。
【００３２】
＜成果物ルール＞
ソフトウェア開発で作成されるソフトウェア成果物は、最初に概要的なものから作成され、開発工程が進むにつれて詳細化されたものが作成される。動的成果物では、前述したように、最初にＵＣ（Use Case）のような最も抽象的なソフトウェア成果物が作成され、工程が進むにつれてアクティビティ図やシーケンス図等のソフトウェア成果物が作成されることにより、ソフトウェアの機能が詳細化される。静的成果物も同様に、最初に用語集が作成され、工程が進むにつれてデータ分析モデル（クラス図）やテーブル設計図等の成果物が作成されることにより、パラメータが詳細化されていく。動的成果物を作成する際には、静的成果物に記述されたパラメータが用いられるが、一つの動的成果物を作成するのに必要な静的成果物の数は、数種類に限定することができる。例えば、ＵＣを作成する場合において、ＵＣのタスクを表すのに必要なパラメータが記述されているのは用語集であり、シーケンス図を作成する場合において、シーケンス図のメッセージを表すのに必要なパラメータが記述されているのはテーブル設計図である。このように、ある動的成果物を作成するときに用いられる静的成果物を図１１に示すように予め対応付けておくことにより、動的成果物を作成する際には、それに含まれるタスクを構成可能なパラメータを容易に取得することが可能になる。この対応付けを表す成果物制約情報（以下、成果物ルールと称する。）は、図１１のように構成され、成果物リポジトリ13に記憶されている。なお、本実施形態では、一つの成果物ルールを用いたものを示しているが、静的成果物と動的成果物の対応関係毎に複数の情報として記憶するようにしてもよい。
【００３３】
＜動的成果物の作成＞
この場合、制御部15は、成果物描画画面20を、図３に示すような構成で表示部11に表示させる。開発者は、成果物描画画面20の成果物選択部21において作成しようとする動的成果物を選択する。このとき、制御部15は、成果物リポジトリ13に記憶された成果物ルールに基づき、選択された動的成果物に対応する静的成果物と、該静的成果物に対応するパラメータ構造を成果物リポジトリ13から取得する。この場合、取得された静的成果物は、成果物描画画面20の静的成果物表示部25に表示される。また、制御部15は、成果物選択部21で選択された動的成果物よりも上流の工程で作成された動的成果物のタスクを、成果物リポジトリ13から取得してタスク表示部26に表示させる。なお、動的成果物描画部24に描画される動的成果物の形式は、自然言語や、アクティビティ図及びシーケンス図等のＵＭＬに基づく図であっても構わない。
【００３４】
ここで、開発者は、動的成果物描画部24に表示された動的成果物のタスクの要素と、静的成果物描画部25に表示された静的成果物のパラメータの要素との関連付けを行う。具体的には、開発者が、静的成果物表示部25に表示された静的成果物のパラメータの要素、即ちセット、エレメントまたはリレーションを選択した後に、動的成果物描画部24に表示された動的成果物のタスクのうち、関連付けを行う要素、即ち主体、動作またはパラメータを選択することにより、動的成果物のタスクの要素と、静的成果物描画部25に表示された静的成果物のパラメータの要素とが関連付けられる。なお、本実施形態では、既存のＧＵＩ機能を用いて、静的成果物描画部25に表示されたパラメータの要素にポインタを移動させてマウスをクリックした後に、動的成果物描画部24に表示された動的成果物のうち、関連付けを行うタスクの要素をクリックすることにより、関連付けが行われる。
【００３５】
このとき、制御部15は、選択された静的成果物のパラメータの要素と、それに関連付けられたタスクの要素との間にリンク情報を生成し、該リンク情報を成果物リポジトリ13に記憶する。
【００３６】
次に、開発者は、タスク表示部26に表示された動的成果物のタスクと、動的成果物描画部24に表示された動的成果物のタスクとの関連付けを行う。この関連付けは、開発者が、タスク表示部26に表示された動的成果物のタスクを選択した後に動的成果物描画部24に表示された動的成果物のタスクを選択することにより行われる。本実施形態では、既存のＧＵＩ機能を用いて、タスク表示部26に表示されたタスクにポインタを移動させてマウスをクリックした後に、動的成果物描画部24に表示された動的成果物のタスクをクリックすることにより、それぞれのタスクを関連付けることが可能である。このとき、各タスクには、互いに関連付けられていることを表すタスク間関係情報が制御部15により生成される。
【００３７】
なお、動的成果物の他の作成方法として、出願人が提案した特願２００７−１９８８４５号に記載の技術を用いてもよい。
【００３８】
＜静的成果物の作成＞
この場合、制御部15は、成果物描画画面20を、図４に示すような構成で表示部11に表示させる。開発者は、作成しようとする静的成果物を成果物描画画面20の成果物選択部21にて選択した後に、静的成果物描画部28にて静的成果物を作成する。この場合、作成される静的成果物の形式は、自然言語や、クラス図、テーブル設計図及びオブジェクト図等のＵＭＬに基づく図であっても構わない。このとき、制御部15は、作成される静的成果物をパラメータ構造に変換する。また、制御部15は、成果物選択部21で選択された静的成果物よりも上流の工程で作成された静的成果物を参照部27に表示させる。
【００３９】
次に開発者は、参照部27に表示された静的成果物のパラメータの要素と、静的成果物描画部28に表示された静的成果物のパラメータの要素との関連付けを行う。この関連付けは、開発者が、参照部27に表示された静的成果物のパラメータの要素を選択した後に静的成果物描画部28に表示された静的成果物のパラメータの要素を選択することにより行われる。本実施形態では、上記の動的成果物作成時の場合と同様に、参照部27に表示されたパラメータの要素にポインタを移動させてマウスをクリックした後に、静的成果物描画部28に表示された静的成果物のパラメータの要素をクリックすることにより、それぞれのパラメータの要素を関連付けることが可能である。
【００４０】
このとき、制御部15は、参照部27にて選択されたパラメータの要素、即ちセット、エレメントまたはリレーションと、静的成果物描画部28にて選択されたパラメータの要素、即ちセット、エレメントまたはリレーションとの間に依存関係80を生成する。
【００４１】
以上の操作を繰り返すことにより、必要とする静的成果物を作成する。
【００４２】
＜成果物登録＞
まず、動的成果物の登録について説明する。動的成果物作成後、開発者は、成果物描画画面20の登録指示部において動的成果物の登録を指示する。このとき、制御部15は、作成された動的成果物を成果物リポジトリ13に記憶する。この場合、制御部15は、各タスクの要素情報及びタスク間関係情報に基づいて作成された動的成果物をタスク達成構造に変換し、タスク達成構造を成果物リポジトリ13に記憶する。なお、動的成果物作成時に入力されたタスク間関係情報は、タスク達成構造における達成関係40に変換される。
【００４３】
次に、静的成果物の登録について説明する。静的成果物作成後、開発者は、成果物描画画面20の登録指示部において静的成果物の登録を指示する。このとき、制御部15は、作成した静的成果物を成果物リポジトリ13に記憶する。また、制御部15は、作成した静的成果物に対応するパラメータ構造と、参照部27に表示された静的成果物に対応するパラメータ構造と、それぞれのパラメータ構造間に生成された依存関係80に基づき作成されたパラメータ依存構造を成果物リポジトリ13に記憶する。このようにして、各静的成果物のパラメータ構造に含まれる要素と、該要素に基づいて作成された他の静的成果物のパラメータ構造に含まれる要素とが、互いに関連付けられた状態で成果物リポジトリ13に記憶される。
【００４４】
また、上記と同様に他のソフトウェア成果物を成果物描画画面20にて作成し、登録を行う。なお、ソフトウェア成果物の登録は、全てのソフトウェア成果物を作成してから行っても構わないし、一つのソフトウェア成果物を作成する毎に行っても構わない。
【００４５】
＜変更による影響箇所の特定＞
上記の成果物登録が行われたことを前提として、既に作成され、且つ登録された動的成果物または静的成果物の一部の変更に基づいて変更を要する他のソフトウェア成果物及びその影響箇所を特定する方法について図１２及び図１３を参照して説明する。なお、図１３に示す例では、図７に示した各動的成果物が図１０に示した各静的成果物に基づき作成されている。即ち、ＵＣは用語集に、アクティビティ図はデータ分析モデルに、シーケンス図はテーブル設計図に基づきそれぞれ作成されている。なお、シーケンス図のタスク30fの動作と、テーブル設計図に対応するパラメータ構造62のセット（太線で表されたもの）との間には、リンク情報80が生成されている。
【００４６】
まず、開発者が指定した成果物を取得し、成果物描画画面20に表示する（ステップS1）。具体的には、図２に示す成果物描画画面20が制御部15によって表示された後に、開発者が、成果物描画画面20の成果物選択部21において変更しようとするソフトウェア成果物（動的成果物または静的成果物）を指定すると、制御部15は、指定されたソフトウェア成果物を成果物リポジトリ13から取得するとともに、該ソフトウェア成果物に対応するタスク構造またはパラメータ構造を成果物リポジトリ13から取得する。さらに、制御部15は、成果物リポジトリ13から取得したソフトウェア成果物を成果物描画画面20の描画部22に表示する。そして、開発者は、描画部22において静的成果物の修正を行う。例えば、図１３に示されたソフトウェア成果物のうちテーブル設計図が選択された場合には、テーブル設計図が描画部22に表示され、テーブル設計図に対応するパラメータ構造62が成果物リポジトリ13から取得される。
【００４７】
次に、開発者によって修正された成果物の修正箇所に対応する要素を成果物リポジトリ13に記憶されたタスク達成構造またはパラメータ構造を用いて特定する（ステップS2）。具体的には、開発者が、成果物描画画面20の描画部22においてソフトウェア成果物のタスクまたはパラメータを構成する要素を修正すると、制御部15は、修正された要素を、既存のＧＵＩ機能を用いて特定する。例えば、開発者が、図１３のテーブル設計図の「aaa」という部分（図中太線で囲まれた部分）を修正した場合には、テーブル設計図に対応するパラメータ構造62のうち「aaa」に対応する箇所（本例では、太線で表されたセット）が特定される。
【００４８】
次いで、特定された要素に関連する要素をタスク達成構造、パラメータ依存構造及びリンク情報80を用いて特定する（ステップS3）。具体的には、制御部15は、特定された要素との間で達成関係40または依存関係70によって関連付けられた他のソフトウェア成果物の要素（以下、関連要素と称する。）を成果物リポジトリ13から抽出する。また、制御部15は、特定された要素との間でリンク情報80によって関連付けられたソフトウェア成果物のタスクまたはパラメータの要素を抽出する。この場合、制御部15は、抽出された関連要素を、影響箇所として特定する。
【００４９】
例えば、図１３のデータ分析モデルに対応するパラメータ構造61の各パラメータのうち、ステップS2において特定されたセットとの間で依存関係70によって結ばれたセット（太線で囲まれたもの）が関連要素として抽出される。また、用語集に対応するパラメータ構造60の各パラメータのうち、上記関連要素として抽出されたセットとの間で依存関係70によって結ばれたセット（太線で囲まれたもの）も関連要素として抽出される。さらに、ステップS2において特定されたセットとの間でリンク情報80によって結ばれたタスク30fが関連要素として抽出される。さらにまた、関連要素として抽出されたタスク30fとの間で達成関係40によって結ばれたタスク30a,30bも関連要素として抽出される。
【００５０】
＜影響箇所の登録＞
制御部15は、上記ステップS2において特定された要素と、関連要素とを、影響箇所として特定結果リポジトリ14に記憶する。本実施形態では、影響箇所を「変更」と「伝播」の二つに分類して記憶している。「変更」は、上記ステップS2において特定された要素についての影響内容を記憶するためのものであり、該要素を含むソフトウェア成果物の成果物名及び成果物種別と、該要素の変更内容と、該要素の変更種別とから構成される。ここで、該要素の変更種別とは、追加、削除または更新の何れかを示すものである。
【００５１】
また、「伝播」は、関連要素についての影響内容を記憶するためのものであり、該関連要素を含むソフトウェア成果物の成果物名及び成果物種別と、該関連要素の伝播内容と、該関連要素の伝播種別とから構成されている。ここで、該関連要素の伝播種別とは、動的成果物の変更影響特定機能、即ち達成関係40を用いて特定されたものであるか、または静的成果物の変更影響特定機能、即ち依存関係70を用いて特定されたものであるかを表すものである。
【００５２】
「伝播」という影響箇所に対応する関連要素は、該関連要素を含むソフトウェア成果物と、「変更」という影響箇所に対応する要素を含むソフトウェア成果物との間に存在する達成関係40または依存関係70の数が多くなるのに伴って、図１４に示すように階層が深くなるように保持される。
【００５３】
＜影響箇所の一覧表示＞
制御部15は、特定結果リポジトリ14に記憶された影響箇所を取得し、特定結果一覧表示部23に一覧表示する。本実施形態では、特定結果一覧表示部23に表示される影響箇所の表示態様は、図１４に示したものと同様である。
【００５４】
開発者が、特定結果一覧表示部23に表示される影響箇所のうち「変更１」を選択
すると、制御部15は、「変更１」に対応する影響箇所の成果物名を成果物選択部21に表示し、該影響箇所を含むソフトウェア成果物を描画部22に表示する。このとき、制御部15は、描画部22に表示されたソフトウェア成果物において影響箇所に対応する箇所を、太字等を用いて強調して表示したり、ハイライト表示する等により、他の箇所よりも際立たせて表示する。なお、開発者が特定結果一覧表示部23に表示される影響箇所のうち「伝播１−１」を選択した場合には、制御部15は上記と同様に動作する。また、影響箇所の変更種別が削除である場合には、該影響箇所が描画部22に表示されないことから、制御部15は、該影響箇所に対応する情報が存在しないことを、太字で表した文字情報等を用いて描画部22に明示する。
【００５５】
例えば、図１３のデータ分析モデルが描画部22に表示されたときには、ステップS3において抽出された影響箇所に対応する箇所（図中一点鎖線で囲まれた部分）が、太字を用いて表示またはハイライト表示される。また、用語集が描画部22に表示されたときには、上記と同様に影響箇所に対応する箇所（図中一点鎖線で囲まれた部分）が、太字を用いて表示またはハイライト表示される。さらに、ＵＣ、アクティビティ図またはシーケンス図が描画部22に表示されたときには、影響箇所に対応する箇所（図中破線で囲まれた部分）が、それぞれ太字を用いて表示またはハイライト表示される。
【００５６】
＜影響特定結果の絞り込み＞
制御部15は、特定結果一覧表示部23に表示される影響箇所のうち、情報入力部12によって選択された内容に対応する影響箇所のみを特定結果一覧表示部23に表示する。これにより、影響箇所を上記内容に基づき絞り込むことが可能となる。例えば、「変更」という影響箇所について絞り込みを行う場合には、開発者は、情報入力部12を用いて成果物名、成果物種別、変更内容及び変更種別の少なくとも一つを選択する。このとき、制御部15は、選択された内容に対応する影響箇所のみを特定結果一覧表示部23に表示する。なお、「伝播」という影響箇所について絞り込みを行う場合の動作は、上記と同様である。
【実施例１】
【００５７】
ここでは、図１５に示す「ＯＬＴ登録機能シーケンス図」という動的成果物のタスクの内容を変更したときに、変更により影響を受けるソフトウェア成果物及びその影響箇所を表示する場合の動作について説明する。
【００５８】
開発者は、成果物描画画面20の成果物選択部21にて、ＯＬＴ登録機能シーケンス図を選択する。このとき制御部15は、ＯＬＴ登録機能シーケンス図を成果物リポジトリ13から取得して描画部22に表示させる。この場合、制御部15は、ＯＬＴ登録機能シーケンス図に対応するタスク構造を成果物リポジトリ13から取得する。
【００５９】
次に開発者は、情報入力部12を用いて描画部22に表示されたＯＬＴ登録機能シーケンス図を修正する。本例では、図１６に示すように、「送信する」というメッセージ名を「登録する」というように修正する。このとき、制御部15は、ＯＬＴ登録機能シーケンス図の修正箇所に対応するタスクを、タスク構造を用いて特定する。
【００６０】
また、制御部15は、特定されたタスクに関連する他の動的成果物のタスク及び静的成果物の要素を、タスク達成構造、パラメータ依存構造及びリンク情報80を用いて特定する。ここでは、他の動的成果物の例として図１７（ｂ）に示す「Registerシーケンス図」を用いるとともに、他の静的成果物の例として図１７（ｃ）に示す「設計クラス図」を用いて説明する。なお、図１７（ａ）のＯＬＴ登録機能シーケンス図の「装置情報=登録する（ＯＬＴ情報）」というメッセージに対応するタスクは、図１７（ｂ）のRegisterシーケンス図の「SW-Data=Send(OLT-Data)」というメッセージに対応するタスクと達成関係40によって関連付けられている。また、図１７（ｂ）のRegisterシーケンス図の「Send」というメッセージ名は、図１７（ｃ）の設計クラス図に対応するパラメータ構造の「DBAccess」というセットとリンク情報80によって関連付けられている。
【００６１】
制御部15は、特定された修正箇所（タスク）と達成関係40に基づき、Registerシーケンス図の「SW-Data=Send(OLT-Data)」というメッセージに対応するタスクを関連要素、即ち影響箇所として抽出する。また、制御部15は、Registerシーケンス図の「Send」というメッセージ名とリンク情報80によって関係付けられた、設計クラス図に対応するパラメータ構造の「DBAccess」というセットも影響箇所として抽出する。
【００６２】
制御部15は、上記のように抽出された修正箇所及び影響箇所を特定結果リポジトリ14に記憶する。この場合、図１８に示すように、修正箇所の影響内容が「変更１」として記憶され、修正箇所との間で達成関係40によって関連付けられた影響箇所の影響内容が「伝播１−１」として記憶される。また、修正箇所との間で達成関係40及びリンク情報80を介して関連付けられた影響箇所の影響内容が、「伝播１−１−１」として記憶される。
【００６３】
そして、制御部15は、特定結果リポジトリ14に記憶された影響箇所を取得し、特定結果一覧表示部23に一覧表示する。このときの成果物描画画面20の表示態様は、図１９のように示される。次に、開発者が、特定結果一覧表示部23に表示された影響箇所のうち「変更１」という欄を、情報入力部12を用いて選択すると、制御部15は、図２０に示すように、変更１に対応する修正箇所を含むソフトウェア成果物、即ちＯＬＴ登録機能シーケンス図を描画部22に表示させる。この場合、制御部15は、描画部22に表示されたＯＬＴ登録機能シーケンス図のうち影響箇所に対応する箇所、即ち「登録する」を太字で強調して表示する。
【００６４】
また、開発者が、特定結果一覧表示部23に表示された影響箇所のうち「伝播１−１」という欄を、情報入力部12を用いて選択すると、制御部15は、図２１に示すように、伝播１−１に対応する修正箇所を含むソフトウェア成果物、即ちRegisterシーケンス図を描画部22に表示させる。この場合、制御部15は、描画部22に表示されたRegisterシーケンス図のうち影響箇所に対応する箇所、即ち「Send」を太字で強調して表示する。
【００６５】
さらに、開発者が、特定結果一覧表示部23に表示された影響箇所のうち「伝播１−１−１」という欄を、情報入力部12を用いて選択すると、制御部15は、図２２に示すように、伝播１−１−１に対応する修正箇所を含むソフトウェア成果物、即ち設計クラス図を描画部22に表示させる。この場合、制御部15は、描画部22に表示された設計クラス図のうち影響箇所に対応する箇所、即ち「DBAccess」を太字で強調して表示する。
【００６６】
なお、制御部15は、特定結果一覧表示部23に表示される影響箇所のうち、情報入力部12によって選択された影響内容に対応する影響箇所のみを特定結果一覧表示部23に表示する。例えば、「伝播」という影響箇所の「成果物種別」という影響内容についてシーケンス図が指定されると、制御部15は、図２３に示すように、指定された内容に対応する影響箇所のみを特定結果一覧表示部23に表示する。この場合、指定された成果物種別に対応しない設計クラス図の「伝播１−１−１」という影響箇所は、特定結果一覧表示部23に表示されない。
【００６７】
このようにして、選択された影響内容に対応する影響箇所のみが表示されることから、開発者は、変更による影響を受けるソフトウェア成果物及びその影響箇所を絞り込んで閲覧することが可能となる。
【００６８】
前述したように上記実施形態では、変更による影響を受けるソフトウェア成果物及びその影響箇所を絞り込んで閲覧することができるので、ソフトウェア成果物の数が膨大になった場合でも、開発者は、ソフトウェア成果物に含まれる情報の変更により影響を受ける他のソフトウェア成果物及びその影響箇所を漏れなく確認することができる。従って、変更の影響を受ける他のソフトウェア成果物の修正漏れを確実に防止することができるので、ソフトウェア成果物の品質を向上させることができるとともに、ソフトウェア開発の効率を大幅に向上させることができる。
【００６９】
また、ソフトウェアの振舞を実現するためのデータを含む複数の静的成果物を、各静的成果物のデータと、該データに基づき作成された他の静的成果物のデータとを関連付けるとともに、各第１のソフトウェア成果物のデータと、該データを含むタスクからなる動的成果物の該タスクとを関連付けた状態で成果物リポジトリ13に記憶し、動的成果物を、動的成果物のタスクと、該タスクに基づき作成された他の動的成果物のタスクとを関連付けた状態で成果物リポジトリ13に記憶し、成果物リポジトリ13に記憶された静的成果物のデータまたは動的成果物のタスクが情報入力部12によって変更されると、変更されたデータまたはタスクに関連付けられた静的成果物のデータ及び動的成果物のタスクを影響箇所として成果物リポジトリ13から抽出しているので、様々な種類のソフトウェア成果物に対しても影響箇所を特定することができる。
【００７０】
さらに、抽出された影響箇所のうち情報入力部12によって選択された影響箇所を含むソフトウェア成果物を表示部11に表示するとともに、該ソフトウェア成果物を表示するときに、影響箇所に対応する箇所を他の箇所よりも際立たせて表示するので、ソフトウェア成果物の変更により影響を受ける箇所を確実に開発者に知らせることができる。
【００７１】
なお、上記の実施形態は本発明の具体例に過ぎず、本発明が上記実施形態のみに限定されることはない。例えば、本発明は、周知のコンピュータに記録媒体もしくは通信回線を介して、前述した作成手順を備えるプログラムをインストールすることによっても実現可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態におけるソフトウェア成果物管理システムの構成を示す図
【図２】成果物描画画面を示す図
【図３】成果物描画画面を示す図
【図４】成果物描画画面を示す図
【図５】タスクの構成を示す図
【図６】タスクの構成を示す図
【図７】タスク達成構造を示す図
【図８】パラメータ構造を示す図
【図９】静的成果物とパラメータ構造の関係を示す図
【図１０】パラメータ依存構造を示す図
【図１１】成果物ルールを示す図
【図１２】変更による影響箇所を特定するときの動作を示すフロー図
【図１３】タスク達成構造及びパラメータ依存構造を用いた影響箇所の特定方法の概略をを示す図
【図１４】影響箇所として記憶される影響内容の一例を示す図
【図１５】ソフトウェア成果物変更時の成果物描画画面を示す図
【図１６】ソフトウェア成果物変更時の成果物描画画面を示す図
【図１７】動的成果物と静的成果物の一例を示す図
【図１８】影響箇所として記憶される影響内容の一例を示す図
【図１９】影響箇所一覧表示時の成果物描画画面を示す図
【図２０】影響箇所一覧表示時の成果物描画画面を示す図
【図２１】影響箇所一覧表示時の成果物描画画面を示す図
【図２２】影響箇所一覧表示時の成果物描画画面を示す図
【図２３】影響箇所を絞り込んで表示するときの成果物描画画面を示す図
【符号の説明】
【００７３】
10…ソフトウェア成果物管理システム、11…表示部、12…情報入力部、13…成果物リポジトリ、14…特定リポジトリ、15…制御部、30,30a〜30h…タスク、40…達成関係、50,50a〜50c…パラメータ、51,51a〜51c…セット、52,52a〜52e…エレメント、53,53a,53b…リレーション、70…依存関係、80…リンク情報。
【図１】
2009104336.tif 000003
【図２】
2009104336.tif 000004
【図３】
2009104336.tif 000005
【図４】
2009104336.tif 000006
【図５】
2009104336.tif 000007
【図６】
2009104336.tif 000008
【図７】
2009104336.tif 000009
【図８】
2009104336.tif 000010
【図９】
2009104336.tif 000011
【図１０】
2009104336.tif 000012
【図１１】
2009104336.tif 000013
【図１２】
2009104336.tif 000014
【図１３】
2009104336.tif 000015
【図１４】
2009104336.tif 000016
【図１５】
2009104336.tif 000017
【図１６】
2009104336.tif 000018
【図１７】
2009104336.tif 000019
【図１８】
2009104336.tif 000020
【図１９】
2009104336.tif 000021
【図２０】
2009104336.tif 000022
【図２１】
2009104336.tif 000023
【図２２】
2009104336.tif 000024
【図２３】
2009104336.tif 000025