(57)【要約】【課題】ソフトウェア開発の効率を向上させることができるソフトウェア成果物生成方法及びそのシステムを提供する。【解決手段】タスクの主体、動作及びパラメータのそれぞれを表す概念を抽象的な概念から具体的な概念に展開する階層構造をなす主体概念体系、動作概念体系及びパラメータ概念体系と、各概念体系の概念にそれぞれ対応する主体語彙、動作語彙及びパラメータ語彙と、各概念体系について作成対象のソフトウェア成果物のタスクを構成可能な概念の階層を表す成果物ルールと、成果物ルールに基づいて作成されたソフトウェア成果物と、該ソフトウェア成果物のタスクの主体語彙に応じてシーケンス図及び動作クラス図に用いられるタスクを生成するための生成ルールとを語彙リポジトリ14、概念体系リポジトリ15、生成ルールリポジトリ16に登録し、ソフトウェア成果物生成時にソフトウェア成果物のタスク及び生成ルールに基づいてタスクを生成する。【選択図】図１
2008117081.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発において既に作成されたソフトウェア成果物に含まれるとともに主体語彙、動作語彙及びパラメータ語彙から構成されたタスクに基づいて、次の開発工程で作成されるソフトウェア成果物のタスクをコンピュータ装置を用いて生成することにより、次の開発工程で作成されるソフトウェア成果物を生成するソフトウェア成果物生成方法であって、
前記コンピュータ装置は、
前記タスクの主体、動作及びパラメータのそれぞれを表す概念を抽象的な概念から具体的な概念に展開する階層構造をなす主体概念体系、動作概念体系及びパラメータ概念体系と、各概念体系の概念にそれぞれ対応する主体語彙、動作語彙及びパラメータ語彙と、各概念体系についてソフトウェア成果物のタスクを構成可能な概念の階層を表す成果物制約情報と、成果物制約情報に基づいて抽出された主体語彙、動作語彙及びパラメータ語彙によって構成されたタスクからなるソフトウェア成果物と、ソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成されるソフトウェア成果物のタスクを生成するためのタスク生成情報とを所定の記憶装置に登録し、
ソフトウェア成果物生成時に、前記タスク生成情報に基づいて、記憶装置のソフトウェア成果物のタスクから次の開発工程で作成されるソフトウェア成果物のタスクを生成する
ことを特徴とするソフトウェア成果物生成方法。
【請求項２】
前記コンピュータ装置は、
ソフトウェア成果物生成時に、前記記憶装置に登録されたソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念が前記タスク生成情報内の所定の生成条件に適合する場合に、次の開発工程で作成されるソフトウェア成果物のタスクを生成する
ことを特徴とする請求項１記載のソフトウェア成果物生成方法。
【請求項３】
ソフトウェア開発において既に作成されたソフトウェア成果物に含まれるとともに主体語彙、動作語彙及びパラメータ語彙から構成されたタスクに基づいて、次の開発工程で作成されるソフトウェア成果物のタスクを生成することにより、次の開発工程で作成されるソフトウェア成果物を生成するソフトウェア成果物生成システムであって、
前記タスクの主体、動作及びパラメータのそれぞれを表す概念を抽象的な概念から具体的な概念に展開する階層構造をなす主体概念体系、動作概念体系及びパラメータ概念体系と、各概念体系の概念にそれぞれ対応する主体語彙、動作語彙及びパラメータ語彙と、各概念体系についてソフトウェア成果物のタスクを構成可能な概念の階層を表す成果物制約情報と、成果物制約情報に基づいて抽出された主体語彙、動作語彙及びパラメータ語彙によって構成されたタスクからなるソフトウェア成果物と、ソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成されるソフトウェア成果物のタスクを生成するためのタスク生成情報とを格納する記憶手段と、
ソフトウェア成果物生成時に、前記タスク生成情報に基づいて、記憶手段のソフトウェア成果物のタスクから次の開発工程で作成されるソフトウェア成果物のタスクを生成する生成手段とを備えた
ことを特徴とするソフトウェア成果物生成システム。
【請求項４】
前記生成手段は、
ソフトウェア成果物生成時に、前記記憶装置に登録されたソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念が前記タスク生成情報内の所定の生成条件に適合する場合に、次の開発工程で作成されるソフトウェア成果物のタスクを生成する
ことを特徴とする請求項３記載のソフトウェア成果物生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発において既に作成されたソフトウェア成果物に基づいて、次の開発工程で作成されるソフトウェア成果物を生成する方法及びそのシステムに関する。
【背景技術】
【０００２】
ソフトウェア開発においてシーケンス図やクラス図等のソフトウェア成果物を作成する場合、まずシステムの処理を担う動作クラスと、システムが取り扱うデータの保持を担うデータクラスとを抽出する必要がある。データクラスの抽出は、データ分析モデル等を用いることにより他のソフトウェア成果物の内容を利用することができるため、比較的容易である。また、動作クラス抽出においても上記と同様に、他のソフトウェア成果物から動作クラスを抽出する。しかし、動作クラスの抽出には、どのような場合にどのような動作クラスを抽出するか、といった抽出基準が必要になるが、具体的に明示化された手順がない。従って、実際の動作クラスの抽出は、開発者が経験・知識に基づいて試行錯誤することによって行われる。例えば、既存の抽出方法としては、ユースケース分析法（例えば、非特許文献１参照）や名詞抽出法（例えば、非特許文献２参照）が知られている。
【非特許文献１】Ｉ．ヤコブソン他「オブジェクト指向ソフトウェア工学ＯＯＳＥ」、株式会社エスアイビーアクセス、２００３、７７〜９７頁
【非特許文献２】児玉「ＵＭＬモデリングの本質」、日経ＢＰ社、２００４、５９〜６８頁
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の抽出方法では、要求仕様書等から動詞と名詞を切出し、それらを整理して動作クラスを抽出するという考え方を提供しているが、最終的に生成されるべきクラスについては言及されていない。従って、具体的な抽出基準は、開発者の判断に委ねられることから、開発者の経験・知識に依存することとなる。そのため以下の問題が発生する。
【０００４】
(1)抽出が属人的になり、同一のソフトウェアにおいて作成されるシーケンス図やクラス図に統一性が無くなり、ソフトウェア成果物の可読性が低下する。
【０００５】
(2)スキルの低い開発者が抽出を行うと、不必要なクラスの抽出や見落としが起こり、手戻りが発生してしまう。
【０００６】
(3)具体的な抽出基準がないために作業の完了条件がわからず、ソフトウェア成果物の作成に多大な時間を要してしまう。
【０００７】
上記の問題により、動作クラスの抽出作業及びそれに基づくシーケンス図・動作クラス図の作成は、ソフトウェア開発において困難なものであり、ソフトウェア成果物の品質の悪化を招き、効率的なソフトウェア開発の妨げになっている。
【０００８】
本発明は前記問題点に鑑みてなされたものであり、その目的とするところは、ソフトウェア開発の効率を向上させることができるソフトウェア成果物生成方法及びそのシステムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明のソフトウェア成果物生成方法は、前記目的を達成するために、ソフトウェア開発において既に作成されたソフトウェア成果物に含まれるとともに主体語彙、動作語彙及びパラメータ語彙から構成されたタスクに基づいて、次の開発工程で作成されるソフトウェア成果物のタスクをコンピュータ装置を用いて生成することにより、次の開発工程で作成されるソフトウェア成果物を生成するソフトウェア成果物生成方法であって、前記コンピュータ装置は、前記タスクの主体、動作及びパラメータのそれぞれを表す概念を抽象的な概念から具体的な概念に展開する階層構造をなす主体概念体系、動作概念体系及びパラメータ概念体系と、各概念体系の概念にそれぞれ対応する主体語彙、動作語彙及びパラメータ語彙と、各概念体系についてソフトウェア成果物のタスクを構成可能な概念の階層を表す成果物制約情報と、成果物制約情報に基づいて抽出された主体語彙、動作語彙及びパラメータ語彙によって構成されたタスクからなるソフトウェア成果物と、ソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成されるソフトウェア成果物のタスクを生成するためのタスク生成情報とを所定の記憶装置に登録し、ソフトウェア成果物生成時に、前記タスク生成情報に基づいて、記憶装置のソフトウェア成果物のタスクから次の開発工程で作成されるソフトウェア成果物のタスクを生成している。
【００１０】
また、本発明のソフトウェア成果物生成システムは、前記目的を達成するために、ソフトウェア開発において既に作成されたソフトウェア成果物に含まれるとともに主体語彙、動作語彙及びパラメータ語彙から構成されたタスクに基づいて、次の開発工程で作成されるソフトウェア成果物のタスクを生成することにより、次の開発工程で作成されるソフトウェア成果物を生成するソフトウェア成果物生成システムであって、前記タスクの主体、動作及びパラメータのそれぞれを表す概念を抽象的な概念から具体的な概念に展開する階層構造をなす主体概念体系、動作概念体系及びパラメータ概念体系と、各概念体系の概念にそれぞれ対応する主体語彙、動作語彙及びパラメータ語彙と、各概念体系についてソフトウェア成果物のタスクを構成可能な概念の階層を表す成果物制約情報と、成果物制約情報に基づいて抽出された主体語彙、動作語彙及びパラメータ語彙によって構成されたタスクからなるソフトウェア成果物と、ソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成されるソフトウェア成果物のタスクを生成するためのタスク生成情報とを格納する記憶手段と、ソフトウェア成果物生成時に、前記タスク生成情報に基づいて、記憶手段のソフトウェア成果物のタスクから次の開発工程で作成されるソフトウェア成果物のタスクを生成する生成手段とを備えている。
【００１１】
これにより、ソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成されるソフトウェア成果物のタスクが生成されることから、例えば既に作成されたソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙が異なる場合でも、タスク生成情報に基づいて生成されたタスクを有するソフトウェア成果物を生成することが可能となる。
【発明の効果】
【００１２】
本発明のソフトウェア成果物生成方法及びそのシステムによれば、例えば既に作成されたソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙が異なる場合でも、タスク生成情報に基づいて生成されたタスクを有するソフトウェア成果物を生成することができるので、次の開発工程におけるソフトウェア成果物の作成者の属人性を排除することができるとともに、ソフトウェア成果物の作成における作業時間及び作業量を低減することができ、ソフトウェア開発の効率を向上させることができる。
【００１３】
また、タスク生成情報を、予め定められた動作クラスの抽出基準に対応するタスクが生成されるように作成した場合には、統一された抽出基準に基づいて動作クラス及びメッセージを抽出することができる。従って、開発者の属人性を排除することができるので、ソフトウェア成果物の品質が向上する。また、動作クラス及びメッセージを容易に抽出することができるので、ソフトウェア成果物の作成における作業時間及び作業量を低減させることができる。これにより、ソフトウェア開発の効率を大幅に向上させることができる。
【発明を実施するための最良の形態】
【００１４】
以下に図面を参照して本発明の一実施形態を説明する。
＜構成＞
本発明のソフトウェア成果物には、開発するソフトウェアの振舞を規定するための動的情報を表現した動的成果物と、開発するソフトウェアがその振舞を実行するために必要なデータ情報を規定する静的成果物とが存在し、本実施形態では、動的成果物を自動生成するシステムについて説明する。
【００１５】
本発明のソフトウェア成果物自動生成システム10は、周知のＣＰＵを主体として構成されたコンピュータ装置からなり、図１に示すとおり、成果物描画部11、制御部12、成果物リポジトリ13、語彙リポジトリ14、概念体系リポジトリ15、生成ルールリポジトリ16及びユーザインタフェース部17から構成されている。
【００１６】
成果物描画部11は、図２に示すような成果物描画画面20をユーザインタフェース部17に描画するためのモジュールであり、既存ＣＡＳＥツールを用いても構わない。
【００１７】
制御部12は、前述した５つのモジュール11,13〜16と接続され、各モジュール間の情報、または各モジュール間の情報を組合わせた情報を、受け渡すモジュールである。
【００１８】
成果物リポジトリ13は、作成されたソフトウェア成果物を保存するモジュールである。
【００１９】
語彙リポジトリ14は、後述のタスクの主体語彙及びパラメータ語彙を保存するモジュールである。
【００２０】
概念体系リポジトリ15は、後述の主体概念体系、動作概念体系、パラメータ概念体系、成果物ルール及び動作ルールを保存するモジュールである。
【００２１】
生成ルールリポジトリ16は、後述の生成ルールを保存するモジュールである。
【００２２】
ユーザインタフェース部17は、キーボードやマウス等を含む情報入力部（図示省略）及びディスプレイ等の表示器を含む情報提示部（図示省略）を備え、制御部12を介して成果物リポジトリ13、語彙リポジトリ14及び概念体系リポジトリ15に接続されて、これらへの情報アクセスが可能になっている。また、ユーザインタフェース部17は、動的成果物の作成者が入力する登録に必要な情報の受付部であり、成果物リポジトリ13に記憶されている階層構造の表示及び登録・検索結果を表示するものである。
【００２３】
また、成果物描画画面20は、作成対象のソフトウェア成果物を選択するための成果物選択部21と、ソフトウェア成果物に含まれるタスクの内容を表すためのタスク表示部22と、作成されたソフトウェア成果物を描画するための描画部23と、タスクの主体語彙を表示するための主体表示部24と、タスクの動作語彙を表示するための動作表示部25と、タスクのパラメータ語彙を表示するためのパラメータ表示部26とから構成されている。また、描画部23には、作成されたソフトウェア成果物を成果物リポジトリ13に登録するための登録指示部（図示省略）と、ソフトウェア成果物を自動生成するための生成指示部（図示省略）が設けられている。
【００２４】
＜動的成果物タスクの形式化＞
動的成果物には、ソフトウェアが実現する機能に対する振舞が複数のタスクのフローとして記述されている。この一つのタスク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との関係を「達成関係」40として表現することとし、作成された動的成果物のタスク及び工程毎のタスク間の関係は図５に示す構造で表現される。なお、この構造をタスク達成構造と呼ぶ。
【００２６】
また、タスクを表現する主体、動作、パラメータについて、開発するソフトウェアの範囲において共通的に利用される概念を、それぞれ図６、図７及び図８のように予め体系化しておく。図６は主体概念体系を表す図、図７はパラメータ概念体系を表す図、図８は動作概念を表す図である。これらの概念体系は、抽象的な概念から具体的な概念へ展開される木構造を有するものであり、概念が展開される毎に階層レベルが増加するようになっている。また、動的成果物のタスクを表現するために使用可能な主体概念、動作概念及びパラメータ概念の階層レベルが予め対応付けられており、この対応付けを表すルール（以下、成果物ルールと呼ぶ）は図９のように定められる。なお、各概念体系及び成果物ルールは概念体系リポジトリ15に登録されている。
【００２７】
さらに、主体概念体系の少なくとも一つの概念は、開発するソフトウェアの成果物内で利用する主体語彙と結び付けられ、この結び付け情報は図１０のように定められる。例えば、「概念６」という主体概念を用いてタスクを表現する場合には、ソフトウェア成果物内のタスクは「語彙Ａａ」という主体語彙を用いて表現される。また、パラメータ概念体系の少なくとも一つの概念は、上記と同様にパラメータ語彙と結び付けられ、この結び付け情報は図１１のように定められる。このとき、語彙が概念体系の概念と同じ名前であっても構わない。また、この語彙及び概念との結び付けは、成果物作成前に予め作成しておいても構わないし、成果物作成と合わせて作成しても構わない。さらに、主体語彙と主体概念との結び付け情報及びパラメータ語彙とパラメータ概念との結び付け情報は、それぞれ語彙リポジトリ14に登録されている。
【００２８】
さらにまた、動作概念については、その動作を行うことが可能な主体概念と対応付けられ、この対応付けルール（以下、動作ルールとよぶ）は図１２のように定められる。例えば、図１２に示すように、「主体概念１」という主体概念は「動作概念１」という動作を利用することができ、「主体概念３」という主体概念は「動作概念２」という動作を利用することができる。なお、動作ルールは概念体系リポジトリ15に登録されている。
＜成果物作成＞
作成者は、成果物描画画面20の成果物選択部21において、作成しようとする動的成果物を選択する。このとき、制御部12は、主体語彙と主体概念との結び付け情報、パラメータ語彙とパラメータ概念との結び付け情報及び成果物ルールに基づいて、使用可能な主体及びパラメータの語彙を、それぞれ語彙リポジトリ14から取得するとともに、使用可能な動作の語彙を概念体系リポジトリ15から取得して、成果物描画画面20の主体表示部24、動作表示部25及びパラメータ表示部26に表示させる。作成者は、各表示部24〜26に表示された主体語彙、動作語彙及びパラメータ語彙の中から入力主体、出力主体、動作、パラメータに該当するものを選択することにより、作成しようとするソフトウェア機能を実現するために必要なタスクを作成する。この場合、主体語彙及び動作語彙は、動作ルールに基づいて選択可能となるので、動作ルールで対応付けられていない主体語彙と動作語彙とを組合わせたタスクが作成されることを防止することができる。このとき描画部23に描画される動的成果物の形式は、自然言語及びアクティビティ図やシーケンス図等のＵＭＬに基づく図であっても構わない。作成者は、全てのタスクを同様に作成することにより、動的成果物を作成する。
【００２９】
次に、作成者は、上流（または下流）工程の動的成果物を成果物選択部21にて選択する。上記と同様に、各表示部24〜26には、使用可能な主体、動作及びパラメータの語彙がそれぞれ表示される。作成者は、それらの中から入力主体、出力主体、動作、パラメータに該当するものを選択し、上流（または下流）工程の動的成果物を作成する。このとき、先に作成した動的成果物のタスク（以下、既存タスクと呼ぶ）及び現在作成中のタスク（以下、作成中タスクと呼ぶ）が、タスク表示部22に表示される。作成者は、タスク表示部22にて作成中タスクがどの既存タスクを簡略化（または詳細化）したものであるかを表すタスク間関連情報を入力する。
【００３０】
以上の操作を繰り返すことにより、必要とする動的成果物を作成する。
＜成果物登録＞
動的成果物作成後、作成者は、成果物描画画面20の登録指示部において動的成果物の登録を指示する。このとき、制御部12は、各タスクの要素情報及びタスク間関連情報に基づいて、作成した動的成果物をタスク達成構造表現に変換し、成果物リポジトリ13に登録する。この場合、タスク間関連情報は、タスク達成構造表現における達成関係40に変換される。
【００３１】
また、上記と同様に他の動的成果物を成果物描画画面20にて作成し、登録を行う。なお、動的成果物の登録は全ての動的成果物を作成してから行っても構わないし、一つの動的成果物を作成する毎に行っても構わない。
＜成果物自動生成＞
上記の成果物登録を行った後に、シーケンス図及び動作クラス図の自動生成を行う。この場合における制御部12の動作を図１３のフロー図を参照して説明する。
【００３２】
まず、生成ルールリポジトリ16に生成ルールを格納しておき、成果物リポジトリ13に登録されたソフトウェア成果物を成果物描画画面20に表示した状態で、作成者が成果物描画画面20の生成指示部において自動生成を指示する。
【００３３】
ここで、生成ルールとは、ソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成されるソフトウェア成果物のタスクを生成するための情報である。また、生成ルールには、タスクを生成するための所定の生成条件が記述されており、動的成果物のタスクがその生成条件に適合した場合に、新たなタスクが生成されるようになっている。なお、生成ルールの詳細な内容については後述する。
【００３４】
制御部12は、成果物描画画面20に表示されている登録成果物に対応するタスク達成構造表現を成果物リポジトリ13から取得し、最も下流の工程で作成された成果物のタスクを取得する（ステップS1）。さらに、そのタスクが生成ルールの生成条件に適合するか判定し（ステップS2）、生成条件に適合する場合には生成ルールの記述に従って、シーケンス図で表されるタスク（以下、シーケンス図タスクと呼ぶ）を生成する（ステップS3）。そして、ステップS1で取得した全てのタスクについて上記ステップS2及びS3の処理を繰り返す（ステップS4）。次に、生成されたシーケンス図タスクをシーケンス図に変換し、成果物描画画面20の描画部23に表示する。また、これと同時に、シーケンス図タスクの主体及び動作からクラス名、メソッド名及びクラス間の関連を生成することにより動作クラス図を生成し、動作クラス図を成果物描画画面20の描画部23に表示する（ステップS5）。
【実施例１】
【００３５】
以下、一例として、通信装置の制御・管理を行うソフトウェアを適用する。
【００３６】
ソフトウェア開発において作成する動的成果物として、ＵＣ(ユースケース)、中間生成物、ＵＣ記述、概念シーケンス１、概念シーケンス２、シーケンス図及び動作クラス図を想定する。ＵＣ、中間生成物及びＵＣ記述は自然言語で記述され、概念シーケンス１、概念シーケンス２及びシーケンス図はＵＭＬのシーケンス図で記述されるものである。作成手順としては、ＵＣ、中間生成物、ＵＣ記述、概念シーケンス１、概念シーケンス２、シーケンス図、動作クラス図の順で作成され、本例では、概念シーケンス２からシーケンス図及び動作クラス図を自動生成するようになっている。ＵＣはソフトウェア機能を最も抽象化した動的成果物であり、一つのタスクで構成される。中間生成物は、最終的な成果物として残す必要は無いが、ＵＣとＵＣ記述との関連情報を保持するために必要な成果物である。ＵＣ記述は、ＵＣを詳細化した動的成果物であり、複数のタスクから構成されている。概念シーケンス１は、ＵＣ記述を更に詳細化したものであり、ＵＣ記述と同様に複数のタスクから構成されている。概念シーケンス２は、概念シーケンス１のパラメータを詳細化したものである。
【００３７】
また、動作概念体系として図１４、主体概念体系として図１５、パラメータ概念体系として図１６、成果物ルールとして図１７、動作ルールとして図１８が予め構築されているものとする。
【００３８】
即ち、図１４に示す動作概念体系では、動作概念101が第１階層（レベル１）の「登録する」という概念111と、「削除する」という概念112と、「変更する」という概念113と、「検索する」という概念114と、第２階層（レベル２）の「送信する」という概念121と、第３階層（レベル３）の「確認する」という概念136に分岐されている。
【００３９】
また、「登録する」という概念111は、レベル２の「登録する」という概念122に展開され、「削除する」という概念112は、レベル２の「削除する」という概念123に展開されている。
【００４０】
さらに、レベル２の「送信する」という概念121は、レベル３の「送信する」という概念131に展開され、レベル２の「登録する」という概念122は、レベル３の「登録する」という概念132と、「設定する」という概念133に分岐されている。また、レベル２の「削除する」という概念123は、レベル３の「削除する」という概念134と、「解除する」という概念135に分岐されている。
【００４１】
さらにまた、レベル３の「送信する」という概念131は、第４階層（レベル４）の「送信する」という概念141と、「表示する」という概念142とに分岐され、レベル３の「登録する」という概念132は、レベル４の「仮登録する」という概念143と、「一括登録する」という概念144とに分岐されている。また、レベル３の「削除する」という概念134は、レベル４の「仮削除する」という概念145と、「一括削除する」という概念146とに分岐され、レベル３の「確認する」という概念136は、レベル４の「存在確認する」という概念147と、「非存在確認する」という概念148に分岐されている。
【００４２】
図１５に示す主体概念体系では、主体概念201が第１階層（レベル１）の「オペレータ」という概念211と、「システム」という概念212とに分岐されている。
【００４３】
また、「オペレータ」という概念211は、第２階層（レベル２）の「オペレータ」という概念221に展開され、「システム」という概念212は、レベル２の「ＭＥ」という概念222と、「管理システム」という概念223に分岐されている。
【００４４】
さらに、レベル２の「オペレータ」という概念221は、第３階層（レベル３）の「オペレータ」という概念231に展開され、レベル２の「ＭＥ」という概念222は、レベル３の「ＮＥ」という概念232に展開されている。また、「管理システム」という概念223は、レベル３の「端末」という概念233と、「サーバ」という概念234と、「ＤＢ」という概念235に分岐されている。
【００４５】
図１６に示すパラメータ概念体系では、パラメータ概念301が第１階層（レベル１）の「エリア」という概念311と、「ビル」という概念312と、「収容装置」という概念313と、「ＮＷカード」という概念314とに分岐されている。
【００４６】
また、「エリア」という概念311は第２階層（レベル２）の「エリア属性」という概念321に、「ビル」という概念312はレベル２の「ビル属性」という概念322に、「収容装置」という概念313はレベル２の「収容装置属性」という概念323に、「ＮＷカード」という概念314はレベル２の「ＮＷカード属性」という概念324に、それぞれ展開されている。
【００４７】
なお、各概念体系、成果物ルール及び動作ルールは、概念体系リポジトリ15に登録されている。
＜成果物作成＞
開発対象のソフトウェアの一例として、通信装置Ａに関する業務を支援する業務サポートシステムＡを取り上げる。
【００４８】
まず、業務サポートシステムＡの成果物における主体語彙と主体概念との結び付け情報として図１９に示すものを、パラメータ語彙とパラメータ概念との結び付け情報として図２０に示すものを、語彙リポジトリ14に事前に登録しておく。
【００４９】
ここで一例として、装置Ａに関する装置情報を業務サポートシステムＡが保有するデータベースに登録する機能についての動的成果物を作成・登録する場合について説明する。
【００５０】
最初にＵＣを作成する。作成者は、成果物描画画面20の成果物選択部21においてＵＣを選択する。制御部12は、ＵＣ作成時においてタスクを構成可能な主体概念、動作概念及びパラメータ概念のレベルを概念体系リポジトリ15に登録された成果物ルールから特定する。この場合、図１７の成果物ルールを参照すると、ＵＣ作成時に利用可能な主体概念、動作概念及びパラメータ概念のレベルは、それぞれレベル１、レベル１及びレベル１である。制御部12は、成果物ルールに基づいて、動作語彙を概念体系リポジトリ15から取得するとともに、図１９及び図２０の結び付け情報に基づいて、主体語彙及びパラメータ語彙を語彙リポジトリ14から取得する。そして、取得された主体語彙、動作語彙及びパラメータ語彙は、成果物描画画面20の主体表示部24、動作表示部25及びパラメータ表示部26にそれぞれ表示される。作成者は、各表示部24〜26に表示された語彙を選択することにより、ＵＣを作成する。ここで、主体語彙及び動作語彙は、図１８の動作ルールに基づいて選択可能となっている。この場合、作成されたＵＣは、描画部23に表示される。なお、本例では、図２１に示すようなＵＣが作成される。
【００５１】
次に、ＵＣとＵＣ記述との間の中間生成物を作成する。作成者は、成果物描画画面20の成果物選択部21において、中間生成物を選択する。この場合、図１７の成果物ルールより中間成果物で利用可能な主体概念、動作概念及びパラメータ概念のレベルは、それぞれレベル１、レベル２及びレベル１である。制御部12は、成果物ルールに基づいて、動作語彙を概念体系リポジトリ15から取得するとともに、図１９及び図２０の結び付け情報に基づいて、主体語彙及びパラメータ語彙を語彙リポジトリ14から取得する。そして、取得された主体語彙、動作語彙及びパラメータ語彙は、成果物描画画面20の主体表示部24、動作表示部25及びパラメータ表示部26にそれぞれ表示される。作成者は、各表示部24〜26に表示された語彙を選択することにより、中間生成物を作成する。ここで、主体語彙及び動作語彙は、図１８の動作ルールに基づいて選択可能となっている。この場合、作成された中間生成物は、描画部23に表示される。本例では、図２２に示すように、中間生成物が三つのタスクの並びで表現される。また、この三つのタスクは、ＵＣのタスク１を詳細化したものであり、ＵＣのタスク１との達成関係が一意になることから、三つのタスクとＵＣのタスク１とが自動的に結び付けられる。
【００５２】
次にＵＣ記述を作成する。作成者は、成果物描画画面20の成果物選択部21において、ＵＣ記述を選択する。この場合、図１７の成果物ルールよりＵＣ記述で利用可能な主体概念、動作概念及びパラメータ概念のレベルは、それぞれレベル２、レベル３及びレベル１である。制御部12は、成果物ルールに基づいて、動作語彙を概念体系リポジトリ15から取得するとともに、図１９及び図２０の結び付け情報に基づいて、主体語彙及びパラメータ語彙を語彙リポジトリ14から取得する。そして、取得された主体語彙、動作語彙及びパラメータ語彙は、成果物描画画面20の主体表示部24、動作表示部25及びパラメータ表示部26にそれぞれ表示される。作成者は、各表示部24〜26に表示された語彙を選択することにより、ＵＣ記述を作成する。ここで、主体語彙及び動作語彙は、図１８の動作ルールに基づいて選択可能となっている。この場合、作成されたＵＣ記述は、描画部23に表示される。なお、本例では、図２３に示すように、ＵＣ記述が四つのタスクの並びで表現される。また、ＵＣ記述タスク１は中間生成物タスク１を詳細化したものであり、ＵＣ記述タスク２及び３は中間生成物タスク２を詳細化したものであり、ＵＣ記述タスク４は中間生成物タスク３を詳細化したものである。よって、これらの達成関係が一意になることから、ＵＣ記述タスクと中間生成物のタスクとが自動的に結び付けられる。
【００５３】
次に概念シーケンス１を作成する。作成者は、成果物描画画面20の成果物選択部21において、概念シーケンス１を選択する。この場合、図１７の成果物ルールより概念シーケンス１で利用可能な主体概念、動作概念及びパラメータ概念のレベルは、それぞれレベル３、レベル４及びレベル１である。制御部12は、成果物ルールに基づいて、動作語彙を概念体系リポジトリ15から取得するとともに、図１９及び図２０の結び付け情報に基づいて、主体語彙及びパラメータ語彙を語彙リポジトリ14から取得する。そして、取得された主体語彙、動作語彙及びパラメータ語彙は、成果物描画画面20の主体表示部24、動作表示部25及びパラメータ表示部26にそれぞれ表示される。作成者は、各表示部24〜26に表示された語彙を選択することにより、概念シーケンス１を作成する。ここで、主体語彙及び動作語彙は、図１８の動作ルールに基づいて選択可能となっている。この場合、作成された概念シーケンス１は、描画部23に表示される。この成果物はＵＭＬにおけるシーケンス図として、図２４のように表現される。図２４における１番目、２番目のメッセージ401,402はＵＣ記述タスク１を詳細化したものであり、３番目、４番目、５番目及び６番目のメッセージ403,404,405,406はＵＣ記述タスク２を詳細化したものであり、７番目及び８番目のメッセージ407,408はＵＣ記述タスク３を詳細化したものであり、９番目及び１０番目のメッセージ409,410はＵＣ記述タスク４を詳細化したものである。なお、これらの達成関係は一意にならないことから、作成者はタスク表示部22にて、表示されたＵＣ記述タスクと概念シーケンス１の各メッセージとを、ＧＵＩ操作により達成関係として結び付ける。達成関係を結び付けた後のタスク表示部22の例を図２５に示す。
【００５４】
最後に概念シーケンス２を作成する。作成者は、成果物描画画面20の成果物選択部21において、概念シーケンス２を選択する。この場合、図１７の成果物ルールより概念シーケンス１で利用可能な主体概念、動作概念及びパラメータ概念のレベルは、それぞれレベル３、レベル４及びレベル２である。制御部12は、成果物ルールに基づいて、動作語彙を概念体系リポジトリ15から取得するとともに、図１９及び図２０の結び付け情報に基づいて、主体語彙及びパラメータ語彙を語彙リポジトリ14から取得する。そして、取得された主体語彙、動作語彙及びパラメータ語彙は、成果物描画画面20の主体表示部24、動作表示部25及びパラメータ表示部26にそれぞれ表示される。作成者は、各表示部24〜26に表示された語彙を選択することにより、概念シーケンス２を作成する。ここで、主体語彙及び動作語彙は、図１８の動作ルールに基づいて選択可能となっている。この場合、作成された概念シーケンス２は、描画部23に表示される。また、概念シーケンス２の表現形式はＵＭＬにおけるシーケンス図として、図２６のように表現される。概念シーケンス２の各メッセージ501〜510は、概念シーケンス１の各メッセージのパラメータを詳細化したものであり、各メッセージ間の達成関係が自動的に結び付けられる。
＜成果物登録＞
描画部23の登録指示部において作成者が登録を指示することにより、成果物リポジトリ13には、図２７及び図２８に示すような、ＵＣから概念シーケンス２までのタスク達成構造が登録される。ここで、タスク達成構造の１階層目にはＵＣ51が、２階層目には中間生成物52が、３階層目にはＵＣ記述53が、４階層目には概念シーケンス１54が、５階層目には概念シーケンス２55が表現されている。
＜自動生成＞
生成ルールリポジトリ16には、図２９に示された六つの生成ルールが予め格納されている。生成ルールには、登録成果物におけるタスクの入力主体及び出力主体に応じて、ＵＣ及びＵＣ記述のタスクの動作に相当する動作クラスや、ＤＢ等の外部システム接続用の動作クラスを生成するための情報と、それらの動作クラス間のメッセージ及びパラメータを生成するための情報とが記述されている。また、各生成ルールはIF-THENルールで表現されており、IF部にはタスクの入力主体及び出力主体がタスク生成条件として記述され、THEN部には生成されるタスクの入力主体、出力主体、動作及びパラメータが記述されている。さらに、IF部に記述されている「端末」、「サーバ」、「ＮＥ」及び「ＤＢ」は、それぞれ図１５の主体概念体系に登録されている概念である。さらにまた、生成ルールのTHEN部に記述された動作、主体及びパラメータの英語名は、語彙リポジトリ14及び概念体系リポジトリ15に予め登録されている。なお、図中の「Lv」は図２７及び図２８のタスク達成構造表現の階層を示しており、ＵＣ51がLv1に、ＵＣ記述53がLv3に、概念シーケンス２55がLv5にそれぞれ対応している。
【００５５】
作成者が、成果物描画画面20の描画部23に図２６の概念シーケンス２を表示させ、生成指示部において自動生成を指示すると、制御部12は以下の処理を行う。
【００５６】
制御部12は、図２７及び図２８に示すタスク達成構造表現を成果物リポジトリ13から取得し、概念シーケンス２55に該当するLv5の各タスク55a〜55jに対して図２９の各生成ルールとの適合判定を行い、適合する場合には、適合する生成ルールに基づいて設計シーケンス図用のタスク（以下、Lv6タスクとよぶ）を生成する。具体的な処理は次のとおりであり、図２９の生成ルールを用いて生成されたLv6タスクを図３０に示す。
【００５７】
[１番目（Ｍ＝１）のタスク]
Lv5の１番目のタスク55aは、入力主体が「操作者」であり、出力主体が「HMI」である。また、これらが結び付けられている主体概念は、図１９よりそれぞれ「オペレータ」及び「端末」となるが、適合する生成ルールがないため、Lv6タスクが生成されない。
【００５８】
[２番目（Ｍ＝２）のタスク]
Lv5の２番目のタスク55bは、入力主体が「HMI」であり、出力主体が「Server」である。また、これらが結び付けられている主体概念は、図１９よりそれぞれ「端末」及び「サーバ」となることから、ルール１に適合する。この場合、Lv6の１番目（Ｎ＝１）のタスク56aが生成される。
【００５９】
よってルール１に従い、１番目のLv6タスク56aの入力主体は「Client」となる。
【００６０】
また、１番目のLv6タスク56aの出力主体は、Lv1のタスクの動作の英語名となる。図２７よりLv1のタスクの動作は「登録する」であるから、１番目のLv6タスク56aの出力主体は「Register」となる。
【００６１】
さらに、１番目のLv6タスク56aの動作は、Lv1のタスクの動作の英語名の前に「do」を付加したものとなるから、「doRegister」となる。
【００６２】
さらにまた、１番目のLv6タスク56aのパラメータは、Lv5の２番目のタスク55bのパラメータの英語名となる。Lv5の２番目のタスク55bのパラメータは、「エリア名」、「ビル名」、「装置ID」、「IPアドレス」及び「装置名」であるから、Lv6タスク56aのパラメータは、「areaName」、「builName」、「equipmentID」、「ipAddress」及び「equipmentName」となる。
【００６３】
[３番目（Ｍ＝３）のタスク]
Lv5の３番目のタスク55cは、入力主体が「Server」であり、出力主体が「db」である。また、これらが結び付けられている主体概念は、図１９よりそれぞれ「サーバ」及び「DB」であるから、ルール４に適合する。この場合、一つのLv5タスク55cから二つのLv6タスク56b,56cが生成される。
【００６４】
Lv6の２番目（Ｎ＝２）のタスク56bの入力主体はLv1タスクの動作の英語名で表される。図２７より、Lv1タスクの動作は「登録する」であるから、Lv6タスク56bの入力主体は「Register」となる。
【００６５】
また、２番目のLv6タスク56bの出力主体は、Lv3タスクの動作の英語名の後に「By」及びLv3タスクの入力主体の英語名を付加したもので表される。図２７及び図２８より、Lv5の３番目のタスク55cと達成関係で結ばれたLv3のタスクの動作は「確認する」であり、Lv3タスクの入力主体は「サポートシステムA」であるから、Lv6タスク56bの出力主体は「ConfirmBySystemA」となる。
【００６６】
さらに、２番目のLv6タスク56bの動作は、Lv3タスクの動作の英語名の前に「do」を付加したもので表されるから、「doConfirm」となる。
【００６７】
さらにまた、２番目のLv6タスク56bのパラメータは、Lv5の３番目のタスク55cのパラメータの英語名となる。Lv5の３番目のタスク55cのパラメータは、「エリア名」及び「ビル名」であるから、Ｎ番目のLv6タスク56bのパラメータは、「areaName」及び「builName」となる。
【００６８】
次に、Ｎ＋１番目、即ち３番目のLv6タスク56cの入力主体は、Lv5の３番目のタスク55cと達成関係で結ばれたLv3タスクの動作の英語名の後ろに「By」とLv3タスクの入力主体の英語名とを付与したものとなるため、「ConfirmBySystemA」となる。
【００６９】
また、３番目のLv6タスク56cの出力主体は、Lv5の３番目のタスク55cの出力主体の英語名の後に「Access」を付与したものであるため、「DBAccess」となる。
【００７０】
さらに、３番目のLv6タスク56cの動作は、Ｍ＋１番目、即ち４番目のLv5タスク55dの動作の英語名の前に「do」を付与したものである。図２８より、Lv5の４番目のタスク55dの動作は、「検索する」であるから、Ｎ＋１番目のLv6タスク56cの動作は「doRetrieve」となる。
【００７１】
さらにまた、３番目のLv6タスク56cのパラメータは、Lv5の３番目のタスク55cのパラメータの英語名となる。 Lv5タスク55のパラメータは、「エリア名」、「ビル名」であるから、３番目のLv6タスク56cのパラメータは「areaName」及び「builName」となる。
【００７２】
[４番目（Ｍ＝４）のタスク]
Lv5の４番目のタスク55dは、入力主体が「db」であり、出力主体がない。また、「db」が結び付けられている主体概念は図１９より「DB」であるから、ルール５に適合する。
【００７３】
Lv6の４番目（Ｎ＝４）のタスク56dの入力主体は、Lv5の４番目のタスク55dの入力主体の英語名の後に「Access」を付与したものでる。ここで、Lv5のタスク55dの入力主体は「db」であるため、４番目のLv6タスク56dの入力主体は「DBAccess」となる。
【００７４】
また、４番目のLv6タスク56dの動作は、Lv5のタスク55dの動作の英語名の前に「do」を付与し、後に「Command」を付与したものである。図２８よりLv5のタスク55dの動作は「検索する」であるから、Lv6タスク56dの動作は「doRetrieveCommand」となる。
【００７５】
なお、ルール５では、４番目のLv6タスク56dの出力主体及びパラメータが生成されない。
【００７６】
[５番目（Ｍ＝５）のタスク]
Lv5の５番目のタスク55eは、入力主体が「db」であり、出力主体が「Server」である。これらが結び付けられている主体概念は、図１９よりそれぞれ「DB」及び「サーバ」であるから、ルール６に適合する。この場合、一つのLv5タスク55eから二つのLv6タスク56e,56fが生成される。
【００７７】
Lv6の５番目（Ｎ＝５）のタスク56eの入力主体は、Lv５タスクの入力主体の英語名の後ろに「Access」を付与したものであるから、「DBAccess」となる。
【００７８】
また、５番目のLv6タスク56eの出力主体は、Lv3タスクの動作の英語名の後に「By」とLv3タスクの入力主体の英語名とを付与したものである。図２７及び図２８より、Lv5の５番目のタスク55eと達成関係で結ばれたLv3タスクの動作は「確認する」であり、Lv3タスクの入力主体は「サポートシステムA」であるから、Lv6タスク56eの出力主体は「ConfirmBySystemA」となる。
【００７９】
さらに、５番目のLv6タスク56eの動作は「return」となる。
【００８０】
さらにまた、 ５番目のLv6タスク56eのパラメータは、Lv5の５番目のタスク55eのパラメータの英語名となる。Lv5の５番目のタスク55eのパラメータは、「装置ID」であるから、５番目のLv6タスク56eのパラメータは「equipmentID」となる。
【００８１】
次に、Ｎ＋１番目、即ち６番目のLv6タスク56fの入力主体は、Lv3タスクの動作の英語名の後に「By」とLv3タスクの入力主体の英語名とを付与したものとなるため、「ConfirmBySystemA」となる。
【００８２】
また、６番目のLv6タスク56fの出力主体は、Lv1タスクの動作の英語名である。図２７よりLv1タスクの動作の英語名は「登録する」であるから、６番目のLv6タスク56fの出力主体は「Register」となる。
【００８３】
さらに、６番目のLv6タスク56fの動作は「return」となる。
【００８４】
さらにまた、６番目のLv6タスク56fのパラメータは、Lv5の５番目のタスク55eのパラメータの英語名となる。 Lv5の５番目のタスク55eのパラメータは「装置ID」であるから、６番目のLv6タスク56fのパラメータは「equipmentID」となる。
【００８５】
[６番目（Ｍ＝６）のタスク]
Lv5の６番目のタスク55fは、入力主体が「Server」であり、出力主体がない。また、「Server」が結び付けられている概念は、図１９より「サーバ」であるから、ルール３に適合する。この場合、一つのLv5タスク55fから三つのLv6タスク56g,56h,56iが生成される。
【００８６】
Lv6の７番目（Ｎ＝７）のタスク56gの入力主体は、Lv1タスクの動作の英語名である。図２７よりLv1タスクの動作の英語名は「登録する」であるから、７番目のLv6タスク56gの入力主体は「Register」となる。
【００８７】
また、７番目のLv6タスク56gの出力主体は、Lv3タスクの動作の英語名の後に「By」とLv3タスクの入力主体の英語名とを付与したものである。図２７より、Lv5の６番目のタスク55fと達成関係で結ばれたLv3タスクの動作は「確認する」であり、Lv3タスクの入力主体は「サポートシステムA」であるから、Lv6タスク56gの出力主体は「ConfirmBySystemA」となる。
【００８８】
さらに、７番目のLv6タスク56gの動作は、Lv3タスクの動作の英語名の前に「do」を付加したものであるから、「doConfirm」となる。
【００８９】
さらにまた、 ７番目のLv6タスク56gのパラメータは、Lv5の６番目のタスク55fのパラメータの英語名となる。Lv5の６番目のタスク55fのパラメータは「装置ID」であるから、７番目のLv6タスク56gのパラメータは「equipmentID」となる。
【００９０】
次に、Ｎ＋１番目、即ち８番目のLv6タスク56hの入力主体は、Lv3タスクの動作の英語名の後に「By」とLv3タスクの入力主体の英語名とを付与したものであるため、「ConfirmBySystemA」となる。
【００９１】
また、８番目のLv6タスク56hの動作は、Lv5の６番目のタスク55fの動作の英語名の前に「do」を付与したものである。図２８よりLv5タスク55fの動作は「非存在確認する」であるから、８番目のLv6タスク56hの動作は「doNonexistingConfirm」となる。
【００９２】
さらに、 ８番目のLv6タスク56hのパラメータは、Lv5の６番目のタスク55fのパラメータの英語名となる。Lv5のタスク55fのパラメータは「装置ID」であるから、８番目のLv6タスク56hのパラメータは「equipmentID」となる。
【００９３】
なお、ルール３では、８番目のLv6タスク56hの出力主体が生成されない。
【００９４】
次いで、Ｎ＋２番目、即ち９番目のLv6タスク56iの入力主体は、Lv3タスクの動作の英語名の後に「By」とLv3タスクの入力主体の英語名とを付与したものであるため、「ConfirmBySystemA」となる。
【００９５】
また、９番目のLv6タスク56iの出力主体は、Lv1タスクの動作の英語名である。図２７よりLv1タスクの動作は「登録する」であるから、９番目のLv6タスク56iの出力主体は「Register」となる。
【００９６】
さらに、９番目のLv6タスク56iの動作は「return」となる。
【００９７】
なお、ルール３では、９番目のLv6タスク56iのパラメータが生成されない。
【００９８】
[７番目（Ｍ＝７）のタスク]
Lv5の７番目のタスク55gは、入力主体が「Server」であり、出力主体が「db」である。また、これらが結び付けられている概念は、図１９よりそれぞれ「サーバ」及び「DB」であるから、ルール４に適合する。この場合、一つのLv5タスク55gから二つのLv6タスク56j,56kが生成される。
【００９９】
Lv6の１０番目（Ｎ＝１０）のタスク56jの入力主体は、Lv1タスクの動作の英語名である。図２７よりLv1タスクの動作の英語名は「登録する」であるから、１０番目のLv6タスク56jの入力主体は「Register」となる。
【０１００】
また、１０番目のLv6タスク56jの出力主体は、Lv3タスクの動作の英語名の後に「By」とLv3タスクの入力主体の英語名とを付与したものである。図２７より、Lv5の７番目のタスク55gと達成関係で結ばれたLv3タスクの動作は「登録する」であり、Lv3タスクの入力主体は「サポートシステムA」であるから、１０番目のLv6タスク56jの出力主体は「RegisterBySystemA」となる。
【０１０１】
さらに、１０番目のLv6タスク56jの動作は、Lv3タスクの動作の英語名の前に「do」を付加したものであるから、「doRegister」となる。
【０１０２】
さらにまた、１０番目のLv6タスク56jのパラメータは、Lv5の７番目のタスク55gのパラメータの英語名となる。 Lv5タスク55gのパラメータは「装置ID」、「IPアドレス」及び「装置名」であるから、１０番目のLv6タスク56jのパラメータは「equipmentID」、「ipAddress 」及び「equipmentName」となる。
【０１０３】
次に、Ｎ＋１番目、即ち１１番目のLv6タスク56kの入力主体は、Lv3タスクの動作の英語名の後に「By」とLv3タスクの入力主体の英語名とを付与したものであるため、「RegisterBySystemA」となる。
【０１０４】
また、１１番目のLv6タスク56kの出力主体は、Lv5の７番目のタスク55gの出力主体の英語名の後に「Access」を付与したものであるため、「DBAccess」となる。
【０１０５】
さらに、１１番目のLv6タスク56kの動作は、Ｍ＋１番目、即ち８番目のLv5タスク55hの動作の英語名の前に「do」を付与したものである。図２８よりLv5の８番目のタスク55hの動作は「一括登録する」であるから、１１番目のLv6タスク56kの動作は「doBundleRegister」となる。
【０１０６】
さらにまた、１１番目のLv6タスク56kのパラメータは、Lv5の７番目のタスク55gのパラメータの英語名となる。 Lv5タスク55gのパラメータは、「装置ID」、「IPアドレス」及び「装置名」であるため、１１番目のLv6タスク56kのパラメータは「equipmentID」、「ipAddress 」及び「equipmentName」となる。
【０１０７】
[８番目（Ｍ＝８）のタスク]
Lv5の８番目のタスク55hは、入力主体が「db」であり、出力主体がない。また、「db」が結び付けられている概念は、図１９より「DB」であるから、ルール５に適合する。
【０１０８】
Lv6の１２番目（Ｎ＝１２）のタスク56lの入力主体は、Lv5タスク55hの入力主体の英語名の後に「Access」を付与したものでる。Lv5タスク55hの入力主体はdbであるため、１２番目のLv6タスク56lの入力主体は「DBAccess」となる。
【０１０９】
また、１２番目のLv6タスク56lの動作は、Lv5タスク55hの動作の英語名の前に「do」を付与し、後に「Command」を付与したものである。図２８よりLv5タスク55hの動作は「一括登録する」であるから、１２番目のLv6タスク56lの動作は「doBundleRegisterCommand」となる。
【０１１０】
なお、ルール５では、１２番目のLv6タスクの出力主体及びパラメータが生成ｓれない。
【０１１１】
[９番目（Ｍ＝９）のタスク]
Lv5の９番目のタスク55iは、入力主体が「Server」であり、出力主体が「HMI」である。また、これらが結び付けられている概念は、図１９よりそれぞれ「サーバ」及び「端末」であるから、ルール２に適合する。
【０１１２】
Lv6の１３番目（Ｎ＝１３）のタスク56mの入力主体は、Lv1タスクの動作の英語名である。Lv1タスクの動作は図２７より「登録する」であるから、Lv6タスク56mの入力主体は「Register」となる。
【０１１３】
また、Lv6タスク56mの出力主体は「Client」となり、動作は「return」となる。
【０１１４】
さらに、Lv6タスク56mのパラメータは、Lv5の９番目のタスク55iのパラメータの英語名となる。 Lv5タスク55iのパラメータは、「エリア名」、「ビル名」、「装置ID」、「IPアドレス」及び「装置名」であるから、Lv6タスク56mのパラメータは、「areaName」、「builName」、「equipmentID」、「ipAddress」及び「equipmentName」となる。
【０１１５】
[１０番目のタスク]
Lv5の１０番目のタスク55jは、入力主体が「HMI」であり、出力主体が存在しない。「HMI」が結び付けられている主体概念は、図１９より「端末」となるが、適合する生成ルールがないため、Lv6タスクが生成されない。
【０１１６】
以上のように、生成ルールを用いてLv6タスク56a〜56mが生成される。
【０１１７】
次に、制御部12は、図３０に示されたLv6タスク56a〜56mをシーケンス図に変換する。この場合、変換されたシーケンス図は図３１のように示され、図中のメッセージ601〜613はLv6タスク56a〜56mにそれぞれ対応している。
【０１１８】
図３１において、６番目のメッセージ606と７番目のメッセージ607に関連する動作クラスは、それぞれ「Register」クラスと「ConfirmBySystemA」クラスであって同一である。また、６番目のメッセージ606に対応する要求メッセージは、２番目のメッセージ602の「doConfirm」であり、７番目のメッセージ607と同じである。さらに、これらのメッセージ602,607に対する応答メッセージは、それぞれ６番目のメッセージ606と９番目のメッセージ609であって、それらの内容は互いに「return」である。このような場合には、制御部12は、２番目のメッセージ602と７番目のメッセージ607とを、及び６番目のメッセージ607と９番目のメッセージ609とを統合することができる。
【０１１９】
このメッセージ統合を行う場合には、制御部12は、あるタスクの入力主体及び出力主体が、それぞれ次のタスクの出力主体及び入力主体となるような関係を有する二つのタスクが存在する場合に、これら二つのタスクを削除する。図３０においては、６番目のタスク56fと７番目のタスク56gがこの関係にあるため、制御部12は、これらの二つのタスク56f,56gを削除する。これにより、シーケンス図上では、７番目のメッセージ607が２番目のメッセージ602に統合され、６番目のメッセージ606が９番目のメッセージ609に統合されたように表される。この場合、メッセージが統合された後のLv6タスク56a〜56e,56h〜56mは図３２のように示され、各タスク56a〜56e,56h〜56mに基づいて変換されたシーケンス図は図３３のように示される。
【０１２０】
また、制御部12は、図３２に示されたLv6タスク56a〜56e,56h〜56mを用いて図３４に示す動作クラス図を生成する。この場合、制御部12は、図３２の各タスク56a〜56e,56h〜56mについて、主体をクラス名とする動作クラスを生成する。ここで、クラス名がタスクの出力主体であって、そのタスクの動作が「return」以外の場合には、そのタスクの動作をメソッド名とする動作クラスが生成される。また、クラス名がタスクの入力主体であって、そのタスクの出力主体が存在しない場合には、そのタスクの動作をメソッド名とする動作クラスが生成される。
【０１２１】
例えば、図３２の１番目のLv6タスク56aにおいて、主体となっているのは「Client」と「Register」であるため、これらをクラス名とする「Client」クラスと「Register」クラスとが生成される。また、「Register」が出力主体となっており、且つタスクの動作が「return」以外のLv6タスクは１番目のLv6タスク56aであり、その動作は「doRegister」である。また、「Register」が入力主体となっており、且つ出力主体が存在しないタスクは存在しない。よって、「Register」クラスのメソッド名として「doRegisiter」が生成される。
【０１２２】
また、制御部12は、入力主体と出力主体の両方が存在するタスクがある場合に、その入力主体及び出力主体をそれぞれクラス名とする二つの動作クラス間に関連を生成する。
【０１２３】
例えば、図３２の１番目のタスク56aにおいて、主体となっているのは「Client」と「Register」であるため、これらをクラス名とする「Client」クラスと「Register」クラスとの間に関連を生成する。
【０１２４】
本例において上記のように生成された動作クラス図を図３４に示す。
【０１２５】
そして、制御部12は、上記の処理により生成された図３３のシーケンス図及び図３４の動作クラス図を、成果物描画画面20の描画部23に表示する。
【０１２６】
前述したように上記実施形態では、例えば既に作成されたソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙が異なる場合でも、タスク生成情報に基づいて生成されたタスクを有するソフトウェア成果物を生成することができるので、次の開発工程におけるソフトウェア成果物の作成者の属人性を排除することができるとともに、ソフトウェア成果物の作成における作業時間及び作業量を低減することができ、ソフトウェア開発の効率を向上させることができる。
【０１２７】
また、タスク生成情報を、予め定められた動作クラスの抽出基準に対応するタスクが生成されるように作成した場合には、統一された抽出基準に基づいて動作クラス及びメッセージを抽出することができる。従って、開発者の属人性を排除することができるので、ソフトウェア成果物の品質が向上する。また、動作クラス及びメッセージを容易に抽出することができるので、ソフトウェア成果物の作成における作業時間及び作業量を低減させることができる。これにより、ソフトウェア開発の効率を大幅に向上させることができる。
【０１２８】
さらに、ソフトウェア成果物生成時に、成果物リポジトリ13に登録されたソフトウェア成果物のタスクの主体語彙に対応する概念が生成ルールの生成条件に適合する場合に、Lv6タスクを生成するようにしたので、生成対象となるタスクを絞り込むことができ、タスクの生成処理を高速化することができる。
【図面の簡単な説明】
【０１２９】
【図１】本発明の一実施形態におけるソフトウェア成果物システムの構成を示す図
【図２】成果物描画画面を示す図
【図３】タスクの構成を示す図
【図４】タスクの構成を示す図
【図５】タスク達成構造表現を示す図
【図６】主体概念体系の概略を示す図
【図７】パラメータ概念体系の概略を示す図
【図８】動作概念体系の概略を示す図
【図９】成果物ルールの概略を示す図
【図１０】主体概念と主体語彙との結び付け情報の概略を示す図
【図１１】パラメータ概念とパラメータ語彙との結び付け情報の概略を示す図
【図１２】動作ルールの概略を示す図
【図１３】シーケンス図及び動作クラス図を自動生成するときの動作を示すフロー図
【図１４】動作概念体系を示す図
【図１５】主体概念体系を示す図
【図１６】パラメータ概念体系を示す図
【図１７】成果物ルールを示す図
【図１８】動作ルールを示す図
【図１９】業務サポートシステムＡの動的成果物における主体概念と主体語彙との結び付け情報を示す図
【図２０】業務サポートシステムＡの動的成果物におけるパラメータ概念とパラメータ語彙との結び付け情報を示す図
【図２１】業務サポートシステムＡの装置情報登録機能に関するユースケースを示す図
【図２２】業務サポートシステムＡの装置情報登録機能に関する中間生成物を示す図
【図２３】業務サポートシステムＡの装置情報登録機能に関するＵＣ記述を示す図
【図２４】業務サポートシステムＡの装置情報登録機能に関する概念シーケンス１を示す図
【図２５】業務サポートシステムＡの装置情報登録機能に関するタスク表示部の表示内容を示す図
【図２６】業務サポートシステムＡの装置情報登録機能に関する概念シーケンス２を示す図
【図２７】業務サポートシステムＡの装置情報登録機能に関するタスク達成構造表現を示す図
【図２８】業務サポートシステムＡの装置情報登録機能に関するタスク達成構造表現を示す図
【図２９】生成ルールを示す図
【図３０】図２９の生成ルールを用いて生成されたタスクを示す図
【図３１】業務サポートシステムＡの装置情報登録機能に関するシーケンス図を示す図
【図３２】メッセージ統合後のタスクを示す図
【図３３】図３２のタスクを用いたシーケンス図を示す図
【図３４】業務サポートシステムＡの装置情報登録機能に関する動作クラス図を示す図
【符号の説明】
【０１３０】
10…ソフトウェア成果物作成及び再利用システム、12…制御部、13…成果物リポジトリ、14…語彙リポジトリ、15…概念体系リポジトリ、16…生成ルールリポジトリ、17…ユーザインタフェース部、30,56a〜56m…タスク、31…入力主体、32…出力主体、33…動作、34…パラメータ、51…ＵＣ（ユースケース）、52…中間生成物、53…ＵＣ記述、54…概念シーケンス１、55…概念シーケンス２、101…動作概念、201…主体概念、301…パラメータ概念。
【図１】
2008117081.tif 000003
【図２】
2008117081.tif 000004
【図３】
2008117081.tif 000005
【図４】
2008117081.tif 000006
【図５】
2008117081.tif 000007
【図６】
2008117081.tif 000008
【図７】
2008117081.tif 000009
【図８】
2008117081.tif 000010
【図９】
2008117081.tif 000011
【図１０】
2008117081.tif 000012
【図１１】
2008117081.tif 000013
【図１２】
2008117081.tif 000014
【図１３】
2008117081.tif 000015
【図１４】
2008117081.tif 000016
【図１５】
2008117081.tif 000017
【図１６】
2008117081.tif 000018
【図１７】
2008117081.tif 000019
【図１８】
2008117081.tif 000020
【図１９】
2008117081.tif 000021
【図２０】
2008117081.tif 000022
【図２１】
2008117081.tif 000023
【図２２】
2008117081.tif 000024
【図２３】
2008117081.tif 000025
【図２４】
2008117081.tif 000026
【図２５】
2008117081.tif 000027
【図２６】
2008117081.tif 000028
【図２７】
2008117081.tif 000029
【図２８】
2008117081.tif 000030
【図２９】
2008117081.tif 000031
【図３０】
2008117081.tif 000032
【図３１】
2008117081.tif 000033
【図３２】
2008117081.tif 000034
【図３３】
2008117081.tif 000035
【図３４】
2008117081.tif 000036