(57)【要約】【課題】  ソースコードの入力を行う時の補助をするための技術であるため、状態図のアクション記述の入力の補助機能としては使用されていない。またオブジェクトのメソッドではなくイベントのみを判断して提示することが難しく、またシーケンス図などの図に示されるオブジェクト間の相互作用を解釈し、選択される可能性の高いイベントの優先度を上げて選択しやすくするようなことは不可能である。【解決手段】  オブジェクト指向モデル設計支援装置において、クラス図の情報から任意のオブジェクトが送信できるイベントのリストを作成し、またそのリストにおいてシーケンス図の情報から送信可能なイベントに優先度をつける。【選択図】  図１
2007094833.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトの静的関係を表す分析設計図面を保持する手段と、オブジェクト間の相互作用を表す分析設計図面を保持する手段と、オブジェクトの振る舞いである状態遷移を表す分析設計図面を記述編集する状態図編集手段と、前記状態遷移を表す分析設計図面の任意の状態遷移時に実行するアクションをプログラミング言語で記述する手段と、前記状態図編集手段で編集された分析設計図面を保持する手段とを有するオブジェクト指向設計支援装置において、
静的関係を表す分析設計図面からあるオブジェクトがイベントを送信することが可能な他のオブジェクトの一覧およびそのイベント一覧を抽出する手段と、
オブジェクト間の相互作用を表す分析設計図面からあるオブジェクトがイベントを送信しているオブジェクトの一覧とそのイベントの一覧を抽出する手段と、
前記静的関係を表す分析設計図面からオブジェクト及びイベントを抽出する手段で抽出したオブジェクトと前記オブジェクト間の相互作用を表す分析設計図面からオブジェクトとイベントを抽出する手段で抽出したオブジェクトとそのオブジェクトへ送信可能なイベントを使って送信イベントの選択候補リストを作成する手段と、
前記選択候補リストを表示する手段と、
前記選択候補リストから送信イベントを選択する手段と、
前記選択された送信イベントからアクション記述を作成し、状態図中のアクションに挿入する手段を有することを特徴とするオブジェクト指向モデル設計支援装置。
【請求項２】
請求項1記載のオブジェクト指向モデル設計支援装置において、選択候補リストから選択され使用された使用状況を保持する手段と、
前記保持手段によって保持している使用状況を使って前記選択候補リストの表示方法を変更することを特徴とするオブジェクト指向モデル設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト指向分析・設計手法を用いて設計されたソフトウェア図面を編集・表示することが可能なオブジェクト指向設計支援装置のうち、特にオブジェクトの振る舞いを図示し、その振る舞いの中で実行するアクションをプログラミング言語で記述することのできるオブジェクト指向設計支援装置に関する。
【背景技術】
【０００２】
従来、ソフトウェアの開発においてソースコードの入力は全て一文字ずつ手動で入力することで記述を行ってきた。しかし、オブジェクト指向モデルの設計支援装置の発達により、オブジェクトモデルからコードを自動生成することによりソフトウェアの開発に要するコストを削減しようとする動きが大きくなってきている。
【０００３】
オブジェクトモデルはUnified Modeling Language(以下UML)と呼ばれる記法により図を作成する方法が主流となっている。例えばUMLではオブジェクトの静的関係を表す図面をクラス図、オブジェクト間の相互作用を表す図面をシーケンス図、オブジェクトの振る舞いを表す図を状態図などによって記述する。
【０００４】
このUMLで記述されたオブジェクトモデルからコードを自動生成する場合にはすべてを図のみで描画することはできず、オブジェクトの振る舞いを表す状態図などに、最終的に実行するべき動作をアクションとしてプログラミング言語で入力する必要がある。
【０００５】
このアクションの入力は全てソースコードの記述と同じように一文字ずつ手動で入力を行うことが一般的である。
【０００６】
ソースコードを一文字ずつ入力することを補助するものとして公知の技術として、importしているクラスのメソッド呼び出しを入力する際にはそのクラスが保持しているメソッドを一覧として表示しその中からメソッドを選択することで入力が行えるような技術が存在する。
【０００７】
従来例としては、例えば特許文献１と特許文献２と特許文献３をあげることが出来る。
【特許文献１】特開平１０−２３２８７９号公報
【特許文献２】特開２００２−３１８５３５号公報
【特許文献３】特開２００３−２８８６０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら上述した公知の技術は以下のような問題点が存在する。
【０００９】
ソースコードの入力を行う時の補助をするための技術であるため、状態図のアクション記述の入力の補助機能としては使用されていない。またオブジェクトのメソッドではなくイベントのみを判断して提示することが難しく、またシーケンス図などの図に示されるオブジェクト間の相互作用を解釈し、選択される可能性の高いイベントの優先度を上げて選択しやすくするようなことは不可能である。
【課題を解決するための手段】
【００１０】
本発明に係る第1の発明は、オブジェクトの静的関係を表す分析設計図面を保持する手段と、オブジェクト間の相互作用を表す分析設計図面を保持する手段と、オブジェクトの振る舞いである状態遷移を表す分析設計図面を記述編集する状態図編集手段と、前記状態遷移を表す分析設計図面の任意の状態遷移時に実行するアクションをプログラミング言語で記述する手段と、前記状態図編集手段で編集された分析設計図面を保持する手段とを有するオブジェクト指向設計支援装置において、静的関係を表す分析設計図面からあるオブジェクトがイベントを送信することが可能な他のオブジェクトの一覧およびそのイベント一覧を抽出する手段と、オブジェクト間の相互作用を表す分析設計図面からあるオブジェクトがイベントを送信しているオブジェクトとそのイベントを抽出する手段と、前記静的関係を表す分析設計図面からオブジェクト及びイベントを抽出する手段で抽出したオブジェクトと前記オブジェクト間の相互作用を表す分析設計図面からオブジェクトとイベントを抽出する手段で抽出したオブジェクトとそのオブジェクトへ送信可能なイベントを使って送信イベントの選択候補リストを作成する手段と、前記選択候補リストを表示する手段と、前記選択候補リストから送信イベントを選択する手段と、前記選択された送信イベントからアクション記述を作成し、状態図中のアクションに挿入する手段を有することを特徴とする。
【００１１】
本発明に係る第2の発明は、選択候補リストから選択され使用された使用状況を保持する手段と、前記保持手段によって保持している使用状況を使って前記選択候補リストの表示方法を変更することを特徴とする。
【００１２】
上記構成によってクラス図の情報から任意のオブジェクトが送信できるイベントのリストを作成し、またそのリストにおいてシーケンス図の情報から送信可能なイベントに優先度をつけることで、今まで文字列を一文字ずつ入力していたアクション記述を選択形式で入力することが出来、また選択項目も入力する可能性の高い項目を優先して表示することが出来る為アクションの記述が容易になる。
【発明の効果】
【００１３】
以上説明したように、本発明によれば、クラス図の情報から任意のオブジェクトが送信できるイベントのリストを作成し、またそのリストにおいてシーケンス図の情報から送信可能なイベントに優先度をつけることで、今まで文字列を一文字ずつ入力していたアクション記述を選択形式で入力することが出来、また選択項目も入力する可能性の高い項目を優先して表示することが出来る為アクションの記述が容易になるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
実施の形態を図1、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11に基づいて詳細に説明する。
【００１５】
図1は本実施の形態におけるソフトウェアシステムの構成を示したものである。
【００１６】
図1において10、11、12はそれぞれクラス図、シーケンス図、状態図を保持しておく手段である。
【００１７】
1は10に保持されているクラス図と7で生成したイベント送信側のオブジェクトを元にイベント送信対象のオブジェクトの一覧とそのオブジェクトそれぞれに対する送信可能なイベントの一覧を生成する。10に保持されているクラス図には各クラスの保持している受信イベント、各クラスが結んでいる関連関係の情報が含まれている。
【００１８】
2は11に保持されているシーケンス図と7で生成したイベント送信側のオブジェクトと現在記述しているアクションのトリガーとなっているイベントの情報を元にイベント送信対象のオブジェクト一覧とそのオブジェクトそれぞれに対する送信可能なイベントの一覧を生成する。11に保持されているシーケンス図には複数のシーケンス図が保持されており、それぞれのシーケンス図にはオブジェクト間のイベントの送信順が含まれている。
【００１９】
3は1と2で作成されたオブジェクトの一覧とイベント一覧を元に選択候補一覧を作成する。選択候補一覧にはそれぞれの要素に優先度を設定する。1で作成したクラス図を元にしたオブジェクトの一覧とイベントの一覧を元に選択候補一覧を作成し、2で作成したシーケンス図を元にした一覧に含まれるオブジェクトとイベントは選択候補一覧の優先度を高く設定する。
【００２０】
4は3で作成し13に保持された選択候補一覧を表示する手段である。表示の際に選択候補一覧から優先度を利用してリストの表示を行う。例えば優先度の高いものをリストの上位に表示し、選択しやすいようにする。
【００２１】
5は選択候補一覧からオブジェクトとイベントを選択する手段である。表示された一覧から一つオブジェクトとイベントを選択させ、選択されたオブジェクトとイベントを6に対して渡す。
【００２２】
6は5から入力されたオブジェクトとイベントを元にアクションの文字列の作成をする。
【００２３】
7は状態遷移のアクションを編集する手段である。イベントの送信をアクションで入力したい時に、現在編集中のイベント送信側のオブジェクトと現在記述しているアクションのトリガーとなっているイベントの情報を12で保持している状態図と現在アクションを編集中のイベントから作成し1と2に対して渡し、6から入力されたアクションの文字列を挿入する。
【００２４】
8は入力しているアクションを表示する手段である。
【００２５】
12は状態図を保持する手段である。状態図には各オブジェクトがとりうる状態と状態遷移をする時のトリガーとなるイベント、トリガーとなるイベントを受信した時の実行されるアクションの内容が含まれる。
【００２６】
13は選択候補リストを保持する手段である。
【実施例１】
【００２７】
図2、図3、図4は本発明における実施例1の処理手順の一例を示すフローチャートである。
【００２８】
通常オブジェクト指向モデルによる設計を行う場合、クラスの抽出を行った後クラス図の作成を行い、クラス間の相互作用をシーケンス図を用いて作成し、作成したシーケンスを満たすような状態図をそれぞれのクラスに対して行うため、ここでは以下を仮定して具体的な説明を行う。本発明では状態図における状態遷移時のアクションの記述に関するものであるため10、11にはあらかじめ図5に示すクラス図と図6に示すシーケンス図が保持されている。また12には現在作成中の状態図が保持されていており、現在7において編集対象となっているObjectBの状態図を図7に示すとする。アクションの入力はObjectBの状態State1から状態State2にevent2をトリガーとして移動した時のアクションを入力中だと仮定する。10,11保持されている図5のクラス図、図6シーケンス図は一例である。
【００２９】
まずS1において7でのアクション記述内で送信イベントの入力を開始する。入力の開始はどのようなことをきっかけにしてもよい。例えばメニューのウィンドウを出しイベントの入力開始項目を選択するという方法が挙げられる。
【００３０】
次にS2においてイベントを送信する側のオブジェクトとアクションのトリガーとなっているイベントを特定する。現在アクションを入力しているのは図 7に示した状態図のオブジェクトであるためObjectBが送信する側のオブジェクトとなる。またトリガーとなっているイベントは入力しているアクションはevent2をトリガーとして移動した時のアクションのためevent2である。オブジェクトとイベントが特定できたら7から1に対して特定したオブジェクトの情報を、7から2に対して特定したオブジェクトの情報とアクションのトリガーとなっているイベントを渡す。
【００３１】
次にS3.1において1が7から取得したオブジェクトの情報と10に保持されている図5に示すクラス図からイベント送信対象になるオブジェクトを抽出する。今7から取得したオブジェクトはObjectBに関するものであるため、ObjectBと関連のあるオブジェクトObjectAとObjectCを10に保持されている図5に示すクラス図から抽出する。
【００３２】
次にS3.2においてS3.1で抽出したObjectAとObjectCに対して送信できるイベントを抽出する。図5に示すクラス図からObjectAにはevent1、ObjectCにはevent3、event4、event5が送信できることが抽出できる。
【００３３】
次にS3.3において1がS3.1とS3.2で抽出したオブジェクトとイベントを一覧にして3に対して渡す。
【００３４】
次にS4.1において2が7から取得したオブジェクトと図6に示すシーケンス図から対象となるシーケンス図を検索する。今11に保持しているシーケンス図は図6に示すシーケンス図1枚のためこのシーケンス図にObjectBが存在するかを調べる。図6に示すシーケンス図にはObjectBのインスタンスobjectBが存在するため対象となるシーケンス図として一覧に加える。
【００３５】
次にS4.2においてシーケンス図一覧にシーケンス図が存在するか判断する。S4.1において図 6に示すシーケンス図が一覧に存在するためS4.3を実行する。
【００３６】
S4.3においてシーケンス図の一覧からシーケンス図を一つ取り出す。今一覧には図6に示すシーケンス図が一つ存在するためそのシーケンス図を取り出す。
【００３７】
S4.4において取り出したシーケンス図に2が7から取得したアクションのトリガーとなっているイベントが存在するか確認する。今トリガーとなっているイベントはevent2であり、図6に示すシーケンス図に存在するためS4.5に移動する。
【００３８】
S4.5においてobjectBがevent2のイベントを受信したことによって送信しているイベントを抽出する。event2によってobject2が送信しているイベントはobjectCに対するevent5とevent4である。よってobjectCとevent5、event4をオブジェクト一覧とイベント一覧に追加する。
S4.2においてシーケンス一覧にシーケンス図が存在するか確認する。シーケンス一覧にはもうシーケンス図が存在しないため、オブジェクトとイベントの一覧を3に対して渡し、S5に移動する。
【００３９】
S5ではS3とS4において作成したオブジェクトとイベントの一覧から選択候補リストを3で作成し13に保持する。S3で作成した一覧にはObjectAにイベントevent1が存在し、ObjectCにイベントevent3、event4、event5がが存在する。まず、このS3で作成した一覧を選択候補リストにあげる。次にS4で作成した一覧にはObjectCにイベントevent5、event4が存在する。よってリスト中のObjectCのevent5、event4の優先度を高く設定する。最終的に作成した選択候補リストの例を図8に示す。イベント送信可能なオブジェクトとそのオブジェクトに送信可能なイベントの一覧とそれに対する優先度が記述されている。
【００４０】
S6では4で選択候補を編集画面に表示させる。選択候補の表示は優先度を考慮して表示させる。表示時の例を図9に示す。このようにS5で作成したリストの優先順位を使用し、シーケンスに登場したイベントを他のイベントよりも強調することでシーケンス図に合わせたイベントの選択を容易にする。
【００４１】
S7ではS6において表示させた選択候補から5で一つ挿入する送信イベントを選択させ、決定した送信イベントを6に対して送る。そして6で5から取得した送信先オブジェクトと送信イベントの情報からアクション記述の文字列を生成し、その文字列を7に対して送る。
【００４２】
S8ではS7において6から取得した文字列を7でアクションの記述部に挿入し、8でアクションの内容の表示を行う。イベント送信のアクションを挿入し表示を行った例を図10に示す。
【実施例２】
【００４３】
以下、本発明の請求項2の実施例をフローチャートを参照して説明する。なお図1に示すオブジェクト指向モデル設計支援装置の構成に関しては先に示したとおりなので省略する。
【００４４】
図11は実施例2の制御の流れの一例を示したフローチャートである。なお本フローチャートの中で実施例1と重複する部分については説明を省略する。
【００４５】
開始からS6までは図2に示した実施例1と重複するので省略するが、S6までで選択候補リストの優先順位を使用しリストを編集画面に表示させる。
【００４６】
S9ではS6において表示させた選択候補から5で選択したイベントの優先順位を変更し、13に保持する。これにより次にもう一度送信イベントを入力する時に変更した優先度に応じて表示方法を変更することができる。例えば一度選択されたイベントは次にイベントを入力する時には一度選択されているために表示順位を下げるといった表示の仕方が可能である。
【００４７】
S7以降は図2に示した実施例1と重複するので省略する。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態を示すソフトウェアの構造を示すブロック図である。
【図２】本発明に係る実施例1の処理手順の一例を示すフローチャートである。
【図３】本発明に係る実施例1の処理手順のうちクラス図からイベントを抽出する一例を示すフローチャートである。
【図４】本発明に係る実施例1の処理手順のうちシーケンス図からイベントを抽出する一例を示すフローチャートである。
【図５】本発明に係る実施例1で図1に示す10に既に保持されているクラス図情報の一例のクラス図である。
【図６】本発明に係る実施例1で図1に示す11に既に保持されているシーケンス図情報の一例のクラス図である。
【図７】本発明に係る実施例1で図1に示す12に既に保持されている状態図情報の一例のクラス図である。
【図８】本発明に係る実施例1で図1に示す3で作成した選択候補リストの一例である。
【図９】本発明に係る実施例1で図1に示す4で表示した選択候補の表示の一例である。
【図１０】本発明に係る実施例1で図1に示す8で表示したアクション編集画面の一例である。
【図１１】本発明に係る実施例2の処理手順の一例を示すフローチャートである。
【符号の説明】
【００４９】
1  クラス図からのイベント抽出手段
2  シーケンス図からのイベント抽出手段
3  選択候補リスト作成手段
4  選択候補表示手段
5  選択候補からの選択手段
6  アクション記述生成手段
7  状態図アクション編集手段
8  アクション表示手段
9  編集画面
10  クラス図情報保持手段
11  シーケンス図情報保持手段
12  状態図情報保持手段
【図１】
2007094833.tif 000003
【図２】
2007094833.tif 000004
【図３】
2007094833.tif 000005
【図４】
2007094833.tif 000006
【図５】
2007094833.tif 000007
【図６】
2007094833.tif 000008
【図７】
2007094833.tif 000009
【図８】
2007094833.tif 000010
【図９】
2007094833.tif 000011
【図１０】
2007094833.tif 000012
【図１１】
2007094833.tif 000013