(57)【要約】      （修正有）【課題】ソフトウェア開発の効率を向上させることができるソフトウェア成果物管理システム、方法及びそのプログラムを提供する。【解決手段】コンピュータは、ソフトウェアの振舞を実現するための複数のエレメントと、各エレメントのうち少なくとも一つのエレメントをパラメータとして含むタスクからなる動的成果物と、該タスクのパラメータと各データとの関連を表すリンク情報とを概念体系リポジトリ14に記憶し、概念体系リポジトリ14に記憶されたエレメントの内容が情報入力部12によって変更されると、該エレメントと関連付けられたパラメータを含むタスクを、リンク情報に基づき概念体系リポジトリ14から抽出する。【選択図】図１
2009104290.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理システムであって、
前記コンピュータは、
情報入力手段と、
ソフトウェアの振舞を実現するための複数のデータと、各データのうち少なくとも一つのデータをパラメータとして含むタスクからなるソフトウェア成果物と、該タスクのパラメータと各データとの関連を表すリンク情報とを記憶する記憶手段と、
記憶手段に記憶された前記データの内容が情報入力手段によって変更されると、該データと関連付けられたパラメータを含むタスクを、リンク情報に基づき記憶手段から抽出する特定手段とを備える
ことを特徴とするソフトウェア成果物管理システム。
【請求項２】
前記コンピュータは、
前記特定手段によって抽出されたタスクを含むソフトウェア成果物を表示する表示手段を備える
ことを特徴とする請求項１記載のソフトウェア成果物管理システム。
【請求項３】
前記表示手段は、
ソフトウェア成果物を表示するときに、抽出されたタスクに対応する箇所を他のタスクに対応する箇所よりも際立たせて表示させる
ことを特徴とする請求項２記載のソフトウェア成果物管理システム。
【請求項４】
ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理方法であって、
前記コンピュータは、
ソフトウェアの振舞を実現するための複数のデータと、各データのうち少なくとも一つのデータをパラメータとして含むタスクからなるソフトウェア成果物と、該タスクのパラメータと各データとの関連を表すリンク情報とを所定の記憶部に記憶し、
記憶部に記憶された前記データの内容が所定の情報入力部によって変更されると、該データと関連付けられたパラメータを含むタスクを、リンク情報に基づき記憶部から抽出する
ことを特徴とするソフトウェア成果物管理方法。
【請求項５】
前記コンピュータは、
抽出されたタスクを含むソフトウェア成果物を所定の表示部に表示させる
ことを特徴とする請求項４記載のソフトウェア成果物管理方法。
【請求項６】
前記コンピュータは、
ソフトウェア成果物を表示するときに抽出されたタスクに対応する箇所を他のタスクに対応する箇所よりも際立たせて表示させる
ことを特徴とする請求項５記載のソフトウェア成果物管理方法。
【請求項７】
請求項４乃至６何れか１項記載の方法をコンピュータに実行させるためのソフトウェア成果物作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発において作成されたソフトウェア成果物に含まれる内容の変更に基づく他のソフトウェア成果物の影響箇所を、コンピュータを用いて特定するソフトウェア成果物管理システム、方法及びそのプログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発においては、ソースコードだけでなく、ユーザ要求や簡略化したソフトウェア動作のフロー、ソースコードを作成するための設計書等のドキュメント（以下、上流成果物と称する。）がソフトウェア成果物として作成される。これらの上流成果物は、ソフトウェア開発時に開発者の理解を助け、ユーザ要求を満たすソフトウェアを開発するために重要なものである。しかし、ソフトウェア開発時や運用時において機能変更が発生したために、既に作成されたソフトウェア成果物を変更した場合には、ソフトウェアの保有する機能を正確に反映しなければならず、変更されたソフトウェア成果物に関連する他のソフトウェア成果物も変更する必要が生じる。この場合、ソフトウェア成果物の数が多くなるに従って、関連するソフトウェア成果物の特定及びそのソフトウェア成果物における変更箇所の特定が困難になるという問題点があった。そのため、これまで種々の特定方法が検討されている。
【０００３】
ところで、ソフトウェア成果物には、開発するソフトウェアの振舞を規定するための動的情報（タスク）が表現された動的成果物と、ソフトウェアがその振舞を実行するために必要なデータ情報が規定された静的成果物とが存在する。しかし、従来技術では、静的成果物を変更した場合において、変更の影響を受ける動的成果物及びその影響箇所を特定することが困難である。
【０００４】
例えば、非特許文献１に記載されたＵＭＬ（Unified Modeling Language）ツールでは、作成した各ソフトウェア成果物を機能毎に電子フォルダに保存することが可能であるため、関連する他のソフトウェア成果物を把握することが可能である。しかし、これによって特定できるのは、変更の影響を受けるソフトウェア成果物のみであり、その成果物の記載内容のうちどの箇所が影響を受けるかについては特定することが困難である。
【０００５】
また、非特許文献２では、変更により影響を受けるソフトウェア成果物及びその影響箇所まで特定可能であるが、対象とするソフトウェア成果物が画面遷移図とstruts-config.xmlのみに限定されており、ソフトウェア開発時に作成される多種の動的成果物に対応することが困難である。
【０００６】
さらに、非特許文献３では、非特許文献２と同様に、変更により影響を受けるソフトウェア成果物及びその影響箇所まで特定可能であるが、特定の対象となるソフトウェア成果物がソースコードのみであり、ユーザ要求や設計書等の上流成果物については特定することが困難である。
【０００７】
さらにまた、非特許文献４では、ユーザ要求や設計書等の上流成果物と、ソースコード等の下流成果物とを特定対象とした、ソフトウェア成果物及びその影響箇所の特定方法を提案しているが、どのように各ソフトウェア成果物間を関連付けるかについては、具体的に述べられていない。
【０００８】
また、非特許文献５では、ＵＣ記述やシーケンス図等のように、ソフトウェアの機能動作を表す動的成果物間の変更箇所の特定が可能であるが、用語集やクラス図等のように、ソフトウェアの機能が取り扱うデータを表す静的成果物が変更された場合には、この変更の影響を受ける動的成果物及びその影響箇所を特定することが困難である。
【非特許文献１】“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には、ＲＯＭ等の記憶装置が設けられており、制御部15は、記憶装置に記憶されたプログラムを実行することにより各モジュール11〜14の制御を行う。
【００２４】
また、成果物描画画面20は、作成または特定対象の動的成果物を描画するための動的成果物描画部21と、作成または変更対象の静的成果物を表示するための静的成果物描画部22とから構成されており、動的成果物の作成や、静的成果物にて定義されたデータの選択及び変更を、情報入力部12を用いて行うことができるようになっている。また、動的成果物描画部21には、作成された動的成果物を成果物リポジトリ13に登録するための登録指示部（図示省略）が設けられており、情報入力部12を用いて登録を指示することができるようになっている。さらに、成果物描画画面20には、作成・変更対象の動的成果物または静的成果物を、情報入力部12を用いて選択するための成果物選択部（図示省略）が設けられている。
【００２５】
＜動的成果物タスクの形式化＞
動的成果物には、ソフトウェアが実現する機能に対する振舞が複数のタスクのフローとして記述されている。この一つのタスク30は、入力主体31、出力主体32、動作33、入力パラメータ34及び出力パラメータ35の５つの要素からなるものとして表現される。タスクを自然言語で表現した場合、入力主体31、出力主体32、動作33、各パラメータ34,35は、主語、間接目的語、述語、目的語にそれぞれ対応する。例えば、図３に示すように、「オペレータがＯＬＴ（Optical Line Terminal）情報を端末に入力する」というタスクの入力主体31は「オペレータ」、出力主体32は「端末」、動作33は「入力する」、入力パラメータ34は「ＯＬＴ情報」となる。また、ＵＭＬにおけるシーケンス図のメッセージからタスクを表現する場合には、タスク30は図４のように示される。なお、図３及び図４のように表現された構造をタスク構造と称し、動的成果物描画部21にて作成された動的成果物に含まれるタスクやメッセージは、タスク構造に変換されてから概念体系リポジトリ14に記憶される。
【００２６】
＜静的成果物の形式化＞
静的成果物には、ソフトウェアが実現する機能において利用される複数のデータ情報（パラメータ40）が記述されている。即ち、動的成果物に含まれるタスク30の各パラメータ34,35は、静的成果物に含まれるパラメータ40の内容に基づき設定される。各パラメータ40は、図５に示すように、セット41、エレメント42、リレーション43の３つの要素からなるものとして表現される。例えば、静的成果物の一例としてクラス図を表現する場合には、図６に示すようにクラス名がパラメータ40a,40bのセット41a,41bに、クラスの属性がエレメント42a,42b,42cに、クラス間の関連がリレーション43にそれぞれ対応する。また、「クラス１」というセット41aには、クラス１の属性即ち「属性１」というエレメント42a及び「属性２」というエレメント42bが接続されており、「クラス２」というセット41bには、クラス２の属性即ち「属性３」というエレメント42cが接続されている。さらに、「クラス１」というセット41aと「クラス２」というセット41bは、互いに「関連」というリレーション43で接続されている。このように表現された構造をパラメータ構造と称し、静的成果物に含まれる各パラメータは、パラメータ構造に変換された状態で概念体系リポジトリ14に記憶される。この場合、静的成果物に含まれる全てのパラメータを形式化して記憶しておくことにより、例えば自然言語、ＵＭＬ、独自図形等のように様々な形態で表された静的成果物を共通に取り扱うことが可能となる。
【００２７】
＜成果物ルール＞
ソフトウェア開発で作成されるソフトウェア成果物は、最初に概要的なものから作成され、開発工程が進むにつれて詳細化されたものが作成される。動的成果物では、最初にＵＣ（Use Case）のような最も抽象的なソフトウェア成果物が作成され、工程が進むにつれてアクティビティ図やシーケンス図等のソフトウェア成果物が作成されることにより、ソフトウェアの機能が詳細化される。静的成果物も同様に、最初に用語集が作成され、工程が進むにつれてデータ分析モデル（クラス図）やテーブル設計図等の成果物が作成されることにより、パラメータが詳細化されていく。動的成果物を作成する際には、静的成果物に記述されたパラメータが用いられるが、一つの動的成果物を作成するのに必要な静的成果物の数は、数種類に限定することができる。例えば、ＵＣを作成する場合において、ＵＣのタスクを表すのに必要なパラメータが記述されているのは用語集であり、シーケンス図を作成する場合において、シーケンス図のメッセージを表すのに必要なパラメータが記述されているのはクラス図である。このように、ある動的成果物を作成するときに用いられる静的成果物を図７に示すように予め対応付けておくことにより、動的成果物を作成する際には、それに含まれるタスクを構成可能なパラメータを容易に取得することが可能になる。この対応付けを表す成果物制約情報（以下、成果物ルールと称する。）は、図７のように構成され、概念体系リポジトリ14に記憶されている。なお、本実施形態では、一つの成果物ルールを用いたものを示しているが、静的成果物と動的成果物の対応関係毎に複数の情報として記憶するようにしてもよい。
【００２８】
＜リポジトリ＞
成果物リポジトリ13には、開発者が作成した動的成果物及び静的成果物が記憶されている。また、概念体系リポジトリ14には、動的成果物に対応するタスク構造と静的成果物に対応するパラメータ構造とが記憶されている。即ち、概念体系リポジトリ14には、ソフトウェアの振舞を実現するための複数のパラメータが抽出可能な状態で記憶されている。また、概念体系リポジトリ14には、タスク構造の各パラメータ34,35がパラメータ構造のどのエレメント42に対応しているかを表すリンク情報50が記憶されている。
【００２９】
なお、上記のように動的成果物の内容をタスク構造に、静的成果物の内容をパラメータ構造に一意に変換可能であることから、タスク構造及びパラメータ構造を概念体系リポジトリ14に予め記憶しなくてもよく、成果物リポジトリ13に記憶された動的及び静的成果物に対して任意に変換処理を行うようにしてもよい。また、これとは逆に、動的及び静的成果物を成果物リポジトリ13に予め記憶しなくてもよく、概念体系リポジトリ14に記憶されたタスク構造及びパラメータ構造に対して任意に変換処理を行って各成果物を生成するようにしてもよい。
【００３０】
＜成果物作成＞
開発者は、成果物描画画面20の成果物選択部において、作成しようとする動的成果物を選択する。このとき、制御部15は、概念体系リポジトリ14に記憶された成果物ルールに基づき、作成対象の動的成果物のタスクを構成可能なパラメータを含む静的成果物を成果物リポジトリ13から取得するとともに、その静的成果物に対応するパラメータ構造を概念体系リポジトリ14から取得する。この場合、取得された静的成果物は、成果物描画画面20の静的成果物描画部22に表示される。
【００３１】
次に開発者は、動的成果物描画部21にて動的成果物を作成する。ここで、動的成果物にパラメータを記述する場合には、静的成果物描画部22に表示された静的成果物のパラメータを選択した後に動的成果物描画部21に表示された動的成果物のパラメータ挿入箇所を選択することにより、パラメータが動的成果物に追加される。なお、本実施形態では、既存のＧＵＩ機能を用いて、静的成果物描画部22に表示されたパラメータにポインタを移動させてマウスをクリックした後に、動的成果物描画部21に表示された動的成果物のパラメータ挿入箇所をクリックすることにより、パラメータを動的成果物に記述することが可能である。
【００３２】
このとき、選択されたパラメータ構造のエレメント42と、タスク構造に追加されたパラメータ34,35との間にリンク情報50が制御部15により生成され、リンク情報50が概念体系リポジトリ14に記憶される。
【００３３】
なお、動的成果物を作成する際に必要なパラメータが静的成果物描画部22に表示されていない場合には、開発者は、静的成果物描画部22にて新たなパラメータを作成することが可能である。この場合、制御部15は、概念体系リポジトリ14から取得したパラメータとは異なるパラメータが情報入力部12によって入力されると、入力されたパラメータを静的成果物描画部22に表示させる。このようにして、作成されたパラメータを、上記のように動的成果物に含まれるタスク30のパラメータ34,35として追加することが可能となる。
【００３４】
以上の操作を繰り返すことにより、必要とする動的成果物を作成する。
【００３５】
＜成果物登録＞
動的成果物作成後、開発者は、成果物描画画面20の登録指示部において動的成果物の登録を指示する。このとき、制御部15は、作成した動的成果物を成果物リポジトリ13に記憶するとともに、動的成果物をタスク構造に変換して該タスク構造を概念体系リポジトリ14に記憶する。なお、静的成果物にパラメータが追加された場合には、制御部15は、追加されたパラメータを含む静的成果物を成果物リポジトリ13に記憶するとともに、静的成果物をパラメータ構造に変換して該パラメータ構造を概念体系リポジトリ14に記憶する。この場合、動的成果物と静的成果物との関係は図８のように表される。即ち、図８（ａ）に示された動的成果物の一部のタスクをタスク構造で表したものが図８（ｂ）であり、図８（ｄ）の静的成果物をパラメータ構造で表したものが図８（ｃ）である。ここで、図８（ｄ）の静的成果物に記述された「aaa」というデータに対応するエレメント（図中一点鎖線で囲まれたもの）と図８（ｂ）の一部のタスク30（図中二点鎖線で囲まれたもの）のパラメータとがリンク情報50により関連付けられている。また、リンク情報50により関連付けられたパラメータを含むタスク30は、図８（ａ）のタスクまたはメッセージ（図中破線で囲まれた部分）に対応している。このように、動的成果物の所定のタスクまたはメッセージが、タスク構造、パラメータ構造及びリンク情報を介して静的成果物のデータと関連付けられている。
【００３６】
＜変更成果物・変更箇所の特定＞
上記の成果物登録が行われたことを前提として、登録された動的成果物の一部の変更に基づいて変更を要する他の動的成果物及びその影響箇所を特定する方法について図９のフロー図を参照して説明する。
【００３７】
まず、開発者が指定した成果物を取得し、成果物描画画面20に表示する（ステップS1）。具体的には、開発者が、成果物描画画面20の成果物選択部において変更しようとする静的成果物を指定すると、制御部15は、指定された静的成果物を成果物リポジトリ13から取得するとともに、パラメータ構造を概念体系リポジトリ14から取得する。さらに、制御部15は、成果物リポジトリ13から取得した静的成果物を成果物描画画面20の静的成果物描画部22に表示する。そして、開発者は、静的成果物描画部22において静的成果物の修正を行う。
【００３８】
次に、開発者によって修正された静的成果物の修正箇所に対応するエレメントを概念体系リポジトリ14に記憶されたパラメータ構造を用いて特定する（ステップS2）。具体的には、開発者が、成果物描画画面20の静的成果物描画部22において静的成果物のエレメントを修正すると、制御部15は、修正されたエレメントを、既存のＧＵＩ機能を用いて特定する。
【００３９】
次いで、特定されたエレメントに関連するタスク構造のパラメータをリンク情報50に基づき特定する（ステップS3）。具体的には、制御部15は、特定されたエレメントとの間でリンク情報50によって関連付けられたパラメータ（以下、関連パラメータと称する。）を含むタスクを概念体系リポジトリ14から抽出する。この場合、制御部15は、抽出されたタスクを、影響箇所として特定する。
【００４０】
そして、関連パラメータを含む動的成果物を成果物リポジトリ13から取得して成果物描画画面20に表示するとともに、関連パラメータに対応する箇所をハイライト表示する（ステップS4）。具体的には、制御部15は、ステップS3において抽出されたタスクを含む動的成果物を成果物リポジトリ13から取得して、該動的成果物を動的成果物描画部21に表示する。このとき、制御部15は、動的成果物描画部21に表示された動的成果物において関連パラメータに対応する箇所をハイライト表示させることにより、他のタスクに対応する箇所よりも際立たせて表示する。
【実施例１】
【００４１】
まず、動的成果物としてのシーケンス図を、静的成果物としてのクラス図を用いて作成する場合の動作について説明する。なお、動的成果物を作成する際には、図７の成果物ルールが用いられる。
【００４２】
開発者は、成果物描画画面20の成果物選択部にて、シーケンス図を選択する。このとき制御部15は、概念体系リポジトリ14に記憶された成果物ルールに基づき、シーケンス図のタスク（メッセージ）を構成可能なパラメータを有するクラス図を成果物リポジトリ13から取得する。そして、取得されたクラス図は、成果物描画画面20の静的成果物描画部22に表示される。なお、クラス図の一例を図１０に示す。
【００４３】
次に開発者は、動的成果物描画部21にてシーケンス図を作成する。なお、本例では、図１１に示すシーケンス図が作成されている。この場合、成果物描画画面20の態様は、図１２のように示される。なお、図１０のシーケンス図には、「=getOltid()」というメッセージに必要なパラメータが存在しないので、開発者は、静的成果物描画部22に表示されたクラス図のパラメータを選択することによってメッセージに必要なパラメータを追加する。具体的には、開発者は、ＧＵＩ機能を用いて、静的成果物描画部22に表示されたパラメータにポインタを移動させてマウスをクリックした後に、動的成果物描画部21に表示された動的成果物のパラメータ挿入箇所をクリックすることにより、パラメータを動的成果物に記述する。
【００４４】
このパラメータ追加例を、図１３を参照して説明する。例えば、「=getOltid()」というメッセージの入力パラメータとして、クラス図に記述されている「Port」というクラスの「portNum」という属性を設定する場合には、開発者は、まず静的成果物描画部22にて「portNum」が表示されている箇所（図中一点鎖線で囲まれた部分）をクリックした後に、動的成果物描画部21の「=getOltid()」というメッセージの「()」の箇所で再度クリックする。このとき、「()」の内部（図中破線で囲まれた部分）に「portNum」という属性が設定される。
【００４５】
なお、上記の操作が行われたときのタスク構造とパラメータ構造の関係を図１４に示す。図１４（ａ）に示されたタスク60は、「Register」という入力主体61と、「Port」という出力主体62と、「getOltid」という動作63と、「portNum」という入力パラメータ64と、「-」という出力パラメータ65から構成されている。また、図１４（ｂ）に示されたパラメータ70aは、「Port」というセット71aと、「Portnum」というエレメント72aとから構成されており、パラメータ70bは、「OLT」というセット71bと、「olt-id」というエレメント72bと、「oltname」というエレメント72cから構成されている。さらに、各パラメータ70a,70bは、「Port」というリレーション73によって接続されている。さらにまた、「portNum」という入力パラメータ64は、「portNum」というエレメント72cに基づき設定されていることから、これらの間にはリンク情報80が生成されている。
【００４６】
なお、開発者が成果物の登録を登録指示部にて指示すると、制御部15は、図１４のタスク構造、パラメータ情報及びリンク情報を概念体系リポジトリ14に登録する。また、シーケンス図とクラス図は、制御部15により成果物リポジトリ13に登録される。この場合、シーケンス図とクラス図との関係は図１５のように表される。即ち、図１５（ａ）に示されたシーケンス図をタスク構造で表したものが図１５（ｂ）であり、図１５（ｄ）のクラス図をパラメータ構造で表したものが図１５（ｃ）である。ここで、図１５（ｄ）のクラス図に記述された「portNum」という属性に対応するエレメント72aと図８（ｂ）のタスク60の入力パラメータ64とがリンク情報80により関連付けられている。
【００４７】
上記の成果物登録が行われたことを前提として、登録された静的成果物の変更により影響を受ける動的成果物及びその影響箇所を特定する場合の動作について図１６を参照して説明する。
【００４８】
[手順１]
開発者が、成果物描画画面20の成果物選択部においてクラス図を指定すると、制御部15は、クラス図を成果物リポジトリ13から取得するとともに、クラス図に対応するパラメータ構造を概念体系リポジトリ14から取得する。さらに、制御部15は、成果物リポジトリ13から取得したクラス図を成果物描画画面20の静的成果物描画部22に表示する。そして、開発者は、情報入力部12を用いてクラス図の修正を行う。本例では、図１６（ｄ）のクラス図において、「Port」というクラスの「portNum」という属性（図中一点鎖線で囲まれた部分）を変更する。
【００４９】
[手順２]
開発者が、成果物描画画面20の静的成果物描画部22において「Port」というクラスの「portNum」という属性を変更すると、制御部15は、クラス図の修正箇所に対応するエレメントを概念体系リポジトリ14に記憶されたパラメータ構造を用いて特定する。この場合、制御部15は、クラス図の修正箇所をＧＵＩ機能を用いて特定し、その箇所に対応するエレメントをパラメータ構造から特定する。本例では、図１６（ｃ）のパラメータ構造において、「portNum」というエレメント72aが特定される。
【００５０】
[手順３]
制御部15は、「portNum」というエレメント72aに関連するタスク構造のパラメータをリンク情報80に基づき特定する。具体的には、制御部15は、エレメント72aとの間でリンク情報80によって関連付けられた関連パラメータを含むタスクを概念体系リポジトリ14から抽出する。本例では、図１６（ｂ）のタスク構造において、「portNum」という入力パラメータ64が関連パラメータとなり、この入力パラメータ64を含むタスク60が抽出される。
【００５１】
[手順４]
制御部15は、関連パラメータを含むシーケンス図を成果物リポジトリ13から取得して成果物描画画面20に表示するとともに、関連パラメータに対応する箇所をハイライト表示する。具体的には、制御部15は、手順３において抽出されたタスクを含むシーケンス図を成果物リポジトリ13から取得して、該シーケンス図を動的成果物描画部21に表示する。このとき、制御部15は、動的成果物描画部21に表示されたシーケンス図において関連パラメータに対応する箇所をハイライト表示させることにより、他のタスクに対応する箇所よりも際立たせて表示する。本例では、図１６（ａ）のシーケンス図において、抽出されたタスクに対応する部分（図中破線で囲まれた部分）がハイライト表示される。
【００５２】
このようにして、ソフトウェアの振舞を実現するためのデータ、即ちクラス図の属性の内容が情報入力部12によって変更されると、該属性に対応するエレメント72aと関連付けられたパラメータ64を含むタスク60が、リンク情報80に基づき概念体系リポジトリ14から抽出されることから、クラス図の属性の内容を変更するだけで、該属性と関連するタスク64を容易に特定することが可能となる。
【００５３】
前述したように上記実施形態では、静的成果物のデータを変更するだけで、該データと関連するタスクを容易に特定することができるので、静的成果物の変更により影響を受けるタスクを影響箇所として特定するとともに、該タスクからなる動的成果物を、変更の影響を受けるソフトウェア成果物として特定することができる。従って、ソフトウェア成果物の変更作業の効率化を図ることができるとともにソフトウェア成果物の品質を向上させることができることから、ソフトウェア開発の効率を大幅に向上させることができる。
【００５４】
また、影響箇所として特定されたタスクを含む動的成果物を表示部11に表示させるので、静的成果物の変更により影響を受ける動的成果物を開発者に知らせることができる。
【００５５】
さらに、動的成果物を表示するときに、影響箇所として特定されたタスクに対応する箇所をハイライト表示させるので、静的成果物の変更により影響を受ける箇所を確実に開発者に知らせることができる。
【００５６】
なお、上記の実施形態は本発明の具体例に過ぎず、本発明が上記実施形態のみに限定されることはない。例えば、本発明は、周知のコンピュータに記録媒体もしくは通信回線を介して、前述した作成手順を備えるプログラムをインストールすることによっても実現可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態におけるソフトウェア成果物管理システムの構成を示す図
【図２】成果物描画画面を示す図
【図３】タスクの構成を示す図
【図４】タスクの構成を示す図
【図５】パラメータ構造を示す図
【図６】静的成果物とパラメータ構造の関係を示す図
【図７】成果物ルールの概略を示す図
【図８】動的成果物と静的成果物の関係を示す図
【図９】変更による影響箇所を特定するときの動作を示すフロー図
【図１０】クラス図の一例を示す図
【図１１】シーケンス図の一例を示す図
【図１２】ソフトウェア成果物作成時の成果物描画画面を示す図
【図１３】ソフトウェア成果物作成時の成果物描画画面を示す図
【図１４】タスク構造とパラメータ構造との関係を示す図
【図１５】シーケンス図とクラス図の関係を示す図
【図１６】シーケンス図とクラス図の関係を示す図
【符号の説明】
【００５８】
10…ソフトウェア成果物管理システム、11…表示部、12…情報入力部、13…成果物リポジトリ、14…概念体系リポジトリ、15…制御部、30,60…タスク、34,64…入力パラメータ、35,65…出力パラメータ、40,70a,70b…パラメータ、50,80…リンク情報。
【図１】
2009104290.tif 000003
【図２】
2009104290.tif 000004
【図３】
2009104290.tif 000005
【図４】
2009104290.tif 000006
【図５】
2009104290.tif 000007
【図６】
2009104290.tif 000008
【図７】
2009104290.tif 000009
【図８】
2009104290.tif 000010
【図９】
2009104290.tif 000011
【図１０】
2009104290.tif 000012
【図１１】
2009104290.tif 000013
【図１２】
2009104290.tif 000014
【図１３】
2009104290.tif 000015
【図１４】
2009104290.tif 000016
【図１５】
2009104290.tif 000017
【図１６】
2009104290.tif 000018