(57)【要約】【課題】ソフトウェア開発の効率を向上させることができるソフトウェア成果物管理システム、方法及びそのプログラムを提供する。【解決手段】既に作成されたソフトウェア成果物に含まれるタスクに基づいて他のソフトウェア成果物のタスクを作成することにより生成された複数のソフトウェア成果物を成果物リポジトリ13に記憶するとともに、各ソフトウェア成果物のタスクと該タスクに基づいて作成された他のソフトウェア成果物のタスクとを関連付けたタスク達成構造を概念体系リポジトリ14に記憶し、成果物リポジトリ13に記憶されたソフトウェア成果物のタスクの内容が情報入力部12によって変更されると、変更されたタスクと、該タスクに関連する他のソフトウェア成果物のタスクとを概念体系リポジトリ14から抽出する。【選択図】図１
2008210076.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発において作成されたソフトウェア成果物の一部の変更に基づく他のソフトウェア成果物の影響箇所を特定するソフトウェア成果物管理システムであって、
情報入力手段と、
既に作成されたソフトウェア成果物に含まれるタスクに基づいて他のソフトウェア成果物のタスクを作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物のタスクと、該タスクに基づいて作成された他のソフトウェア成果物のタスクとを関連付けた状態で記憶する記憶手段と、
記憶手段に記憶されたソフトウェア成果物のタスクの内容が情報入力手段によって変更されると、変更されたタスクと、該タスクに関連する他のソフトウェア成果物のタスクとを記憶手段から抽出する特定手段とを備えた
ことを特徴とするソフトウェア成果物管理システム。
【請求項２】
前記特定手段によって抽出されたタスクを含む他のソフトウェア成果物を表示する表示手段を備えた
ことを特徴とする請求項１記載のソフトウェア成果物管理システム。
【請求項３】
前記表示手段は、
他のソフトウェア成果物を表示するときに、抽出されたタスクに対応する箇所を他のタスクに対応する箇所よりも際立たせて表示させる
ことを特徴とする請求項２記載のソフトウェア成果物管理システム。
【請求項４】
ソフトウェア開発において作成されたソフトウェア成果物の一部の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータ装置を用いて特定するソフトウェア成果物管理方法であって、
前記コンピュータ装置は、
既に作成されたソフトウェア成果物に含まれるタスクに基づいて他のソフトウェア成果物のタスクを作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物のタスクと、該タスクに基づいて作成された他のソフトウェア成果物のタスクとを関連付けた状態で所定の記憶部に記憶し、
記憶部に記憶されたソフトウェア成果物のタスクの内容が所定の情報入力部によって変更されると、変更されたタスクと、該タスクに関連する他のソフトウェア成果物のタスクとを記憶部から抽出する
ことを特徴とするソフトウェア成果物管理方法。
【請求項５】
前記コンピュータ装置は、
抽出されたタスクを含む他のソフトウェア成果物を所定の表示部に表示させる
ことを特徴とする請求項４記載のソフトウェア成果物管理方法。
【請求項６】
前記コンピュータ装置は、
他のソフトウェア成果物を表示するときに抽出されたタスクに対応する箇所を他のタスクに対応する箇所よりも際立たせて表示させる
ことを特徴とする請求項５記載のソフトウェア成果物管理方法。
【請求項７】
請求項４乃至６何れか１項記載の方法をコンピュータ装置に実行させるためのソフトウェア成果物管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発において作成されたソフトウェア成果物の一部の変更に基づく他のソフトウェア成果物の影響箇所を特定するソフトウェア成果物管理システム、方法及びそのプログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発においては、ソースコードだけでなく、ユーザ要求や簡略化したソフトウェア動作のフロー、ソースコードを作成するための設計書等のドキュメント（以下、上流成果物と称する。）がソフトウェア成果物として作成される。これらの上流成果物は、ソフトウェア開発時に開発者の理解を助け、ユーザ要求を満たすソフトウェアを開発するために重要なものである。しかし、ソフトウェア開発時や運用時において機能変更が発生したために、既に作成されたソフトウェア成果物を変更した場合には、ソフトウェアの保有する機能を正確に反映しなければならず、変更されたソフトウェア成果物に関連する他のソフトウェア成果物も変更する必要が生じる。この場合、ソフトウェア成果物の数が多くなるに従って関連するソフトウェア成果物の特定及びそのソフトウェア成果物における変更箇所の特定が困難になるという問題点があった。そのため、これまで種々の特定方法が検討されている。
【０００３】
例えば、非特許文献１に記載されたＵＭＬ（Unified Modeling Language）ツールでは、作成された各ソフトウェア成果物を機能毎に電子フォルダに保存することが可能であるため、関連する他のソフトウェア成果物を把握することが可能である。しかし、これによって特定できるのは、変更の影響を受けるソフトウェア成果物のみであり、その成果物の記載内容のうちどの箇所が影響を受けるかについては特定することが困難である。
【０００４】
また、非特許文献２では、変更により影響を受けるソフトウェア成果物及びその影響箇所まで特定可能であるが、作成された全てのソフトウェア成果物に対して、各ソフトウェア成果物間の関連情報を予め付与する必要がある。この場合、関連情報は、ソフトウェア成果物の作成作業とは独立して開発者によって付与されることから、開発者の作業が煩雑になる。
【０００５】
さらに、非特許文献３では、非特許文献２と同様に、変更により影響を受けるソフトウェア成果物及びその影響箇所まで特定可能であるが、特定の対象となるソフトウェア成果物がソースコードのみであり、ユーザ要求や設計書等の上流成果物については特定することが困難である。また、非特許文献２と同様に、作成された全てのソフトウェア成果物に対して、開発者が各ソフトウェア成果物間の関連情報を予め付与する必要があることから、開発者の作業が煩雑になる。
【０００６】
さらにまた、非特許文献４では、ユーザ要求や設計書等の上流成果物と、ソースコード等の下流成果物とを特定対象とした、ソフトウェア成果物及びその影響箇所の特定方法を提案しているが、どのように各ソフトウェア成果物間を関連付けるかについては、具体的に述べられていない。
【非特許文献１】“ENTERPRIZE ARCHITECT”、[online]、スパークシステムズジャパン株式会社、[平成１９年２月２１日検索]、インターネット＜URL：http://www.sparxsystems.jp/ea.htm＞
【非特許文献２】大平他「Strutsフレームワークにおけるメタモデルを用いた追跡可能性実現手法の提案」、社団法人情報処理学会  研究報告、２００５年１１月、３３〜４０頁
【非特許文献３】山田他「機能モデルに基づくソフトウェアの変更支援」、電子情報通信学会論文誌Ｄ−２、ｖｏｌ．Ｊ７３−Ｄ−２、Ｎｏ．１０、１９９０年１０月、１７７０〜１７７８頁
【非特許文献４】表他「ＵＭＬモデル間リンクによるシステムevolutionのサポート（２）」、信学技報、ＫＢＳＥ２００４−１、２００４年５月
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のように、従来例では、変更による影響を受けるソフトウェア成果物及びその影響箇所を特定するのに煩雑な処理が必要であることから、効率的なソフトウェア開発の妨げになっている。
【０００８】
本発明は前記問題点に鑑みてなされたものであり、その目的とするところは、ソフトウェア開発の効率を向上させることができるソフトウェア成果物管理システム、方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のソフトウェア成果物管理システムは、前記目的を達成するために、ソフトウェア開発において作成されたソフトウェア成果物の一部の変更に基づく他のソフトウェア成果物の影響箇所を特定するソフトウェア成果物管理システムであって、情報入力手段と、既に作成されたソフトウェア成果物に含まれるタスクに基づいて他のソフトウェア成果物のタスクを作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物のタスクと、該タスクに基づいて作成された他のソフトウェア成果物のタスクとを関連付けた状態で記憶する記憶手段と、記憶手段に記憶されたソフトウェア成果物のタスクの内容が情報入力手段によって変更されると、変更されたタスクと、該タスクに関連する他のソフトウェア成果物のタスクとを記憶手段から抽出する特定手段とを備えている。
【００１０】
また、本発明のソフトウェア成果物管理方法は、前記目的を達成するために、ソフトウェア開発において作成されたソフトウェア成果物の一部の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータ装置を用いて特定するソフトウェア成果物管理方法であって、前記コンピュータ装置は、既に作成されたソフトウェア成果物に含まれるタスクに基づいて他のソフトウェア成果物のタスクを作成することにより生成された複数のソフトウェア成果物を、各ソフトウェア成果物のタスクと、該タスクに基づいて作成された他のソフトウェア成果物のタスクとを関連付けた状態で所定の記憶部に記憶し、記憶部に記憶されたソフトウェア成果物のタスクの内容が所定の情報入力部によって変更されると、変更されたタスクと、該タスクに関連する他のソフトウェア成果物のタスクとを記憶部から抽出している。
【００１１】
さらに、本発明のソフトウェア生成物管理プログラムは、前記目的を達成するために、前記ソフトウェア成果物管理方法をコンピュータ装置に実行させる。
【００１２】
これにより、各ソフトウェア成果物のタスクが、該タスクに基づいて作成された他のソフトウェア成果物のタスクと関連付けられた状態で記憶されていることから、ソフトウェア成果物のタスクの内容が変更されたときには、変更されたタスクに関連付けられた他のソフトウェア成果物のタスクを抽出することが可能となる。
【発明の効果】
【００１３】
本発明のソフトウェア成果物管理システム、方法及びそのプログラムによれば、ソフトウェア成果物のタスクの内容が変更されたときに、変更されたタスクに関連付けられた他のソフトウェア成果物のタスクを抽出することができるので、変更されたソフトウェア成果物及びその変更箇所を容易に特定することができる。従って、ソフトウェア成果物の品質を向上させることができるとともに、ソフトウェア開発の効率を大幅に向上させることができる。
【００１４】
また、既に作成されたソフトウェア成果物に含まれるタスクに基づいて他のソフトウェア成果物のタスクを作成することにより他のソフトウェア成果物が生成されると各ソフトウェア成果物のタスクが互いに関連付けられることから、関連情報の付与作業をソフトウェア成果物の作成作業とともに行うことができ、ソフトウェア開発における開発者の負担を低減することができる。
【発明を実施するための最良の形態】
【００１５】
以下に図面を参照して本発明の一実施形態を説明する。
【００１６】
＜構成＞
ソフトウェア成果物には、開発するソフトウェアの振舞を規定するための動的情報を表現した動的成果物と、開発するソフトウェアがその振舞を実行するために必要なデータ情報を規定する静的成果物とが存在する。本実施形態では、上流成果物の動的成果物の一部の変更に基づく他の動的成果物の影響箇所を特定する成果物管理システムについて説明する。
【００１７】
本発明の成果物管理システム10は、周知のＣＰＵを主体として構成されたコンピュータ装置からなり、図１に示すとおり、表示部11、情報入力部12、成果物リポジトリ13、概念体系リポジトリ14及び制御部15から構成されている。
【００１８】
表示部11は、液晶ディスプレイ等のように情報を表示するためのモジュールであり、制御部15の制御により図２に示すような成果物描画画面20を表示する。
【００１９】
情報入力部12は、キーボードやマウス等のように情報を入力するためのモジュールであり、入力情報を制御部15に送信する。
【００２０】
成果物リポジトリ13は、ソフトウェア開発において作成された動的成果物を保存するモジュールである。
【００２１】
概念体系リポジトリ14は、後述のタスク達成構造を保存するモジュールである。
【００２２】
制御部15は、上記各モジュール11〜14と接続され、各モジュール11〜14間の情報、または各モジュール11〜14間の情報を組合わせた情報を、受け渡すモジュールである。また、制御部15は、図３に示すように情報受付処理部151、成果物描画処理部152、タスク特定処理部153、成果物リポジトリアクセス処理部154、概念体系リポジトリアクセス処理部155及びタスク達成構造バッファ156の各モジュールによって構成されている。
【００２３】
情報受付処理部151は、情報入力部12によって入力された情報を受信するためのモジュールである。
【００２４】
成果物描画処理部152は、成果物描画画面20を描画して表示部11に表示させるためのモジュールである。
【００２５】
タスク特定処理部153は、動的成果物が変更されたときに変更箇所に対応するタスクと、該タスクに関連する他の動的成果物の影響箇所を特定するためのモジュールである。
【００２６】
成果物リポジトリアクセス処理部154は、成果物リポジトリ13に対して動的成果物を記憶及び取得する制御を行うためのモジュールである。
【００２７】
概念体系リポジトリアクセス処理部155は、概念体系リポジトリ14に対してタスク達成構造を記憶及び取得する制御を行うためのモジュールである。
【００２８】
タスク達成構造バッファ156は、概念体系リポジトリアクセス処理部155によって概念体系リポジトリ14から取得されたタスク達成構造を保存するためのモジュールである。なお、各モジュール151〜156は、互いに情報を受け渡すことができるように構成されている。
【００２９】
また、成果物描画画面20は、作成または変更対象の動的成果物を選択するための成果物選択部21と、動的成果物に含まれるタスクの内容を表示するためのタスク表示部22と、作成及び変更された動的成果物を描画するための描画部23とから構成されており、情報入力部12を用いてソフトウェア成果物の選択及び入力ができるようになっている。また、描画部23には、作成された動的成果物を成果物リポジトリ13に記憶するための登録指示部（図示省略）が設けられており、情報入力部12を用いて登録を指示することができるようになっている。
【００３０】
＜動的成果物タスクの形式化＞
動的成果物には、ソフトウェアが実現する機能に対する振舞が複数のタスクのフローとして記述されている。この一つのタスク30は、図４に示すように、入力主体31、出力主体32、動作33、パラメータ34の４つの要素からなるものとして表現される。タスクを自然言語にした場合、入力主体31、出力主体32、動作33、パラメータ34は、主語、間接目的語、述語、目的語にそれぞれ該当するものである。ここで、「オペレータがＯＬＴ（Optical Line Terminal）情報を端末に入力する」というタスクの入力主体31は「オペレータ」、出力主体32は「端末」、動作33は「入力する」、パラメータ34は「ＯＬＴ情報」である。また、ＵＭＬにおけるシーケンス図のメッセージからタスクを表現する場合には、タスク30は図５のように示される。
【００３１】
動的成果物は、表現する機能が同じものであっても、動的成果物に含まれるタスクの詳細度（粒度）がソフトウェア開発工程毎に異なっている。即ち、図６に示すように、上流工程の動的成果物に含まれるタスク30aの粒度は、下流工程の動的成果物に含まれる複数のタスク30b,30c,30dに記載されるタスクの粒度よりも粗くなっている。また、上流工程の動的成果物の一つのタスク30aが下流工程の動的成果物の各タスク30b,30c,30dに分解されている場合、タスク30aと各タスク30b,30c,30dとの間には、タスク30aが各タスク30b,30c,30dの基となったタスクであり、各タスク30b,30c,30dがタスク30aに基づいて作成されたという関係を有している。本実施例では、このような関係を表す情報を「達成関係」40として表現することとし、タスク30aと各タスク30b,30c,30dは、達成関係40で結び付けられる。この場合、作成された動的成果物のタスク及び工程毎のタスク間の関係は図６に示すような構造で表現される。なお、この構造をタスク達成構造と呼び、タスク達成構造は概念体系リポジトリ14に記憶される。
【００３２】
＜成果物作成＞
開発者は、成果物描画画面20の成果物選択部21において作成しようとする動的成果物を選択するとともに、選択した動的成果物のタスクを成果物描画画面20の描画部23において作成する。このとき、制御部15の成果物描画処理部152は、情報受付部151が情報入力部12から受信した入力情報を描画部23に表示する。なお、描画部23に描画される動的成果物の形式は、自然言語及びアクティビティ図やシーケンス図等のＵＭＬに基づく図であっても構わない。
【００３３】
次に、開発者は、上流（または下流）工程の動的成果物を成果物選択部21にて選択する。このとき、制御部15の成果物描画処理部152は、既に作成された動的成果物のタスク（以下、既存タスクと称する。）及び現在作成中のタスク（以下、作成中タスクと称する。）を、タスク表示部22に表示する。開発者は、タスク表示部22にて作成中タスクがどの既存タスクを簡略化（または詳細化）したものであるかを表すタスク間関係情報を入力する。この場合、制御部15の成果物描画処理部152は、情報受付部151が情報入力部12から受信したタスク間関係情報をタスク表示部22に表示する。
【００３４】
＜成果物登録＞
動的成果物作成後、開発者は、成果物描画画面20の登録指示部において動的成果物の登録を指示する。このとき、制御部15の成果物リポジトリアクセス処理部154は、作成された動的成果物を成果物リポジトリ13に記憶する。また、概念体系リポジトリアクセス処理部155は、各タスクの要素情報及びタスク間の達成関係に基づいて作成された成果物をタスク達成構造表現に変換し、タスク達成構造を概念体系リポジトリ14に記憶する。この場合、成果物作成時に入力されたタスク間関係情報は、タスク達成構造表現における達成関係40に変換される。
【００３５】
また、上記と同様に他の成果物を成果物描画画面20にて作成し、登録を行う。なお、動的成果物の登録は全ての動的成果物を作成してから行っても構わないし、一つの動的成果物を作成する毎に行っても構わない。
＜変更成果物・変更箇所の特定＞
上記の成果物登録が行われたことを前提として、登録された動的成果物の一部の変更に基づいて変更を要する他の動的成果物及びその影響箇所を特定する方法について図７のフロー図を参照して説明する。
【００３６】
まず、開発者が指定した動的成果物を取得し、成果物描画画面20に表示する（ステップS1）。具体的には、開発者が、成果物描画画面20の成果物選択部21において変更しようとする動的成果物を指定すると、制御部15の成果物リポジトリアクセス処理部154は、指定された動的成果物を成果物リポジトリ13から取得する。また、概念体系リポジトリアクセス処理部155は、概念体系リポジトリ14からタスク達成構造を取得してタスク達成構造バッファ156に格納する。さらに、成果物描画処理部152は、成果物リポジトリ13によって取得された動的成果物を成果物描画画面20の描画部23に表示する。そして、開発者は、描画部23において動的成果物の修正を行う。
【００３７】
次に、開発者によって修正された動的成果物の修正箇所に対応するタスクを概念体系リポジトリ14に記憶されたタスク達成構造を用いて特定する（ステップS2）。具体的には、開発者が、成果物描画画面20の描画部23において動的成果物のタスク（またはメッセージ）を修正すると、情報受付部151は、タスクを修正する際に入力された情報（例えば、タスク番号やメッセージ番号）を取得する。また、タスク特定処理部153は、前記入力情報に基づいて、タスク達成構造バッファ156のタスク達成構造において修正されたタスクを特定する。
【００３８】
次いで、特定されたタスクに関連するタスクをタスク達成構造に記述された達成関係40に基づいて特定する（ステップS3）。具体的には、タスク特定処理部153は、特定されたタスクとの間で達成関係40によって結び付けられたタスク（以下、関連タスクと称する。）を、タスク達成構造バッファ156のタスク達成構造から抽出することにより、関連タスクを特定する。
【００３９】
そして、関連タスクを含む動的成果物を成果物リポジトリ13から取得して成果物描画画面20に表示するとともに、動的成果物の変更箇所をハイライト表示する（ステップS4）。具体的には、成果物リポジトリアクセス処理部154は、ステップS3において抽出された関連タスクを含む動的成果物を成果物リポジトリ13から取得する。そして、成果物描画処理部152は、取得された動的成果物を描画部23に表示する。このとき、成果物描画処理部152は、描画部23に表示された動的成果物において関連タスクに対応する箇所をハイライト表示させることにより、他のタスクに対応する箇所よりも際立たせて表示する。
【００４０】
なお、上記の実施形態は本発明の具体例に過ぎず、本発明が上記実施形態のみに限定されることはない。例えば、本発明は、周知のコンピュータに記録媒体もしくは通信回線を介して、図３の構成図に示された機能を実現するプログラムあるいは図７のフローに示された手順を備えるプログラムをインストールすることによっても実現可能である。
【実施例１】
【００４１】
以下、一例として、通信装置の制御・管理を行うソフトウェアを適用する。
【００４２】
ソフトウェア開発において作成する動的成果物として、ＵＣ(ユースケース)、中間生成物、ＵＣ記述、概念シーケンス１、概念シーケンス２、設計シーケンス図を想定する。ＵＣ、中間生成物及びＵＣ記述は自然言語で記述され、概念シーケンス１、概念シーケンス２及び設計シーケンス図はＵＭＬのシーケンス図で記述されるものである。作成手順としては、ＵＣ、中間生成物、ＵＣ記述、概念シーケンス１、概念シーケンス２、設計シーケンス図の順で作成される。ＵＣはソフトウェア機能を最も抽象化した動的成果物であり、一つのタスクで構成される。中間生成物は、最終的な成果物として残す必要は無いが、ＵＣとＵＣ記述との関連情報を保持するために必要な動的成果物である。ＵＣ記述は、ＵＣを詳細化した動的成果物であり、複数のタスクから構成されている。概念シーケンス１は、ＵＣ記述を更に詳細化した動的成果物であり、ＵＣ記述と同様に複数のタスクから構成されている。概念シーケンス２は、概念シーケンス１のパラメータを詳細化した動的成果物である。設計シーケンス図は、実装を意識したクラス抽出等を概念シーケンス２を用いて行うことにより、更に詳細化した動的成果物である。
【００４３】
＜成果物作成＞
開発対象のソフトウェアの一例として、通信装置Ａに関する業務を支援する業務サポートシステムＡを取り上げる。
【００４４】
また、業務サポートシステムＡの開発におけるソフトウェア成果物の一例として、装置Ａに関する装置情報を業務サポートシステムＡに設けられたデータベースに登録する機能についての動的成果物を登録・変更する場合について説明する。
【００４５】
最初にＵＣを作成する場合について説明する。開発者は、成果物描画画面20の成果物選択部21においてＵＣを選択するとともに、情報入力部12を用いて主体、動作及びパラメータから構成されたタスクを成果物描画画面20の描画部23に作成する。なお、本例では、図８に示すようなＵＣが描画部23に作成されている。
【００４６】
次に、ＵＣとＵＣ記述との間の中間生成物を作成する場合について説明する。開発者は、成果物描画画面20の成果物選択部21において中間生成物を選択するとともに、ＵＣ作成時と同様にタスクを作成する。本例では、図９に示すように、３つのタスクの並びで表現された中間生成物が描画部23に作成されている。また、この３つのタスクは、ＵＣのタスク１を詳細化したものであり、ＵＣのタスク１との達成関係が一意になることから、３つのタスクとＵＣのタスク１とが自動的に達成関係として結び付けられる。
【００４７】
次にＵＣ記述を作成する場合について説明する。開発者は、成果物描画画面20の成果物選択部21においてＵＣ記述を選択するとともに、タスクを作成する。本例では、図１０に示すように、４つのタスクの並びで表現されたＵＣ記述が描画部23に作成されている。このとき、開発者は、タスク表示部22において中間生成物の各タスクとＵＣ記述の各タスクとの間にタスク間関係情報を入力することにより、中間生成物の各タスクとＵＣ記述の各タスクを関連付ける。この関連付けは、作成されたＵＣ記述の各タスクが中間生成物のどのタスクを実現するために作成されたものであるかを開発者が考慮することによって行われる。また、関連付けと同等の作業はＵＣ記述作成時に開発者が必ず行うものであるため、関連付けは容易に行われる。本例では、ＵＣ記述のタスク１は、中間生成物のタスク１に基づいて作成されたものであり、ＵＣ記述のタスク２及び３は、中間生成物のタスク２に基づいて作成されたものであり、ＵＣ記述のタスク４は、中間生成物のタスク３に基づいて作成されたものである。
【００４８】
なお、中間生成物とＵＣ記述の生成ルールを予め規定することにより、中間生成物の各タスクとＵＣ記述の各タスクとの関連付けを自動化することも可能である。例えば、中間生成物については、最初のタスク（例えば、図９のタスク１）と最後のタスク（例えば、図９のタスク３）とをＵＣを実行するために必要な入出力タスクとして作成し、中間のタスク（例えば、図９のタスク２）を１つのみ作成するという生成ルールを規定する。また、ＵＣ記述については、最初のタスク（例えば、図１０のタスク１）と最後のタスク（例えば、図１０のタスク４）をそれぞれ中間生成物の最初と最後のタスクを詳細化したタスクとして作成し、中間のタスク（例えば、図１０のタスク２及び３）を中間生成物の中間タスクを詳細化したタスクとして作成するという生成ルールを規定する。そして、これらの生成ルールに基づいてタスクを作成することにより、中間生成物の最初、中間及び最後のタスクと、ＵＣ記述の最初、中間及び最後のタスクとを自動的に関連付けることが可能となる。
【００４９】
次に概念シーケンス１を作成する場合について説明する。開発者は、成果物描画画面20の成果物選択部21において概念シーケンス１を選択するとともに、描画部23においてメッセージを作成する。本例では、図１１に示すように、概念シーケンス１がＵＭＬにおけるシーケンス図の形式で表現される。ここで、図１１における１番目、２番目のメッセージ401,402はＵＣ記述タスク１を詳細化したものであり、３番目、４番目、５番目及び６番目のメッセージ403,404,405,406はＵＣ記述タスク２を詳細化したものであり、７番目及び８番目のメッセージ407,408はＵＣ記述タスク３を詳細化したものであり、９番目及び１０番目のメッセージ409,410はＵＣ記述タスク４を詳細化したものである。開発者は、ＵＣ記述作成時と同様に、タスク表示部22に表示されたＵＣ記述タスクと概念シーケンス１の各メッセージとを、ＧＵＩ操作によりタスク間関係情報として関連付ける。なお、タスク間関係情報を関連付けた後のタスク表示部22の例を図１２に示す。
【００５０】
次に概念シーケンス２を作成する場合について説明する。開発者は、成果物描画画面20の成果物選択部21において概念シーケンス２を選択するとともに、描画部23においてメッセージを作成する。本例では、図１３に示すように、概念シーケンス２がＵＭＬにおけるシーケンス図の形式で表現される。ここで、図１３における１〜１０番目のメッセージ501〜510は、それぞれ概念シーケンス１の１〜１０番目のメッセージ401〜410のパラメータを詳細化したものである。開発者は、概念シーケンス１作成時と同様に、タスク表示部22に表示された概念シーケンス１の各メッセージと概念シーケンス２の各メッセージとを、ＧＵＩ操作によりタスク間関係情報として結び付ける。
【００５１】
なお、本例のように、概念シーケンス２の各メッセージ501〜510を、概念シーケンス１の各メッセージ401〜410のパラメータを詳細化したものとして作成するように規定することにより、各メッセージ間のタスク間関係情報を自動的に結び付けることが可能となる。
【００５２】
最後に設計シーケンス図を作成する場合について説明する。開発者は、成果物描画画面20の成果物選択部21において設計シーケンス図を選択するとともに、タスクを作成する。本例では、図１４に示すように、概念シーケンス２がＵＭＬにおけるシーケンス図の形式で表現される。ここで、図１４における１番目のメッセージ601は、概念シーケンス２の２番目のメッセージ502に基づいて作成されたものであり、２番目及び３番目のメッセージ602,603は、概念シーケンス２の３番目のメッセージ503に基づいて作成されたものである。また、４番目のメッセージ604は、概念シーケンス２の４番目のメッセージ504に基づいて作成されたものであり、５番目のメッセージ605は、概念シーケンス２の５番目のメッセージに基づいて作成されたものである。さらに、６番目及び７番目のメッセージ606,607は、概念シーケンス２の６番目のメッセージ506に基づいて作成されたものであり、８番目及び９番目のメッセージ608,609は、概念シーケンス２の７番目のメッセージ507に基づいて作成されたものである。さらにまた、１０番目のメッセージ610は、概念シーケンス２の８番目のメッセージ508に基づいて作成されたものであり、１１番目のメッセージ611は、概念シーケンス２の９番目のメッセージ509に基づいて作成されたものである。開発者は、タスク表示部22に表示された概念シーケンス２の各メッセージと設計シーケンス図の各メッセージとを、ＧＵＩ操作によりタスク間関係情報として結び付ける。
【００５３】
なお、出願人が提案した特願２００６−２９８２２０号に記載の技術を用いた場合には、設計シーケンス図の各メッセージが、該公報の実施形態に記載された生成ルールと概念シーケンス２の各メッセージとに基づいて自動的に作成されることから、メッセージ間の関連付けを自動化することが可能となる。
【００５４】
＜成果物登録＞
描画部23の登録指示部において開発者が登録を指示することにより、成果物リポジトリ13には、ＵＣから設計シーケンス図までの動的成果物が登録されるとともに、概念体系リポジトリ14には、図１５、図１６及び図１７に示すような、ＵＣから設計シーケンス図までのタスク達成構造が登録される。ここで、タスク達成構造の１階層目(Lv1)にはＵＣ51が、２階層目(Lv2)には中間生成物52が、３階層目(Lv3)にはＵＣ記述53が、４階層目(Lv4)には概念シーケンス１-54が、５階層目(Lv5)には概念シーケンス２-55が、６階層目(Lv6)には設計シーケンス図56が表現されている。なお、ＵＣ51のタスク51aは図８のタスク１に対応しており、中間生成物52の各タスク52a〜52cは、それぞれ図９のタスク１〜３に対応している。また、ＵＣ記述53の各タスク53a〜53dは、それぞれ図１０のタスク１〜４に対応しており、概念シーケンス１-54の各タスク54a〜54jは、それぞれ図１１の各メッセージ401〜410に対応している。さらに、概念シーケンス２-55の各タスク55a〜55jは、それぞれ図１３の各メッセージ501〜510に対応しており、設計シーケンス図56の各タスク56a〜56kは、それぞれ図１４の各メッセージ601〜611に対応している。
【００５５】
＜変更成果物・変更箇所の抽出＞
上記の成果物登録が行われたことを前提として、登録された動的成果物の一部の変更に基づいて変更を要する他の動的成果物及びその影響箇所を特定する。本例では、開発者が描画部23において概念シーケンス２の３番目のメッセージ503を修正した場合について説明する。
【００５６】
[手順１]
開発者が、成果物描画画面20の成果物選択部21において概念シーケンス２を指定すると、制御部15の成果物リポジトリアクセス処理部154は、概念シーケンス２を成果物リポジトリ13から取得する。また、概念体系リポジトリアクセス処理部155は、概念体系リポジトリ14からタスク達成構造を取得してタスク達成構造バッファ156に格納する。さらに、成果物描画処理部152は、概念シーケンス２を成果物描画画面20の描画部23に表示する。この場合、描画部23には、図１３の概念シーケンス２が表示される。そして、開発者は、描画部23において概念シーケンス２の３番目のメッセージ503を修正する。
【００５７】
[手順２]
開発者が、成果物描画画面20の描画部23において概念シーケンス２の３番目のメッセージ503を修正すると、情報受付部151は、修正されたメッセージ503のメッセージ番号「３」を取得する。また、タスク特定処理部153は、メッセージ番号に基づいて、タスク達成構造バッファ156のタスク達成構造において修正されたタスクを特定する。この場合、概念シーケンス２はタスク達成構造の５階層目(Lv5)に表現され、３番目のメッセージ503は３番目のタスク55cに対応していることから、３番目のタスク55cが特定される。
【００５８】
[手順３]
タスク特定処理部153は、概念シーケンス２-55の３番目のタスク55cに関連するタスクを、タスク達成構造の達成関係40に基づいて特定する。本例では、図１５、図１６及び図１７に示すように、概念シーケンス２-55より上位の階層に存在する概念シーケンス１-54の３番目のタスク54cと、ＵＣ記述53の２番目のタスク53bと、中間生成物52の２番目のタスク52cと、ＵＣ51のタスク51aと、概念シーケンス２-55より下位の階層に存在する設計シーケンス図56の２番目と３番目のタスク56b,56cとが関連タスクとして特定される。
【００５９】
[手順４]
成果物リポジトリアクセス処理部154は、特定された関連タスクを含む動的成果物を成果物リポジトリ13から取得する。そして、成果物描画処理部152は、取得された動的成果物を描画部23に表示する。このとき、成果物描画処理部152は、描画部23に表示された動的成果物において関連タスクに対応する箇所をハイライト表示させることにより、他のタスクに対応する箇所よりも際立たせて表示する。本例では、ＵＣ51、中間生成物52、ＵＣ記述53、概念シーケンス１-54、設計シーケンス図56が描画部23に表示される。この場合、ＵＣが表示される際には、図１８に示すように、タスク１に対応する箇所（一点鎖線で囲まれた部分）がハイライト表示される。また、中間生成物が表示される際には、図１９に示すように、タスク２に対応する箇所（一点鎖線で囲まれた部分）がハイライト表示される。さらに、ＵＣ記述が表示される際には、図２０に示すように、タスク２に対応する箇所（一点鎖線で囲まれた部分）がハイライト表示される。さらにまた、概念シーケンス１が表示される際には、図２１に示すように、３番目のメッセージ403に対応する箇所（一点鎖線で囲まれた部分）がハイライト表示される。また、設計シーケンス図が表示される際には、図２２に示すように、２番目及び３番目のメッセージ602,603に対応する箇所（一点鎖線で囲まれた部分）がハイライト表示される。
【００６０】
前述したように上記実施形態では、ソフトウェア成果物のタスクの内容が変更されたときに、変更されたタスクに関連付けられた他のソフトウェア成果物のタスクを抽出することができるので、変更されたソフトウェア成果物及びその変更箇所を容易に特定することができる。従って、ソフトウェア成果物の品質を向上させることができるとともに、ソフトウェア開発の効率を大幅に向上させることができる。また、既に作成されたソフトウェア成果物に含まれるタスクに基づいて他のソフトウェア成果物のタスクを作成することにより他のソフトウェア成果物が生成されると各ソフトウェア成果物のタスクが互いに関連付けられることから、関連情報の付与作業をソフトウェア成果物の作成作業とともに行うことができ、ソフトウェア開発における開発者の負担を低減することができる。
【００６１】
また、関連タスクを含む他のソフトウェア成果物を表示部11に表示させるので、ソフトウェア成果物の変更により影響を受ける他のソフトウェア成果物を開発者に知らせることができる。
【００６２】
さらに、他のソフトウェア成果物を表示するときに関連タスクに対応する箇所をハイライト表示させるので、ソフトウェア成果物の変更により影響を受ける箇所を確実に開発者に知らせることができる。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施形態におけるソフトウェア成果物管理システムの構成を示す図
【図２】成果物描画画面を示す図
【図３】制御部の構成を示す図
【図４】タスクの構成を示す図
【図５】タスクの構成を示す図
【図６】タスク達成構造表現を示す図
【図７】変更による影響箇所を特定するときの動作を示すフロー図
【図８】業務サポートシステムＡの装置情報登録機能に関するユースケースを示す図
【図９】業務サポートシステムＡの装置情報登録機能に関する中間生成物を示す図
【図１０】業務サポートシステムＡの装置情報登録機能に関するＵＣ記述を示す図
【図１１】業務サポートシステムＡの装置情報登録機能に関する概念シーケンス１を示す図
【図１２】タスク表示部の表示内容を示す図
【図１３】業務サポートシステムＡの装置情報登録機能に関する概念シーケンス２を示す図
【図１４】業務サポートシステムＡの装置情報登録機能に関する設計シーケンス図を示す図
【図１５】業務サポートシステムＡの装置情報登録機能に関するタスク達成構造表現を示す図
【図１６】業務サポートシステムＡの装置情報登録機能に関するタスク達成構造表現を示す図
【図１７】業務サポートシステムＡの装置情報登録機能に関するタスク達成構造表現を示す図
【図１８】ソフトウェア成果物変更後のユースケースの表示態様を示す図
【図１９】ソフトウェア成果物変更後の中間生成物の表示態様を示す図
【図２０】ソフトウェア成果物変更後のＵＣ記述の表示態様を示す図
【図２１】ソフトウェア成果物変更後の概念シーケンス１の表示態様を示す図
【図２２】ソフトウェア成果物変更後の設計シーケンス図の表示態様を示す図
【符号の説明】
【００６４】
10…ソフトウェア成果物管理システム、11…表示部、12…情報入力部、13…成果物リポジトリ、14…概念体系リポジトリ、51…ＵＣ（ユースケース）、52…中間生成物、53…ＵＣ記述、54…概念シーケンス１、55…概念シーケンス２、56…設計シーケンス図。
【図１】
2008210076.tif 000003
【図２】
2008210076.tif 000004
【図３】
2008210076.tif 000005
【図４】
2008210076.tif 000006
【図５】
2008210076.tif 000007
【図６】
2008210076.tif 000008
【図７】
2008210076.tif 000009
【図８】
2008210076.tif 000010
【図９】
2008210076.tif 000011
【図１０】
2008210076.tif 000012
【図１１】
2008210076.tif 000013
【図１２】
2008210076.tif 000014
【図１３】
2008210076.tif 000015
【図１４】
2008210076.tif 000016
【図１５】
2008210076.tif 000017
【図１６】
2008210076.tif 000018
【図１７】
2008210076.tif 000019
【図１８】
2008210076.tif 000020
【図１９】
2008210076.tif 000021
【図２０】
2008210076.tif 000022
【図２１】
2008210076.tif 000023
【図２２】
2008210076.tif 000024