JP4895374B2 - ソフトウェア成果物生成方法及びそのシステム - Google Patents

ソフトウェア成果物生成方法及びそのシステム Download PDF

Info

Publication number
JP4895374B2
JP4895374B2 JP2006298220A JP2006298220A JP4895374B2 JP 4895374 B2 JP4895374 B2 JP 4895374B2 JP 2006298220 A JP2006298220 A JP 2006298220A JP 2006298220 A JP2006298220 A JP 2006298220A JP 4895374 B2 JP4895374 B2 JP 4895374B2
Authority
JP
Japan
Prior art keywords
vocabulary
task
concept
subject
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006298220A
Other languages
English (en)
Other versions
JP2008117081A (ja
Inventor
正輝 井上
正崇 佐藤
貴司 井上
哲哉 山村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006298220A priority Critical patent/JP4895374B2/ja
Publication of JP2008117081A publication Critical patent/JP2008117081A/ja
Application granted granted Critical
Publication of JP4895374B2 publication Critical patent/JP4895374B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

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

Claims (4)

  1. ソフトウェアが実現する機能に対する振舞が複数のタスクのフローとして記述されている動的なソフトウェア成果物を生成するために、ソフトウェア開発において既に作成された動的なソフトウェア成果物に含まれるとともに主体語彙、動作語彙及びパラメータ語彙から構成されたタスクに基づいて、次の開発工程で作成される動的なソフトウェア成果物のタスクをコンピュータ装置を用いて生成することにより、次の開発工程で作成される動的なソフトウェア成果物を生成するソフトウェア成果物生成方法であって、
    前記コンピュータ装置は、
    前記タスクの主体、動作及びパラメータのそれぞれを表す概念を抽象的な概念から具体的な概念に展開する階層構造をなす主体概念体系、動作概念体系及びパラメータ概念体系と、各概念体系の概念にそれぞれ対応する主体語彙、動作語彙及びパラメータ語彙と、各概念体系について動的なソフトウェア成果物のタスクを構成可能な概念の階層を表す成果物制約情報と、主体概念と該主体概念に対応する主体語彙とを結び付けるとともにパラメータ概念と該パラメータ概念に対応するパラメータ語彙とを結び付ける結び付け情報と、動作概念と該動作概念の動作を行うことが可能な主体概念とを対応付ける動作ルールと、主体語彙、動作語彙及びパラメータ語彙によって構成されたタスクからなる動的なソフトウェア成果物とを所定の記憶装置に登録し、
    前記結び付け情報及び前記成果物制約情報及び前記動作ルールに基づいて、使用可能な主体語彙、動作語彙及びパラメータ語彙のそれぞれを前記記憶装置から取得するとともに表示部に表示し、
    前記表示部に表示した主体語彙、動作語彙及びパラメータ語彙の中から作成者によって選択された主体語彙、動作語彙及びパラメータ語彙を用いて次の開発工程で作成される動的なソフトウェア成果物のタスクを生成する
    ことを特徴とするソフトウェア成果物生成方法。
  2. 前記コンピュータ装置は、
    動的なソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成される動的なソフトウェア成果物のタスクを生成するためのタスク生成情報を所定の記憶装置に登録し、
    動的なソフトウェア成果物生成時に、前記記憶装置に登録された動的なソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念が前記タスク生成情報内の所定の生成条件に適合する場合に、次の開発工程で作成される動的なソフトウェア成果物のタスクを生成する
    ことを特徴とする請求項1記載のソフトウェア成果物生成方法。
  3. ソフトウェアが実現する機能に対する振舞が複数のタスクのフローとして記述されている動的なソフトウェア成果物を生成するために、ソフトウェア開発において既に作成された動的なソフトウェア成果物に含まれるとともに主体語彙、動作語彙及びパラメータ語彙から構成されたタスクに基づいて、次の開発工程で作成される動的なソフトウェア成果物のタスクを生成することにより、次の開発工程で作成される動的なソフトウェア成果物を生成するソフトウェア成果物生成システムであって、
    前記タスクの主体、動作及びパラメータのそれぞれを表す概念を抽象的な概念から具体的な概念に展開する階層構造をなす主体概念体系、動作概念体系及びパラメータ概念体系と、各概念体系の概念にそれぞれ対応する主体語彙、動作語彙及びパラメータ語彙と、各概念体系について動的なソフトウェア成果物のタスクを構成可能な概念の階層を表す成果物制約情報と、主体概念と該主体概念に対応する主体語彙とを結び付けるとともにパラメータ概念と該パラメータ概念に対応するパラメータ語彙とを結び付ける結び付け情報と、動作概念と該動作概念の動作を行うことが可能な主体概念とを対応付ける動作ルールと、主体語彙、動作語彙及びパラメータ語彙によって構成されたタスクからなる動的なソフトウェア成果物とを格納する記憶手段と、
    前記結び付け情報及び前記成果物制約情報及び前記動作ルールに基づいて、使用可能な主体語彙、動作語彙及びパラメータ語彙のそれぞれを前記記憶装置から取得するとともに表示部に表示し、前記表示部に表示した主体語彙、動作語彙及びパラメータ語彙の中から作成者によって選択された主体語彙、動作語彙及びパラメータ語彙を用いて次の開発工程で作成される動的なソフトウェア成果物のタスクを生成する生成手段とを備えた
    ことを特徴とするソフトウェア成果物生成システム。
  4. ソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念に応じて次の開発工程で作成されるソフトウェア成果物のタスクを生成するためのタスク生成情報が前記記憶手段に記憶されており、
    前記生成手段は、
    動的なソフトウェア成果物生成時に、前記記憶装置に登録された動的なソフトウェア成果物のタスクの主体語彙、動作語彙及びパラメータ語彙の少なくとも一つに対応する概念が前記タスク生成情報内の所定の生成条件に適合する場合に、次の開発工程で作成される動的なソフトウェア成果物のタスクを生成する
    ことを特徴とする請求項3記載のソフトウェア成果物生成システム。
JP2006298220A 2006-11-01 2006-11-01 ソフトウェア成果物生成方法及びそのシステム Expired - Fee Related JP4895374B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006298220A JP4895374B2 (ja) 2006-11-01 2006-11-01 ソフトウェア成果物生成方法及びそのシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006298220A JP4895374B2 (ja) 2006-11-01 2006-11-01 ソフトウェア成果物生成方法及びそのシステム

Publications (2)

Publication Number Publication Date
JP2008117081A JP2008117081A (ja) 2008-05-22
JP4895374B2 true JP4895374B2 (ja) 2012-03-14

Family

ID=39502952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006298220A Expired - Fee Related JP4895374B2 (ja) 2006-11-01 2006-11-01 ソフトウェア成果物生成方法及びそのシステム

Country Status (1)

Country Link
JP (1) JP4895374B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318812A (ja) * 2000-05-11 2001-11-16 Nec Corp 性能評価モデル生成装置および性能評価モデル生成方法

Also Published As

Publication number Publication date
JP2008117081A (ja) 2008-05-22

Similar Documents

Publication Publication Date Title
US8490049B2 (en) Faceted, tag-based approach for the design and composition of components and applications in component-based systems
JP5049280B2 (ja) ローカリゼーションデータの拡張可能xmlフォーマットおよびオブジェクトモデル
US8495559B2 (en) Extracting platform independent models from composite applications
EP3296866B1 (en) Method implemented by a computer that presents software-type applications based on design specifications
US10031746B2 (en) Analyzing components related to a software application in a software development environment
CN111104103B (zh) 一种软件编辑微服务的可视化方法及系统
US20100121888A1 (en) Automatic designation of footnotes to fact data
US20120078809A1 (en) Integrating sub-processes in business process modeling notation processes
US20070067341A1 (en) Automated user interface functional requirements tool
CN111784108B (zh) 一种主数据管理平台的建模方法和装置
JP2013518321A (ja) パターンベースのユーザインターフェース
US20090024552A1 (en) Unified development guidelines
US20060235660A1 (en) Customized processing in association with finite element analysis
JP4686117B2 (ja) ソースコード変換装置、ソースコード変換方法、およびプログラム
JP4895374B2 (ja) ソフトウェア成果物生成方法及びそのシステム
JP4886626B2 (ja) ソフトウェア成果物管理システム、方法及びそのプログラム
JP2007004327A (ja) プロジェクト管理装置及びプロジェクト管理方法及びプロジェクト管理プログラム
JP4895373B2 (ja) ソフトウェア成果物再利用方法及びそのシステム
JP4481037B2 (ja) テスト支援装置
JP2012194616A (ja) オブジェクト指向モデル設計支援装置
JP2007094453A (ja) プログラム開発支援システム、プログラム開発支援方法およびプログラム
Hart Redesigning to make better use of screen real estate
Bouillet et al. A faceted requirements-driven approach to service design and composition
JP2009104336A (ja) ソフトウェア成果物管理システム、方法及びそのプログラム
Mamouni et al. ZCMGenerator: Generation of ZCM Models from ZC2M Metamodel Based on MDA and ADM Approaches

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090114

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110613

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110615

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111219

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111219

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees