(57)【特許請求の範囲】
【請求項１】
ＵＭＬモデル図を生成するオブジェクト指向モデル設計支援装置であって、
開発対象システムのクラス図を作成するクラス図作成手段と、
前記クラス図の情報からクラスを一覧にしたクラス情報を抽出するクラス抽出手段と、
前記抽出したクラス情報を記憶するクラス保持手段と、
前記記憶しているクラス情報を基にオブジェクト図を作成するオブジェクト図作成手段と、
前記オブジェクト図の情報から各クラスのオブジェクト情報を抽出するオブジェクト抽出手段と、
前記抽出したオブジェクト情報を記憶するオブジェクト保持手段と、
前記記憶しているオブジェクト情報を基にシーケンス図を作成するシーケンス図作成手段とを備えることを特徴とするオブジェクト指向モデル設計支援装置。
【請求項２】
ＵＭＬモデル図を生成するオブジェクト指向モデル設計支援装置であって、
開発対象システムのクラス図を作成するクラス図作成手段と、
前記クラス図の情報から各クラスの処理関数情報を抽出する処理関数抽出手段と、
前記抽出した処理関数情報を記憶する処理関数保持手段と、
前記記憶している処理関数情報を基にシーケンス図を作成するシーケンス図作成手段とを備えることを特徴とするオブジェクト指向モデル設計支援装置
【請求項３】
ＵＭＬモデル図を生成するオブジェクト指向モデル設計支援装置であって、
開発対象システムのクラス図を作成するクラス図作成手段と、
前記クラス図の情報から各クラスのイベント情報を抽出するイベント抽出手段と、
前記抽出したイベント情報を記憶するイベント保持手段と、
前記記憶しているイベント情報を基にシーケンス図を作成するシーケンス図作成手段とを備えることを特徴とするオブジェクト指向モデル設計支援装置
【請求項４】
ＵＭＬモデル図を生成するオブジェクト指向モデル設計支援装置であって、
開発対象システムのクラス図を作成するクラス図作成手段と、
前記クラス図の情報から各クラスの処理関数情報を抽出する処理関数抽出手段と、各クラスのイベント情報を抽出するイベント抽出手段と、
前記抽出した処理関数情報を記憶する処理関数保持手段と、前記抽出したイベント情報を記憶するイベント保持手段と、
前記記憶している処理関数情報またはイベント情報を基にステートマシン図を作成するステートマシン図作成手段とを備えることを特徴とするオブジェクト指向モデル設計支援装置。
【請求項５】
請求項４記載のオブジェクト指向モデル設計支援装置において、
前記ステートマシン図の情報から各クラスの状態情報を抽出する状態抽出手段と、
前記抽出した状態情報を記憶する状態保持手段と、
更に、
前記記憶している状態情報を基にシーケンス図を作成するシーケンス図作成手段とを備えることを特徴とするオブジェクト指向モデル設計支援装置。
【請求項６】
請求項１記載のオブジェクト指向モデル設計支援装置において、
前記オブジェクト図作成手段は、
前記記憶しているクラス情報からクラスの選択リストを作成する手段と、
前記作成した選択リストを表示する手段と、
前記表示した選択リストからクラスを選択させる手段と、
を備え、
前記選択させたクラスを基にオブジェクト図を作成することを特徴とするオブジェクト指向モデル設計支援装置。
【請求項７】
請求項１記載のオブジェクト指向モデル設計支援装置において、
前記シーケンス図作成手段は、
前記記憶しているオブジェクト情報からオブジェクトの選択リストを作成する手段と、
前記作成した選択リストを表示する手段と、
前記表示した選択リストからオブジェクトを選択させる手段と、
を備え、
前記選択させたオブジェクトを基にシーケンス図を作成することを特徴とするオブジェクト指向モデル設計支援装置。
【請求項８】
請求項２記載のオブジェクト指向モデル設計支援装置において、
前記シーケンス図作成手段は、
前記記憶している処理関数情報から処理関数の選択リストを作成する手段と、
前記作成した選択リストを表示する手段と、
前記表示した選択リストから処理関数を選択させる手段と、
を備え、
前記選択させた処理関数を基にシーケンス図を作成することを特徴とするオブジェクト指向モデル設計支援装置。
【請求項９】
請求項３記載のオブジェクト指向モデル設計支援装置において、
前記シーケンス図作成手段は、
前記記憶しているイベント情報からイベントの選択リストを作成する手段と、
前記作成した選択リストを表示する手段と、
前記表示した選択リストからイベントを選択させる手段と、
を備え、
前記選択させたイベントを基にシーケンス図を作成することを特徴とするオブジェクト指向モデル設計支援装置。
【請求項１０】
請求項４記載のオブジェクト指向モデル設計支援装置において、
前記ステートマシン図作成手段は、
前記記憶している処理関数情報またはイベント情報から処理関数またはイベントの選択リストを作成する手段と、
前記作成した選択リストを表示する手段と、
前記表示した選択リストから処理関数またはイベントを選択させる手段と、
を備え、
前記選択させた処理関数またはイベントを基にステートマシン図を作成することを特徴とするオブジェクト指向モデル設計支援装置。
【請求項１１】
請求項５記載のオブジェクト指向モデル設計支援装置において、
前記シーケンス図作成手段は、
前記記憶している状態情報から状態の選択リストを作成する手段と、
前記作成した選択リストを表示する手段と、
前記表示した選択リストから状態を選択させる手段と、
を備え、
前記選択させた状態を基にシーケンス図を作成することを特徴とするオブジェクト指向モデル設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト指向分析・設計手法を用いて設計されたソフトウェア図面を編集・表示することが可能なオブジェクト指向モデル設計支援装置に関する。
【背景技術】
【０００２】
オブジェクト指向をベースとするシステム開発において、分析・設計段階ではシステムの構造をソースコードよりも抽象化した形でモデリングする必要がある。モデリングとは、対象をある目的または観点から眺め、整理し表現することであり、このモデリングした結果作成されたものをモデルと呼ぶ。
【０００３】
モデリングの表記方法を統一化することにより、分析の明確化や適切な設計、情報の共有化・再利用を行うことがきる。
統一モデリング言語としてＵＭＬ(Unified Modeling Language)が知られている。ＵＭＬは、業務及びソフトウェアを記述するための図式記法として、オブジェクト指向の標準化団体である米国のOMG（オブジェクト・マネジメント・グループ）で制定された規格である。既に、デファクトスタンダードとして世界で受け入れられており、国際規格（ISO/IEC 19501）としても制定されている。
【０００４】
また、ＵＭＬはグラフィカルな記述で抽象化したシステムのモデルを生成する汎用モデリング言語であり、その実施において、複数種類の図が用いられている。ＵＭＬで用いられる図(以降、ＵＭＬモデル図と表記する)は、開発対象システムの分析や設計を行う際に作成される。また、ＵＭＬモデル図は、システムの静的な構造をモデルで表現する構造図とシステムの振る舞いをモデルで表現する振る舞い図に大別される。
【０００５】
構造図としては、クラス図、オブジェクト図などがある。振る舞い図としては、ステートマシン図(ステートチャート図や状態遷移図とも表現される)、シーケンス図、などがある。
【０００６】
ところで、従来のオブジェクト指向をベースとするソフトウェア開発においては、市販のＵＭＬモデリングツールを用いて、ＵＭＬモデル図を作成し、作成したＵＭＬモデル図からプログラムコードを自動生成することで、ソフトウェアの生産性向上が図られてきた。
【０００７】
また、ＵＭＬモデリングツールは、ＵＭＬモデル図の作成を支援する機能を有している。例えば、市販のＵＭＬモデリングツールであるスパークスシステムズジャパン社製「Enterprise Architect」では、シーケンス図の作成を支援する機能として、本来、シーケンス図で作成すべき「メッセージ」をクラス図で定義されている「操作」（メソッド）の一覧の中から選択することが可能となっている。
【０００８】
また、特許文献１では、クラス図とシーケンス図の情報を基にしてステートマシン図の設計を支援するオブジェクト指向モデル設計支援装置を提供している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−９４８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した市販のモデリングツールは、クラス図の情報を基にしてシーケンス図の設計を支援する機能であり、オブジェクト図やステートマシン図の設計を支援する機能はない。また、特許文献１では、クラス図とシーケンス図の情報を基にしてステートマシン図の設計を支援する装置であり、オブジェクト図やシーケンス図の設計を支援することについては何ら記載されていない。また、特許文献１では、ステートマシン図内の「アクション」の設計のみを対象としており、ステートマシン図のモデル設計については何ら記載されていない。
【００１１】
従って、市販のモデリングツールや特許文献１の技術では、クラスの関係、オブジェクトの関係、あるオブジェクトの状態遷移、オブジェクト同士のメッセージのやり取りなどを設計する場合、複数種類のＵＭＬモデル図の設計を行う必要があり、トータルの作業効率としてはあまり良くならない。
【００１２】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、関係するＵＭＬモデル図の情報からクラス図、オブジェクト図、ステートマシン図、シーケンス図の設計を支援する装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明におけるオブジェクト指向モデル設計支援装置は、クラス図を作成するクラス図作成手段、クラス図からクラス一覧を抽出するクラス抽出手段、クラス図から抽出されたクラス一覧を保持するクラス保持手段、クラス図から各クラスの処理関数一覧を抽出する処理関数抽出手段、クラス図から抽出された各クラスの処理関数一覧を保持する処理関数保持手段、クラス図から各クラスのイベント一覧を抽出するイベント抽出手段、クラス図から抽出された各クラスのイベント一覧を保持するイベント保持手段、オブジェクト図を作成するオブジェクト図作成手段、オブジェクト図からオブジェクト一覧を抽出するオブジェクト抽出手段、オブジェクト図から抽出されたオブジェクト一覧を保持するオブジェクト保持手段、ステートマシン図を作成するステートマシン図作成手段、ステートマシン図から状態一覧を抽出する状態抽出手段、ステートマシン図から抽出された状態一覧を保持する状態保持手段、及び、シーケンス図を作成するシーケンス図作成手段から構成される。
【００１４】
前記クラス図作成手段は、エディタなどの入力装置によって、開発対象システムのクラス構造を表現するクラス図を作成する手段である。前記クラス抽出手段は、クラス図からクラス一覧を抽出する手段である。前記クラス保持手段は、クラス抽出手段により抽出されたクラス一覧を保持する手段である。前記処理関数抽出手段は、クラス図から各クラスの処理関数一覧を抽出する手段である。前記処理関数保持手段は、処理関数抽出手段により抽出された処理関数一覧を保持する手段である。前記イベント抽出手段は、クラス図から各クラスのイベント一覧を抽出する手段である。前記イベント保持手段は、イベント抽出手段により抽出されたイベント一覧を保持する手段である。
【００１５】
前記オブジェクト図作成手段は、エディタなどの入力装置によって、開発対象システムのオブジェクト構造を表現するオブジェクト図を作成する手段である。さらに、オブジェクト図作成手段は、オブジェクトの属するクラスを入力する際にクラス保持手段に保持されているクラス一覧から選択する手段を有する。前記オブジェクト抽出手段は、オブジェクト図からオブジェクト一覧を抽出する手段である。前記オブジェクト保持手段は、オブジェクト抽出手段により抽出されたオブジェクト一覧を保持する手段である。
【００１６】
前記ステートマシン図作成手段は、エディタなどの入力装置によって、開発対象システムの各クラスにおける状態の変化を表現するステートマシン図を作成する手段である。さらに、ステートマシン図作成手段は、遷移の処理関数を入力する際に処理関数保持手段に保持されている処理関数一覧から選択する手段を有する。また、ステートマシン図作成手段は、遷移のイベントを入力する際にイベント保持手段に保持されているイベント一覧から選択する手段を有する。前記状態抽出手段は、ステートマシン図から状態一覧を抽出する手段である。前記状態保持手段は、状態抽出手段により抽出された状態一覧を保持する手段である。
【００１７】
前記シーケンス図作成手段は、エディタなどの入力装置によって、開発対象システムのオブジェクト間のメッセージの流れを表現するシーケンス図を作成する手段である。さらに、シーケンス図作成手段は、ライフラインを入力する際にオブジェクト保持手段に保持されているオブジェクト一覧から選択する手段を有する。また、シーケンス図作成手段は、メッセージを入力する際に状態保持手段に保持されている状態一覧とイベント保持手段に保持されているイベント一覧、または、処理関数保持手段に保持されている処理関数一覧、または、イベント保持手段に保持されているイベント一覧から選択する手段を有する。
【００１８】
なお、ここでは、クラス図作成手段、クラス抽出手段、クラス保持手段、処理関数抽出手段、処理関数保持手段、イベント抽出手段、イベント保持手段、オブジェクト図作成手段、オブジェクト抽出手段、オブジェクト保持手段、ステートマシン図作成手段、状態抽出手段、状態保持手段、及び、シーケンス図作成手段は別々の手段としているが、全てを同一の環境で実現できる手段であってもよい。
【００１９】
また、ここでは、装置として表現されているが、方法、プログラム、コンピュータ読み取り可能な記憶媒体などにより実現されるとしてもよい。
【発明の効果】
【００２０】
本発明によれば、オブジェクト指向をベースとするソフトウェア開発において、開発者はモデル図作成の際に作成済みのモデル図の情報から必要な情報を抽出し、抽出された情報を選択することにより他の複数種類のモデル図を作成することが可能となるため、モデル設計作業が軽減され、ソフトウェア開発のトータル作業効率を削減することができる。
【００２１】
また、本発明により、モデル図作成時の情報入力はその大半が表示された情報を選択することで入力可能であるため、文字入力時のタイプミスや入力漏れをなくすことができる。
【図面の簡単な説明】
【００２２】
【図１】本発明におけるオブジェクト指向モデル設計支援装置の一実施例を示す図である。
【図２】クラス図の一実施例を示す図である。
【図３】クラス一覧の一実施例を示す図である。
【図４】処理関数一覧の一実施例を示す図である。
【図５】イベント一覧の一実施例を示す図である。
【図６】オブジェクト作成画面の一実施例を示す図である。
【図７】オブジェクト作成時のクラス選択画面の一実施例を示す図である。
【図８】オブジェクト図の一実施例を示す図である。
【図９】オブジェクト一覧の一実施例を示す図である。
【図１０】遷移作成画面の一実施例を示す図である。
【図１１】遷移作成時のイベント選択画面の一実施例を示す図である。
【図１２】遷移作成時の処理関数選択画面の一実施例を示す図である。
【図１３】ステートマシン図(クラス名が”ClassA”であるクラス)の一実施例を示す図である。
【図１４】ステートマシン図(クラス名が”ClassB”であるクラス)の一実施例を示す図である。
【図１５】ステートマシン図(クラス名が”ClassC”であるクラス)の一実施例を示す図である。
【図１６】状態一覧の一実施例を示す図である。
【図１７】ライフライン作成画面の一実施例を示す図である。
【図１８】ライフライン作成時のオブジェクト選択画面の一実施例を示す図である。
【図１９】メッセージ終了点からライフラインへのメッセージ作成画面の一実施例を示す図である。
【図２０】メッセージ終了点からライフラインへのメッセージ作成時の状態選択画面の一実施例を示す図である。
【図２１】メッセージ終了点からライフラインへのメッセージ作成時のイベント選択画面の一実施例を示す図である。
【図２２】メッセージ終了点からライフラインへのメッセージ作成時の処理関数選択画面の一実施例を示す図である。
【図２３】ライフラインからライフラインへのメッセージ作成画面の一実施例を示す図である。
【図２４】ライフラインからライフラインへのメッセージ作成時のイベント選択画面の一実施例を示す図である。
【図２５】シーケンス図の一実施例を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について、詳細に説明する。
＜オブジェクト指向モデル設計支援装置の機能構成と概要＞
図１は、本発明におけるオブジェクト指向モデル設計支援装置の一実施例を示す図である。
【００２４】
図１に示すように、オブジェクト指向モデル設計支援装置の機能は、エディタなどの入力装置によって開発対象システムのクラス構造を表現するクラス図２を作成するクラス図作成手段１、クラス図からクラス一覧を抽出するクラス抽出手段３、クラス図から抽出されたクラス一覧を保持するクラス保持手段６、クラス図２から各クラスの処理関数一覧を抽出する処理関数抽出手段４、クラス図２から抽出された各クラスの処理関数一覧を保持する処理関数保持手段７、クラス図２から各クラスのイベント一覧を抽出するイベント抽出手段５、クラス図から抽出された各クラスのイベント一覧を保持するイベント保持手段８、エディタなどの入力装置によって開発対象システムのオブジェクト構造を表現するオブジェクト図１０を作成するオブジェクト図作成手段９、オブジェクト図１０からオブジェクト一覧を抽出するオブジェクト抽出手段１１、オブジェクト図１０から抽出されたオブジェクト一覧を保持するオブジェクト保持手段１２、エディタなどの入力装置によって開発対象システムの各クラスにおける状態の変化を表現するステートマシン図１４を作成するステートマシン図作成手段１３、ステートマシン図１４から状態一覧を抽出する状態抽出手段１５、ステートマシン図１４から抽出された状態一覧を保持する状態保持手段１６、及び、エディタなどの入力装置によって開発対象システムのオブジェクト間のメッセージの流れを表現するシーケンス図１８を作成するシーケンス図作成手段１７とで構成されている。
【００２５】
＜オブジェクト指向モデル設計支援装置のハードウェア構成＞
また、図示はしていないが、オブジェクト指向モデル設計支援装置本体２０は上述した機能を実現するために、一般的なコンピュータのハードウェア資源として、例えば、ＣＰＵ、記憶装置、入出力装置、各種インターフェースなど、を周知の構成として備えており、また当然ながら、前記ごとき機能を実現させるためのプログラムを前記記憶装置内に格納している。クラス保持手段６、処理関数保持手段７、イベント保持手段８、オブジェクト保持手段１２、状態保持手段１６およびクラス図２、オブジェクト図１０、ステートマシン図１４、シーケンス図１８を表示させるための情報の保持手段（図示せず）は上述の記憶装置により実現され、また、クラス図作成手段１、クラス抽出手段３、処理関数抽出手段４、イベント抽出手段５、オブジェクト図作成手段９、オブジェクト抽出手段１１、ステートマシン図作成手段１３、状態抽出手段１５、シーケンス図作成手段１７は、上述のＣＰＵ、記憶装置、各種インターフェース等のハードウェア資源と実行する各種プログラムにより実現される。
【００２６】
さらに、オブジェクト指向モデル設計支援装置は、キーボード、マウス、タッチパネル等のインターフェースを用いて実現される入力手段３０と、液晶または有機EL等からなる表示パネルや音声出力用のスピーカー等を有し、各種情報を表示する表示手段４０を備える。
【００２７】
また、入力手段３０及び表示手段４０は、オブジェクト指向モデル設計支援装置本体２０のクライアント端末（図示せず）にその機能があってもよい。このときは、ネットワークを介してオブジェクト指向モデル設計支援装置本体２０とクライアント端末が通信可能に接続されている。なお、ネットワークは、有線、無線を問わず既存の公衆網、ＬＡＮ、ＷＡＮなどを用いることができる。
＜クラス図作成−抽出−保持＞
図２は、本発明におけるクラス図の一例を示す図である。クラス図は、クラス図作成手段１を用いて作成される。
【００２８】
図２は、本発明におけるクラス図の一実施例を示す図である。クラス図は、クラス図作成手段１を用いて作成される。
図２に示すように、各クラスは、クラス名、属性、及び、操作を持つ。また、操作は、ステレオタイプなどを使用し、処理関数とイベントに分類される。
【００２９】
図２に示す例では、クラス名が”ClassA”であるクラスは、属性として、int型である変数”a”、及び、char型である変数”b”を持つ。また、処理関数として、返り値の型が”void”である処理関数”Ma1”、及び、”Ma2”を持つ。また、イベントとして、返り値の型が”void”であるイベント”Ea1”、”Ea2”、及び、”Ea3”を持つ。
【００３０】
さらに、クラス名が”ClassB”であるクラスは、属性を持っていない。また、処理関数として、返り値の型が”void”である処理関数”Mb1”を持つ。また、イベントとして、返り値の型が”void”であるイベント”Eb1”、及び、”Eb2”を持つ。
【００３１】
さらに、クラス名が”ClassC”であるクラスは、属性を持っていない。また、処理関数として、返り値の型が”void”である処理関数”Mc1”、”Mc3”、及び、”Mc4”を持つ。また、イベントとして、返り値の型が”void”であるイベント”Ec1”、”Ec2”、”Ec3”、及び、”Ec4”を持つ。
【００３２】
ここで、クラス名、属性名、処理関数名、及び、イベント名は、モデル設計者が文字列を入力する。
図３は、本発明におけるクラス一覧の一実施例を示す図である。クラス一覧（クラス情報）は、クラス抽出手段３によりクラス図から抽出され、クラス保持手段６に保持される。
【００３３】
図４は、本発明における処理関数一覧の一実施例を示す図である。処理関数一覧（処理関数情報）は、処理関数抽出手段４によりクラス図から抽出され、処理関数保持手段７に保持される。
【００３４】
図５は、本発明におけるイベント一覧の一実施例を示す図である。イベント一覧（イベント情報）は、イベント抽出手段５によりクラス図から抽出され、イベント保持手段８に保持される。
＜オブジェクト図作成−抽出−保持＞
図６は、本発明におけるオブジェクト図作成手段９を用いてオブジェクトを作成する際のオブジェクト作成画面の一実施例を示す図である。
【００３５】
図７は、本発明におけるオブジェクト図作成手段９を用いてオブジェクトを作成する際のクラス選択画面の一実施例を示す図である。
図７に示すように、クラス選択の際にはクラス保持手段６に保持されているクラス一覧をリスト表示する。
【００３６】
図７に示す例では、図３に示すクラス一覧がリスト表示されている。図６、図７に示すように、オブジェクトを作成する際にはオブジェクト名を入力し、クラスをリストから選択する。
【００３７】
図８は、本発明におけるオブジェクト図の一実施例を示す図である。オブジェクト図は、オブジェクト図作成手段９を用いて作成される。
図８に示すように、各オブジェクトは、オブジェクト名、及び、クラス名によって表現される。
【００３８】
図８に示す例では、オブジェクト名が”objectA1”であるオブジェクトとオブジェクト名が”objectA2”であるオブジェクトは、クラス名が”ClassA”であるクラスのインスタンスであることを示している。
【００３９】
さらに、オブジェクト名が”objectB1”であるオブジェクトは、クラス名が”ClassB”であるクラスのインスタンスであることを示している。
さらに、オブジェクト名が”objectC1”であるオブジェクトは、クラス名が”ClassC”であるクラスのインスタンスであることを示している。
【００４０】
ここで、オブジェクト名は、モデル設計者が文字列を入力する。つまり、図８のオブジェクト図作成手順は、図６のクラス選択画面からオブジェクト名に、”objectA1”を入力し、オブジェクト名に対応するクラスに図７のクラス一覧から”ClassA”を選択することで図８の”objectA1：ClassA”を作成する。同様にして他のオブジェクトについても入力及び選択することで図８に示すオブジェクト図が作成できる。
【００４１】
図９は、本発明におけるオブジェクト一覧の一実施例を示す図である。オブジェクト一覧（オブジェクト情報）は、オブジェクト抽出手段１１によりオブジェクト図から抽出され、オブジェクト保持手段１２に保持される。図９は、図８に示すオブジェクト図に係るオブジェクト一覧である。
＜ステートマシン図作成−抽出−保持＞
図１０は、本発明におけるステートマシン図作成手段１３を用いて遷移を作成する際の遷移作成画面の一実施例を示す図である。
【００４２】
図１１は、本発明におけるステートマシン図作成手段１３を用いてクラス名が”ClassA”であるクラスのステートマシン図の遷移を作成する際のイベント選択画面の一実施例を示す図である。
【００４３】
図１１に示すように、イベント選択の際にはイベント保持手段８に保持されているイベント一覧をリスト表示する。
図１１に示す例では、図５に示すイベント一覧のうちクラス名が”ClassA”であるクラスのイベント一覧がリスト表示されている。
【００４４】
図１２は、本発明におけるステートマシン図作成手段１３を用いてクラス名が”ClassA”であるクラスのステートマシン図の遷移を作成する際の処理関数選択画面の一実施例を示す図である。
【００４５】
図１２に示すように、処理関数選択の際には処理関数保持手段７に保持されている処理関数一覧をリスト表示する。
図１２に示す例では、図４に示す処理関数一覧のうちクラス名が”ClassA”であるクラスの処理関数一覧がリスト表示されている。ただし、処理関数は無処理(何も処理しない)の場合もあるため、リストの最後に空白が表示されている。
【００４６】
図１０、図１１、及び、図１２に示すように、遷移を作成する際にはイベントと処理関数をリストから選択する。
図１３、図１４、及び、図１５は、本発明におけるステートマシン図の一実施例を示す図である。また、図１３はクラス名が”ClassA”であるクラスのステートマシン図であり、図１４はクラス名が”ClassB”であるクラスのステートマシン図であり、図１５はクラス名が”ClassC”であるクラスのステートマシン図である。ステートマシン図は、ステートマシン図作成手段１３を用いて作成される。
【００４７】
図１３、図１４、及び、図１５に示すように、各ステートマシン図は、開始(図中に●で表示)、状態、及び、遷移を持つ。
図１３に示す例では、状態として、”StateA1”、”StateA2”、及び、”StateA3”を持ち、初期状態(開始からの遷移で表現される)は”StateA1”である。また、遷移として、３つの遷移を持つ。１つ目の遷移では、”StateA1”の状態でイベント”Ea1”を受け取ると、処理関数”Ma1”を実行し、”StateA2”へ状態を遷移する。2つ目の遷移では、”StateA2”の状態でイベント”Ea2”を受け取ると、処理関数”Ma2”を実行し、”StateA3”へ状態を遷移する。3つ目の遷移では、”StateA3”の状態でイベント”Ea3”を受け取ると、何も処理を実行することなく、”StateA1”へ状態を遷移する。
【００４８】
図１４に示す例では、状態として、”StateB1”、及び、”StateB2”を持ち、初期状態は”StateB1”である。また、遷移として、2つの遷移を持つ。1つ目の遷移では、”StateB1”の状態でイベント”Eb1”を受け取ると、処理関数”Mb1”を実行し、”StateB2”へ状態を遷移する。２つ目の遷移では、”StateB2”の状態でイベント”Eb2”を受け取ると、処理関数”Mb1”を実行し、”StateB1”へ状態を遷移する。
【００４９】
図１５に示す例では、状態として、”StateC1”、”StateC2”、”StateC3”、及び、”StateC4”を持ち、初期状態は”StateC1”である。また、遷移として、６つの遷移を持つ。１つ目の遷移では、”StateC1”の状態でイベント”Ec1”を受け取ると、処理関数”Mc1”を実行し、”StateC2”へ状態を遷移する。２つ目の遷移では、”StateC1”の状態でイベント”Ec3”を受け取ると、処理関数”Mc3”を実行し、”StateC4”へ状態を遷移する。３つ目の遷移では、”StateC2”の状態でイベント”Ec2”を受け取ると、何も処理を実行することなく、”StateC3”へ状態を遷移する。４つ目の遷移では、”StateC3”の状態でイベント”Ec3”を受け取ると、何も処理を実行することなく、”StateC4”へ状態を遷移する。５つ目の遷移では、”StateC4”の状態でイベント”Ec1”を受け取ると、処理関数”Mc1”を実行し、”StateC2”へ状態を遷移する。６つ目の遷移では、”StateC4”の状態でイベント”Ec4”を受け取ると、処理関数”Mc4”を実行し、状態は遷移しない。
【００５０】
ここで、状態名は、モデル設計者が文字列を入力する。つまり、図１３のステートマシン図の作成手順は、クラス名が”ClassA”の状態”StateA1”を入力し、”StateA1”から次の状態”StateA2”に遷移させたい場合、状態遷移作成画面を表示させ、イベントに図１１のイベント一覧から”Ea1”を選択し、対応する処理関数に図１２の処理関数一覧から”Ma1”を選択することで図１３の状態”StateA1”から次の状態”StateA2”に遷移する図が作成できる。同様にして他の遷移についても入力及び選択することで図１３に示すステートマシン図ができあがる。図１４、図１５のステートマシン図を作成する場合も、上述した図１３の作成手順と同様である。
【００５１】
図１６は、本発明における状態一覧の一実施例を示す図である。状態一覧（状態情報）は、状態抽出手段１５によりステートマシン図から抽出され、状態保持手段１６に保持される。図１６は、図１３、図１４、図１５に示すステートマシン図に係る状態一覧である。
＜シーケンス図作成＞
図１７は、本発明におけるシーケンス図作成手段１７を用いてライフラインを作成する際のライフライン作成画面の一実施例を示す図である。
【００５２】
図１８は、本発明におけるシーケンス図作成手段１７を用いてライフラインを作成する際のオブジェクト選択画面の一実施例を示す図である。
図１８に示すように、オブジェクト選択の際にはオブジェクト保持手段１２に保持されているオブジェクト一覧をリスト表示する。
【００５３】
図１８に示す例では、図９に示すオブジェクト一覧がリスト表示されている。
図１７、図１８に示すように、ライフラインを作成する際にはオブジェクトをリストから選択する。
【００５４】
図１９は、本発明におけるシーケンス図作成手段１７を用いてメッセージ終了点からライフラインへのメッセージを作成する際のメッセージ終了点からライフラインへのメッセージ作成画面の一実施例を示す図である。
【００５５】
図２０は、本発明におけるシーケンス図作成手段１７を用いてメッセージ終了点からクラス名が”ClassC”であるクラスのインスタンスであるオブジェクト(ライフライン)へのメッセージを作成する際の状態選択画面の一実施例を示す図である。
【００５６】
図２０に示すように、状態選択の際には状態保持手段１６に保持されている状態一覧をリスト表示する。
【００５７】
図２０に示す例では、図１６に示す状態一覧のうちクラス名が”ClassC”であるクラスの状態一覧がリスト表示されている。
図２１は、本発明におけるシーケンス図作成手段１７を用いてメッセージ終了点からクラス名が”ClassC”であるクラスのインスタンスであるオブジェクト(ライフライン)へのメッセージを作成する際のイベント選択画面の一実施例を示す図である。
【００５８】
図２１に示すように、イベント選択の際にはイベント保持手段８に保持されているイベント一覧をリスト表示する。
図２１に示す例では、図５に示すイベント一覧のうちクラス名が”ClassC”であるクラスのイベント一覧がリスト表示されている。
【００５９】
図２２は、本発明におけるシーケンス図作成手段１７を用いてメッセージ終了点からクラス名が”ClassC”であるクラスのインスタンスであるオブジェクト(ライフライン)へのメッセージを作成する際の処理関数選択画面の一実施例を示す図である。
【００６０】
図２２に示すように、処理関数選択の際には処理関数保持手段７に保持されている処理関数一覧をリスト表示する。
図２２に示す例では、図４に示す処理関数一覧のうちクラス名が”ClassC”であるクラスの処理関数一覧がリスト表示されている。
【００６１】
図１９、図２０、図２１、及び、図２２に示すように、メッセージ終了点からライフラインへのメッセージを作成する際には「状態/イベント」、または、「処理関数」を選択した後、「状態/イベント」を選択した際には状態とイベントを、「処理関数」を選択した際には処理関数をリストから選択する。
【００６２】
図２３は、本発明におけるシーケンス図作成手段１７を用いてライフラインからライフラインへのメッセージを作成する際のライフラインからライフラインへのメッセージ作成画面の一実施例を示す図である。
【００６３】
図２４は、本発明におけるシーケンス図作成手段１７を用いてライフラインからクラス名が”ClassB”であるクラスのインスタンスであるオブジェクト(ライフライン)へのメッセージを作成する際のイベント選択画面の一実施例を示す図である。
【００６４】
図２４に示すように、イベント選択の際にはイベント保持手段８に保持されているイベント一覧をリスト表示する。
図２４に示す例では、図５に示すイベント一覧のうちクラス名が”ClassB”であるクラスのイベント一覧がリスト表示されている。
【００６５】
図２３、図２４に示すように、ライフラインからライフラインへのメッセージを作成する際にはイベントをリストから選択する。
図２５は、本発明におけるシーケンス図の一実施例を示す図である。シーケンス図は、シーケンス図作成手段１７を用いて作成される。
【００６６】
図２５に示すように、シーケンス図は、メッセージ終了点(図中に●で表示)、ライフライン、及び、メッセージを持つ。また、各シーケンスは、メッセージ終了点からあるライフライン(以降、ライフライン1と表記する)に対してメッセージを送信し、そのメッセージを送信されたライフライン1からあるライフライン(以降、ライフライン2と表記する)に対してメッセージを送信するように表記される。
【００６７】
図２５に示す例では、１つ目のシーケンスでは、オブジェクト名が”objectA1”であるオブジェクトが”StateA1”の状態でイベント”Ea1”を受け取ると、オブジェクト名が”objectB1”であるオブジェクトに対してイベント”Eb1”を送信し、オブジェクト名が”objectC1”であるオブジェクトに対してイベント”Ec1”を送信する。
【００６８】
２つ目のシーケンスでは、オブジェクト名が”objectA2”であるオブジェクトが”StateA1”の状態でイベント”Ea1”を受け取ると、オブジェクト名が”objectB1”であるオブジェクトに対してイベント”Eb1”を送信する。
【００６９】
３つ目のシーケンスでは、オブジェクト名が”objectA2”であるオブジェクトが”StateA2”の状態でイベント”Ea2”を受け取ると、オブジェクト名が”objectB1”であるオブジェクトに対してイベント”Eb2”を送信し、オブジェクト名が”objectC1”であるオブジェクトに対してイベント”Ec2”を送信する。
【００７０】
４つ目のシーケンスでは、オブジェクト名が”objectB1”であるオブジェクトが”StateB1”の状態でイベント”Eb2”を受け取ると、オブジェクト名が”objectA1”であるオブジェクトに対してイベント”Ea3”を送信し、オブジェクト名が”objectA2”であるオブジェクトに対してイベント”Ea3”を送信する。
【００７１】
５つ目のシーケンスでは、オブジェクト名が”objectC1”であるオブジェクトが処理関数”Mc1”を実行すると、オブジェクト名が”objectA1”であるオブジェクトに対してイベント”Ea2”を送信し、オブジェクト名が”objectA2”であるオブジェクトに対してイベント”Ea2”を送信し、オブジェクト名が”objectB1”であるオブジェクトに対してイベント”Eb1”を送信する。
【００７２】
図２５のシーケンス図作成手順は、図１７のライフライン作成画面でオブジェクトに図１８のオブジェクト一覧から ”objectA1”を選択し、図１９のメーセージ作成画面で「状態／イベント」を選択し、状態一覧（図示せず）から状態”StateA1”を選択し、イベント一覧（図示せず）からイベント”Ea1”を選択することで図２５のメッセージ終了点(図中に●で表示)から”objectA1”のライフラインまでのシーケンス図が作成できる。
【００７３】
さらに、図２３のライフラインからライフラインへのメッセージ作成画面で図２４のイベント一覧からイベント”Eb1”を選択することで”objectA1”のライフラインから”objectB1”のライフラインへのシーケンス図が作成できる。同様にして他のライフライン間及びメッセージ終了点からライフラインまでの作成を行っていくことで図２５に示すシーケンス図ができあがる。
＜実施例の効果＞
上述した本実施例によれば、本発明のオブジェクト指向モデル設計支援装置の適用により、オブジェクト指向をベースとするソフトウェア開発において、開発者はモデル図作成の際に作成済みのモデル図の情報から必要な情報を抽出し、抽出された情報を選択することにより他の複数種類のモデル図を作成することが可能となるため、モデル設計作業が軽減され、ソフトウェア開発のトータル作業効率を削減することができる。
【００７４】
また、本発明により、モデル図作成時の情報入力はその大半が表示された情報を選択することで入力可能であるため、文字入力時のタイプミスや入力漏れをなくすことができる。
【００７５】
具体的にはエディタなどの入力装置によって開発対象システムのクラス構造を表現するクラス図を作成すると、その情報はクラス情報、処理関数情報、イベント情報として記憶装置内に保持され、オブジェクト図を作成する場合、保持されているクラス情報を表示させ、その中から選択することで情報が入力できる。
【００７６】
また、ステートマシン図を作成する場合、保持されている処理関数情報またはイベント情報を表示させ、その中から選択することで情報が入力できる。さらに、シーケンス図を作成する場合、保持されているオブジエクト情報または処理関数情報またはイベント情報または状態情報を表示させ、その中から選択することで情報が入力できる。
【００７７】
このように開発対象システムで複数種類の関係するＵＭＬモデル図を作成する場合、特に効果が大きい。
【符号の説明】
【００７８】
１  クラス図作成手段
２  クラス図
３  クラス抽出手段
４  処理関数抽出手段
５  イベント抽出手段
６  クラス保持手段
７  処理関数保持手段
８  イベント保持手段
９  オブジェクト図作成手段
１０  オブジェクト図
１１  オブジェクト抽出手段
１２  オブジェクト保持手段
１３  ステートマシン図作成手段
１４  ステートマシン図
１５  状態抽出手段
１６  状態保持手段
１７  シーケンス図作成手段
１８  シーケンス図
２０  オブジェクト指向モデル設計支援装置本体
３０  入力手段
４０  表示手段
【図１】
0005644599.tif 000002
【図２】
0005644599.tif 000003
【図３】
0005644599.tif 000004
【図４】
0005644599.tif 000005
【図５】
0005644599.tif 000006
【図６】
0005644599.tif 000007
【図７】
0005644599.tif 000008
【図８】
0005644599.tif 000009
【図９】
0005644599.tif 000010
【図１０】
0005644599.tif 000011
【図１１】
0005644599.tif 000012
【図１２】
0005644599.tif 000013
【図１３】
0005644599.tif 000014
【図１４】
0005644599.tif 000015
【図１５】
0005644599.tif 000016
【図１６】
0005644599.tif 000017
【図１７】
0005644599.tif 000018
【図１８】
0005644599.tif 000019
【図１９】
0005644599.tif 000020
【図２０】
0005644599.tif 000021
【図２１】
0005644599.tif 000022
【図２２】
0005644599.tif 000023
【図２３】
0005644599.tif 000024
【図２４】
0005644599.tif 000025
【図２５】
0005644599.tif 000026