(57)【要約】【課題】ソースコードの可読性の向上、ＩＰモデルの品質の向上およびモデル開発工数削減を図ること。【解決手段】基本構造としては、入力インターフェース、出力インターフェース、ビヘイビア、ステート、レジスタなどのＩＰを有する。これら構成要素を接続するため、ＡＰＩやイベント通知の実装はルール化される。ステートは、インターフェースからの時間情報（ｄｅｌａｙ）に応じた待機処理をおこなう。ＩＰモデル５００は一例であり、設計対象となるハードウェアによって、構成要素の個数や接続関係（図５中の矢印。ＡＰＩやイベント通知に相当。）を自由に構成することができる。したがって、設計するハードウェアに応じて複数用意しておくこととしてもよい。なお、同一ハードウェアを改良する場合は、元となるモデル構造から派生モデルを生成する。【選択図】図５
2010191920.tif 000002
【特許請求の範囲】
【請求項１】
データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードと、前記各ＩＰ間の接続関係を示す接続コードと、を組み合わせたＩＰモデルを記録したコンピュータに読み取り可能な記録媒体。
【請求項２】
前記インターフェースおよび前記ステートは、時間概念の有無により差し替え可能であることを特徴とする請求項１に記載の記録媒体。
【請求項３】
前記インターフェースおよび前記ステートが、時間概念を持つ記述である場合、前記ステートは、前記インターフェースからの時間情報の取得により、待機処理をおこなう記述であることを特徴とする請求項２に記載の記録媒体。
【請求項４】
前記インターフェースおよび前記ステートが、時間概念を持たない記述である場合、前記ステートは、待機処理をおこなわない記述であることを特徴とする請求項２に記載の記録媒体。
【請求項５】
前記ＩＰはツールごとに用意され、同一ツールのＩＰにより前記ＩＰモデルを構成することを特徴とする請求項１に記載の記録媒体。
【請求項６】
前記各ＩＰは、同種の派生品に差し替え可能であることを特徴とする請求項１に記載の記録媒体。
【請求項７】
データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードを記憶するＩＰデータベースと、前記各ＩＰ間の接続関係を示す接続コードを記憶する接続属性データベースと、前記ＩＰと前記接続関係により定義されたＩＰモデルの構成をあらわす構成データを記憶するＩＰモデル構成データベースと、にアクセス可能なコンピュータを、
流用対象ＩＰモデルの選択を受け付ける選択手段、
前記選択手段によって選択された流用対象ＩＰモデルに関する構成データを前記ＩＰモデル構成データベースから抽出する構成データ抽出手段、
前記構成データ抽出手段によって抽出された構成データにより定義されているＩＰのソースコードを前記ＩＰデータベースから抽出するＩＰ抽出手段、
前記構成データ抽出手段によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出手段、
前記ＩＰ抽出手段によって抽出されたＩＰのソースコードおよび前記接続属性抽出手段によって抽出された接続コードを前記流用対象ＩＰモデルとして出力する出力手段、
として機能させることを特徴とするＩＰモデル生成プログラム。
【請求項８】
前記コンピュータを、
前記構成データ抽出手段によって抽出された構成データ内のＩＰの選択を受け付けるＩＰ選択手段、
前記ＩＰ選択手段によって選択されたＩＰの派生品の選択を受け付ける派生品選択手段、
前記ＩＰ選択手段によって選択されたＩＰを、前記派生品選択手段によって選択された派生品に変換する変換手段として機能させ、
前記ＩＰ抽出手段は、
前記変換手段によって変換された派生品のソースコードを、前記ＩＰデータベースから抽出することを特徴とする請求項７に記載のＩＰモデル生成プログラム。
【請求項９】
データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードを記憶するＩＰデータベースと、前記各ＩＰ間の接続関係を示す接続コードを記憶する接続属性データベースと、前記ＩＰと前記接続関係により定義されたＩＰモデルの構成をあらわす構成データを記憶するＩＰモデル構成データベースと、にアクセス可能なＩＰモデル生成装置であって、
流用対象ＩＰモデルの選択を受け付ける選択手段と、
前記選択手段によって選択された流用対象ＩＰモデルに関する構成データを前記ＩＰモデル構成データベースから抽出する構成データ抽出手段と、
前記構成データ抽出手段によって抽出された構成データにより定義されているＩＰのソースコードを前記ＩＰデータベースから抽出するＩＰ抽出手段と、
前記構成データ抽出手段によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出手段と、
前記ＩＰ抽出手段によって抽出されたＩＰのソースコードおよび前記接続属性抽出手段によって抽出された接続コードを前記流用対象ＩＰモデルとして出力する出力手段と、
を備えることを特徴とするＩＰモデル生成装置。
【請求項１０】
データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードを記憶するＩＰデータベースと、前記各ＩＰ間の接続関係を示す接続コードを記憶する接続属性データベースと、前記ＩＰと前記接続関係により定義されたＩＰモデルの構成をあらわす構成データを記憶するＩＰモデル構成データベースと、にアクセス可能なコンピュータが、
流用対象ＩＰモデルの選択を受け付ける選択工程と、
前記選択工程によって選択された流用対象ＩＰモデルに関する構成データを前記ＩＰモデル構成データベースから抽出する構成データ抽出工程と、
前記構成データ抽出工程によって抽出された構成データにより定義されているＩＰのソースコードを前記ＩＰデータベースから抽出するＩＰ抽出工程と、
前記構成データ抽出工程によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出工程と、
前記ＩＰ抽出工程によって抽出されたＩＰのソースコードおよび前記接続属性抽出工程によって抽出された接続コードを前記流用対象ＩＰモデルとして出力する出力工程と、
を実行することを特徴とするＩＰモデル生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する技術は、ＥＳＬ（Ｅｌｅｃｔｏｒｏｎｉｃ  Ｓｙｓｔｅｍ  Ｌｅｖｅｌ）ツールのＰＶ（Ｐｒｏｇｒａｍｍｅｒ'ｓ  Ｖｉｅｗ）、ＰＶＴ（Ｐｒｏｇｒａｍｍｅｒ'ｓ  Ｖｉｅｗ  ｗｉｔｈ  Ｔｉｍｉｎｇ）、ＣＸ（Ｃｙｃｌｅ  Ａｐｐｒｏｘｉｍａｔｅ）、ＣＡ（Ｃｙｃｌｅ  Ａｃｃｕｒａｔｅ）レベルの抽象度モデルに関連するＩＰモデル（ＳｙｓｔｅｍＣなどの上位設計で利用されるモデル）に関する技術である。
【背景技術】
【０００２】
従来、ソースコードのテンプレートを用いてソースコードを自動生成する方法がある（たとえば、下記特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−０５２３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１つのＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）モデルを開発すると、そのＩＰモデルをベースにソースコードを利用して派生品種およびソースコードを作成するケースが多い。そのため、少しマイナーチェンジしたソースコードが複数存在してしまう。これにより発生したソースコードはさらに繰り返し利用されて幾重にも分岐してしまう。この状況のモデルのソースコードや仕様の管理方法は品種単位といった大きなものとなっている。これによりソースコードの可読性は損なわれてしまい、ソースコードの再利用性はない状態となるという問題があった。
【０００５】
開発したソースコードの検証も一部変更であれば一部の検証で済むはずであるが、開発担当者が異なるとソースコードをすべて見切れない状態なので、検証も不十分となるという問題があった。これによりバグを含むモデルができてしまい、さらにそのモデルを利用し開発したモデルはバグを埋め込んだ状態になり、次世代へと伝播してしまうという問題があった。
【０００６】
このように、現状は、上述した方法では、テンプレートが全品種を吸収しなければならいため、品種単位で爆発的にテンプレートコードが増えてしまい、ソースコードの可読性が既に損なわれてしまうという問題があった。
【０００７】
ＥＳＬモデル開発においては、実現する機能により開発するモデルの最適な抽象度が決定される。ここでいう「最適」とは、モデルに要求される精度や実行速度である。高精度のモデルは実装がより詳細化され、低精度のモデルはより簡易化される。インターフェースを駆動する、あるいは駆動されるビヘイビアは、インターフェースに依存したコードとなる。
【０００８】
抽象度に適したインターフェース、ターゲットに特化したインターフェース、ツールに特化したインターフェースが実装される。場合によっては標準インターフェースを採用できるが、モデル内部構造については実装依存にならざるを得ない。そのため、異なるモデル間、異なる抽象度間でコードを流用できない。特に、時間概念を持たないモデルと時間概念を持つモデルとの間で、インターフェース及び構造の違いが顕著であり、モデル開発工数削減の大きな課題となっている。
【０００９】
本技術は、上述した従来技術による問題点を解消するため、ソースコードの可読性の向上、ＩＰモデルの品質の向上およびモデル開発工数削減を図ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、開示技術は、データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードと、前記各ＩＰ間の接続関係を示す接続コードと、を有するＩＰモデルを構築することを要件とする。
【００１１】
また、データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードを記憶するＩＰデータベースと、前記各ＩＰ間の接続関係を示す接続コードを記憶する接続属性データベースと、前記ＩＰと前記接続関係により定義されたＩＰモデルの構成をあらわす構成データを記憶するＩＰモデル構成データベースと、にアクセス可能であり、流用対象ＩＰモデルの選択を受け付け、選択された流用対象ＩＰモデルに関する構成データを前記ＩＰモデル構成データベースから抽出し、抽出された構成データにより定義されているＩＰのソースコードを前記ＩＰデータベースから抽出し、抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出し、抽出されたＩＰのソースコードおよび抽出された接続コードを前記流用対象ＩＰモデルとして出力することを要件とする。
【発明の効果】
【００１２】
この開示技術によれば、ソースコードの可読性の向上、ＩＰモデルの品質の向上およびモデル開発工数削減を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】ＩＰモデルの一例を示すブロック図である。
【図２】ＩＰモデルの他の例を示すブロック図である。
【図３】ハードウェアのＩＰモデルの一例を示すブロック図である。
【図４】ハードウェアのＩＰモデルの拡張例を示すブロック図である。
【図５】本実施の形態の再構成可能なＩＰモデルの一例を示すブロック図である。
【図６】図５に示したモデル構造の再構成例を示す説明図である。
【図７】図５の再構成可能なＩＰモデルに時間概念が導入されていないモデル構造（ＵｎＴｉｍｅｄモデル）を示す説明図である。
【図８】図５の再構成可能なＩＰモデルに時間概念が導入されたモデル構造（Ｔｉｍｅｄモデル）を示す説明図である。
【図９】ＵｎＴｉｍｅｄモデルの入力インターフェースのコードの記述例を示す説明図である。
【図１０】Ｔｉｍｅｄモデルの入力インターフェースのコードの記述例を示す説明図である。
【図１１】ビヘイビアのソースコードの記述例を示す説明図である。
【図１２】ステートを駆動しないコードが記述されたビヘイビアのソースコードの記述例を示す説明図である。
【図１３】ステートを駆動するコードが記述されたビヘイビアのソースコードの記述例を示す説明図である。
【図１４】ＵｎＴｉｍｅｄモデルのステートのソースコードの記述例を示す説明図である。
【図１５】Ｔｉｍｅｄモデルのステートのコードの記述例を示す説明図である。
【図１６】レジスタにアクセスするビヘイビアのコードの記述例を示す説明図である。
【図１７】ビヘイビアに参照されるレジスタのソースコードの記述例を示す説明図である。
【図１８】ビヘイビアに更新されるレジスタのソースコードの記述例を示す説明図である。
【図１９】ステートを駆動しないレジスタのソースコードの記述例を示す説明図である。
【図２０】ステートを駆動するレジスタのコードの記述例を示す説明図である。
【図２１】レジスタにアクセスするステートのコードの記述例を示す説明図である。
【図２２】レジスタにアクセスするステートのコードの記述例を示す説明図である。
【図２３】ビヘイビアを駆動するステートのコードの記述例を示す説明図である。
【図２４】ビヘイビアを駆動するステートのコードの記述例を示す説明図である。
【図２５】出力インターフェースを駆動しないビヘイビアのソースコードの記述例を示す説明図である。
【図２６】出力インターフェースを駆動するビヘイビアのソースコードの記述例を示す説明図である。
【図２７】ＵｎＴｉｍｅｄモデルの出力インターフェースのソースコードの記述例を示す説明図である。
【図２８】Ｔｉｍｅｄモデルの出力インターフェースのソースコードの記述例を示す説明図である。
【図２９】本開示技術のＩＰモデル管理／生成を示す概略図である。
【図３０】入力インターフェースのＩＰテーブルを示す説明図である。
【図３１】出力インターフェースのＩＰテーブルを示す説明図である。
【図３２】ビヘイビアのＩＰテーブルを示す説明図である。
【図３３】ステートのＩＰテーブルを示す説明図である。
【図３４】レジスタのＩＰテーブルを示す説明図である。
【図３５】接続コードテーブルを示す説明図である。
【図３６】実施の形態にかかるＩＰモデル生成装置のハードウェア構成を示すブロック図である。
【図３７】ＩＰモデル生成装置の機能的構成を示すブロック図である。
【図３８】ＩＰモデル生成装置によるＩＰモデル生成処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本開示技術の好適な実施の形態を詳細に説明する。本開示技術は、ＥＳＬ（Ｅｌｅｃｔｏｒｏｎｉｃ  Ｓｙｓｔｅｍ  Ｌｅｖｅｌ）ツールのＰＶ（Ｐｒｏｇｒａｍｍｅｒ‘ｓ  Ｖｉｅｗ）、ＰＶＴ（Ｐｒｏｇｒａｍｍｅｒ’ｓ  Ｖｉｅｗ  ｗｉｔｈ  Ｔｉｍｉｎｇ）、ＣＸ（Ｃｙｃｌｅ  Ａｐｐｒｏｘｉｍａｔｅ）、ＣＡ（Ｃｙｃｌｅ  Ａｃｃｕｒａｔｅ）レベルの抽象度モデルに関連するＩＰモデル（ＳｙｓｔｅｍＣなどの上位設計で利用されるモデル）の管理およびＩＰモデル生成に関する技術である。
【００１５】
（開示技術の概要）
「発明が解決しようとする課題」の項で説明したように、従来では、（１）内部状態の追加はソースコードを巨大化し、再利用性の低下を招く。たとえば、１つのクラスに複数内部状態を保持した場合、その内部状態によって同じ外部からの要求であっても処理（動作）内容が異なる。その原因としては、１クラスの責務が多すぎるためである。このことは基準となるソースコードあるいはテンプレートに責務が集中してしまい、ソースコードの可読性や再利用性の低下を招いてしまう。さらに１つのテンプレートなどに１つに固定されているとそのソースコードの行は膨大となり、メンテナンス性を損なうことになる。
【００１６】
また、（２）他のシステムに移植できず、フレキシブルなフレームワークが構築されていない。通常、開発管理システム内であれば問題ないのだが、他の管理システムに移植するときに情報を提供できないことで利用できない場合がある。モデルに関する情報を管理し抽出できる環境がないためである。
【００１７】
そのため、ＥＳＬのＩＰモデルを、インターフェース、レジスタ、ビヘイビアの３つの構成（ＩＰ）に分離する。インターフェースは、データの入出力をあらわすＩＰであり、レジスタは、データの記憶をあらわすＩＰであり、ビヘイビアは、データを利用した設計対象の振る舞いをあらわすＩＰである。３つの構成には、それぞれ接続関係がある。この３つの構成とこれら相互の接続関係をモデル化する。ビヘイビアは、部品化しリファクタリングのコーディングを利用する。
【００１８】
図１は、ＩＰモデルの一例を示すブロック図である。図１のＩＰモデル１００では、入力インターフェース１０１からの入力をトリガとして（あるいは、スレッドであれば自発的に）、機能（ビヘイビア）１０２が駆動され、その動作結果を出力インターフェース１０３に出力する。ハードウェアでは、入出力タイプに応じたインターフェースとビヘイビアが必要となったり、ビヘイビアが複数段に跨ることもある。図２にその例を示す。
【００１９】
図２は、ＩＰモデルの他の例を示すブロック図である。図２のＩＰモデル２００では、入力インターフェース１０１Ａからの入力をトリガとして、機能（ビヘイビア）１０２Ａが駆動される。また、入力インターフェース１０１Ａ，１０１Ｂからの入力をトリガとして、機能（ビヘイビア）１０２Ｂが駆動される。さらに、入力インターフェース１０１Ａ，１０１Ｃからの入力をトリガとして、機能（ビヘイビア）１０２Ｃが駆動され、機能（ビヘイビア）１１２Ａおよび出力インターフェース１０３Ｃに出力する。
【００２０】
また、機能（ビヘイビア）１０２Ａ，１０２Ｃの動作結果を受け付けると、機能（ビヘイビア）１１２Ａが駆動され、その動作結果を出力インターフェース１０３Ａ，１０３Ｃに出力する。さらに、機能（ビヘイビア）１０２Ａ，１０２Ｂの動作結果を受け付けると、機能（ビヘイビア）１１２Ｂが駆動され、その動作結果を出力インターフェース１０３Ｂに出力する。
【００２１】
図３は、ハードウェアのＩＰモデルの一例を示すブロック図である。一般に、ハードウェアをモデル化する場合、信号入力あるいはレジスタアクセス、データ転送等の外部入力をトリガとしてビヘイビアを動作させ、その処理結果を（同様のインターフェースを介して）得る。図３に示したＩＰモデル３００では、入力インターフェース３０１Ａは信号の入力を受け付けて、機能（ビヘイビア）３０２を動作させるインターフェースである。
【００２２】
入力インターフェース３０１Ｂは、機能（ビヘイビア）３０２にレジスタアクセス（リードやライト）をさせるインターフェースである。入力インターフェース３０１Ｂはデータの入力を受け付けて、機能（ビヘイビア）３０２にデータ転送動作をさせるインターフェースである。機能（ビヘイビア）３０２は、入力インターフェース３０１Ａからの信号の入力を受け付けると駆動して、その動作結果を出力インターフェース３０３Ａに出力する。
【００２３】
また、機能（ビヘイビア）３０２は、入力インターフェース３０１Ｃからのデータの入力を受け付けると駆動して、そのデータを出力インターフェース３０３Ｂに出力する。このように、機能（ビヘイビア）３０２は、信号、レジスタアクセス、データ転送に応じて駆動するため、制御用レジスタ、状態レジスタ、メモリ情報を持つこととなる。図４にその例を示す。
【００２４】
図４は、ハードウェアのＩＰモデルの拡張例を示すブロック図である。図４に示したＩＰモデル４００では、機能（ビヘイビア）３０２は、制御用レジスタ（内部レジスタ３０４Ａ）、状態レジスタ（動作状態３０４Ｂ）、メモリ情報（内部メモリ３０４Ｃ）とのアクセスにより動作する。
【００２５】
（再構成可能なモデル構造）
つぎに、本実施の形態の特徴的な構成である再構成可能なモデル構造について説明する。基本構造としては、入力インターフェース、出力インターフェース、ビヘイビア、ステート、レジスタなどのＩＰを有する。これら構成要素を接続するため、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）やイベント通知（Ｅｖｅｎｔ）の実装はルール化される。ステートは、インターフェースからの時間情報（ｄｅｌａｙ）に応じた待機処理をおこなう。ステートは、図４に示した内部レジスタ３０４Ａ、動作状態３０４Ｂ、内部メモリ３０４Ｃに相当する。
【００２６】
図５は、本実施の形態の再構成可能なＩＰモデルの一例を示すブロック図である。このＩＰモデル５００は一例であり、設計対象となるハードウェアによって、構成要素の個数や接続関係（図５中の矢印。ＡＰＩやイベント通知に相当。）を自由に構成することができる。したがって、設計するハードウェアに応じて複数用意しておくこととしてもよい。なお、同一ハードウェアを改良する場合は、元となるモデル構造から派生モデルを生成する。
【００２７】
図５のＩＰモデル５００では、入力インターフェース５０１からＡＰＩをコールすると、各ビヘイビア５０２（前段のビヘイビア）が動作し、ステート５０３に対してイベント通知する。また、レジスタ５０４に対しＡＰＩをコールする。
【００２８】
また、ステート５０３がレジスタ５０４にＡＰＩをコールするとレジスタ５０４からイベント通知が返ってくる。ステート５０３はイベント通知を受けると、各ビヘイビア５０２（後段のビヘイビア）にＡＰＩをコールする。これにより、ビヘイビア５０２（後段のビヘイビア）が動作して、動作結果を出力インターフェース５０５に出力する。
【００２９】
なお、図５では、ビヘイビアが６個存在するが、基本構造は同一であるが、振る舞い（動作）は異なる（同じであってもよい）。たとえば、動作内容の記述を変更するだけで、異なるビヘイビアを得ることができる。このことは、ビヘイビアに限らず、インターフェースやステート、レジスタについても同様である。
【００３０】
図６は、図５に示したモデル構造の再構成例を示す説明図である。図６において、ＩＰモデル５００の構成要素５０１〜５０５は、ライブラリ６００の中から必要に応じて自由に組み替えることができる。この組み替えは、設計者が端末からライブラリにアクセスして、手動操作により行う。たとえば、入力インターフェース５０１には、入力インターフェース５０１Ａ，５０１Ｂ，５０１Ｃの中から選ばれたＩＰを組み込む。
【００３１】
同様に、各ビヘイビア５０２（前段のビヘイビア）には、ビヘイビア５０２Ａ，５０２Ｂ，５０２Ｃの中から選ばれたＩＰを組み込む。同様に、各ビヘイビア５０２（後段のビヘイビア）には、ビヘイビア５０２Ｄ，５０２Ｅ，５０２Ｆの中から選ばれたＩＰを組み込む。同様に、ステート５０３には、ステート５０３Ａ，５０３Ｂ，５０３Ｃの中から選ばれたＩＰを組み込む。同様に、レジスタ５０４には、レジスタ５０４Ａ，５０４Ｂ，５０４Ｃの中から選ばれたＩＰを組み込む。
【００３２】
同様に、出力インターフェース５０５には、出力インターフェース５０５Ａ，５０５Ｂ，５０５Ｃの中から選ばれたＩＰを組み込む。このように、構成要素間の接続関係（図６中の細矢印。ＡＰＩやイベント通知に相当。）を維持したまま、ＩＰを組み替えるだけで、修正や改良をおこなうことができる。なお、各ＩＰは、図示しないが、使用するツールごとにライブラリ６００に用意しておくこととしてもよい。これにより、ＩＰモデル５００自体は各種ツールに依存しない構成とすることができ、汎用性を高めることができる。
【００３３】
また、類似モデルや派生モデルを開発する場合、ライブラリ６００に登録されているＩＰを流用したり、ライブラリ６００に登録されているＩＰを修正してライブラリ６００に新規登録されたＩＰを用いることで、必要最小限の変更で、類似モデルや派生モデルを開発することができる。類似モデルや派生モデルの基本構造は、元のＩＰモデル５００と変わらないため、ＩＰの入れ替えのみで開発することができる。
【００３４】
また、各ビヘイビア５０２は、その動作に必要な時間情報（ｄｅｌａｙ）を持つ。時間情報に対応したインターフェースを用いる場合、インターフェースを介して外部との時間情報（ｄｅｌａｙ）のやり取りをおこなう必要がある。このため、時間情報（ｄｅｌａｙ）を取得し、ウェイト処理（ｗａｉｔ）は、ステート５０３でおこなうことで時間概念の処理をおこなうことができる。
【００３５】
（ＵｎＴｉｍｅｄモデルとＴｉｍｅｄモデルの共通化）
再構成可能なＩＰモデルでは、時間概念が導入されていないＵｎＴｉｍｅｄモデルと時間概念が導入されているＴｉｍｅｄ（Ｌｏｏｓｅｌｙ  Ｔｉｍｅｄ（ＬＴ）ともいう）モデルを構築することができる。さらに、インターフェースおよびステート（のＩＰ）を差し替えるだけで、ＵｎＴｉｍｅｄモデルとＴｉｍｅｄモデルの共通化も図ることができる。
【００３６】
図７は、図５の再構成可能なＩＰモデルに時間概念が導入されていないモデル構造（ＵｎＴｉｍｅｄモデル）を示す説明図である。図８は、図５の再構成可能なＩＰモデルに時間概念が導入されたモデル構造（Ｔｉｍｅｄモデル）を示す説明図である。図７および図８は、ＯＳＣＩ（Ｏｐｅｎ  ＳｙｓｔｅｍＣ  Ｉｎｉｔｉａｔｉｖｅ）―ＴＬＭ（Ｔｒａｎｓａｃｔｉｏｎ  Ｌｅｖｅｌ  Ｍｏｄｅｌｉｎｇ）２．０への適用例を示している。
【００３７】
ビヘイビア５０２（７０２Ａ〜７０２Ｆ）はそのままで、入力インターフェース７０１、ステート７０３、および出力インターフェース７０５を、図８に示した入力インターフェース８０１、ステート８０３、および出力インターフェース８０５に差し替えるだけで、ＵｎＴｉｍｅｄモデルのＩＰモデル７００からＴｉｍｅｄモデルのＩＰモデル８００へ変更することができる。
【００３８】
同様に、ビヘイビア５０２（７０２Ａ〜７０２Ｆ）はそのままで、入力インターフェース８０１、ステート８０３、および出力インターフェース８０５を、図７に示した入力インターフェース７０１、ステート７０３、および出力インターフェース７０５に差し替えるだけで、ＴｉｍｅｄモデルのＩＰモデル８００からＵｎＴｉｍｅｄモデルのＩＰモデル７００へ変更することができる。以下、図７および図８の各ＩＰおよび接続コードについて説明する。
【００３９】
（適用コード例）
図９は、ＵｎＴｉｍｅｄモデルの入力インターフェース７０１のコードの記述例を示す説明図である。図９に示したコード９００は、ＵｎＴｉｍｅｄモデルの入力インターフェース７０１のソースコード９０１に、当該入力インターフェース７０１からビヘイビア５０２を駆動する接続コード９０２が挿入されたコードである。この接続コード９０２は、時間概念が導入されていないコードであるが、どのビヘイビア５０２にも共通するコードである。
【００４０】
図７では、入力インターフェース７０１からビヘイビア７０２Ａ〜７０２Ｃを駆動するため、入力インターフェース７０１のソースコード９０１内のｉｆ文は、ビヘイビア７０２Ａ〜７０２Ｃごとに記述される。また、接続コード９０２も各ビヘイビア７０２Ａ〜７０２Ｃを特定できるように記述される。
【００４１】
図１０は、Ｔｉｍｅｄモデルの入力インターフェース８０１のコードの記述例を示す説明図である。図１０に示したコード１０００は、Ｔｉｍｅｄモデルの入力インターフェース８０１のソースコード１００１に、当該入力インターフェース８０１からビヘイビア７０２を駆動する接続コード１００２が挿入されたコードである。この接続コード１００２は、時間概念が導入されたコードであるが、どのビヘイビア５０２にも共通するコードである。
【００４２】
図８では、入力インターフェース８０１からビヘイビア７０２Ａ〜７０２Ｃを駆動するため、入力インターフェース８０１のソースコード１００１内のｉｆ文は、ビヘイビア７０２Ａ〜７０２Ｃごとに記述される。また、接続コード１００２も各ビヘイビア７０２Ａ〜７０２Ｃを特定できるように記述される。
【００４３】
図１１は、ビヘイビア５０２のソースコードの記述例を示す説明図である。図１１に示したビヘイビア５０２のソースコード１１００は、ＵｎＴｉｍｅｄモデルとＴｉｍｅｄモデルで共通である。ソースコード１１００において、“／／ＰＲＯＣＥＳＳ”〜“ｄｅｌａｙ  ＋＝ｔ；”の間に固有の振る舞いを記述することで、ビヘイビア７０２Ａ〜７０２Ｆとなる。ビヘイビア７０２Ａ〜７０２Ｆのソースコード１１００はあらかじめライブラリ６００に登録しておいてもよい。
【００４４】
図１２は、ステート５０３を駆動しないコードが記述されたビヘイビア５０２のソースコードの記述例を示す説明図である。図１２に示したビヘイビア５０２のソースコード１２００は、ＵｎＴｉｍｅｄモデルとＴｉｍｅｄモデルで共通である。ソースコード１２００は、図１１に示したソースコード１１００に、ステート５０３を駆動しないコード１２０１が挿入されたコードである。ソースコード１１００と同様、“／／ＰＲＯＣＥＳＳ”〜“ｄｅｌａｙ  ＋＝ｔ；”の間に固有の振る舞いを記述することで、ステート５０３を駆動しないビヘイビア７０２Ａ〜７０２Ｃとなる。ステート５０３を駆動しないビヘイビア７０２Ａ〜７０２Ｃのソースコード１２００はあらかじめライブラリ６００に登録しておいてもよい。
【００４５】
図１３は、ステート５０３を駆動するコードが記述されたビヘイビア５０２のソースコードの記述例を示す説明図である。図１３に示したビヘイビア５０２のソースコード１３００は、ＵｎＴｉｍｅｄモデルとＴｉｍｅｄモデルで共通である。ソースコード１３００は、図１２に示したソースコード１２００に、ステート５０３を駆動する接続コード１３０１が挿入されたコードである。ソースコード１２００と同様、“／／ＰＲＯＣＥＳＳ”〜“ｄｅｌａｙ  ＋＝ｔ；”の間に固有の振る舞いを記述することで、ステート５０３を駆動するビヘイビア７０２Ａ〜７０２Ｃとなる。ソースコード１２００や接続コード１３０１はあらかじめライブラリ６００に登録しておいてもよい。
【００４６】
図１４は、ＵｎＴｉｍｅｄモデルのステート７０３のソースコードの記述例を示す説明図である。図１４に示したコード１４００は、ＵｎＴｉｍｅｄモデルのステート７０３のソースコード１４０１に、ビヘイビア５０２から駆動される接続コード１４０２が挿入されたコードである。
【００４７】
図７では、ビヘイビア７０２Ａ〜７０２Ｃからステート７０３を駆動するため、ステート７０３のソースコード１４０１内のｃａｓｅ文は、各ビヘイビア７０２Ａ〜７０２Ｃについて記述される。ステート７０３のソースコード１４０１や接続コード１４０２はあらかじめライブラリ６００に登録しておいてもよい。
【００４８】
図１５は、Ｔｉｍｅｄモデルのステート８０３のコードの記述例を示す説明図である。図１５に示したコード１５００は、Ｔｉｍｅｄモデルのステート８０３のソースコード１５０１に、ビヘイビア５０２から駆動される接続コード１４０２が挿入されたコードである。コード１５０２は、ステート８０３内で時間（ｄｅｌａｙ）を待つ（ｗａｉｔ）コードである。これにより、時間概念が導入されたこととなる。
【００４９】
図８では、ビヘイビア７０２Ａ〜７０２Ｃからステート８０３を駆動するため、ステート８０３のソースコード１５０１内のｃａｓｅ文は、各ビヘイビア７０２Ａ〜７０２Ｃについて記述される。ステート８０３のソースコード１５０１や接続コード１４０２はあらかじめライブラリ６００に登録しておいてもよい。
【００５０】
図１６は、レジスタ７０４にアクセスするビヘイビア５０２のコードの記述例を示す説明図である。図１６に示したコード１６００は、ビヘイビア５０２のソースコード１１００に、ビヘイビア５０２からレジスタ７０４へのアクセスを示す接続コード１６０１が挿入されたコードである。接続コード１６０１中、“ｒｅｇ．ｇｅｔ＿ｖａｌ”はレジスタ７０４の参照、“ｒｅｇ．ｓｅｔ＿ｖａｌ”はレジスタ７０４の更新をあらわす。
【００５１】
ソースコード１１００では、“／／ＰＲＯＣＥＳＳ”〜“ｄｅｌａｙ  ＋＝ｔ；”の間に固有の振る舞いを記述することで、レジスタ７０４にアクセスするビヘイビア７０２Ａ〜７０２Ｃとなる。レジスタ７０４にアクセスするビヘイビア７０２Ａ〜７０２Ｃのソースコード１１００や接続コード１６０１はあらかじめライブラリ６００に登録しておいてもよい。
【００５２】
図１７は、ビヘイビア５０２に参照されるレジスタ７０４のソースコードの記述例を示す説明図である。このソースコード１７００は、参照元のビヘイビア５０２（ビヘイビア７０２Ａ〜７０２Ｃ）を特定できるように記述される。ソースコード１７００は、あらかじめライブラリ６００に登録しておいてもよい。
【００５３】
図１８は、ビヘイビア５０２に更新されるレジスタ７０４のソースコードの記述例を示す説明図である。このソースコード１８００は、更新元のビヘイビア５０２（ビヘイビア７０２Ａ〜７０２Ｃ）を特定できるように記述される。ソースコード１８００は、はあらかじめライブラリ６００に登録しておいてもよい。
【００５４】
図１９は、ステート７０３を駆動しないレジスタ７０４のソースコードの記述例を示す説明図である。このソースコード１９００は、図１７のソースコード１７００と図１８のソースコード１８００からなるコードである。このソースコード１９００は、アクセス元のビヘイビア５０２（ビヘイビア７０２Ａ〜７０２Ｃ）を特定できるように記述される。コード１９００は、あらかじめライブラリ６００に登録しておいてもよい。
【００５５】
図２０は、ステート７０３を駆動するレジスタ７０４のコードの記述例を示す説明図である。このコード２０００は、図１９に示したレジスタ７０４のソースコード１９００に、レジスタ７０４からステート７０３を駆動する接続コード２００１が挿入されたコードである。接続コード２００１はステートイベント（ｓｔａｔｅ＿Ｅｖｅｎｔ）を通知（ｎｏｔｉｆｙ）するコードである。このコード２０００は、アクセス元のビヘイビア５０２（ビヘイビア７０２Ａ〜７０２Ｃ）を特定できるように記述される。コード２０００や接続コード２００１は、あらかじめライブラリ６００に登録しておいてもよい。
【００５６】
図２１は、レジスタ７０４にアクセスするステート７０３のコードの記述例を示す説明図である。このコード２１００は、図１４に示したステート７０３のコード１４００（ソースコード１４０１，接続コード１４０２）に、レジスタ７０４へアクセスする接続コード２１０１が挿入されたコードである。接続コード２１０１はレジスタ７０４を参照（ｒｅｇ．ｇｅｔ＿ｖａｌ）、更新（ｒｅｇ．ｓｅｔ＿ｖａｌ）するコードである。このコード２１００や接続コード２１０１は、あらかじめライブラリ６００に登録しておいてもよい。
【００５７】
図２２は、レジスタ７０４にアクセスするステート８０３のコードの記述例を示す説明図である。このコード２２００は、図１５に示したステート８０３のコード１５００（ソースコード１５０１，コード１５０２）に、レジスタ７０４へアクセスする接続コード２１０１が挿入されたコードである。接続コード２１０１はレジスタ７０４を参照（ｒｅｇ．ｇｅｔ＿ｖａｌ）、更新（ｒｅｇ．ｓｅｔ＿ｖａｌ）するコードである。このコード２２００は、あらかじめライブラリ６００に登録しておいてもよい。
【００５８】
図２３は、ビヘイビア５０２を駆動するステート７０３のコードの記述例を示す説明図である。このコード２３００は、図１４に示したステート７０３のコード１４００に、ビヘイビア５０２を駆動する接続コード２３０１が挿入されたコードである。このコード２３００は、駆動先のビヘイビア５０２（ビヘイビア７０２Ｄ〜７０２Ｆ）を特定できるように記述される。コード２３００は、あらかじめライブラリ６００に登録しておいてもよい。
【００５９】
図２４は、ビヘイビア５０２を駆動するステート８０３のコードの記述例を示す説明図である。このコード２４００は、図１５に示したステート８０３のコード１５００に、ビヘイビア５０２を駆動する接続コード２３０１が挿入されたコードである。このコード２４００は、駆動先のビヘイビア５０２（ビヘイビア７０２Ｄ〜７０２Ｆ）を特定できるように記述される。コード２４００は、あらかじめライブラリ６００に登録しておいてもよい。
【００６０】
図２５は、出力インターフェース５０５を駆動しないビヘイビア５０２のソースコードの記述例を示す説明図である。このソースコード２５００では、読み込みや書き込みはおこなわれないこととなる。このソースコード２５００は、ＵｎＴｉｍｅｄモデルとＴｉｍｅｄモデルで共通である。ソースコード２５００において、“／／ＰＲＯＣＥＳＳ”〜“ｄｅｌａｙ  ＋＝ｔ；”の間に固有の振る舞いを記述することで、ビヘイビア７０２Ｄ〜７０２Ｆとなる。ビヘイビア７０２Ｄ〜７０２Ｆのコードはあらかじめライブラリ６００に登録しておいてもよい。
【００６１】
図２６は、出力インターフェース５０５を駆動するビヘイビア５０２のソースコードの記述例を示す説明図である。このコード２６００は、図２５に示したビヘイビア５０２のソースコード２５００に、ビヘイビア５０２から出力インターフェース５０５を駆動する接続コード２６０１が挿入されたコードである。
【００６２】
接続コード２６０１は、読み込みを行う（ｔｒａｎｓ＿ｒｅａｄ）、書き込みを行う（ｔｒａｎｓ＿ｗｒｉｔｅ）、といったコードである。このコード２６００は、ＵｎＴｉｍｅｄモデルとＴｉｍｅｄモデルで共通である。コード２６００において、“／／ＰＲＯＣＥＳＳ”〜“ｄｅｌａｙ  ＋＝ｔ；”の間に固有の振る舞いを記述することで、ビヘイビア７０２Ｄ〜７０２Ｆとなる。コード２６００や接続コード２６０１は、あらかじめライブラリ６００に登録しておいてもよい。
【００６３】
図２７は、ＵｎＴｉｍｅｄモデルの出力インターフェース７０５のソースコードの記述例を示す説明図である。図２７に示したコード２７００は、ＵｎＴｉｍｅｄモデルの出力インターフェース７０５のソースコード２７０１に、ビヘイビア５０２から出力インターフェース７０５を駆動する接続コード２７０２が挿入されたコードである。この接続コード２７０２は、対向の“ｂ＿ｔｒａｎｓｐｏｒｔ”を呼び出すコードである。
【００６４】
図２８は、Ｔｉｍｅｄモデルの出力インターフェース８０５のソースコードの記述例を示す説明図である。図２８に示したコード２８００は、Ｔｉｍｅｄモデルの出力インターフェース８０５のソースコード２８０１に、ビヘイビア５０２から出力インターフェース８０５を駆動する接続コード２８０２が挿入されたコードである。この接続コード２７０２は、対向の“ｎｂ＿ｔｒａｎｓｐｏｒｔ”を呼び出すコードである。
【００６５】
図２９は、本開示技術のＩＰモデル管理／生成を示す概略図である。本開示技術では、ＩＰＤＢ（データベース）２９０１と、ＩＰモデル構成ＤＢ２９０３と、接続属性ＤＢ２９０２とにアクセスし、ＩＰモデル構成データの作成２９１１やＩＰモデルの生成２９１２をおこなう。ＩＰＤＢ２９０１，接続属性ＤＢ２９０２およびＩＰモデル構成ＤＢ２９０３は、ライブラリ６００を構成する。
【００６６】
ＩＰＤＢ２９０１は、ＩＰを記憶するデータベースであり、具体的には、たとえば、ソースコード９０１，１００１，１１００，１２００，１４０１，１５０１，１７００，１８００，１９００，２５００，２７０１，２８０１を記憶する。
【００６７】
図３０は、入力インターフェースのＩＰテーブルを示す説明図であり、図３１は、出力インターフェースのＩＰテーブルを示す説明図であり、図３２は、ビヘイビアのＩＰテーブルを示す説明図であり、図３３は、ステートのＩＰテーブルを示す説明図であり、図３４は、レジスタのＩＰテーブルを示す説明図である。
【００６８】
各ＩＰテーブル３０００〜３４００では、レコードごとに、ＩＤ、ＩＰ属性、モデル属性、接続コードＩＤ、親要素を有する。ＩＤは、そのレコードのＩＰを特定する識別情報である。ＩＰ属性は、そのレコードのＩＰの特徴をあらわす情報である。モデル属性は、そのレコードのＩＰがＵｎＴｉｍｅｄモデル（図中、「ＵＴ」）に適用されるのか、Ｔｉｍｅｄモデル（図中、「ＬＴ」）に適用されるのか、両モデルに共通（図中、「−」）なのかを示す情報である。
【００６９】
接続コードＩＤは、そのレコードのＩＰに挿入可能な接続コードの識別情報である。これらＩＰテーブル３０００〜３４００にアクセスすることで、ＩＰＤＢ２９０１の中からＩＰのソースコードを引くことができる。親要素には、そのレコードのＩＰの親となるＩＰ（へのポインタ）を記憶する。
【００７０】
接続属性ＤＢ２９０２は、接続コードを記憶するデータベースであり、具体的には、たとえば、接続コード９０２，１００２，１３０１，１４０２，１６０１，２００１，２１０１，２３０１，２６０１，２７０２，２８０２を記憶する。
【００７１】
図３５は、接続コードテーブルを示す説明図である。接続コードテーブル３５００は、レコードごとに、ＩＤ（接続コードＩＤ）、ＩＰ属性、モデル属性、接続属性、親要素を有する。ここで、接続属性とは、そのレコードの接続コードの特徴をあらわす情報である。
【００７２】
ＩＰモデル構成ＤＢ２９０３は、図１〜図８に示したＩＰモデル１００〜８００のＩＰモデル構成データを記憶するデータベースである。ＩＰモデル構成ＤＢ２９０３は、レコードごとに、構成ＩＤとＩＰモデル構成データを記憶する。構成ＩＤは、ＩＰモデル構成データを特定する識別情報である。ＩＰモデル構成データは、設計者により作成されたデータであり、設計対象であるＩＰモデルのブロック構成を示している。
【００７３】
ＩＰモデル構成データは、図１〜図８に示したように、ＩＰをブロック、接続コードを矢印で表現したＧＵＩで保存される。ブロックは、図３０〜図３４に示したＩＰテーブル内のＩＤにリンクしており、矢印は図３５に示した接続コードテーブル内のＩＤにリンクする。したがって、ブロックを選択すると、そのＩＰのソースコードをＩＰＤＢから抽出する。同様に、矢印を選択すると、その接続コードを接続属性ＤＢから抽出する。
【００７４】
図２９に戻って、ＩＰモデル構成データ作成２９１１は、設計者がコンピュータを操作することでＩＰモデル構成データを作成する処理である。ＩＰモデル生成２９１２は、設計者がコンピュータに生成指示を与えると、自動実行によりＩＰモデル２９０４を生成する処理である。
【００７５】
このようなＩＰモデル２９０４の管理／生成をおこなうことにより、ＩＰモデル２９０４を構成するＩＰ間の接続属性の再利用性の向上を図ることができる。また、各処理を分割し修正箇所を局所化することにより再利用性の向上を図ることができる。また、この局所化により、派生品種の検証範囲の絞込みをおこなうことができる。したがって、テンプレートのように全品種を吸収する必要がなくなり、品種単位で爆発的にテンプレートコードが増大することも生じない。したがって、ソースコードの可読性が損なわれず、また、バグが伝播しないため、ＩＰモデルの品質向上を図ることができる。
【００７６】
（ＩＰモデル生成装置のハードウェア構成）
図３６は、実施の形態にかかるＩＰモデル生成装置のハードウェア構成を示すブロック図である。図３６において、ＩＰモデル生成装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３６０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３６０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３６０３と、磁気ディスクドライブ３６０４と、磁気ディスク３６０５と、光ディスクドライブ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）３６０６と、光ディスク３６０７と、ディスプレイ３６０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３６０９と、キーボード３６１０と、マウス３６１１と、スキャナ３６１２と、プリンタ３６１３と、を備えている。また、各構成部はバス３６００によってそれぞれ接続されている。
【００７７】
ここで、ＣＰＵ３６０１は、ＩＰモデル生成装置の全体の制御を司る。ＲＯＭ３６０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３６０３は、ＣＰＵ３６０１のワークエリアとして使用される。磁気ディスクドライブ３６０４は、ＣＰＵ３６０１の制御にしたがって磁気ディスク３６０５に対するデータのリード／ライトを制御する。磁気ディスク３６０５は、磁気ディスクドライブ３６０４の制御で書き込まれたデータを記憶する。
【００７８】
光ディスクドライブ３６０６は、ＣＰＵ３６０１の制御にしたがって光ディスク３６０７に対するデータのリード／ライトを制御する。光ディスク３６０７は、光ディスクドライブ３６０６の制御で書き込まれたデータを記憶したり、光ディスク３６０７に記憶されたデータをコンピュータに読み取らせたりする。
【００７９】
ディスプレイ３６０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３６０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００８０】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３６０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３６１４に接続され、このネットワーク３６１４を介して他の装置に接続される。そして、Ｉ／Ｆ３６０９は、ネットワーク３６１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３６０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００８１】
キーボード３６１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３６１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００８２】
スキャナ３６１２は、画像を光学的に読み取り、ＩＰモデル生成装置内に画像データを取り込む。なお、スキャナ３６１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３６１３は、画像データや文書データを印刷する。プリンタ３６１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００８３】
（ＩＰモデル生成装置の機能的構成）
つぎに、ＩＰモデル生成装置の機能的構成について説明する。図３７は、ＩＰモデル生成装置３７００の機能的構成を示すブロック図である。ＩＰモデル生成装置３７００は、ＩＰＤＢ２９０１と、接続属性ＤＢ２９０２と、ＩＰモデル構成ＤＢ２９０３と、ＩＰモデル選択部３７０１と、構成データ抽出部３７０２と、接続属性抽出部３７０３と、ＩＰ抽出部３７０４と、出力部３７０５と、ＩＰ選択部３７０６と、派生品リスト取得部３７０７と、派生品選択部３７０８と、変換部３７０９と、を含む構成である。
【００８４】
この制御部となる機能（ＩＰモデル選択部３７０１〜変換部３７０９）は、具体的には、たとえば、図３６に示したＲＯＭ３６０２、ＲＡＭ３６０３、磁気ディスク３６０５、光ディスク３６０７などの記憶領域に記憶されたプログラムをＣＰＵ３６０１に実行させることにより、または、Ｉ／Ｆ３６０９により、その機能を実現する。ＩＰＤＢ２０１、接続属性ＤＢ２０２、およびＩＰモデル構成ＤＢ２０３は、具体的には、たとえば、図３６に示したＲＯＭ３６０２、ＲＡＭ３６０３、磁気ディスク３６０５、光ディスク３６０７などの記憶領域によりその機能を実現する。
【００８５】
ＩＰモデル選択部３７０１は、流用対象ＩＰモデルの選択を受け付ける機能を有する。具体的には、たとえば、ＩＰモデル構成ＤＢ２９０３の記憶内容がディスプレイに表示された場合、マウスなどを用いて、流用したいＩＰモデル構成データの構成ＩＤを選択する。
【００８６】
構成データ抽出部３７０２は、ＩＰモデル選択部３７０１によって選択されたＩＰモデルの構成データを、ＩＰモデル構成ＤＢ２９０３から抽出する機能を有する。具体的には、たとえば、構成ＩＤが選択されたのをトリガとして、選択構成ＩＤをＩＰモデル構成ＤＢ２９０３に送る。そして、その選択構成ＩＤにより特定されるＩＰモデル構成データを読み出す。
【００８７】
接続属性抽出部３７０３は、構成データ抽出部３７０２によって抽出されたＩＰモデル構成データにより定義されている接続コードを接続属性ＤＢ２９０２から抽出する機能を有する。具体的には、抽出されたＩＰモデル構成データ内の接続をあらわす矢印（接続コードＩＤ）にリンクされている接続コードを、接続属性ＤＢ２９０２から読み出す。
【００８８】
ＩＰ抽出部３７０４は、構成データ抽出部３７０２によって抽出された構成データにより定義されているＩＰのソースコードをＩＰＤＢ２９０１から抽出する機能を有する。具体的には、抽出されたＩＰモデル構成データ内のＩＰをあらわすブロック（ＩＰのＩＤ）にリンクされているＩＰのソースコードを、ＩＰＤＢ２９０１から読み出す。
【００８９】
出力部３７０５は、接続属性抽出部３７０３によって抽出された接続コードとＩＰ抽出部３７０４によって抽出されたＩＰのソースコードを流用対象ＩＰモデルとして出力する機能を有する。具体的には、たとえば、抽出されたＩＰのソースコードと接続コードをそのまま出力する。また、接続コードの挿入位置をＩＰモデル構成データごとに定義しておき、これらをまとめて単一のファイルとして出力することとしてもよい。また、ＩＰモデルの出力形式は、ディスプレイ３６０８への表示、プリンタ３６１３による印刷出力、外部のコンピュータへの送信、記憶領域への書き出しなどがある。
【００９０】
ＩＰ選択部３７０６は、構成データ抽出部３７０２によって抽出された構成データ内のＩＰの選択を受け付ける機能を有する。具体的には、たとえば、ＩＰモデル構成データがディスプレイ３６０８に表示された場合、マウス３６１１などを用いて、ＩＰを選択する。
【００９１】
派生品リスト取得部３７０７は、ＩＰ選択部３７０６によりＩＰが選択されるのをトリガとして、選択ＩＰの派生品リストを取得する機能を有する。具体的には、たとえば、あるビヘイビア「Ｂｅｈａｖｉｏｒ＿Ａ」を選択すると、ＩＰＤＢ２９０１にアクセスして、コンピュータが「Ｂｅｈａｖｉｏｒ＿Ａ」を親要素とするビヘイビアとして「Ｂｅｈａｖｉｏｒ＿Ａ２」を取得し、つぎに、「Ｂｅｈａｖｉｏｒ＿Ａ２」を親要素とするビヘイビアとして「Ｂｅｈａｖｉｏｒ＿Ａ３−１」、「Ｂｅｈａｖｉｏｒ＿Ａ３−２」を取得する。このように取得されなくなるまで繰り返すことで、派生品リストが自動的に得られることとなる。
【００９２】
派生品選択部３７０８は、ＩＰ選択部３７０６によって選択されたＩＰの派生品の選択を受け付ける機能を有する。具体的には、たとえば、派生品リストがディスプレイ３６０８に表示された場合、マウス３６１１などを用いて、派生品リストの中から派生品を選択する。
【００９３】
変換部３７０９は、ＩＰ選択部３７０６によって選択されたＩＰを、派生品選択部３７０８によって選択された派生品に変換する機能を有する。具体的には、派生品の選択が受け付けられると、選択ＩＰのソースコードを選択派生品のソースコードに変換する。変換後のソースコードは、出力部から出力される。
【００９４】
（ＩＰモデル生成処理手順）
図３８は、ＩＰモデル生成装置３７００によるＩＰモデル生成処理手順を示すフローチャートである。本フローチャートは、ＩＰモデル生成装置３７００による自動実行の手順を示している。まず、ＩＰモデル選択部３７０１により、流用対象ＩＰモデルのＩＰモデル構成データの構成ＩＤが選択されるのを待ち受ける（ステップＳ３８０１：Ｎｏ）。
【００９５】
選択された場合（ステップＳ３８０１：Ｙｅｓ）、構成データ抽出部３７０２により、その構成ＩＤを手がかりとして流用対象ＩＰモデルのＩＰモデル構成データをＩＰモデル構成ＤＢ２９０３から抽出する（ステップＳ３８０２）。
【００９６】
そして、抽出ＩＰモデル構成データのＩＰ（ブロック）が選択されたか否かを判断する（ステップＳ３８０３）。ＩＰが選択されない場合（ステップＳ３８０３：Ｎｏ）、ステップＳ３８０７に移行する。ＩＰが選択された場合（ステップＳ３８０３：Ｙｅｓ）、派生品リスト取得部３７０７により、選択ＩＰの派生品リストを取得する（ステップＳ３８０４）。すでに取得済みである場合は、つぎのステップＳ３８０５に移行する。
【００９７】
そして、選択ＩＰの派生品が選択されなかった場合（ステップＳ３８０５：Ｎｏ）、ステップＳ３８０７に移行する。一方、選択ＩＰの派生品が選択された場合（ステップＳ３８０５：Ｙｅｓ）、ＩＰモデル構成データ上の選択ＩＰを派生品に変換する（ステップＳ３８０６）。
【００９８】
このあと、ステップＳ３８０７に移行する。ステップＳ３８０７では、選択終了入力されたか否かを判断する（ステップＳ３８０７）。選択終了入力がない場合（ステップＳ３８０７：Ｎｏ）、ステップＳ３８０３に戻る。一方、選択終了入力があった場合（ステップＳ３８０７：Ｙｅｓ）、ＩＰ抽出部３７０４により、ステップＳ３８０２で抽出されたＩＰモデル構成データ（派生品への変換があった場合はステップＳ３８０６による変換後のＩＰモデル構成データ）を構成するＩＰ（派生品も含む）のソースコードおよび接続コードを抽出する（ステップＳ３８０８）。
【００９９】
そして、出力部３７０５により、抽出ソースコードおよび接続コードを出力する（ステップＳ３８０９）。これにより、ＩＰモデル生成処理を終了する。なお、このあと、必要に応じて、ラッパを生成して、外部インターフェースと接続することとしてもよい。
【０１００】
以上説明したように、本実施の形態によれば、ＩＰモデルの構成要素の種別を、インターフェース、レジスタ、ビヘイビア、ステートというたかだか４種類に分類するだけで、接続属性という単純な記述内容に局所化することができる。また、接続属性の組み合わせによりＩＰモデルを表現することができる。
【０１０１】
したがって、ＩＰモデルを構成するＩＰ間の接続属性の再利用性の向上を図ることができる。また、各処理を分割し修正箇所を局所化することにより再利用性を向上することができる。また、この局所化により、派生品種の検証範囲の絞込みをおこなうことができる。したがって、テンプレートのように全品種を吸収する必要がなくなり、品種単位で爆発的にテンプレートコードが増大することも生じない。したがって、ソースコードの可読性が損なわれず、また、バグが伝播しないため、ＩＰモデルの品質向上を図ることができる。
【０１０２】
特に、時間概念の有無に依存しないモデル構造とし、時間概念や精度によりインターフェースやステートを必要に応じ選択可能とした。これにより、２重に開発していたモデルを共通化し、モデル開発工数、管理工数を削減することができる。
【０１０３】
また、ツールに依存しないモデル構造とし、使用するツールに合わせてインターフェースを選択（差し替え）可能とした。これにより、ツールにより別々に開発していたモデルのコア部分を共通化し、モデル開発工数、管理工数を削減することができる。また、新規ツールへの組み込み時、インターフェースのみ更新すれば良いため、開発工数を削減することができる。
【０１０４】
また、ターゲットに依存しないモデル構造とし、インターフェースの数、レジスタとビヘイビアの関連付け等、開発対象に応じて自由に構成可能とした。これにより、ライブラリ６００の使用により、類似品種や派生品種の開発工数を削減することができる。
【０１０５】
なお、本実施の形態で説明したＩＰモデル生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
【０１０６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０７】
（付記１）データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードと、前記各ＩＰ間の接続関係を示す接続コードと、を組み合わせたＩＰモデルを記録したコンピュータに読み取り可能な記録媒体。
【０１０８】
（付記２）前記インターフェースおよび前記ステートは、時間概念の有無により差し替え可能であることを特徴とする付記１に記載の記録媒体。
【０１０９】
（付記３）前記インターフェースおよび前記ステートが、時間概念を持つ記述である場合、前記ステートは、前記インターフェースからの時間情報の取得により、待機処理をおこなう記述であることを特徴とする付記２に記載の記録媒体。
【０１１０】
（付記４）前記インターフェースおよび前記ステートが、時間概念を持たない記述である場合、前記ステートは、待機処理をおこなわない記述であることを特徴とする付記２に記載の記録媒体。
【０１１１】
（付記５）前記ＩＰはツールごとに用意され、同一ツールのＩＰにより前記ＩＰモデルを構成することを特徴とする付記１に記載の記録媒体。
【０１１２】
（付記６）前記各ＩＰは、同種の派生品に差し替え可能であることを特徴とする付記１に記載の記録媒体。
【０１１３】
（付記７）データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードを記憶するＩＰデータベースと、前記各ＩＰ間の接続関係を示す接続コードを記憶する接続属性データベースと、前記ＩＰと前記接続関係により定義されたＩＰモデルの構成をあらわす構成データを記憶するＩＰモデル構成データベースと、にアクセス可能なコンピュータを、
流用対象ＩＰモデルの選択を受け付ける選択手段、
前記選択手段によって選択された流用対象ＩＰモデルに関する構成データを前記ＩＰモデル構成データベースから抽出する構成データ抽出手段、
前記構成データ抽出手段によって抽出された構成データにより定義されているＩＰのソースコードを前記ＩＰデータベースから抽出するＩＰ抽出手段、
前記構成データ抽出手段によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出手段、
前記ＩＰ抽出手段によって抽出されたＩＰのソースコードおよび前記接続属性抽出手段によって抽出された接続コードを前記流用対象ＩＰモデルとして出力する出力手段、
として機能させることを特徴とするＩＰモデル生成プログラム。
【０１１４】
（付記８）前記コンピュータを、
前記構成データ抽出手段によって抽出された構成データ内のＩＰの選択を受け付けるＩＰ選択手段、
前記ＩＰ選択手段によって選択されたＩＰの派生品の選択を受け付ける派生品選択手段、
前記ＩＰ選択手段によって選択されたＩＰを、前記派生品選択手段によって選択された派生品に変換する変換手段として機能させ、
前記ＩＰ抽出手段は、
前記変換手段によって変換された派生品のソースコードを、前記ＩＰデータベースから抽出することを特徴とする付記７に記載のＩＰモデル生成プログラム。
【０１１５】
（付記９）データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードを記憶するＩＰデータベースと、前記各ＩＰ間の接続関係を示す接続コードを記憶する接続属性データベースと、前記ＩＰと前記接続関係により定義されたＩＰモデルの構成をあらわす構成データを記憶するＩＰモデル構成データベースと、にアクセス可能なＩＰモデル生成装置であって、
流用対象ＩＰモデルの選択を受け付ける選択手段と、
前記選択手段によって選択された流用対象ＩＰモデルに関する構成データを前記ＩＰモデル構成データベースから抽出する構成データ抽出手段と、
前記構成データ抽出手段によって抽出された構成データにより定義されているＩＰのソースコードを前記ＩＰデータベースから抽出するＩＰ抽出手段と、
前記構成データ抽出手段によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出手段と、
前記ＩＰ抽出手段によって抽出されたＩＰのソースコードおよび前記接続属性抽出手段によって抽出された接続コードを前記流用対象ＩＰモデルとして出力する出力手段と、
を備えることを特徴とするＩＰモデル生成装置。
【０１１６】
（付記１０）前記構成データ抽出手段によって抽出された構成データ内のＩＰの選択を受け付けるＩＰ選択手段と、
前記ＩＰ選択手段によって選択されたＩＰの派生品の選択を受け付ける派生品選択手段と、
前記ＩＰ選択手段によって選択されたＩＰを、前記派生品選択手段によって選択された派生品に変換する変換手段と、を備え、
前記ＩＰ抽出手段は、
前記変換手段によって変換された派生品のソースコードを、前記ＩＰデータベースから抽出することを特徴とする付記９に記載のＩＰモデル生成装置。
【０１１７】
（付記１１）データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むＩＰのソースコードを記憶するＩＰデータベースと、前記各ＩＰ間の接続関係を示す接続コードを記憶する接続属性データベースと、前記ＩＰと前記接続関係により定義されたＩＰモデルの構成をあらわす構成データを記憶するＩＰモデル構成データベースと、にアクセス可能なコンピュータが、
流用対象ＩＰモデルの選択を受け付ける選択工程と、
前記選択工程によって選択された流用対象ＩＰモデルに関する構成データを前記ＩＰモデル構成データベースから抽出する構成データ抽出工程と、
前記構成データ抽出工程によって抽出された構成データにより定義されているＩＰのソースコードを前記ＩＰデータベースから抽出するＩＰ抽出工程と、
前記構成データ抽出工程によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出工程と、
前記ＩＰ抽出工程によって抽出されたＩＰのソースコードおよび前記接続属性抽出工程によって抽出された接続コードを前記流用対象ＩＰモデルとして出力する出力工程と、
を実行することを特徴とするＩＰモデル生成方法。
【０１１８】
（付記１２）前記コンピュータが、
前記構成データ抽出工程によって抽出された構成データ内のＩＰの選択を受け付けるＩＰ選択工程と、
前記ＩＰ選択工程によって選択されたＩＰの派生品の選択を受け付ける派生品選択工程と、
前記ＩＰ選択工程によって選択されたＩＰを、前記派生品選択工程によって選択された派生品に変換する変換工程と、を実行し、
前記ＩＰ抽出工程は、
前記変換工程によって変換された派生品のソースコードを、前記ＩＰデータベースから抽出することを特徴とする付記１１に記載のＩＰモデル生成方法。
【符号の説明】
【０１１９】
５０１  入力インターフェース
５０２  ビヘイビア
５０３  ステート
５０４  レジスタ
５０５  出力インターフェース
３７００  ＩＰモデル生成装置
２９０１  ＩＰＤＢ
２９０２  接続属性ＤＢ
２９０３  ＩＰモデル構成ＤＢ
３７０１  ＩＰモデル選択部
３７０２  構成データ抽出部
３７０３  接続属性抽出部
３７０４  ＩＰ抽出部
３７０５  出力部
３７０６  ＩＰ選択部
３７０７  派生品リスト取得部
３７０８  派生品選択部
３７０９  変換部
【図１】
2010191920.tif 000003
【図２】
2010191920.tif 000004
【図３】
2010191920.tif 000005
【図４】
2010191920.tif 000006
【図５】
2010191920.tif 000007
【図６】
2010191920.tif 000008
【図７】
2010191920.tif 000009
【図８】
2010191920.tif 000010
【図９】
2010191920.tif 000011
【図１０】
2010191920.tif 000012
【図１１】
2010191920.tif 000013
【図１２】
2010191920.tif 000014
【図１３】
2010191920.tif 000015
【図１４】
2010191920.tif 000016
【図１５】
2010191920.tif 000017
【図１６】
2010191920.tif 000018
【図１７】
2010191920.tif 000019
【図１８】
2010191920.tif 000020
【図１９】
2010191920.tif 000021
【図２０】
2010191920.tif 000022
【図２１】
2010191920.tif 000023
【図２２】
2010191920.tif 000024
【図２３】
2010191920.tif 000025
【図２４】
2010191920.tif 000026
【図２５】
2010191920.tif 000027
【図２６】
2010191920.tif 000028
【図２７】
2010191920.tif 000029
【図２８】
2010191920.tif 000030
【図２９】
2010191920.tif 000031
【図３０】
2010191920.tif 000032
【図３１】
2010191920.tif 000033
【図３２】
2010191920.tif 000034
【図３３】
2010191920.tif 000035
【図３４】
2010191920.tif 000036
【図３５】
2010191920.tif 000037
【図３６】
2010191920.tif 000038
【図３７】
2010191920.tif 000039
【図３８】
2010191920.tif 000040