JP4625155B2 - 要求仕様記述支援装置およびその方法、記録媒体 - Google Patents
要求仕様記述支援装置およびその方法、記録媒体 Download PDFInfo
- Publication number
- JP4625155B2 JP4625155B2 JP2000078548A JP2000078548A JP4625155B2 JP 4625155 B2 JP4625155 B2 JP 4625155B2 JP 2000078548 A JP2000078548 A JP 2000078548A JP 2000078548 A JP2000078548 A JP 2000078548A JP 4625155 B2 JP4625155 B2 JP 4625155B2
- Authority
- JP
- Japan
- Prior art keywords
- use case
- history
- use cases
- requirement specification
- cases
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は要求仕様記述支援装置およびその方法、記録媒体に関し、特に、ソフトウェア等のシステム開発で用いる要求仕様の記述を支援するための装置に用いて好適なものである。
【0002】
【従来の技術】
一般に、コンピュータを利用したシステム開発は、その要求仕様の定義から基本設計、詳細設計などの過程を経て最終的にコーディングされ、必要に応じてデバッグされて完成となる。この中で、特に要求仕様の定義は、システム開発を行う上で非常に重要な意味を持つものである。すなわち、要求仕様の中で曖昧な記述や誤解を生じるような記述をしていると、その内容をもとに設計され作成されたシステムは、全く使えないものか、ユーザの全く期待していなかったものになってしまうことが多い。
【0003】
また、要求仕様をきちんと記述していない場合、システム開発においてその要求定義の問題が発覚するのは、設計が終わったとき、あるいはコーディングを開始してからであることが多いが、この段階で間違いを直すのは簡単ではなく、莫大な開発コストがかかる。これに対して、最初の要求仕様をきちんと記述しておけば、その後で発生する手戻り作業を極力抑えることができる。したがって、要求仕様をきちんと記述しておくことは、極めて重要であると言える。
【0004】
従来、要求仕様は、システム開発の前段階において、現状システムと改善後のシステム、あるいは新しいシステムの内容などについて、システムが備える機能を中心として、人間が行う作業、データの発生や流れ、データの出力などを人間の言葉や図面を用いて記述していた。また、最近では、要求仕様を記述するのに種々の方法が用いられるようになってきており、その中の1つに、システムの機能ではなく用途に着目して記述を行うユースケースと呼ばれるものも登場してきている。
【0005】
【発明が解決しようとする課題】
しかしながら、要求仕様の記述方法としては色々なものがあるが、何れの方法によっても、その記述された内容からシステム設計に漏れや誤り等がないかどうかをチェックするのは、人手によっていた。例えば、要求仕様として記述された文章や図面そのものを人間が見て、そこからデータの発生、利用関係、出力等や、誰が何を入力してどんな作業を行うのかなどの色々なチェックをその人間の判断で行っていた。
【0006】
ところが、これらのチェックは、人間が手作業で行うものなので、見落としや間違いなどが発生しやすい。また、コンピュータ等を利用してもある程度はチェックできるが、どのように行えばチェックが正確かつ容易になるかは、明確でなかった。特に、作成した要求仕様に基づきシステムの動きをチェックすることは、要求仕様の記述の間違いや抜け等をチェックする上で重要であるが、これは非常に面倒で、時間のかかるものであった。
【0007】
本発明は、このような実情に鑑みて成されたものであり、一定の基準に基づいて記述されたシステムの要求仕様から、システムの動きを表すシナリオを容易に生成できるようにすることにより、正確な要求仕様を記述することを支援できるようにした要求仕様記述支援装置および方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明の要求仕様記述支援装置は、複数のユースケースにより構成される要求仕様の記述を支援するための要求仕様記述支援装置であって、所定のフォーマットに従って自然言語で記述された上記複数のユースケースと、上記複数のユースケース間に予め設定されたリンク先を表すリンク情報とを記憶する記憶手段と、上記リンク情報に従ってリンク先のユースケースを順次読み出すユースケース実行手段と、上記ユースケース実行手段によってユースケースが読み出された過程を特定可能な履歴を履歴記憶手段に記録する履歴記録手段と、を備えたことを特徴とする。
本発明の要求仕様記述支援方法は、複数のユースケースにより構成される要求仕様の記述を支援するための要求仕様記述支援装置であって、所定のフォーマットに従って自然言語で記述された上記複数のユースケースと、上記複数のユースケース間に予め設定されたリンク先を表すリンク情報とを記憶する記憶手段と、ユースケース実行手段と、履歴記録手段と、履歴記憶手段とを備えた要求仕様記述支援装置によって実行される要求仕様記述支援方法であって、上記ユースケース実行手段が、上記リンク情報に従ってリンク先のユースケースを順次読み出すユースケース実行ステップと、上記履歴記録手段が、上記ユースケース実行ステップによってユースケースが読み出された過程を特定可能な履歴を上記履歴記憶手段に記録する履歴記録ステップとを備えたことを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、コンピュータを、複数のユースケースにより構成される要求仕様の記述を支援するための要求仕様記述支援装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータを、所定のフォーマットに従って自然言語で記述された上記複数のユースケースと、上記複数のユースケース間に予め設定されたリンク先を表すリンク情報とを記憶する記憶手段と、上記リンク情報に従ってリンク先のユースケースを順次読み出すユースケース実行手段と、上記ユースケース実行手段によってユースケースが読み出された過程を特定可能な履歴を履歴記憶手段に記録する履歴記録手段として機能させるためのプログラムを記録したことを特徴とする。
【0025】
本発明は上記技術手段より成るので、所定の基準に従って記述された要求仕様中に含まれる各ユースケースが順次実行される過程で、実行されたユースケースが順次履歴として記録されていくこととなり、その結果、ユースケースの実行の流れ、つまりシステムの動きを表すシナリオが生成される。なお、ここで言う所定の基準とは、例えば、要求仕様の記述中にユースケース間のリンク情報が含まれるように定められたものであり、またユースケースの実行とは、例えばリンク先のユースケースを読み込んで表示することを言う。ユーザは、このように生成されたシナリオを参照することによって、本来あるべきユースケースに漏れがないかどうかとか、未実行のユースケースがないかどうかなどを確認することで、要求仕様が適切に書かれているかどうかをチェックすることが可能となる。
【0026】
本発明の他の特徴によれば、構造化されたユースケースの利用、汎化、拡張の関係に従って、あるユースケース内のイベントからそのリンク先のユースケースを読み出しながら各ユースケースが順次実行され、その実行過程が履歴として記録されていくこととなり、その結果、ユースケースの流れだけでなく、更に各ユースケース内に含まれるイベントの流れまで表すシナリオが生成される。これにより、各ユースケースによる処理の流れがより詳細に分かるようになる。
【0027】
本発明のその他の特徴によれば、生成されたシナリオを用いて、そのシナリオ通りに一連の処理を実行した場合に必要な総処理時間が演算される。このように、生成されたシナリオを実行するのに必要な総処理時間を算出することにより、現行業務の分析、システム化に対する要求の妥当性あるいは実現可能性などを判断するための1つの指標を得ることができる。
【0028】
本発明のその他の特徴によれば、個々のユースケースに対して重要度や利用頻度等を設定するのではなく、生成されたシナリオに対して重要度や利用頻度等を設定すると、その設定内容から個々のユースケースの重要度や利用頻度等が求められることとなる。これにより、重要度や利用頻度等の設定作業を簡易にすることが可能となるとともに、その設定をユーザにとって分かりやすいものとすることが可能となる。
【0029】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照しながら説明する。
【0030】
(第1の実施形態)
図1は、本発明の第1の実施形態による要求仕様記述支援装置の要素的特徴を表す機能構成ブロック図である。
図1において、要求仕様記述部1は、あらかじめ定められた所定のフォーマットに従って、要求仕様をユースケースの形で記述するものである。ここで、ユースケースとは、開発するシステムが業務上どのように利用されるのかという点に着目して、システムの稼働時にオペレータが行う一連のアクション(イベント)等を、トランザクション毎に自然言語で記述したものを言う。
【0031】
図2は、本実施形態による要求仕様の入力画面の例を示す図である。図2において、ツリー構造表示画面21は、あるシステムの開発プロジェクトについて定義した要求仕様モデルをツリー構造にて表示するための画面である。この画面21の下方には、タグ22a,22bが設けられており、一方のタグ22aをクリックすると、図2に示されるようにユースケースの入力画面となり、もう一方のタグ22bをクリックすると、図示しないビジネスルールの入力画面となる。なお、ビジネスルールは、開発されたシステムによって業務を遂行する上で守るべきルールを示すものである。
【0032】
図2の例では、プログラミングの教育システムを開発するプロジェクトにおいて要求仕様として定義する情報の例を示しており、上記ツリー構造表示画面21内には、そのプロジェクトにおけるユースケースの利用関係とアクタ(ユースケース中のそれぞれのアクションを誰が行うかを示すもの)の一覧とが示されている。すなわち、ここに示されるツリー構造としては、“プロジェクト”の下層に“ユースケース”と“アクタ”があり、上記“ユースケース”の下層に“外部”、“内部”および“情報システム”がある。
【0033】
更にここでは、ユースケース“外部”の中のユースケースの利用関係を特に示している。すなわち、ユースケース“外部”と書かれた階層の下の階層には、“演習問題の提供”、“評価”および“○○知識獲得”というユースケースがあり、上記“演習問題の提供”の下の階層には更に“事前準備”および“演習問題の公開”というユースケースがある。さらに、上記“演習問題の公開”の下の階層には更に“演習問題の実装”というユースケースがある。
【0034】
このように、ある業務システムを作成する1つのプロジェクトに関する要求仕様は、システム上で行う個々の業務を単位として記述した複数のユースケースから構成される。
ここで、例えばツリー構造表示画面21内で任意のユースケースの部分をマウスでクリックすると、そのユースケースの入力画面23がツリー構造表示画面21の右側に表示される。
【0035】
図2の例では、“演習問題の実装”というユースケースの部分がクリックされたときの様子を示している。このユースケース入力画面23では、ユースケース名の表示の後に、目的、事前条件、基本系列、代替系列、事後条件およびデータの入力画面が表示される。なお、図2中では代替系列、事後条件およびデータの入力画面が表されていないが、これらはユースケース入力画面23を下にスクロールさせると見えてくるようになっている。
【0036】
上記ユースケース入力画面23内の目的の欄には、そのユースケースにおいてどんな業務を行うのかの大まかな内容を定義する。また、事前条件の欄には、その業務を行うために事前に行われていることが必要な条件を定義する。図2の例では、“演習問題の実装”の目的である演習問題に対する解答の提出を行うための事前条件として、その演習問題が箇所研修生に公開されている、ということが定義されている。
【0037】
また、事後条件の欄には、そのユースケースで定義されている動作を行った後にどんな状態となるかについて定義する。例えば、動作が成功に終わった場合と、失敗に終わった場合とに分けて、それぞれの場合にどういう状態となるかを定義する。なお、例えばここに、次に実行すべきユースケースを記述することにより、ユースケースのジャンプ先にリンクを張るようにしても良い。また、データの欄には、そのユースケースで定義されたアクション(イベント)を行う際に、どんなデータを入出力するかについて定義する。
【0038】
また、基本系列の欄には、そのユースケースで誰が何を行うか等の具体的な内容を定義する。ここでは、業務の基本的な流れを表す具体的な動作の内容を示すイベントと、それを誰が行うかを表すアクタと、そのイベントを行う際に利用する他のユースケースとを各動作毎に順番に記述していく。なお、図2の例では、ツリー構造表示画面21内から“箇所研修生”をドラッグしてきてアクタの欄に張り付けている状態を示している。
【0039】
代替系列の欄も上記基本系列の欄と同様に、そのユースケースで誰が何を行うか等の具体的な内容を定義する。ただし、基本系列では業務の基本的な流れを表すイベントを記述するのに対して、代替系列では業務の例外的な流れを表すイベントを記述する点で異なる。図3は、この代替系列の入力画面の例を示す図である。
【0040】
図3に示すように、代替系列の欄には、代替される対象となる基本系列の番号と、その基本系列のイベントの代わりに行われる具体的な動作の内容を表すイベントと、そのイベントを行う際に利用する他のユースケースと、イベント終了後の処理の内容を表す後処理とを各動作毎に順番に記述していく。
【0041】
図3の例では、図2に示した上から3番目の基本系列の処理(解答の提出)を行う際に、どうしても解けない場合には講師に質問をするということが代替系列のイベントとして定義されている。また、その質問のイベントが終了した後は、上記3番目の基本系列の処理に戻るということが後処理として定義されている。なお、後処理の他の例として、例えばその代替系列のイベントが終わった後は基本系列に戻ることなくそのまま処理を終了するとか、他の基本系列あるいは代替系列のイベントにジャンプするということ等を定義できる。
【0042】
このように、代替系列の欄において、代替の対象となる基本系列の番号や後処理などを記述することにより、基本系列のユースケースと代替系列のユースケースとの間にリンクが張られることになる。このように基本系列と代替系列との間でリンクが張られた部分は、後にユースケースの実行過程を表すをシナリオを生成する際に、次に実行するユースケースの分岐点として現れることとなる。
【0043】
また、次に実行すべきユースケースの指定は、1つ上の階層のユースケースの利用UC(ユースケース)の欄に記述することにより行われる。利用されるユースケースの基本系列が終わった後は、利用元のユースケースの実行に戻り、最初に起動したユースケースの基本系列が全て終了すると、1つのシナリオが完成することになる。
【0044】
以上のように、本実施形態では、図面等とは異なり、誰もが同じように理解できる自然言語で各種の情報を入力していくことによって要求仕様を記述するようにしているので、開発するシステムの機能とそれを用いて行う業務との対応関係を明確にすることができ、食い違いの発生を極力少なくすることができる。その際、あらかじめ定められた入力項目に対して記述を行えば良いので、ユースケースの記述がしやすく、簡単に入力することができる。また、図2に示すように、入力項目の記述をドラッグ&ドロップ操作によって行うこともできるので、入力ミスを防止することもできる。
【0045】
図1の要求仕様記述部1では、上記図2に示したフォーマット入力画面に基づいて、目的、条件、基本系列、代替系列、データなどの各種情報を含んだユースケースを業務単位毎に順次入力していくとともに、対応するビジネスルールを同じく業務単位毎に順次入力していく。要求仕様格納部2は、このように入力された要求仕様の情報を格納するためのものである。ここでは、定義された個々のユースケースおよびビジネスルール毎に要求仕様の情報が格納される。
【0046】
ユースケース実行部3は、図2のように定められた一定の基準に従って記述され、要求仕様格納部2に格納された要求仕様の情報に基づいて、当該要求仕様中に含まれる各ユースケースを順次実行する。具体的には、各ユースケースの記述時に張られたリンクに従って、リンク先のユースケースを順次読み出してモニタ上に表示するという処理を行う。このとき、ユースケースの分岐があればその分岐先の選択肢を表示し、次にどのユースケースを実行するのかをユーザに選択させる。この選択は、表示された選択肢の中の1つをマウス等のポインティングデバイスによって選択指示するための分岐選択部4を用いて行う。
【0047】
また、ログ記録部5は、上記ユースケース実行部3による各ユースケースの実行過程を記録することにより、使用された各ユースケースの履歴をとるものである。すなわち、ユースケースが読み出される毎あるいはモニタ上に表示される毎に、そのユースケースを順次記録していくことにより、システム上でユースケースがどのように処理されていくかの流れ、つまり、そのシステム上の一連の業務がどういう動きで実現されるのかを表したシナリオを生成する。
【0048】
このように生成されたシナリオは、例えばデータベースから成るシナリオ記憶部6に記憶される。シナリオ出力部7は、シナリオがシナリオ記憶部6に記憶されるのと同時、あるいはその後任意の時点において、生成されたシナリオを例えばモニタ上に出力するものである。ユーザは、ここで表示されたシナリオを参照することによって、要求仕様として記述されたシステムの動きを容易に把握することが可能となる。
【0049】
図4は、本実施形態の要求仕様記述支援装置がユーザとの対話的処理によりシナリオを生成している途中の画面例を示す図である。
図4の例は、「演習問題の公開」(ユースケースナンバー:UC006)を指定してシナリオ生成コマンドを実行したときの例を示している。この場合、まず最初にユースケース実行部3は、「演習問題の公開」のユースケースを要求仕様格納部2から読み込み、そのユースケース中に記述されている事前条件と基本系列のイベントとを表示する。
【0050】
このとき、例えばある基本系列のイベントに対して代替系列のイベントが定義されている場合には、分岐先の選択肢を表す分岐メニューをポップアップ表示する。これに対応してユーザが分岐選択部4を用いて何れかの分岐先を選択すると、その選択された内容が表示される。なお、分岐がある場合は、図4中に示したように<分岐>のマークが表示される。図4のユースケース「演習問題の公開」の中では、表示された分岐メニューの中から「演習問題を公開する」という基本系列のイベントを選択した状態を示している。
【0051】
このように分岐先が選択されると、その選択された分岐先に応じて、要求仕様の記述時に定義されたリンクに従って次のユースケースが要求仕様格納部2から読み出されて表示される。図4では、次に「演習問題の実装」(ユースケースナンバー:UC012)のユースケースが読み出されて表示されている。このユースケースの中でも、3番目の基本系列のイベントに対して代替系列のイベントが定義されており、分岐先の選択肢を表す分岐メニューがポップアップ表示されている。
【0052】
このようなユースケース実行部3および分岐選択部4によるインタラクティブ処理によって各ユースケースを順次実行していく際に、ログ記録部5は、その実行過程で使用されたユースケースをシナリオ記憶部6に順に記録していく。図5は、このようなシナリオの生成結果の例を示す図である。この図5には、シナリオ001〜003の3つのシナリオ(使用されたユースケースの名称を列挙したもの)が示されているが、これらはそれぞれ、ユースケースの実行過程で発生した分岐点において異なる分岐先を選択して各々生成したものである。
【0053】
図6は、ユースケース実行部3の動作を示すフローチャートである。図6において、ユーザにより特定のユースケースが指定されてシナリオ生成の実行が指示されると、ユースケース実行部3は、ステップS1で、その指定されたユースケースを要求仕様格納部2の中から読み出す。そして、ステップS2で、その読み出したユースケース中に記述されている事前条件を表示する。
【0054】
次に、ステップS3で、そのユースケース中に代替系列が定義されているかどうかを判断し、定義されていない場合にはステップS4に進み、基本系列を表示する。一方、代替系列がある場合には、ステップS5に進み、図4に示したような分岐マークを付与して表示するとともに、ステップS6で、その代替系列のイベントと、代替の対象となっている基本系列のイベントとを含む複数の選択肢(選択メニュー)をポップアップ表示する。
【0055】
そして、ステップS7で、表示された選択肢の中から基本系列あるいは代替系列のどちらが選択されたかを判断し、基本系列が選択された場合は、ステップS4に進み、その選択された基本系列のイベントを表示する。さらに、ステップS9で、利用するユースケースがあるかどうかを判断し、ない場合にはステップS10に進んでユースケースの終了を判定し、終了していなければステップS3に戻り、上述の動作を再び実行する。
【0056】
上記ステップS10でユースケースが終了していると判断されたときは、ステップS11に進み、その終了したユースケースが最初に起動したユースケースかどうかを判定し、最初に起動したものであれば、処理は終了する。また、最初に起動したユースケースでない場合は、ステップS12に進み、1つ上の階層のユースケースである元のユースケースの実行に戻り、その後ステップS3に戻って上述の動作を再び実行する。
【0057】
一方、上記ステップS9で、利用するユースケースがあると判断した場合は、ステップS1に戻り、その別のユースケースを要求仕様格納部2から新たに読み出す。そして、ステップS2以降の処理をその新たなユースケースについて同様に行う。
【0058】
また、上記ステップS7で代替系列が選択された場合は、ステップS8に進み、その選択された代替系列のイベントをそれまでの表示に続けて表示する。さらに、ステップS9で、利用するユースケースがあるかどうかを判断し、ある場合にはステップS1に戻ってその別のユースケースを要求仕様格納部2から新たに読み出して、ステップS2以降の処理をその新たなユースケースについて同様に行う。一方、利用するユースケースがない場合は、ステップS10に進み、それ以降は上述した処理を実行する。
【0059】
この図6に示すような動作をユースケース実行部3が実行することにより、複数のユースケースがユーザとの対話的処理により順次実行されていく。このとき図1のログ記録部5が、実行された各ユースケースをそれらが実行される毎にシナリオ記憶部6にログとして記録していくことにより、ユースケースの実行過程を表したシナリオが自動的に生成される。つまり、ユーザが必要に応じて分岐先を選択するだけで、システムの動きを表すシナリオを生成することができる。
【0060】
ユーザは、この生成されたシナリオを見ることによって、システムの動きを容易に確認することができる。これにより、そのシステムにおけるビジネスプロセスの要求仕様の整合性を検証することが容易となり、ビジネスプロセスの問題点を容易に把握することができるようになる。また、必ず通らなければならないユースケースがある場合に、それがシナリオ内で使用されているかどうかを見ることで、ユースケースの抜けや記述漏れなどがないかどうかをチェックしたり、未実行のユースケースがないかどうかをチェックすることもできる。
【0061】
また、上述のように生成されたシナリオを参照することによってシステムの動きをログとして確認することができることの他に、本実施形態ではユーザとの対話的な処理によって各ユースケースを順次実行するようにしているので、ユースケースを用いて要求仕様を記述したシステムの動きを、そのシステムを実際に設計・実装する前に疑似的に体験することもできる。
【0062】
そのため、記述した要求仕様に基づきシステムの設計・実装に入る前の段階で当該システムを疑似的に動かすことができる。必要であればそこで要求仕様の手直しをすることにより、システムを開発する上で必要な要求仕様を、最終的に矛盾や抜けがなく、かつユーザが満足するように記述することができる。これにより、その後の設計段階や実装段階で手戻り作業が発生してしまう不都合を極力抑えることができ、システム開発のコストを大幅に削減することができる。
【0063】
なお、上記実施形態では、分岐点は代替系列が定義されているところに発生するが、ユースケース入力画面の事後条件の欄に、ジャンプ先として複数のユースケースを記述することにより、ここもユースケース実行の分岐点とするようにしても良い。この場合、分岐先の選択肢を表す分岐メニューは、代替系列が定義されているところに限らず、事後条件によって複数の分岐先が定義されているところでも表示されることになる。
【0064】
また、上記実施形態では、ユースケースの実行過程で現れる分岐において、次に実行するユースケースをユーザに選択させることにより、ユーザとの対話的処理に基づきシナリオを生成するようにしているが、本発明はこのような手法には限定されない。
【0065】
例えば、分岐点において次に実行するユースケースを装置が自動的に選択することにより、いくつかのシナリオを自動的に生成するようにしても良い。また、この場合、図1に示すように条件設定部8を設け、各ユースケースを実行する際の条件(例えば、代替系列には絶対に飛ばずに、基本系列だけでユースケースを実行する等の条件)をユースケース実行部3にあらかじめ与えておき、その条件の範囲内で自動的に分岐処理を行ってシナリオを生成するようにしても良い。
【0066】
さらに、上記のように自動分岐を行ってシナリオを生成する場合、分岐先としてある1つのパターンあるいは数種類のパターンを選択してシナリオを自動生成するようにしても良いし、各分岐点において次に実行するユースケースとして取り得る全ての分岐先を順次選択することにより、あらゆるパターンのシナリオを全て自動的に生成するようにしても良い。
【0067】
また、上記実施形態では、記録されるシナリオ中には、図6に示したようにユースケースの名称と番号だけが含まれるが、そのユースケースに関係するアクタや入出力されるデータなど、ユースケースを構成する他の構成要素を一緒に表示するようにしても良い。また、本実施形態において記録されるシナリオでは、それを見ただけではどこでどういう分岐があったかが分からないので、分岐条件だけのログをシナリオ中あるいはこれとは別に記録するようにしても良い。
【0068】
また、上記実施形態では、必ず通らなければならないユースケースの抜けなどを、生成されたシナリオをユーザが目で見て判断していたが、そのようなユースケースをあらかじめ設定しておくことにより、装置が自動的にチェックを行うようにしても良い。また、シナリオが途中で終わってしまっていないかどうかを検証するために、ある特定のユースケースでシナリオが終わっているかどうかを装置が自動的にチェックするようにしても良い。さらに、これらの場合、不備があったときにエラーメッセージを出力するようにしても良い。
【0069】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
第2の実施形態は、要求仕様をユースケースの形態で記述する際に、ユースケースやアクタなどを構造的に記述できるようにしたものである。構造化されたユースケースやアクタの記述方法として、ここではUML(Unified Modeling Language )を利用する。
【0070】
上記UMLにおいては、構成要素間の関係の種類として、利用(uses)、汎化(generalization)、拡張(extends )の3つが定義されている。利用にはユースケース間の利用があり、汎化にはユースケース間およびアクタ間の汎化があり、拡張にはユースケース間の拡張がある。ここで言う利用、汎化、拡張は、UMLのバージョン1.1 における定義に基づいたものであるが、UMLのバージョン1.3 における定義に基づくものに置き換えることも可能である。
【0071】
本実施形態では、ユースケース間の関係を定義する際、あるユースケース内の基本系列を構成する1個のイベントを他の1個のユースケースに対応させて構造化している点に特徴がある。このようにすることにより、ユースケースやアクタを構造化したときの詳細な関係を分かり易くすることができる。
【0072】
ここで、利用とは、複数のユースケース間で共通に利用可能な共通サブユースケースがあるときに、あるユースケースからその共通サブユースケースを利用する関係を言う。汎化とは、元のユースケースや元のアクタに対して部分的な変更を加えて新たなユースケースや新たなアクタを作る関係を言う。なお、あるユースケースAをベースに、それを継承して差分を記述して別のユースケースBを定義した場合、ユースケースAはユースケースBを汎化したものであると言い、ユースケースBはユースケースAを特殊化したものであると言い、両者の関係を汎化関係という。また、拡張とは、基本的なイベントの流れを規定したユースケースにおいて、ある特定の条件を満たしたときに別の拡張ユースケースの処理を行う関係を言う。
【0073】
図7は、本実施形態によるユースケースの入力画面の例を示す図であり、基本系列を定義する部分を特にピックアップして示している。この図7に示す基本系列の入力欄においては、図2の場合と同様に、そのユースケースで誰が何を行うか等の具体的な内容をイベント欄31およびアクタ欄32に記述する。このとき、特定のイベントにおいて共通サブユースケースを利用することがあれば、その利用する共通サブユースケースの名称を利用ユースケース(利用UC)の欄33に記述する。
【0074】
図7の例では、“ユースケース1”の基本系列において“イベント2”の中で利用する共通サブユースケースとして“ユースケース5”を定義している。これにより、“ユースケース1”と“ユースケース5”との間に利用(uses)の関係が張られる。
【0075】
また、図7の入力画面には、利用UC作成ボタン34、特殊化ボタン35および拡張ボタン36が設けられている。このうち、利用UC作成ボタン34は、複数のイベント列を指定して共通サブユースケースを作成することを指示するためのボタンである。
【0076】
例えば、図7に示す入力画面上で、共通サブユースケースに落とし込みたいイベント列を指定して利用UC作成ボタン34をマウスでクリックすると、その指定したイベント列を要素とする共通サブユースケースの名称や概要(目的)の入力を促す画面が現れる。この画面で共通サブユースケースの名称や概要(目的)を入力してOKボタンを押すことにより、共通サブユースケースが作成される。
【0077】
図8は、この共通サブユースケースを作成する際の動作を説明するための図である。図8では、a〜fを内容とするイベント列から成るユースケース▲1▼があったときに、a〜dの内容は複数のユースケースで利用する可能性があるためにこれを共通サブユースケースとして作成しようとする場合の例を示している。
【0078】
この場合、図8(a)に示す元のユースケース▲1▼において、共通サブユースケースとすべきイベント列a〜dを指定して利用UC作成ボタン34をクリックし、更に当該共通サブユースケースの名称として“ユースケース▲2▼”を入力するとともに、概要として“X”を入力すると、図8(b)に示すような共通サブユースケース▲2▼が作成される。また、図8(c)に示すように、元のユースケース▲1▼の4つのイベント列a〜dが1つのイベントX(共通サブユースケース▲2▼を利用したもの)に置き換えられたユースケース▲1▼′が自動的に作られる。
【0079】
このようにして共通サブユースケース▲2▼を作成した後は、ユースケース▲1▼′以外の他のユースケースからもこの共通サブユースケース▲2▼を利用することが可能となる。
このように共通サブユースケースを作成してこれを複数のユースケースで共通に利用できるようにすることにより、ユースケースの再利用を容易にすることができ、オペレータがユースケースを記述する際の作業負担を軽減することができる。
【0080】
また、特殊化ボタン35は、あるユースケースと汎化関係にある他のユースケースを作成することを指示するためのボタンである。例えば、図7に示す入力画面上で特殊化ボタン35をクリックすると、そのとき表示されていたものと同内容のイベント列を有するユースケースが別の入力画面として現れる。ここで、所望の箇所を変更した上で、新たなユースケースの名称や概要(目的)を入力してOKボタンを押すことにより、元のユースケースと汎化関係にある別の特殊化されたユースケースが作成される。
【0081】
図9は、この特殊化されたユースケースを作成する際の動作を説明するための図である。図9(a)のようにa〜eを内容とするイベント列から成るユースケース▲1▼があるときに、特殊化ボタン35を押すと、図9(b)に示すように、ユースケース▲1▼のイベント列a〜eをそのまま反映した別のユースケースの入力画面が現れる。このとき、特殊化用のユースケースが新たに作られているが、この段階では、元のユースケースを特殊化したものであることを示す情報のみが新たな記憶領域に格納され、中身の情報は何も格納されていない状態である。
【0082】
次に、図9(b)に示す入力画面上で所望の箇所を変更する。図9の例では、イベントcの内容をイベントxに変更している。さらに、特殊化用ユースケースの名称として“ユースケース▲2▼”を入力すると、図9(c)に示すように特殊化されたユースケース▲2▼が作成される。このとき、特殊化用ユースケースの記憶領域には、元のユースケース▲1▼から変更があった部分の差分データのみ、つまりイベントxのデータのみが格納される。他の変更されていない部分の情報は、元のユースケース▲1▼が格納されている記憶領域からデータを読み出して画面上に表示している。
【0083】
様々なユースケースを記述していく際、異なるユースケースでも同内容の入力を繰り返し行うことが少なからずある。この場合において、従来は全てのユースケースについて最初から記述していたが、本実施形態によれば、一部のみが異なるユースケースを継承し、異なる部分の定義だけを記述すれば良いので、オペレータの作業量を格段に少なくすることができる。
【0084】
また、特殊化されたユースケースでは、その親のユースケースとの差分データだけを格納しているので、親のユースケースにおいて共通の部分に修正が行われたとしても、その修正内容は特殊化されたユースケースにも反映され、常に整合性を正しく維持することができる。したがって、全ての記述をオペレータの手作業で入力していた従来と比べて、修正漏れや入力の間違いを少なくすることができ、より正確な要求仕様を記述することができるようになる。
【0085】
また、拡張ボタン36は、あるユースケースと拡張の関係にある他のユースケースを作成することを指示するためのボタンである。例えば、図7に示す入力画面上で拡張ボタン36をクリックすると、拡張ユースケースを記述するための別の入力画面が現れる。ここで、元のユースケースからの分岐条件と、その条件を満たした場合に実行するイベント列とを入力するとともに、元のユースケースから分岐する分岐場所と、拡張ユースケースの処理が終わった後に戻る元のユースケースの戻り場所とを入力することにより、元のユースケースと拡張の関係にある別のユースケースが作成される。
【0086】
図10は、この拡張されたユースケースを作成する際の動作を説明するための図である。図10(a)のようにa〜eを内容とするイベント列から成るユースケース▲1▼があるときに、拡張ボタン36を押すと、拡張ユースケースを記述するための別の入力画面が現れる。ここで、例えば、分岐条件の内容を含むイベント列x〜zを入力するとともに、元のユースケース▲1▼の分岐場所としてイベントc、拡張ユースケースのイベント列x〜zを実行した後に戻る元のユースケース▲1▼の戻り場所としてイベントdを入力することにより、図10(b)に示すような拡張ユースケース▲2▼が作成される。
【0087】
図11は、上述のようにユースケース等の構造化を行うことができるようにした第2の実施形態による要求仕様記述支援装置の要素的特徴を表す機能構成ブロック図である。なお、この図11において、図1に示した符号と同一の符号を付したものは、同一の機能を有するものであるので、これについての詳細な説明は省略する。
【0088】
図11において、要求仕様記述部11は、図1に示した要求仕様記述部1と同様に、あらかじめ定められた所定のフォーマットに従って、要求仕様をユースケースの形で記述するものである。本実施形態の要求仕様記述部11はさらに、個々のユースケースごとに、そのユースケースで示される業務を実行するのにどれくらいの時間がかかるか(例えば、最低でどれくらいの時間がかかるか)を表した時間情報も記述する。
【0089】
構造化指定部12は、要求仕様格納部2に格納されている要求仕様の情報に対して利用、汎化、拡張の何れかの関係を指定するものである。構造化指定部12は、これら3つの関係の種類を指定するだけでなく、必要に応じて構造化を行う範囲も指定する。要求仕様格納部2に格納されている元の要求仕様情報から構造化指定部12により生成された利用、汎化あるいは拡張の関係を有する要求仕様情報も、要求仕様格納部2に格納される。
【0090】
例えば、要求仕様格納部2に格納されているあるユースケースのイベント列の中から共通サブユースケースを作成しようとするときは、構造化指定部12により利用関係を指定するとともに、作成対象とするイベント列の範囲を指定する。さらに、要求仕様記述部11を用いて必要な事項(当該共通サブユースケースの目的、事前条件、事後条件など)を記述することにより、共通サブユースケースに関する要求仕様の情報が要求仕様格納部2内に作られる。
【0091】
また、要求仕様格納部2に格納されているあるユースケースを特殊化して別のユースケースを作成しようとするときは、構造化指定部12により汎化関係を指定する。このとき、要求仕様格納部2には、特殊化用のユースケースを格納するための領域が確保されるが、この段階では、元のユースケースを特殊化したものであることを示す情報のみがこの新たな記憶領域に格納される。
【0092】
さらに、要求仕様記述部11を用いて所望の箇所を修正するとともに、必要な事項(当該特殊化ユースケースの目的、事前条件、事後条件など)を記述することにより、特殊化されたユースケースに関する要求仕様の情報が要求仕様格納部2内に作られる。このとき要求仕様格納部2に格納される情報は、当該要求仕様格納部2に格納されている元のユースケースとの差分データのみである。
【0093】
また、要求仕様格納部2に格納されているあるユースケースを拡張して別のユースケースを作成しようとするときは、構造化指定部12により拡張関係を指定する。さらに、要求仕様記述部11を用いて必要な事項(当該拡張ユースケースの目的、事前条件、拡張ユースケースの基本系列、事後条件など)を記述することにより、拡張ユースケースに関する要求仕様の情報が要求仕様格納部2内に作られる。
【0094】
モード指定部13は、ユースケース実行部3や分岐選択部4を用いて要求仕様中に含まれる各ユースケースを順次実行してその実行過程を記録する際に、簡易なログをとる簡易モードと、詳細なログをとる詳細モードとの何れかを指定するものである。このモード指定部13により指定されたモード情報は、ユースケース実行部3および分岐選択部4に伝えられ、指定されたモードに応じた処理がこのユースケース実行部3および分岐選択部4において行われる。
【0095】
上記簡易モードは、第1の実施形態のように、基本系列のユースケースと代替系列のユースケースとの間に張られたリンクに従って、あるユースケースからそのリンク先のユースケースを順次読み出しながらシナリオを作っていくモードである。この簡易モードを指定したときに生成されるシナリオは、図5のようにユースケース間の流れのみを示したものである。
【0096】
一方、詳細モードは、基本系列のユースケースと代替系列のユースケースとの間に張られたリンクに加え、構造化されたユースケースの利用、汎化、拡張の関係(リンク)に従って、あるユースケース内のイベントからそのリンク先のユースケースを順次読み出しながらシナリオを作っていくモードである。構造化されたユースケース間の関係は、上述したように、あるユースケースを構成するイベントと他のユースケースとの間に張られた関係である。したがって、この詳細モードを指定したときに生成されるシナリオは、図12に示すように、ユースケースの流れだけでなく、更に各ユースケース内に含まれるイベントの流れまで示したものとなる。
【0097】
図12に示すシナリオ001では、ユースケース001のイベント1およびイベント2の処理を行った段階でユースケース005のイベント1〜3の処理を実行し、その後再びユースケース001に戻り、イベント3から処理を続行していることが履歴として記録されている。このように、本実施形態のシナリオによれば、処理の流れがより詳細に分かるようになり、ユースケースの記述漏れや未実行のユースケースなど、要求仕様が適切に記述されているかどうかのチェックをより詳細に行うことができる。
【0098】
図13は、詳細モードでシナリオを生成する際のユースケース実行部3の動作を示すフローチャートである。図13において、ユーザにより特定のユースケースが指定されてシナリオ生成の実行が指示されると、ユースケース実行部3は、ステップS11で、その指定されたユースケースを要求仕様格納部2の中から読み出す。そして、ステップS12で、その読み出したユースケースに対して拡張ユースケースが定義されているかどうかを判断する。
【0099】
ここで、拡張ユースケースが定義されている場合は、ステップS13に進み、図4に示したような分岐マークを付与して表示するとともに、ステップS14で、その拡張ユースケース内の先頭のイベントと、拡張の対象となっている元のユースケース内のイベントとを含む複数の選択肢(選択メニュー)をポップアップ表示する。
【0100】
そして、ステップS15で、表示された選択肢の中から拡張ユースケースのイベントが選択されたかどうかを判断し、拡張ユースケースのイベントが選択された場合は、ステップS11に戻り、その選択された拡張ユースケースを要求仕様格納部2の中から読み出す。そして、その読み出した拡張ユースケースに対して以上と同様の処理を行う。一方、拡張ユースケースのイベントが選択されていない場合は、ステップS16で元のユースケースの実行に戻り、ステップS18に進む。
【0101】
また、上記ステップS12において、要求仕様格納部2の中から読み出したユースケースに対して拡張ユースケースが定義されていないと判断した場合は、ステップS17で、その読み出したユースケース中に記述されている事前条件を表示した後、ステップS18に進む。
【0102】
ステップS18では、対象としているユースケースが別のユースケースを特殊化したものであるかどうかを判断する。ここで、別のユースケースを特殊化したものである場合は、ステップS19に進み、継承元のユースケースとそれを特殊化したユースケースの差分データとを要求仕様格納部2の中から読み出す。そして、ステップS20で、上記読み出した継承元のユースケースと特殊化したユースケースの差分データとを合わせて特殊化したユースケースを作成する。
【0103】
さらに、ステップS21で、上記作成した特殊化ユースケース中に記述されている事前条件を表示した後、ステップS22に進む。一方、上記ステップS18において、対象としているユースケースが別のユースケースを特殊化したものでないと判断した場合は、上記ステップS19〜S21の処理は行うことなく、ステップS22に進む。
【0104】
ステップS22では、現在対象としているユースケース中に代替系列が定義されているかどうかを判断し、定義されていない場合にはステップS26に進み、基本系列を表示する。一方、代替系列がある場合には、ステップS23に進み、図4に示したような分岐マークを付与して表示するとともに、ステップS24で、その代替系列のイベントと、代替の対象となっている基本系列のイベントとを含む複数の選択肢(選択メニュー)をポップアップ表示する。
【0105】
そして、ステップS25で、表示された選択肢の中から基本系列あるいは代替系列のどちらが選択されたかを判断し、基本系列が選択された場合は、ステップS26に進み、その選択された基本系列のイベントを表示する。さらに、ステップS28で、拡張ユースケースがあるかどうかを判断し、ある場合にはステップS11に戻るが、ない場合にはステップS29に進む。
【0106】
ステップS29では、利用するユースケースがあるかどうかを判断し、ない場合にはステップS30に進んでユースケースの終了を判定し、終了していなければステップS22に戻り、上述の動作を再び実行する。
【0107】
上記ステップS30でユースケースが終了していると判断されたときは、ステップS31に進み、その終了したユースケースが最初に起動したユースケースかどうかを判定し、最初に起動したものであれば、処理は終了する。また、最初に起動したユースケースでない場合は、ステップS32に進み、1つ上の階層のユースケースである元のユースケースの実行に戻り、その後ステップS22に戻って上述の動作を再び実行する。
【0108】
一方、上記ステップS29で、利用するユースケースがあると判断した場合は、ステップS11に戻り、その別のユースケースを要求仕様格納部2から新たに読み出す。そして、ステップS12以降の処理をその新たなユースケースについて同様に行う。
【0109】
また、上記ステップS25で代替系列が選択された場合は、ステップS27に進み、その選択された代替系列のイベントをそれまでの表示に続けて表示する。さらに、ステップS28で、拡張ユースケースがあるかどうかを判断し、ない場合にはステップS29で更に利用するユースケースがあるかどうかを判断する。利用するユースケースがある場合にはステップS11に戻ってその別のユースケースを要求仕様格納部2から新たに読み出して、ステップS12以降の処理をその新たなユースケースについて同様に行う。一方、利用するユースケースがない場合は、ステップS30に進み、それ以降は上述した処理を実行する。
【0110】
この図13に示すような動作をユースケース実行部3が実行することにより、複数のユースケースのイベントがユーザとの対話的処理により順次実行されていく。このとき図11のログ記録部5が、実行された各ユースケースおよび各イベントをそれらが実行される毎にシナリオ記憶部6にログとして記録していくことにより、ユースケースとその内部のイベントの実行過程を表したシナリオが自動的に生成される。つまり、ユーザが必要に応じて分岐先を選択するだけで、システムの動きを表す詳細なシナリオを生成することができる。
【0111】
図11の説明に戻る。総時間演算部14は、シナリオ記憶部6に記憶されたシナリオを用いて、そのシナリオ通りに一連の処理を実行した場合に必要なトータルの要処理時間を演算するものである。すなわち、本実施形態では、個々のユースケースごとに、そのユースケースの業務を実行するのにかかる時間が要求仕様記述部11により記述されている。そこで、総時間演算部14では、シナリオ中に含まれる各ユースケースの処理に必要な時間を合計することにより、そのシナリオのように業務を遂行した場合の仮想的な総実行時間を算出する。
【0112】
このように、生成されたシナリオを実行するのに必要なトータルの要処理時間を算出することにより、現行業務の分析、システム化に対する要求の妥当性あるいは実現可能性などを判断する際の1つの目安を得ることができる。例えば、シナリオを実行するのに非常に多くの時間がかかってしまうことが判明した場合に、そのシナリオを修正する、あるいは作り直すなどの対応をとることが可能となる。
なお、ここでは個々のユースケース毎にその処理時間を設定するようにしているが、ユースケース内の個々のイベント毎にその処理時間を設定するようにしても良い。
【0113】
重要度/利用頻度設定部15は、シナリオ記憶部6に記憶されたシナリオに対して、重要度や利用頻度等を設定するものである。また、シナリオ解析部16は、上記重要度/利用頻度設定部15によりシナリオに設定された重要度や利用頻度等を解析し、当該シナリオに含まれる個々のユースケースの重要度や利用頻度等を求めるものである。
【0114】
上記シナリオ解析部16は、あらかじめ設定されたロジックに従って個々のユースケースに重要度や利用頻度等を設定する。例えば、シナリオ解析部16は、重要度/利用頻度設定部15によってシナリオに設定された重要度や利用頻度の値を、当該シナリオに含まれる個々のユースケースにそのまま設定する。ここで、複数のシナリオに同じユースケースが含まれる場合において、それぞれのシナリオに異なる重要度が設定されたときには、最大の重要度をそのユースケースに設定する。また、複数のシナリオで利用される回数が所定値より大きいユースケースについては、そのユースケースを含むシナリオに設定された重要度よりも高い重要度を設定するなどのロジックを用いても良い。
【0115】
要求仕様を作成する際、作成した要求仕様の内容を後からチェックするためなどの便宜上から、個々のユースケースに重要度や利用頻度を設定することが行われる。例えば、業務の流れとして重要なユースケース、あるいは従来手作業で行っていて処理が煩雑なのでシステム化の要望が大きいユースケースなどには、値の大きな重要度が設定される。
【0116】
通常、このような重要度や利用頻度等は、要求仕様記述部11によって個々のユースケース毎に設定されるが、ユースケースの数が多くなってくると、その作業は非常に煩雑なものとなる。また、要求仕様を記述するオペレータが個々のユースケース毎に重要度や利用頻度等を判断することは必ずしも容易でない。
【0117】
本実施形態では、個々のユースケースに対して重要度や利用頻度等を設定することも勿論可能であるが、重要度/利用頻度設定部15を用いることにより、作成されたシナリオに対して重要度や利用頻度等を設定できるようにしている。これにより、全てのユースケースを網羅するシナリオが全ユースケース数よりも少ない数で実現できた場合には、それらのシナリオに対して重要度や利用頻度等を設定することにより、その設定作業を簡易にすることができる。
【0118】
また、個々のユースケース毎に細かく見るのではなく、ユースケースの流れを表したシナリオに基づき重要度や利用頻度等を全体として見ることができるので、重要度や利用頻度等がユーザにとって分かりやすく、これらの設定を行いやすくすることができる。
【0119】
なお、本実施形態で設定する処理時間、重要度、利用頻度は単なる例に過ぎない。すなわち、個々のユースケースに対して値を定義(または計測)する方が簡単で、それをもとにシナリオに対する値を算出でき、そちらの方が値として意味があるもの、またはその逆に、シナリオに対して値を定義(または計測)する方が簡単で、それをもとに個々のユースケースに対する値を算出でき、そちらの方が値として意味があるものであれば、何れにも適用することが可能である。
【0120】
(本発明の他の実施形態)
なお、以上に説明した本実施形態の要求仕様記述支援装置は、コンピュータのCPUあるいはMPU、RAM、ROMなどで構成されるものであり、RAMやROMに記憶されたプログラムが動作することによって実現できる。したがって、コンピュータが上記機能を果たすように動作させるプログラムを、例えばCD−ROMのような記録媒体に記録し、コンピュータに読み込ませることによって実現できるものである。記録媒体としては、CD−ROM以外に、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。
【0121】
また、コンピュータが供給されたプログラムを実行することにより上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合や、供給されたプログラムの処理の全てあるいは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合も、かかるプログラムは本発明の実施形態に含まれる。
【0122】
また、本発明をネットワーク環境で利用するべく、全部あるいは一部のプログラムが他のコンピュータで実行されるようになっていても良い。例えば、画面入力処理は、遠隔端末コンピュータで行われ、各種判断、ログ記録等は他のセンターコンピュータ等で行われるようにしても良い。
【0123】
なお、上記に示した実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0124】
【発明の効果】
本発明は上述したように、所定の基準に従ってユースケースの形で記述された要求仕様に基づいて、上記要求仕様中に含まれる各ユースケースを順次実行し、その実行過程を記録するようにしたので、ユースケースを順次実行していくだけで、システムの動きを表すシナリオを容易に生成することができる。そして、この生成されたシナリオを参照することにより、ユースケースの抜けや記述漏れがないかどうか等を確認することができる。
【0125】
これにより、要求仕様が適切に書かれているかどうかのチェックを容易に行うことができ、必要に応じてそのチェック結果を要求仕様の記述にフィードバックすることにより、システムを開発する上で必要な要求仕様を正確に記述することができる。したがって、その後の設計段階や実装段階で手戻り作業が発生してしまう不都合を未然に防止することができ、従来に比べてシステムの開発コストを大幅に削減することができる。
【0126】
本発明の他の特徴によれば、ユースケースの形で記述された要求仕様の各構成要素について、利用、汎化、拡張の少なくとも1つの関係を用いて各構成要素を構造化するようにしたので、構造化されたユースケースの利用、汎化、拡張の関係に従って、あるユースケース内のイベントからそのリンク先のユースケースを順次読み出しながらその過程を履歴として記録していくことができ、その結果、ユースケースの流れだけでなく、更に各ユースケース内に含まれるイベントの流れまで表した詳細なシナリオを生成することができる。これにより、処理の流れがより詳細に分かるようになり、システムを開発する上で必要な要求仕様に関してユースケースの記述漏れや未実行のユースケースがないかなど、要求仕様が適切に記述されているかどうかのチェックをより詳細に行って、要求仕様を正確に記述することができる。
【0127】
本発明のその他の特徴によれば、要求仕様を記述する際に、個々のユースケース毎にその処理時間を記述し、ユースケースの実行に伴い履歴として記録されたシナリオについて、その一連の処理を行うのにかかる総処理時間を演算するようにしたので、そのシナリオの善し悪しを判断するための1つの指標を得ることができる。これにより、その指標に基づき要求仕様の修正の必要性などを判断し、必要に応じて要求仕様をより適切なものに記述し直すことができるようになる。
【0128】
本発明のその他の特徴によれば、生成された履歴に対して重要度および利用頻度の少なくとも一方を設定し、この重要度や利用頻度が設定された履歴を解析して、その履歴に含まれる個々のユースケースの重要度および利用頻度を求めるようにしたので、各ユースケースに対して重要度や利用頻度等を個別に設定する場合と比べて、重要度や利用頻度等の設定作業を簡易にすることができるとともに、その設定をユーザにとって分かりやすくすることができ、これらの設定を行いやすくすることができる。
【図面の簡単な説明】
【図1】本発明による要求仕様記述支援装置の要素的特徴を表す機能構成ブロック図である。
【図2】基本系列を含むユースケースの入力画面の例を示す図である。
【図3】代替系列の入力画面の例を示す図である。
【図4】本実施形態の要求仕様記述支援装置がユーザとの対話的処理によりシナリオを生成している途中の画面例を示す図である。
【図5】第1の実施形態によるシナリオの生成結果の例を示す図である。
【図6】図1のユースケース実行部が行う動作を示すフローチャートである。
【図7】第2の実施形態によるユースケースの入力画面の例を示す図である。
【図8】共通サブユースケースを作成する際の動作を説明するための図である。
【図9】特殊化されたユースケースを作成する際の動作を説明するための図である。
【図10】拡張されたユースケースを作成する際の動作を説明するための図である。
【図11】第2の実施形態による要求仕様記述支援装置の要素的特徴を表す機能構成ブロック図である。
【図12】第2の実施形態によるシナリオの生成結果の例を示す図である。
【図13】図11のユースケース実行部が行う動作を示すフローチャートである。
【符号の説明】
1 要求仕様記述部
2 要求仕様格納部
3 ユースケース実行部
4 分岐選択部
5 ログ記録部
6 シナリオ記憶部
7 シナリオ出力部
8 条件設定部
11 要求仕様記述部
12 構造化指定部
13 モード指定部
14 総時間演算部
15 重要度/利用頻度設定部
16 シナリオ解析部
21 ツリー構造表示画面
22a ユースケース用タグ
22b ビジネスモデル用タグ
23 ユースケース入力画面
31 イベント欄
32 アクタ欄
33 利用UC欄
34 利用UC作成ボタン
35 特殊化ボタン
36 拡張ボタン
Claims (15)
- 複数のユースケースにより構成される要求仕様の記述を支援するための要求仕様記述支援装置であって、
所定のフォーマットに従って自然言語で記述された上記複数のユースケースと、上記複数のユースケース間に予め設定されたリンク先を表すリンク情報とを記憶する記憶手段と、
上記リンク情報に従ってリンク先のユースケースを順次読み出すユースケース実行手段と、
上記ユースケース実行手段によってユースケースが読み出された過程を特定可能な履歴を履歴記憶手段に記録する履歴記録手段と、を備えたことを特徴とする要求仕様記述支援装置。 - 上記リンク情報にリンク先として複数のユースケースが含まれている場合、当該リンク先として含まれる複数のユースケースをユーザに提示し、提示したユースケースのうち、ユーザによって選択されたユースケースを受け付ける分岐選択手段をさらに備え、
上記ユースケース実行手段は、上記選択されたユースケースを読み出すことを特徴とする請求項1に記載の要求仕様記述支援装置。 - 上記ユースケース実行手段は、上記リンク情報にリンク先として複数のユースケースが含まれている場合、当該リンク先として含まれる複数のユースケースの中から、予め定められた条件に従ってユースケースを選択し、選択したユースケースを読み出すことを特徴とする請求項1に記載の要求仕様記述支援装置。
- 上記記憶手段は、個々のユースケースごとに対応する業務の処理にかかる処理時間を記憶しており、
上記記憶手段に記憶された上記処理時間に基づいて、上記履歴記録手段により記録された履歴に含まれるユースケースに対応する一連の業務の処理にかかる総処理時間を演算する総時間演算手段をさらに備えたことを特徴とする請求項1乃至3のいずれか1項に記載の要求仕様記述支援装置。 - 上記履歴記憶手段は、上記履歴に対してユーザによって設定された重要度及び利用頻度のうちの少なくともいずれか一方を記憶しており、
上記ユーザによって設定された重要度及び利用頻度のうちの少なくともいずれか一方に基づいて、上記履歴に含まれる個々のユースケースに対して、重要度及び利用頻度のうちの少なくともいずれか一方を設定する履歴解析手段とをさらに備えたことを特徴とする請求項1乃至4のいずれか1項に記載の要求仕様記述支援装置。 - 複数のユースケースにより構成される要求仕様の記述を支援するための要求仕様記述支援装置であって、所定のフォーマットに従って自然言語で記述された上記複数のユースケースと、上記複数のユースケース間に予め設定されたリンク先を表すリンク情報とを記憶する記憶手段と、ユースケース実行手段と、履歴記録手段と、履歴記憶手段とを備えた要求仕様記述支援装置によって実行される要求仕様記述支援方法であって、
上記ユースケース実行手段が、上記リンク情報に従ってリンク先のユースケースを順次読み出すユースケース実行ステップと、
上記履歴記録手段が、上記ユースケース実行ステップによってユースケースが読み出された過程を特定可能な履歴を上記履歴記憶手段に記録する履歴記録ステップとを備えたことを特徴とする要求仕様記述支援方法。 - 上記リンク情報にリンク先として複数のユースケースが含まれている場合、当該リンク先として含まれる複数のユースケースをユーザに提示し、提示したユースケースのうち、ユーザによって選択されたユースケースを受け付ける分岐選択ステップをさらに備え、
上記ユースケース実行ステップは、上記選択されたユースケースを読み出すことを特徴とする請求項6に記載の要求仕様記述支援方法。 - 上記ユースケース実行ステップは、上記リンク情報にリンク先として複数のユースケースが含まれている場合、当該リンク先として含まれる複数のユースケースの中から、予め定められた条件に従ってユースケースを選択し、選択したユースケースを読み出すことを特徴とする請求項6に記載の要求仕様記述支援方法。
- 上記記憶ステップは、個々のユースケースごとに対応する業務の処理にかかる処理時間を記憶し、
上記記憶ステップにより記憶された上記処理時間に基づいて、上記履歴記録ステップにより記録された履歴に含まれるユースケースに対応する一連の業務の処理にかかる総処理時間を演算する総時間演算ステップをさらに備えたことを特徴とする請求項6乃至8のいずれか1項に記載の要求仕様記述支援方法。 - 上記履歴記録ステップにより記録された上記履歴に対してユーザによって設定された重要度及び利用頻度のうちの少なくともいずれか一方を記憶する重要度/利用頻度記憶ステップと、
上記ユーザによって設定された重要度及び利用頻度のうちの少なくともいずれか一方に基づいて、上記履歴に含まれる個々のユースケースに対して、重要度及び利用頻度のうちの少なくともいずれか一方を設定する履歴解析ステップとをさらに備えたことを特徴とする請求項6乃至9のいずれか1項に記載の要求仕様記述支援方法。 - コンピュータを、複数のユースケースにより構成される要求仕様の記述を支援するための要求仕様記述支援装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
コンピュータを、
所定のフォーマットに従って自然言語で記述された上記複数のユースケースと、上記複数のユースケース間に予め設定されたリンク先を表すリンク情報とを記憶する記憶手段と、
上記リンク情報に従ってリンク先のユースケースを順次読み出すユースケース実行手段と、
上記ユースケース実行手段によってユースケースが読み出された過程を特定可能な履歴を履歴記憶手段に記録する履歴記録手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 上記リンク情報にリンク先として複数のユースケースが含まれている場合、当該リンク先として含まれる複数のユースケースをユーザに提示し、提示したユースケースのうち、ユーザによって選択されたユースケースを受け付ける分岐選択ステップをさらにコンピュータに実行させ、
上記ユースケース実行ステップは、上記選択されたユースケースを読み出すことを特徴とするプログラムを記録した請求項11に記載のコンピュータ読み取り可能な記録媒体。 - 上記ユースケース実行ステップは、上記リンク情報にリンク先として複数のユースケースが含まれている場合、当該リンク先として含まれる複数のユースケースの中から、予め定められた条件に従ってユースケースを選択し、選択したユースケースを読み出すことを特徴とするプログラムを記録した請求項11に記載のコンピュータ読み取り可能な記録媒体。
- 上記記憶ステップは、個々のユースケースごとに対応する業務の処理にかかる処理時間を記憶し、
上記記憶ステップにより記憶された上記処理時間に基づいて、上記履歴記録ステップにより記録された履歴に含まれるユースケースに対応する一連の業務の処理にかかる総処理時間を演算する総時間演算ステップをさらにコンピュータに実行させるためのプログラムを記録した請求項11乃至13のいずれか1項に記載のコンピュータ読み取り可能な記録媒体。 - 上記履歴記録ステップにより記録された上記履歴に対してユーザによって設定された重要度及び利用頻度のうちの少なくともいずれか一方を記憶する重要度/利用頻度記憶ステップと、
上記ユーザによって設定された重要度及び利用頻度のうちの少なくともいずれか一方に基づいて、上記履歴に含まれる個々のユースケースに対して、重要度及び利用頻度のうちの少なくともいずれか一方を設定する履歴解析ステップとをさらにコンピュータに実行委させるためのプログラムを記録した請求項11乃至14のいずれか1項に記載のコンピュータ読み取り可能な記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000078548A JP4625155B2 (ja) | 1999-04-06 | 2000-03-21 | 要求仕様記述支援装置およびその方法、記録媒体 |
US09/543,359 US8151242B1 (en) | 1999-04-06 | 2000-04-05 | Description support apparatus and method for requisition sheet, and recording medium |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9932899 | 1999-04-06 | ||
JP11-99328 | 1999-04-06 | ||
JP2000078548A JP4625155B2 (ja) | 1999-04-06 | 2000-03-21 | 要求仕様記述支援装置およびその方法、記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000353082A JP2000353082A (ja) | 2000-12-19 |
JP4625155B2 true JP4625155B2 (ja) | 2011-02-02 |
Family
ID=26440468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000078548A Expired - Fee Related JP4625155B2 (ja) | 1999-04-06 | 2000-03-21 | 要求仕様記述支援装置およびその方法、記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4625155B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4601998B2 (ja) * | 2004-06-11 | 2010-12-22 | 株式会社野村総合研究所 | システム開発支援システム |
JP4589294B2 (ja) | 2006-11-21 | 2010-12-01 | 富士通株式会社 | 設計/検証支援プログラムおよび該プログラムを記録した記録媒体 |
JP2013016095A (ja) * | 2011-07-06 | 2013-01-24 | Fujitsu Ltd | プログラム、情報処理装置、および図生成方法 |
JP5675676B2 (ja) * | 2012-03-01 | 2015-02-25 | 株式会社日立製作所 | 業務分析設計支援装置、業務分析設計支援方法、および業務分析設計支援プログラム |
-
2000
- 2000-03-21 JP JP2000078548A patent/JP4625155B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000353082A (ja) | 2000-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11983098B1 (en) | Systems and methods for modeling and generating test requirements for software applications | |
US10997246B2 (en) | Managing and automatically linking data objects | |
KR101307711B1 (ko) | 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 | |
US6061643A (en) | Method for defining durable data for regression testing | |
US6301701B1 (en) | Method for computer-assisted testing of software application components | |
US10380526B2 (en) | System and method for providing a process player for use with a business process design environment | |
JP2009265810A (ja) | 状態遷移テスト支援装置、状態遷移テスト支援プログラム、および状態遷移テスト支援方法 | |
JP4625155B2 (ja) | 要求仕様記述支援装置およびその方法、記録媒体 | |
JP4629183B2 (ja) | 要求仕様記述支援装置およびその方法、記録媒体 | |
Granda et al. | Towards a Model-Driven Testing Framework for GUI Test Cases Generation from User Stories. | |
Baumgartner et al. | Test Automation Fundamentals: A Study Guide for the Certified Test Automation Engineer Exam–Advanced Level Specialist–ISTQB® Compliant | |
US20080195453A1 (en) | Organisational Representational System | |
US8151242B1 (en) | Description support apparatus and method for requisition sheet, and recording medium | |
KR20130058348A (ko) | 자산 기반의 요구사항 시뮬레이터 및 요구사항 관리 방법 | |
Taky | Automated Testing With Cypress | |
CN109669868A (zh) | 软件测试的方法及系统 | |
CN117234488B (zh) | 基于epc模型的智能法律合约生成方法及装置 | |
Härtull | Implementation of an Application for Analyzing and Visualizing Benchmark Results for Optimization Solvers | |
Kim | Comparing Proficiency of ChatGPT and Bard in Software Development | |
Sauerová | Web Browser Recorder | |
Brailoiu | Diary: Full Stack Internship in Mobile App Development | |
CN117573100A (zh) | 应用程序的业务逻辑生成方法、设备和可读存储介质 | |
Chandrasekara et al. | Working on the Iteration | |
Chen-Burger et al. | Use of KBST-BM | |
JP2012215912A (ja) | 情報処理装置、情報処理方法、情報処理システム、プログラム、記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070315 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100518 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101005 |
|
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: 20101026 |
|
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: 20101105 |
|
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: 20131112 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |