"統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図を作成するモデル図作成装置において、モデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述された状態イベント表を記憶する記憶部と、前記記憶部が記憶する状態イベント表に基づいて構造図を作成する構造図作成部と、前記記憶部が記憶する状態イベント表に基づいて複数種類の振る舞い図を作成する振る舞い図作成部と、を備えたことを特徴とするモデル図作成装置。前記状態イベント表は、前記複数種類の振る舞い図の構成を定める関数として、ステートマシン図における状態の遷移を定める関数、シーケンス図におけるメッセージの送信条件を定める関数、およびシーケンス図におけるメッセージの送信先を定める関数を含むことを特徴とする請求項1に記載のモデル図作成装置。前記構造図および前記複数種類の振る舞い図を作成するために必要な情報を要素として有し、複数の要素の相互関係をツリー構造で示す要素構成図を作成する要素構成図作成部をさらに備えたことを特徴とする請求項1または2に記載のモデル図作成装置。前記要素構成図を表示可能な表示部と、前記要素構成図作成部が前記要素構成図に対して要素を追加するごとに前記表示部における表示を切り換えて表示させる表示制御部と、をさらに備えたことを特徴とする請求項3に記載のモデル図作成装置。前記表示部は、前記構造図および前記複数種類の振る舞い図を表示可能であり、前記表示制御部は、前記構造図作成部および前記振る舞い図作成部がそれぞれ作成した前記構造図および前記振る舞い図を作成順に前記表示部に表示させることを特徴とする請求項4に記載のモデル図作成装置。前記表示制御部は、前記要素構成図と前記構造図および前記振る舞い図とを並べて前記表示部に表示させることを特徴とする請求項5に記載のモデル図作成装置。前記構造図は、クラス図であることを特徴とする請求項1~6のいずれか一項に記載のモデル図作成装置。統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図を作成するモデル図作成方法において、モデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述された状態イベント表を記憶する記憶部から該状態イベント表を参照して構造図を作成する構造図作成ステップと、前記記憶部から前記状態イベント表を参照して複数種類の振る舞い図を作成する振る舞い図作成ステップと、を有することを特徴とするモデル図作成方法。統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図を作成するモデル図作成装置に、モデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述された状態イベント表を記憶する記憶部から該状態イベント表を参照して構造図を作成する構造図作成ステップと、前記記憶部から前記状態イベント表を参照して複数種類の振る舞い図を作成する振る舞い図作成ステップと、を実行させることを特徴とするモデル図作成プログラム。統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述されていることを特徴とするモデル図作成用の状態イベント表のデータ構造。前記関数として、ステートマシン図における状態の遷移を定める関数、シーケンス図におけるメッセージの送信条件を定める関数、およびシーケンス図におけるメッセージの送信先を定める関数を含むことを特徴とする請求項10に記載のモデル図作成用の状態イベント表のデータ構造。しかしながら、上述した従来技術では、ステートマシン図やシーケンス図等の振る舞い図を個別に作成することは可能であるものの、複数種類の振る舞い図をクラス図等の構造図とともに一括して作成することはできなかった。このため、上述した従来技術では、自動的に作成することができない振る舞い図は手作業で作成せざるを得ず、開発対象のソフトウェアの多様な側面を反映しつつ一貫性のあるオブジェクト指向モデルの生成を実現できているわけではなかった。本発明は、上記に鑑みてなされたものであって、開発対象のソフトウェアの多様な側面を反映しつつ一貫性のあるオブジェクト指向モデルの生成を実現可能にするモデル図作成装置、モデル図作成方法、モデル図作成プログラムおよびモデル図作成用の状態イベント表のデータ構造を提供することを目的とする。上述した課題を解決し、目的を達成するために、本発明に係るモデル図作成装置は、統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図を作成するモデル図作成装置において、モデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述された状態イベント表を記憶する記憶部と、前記記憶部が記憶する状態イベント表に基づいて構造図を作成する構造図作成部と、前記記憶部が記憶する状態イベント表に基づいて複数種類の振る舞い図を作成する振る舞い図作成部と、を備えたことを特徴とする。また、本発明に係るモデル図作成装置は、上記発明において、前記状態イベント表は、前記複数種類の振る舞い図の構成を定める関数として、ステートマシン図における状態の遷移を定める関数、シーケンス図におけるメッセージの送信条件を定める関数、およびシーケンス図におけるメッセージの送信先を定める関数を含むことを特徴とする。また、本発明に係るモデル図作成装置は、上記発明において、前記構造図および前記複数種類の振る舞い図を作成するために必要な情報を要素として有し、複数の要素の相互関係をツリー構造で示す要素構成図を作成する要素構成図作成部をさらに備えたことを特徴とする。また、本発明に係るモデル図作成装置は、上記発明において、前記要素構成図を表示可能な表示部と、前記要素構成図作成部が前記要素構成図に対して要素を追加するごとに前記表示部における表示を切り換えて表示させる表示制御部と、をさらに備えたことを特徴とする。また、本発明に係るモデル図作成装置は、上記発明において、前記表示部は、前記構造図および前記複数種類の振る舞い図を表示可能であり、前記表示制御部は、前記構造図作成部および前記振る舞い図作成部がそれぞれ作成した前記構造図および前記振る舞い図を作成順に前記表示部に表示させることを特徴とする。また、本発明に係るモデル図作成装置は、上記発明において、前記表示制御部は、前記要素構成図と前記構造図および前記振る舞い図とを並べて前記表示部に表示させることを特徴とする。また、本発明に係るモデル図作成装置は、上記発明において、前記構造図は、クラス図であることを特徴とする。また、本発明に係るモデル図作成方法は、統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図を作成するモデル図作成方法において、モデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述された状態イベント表を記憶する記憶部から該状態イベント表を参照して構造図を作成する構造図作成ステップと、前記記憶部から前記状態イベント表を参照して複数種類の振る舞い図を作成する振る舞い図作成ステップと、を有することを特徴とする。また、本発明に係るモデル図作成プログラムは、統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図を作成するモデル図作成装置に、モデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述された状態イベント表を記憶する記憶部から該状態イベント表を参照して構造図を作成する構造図作成ステップと、前記記憶部から前記状態イベント表を参照して複数種類の振る舞い図を作成する振る舞い図作成ステップと、を実行させることを特徴とする。また、本発明に係るモデル図作成用の状態イベント表のデータ構造は、統一モデリング言語を用いたソフトウェアのオブジェクト指向モデルを生成する際に必要なモデル図における状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述されていることを特徴とする。また、本発明に係るモデル図作成用の状態イベント表のデータ構造は、上記発明において、前記関数として、ステートマシン図における状態の遷移を定める関数、シーケンス図におけるメッセージの送信条件を定める関数、およびシーケンス図におけるメッセージの送信先を定める関数を含むことを特徴とする。本発明によれば、構造図および複数種類の振る舞い図の構成を定める関数が状態とイベントとの組み合わせに応じて記述された状態イベント表に基づいて構造図および複数種類の振る舞い図を自動的に作成するため、開発対象のソフトウェアの多様な側面を反映しつつ一貫性のあるオブジェクト指向モデルの生成を実現することが可能となる。以下、添付図面を参照して、本発明を実施するための形態以下、実施の形態というを説明する。図1は、本発明の一実施の形態に係るモデル図作成装置の機能構成を示すブロック図である。同図に示すモデル図作成装置1は、統一モデリング言語UMLを用いてソフトウェアのオブジェクト指向モデルを生成する際に必要となるモデル図を自動的に作成する装置である。同図に示すモデル図作成装置1は、キーボード、マウス、タッチパネル等のインタフェースを用いて実現される入力部2と、液晶または有機EL等からなる表示パネルを有し、各種情報を表示する表示部3と、UMLのモデル図を作成するための情報を含む各種情報を記憶する記憶部4と、モデル図作成装置1の動作を制御する制御部5と、を備える。記憶部4は、モデル図作成装置1がモデル図を作成する際に参照する状態イベント表を記憶する状態イベント表記億部41と、作成されたモデル図等の情報を記憶する作成情報記憶部42とを有する。状態イベント表は、モデル図における状態とイベントとの関係を示す表であり、状態およびイベントの組み合わせに応じて定義される関数であってモデル図としての構造図および複数種類の振る舞い図の構成を定める関数が記述されたデータ構造を有している。1つのファイル以下、コンポーネントというには、複数の状態イベント表を記述することが可能である。状態イベント表の詳細な構成については後述する。記憶部4は、本実施の形態に係るモデル図作成プログラムや所定のOSを起動するプログラム等が予め記憶されたROM、および各処理の演算パラメータやデータ等を記憶するRAM等を用いて実現される。制御部5は、状態イベント表記憶部41が記憶する状態イベント表に基づいてモデル図のうちの構造図を作成する構造図作成部51と、状態イベント表記憶部41が記憶する状態イベント表および構造図作成部51が作成した構造図をもとに複数種類の振る舞い図を作成する振る舞い図作成部52と、構造図および前記複数種類の振る舞い図を作成するために必要な情報を要素として有し、複数の要素の相互関係をツリー構造で示す要素構成図を作成する要素構成図作成部53と、表示部3における表示を制御する表示制御部54と、を有する。本実施の形態では、構造図としてクラス図を例にとる一方、振る舞い図としてステートマシン図およびシーケンス図を例にとって説明するが、これはあくまでも一例に過ぎない。例えば、構造図として、コンポーネント図およびオブジェクト図のいずれかを適用することも可能である。また、振る舞い図として、コミュニケーション図コラボレーション図、アクティビティ図、ユースケース図、タイミング図、および相互作用概要図のいずれかを適用することも可能である。制御部5は、CPU等を用いて実現され、制御対象であるモデル図作成装置1の各構成部位とバスラインを介して接続されている。制御部5は、記憶部4が記憶、格納する情報および本実施の形態に係るモデル図作成プログラムを含む各種プログラムを記憶部4から読み出すことにより、本実施の形態に係るモデル図作成方法に関連した演算処理を実行する。なお、本実施の形態に係るモデル図作成プログラムは、ハードディスク、フラッシュメモリ、CD-ROM、DVD-ROM、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に記録して広く流通させることも可能である。以上の構成を有するモデル図作成装置1は、1つのコンピュータを用いて実現してもよいし、複数のコンピュータを用いて実現してもよい。後者の場合には、インターネット等の通信ネットワークを介してデータの送受信を行いながら、互いに連携して処理を行うようにすることも可能である。図2は、状態イベント表記憶部41が記憶する状態イベント表の構成例を示す図である。同図に示す状態イベント表100は、モデル図における状態とイベントとの対応関係を与える表である。状態イベント表100は、クラス名、マトリックス、関数テーブルおよび属性テーブルを含む。クラス名は、表中でClassNameという項目によって示されている。状態イベント表100のクラス名は、項目の右側に記載されたComponentAである。このクラス名は、クラス図およびステートマシン図の名前となる。また、クラス図で記載されるクラス名にもなる。状態イベント表中のマトリックスは、状態行とイベント列の対応関係を表す。状態イベント表100において、項目Stateが状態を示し、項目Eventがイベントを示す。状態イベント表100には、状態1STATE1、状態2STATE2という2つの状態が含まれる。状態1、状態2は日本語の状態名であり、モデル図ではそれぞれSTATE1、STATE2と表示される。また、状態イベント表100には、イベント11E11、イベント12E12という2つのイベントが含まれる。イベント11、イベント12は日本語の状態名であり、モデル図ではそれぞれE11、E12と表示される。以下、マトリックスの要素をセルという。状態とイベントによって定まるセルの内部は、具体的な状態とイベントとの関係が記載されている。図2において、各セルの内部の具体的な記述は、XMLExtensibleMarkupLanguage形式にしたがって記述されている。セルに記載される内容について具体的に説明する。セルの記載内容は、以下に示すようなものである。f関数名イベント応答関数名送信先のクラス名イベント関数名遷移後の状態名セルの最初の項目f関数名は、応答関数名を与える。Conditionタグは、クラス図の条件関数を定義する。このConditionタグの属性値条件関数は、ステートマシン図において遷移のガード条件やシーケンス図においてクラスのライフラインからのメッセージのガード条件を与える。Logicタグは、ステートマシン図における遷移のアクション名を定義する。Messageタグは、送信先のクラス名イベント関数名という形式で記述される。このうち、送信先のクラス名は、シーケンス図におけるクラスのライフラインからのメッセージの送信先を与える。また、イベント関数名は、シーケンス図におけるクラスのライフラインからのメッセージ名を与える。なお、イベント関数に引数がある場合には、イベント関数名引数1,引数2,と記載する。TransitionStateタグは、ステートマシン図における遷移先の状態を定義する。なお、1つのセルの中に、ConditionタグとMessageタグは複数記述してもよい。また、1つのセルの中で、Conditionタグ、Logicタグ、Messageタグ、TransitionStateタグは省略可能である。図2に示す状態イベント表100において、状態1およびイベント11の組み合わせに対応するセルには、応答関数[fAction11]が定義されている。この応答関数fAction11]の内容を説明する。Conditionタグにおける条件関数はConditon11である。Logicタグで定義される遷移のアクション名はAction11である。Messegeタグで定義される送信先のクラス名はComponentBであり、イベント関数名はイベント21である。TransitionStateタグで定義される遷移先の状態は状態2である。状態1およびイベント12の組み合わせに対応するセルには、応答関数[fNon]が定義されている。この応答関数fNonは、いかなる処理も行わないこと無処理を意味する。状態2およびイベント11の組み合わせに対応するセルには、応答関数[fAction13]が定義されている。この応答関数fAction13]の内容を説明する。Logicタグで定義される遷移のアクション名はAction13である。Messageタグで定義される送信先のクラス名はComponentBであり、イベント関数名はイベント22である。状態2およびイベント12の組み合わせに対応するセルには、応答関数fAction12が定義されている。この応答関数fAction12]の内容を説明する。Conditionタグにおける条件関数はConditon12である。Logicタグで定義される遷移のアクション名はAction12である。Messageタグで定義される送信先のクラス名はComponentBであり、イベント関数名はイベント22である。TransitionStateタグで定義される遷移先の状態は状態1である。状態イベント表100では、関数テーブルとして、3種類の関数FuncLogic、FuncCondition、FuncInterfaceが記述されている。各関数には、関数名FuncName、関数の中身であるソースコードFuncCode、Includeファイル名FuncInclude、および関数を説明するコメントFuncCommentが記載されている図2では、関数名以外は省略。ソースコードは、例えばC、C、Java登録商標等のプログラミング言語を用いて記述されている。関数FuncLogicは、ステートマシン図におけるイベント応答関数であり、ステートマシン図における遷移のアクションを与える関数である。状態イベント表100では、具体的な関数として、Action11,Action12,Action13が定義されている。ここで、各関数の横に記載されているは、引数なしを意味している。関数FuncConditionは、ステートマシン図における遷移の条件およびシーケンス図におけるメッセージの条件を与える関数である。状態イベント表100では、具体的な条件関数として、Condition11,Condition12が定義されている。関数FuncInterfaceは、他のクラスから利用される関数である。状態イベント表100では、具体的な関数として、戻り値がint型であるGet,戻り値がboolean型であるSetが定義されている。ここで、Setの引数は整数intと記載である。なお、状態イベント表で定義される関数は、上述したものに限られるわけではない。属性テーブルには、クラス図における属性が定義される。属性テーブルには、属性名AttrName、属性の型AttrType、初期値AttrIni、属性を説明するコメントAttrCommentが記述されている図2では属性名、属性の型以外は省略。状態イベント表100では、具体的な属性として、属性名attrが記載されている。図3は、状態イベント表記憶部41が記憶する別な状態イベント表の構成例を示す図である。同図に示す状態イベント表200は、クラス名ClassNameがComponentBである。状態イベント表200には、状態3STATE3、状態4STATE4、状態5STATE5という3つの状態が含まれる。また、状態イベント表200には、イベント21E21、イベント22E22という2つのイベントが含まれる。状態3およびイベント21の組み合わせに対応するセルには、応答関数fAction21が定義されている。この応答関数fAction21]において、Logicタグで定義される遷移のアクション名はAction21であり、TransitionStateタグで定義される遷移先の状態は状態4である。状態3およびイベント22の組み合わせに対応するセルには、応答関数fAction24が定義されている。この応答関数fAction24]において、Logicタグで定義される遷移のアクション名はAction24であり、TransitionStateタグで定義される遷移先の状態は状態5である。状態4およびイベント21の組み合わせに対応するセルには、応答関数fAction22が定義されている。この応答関数fAction22]において、Logicタグで定義される遷移のアクション名はAction22であり、TransitionStateタグで定義される遷移先の状態は状態5である。状態4およびイベント22の組み合わせに対応するセルには、応答関数fAction26が定義されている。この応答関数fAction26]において、Logicタグで定義される遷移のアクション名はAction26であり、TransitionStateタグで定義される遷移先の状態は状態3である。状態5およびイベント21の組み合わせに対応するセルには、応答関数fAction23が定義されている。この応答関数fAction23]において、Logicタグで定義される遷移のアクション名はAction23であり、TransitionStateタグで定義される遷移先の状態は状態3である。状態5およびイベント22の組み合わせに対応するセルには、応答関数fAction25が定義されている。この応答関数fAction25]において、Logicタグで定義される遷移のアクション名はAction25であり、TransitionStateタグで定義される遷移先の状態は状態4である。以上説明した応答関数fAction21~fAction26には、ConditionタグやMessageタグは存在しない。次に、モデル図作成装置1が、状態イベント表100、200に基づいてそれぞれ作成するクラス図、ステートマシン図およびシーケンス図の構成を説明する。図4は、状態イベント表100から作成されるクラス図の構成を示す図である。同図に示すクラス図300は、最上部にクラス名ComponentAが記載されている。クラス名の下方には、属性名attrを有する属性に関する情報が追加されている。属性の下方には、他のクラスから利用される関数関数名GetSetが追加されている。ここで、関数Getの右側に記載されたintは、戻り値がint型であることを意味する。また、関数Setの右側に記載されたbooleanは、戻り値が真偽値trueorfalseであることを意味する。これらの引数と戻り値については、以下に示す関数においても同様に定められる。他のクラスから利用される関数の下方には、イベント関数E11,E12、条件関数Condition11,Condition12、イベント応答関数Action11,Action12,Action13が追加されている。イベント関数には、ステレオタイプが設定されている。イベント関数のスコープは、全ての場所からアクセス可能なパブリックである。イベント関数は引数がなく、その戻り値はvoidである。条件関数には、ステレオタイプが設定されている。条件関数のスコープは、自身のクラス内からのみアクセス可能なプライベートである。条件関数は引数がなく、その戻り値はbooleanである。イベント応答関数には、ステレオタイプが設定されている。イベント応答関数のスコープは、プライベートである。イベント応答関数は引数がなく、戻り値はvoidである。図5は、状態イベント表200から作成されるクラス図の構成を示す図である。同図に示すクラス図400は、最上部にクラス名ComponentBが記載されている。クラス名の下方には、属性が追加されるが、このクラスには属性がないため、何も記載されていない。属性の下方には、項目において、2つのイベント関数関数名E21E22が記載されている。また、項目において、6つのイベント応答関数関数名Action21Action22Action23Action24Action25Action26が記載されている。図6は、状態イベント表100から作成されるステートマシン図を示す図である。同図に示すステートマシン図500は、状態1STATE1と状態2STATE2との間の遷移を示す図である。状態1から状態2への遷移は、イベントE11をトリガとし、条件Condition11の下でアクション名Action11で遷移する。この遷移は、状態イベント表100の状態1およびイベント11の組み合わせに対応するセルのConditionタグおよびLogicタグに記載されている。状態2から状態1への遷移は、イベントE12をトリガとし、条件Condition12の下でアクション名Action12で遷移する。この遷移は、状態イベント表100の状態2およびイベント12の組み合わせに対応するセルのConditionタグおよびLogicタグに記載されている。状態2から状態2への遷移は、イベントE11をトリガとし、無条件でアクション名Action13で遷移する。この遷移は、状態イベント表100の状態2およびイベント11の組み合わせに対応するセルのLogicタグに記載されている。ステートマシン図500の初期状態は、状態イベント表100のマトリックスに含まれる状態の中で一番上に位置する状態1である。図7は、状態イベント表200から作成されるステートマシン図の構成を示す図である。同図に示すステートマシン図600は、状態3STATE3、状態4STATE4および状態5STATE5の間の相互の遷移を示す図である。状態3から状態4への遷移は、イベントE21をトリガとし、アクション名Action21で遷移する。この遷移は、状態イベント表200の状態3およびイベント21の組み合わせに対応するセルのLogicタグに記載されている。状態4から状態5への遷移は、イベントE21をトリガとし、アクション名Action22で遷移する。この遷移は、状態イベント表200の状態4およびイベント21の組み合わせに対応するセルのLogicタグに記載されている。状態5から状態3への遷移は、イベントE21をトリガとし、アクション名Action23で遷移する。この遷移は、状態イベント表200の状態5およびイベント21の組み合わせに対応するセルのLogicタグに記載されている。状態3から状態5への遷移は、イベントE22をトリガとし、アクション名Action24で遷移する。この遷移は、状態イベント表200の状態3およびイベント22の組み合わせに対応するセルのLogicタグに記載されている。状態5から状態4への遷移は、イベントE22をトリガとし、アクション名Action25で遷移する。この遷移は、状態イベント表200の状態5およびイベント22の組み合わせに対応するセルのLogicタグに記載されている。状態4から状態3への遷移は、イベントE22をトリガとし、アクション名Action26で遷移する。この遷移は、状態イベント表200の状態4およびイベント22との組み合わせに対応するセルのLogicタグに記載されている。ステートマシン図600の初期状態は、状態イベント表200のマトリックスに含まれる状態の中で一番上に位置する状態3である。図8は、状態イベント表100および200から作成されるシーケンス図の構成を示す図である。同図に示すシーケンス図700は、クラス名ComponentAからクラス名ComponentBへのメッセージの流れを与える図である。状態1およびイベント11の組み合わせに関連するメッセージとして、イベント21が条件Condition11の下でクラス名ComponentBへ送信される。このメッセージ送信については、状態イベント表100の状態1およびイベント11の組み合わせに対応するセルのMessageタグに記載されている。状態2およびイベント11の組み合わせに関連するメッセージとして、イベント22が無条件でクラス名ComponentBへ送信される。このメッセージ送信については、状態イベント表100の状態2およびイベント11の組み合わせに対応するセルのMessageタグに記載されている。状態2およびイベント12の組み合わせに関連するメッセージとして、イベント22が条件Condition12の下でクラス名ComponentBへ送信される。このメッセージ送信については、状態イベント表100の状態2およびイベント12の組み合わせに対応するセルのMessageタグに記載されている。図9は、本実施の形態に係るモデル図作成方法における処理の概要を説明するフローチャートである。モデル図作成装置1は、入力部2によってモデル図の作成指示信号が入力されるとステップS1:Yes,クラス図ステップS2、ステートマシン図ステップS3、シーケンス図ステップS4を順次作成する。モデル図の作成指示信号が入力されない場合ステップS1:No、モデル図作成装置1は、ステップS1を繰り返す。なお、ステートマシン図とシーケンス図の作成順を逆にしてもよい。以下、ステップS2~S4の処理を詳細に説明する。図10は、モデル図作成装置1が行うクラス図の作成処理ステップS2の概要を説明するフローチャートである。モデル図作成装置1の記憶部4には、入力部2による入力によってモデル図用のフォルダが予め生成されているものとする。以下、このフォルダのフォルダ名をArchitectureとする。まず、要素構成図作成部53は、状態イベント表が記載された全てのコンポーネントを要素構成図に追加するステップS11。一例として、コンポーネント名Componentというコンポーネントに、図2に示す状態イベント表100および図3に示す状態イベント表200が個別の領域に記載されている場合を説明する。図11Aは、表示部3が表示制御部54の制御のもとでコンポーネントを追加した要素構成図を表示する場合の表示例を示す図である。図11Aに示す要素構成図801では、破線で囲んだ領域以下、破線領域というに示すように、Componentの下層構造として、2つの状態イベント表に対応するコンポーネントComponentA,ComponentBが記述されている。なお、破線領域は追加された箇所を明記するために便宜的に設けたものに過ぎず、表示部3で実際に表示されない。モデル図作成装置1は、以下に説明するステップS12~S16の処理を全ての状態イベント表に対して行う。まず、ステップS12において、構造図作成部51および要素構成図作成部53は、クラス図、クラス要素を追加するステップS12。この際、構造図作成部51は、クラス図にクラス要素を追加する処理を行う。また、要素構成図作成部53は、要素構成図に対してクラス図、クラス要素を追加する。例えば、状態イベント表100に対して処理を行う場合、ComponentAというクラス図、クラス要素を追加する。図11Bは、要素構成図作成部53がクラス図、クラス要素を追加した要素構成図の表示部3における表示例を示す図である。図11Bに示す要素構成図802では、図11Aに示す要素構成図801に対し、異なるアイコンを有するクラス図とクラス要素が追加されている破線領域を参照。その後、構造図作成部51および要素構成図作成部53は、各種関数をクラス図および要素構成図に対して追加するステップS13。例えば、状態イベント表100に対して処理を行う場合、各種関数としては、イベント関数E11,E12,条件関数Condition11,Condition12,イベント応答関数Action11,Action12,Action13,および他クラスから利用される関数Get,Setが追加される。図11Cは、各種関数を追加した要素構成図の表示部3における表示例を示す図である。図11Cに示す要素構成図803では、図11Bに示す要素構成図802に対し、上述した各種関数が追加されている破線領域を参照。続いて、構造図作成部51および要素構成図作成部53は、属性を追加するステップS14。例えば、状態イベント表100の場合、属性attrが追加される。図11Dは、属性を追加した要素構成図の表示部3における表示例を示す図である。図11Dに示す要素構成図804では、図11Cに示す要素構成図803に対し、属性attrが追加されている破線領域を参照。この後、表示制御部54は、構造図作成部51が作成したクラス図を表示部3に表示させるステップS15。図11Eは、表示部3におけるクラス図の表示例を示す図である。同図に示す表示画面805は、状態イベント表100に基づいて構造図作成部51が作成したクラス図300を表示するクラス図表示領域806と、要素構成図作成部53が作成した要素構成図804とを並べて表示している。クラス図表示領域806の最上部には、クラス図名ComponentAが表示されている。構造図作成部51は、作成したクラス図を作成情報記憶部42に記憶させるステップS16。なお、モデル図作成装置1は、ステップS16の処理を、ステップS15の前に行ってもよいし、ステップS15と並行して行ってもよい。モデル図作成装置1は、以上説明したステップS12~S16の処理を全ての状態イベント表に対して行う。図11Fは、要素構成図作成部53が状態イベント表200に対してステップS14までの処理を終了した要素構成図の表示部3における表示例を示す図である。図11Fに示す要素構成図807は、図11Dに示す要素構成図804に対し、ComponentBに関するクラス図のツリー構造が追加されている破線領域を参照。なお、この場合にも、ステップS15において、要素構成図807とクラス図400が表示部3で並列表示される。モデル図作成装置1は、全ての状態イベント表に対してクラス図の作成処理が終了した場合、図9に示すメインルーチンへ戻る。次に、ステートマシン図の作成処理ステップS3について説明する。図12は、モデル図作成装置1が行うステートマシン図の作成処理の概要を説明するフローチャートである。このステートマシン図の作成処理についても、全ての状態イベント表に対して繰り返し処理を行う。まず、振る舞い図作成部52および要素構成図作成部53は、ステートマシン図を追加するステップS21。具体的には、振る舞い図作成部52は、クラス図と同じ名称のステートマシン図の作成を開始する。一方、要素構成図作成部53は、要素構成図のクラス図の要素の下層にステートマシン図の要素を追加する。図13Aは、ステートマシン図の要素を追加した要素構成図の表示部3における表示例を示す図である。図13Aに示す要素構成図811では、図11Fに示す要素構成図807に対し、クラス図の要素の下層にComponentAのステートマシン図の要素が追加されている破線領域を参照。続いて、振る舞い図作成部52および要素構成図作成部53は、ステートマシン図に必要な全ての状態を追加するステップS22。例えば、状態イベント表100に対して処理を行う場合、状態1STATE1および状態2STATE2が追加される。図13Bは、状態イベント表100に対して状態を追加した要素構成図の表示部3における表示例を示す図である。図13Bに示す要素構成図812では、図13Aに示す要素構成図811に対し、2つの状態の要素STATE1STATE2が追加されている破線領域を参照。この後、振る舞い図作成部52および要素構成図作成部53は、状態イベント表のイベント名から、クラスの下のトリガ要素として、ステートマシン図に必要な全てのイベントを追加するステップS23。例えば、状態イベント表100の場合には、イベントE11,E12を追加する。図13Cは、イベントを追加した要素構成図の表示部3における表示例を示す図である。図13Cに示す要素構成図813は、図13Bに示す要素構成図812に対し、2つのイベントが追加されている破線領域を参照。続いて、振る舞い図作成部52は、ステートマシン図に必要な全ての遷移を追加するステップS24。例えば、状態イベント表100に対して処理を行う場合、状態1から状態2への遷移と、状態2から状態1への遷移が追加される。この処理は、状態イベント表においてTransitionStateタグが記載されたセルに対応する状態を遷移元状態ソースとし、TransitionStateタグの内容を遷移先状態ターゲットとして遷移を追加することに相当する。この処理は、要素構成図には反映されない。この後、振る舞い図作成部52は、ステップS24で追加した遷移に対して、イベント名、条件、およびアクションを追加するステップS25。例えば、状態イベント表100に対して処理を行う場合、まず状態1から状態2への遷移に対し、イベント名E11,条件名Condition11,アクションAction11を追加する。この処理では、状態イベント表においてTransitionStateタグが記載されたセルに対応するイベント名を名前とする遷移のトリガを追加する。また、状態イベント表においてConditionタグが記載されたセルがある場合、Conditionタグの属性名Funcの値をガード関数名として遷移のガードを追加する。また、Logicタグの内容をアクションにする。この処理も、要素構成図には反映されない。続いて、振る舞い図作成部52および要素構成図作成部53は、開始要素を追加するステップS26。具体的には、モデル図作成装置1は、状態イベント表の一番上の状態を初期状態として、開始要素から初期状態への遷移を追加する。例えば、状態イベント表100に対して処理を行う場合、初期状態はSTATE1である。図13Dは、開始要素を追加した要素構成図の表示部3における表示例を示す図である。図13Dに示す要素構成図814は、図13Cに示す要素構成図813に対し、開始要素が追加されている破線領域を参照。この後、表示制御部54は、振る舞い図作成部52が作成したステートマシン図を表示部3に表示させるステップS27。例えば、状態イベント表100に対して、表示制御部54は、図6に示すステートマシン図500を要素構成図814とともに表示部3に並列表示させる。振る舞い図作成部52は、作成したステートマシン図を作成情報記憶部42に記憶させるステップS28。なお、モデル図作成装置1は、ステップS28の処理を、ステップS27の前に行ってもよいし、ステップS27と並行して行ってもよい。モデル図作成装置1は、以上説明したステップS21~S28の処理を全ての状態イベント表に対して行う。図13Eは、状態イベント表200に対して一連のステートマシン図作成処理ステップS21~S28の処理を終了した要素構成図の表示部3における表示例を示す図である。同図に示す要素構成図815は、図13Dに示す要素構成図814に対し、ComponentBに関するステートマシン図のツリー構造が追加されている破線領域を参照。なお、この場合にも、表示制御部54は、要素構成図815およびステートマシン図600を表示部3で並列表示させる。モデル図作成装置1は、全ての状態イベント表に対してステートマシン図の作成処理を終了した場合、図9に示すメインルーチンへ戻る。次に、シーケンス図の作成処理ステップS4について説明する。図14は、モデル図作成装置1が行うシーケンス図の作成処理の概要を説明するフローチャートである。シーケンス図作成処理についても、全ての状態イベント表に対して繰り返し処理を行う。まず、制御部5は、状態イベント表にMessageタグの記述の有無を確認するステップS31。状態イベント表にMessageタグの記述がある場合ステップS31:Yes、制御部5はステップS32へ移行する。一方、状態イベント表にMessageタグの記述がない場合ステップS31:No、制御部5は他の状態イベント表に対する処理へ移行する。例えば、状態イベント表100はMessageタグの記述がある場合であり、状態イベント表200はMessageタグの記述がない場合に相当する。ステップS32において、振る舞い図作成部52および要素構成図作成部53は、シーケンス図を追加するステップS32。ここで、振る舞い図作成部52は、所定の名称を有するシーケンス図の作成を開始し、要素構成図作成部53は、要素構成図のコンポーネントの要素の下層に上述した名称を要素名とするシーケンス図の要素を追加する。図15Aは、シーケンス図の要素を追加した要素構成図の表示部3における表示例を示す図である。図15Aに示す要素構成図821は、図13Eに示す要素構成図815に対し、シーケンス図の要素が追加されている破線領域を参照。本実施の形態では、シーケンス図の名称をComponentCとして新たに生成しているが、名称の設定の仕方は任意である。続いて、振る舞い図作成部52は、状態イベント表における送信元のクラスをシーケンス図に追加するステップS33。例えば、状態イベント表100に対して処理を行う場合には、クラス名ComponentAのクラスが追加される。この処理は、要素構成図の記載には反映されない。この後、振る舞い図作成部52および要素構成図作成部53は、メッセージ終了点の要素を追加するステップS34。図15Bは、メッセージ終了点の要素を追加した要素構成図の表示部3における表示例を示す図である。図15Bに示す要素構成図822は、図15Aに示す要素構成図821に対し、3つのメッセージ終了点黒丸で表示が追加されている破線領域を参照。続いて、振る舞い図作成部52は、メッセージ終了点からステップS33で追加した送信元のクラスへのメッセージを追加するステップS35。ここでのメッセージ名は、状態名/イベント名引数の形式で記述する。例えば、状態イベント表100に対して処理を行う場合には、3つのセルにMessageタグが記述されている。このため、振る舞い図作成部52は、3つのメッセージを追加する。各メッセージのメッセージ名は、STATE1E11、STATE2E11、STATE2E12である。この処理は、要素構成図の記載には反映されない。この後、振る舞い図作成部52は、送信先のクラス名に対応するクラスをシーケンス図に追加するステップS36。例えば、状態イベント表100の場合、送信先のクラス名はComponentBである。この処理も要素構成図の記載には反映されない。なお、状態イベント表で送信先のクラスが指定されていない場合には、送信先のクラス名を既存資産レガシーとすることも可能である。続いて、振る舞い図作成部52は、送信先のクラスへのメッセージを追加するステップS37。ここでのメッセージ名は、条件:イベント名引数の形式で記述する。条件がない場合には、イベント名引数のみ記載する。例えば、状態イベント表100に対して処理を行う場合、3つのセルにMessageタグが記述されている。このため、振る舞い図作成部52は、3つのセルに対応してCondition11E21、E22、Condition12E22という3つのメッセージを対応する箇所に追加する。この処理も要素構成図の記載には反映されない。この後、表示制御部54は、振る舞い図作成部52が作成したシーケンス図を表示部3に表示させるステップS38。例えば、状態イベント表100に対しては、図8に示すシーケンス図700が、図15Bに示す要素構成図822とともに表示される。振る舞い図作成部52は、作成したシーケンス図を作成情報記憶部42に記憶させるステップS39。なお、モデル図作成装置1は、ステップS39の処理を、ステップS38の前に行ってもよいし、ステップS38と並行して行ってもよい。モデル図作成装置1が全ての状態イベント表に対してシーケンス図の作成処理を終了した場合、要素構成図作成部53は、要素構成図を作成情報記憶部42に記憶させるステップS40。その後、モデル図作成装置1は、図9に示すメインルーチンへ戻る。以上説明した本発明の一実施の形態によれば、モデル図としての構造図および複数種類の振る舞い図の構成を定める関数が状態およびイベントの組み合わせに応じて記述された状態イベント表に基づいて構造図および複数種類の振る舞い図を自動的に作成するため、開発対象のソフトウェアの多様な側面を反映しつつ一貫性のあるオブジェクト指向モデルの生成を実現することが可能となる。また、本実施の形態によれば、状態イベント表において、ステートマシン図における状態の遷移を定める関数、シーケンス図におけるメッセージの送信条件を定める関数、およびシーケンス図におけるメッセージの送信先を定める関数を記述することができるため、少なくとも2つの振る舞い図を自動的に作成することが可能となる。また、本実施の形態によれば、構造図および複数種類の振る舞い図を作成するために必要な情報を要素として有し、複数の要素の相互関係をツリー構造で示す要素構成図を作成して表示部で表示するため、ユーザは状態イベント表から各種モデル図を作成するための情報を容易に認識することができる。また、本実施の形態によれば、要素構成図に対して要素を追加するごとに表示部における表示を切り換えて表示するため、ユーザは、モデル図作成処理の進捗状況をリアルタイムで的確に把握することができる。また、本実施の形態によれば、要素構成図とモデル図とを並列で表示するため、ユーザは1つの画面を見ることによって多様な情報を得ることができる。なお、本発明において、構造図作成部および振る舞い図作成部に対し、作成したモデル図の整合性をチェックする機能を具備させてもよい。この場合には、構造図作成部および振る舞い図作成部のチェック結果を表示部に表示させるようにすればより好ましい。本発明は、再利用可能なソフトウェアの部品であるドメインを開発するドメインエンジニアリングと、そのドメインを用いることによって製品であるソフトウェアを開発するアプリケーションエンジニアリングとを含むプロダクトライン型のソフトウェア開発において、プロダクトライン用のアーキテクチャコンポーネント図を設計するために必要なモデル図を作成する際にも有用である。"