(57)【要約】【課題】モデルベース開発のため従来のモデリング装置は、ソースコードやバイナリなどの実装情報から、モデル情報として前記実装情報を利用する際に必要となる構造と振る舞いに関する情報をモデリング装置に取り込むことができず、このためモデル情報と実装情報の相互関係をモデル記述として表わすことができない。【解決手段】モデリング装置に、実装情報で規定されたモジュールのインターフェース情報に基づいたモデル記述言語で記述したモデルインターフェース情報と、該インターフェース情報と実装情報内の呼応する処理や変数との対応を規定する実装リンク情報を生成するモデルインターフェース情報付加手段を設けた【選択図】  図２
2010049439.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
ターゲット機器で動作するバイナリコードの関数を実行する方法を規定する情報、または変数にアクセスする方法を規定する情報であって、モデル記述言語で記述したインターフェース情報であるモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法
【請求項２】
請求項１記載のシステム構築方法において、
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法
【請求項３】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
ソースコードの分割・結合を含む再構築をおこない、
再構築したソースコードに基づいたバイナリコードを生成し、該バイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法
【請求項４】
請求項３記載のシステム構築方法において、
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法
【請求項５】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
バイナリコードの分割・結合を含む再構築をおこない、再構築したバイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法
【請求項６】
請求項５記載のシステム構築方法において、
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法
【請求項７】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を用いたソフトウェアのシステム構築方法において、
ソースコードの分割・結合による再構築をおこない、
再構築したソースコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成する
ことを特徴とするシステム構築方法
【請求項８】
請求項７記載のシステム構築方法において、
前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするシステム構築方法
【請求項９】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
ターゲット機器で動作するバイナリコードの関数を実行する方法を規定する情報、または変数にアクセスする方法を規定する情報であって、モデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置
【請求項１０】
請求項９記載のモデリング装置において、
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置
【請求項１１】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
ソースコードの分割・結合を含む再構築をおこなう分割結合手段と、
該分割結合手段によって再構築したソースコードに基づいたバイナリコードを生成し、該バイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置
【請求項１２】
請求項１１記載のモデリング装置において、
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置
【請求項１３】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
バイナリコードの分割・結合を含む再構築をおこなう分割結合手段と、
該分割結合手段によって再構築したバイナリコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置
【請求項１４】
請求項１３記載のモデリング装置において、
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置
【請求項１５】
ソフトウェアモジュールの構造、または動作を記述するモデル記述言語を用いたモデル情報を作成・編集するモデルエディタと、
当該モデルエディタが生成する前記モデル情報をソースコードに変換するモデルコンパイラと
を有するモデリング装置において、
ソースコードの分割・結合を含む再構築をおこなう分割結合手段と、
前記分割結合手段によって再構築したソースコードのインターフェース情報であるモデル記述言語で記述したモデルインターフェース情報を生成するモデルインターフェース情報付加手段と
を設けたことを特徴とするモデリング装置
【請求項１６】
請求項１５記載のモデリング装置において、
前記モデルインターフェース情報付加手段が前記モデルインターフェース情報を用いた関数を記述した情報、または変数アクセスの方法を記述した情報であって、前記バイナリコードを特定する実装リンク情報を生成する
ことを特徴とするモデリング装置
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア構築方法に関する技術を提供するものである。
【背景技術】
【０００２】
従来から、Ｕｎｉｆｉｅｄ  Ｍｏｄeｌｉｎｇ  Ｌａｎｇｕａｇｅ（ＵＭＬ）(登録商標)などのモデル記述言語を用いたモデルベース開発手法によるソフトウェアの仕様・方式設計手法がソフトウェアの開発に利用されている。また、このような開発手法を用いたソフトウェア開発をおこなうためのＵＭＬツールなどの関連開発ツール（モデリング装置）が広く提供されている。
【０００３】
システム開発では、モデル記述言語を用いて開発される機能モジュール（タイプ１）と、モデル記述言語を用いずにソースコードあるいはバイナリコードの形式で提供される機能モジュール（タイプ２）を、タイプ１の機能モジュールをモデルコンパイラなどでソースコードに変換した後、タイプ２の機能モジュールとソースコードあるいはバイナリコードのレベルで統合することで、両形式の機能モジュールが混在するシステムの構築を実現可能である。
【０００４】
また他のシステム構築方法としては、ソースコードで提供されるタイプ２の機能モジュールを、モデル記述言語で記述した機能モジュールに変換して、モデル記述言のレベルで両タイプの機能モジュールと統合することが可能である。
【０００５】
さらにモデル記述言語を用いて開発する機能モジュールの精度を向上するために、複数のＵＭＬ表記で記述される同一機能モジュールの機能に関して、異なるＵＭＬ表記間の整合性を向上させるための方法などが提案されている。
【０００６】
【特許文献１】特開２００６−２３５８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
モデルベース開発では、設計対象のモジュールの機能・構造をＵＭＬなどのモデル記述言語で記述する（これをモデル情報と呼ぶこととする）。モデル記述言語では複数モジュールのモデル情報間の関係を記述することが可能である。たとえばＵＭＬのクラス図を用いることで、単一のクラスに関するクラス名・提供するメソッド名などのモデル情報を記述することが可能であるのに加えて、参照・継承など複数クラスのモデル情報相互の関係を記述することが可能である。
【０００８】
上記従来方法は、モデル情報相互の関係を記述する為の有効な方法であるが、ソースコードやバイナリコードなどモデル記述言語を用いずに開発したタイプ２の機能モジュールでは、モジュールの機能を規定する構造・動作に関するすべての情報を、モデル記述言語を用いたモデル情報に変換することができない。
【０００９】
具体的に述べると、バイナリコードに関してはこれを開発者が理解・利用できるモデル情報に変換することは難しい。またソースコードに関しては、例えばソースコードのクラス名・提供するメソッド名などのクラス定義情報から対応するモデルの構造に関するモデル情報を生成するなど一部の情報に関してはモデル情報への変換が可能であるが、ソースコードとして記載される個々の関数の処理内容など動作を含めたモジュール機能が提供するすべて情報をモデル記述言語に変換することは一般的にはできない。例えば個々の処理が逐次実行されるようなケースでは、これをソースコードではなく、より高級なモデル記述言語で記載することは難しい。
【００１０】
さらに、モデル記述言語で記述されるタイプ１の機能モジュールの粒度と、ソースコードやバイナリコードで定義されるタイプ２の機能モジュールの粒度は異なることが多く、例えばタイプ１とタイプ２の機能モジュールが混在するシステムにおいて、モデル記述言語で定義されるモジュールＡ１をモデル記述言語で定義される他のモジュールＡ２に置き換える場合において配慮が必要となる。
【００１１】
例えば、モジュールＡ１がバイナリコードで定義される機能モジュールＢ１・Ｂ２を参照し、モジュールＡ２がバイナリコードで定義される機能モジュールＢ３を参照しているという条件において、モジュールＡ１をモジュールＡ２に交換する場合には、バイナリコードＢ１・Ｂ２が他のモジュールから利用されているか否かを判定し、
（１）利用されていない場合：バイナリコードＢ１・Ｂ２をバイナリコードＢ３と置き換え可能であるので、モジュールＡ２とバイナリコードＢ３を相互に利用可能とするインターフェース情報をモデル記述言語を用いて記述する（以下モデルインターフェース情報）。
（２）利用されている場合：バイナリコードＢ１・Ｂ２にバイナリコードＢ３を加えた３つの機能モジュールの機能が必要となるので、該３つの機能モジュールの機能を他の機能モジュールから利用可能とするモデルインターフェース情報を記述する。
といった対応が必要となる。
【００１２】
以上のように一般的にモデル記述言語で定義されるタイプ１の機能モジュールの粒度と、ソースコードやバイナリコードなどの実装言語で定義されるタイプ２の機能モジュールの粒度が異なるのに加えて、それぞれの参照関係も異なるため、タイプ１の機能モジュールの追加・削除・交換において、タイプ２の機能モジュールの参照関係を正しく保つために機能モジュールの交換・追加とこれに伴うモデルインターフェース情報の煩雑な記述修正が必要となる。
【課題を解決するための手段】
【００１３】
機能モジュールを記述するモデル記述言語を用いたモデル情報の作成・編集が可能なモデルエディタ、モデルエディタが生成するモデル情報をソースコードに変換するモデルコンパイラを有するモデリング装置において、ソースコードやバイナリコードなどの実装言語で規定されたタイプ２の機能モジュールのインターフェース情報からモデル記述言語で記述したタイプ１のモデルインターフェース情報と、該モデルインターフェース情報を用いた関数実行または変数アクセスに必要となる該バイナリコードを特定する実装リンク情報を生成するモデルインターフェース情報付加手段を設けた。
【００１４】
なお「関数実行」・「変数アクセス」などに関しては、「関数」・「変数」を広義の用語として規定している。意味としてはＣ言語などの関数型言語における関数・変数だけではなく、例えばＣ＋＋言語などのオブジェクト指向言語におけるメソッド・アトリビュートなどを含むものとする。
【００１５】
また、モデリング装置に、ソースコードやバイナリコードなどの実装言語で規定した機能モジュールの複数モジュールへの分割や、複数機能モジュールの単一モジュールへの統合をおこなう分割統合手段を設けた。
【００１６】
本発明のモデリング装置のモデルインターフェース情報付加手段により、実装言語で規定されたタイプ２のモジュールＡにモデリング記述言語で記述したモデルインターフェース情報と、該モデルインターフェース情報と実装言語で規定された機能モジュールとの対応を規定する実装リンク情報を生成・付加することが可能となる。これによりモデリング装置はモジュールＡをタイプ１のモデル情報と混在して利用するために必要な情報を実装情報から取り込むことが可能となる。  更に、取り込んだタイプ２のモジュールＡに関するモデル情報を用いて、モデル情報で規定されるタイプ１のモジュールＢと実装情報で規定された前記モジュールＡ間との間での関数実行や変数アクセスをモデリング装置で実現可能となる。
【００１７】
以上により、例えばタイプ１のモデル情報のモデル記述言語レベルでの動作検証をおこなう際に、タイプ１のモデル情報が利用するタイプ２のモデル情報の動作を含めた検証が可能となる。
【００１８】
さらに、本発明のモデリング装置により、分割手段とモデルインターフェース情報付加手段を用いて実装情報で規定されたソースコードまたはバイナリコード形式のモジュールＡをモジュールＡ１とモジュールＡ２に分割し、モジュールＡ１・Ａ２のそれぞれにモデリング記述言語で記述したモデルインターフェース情報と実装リンク情報を生成・付加することが可能となる。これによりモデリング装置はモジュールを適切な粒度に分割の上、分割したモジュールＡ１・Ａ２をモデルとして利用するのに必要な構造および振る舞いに関する情報を実装情報から取り込むことが可能となる。
【発明の効果】
【００１９】
以上、本発明によれば、モデルベース開発においてソースコードやバイナリコードなどの実装情報で規定された機能モジュールとモデル記述言語で規定された機能モジュールの混在利用が可能となり、ソフトウェアの開発効率向上が可能となる。
【発明を実施するための最良の形態】
【００２０】
以下本発明の実施例を図１から図４を用いて説明する。
【実施例１】
【００２１】
図１は従来のモデリング装置（以下モデリングツール）の構成とモデリングにより生成されるモデルデータなどのデータの関係を示すシステム概略図、図２は本発明のモデリング装置のシステム概略図、図３はモデリング装置のモデルインターフェース情報付加手段（図中ではモデルＩ／Ｆ情報付加手段と記載）の動作を説明する図、図４はモデルインターフェース情報付加手段の入出力情報の関係を示す図である。
【００２２】
図１において、１０１はユーザがモデリング言語を用いた設計をおこないモデル情報であるモデルデータを生成するモデルエディタ、１０６はモデルエディタ１０１が生成するモデルデータを実装情報であるソースコードに変換するモデルコンパイラ、１００はモデルエディタ１０１とモデルコンパイラ１０６から構成されるモデリング装置であるモデリングツール、１１０はユーザが実装言語を用いた設計をおこない実装情報であるソースコードを生成するソースエディタ、１１４はモデリングツール１００とソースエディタ１１０が生成するソースコードを実行ターゲットとするＣＰＵが実行可能な中間形式のデータであるバイナリコードに変換するソースコンパイラ、１１７はソースコンパイラ１１４が生成するバイナリコードをターゲットＣＰＵ上で実行可能な最終形式に変換するリンカである。
【００２３】
モデルデータ１０２は、モデル情報の構造や提供する関数・利用する関数を規定するモデルインターフェース情報１０３（図中ではモデルＩ／Ｆ情報と記載）と、提供する関数の処理内容や利用する関数の呼び出し条件などを規定するモデル処理情報１０４と、モデルのバージョン番号などその他属性情報と規定するモデル属性情報１０５で構成される。
【００２４】
例えばＵＭＬを用いたモデルデータではクラス図のクラス継承・参照関係やクラスで定義するメソッド（関数）などがモデルインターフェース情報１０３となる。また例えば各関数と関連付けてアクション言語で記述される該関数の処理内容や、ステート図の状態遷移条件などがモデル処理情報１０４となる。
【００２５】
ソースコード１０７は、提供する関数・利用する関数などを規定するソースインターフェース情報１０８（図中ではソースＩ／Ｆ情報と記載）と、例えば各関数と関連付けて実装言語で記述される該関数の処理や、同様に実装言語で記述される関数の呼び出し処理などを規定するソース処理情報１０９で構成される。
【００２６】
以下、図１を用いて従来のモデリングツールを用いたソフトウェア開発の手順を説明する。ユーザはモデル化する機能を、モデルエディタ１０１を用いてモデリング言語で記述したモデルデータ１０２として作成する。作成したモデルデータ１０２はモデルコンパイラ１０６でソースコード１０７に変換される。
【００２７】
またユーザはソースエディタ１１０を用いてＣ言語などの実装言語で記述したソースコード１１１を作成する。ソースコード１０７およびソースコード１１１はソースコンパイラ１１４で実行ターゲットとするＣＰＵが実行可能な中間形式のデータであるバイナリコード１１５に変換される。バイナリコード１１５はその他のバイナリコード１１６を合わせてリンカ１１７でターゲットＣＰＵ上で実行可能な実行可能コード１１８に変換される。ソースコード１１１とバイナリコード１１６は実装情報で規定され、モデル情報を持たない。
【００２８】
一方、モデルデータ１０２はモデル情報で規定され、実装情報を持たない。実装情報であるソースコード１１１やバイナリコード１１６はモデリングツール１００が生成する実装情報であるソースコード１０７と結合され最終的には実行可能コード１１８となる。
【００２９】
以上、従来例のモデリング装置では実装情報をモデル情報としてモデリングツールに取り込むことは行なわず、実装情報として結合する。
【００３０】
従来のモデリング装置において、例えば、ソースコードのクラス名・提供するメソッド名などのクラス定義情報から対応するモデルの構造に関するモデル情報を生成することも可能であるが、ソースコードの処理内容などモデルの動作を含めたすべてのモデル情報として有効なすべての情報を実装情報から取り込むことはできない。
【００３１】
次に、本発明の実施例の動作を、図２を用いて説明する。図２においてモデルインターフェース情報付加手段２０１は、実装情報で規定されたモジュールのインターフェース情報に基づいてモデル記述言語で記述したインターフェース情報と、該インターフェース情報と実装情報内の呼応する処理や変数との対応を規定する実装リンク情報を生成する。
【００３２】
図２のモデリングツール２００では、従来はリンカ１１７が処理していたモデル情報を持たないバイナリコード１１６のバイナリインターフェース情報２０２を、モデルインターフェース情報付加手段２０１を用いてモデルインターフェース情報としてモデリング手段に取り込む。
【００３３】
さらに該モデルインターフェース情報とバイナリ処理情報２０３の呼応する処理や変数との対応を規定する実装リンク情報を生成する。たとえばバイナリコード１１６が関数ｆ（ ）のインターフェース定義・実際の処理をそれぞれバイナリインターフェース情報２０２とバイナリ処理情報２０３にもつとする。
【００３４】
モデルインターフェース情報付加手段２０１はバイナリインターフェース情報２０２の関数ｆ（ ）に関する関数名・引数の数と型・戻り値の型などの情報に基づいて、対応するモデルインターフェース情報を生成する。このモデルインターフェース情報を用いることで、例えばモデルエディタ１０１上でバイナリコード１１６を、関数ｆ（ ）を提供するコンポーネント/クラスとしてクラス図上でモデル情報として利用可能となる。
【００３５】
更に、モデルインターフェース情報付加手段２０１が生成する、モデルインターフェース情報とバイナリ処理情報２０３の呼応する関数実装の対応を規定する実装リンク情報を用いることで、モデリングツール２００を用いて規定されたバイナリコード１１６の関数ｆ（ ）の呼び出し処理を実行可能となる。
【００３６】
以上、モデルインターフェース情報付加手段２０１により、従来はリンカ１１７が処理していたモデル情報を持たないバイナリコード１１６を、モデルインターフェース情報付加手段２０１を用いてモデリング手段に取り込み、モデリング対象として利用することが可能となる。
【００３７】
図３は以上述べたモデルインターフェース情報付加手段２０１の動作を示す図である。モデル情報をもたないバイナリコード３０２は、ソースコード３０１をソースコンパイラ１１４で処理することで生成される。ただし、何らかの理由によりバイナリコード３０２のみが利用可能でソースコード３０１は利用できないとする。
【００３８】
ソースコード３０１で定義されている関数funcA( )の定義・実装はバイナリコード３０２に実行ターゲットとするＣＰＵが実行可能な中間形式のデータとして保持される。バイナリインターフェース情報３０８には関数funcA( )が引数や戻り値の情報とともに登録される。また関数funcB( )が参照される関数として引数や戻り値の情報とともに登録される。さらに関数funcA( )の処理内容がバイナリ処理情報３０９に登録される。
【００３９】
モデルインターフェース情報付加手段２０１はバイナリコード３０２からモデルインターフェース情報３０５を生成する。またバイナリ処理情報３０９に登録されている関数funcA( )を実行するために必要な情報を呼ぶための情報を生成しモデル処理情報３０６に格納する。
【００４０】
図４は本実施例の動作を、モデルインターフェース情報付加手段２０１の入出力情報の関係として示した図である。バイナリコード３０２をモデルインターフェース情報付加手段２０１で変換することにより、モデリングツール２００で利用可能なモデル情報４０２が生成される。モデル情報４０２が提供または参照する関数の情報はモデルインターフェース情報３０５から生成する。関数funcA( )が実際に呼ばれた場合の処理はモデル処理情報３０６を用いて決定される。この例ではバイナリコード３０２の関数funcA( )の実装が呼ばれることになる。
【００４１】
図４ではモデル情報をＵＭＬなどのグラフィカルなモデル情報として扱う場合の例を示している。例えば、モデルエディタ１０１を用いて、モデル情報４０２の関数funcA( )を呼び出すモデル情報との参照関係や関数funcB( )の処理を提供するモデル情報との参照関係をモデルとして規定することが可能となり、実装情報からなるバイナリコード３０２のモデリングツール２００を用いたモデル情報としての利用が可能となる。
【実施例２】
【００４２】
以下、本発明の他の実施例を図５から図１０を用いて説明する。図５は本発明のモデリング装置のシステム概略図、図６は分割統合手段の動作を説明する図、図７は分割統合手段をもたない本発明の他の実施例の動作を説明する図、図８は分割統合手段をもつ本発明の他の実施例の動作を説明する図、図９は分割統合手段をもたない本発明の他の実施例での実装情報の利用例、図１０は分割統合手段をもつ本発明の他の実施例での実装情報利用例である。
【００４３】
以下、本発明の他の実施例の動作を、図５を用いて説明する。図５において分割統合手段５０２は実装情報で規定されるソースコード１１１を入力とし、分割統合結果をモデルインターフェース情報付加手段５０１に提供する。
【００４４】
以下、図６を用いて、分割統合手段５０２の動作の詳細を説明する。分割統合指定情報６０１は実装情報の分割・統合方法を指定する情報である。この例では関数funcA( )・funcB( )・funcC( )をfuncA( )のグループとfuncB( )とfuncC( )から成るグループに分割・統合することがユーザにより指定されている。
【００４５】
分割統合手段５０２はfuncA( )・funcB( )・funcC( )の実装を規定するソースコード６０２・６０３を取得し、分割統合指定情報６０１の指示に従って関数funcA( )の処理を含むソースコード６０４と、関数funcB( )・funcC( ) の処理を含むソースコード６０５を生成する。
【００４６】
以上、分割統合手段５０２をもつモデリングツール５００の効果を図７と図８を用いて説明する。図７は分割統合手段５０２をもたない場合の例である。
【００４７】
図７において、実装情報で規定されるソースコードＰ７０１には関数funcA( )・funcB( )の処理が記述されている。またソースコードＱ７０２には関数funcC( )の処理が記述されている。ソースコード７０１・７０２はソースコンパイラ１１４で、それぞれバイナリコードＰ７０3とバイナリコードＱ７０４に変換される。
【００４８】
バイナリコード７０３・７０４はモデルインターフェース情報付加手段５０１で、それぞれモデルインターフェース情報などを付加し、モデルデータ７０５・７０６となる。
【００４９】
以上の分割統合手段５０２をもたない処理では、ソースコード７０１・７０２で各々規定される関数がそのままモデルデータ７０５・７０６で利用可能な関数となる。
【００５０】
生成されたモデルデータの利用例を図９に示す。モデルデータ９０１・９０３はモデル情報から生成されたモデルデータであり、モデルデータ７０５・７０６は図７の処理で実装情報からモデルインターフェース情報付加手段５０２を用いて生成されたモデルデータである。
【００５１】
図９において、モデルデータ７０５がモデルデータ９０１とモデルデータ９０３の両方から利用されるため、例えば、モデルデータ９０３の修正をおこない、この修正に伴って利用する関数funcB( )・funcC( )を例えば新しいバージョンの同一名称の関数に交換しなければならない場合、モデルデータ７０５とモデルデータ７０６の両方を交換する必要があり、処理が煩雑である。
【００５２】
さらに、モデルデータ９０１が従来の関数funcA( )の処理を必要とし、交換した新しいバージョンの関数funcA( )の処理では動作が不適切となる場合には、さらにモデルデータ７０５の関数名を重複がないように変更した上で、古いバージョンと新しいバージョンの２つを持つ構成とするといった対策が必要となる。
【００５３】
次に、図８を用いて分割統合手段５０２をもつ場合の動作を説明する。図７と同様にソースコード７０１・７０２を入力とするが、分割統合手段５０２で図６に示した分割指定情報６０１と同じ分割統合条件を設定することで、さらにソースコンパイラ手段１１４を介して生成されるバイナリコードは、バイナリコード８０３に関数funcA( )の処理記述があり、バイナリコード８０４に関数funcB( )・funcC( )の処理記述がある構成になる。
【００５４】
これによって、モデルインターフェース情報付加手段５０２を介して生成されるモデルデータ８０５・８０６は、モデルデータ８０５に関数funcA( )の処理記述があり、モデルデータ８０６に関数funcB( )・funcC( )の処理記述がある構成となる。
【００５５】
生成されたモデルデータの利用例を図１０に示す。モデルデータ９０１・９０３はモデル情報から生成されたモデルデータであり、モデルデータ８０５・８０６は図８の処理で実装情報からモデルインターフェース情報付加手段５０２を用いて生成されたモデルデータである。
【００５６】
図１０において、例えばモデルデータ９０３の修正をおこない、この修正に伴って利用する関数funcB( )・funcC( )を例えば新しいバージョンの同一名称の関数に交換しなければならない場合、モデルデータ８０６を交換すればよく、モデルデータ８０５の交換は不要となる。
【００５７】
この例のように、モデリングツール５００はモジュールを適切な粒度に分割・統合した上で、モデル情報として取り込むことが可能となる。
【００５８】
なお、以上にて説明した本実施例では分割統合手段において、実装情報としてソースコードを分割・統合する例を示したが、実装情報としてバイナリコードを分割・統合することも同様の構成で可能であり、分割・統合する実装情報の種類は特にこれを限定しない。
【００５９】
本発明のモデルインターフェース情報付加手段がもつ実装情報で規定されたタイプ２の機能モジュールと、モデル情報で規定されたタイプ１の機能モジュールとの相互関係の記述機能により、モデル情報で規定された機能モジュールと実装情報で規定された機能モジュールのモデル記述言語を使用したモデル設計のレベルでの相互呼び出しなどの動作連携が可能となる。
【００６０】
さらに、モデル情報で規定されたタイプ１の機能モジュールの動作検証において、実装情報で規定されたタイプ２の機能モジュール情報と組み合わせた動作確認が可能となる。これにより、モデルベース開発の適用範囲の拡大とモデル動作検証の精度向上が期待される。
【００６１】
さらに、本発明の分割統合手段がもつ実装情報で規定されたモジュールの分割・統合によるモジュール構成の再構築機能により、モデル情報で規定されたタイプ１の機能モジュールと、同等の粒度をもつ実装情報で規定されたタイプ２の機能モジュールとの混在利用が可能となる。これにより、モデル情報で規定されたタイプ１の機能モジュールの交換・追加などのシステム構成変更に伴う、関連する実装言語で規定されたタイプ２の機能モジュールの交換時の管理が簡素化され、システム構築の信頼性向上が期待される。
【図面の簡単な説明】
【００６２】
【図１】従来のモデリング装置のシステム概略図
【図２】本発明の実施例でのモデリング装置のシステム概略図
【図３】モデルインターフェース情報付加手段の動作を説明する図
【図４】モデルインターフェース情報付加手段の入出力情報の関係を示す図
【図５】本発明の実施例でのモデリング装置のシステム概略図
【図６】分割統合手段の動作を説明する図
【図７】分割統合手段をもたない本発明の実施例での動作を説明する図
【図８】分割統合手段をもつ本発明の実施例での動作を説明する図
【図９】分割統合手段をもたない本発明の実施例での実装情報利用例
【図１０】分割統合手段をもつ本発明の実施例での実装情報利用例
【符号の説明】
【００６３】
１００：モデリングツール
１０１：モデルエディタ
１０６：モデルコンパイラ
２０１：モデルインターフェース情報付加手段
５０２：分割統合手段
【図１】
2010049439.tif 000003
【図２】
2010049439.tif 000004
【図３】
2010049439.tif 000005
【図４】
2010049439.tif 000006
【図５】
2010049439.tif 000007
【図６】
2010049439.tif 000008
【図７】
2010049439.tif 000009
【図８】
2010049439.tif 000010
【図９】
2010049439.tif 000011
【図１０】
2010049439.tif 000012