(57)【特許請求の範囲】
【請求項１】
設計対象によっておこなわれる処理内容をあらわす複数の処理情報と前記複数の処理情報間の関連をあらわす関連情報とが記述された仕様記述を入力する仕様記述入力手段と、
前記仕様記述入力手段によって入力された複数の処理情報ごとにノードを生成するノード生成手段と、
前記仕様記述入力手段によって入力された関連情報に基づいて、前記ノード生成手段によって生成された複数のノード間を連結するリンクを生成するリンク生成手段と、
前記仕様記述入力手段によって入力された仕様記述に基づいて、前記リンク生成手段によって生成されたリンクの重みを示すコストを設定するコスト設定手段と、
前記コスト設定手段によって設定されたコストが最小となるリンクを抽出するリンク抽出手段と、
前記リンク抽出手段によって抽出されたリンクに基づいて前記仕様記述を模式的に示す図表を分割することによって、複数の分割図表を生成する分割図表生成手段と、
前記分割図表生成手段によって生成された複数の分割図表ごとに、前記各分割図表内のノードに対応する処理情報およびリンクに対応する関連情報に基づく機能を実行する機能モジュールを生成する機能モジュール生成手段と、
を備えることを特徴とする設計支援装置。
【請求項２】
前記コスト設定手段は、
前記リンクに連結された一対のノードに対応する処理情報間の処理において共通に用いられる共通変数に基づいて、前記コストを設定することを特徴とする特許請求の範囲第１項に記載の設計支援装置。
【請求項３】
前記分割図表生成手段によって生成される複数の分割図表の生成数を制約する制約条件を入力する制約条件入力手段と、
前記分割図表生成手段によって生成された複数の分割図表が、前記制約条件入力手段によって入力された制約条件に合致するか否かを判定する判定手段と、
を備え、
前記機能モジュール生成手段は、前記判定手段によって判定された判定結果に基づいて、前記分割図表生成手段によって生成された分割図表ごとに前記機能モジュールを生成することを特徴とする請求の範囲第１項または第２項に記載の設計支援装置。
【請求項４】
前記分割図表生成手段によって生成される複数の分割図表内に含まれる前記ノードの数を制約する制約条件を入力する制約条件入力手段と、
前記分割図表生成手段によって生成された複数の分割図表が、前記制約条件入力手段によって入力された制約条件に合致するか否かを判定する判定手段と、
を備え、
前記機能モジュール生成手段は、前記判定手段によって判定された判定結果に基づいて、前記分割図表生成手段によって生成された分割図表ごとに前記機能モジュールを生成することを特徴とする請求の範囲第１項または第２項に記載の設計支援装置。
【請求項５】
任意の複数の処理情報を一の前記機能モジュールに含めるという内容を含む制約条件を入力する制約条件入力手段と、
前記分割図表生成手段によって生成された複数の分割図表が、前記制約条件入力手段によって入力された制約条件に合致するか否かを判定する判定手段と、
を備え、
前記機能モジュール生成手段は、前記判定手段によって判定された判定結果に基づいて、前記分割図表生成手段によって生成された分割図表ごとに前記機能モジュールを生成することを特徴とする請求の範囲第１項または第２項に記載の設計支援装置。
【請求項６】
任意の複数の処理情報を一の前記機能モジュールに含めないという内容を含む制約条件を入力する制約条件入力手段と、
前記分割図表生成手段によって生成された複数の分割図表が、前記制約条件入力手段によって入力された制約条件に合致するか否かを判定する判定手段と、
を備え、
前記機能モジュール生成手段は、前記判定手段によって判定された判定結果に基づいて、前記分割図表生成手段によって生成された分割図表ごとに前記機能モジュールを生成することを特徴とする請求の範囲第１項または第２項に記載の設計支援装置。
【請求項７】
前記判定手段によって前記制約条件に合致しないと判定された場合、前記図表の分割が不可能である旨を通知する通知手段を備えることを特徴とする請求の範囲第３項に記載の設計支援装置。
【請求項８】
前記機能モジュール生成手段によって生成された複数の機能モジュールに基づいて、前記複数の機能モジュール間を接続する通信路に関する仕様記述を生成する通信路仕様記述生成手段を備えたことを特徴とする請求の範囲第１項に記載の設計支援装置。
【請求項９】
設計対象によっておこなわれる処理内容をあらわす複数の処理情報と前記複数の処理情報間の関連をあらわす関連情報とが記述された仕様記述を入力する仕様記述入力手段と、前記仕様記述入力手段によって入力された複数の処理情報ごとにノードを生成するノード生成手段と、前記仕様記述入力手段によって入力された関連情報に基づいて、前記ノード生成手段によって生成された複数のノード間を連結するリンクを生成するリンク生成手段と、前記仕様記述入力手段によって入力された仕様記述に基づいて、前記リンク生成手段によって生成されたリンクの重みを示すコストを設定するコスト設定手段と、前記コスト設定手段によって設定されたコストが最小となるリンクを抽出するリンク抽出手段と、前記ノード生成手段によって生成されたノードおよび前記リンク生成手段によって生成されたリンクに基づいて前記仕様記述を模式的に示す図表を分割することによって、複数の分割図表を生成する分割図表生成手段と、前記分割図表生成手段によって生成された複数の分割図表ごとに、前記各分割図表内のノードに対応する処理情報およびリンクに対応する関連情報に基づく機能を実行する機能モジュールを生成する機能モジュール生成手段と、を備える設計支援装置がおこなう設計支援方法であって、
前記仕様記述入力手段により、前記仕様記述を入力する仕様記述入力工程と、
前記ノード生成手段により、前記仕様記述入力工程によって入力された複数の処理情報ごとにノードを生成するノード生成工程と、
前記リンク生成手段により、前記仕様記述入力工程によって入力された関連情報に基づいて、前記ノード生成工程によって生成された複数のノード間を連結するリンクを生成するリンク生成工程と、
前記コスト設定手段により、前記仕様記述入力工程によって入力された仕様記述に基づいて、前記リンク生成工程によって生成されたリンクの重みを示すコストを設定させるコスト設定工程と、
前記リンク抽出手段により、前記コスト設定工程によって設定されたコストが最小となるリンクを抽出させるリンク抽出工程と、
前記分割図表生成手段により、前記リンク抽出工程によって抽出されたリンクに基づいて前記仕様記述を模式的に示す図表を分割することによって、複数の分割図表を生成する分割図表生成工程と、
前記機能モジュール生成手段により、前記分割図表生成工程によって生成された複数の分割図表ごとに、前記各分割図表内のノードに対応する処理情報およびリンクに対応する関連情報に基づく機能を実行する機能モジュールを生成する機能モジュール生成工程と、
を含むことを特徴とする設計支援方法。
【請求項１０】
設計対象によっておこなわれる処理内容をあらわす複数の処理情報と前記複数の処理情報間の関連をあらわす関連情報とが記述された仕様記述を入力させる仕様記述入力工程と、
前記仕様記述入力工程によって入力された複数の処理情報ごとにノードを生成させるノード生成工程と、
前記仕様記述入力工程によって入力された関連情報に基づいて、前記ノード生成工程によって生成された複数のノード間を連結するリンクを生成させるリンク生成工程と、
前記仕様記述入力工程によって入力された仕様記述に基づいて、前記リンク生成工程によって生成されたリンクの重みを示すコストを設定させるコスト設定工程と、
前記コスト設定工程によって設定されたコストが最小となるリンクを抽出させるリンク抽出工程と、
前記リンク抽出工程によって抽出されたリンクに基づいて前記仕様記述を模式的に示す図表を分割することによって、複数の分割図表を生成させる分割図表生成工程と、
前記分割図表生成工程によって生成された複数の分割図表ごとに、前記各分割図表内のノードに対応する処理情報およびリンクに対応する関連情報に基づく機能を実行する機能モジュールを生成する機能モジュール生成工程と、
をコンピュータに実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩなどの設計対象についての設計を支援する設計支援装置、設計支援方法および設計支援プログラムに関する。
【背景技術】
【０００２】
近年、ＬＳＩの設計の大規模化につれて、設計対象システムの機能が急速に複雑になっており、以前の単機能なハードウェア回路から、多機能、複合機能な回路にわたって、ＬＳＩによって実現されている。このため、ＬＳＩの設計はＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）から上位の動作レベルにシフトしつつあり、ＬＳＩの設計もソフトウェアの設計と同じように、分析フェーズ、設計フェーズ、実装フェーズといった、いくつかのフェーズに分けておこなうことが一般的である。
【０００３】
この分析フェーズでは、設計対象システムをブラックボックスとして扱い、実装を考慮しない要求分析をおこなう。また、分析フェーズは「何を作るのか」を中心に分析するために、設計対象システムが処理するデータオブジェクトおよび各データオブジェクトに付属した操作や属性が、設計対象システムについての基本構成要素となる。
【０００４】
また、設計者は、データオブジェクトの処理フローをモデリングすることによって、設計対象システムのイベントフローの分析をおこなうことができる。分析フェーズで得られた最終成果物を、ここでは「要求仕様記述」と呼ぶ。設計フェーズでは、設計者が要求仕様記述に従って並列、並行の機能モジュールに分割をおこなう。
【０００５】
分析フェーズでは実装を意識していないために、データに付属する操作や属性は、必ず同じ機能モジュールに分割されているとは限らない。また、このような機能モジュールの分割は、設計者の長年の経験や勘によっておこなわれているのが現状である。ＬＳＩを構成する論理回路を複数のモジュールに分割して階層化設計をおこなう設計方法については、たとえば、下記特許文献１に開示されている。
【０００６】
このような従来の機能モジュールの分割について具体的に説明する。第２０図は、従来の設計対象システムのハードウェア構成を示すブロック図である。第２０図において、設計対象システム２０００は、その一例として、プロセッサ２００１と、ＲＡＭなどのメインメモリ２００２と、その他周辺のハードウェアモジュール２０１１〜２０１４と、これらを接続するバス２００３と、から構成されており、この設計対象システム２０００における複雑な各種機能を実現する。
【０００７】
従来の機能モジュールの分割では、設計者の判断によって、意味のある機能単位である機能モジュールにマッピングする。このマッピングによって、例えば、暗号化データ、ＪＰＥＣ  Ｃｏｄｅｃデータ、ＭＰＥＧ  Ｃｏｄｅｃデータ、またはその他処理された後のデータを、バス２００３に接続しているメインメモリ２００２に格納して、次のモジュールが処理し始めるような構造にすることが一般的である。
【０００８】
ここで、例えば第２０図に示したプロセッサ２００１には、ソフトウェア機能Ｆｕｎｃ＿ＳＷ（）がマッピングされ、このソフトウェア機能Ｆｕｎｃ＿ＳＷ（）には、サブ機能ｆ１（）、ｆ２（）、ｆ３（）が含まれていることとする。一方、ハードウェアモジュール２０１１には、ハードウェア機能Ｆｕｎｃ＿ＨＷ１（）がマッピングされ、このハードウェア機能Ｆｕｎｃ＿ＨＷ１（）には、サブ機能ｇ１（）、ｇ２（）、ｇ３（）が含まれていることとする。そして、ハードウェア機能Ｆｕｎｃ＿ＨＷ１（）は、ソフトウェア機能Ｆｕｎｃ＿ＳＷ（）のサブ機能ｆ３（）を利用する。具体的には、ハードウェア機能Ｆｕｎｃ＿ＨＷ１（）のサブ機能ｇ１（）が書き出したデータを、ソフトウェア機能Ｆｕｎｃ＿ＳＷ（）のサブ機能ｆ３（）が読み込んで、所望の処理をおこなう。
【０００９】
このような場合、ソフトウェア機能Ｆｕｎｃ＿ＳＷ（）のサブ機能ｆ３（）を実行すると、まず、ハードウェア機能Ｆｕｎｃ＿ＨＷ１（）のサブ機能ｇ１（）によって、ハードモジュール２０１１からバスを介してメインメモリ２００２にデータを書き出す。そして
、メインメモリ２００２に書き出されたデータを、バス２００３を介してプロセッサ２００１に読み込ませる。そして、ソフトウェア機能Ｆｕｎｃ＿ＳＷ（）のサブ機能ｆ３（）は、読み込んだデータを処理して、再度メインメモリ２００２に、バス２００３を介して書き出し、ハードウェア機能Ｆｕｎｃ＿ＨＷ１（）のサブ機能ｇ１（）は、メインメモリ２００２に書き出されたデータを、バス２００３を介して読み込む。
【００１０】
また、あらかじめソフトウェア機能Ｆｕｎｃ＿ＳＷ（）のサブ機能ｆ３（）をマッピングしておくことも考えられる。第２１図は、第２０図に示した従来の設計対象システムのハードウェア構成の他の例を示すブロック図である。第２０図に示した構成と同一構成には同一符号を付し、その説明を省略する。第２１図において、設計対象システム２０００は、ハードウェアモジュール２０１１に接続されたローカルメモリ２００４を備えている。第２０図に示したソフトウェア機能Ｆｕｎｃ＿ＳＷ（）のサブ機能ｆ３（）は、ハードウェアモジュール２０１１にマッピングされている。これにより、サブ機能ｆ３（）を実行する場合、メインメモリ２００２およびバス２００３を経由してデータを転送する必要はなく、ハードウェアモジュール２０１１とローカルメモリ２００４間でデータを転送することができる。
【特許文献１】特開２００３―０１６１２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した第２０図に示した従来のモジュール分割によって設計された設計対象システム２０００では、メインメモリ２００２およびバス２００３を経由しているため、データを大量に転送しなければない。したがって、プロセッサ２００１とハードウェアモジュール２０１１間の通信コストが膨大となってオーバーヘッドが生じ、設計対象システム２０００のパフォーマンスが低下するという問題があった。
【００１２】
また、第２１図に示した従来のモジュール分割によって設計された設計対象システム２０００では、ソフトウェア機能Ｆｕｎｃ＿ＳＷ（）のサブ機能ｆ３（）は、ソフトウェア機能Ｆｕｎｃ＿ＳＷ（）の中にある多数のアルゴリズムのうちの一つに過ぎないため、設計者は、ハードウェア機能Ｆｕｎｃ＿ＨＷ１（）のサブ機能ｇ１（）の処理に利用されることを発見することができない。したがって、設計者の経験によってモジュール分割をおこなうと、第２１図に示したような最適なマッピングにすることは非常に困難であるという問題があった。
【００１３】
このように、上述した従来のモジュール分割では、必ずしも最適な分割結果になるとは限らないため、設計対象システム２０００の最終的な性能要件が、面積や消費電力などの顧客要求を満足しない場合があり、ＬＳＩ設計の信頼性および品質の低下を招くという問題があった。
【００１４】
また設計現場において、ＬＳＩ設計の信頼性および品質の低下を防止するため、一部機能の削除や手戻り設計が頻繁におこなわれると、設計作業効率が低下し、ＬＳＩの設計期間が長期化するという問題があった。
【００１５】
本発明は、上記問題点に鑑みてなされたものであって、設計対象における設計作業の支援を容易かつ効率的におこなうことができる設計支援装置、設計支援方法、設計支援プログラムおよび該プログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するため、本発明の設計支援装置、設計支援方法および設計支援プログラムは、設計対象によっておこなわれる処理内容をあらわす複数の処理情報と前記複数の処理情報間の関連をあらわす関連情報とが記述された仕様記述を入力し、入力された複数の処理情報ごとにノードを生成し、関連情報に基づいて、前記ノード生成手段によって生成された複数のノード間を連結するリンクを生成し、生成されたノードおよび前記リンク生成手段によって生成されたリンクに基づいて前記仕様記述を模式的に示した図表を分割することによって、複数の分割図表を生成し、生成された複数の分割図表ごとに、前記各分割図表内のノードに対応する処理情報およびリンクに対応する関連情報に基づく機能を実行する機能モジュールを生成することを特徴とする。
【００１７】
この発明によれば、要求されている仕様記述を、ノードとリンクによって構成される図表に変換するため、仕様記述によって記述された設計対象のモジュール分割を、図表の分割に置換することができ、モジュール分割の自動化を図ることができる。
【００１８】
また、入力された仕様記述に基づいて、前記リンク生成手段によって生成されたリンクの重みを示すコストを設定し、設定されたコストが最小となるリンクを抽出し、抽出されたリンクに基づいて、前記複数の分割図表を生成することとしてもよい。この発明によれば、モジュール間のオーバーヘッドを考慮したモジュール分割を図ることができる。
【００１９】
また、リンクに連結された一対のノードに対応する処理情報間の処理において共通に用いられる共通変数に基づいて、前記コストを設定することとしてもよい。また、仕様記述に記述されている前記処理情報の実行回数を算出し、算出された前記処理情報の実行回数に基づいて、前記コストを算出することとしてもよい。この発明によれば、モジュール間のオーバーヘッドを考慮したモジュール分割をより効果的におこなうことができ、設計対象のパフォーマンスの向上を図ることができる。
【００２０】
また、生成される複数の分割図表の生成数を制約する制約条件、生成される複数の分割図表内に含まれる前記ノードの数を制約する制約条件、任意の複数の処理情報を一の前記機能モジュールに含めるという内容を含む制約条件または任意の複数の処理情報を一の前記分割仕様記述に含めないという内容を含む制約条件を入力し、複数の分割図表が、入力された制約条件に合致するか否かを判定し、判定された判定結果に基づいて、生成された分割図表ごとに前記機能モジュールを生成することとしてもよい。この発明によれば、設計対象の性能に応じたモジュール分割をおこなうことができる。
【００２１】
また、前記制約条件に合致しないと判定された場合、前記図表の分割が不可能である旨を通知することとしてもよい。この発明によれば、モジュール間のオーバーヘッドが発生するモジュール分割を防止することができる。
【００２２】
また、生成された複数の機能モジュールに基づいて、前記複数の機能モジュール間を接続する通信路に関する仕様記述を生成することとしてもよい。この発明によれば、設計作業の効率化を図ることができる。
【発明の効果】
【００２３】
本発明にかかる設計支援装置、設計支援方法および設計支援プログラムによれば、要求されている仕様記述を、ノードとリンクによって構成されるグラフに変換するため、仕様記述によって記述された設計対象のモジュール分割を、グラフ分割に置換することができ、モジュール分割の自動化を図ることができるという効果を奏する。これにより、設計対象における設計作業の支援を容易かつ効率的におこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２４】
以下に、この発明の設計支援装置、設計支援方法および設計支援プログラムの実施形態について図面を参照しつつ詳細に説明する。
【００２５】
（実施の形態）
（設計支援装置のハードウェア構成）
まず、この発明の実施の形態にかかる設計支援装置のハードウェア構成について説明する。第１図は、この発明の実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。第１図において、設計支援装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２６】
ここで、ＣＰＵ１０１は、設計支援装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２７】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを設計支援装置に読み取らせたりする。
【００２８】
着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２９】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワークに接続され、このネットワークを介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３０】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３１】
スキャナ１１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３２】
（仕様記述の内容）
つぎに、この発明の実施の形態にかかる設計支援装置に用いられる仕様記述について説明する。ここで仕様記述とは、ＬＳＩの設計の分析フェーズにおいて得られる、ＬＳＩなどの設計対象の実装を考慮しない要求分析の分析結果である。仕様記述は、所定のコンピュータが認識可能な言語によって記述されている。仕様記述は、設計対象によっておこなわれる処理内容をあらわす複数の処理情報と、この複数の処理情報間の関連をあらわす関連情報と、が記述されたものである。この仕様記述の具体例を第２図および第３図を用いて説明する。
【００３３】
第２図は、Ｃ＋＋言語によって記述された仕様記述の一例を示す説明図であり、第３図は、第２図と同一内容の仕様記述について、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）およびＯＣＬ（Ｏｂｊｅｃｔ  Ｃｏｎｓｔｒａｉｎｔ  Ｌａｎｇｕａｇｅ、オブジェクト制約記述言語）によって記述された例を示す説明図である。
【００３４】
第２図に示した仕様記述２００は、メイン関数２０１とサブルーチン２０２を有する。この仕様記述２００では、データオブジェクトの集合をクラス（Ｃｌａｓｓ１およびＣｌａｓｓ２）によって表現している。このクラスには複数の処理情報としての属性および操作が存在する。例えば、Ｃｌａｓｓ１には整数型(ｉｎｔ)の属性ｑ、操作Ｏ１、操作Ｏ２および操作Ｏ３が存在する。操作Ｏ１〜操作Ｏ３は、Ｃｌａｓｓ１のオブジェクトであるｏｂｊｅｃｔ１を構成する。Ｃｌａｓｓ２には整数型の属性ｍと操作Ｏ４が存在する。操作Ｏ４は、Ｃｌａｓｓ２のオブジェクトであるｏｂｊｅｃｔ２を構成する。また、第２図の右側に示したメイン関数２０１では、クラスのインスタンス、すなわちデータオブジェクトが作成されており、その呼び出し順番（相互作用）が記述されている。
【００３５】
同様に、第３図に示した仕様記述３００では、Ｃｌａｓｓ１およびＣｌａｓｓ２が、それぞれＵＭＬのクラス図３０１、３０２を使って表現されている。第２図に示したメイン関数２０１の部分は、第３図左下のシーケンス図３０３を用いてあらわされている。ただし、ＵＭＬの図３０１〜３０３では、操作の中身をモデリングすることが困難なため、第３図の右側に示すように、同じ仕様記述言語のＯＣＬ３０４を用いて各クラスの操作の事後条件（ｐｏｓｔ  ｃｏｎｄｉｔｉｏｎ）を定義することができる。なお、この複数の処理情報間の関連をあらわす関連情報の具体例については、後述する。
【００３６】
（設計支援装置の機能的構成）
つぎに、この発明の実施の形態にかかる設計支援装置の機能的構成について説明する。第４図は、この発明の実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。第４図において、設計支援装置４００は、仕様記述入力部４０１と、ノード生成部４０２と、リンク生成部４０３と、コスト設定部４０４と、分割図表生成部４０５と、機能モジュール生成部４０６と、通信路仕様記述生成部４０７と、制約条件入力部４０８と、判定部４０９と、通知部４１０と、を含む構成となっている。
【００３７】
仕様記述入力部４０１は、ＬＳＩなどの設計対象によっておこなわれる処理内容をあらわす複数の処理情報と、この複数の処理情報間の関連をあらわす関連情報と、が記述された仕様記述を入力する。具体的は、上述した第２図に示したＣ＋＋言語によって記述された仕様記述２００と、第３図に示したＵＭＬの図３０１〜３０３およびＯＣＬ３０４によって記述された仕様記述３００とを入力する。
【００３８】
ノード生成部４０２は、仕様記述入力部４０１によって入力された複数の処理情報ごとに、ノードを生成する。第５図は、仕様記述からノードを生成する例を示す説明図である。第５図において、ノード生成部４０２は、第３図に示したクラス図３０１、３０２のＣｌａｓｓ１およびＣｌａｓｓ２に含まれている操作Ｏ１〜操作Ｏ４を抽出し、抽出された操作Ｏ１〜操作Ｏ４をノードＶ１〜Ｖ４に変換する。これにより、ノードＶ１〜Ｖ４を生成することができる。
【００３９】
リンク生成部４０３は、仕様記述入力部４０１によって入力された関連情報に基づいて、ノード生成部４０２によって生成された複数のノード間を連結するリンクを生成する。第６図は、第５図に示したノードおよびリンクによって模式的にあらわした図表の一例を示す説明図である。また、関連情報とは、上述したように、複数の処理情報間の関連をあらわす情報であり、たとえば、第２図および第３図に示されているデータオブジェクトの各種パラメータの関連性の有無や、パラメータの渡しから得られる操作Ｏ１〜操作Ｏ４間の関連性の有無によってあらわすことができる。
【００４０】
具体的には、第３図に示したＯＣＬ３０４を参照すると、操作Ｏ１および操作Ｏ２では、共通な属性ｑにアクセスしており、操作Ｏ１と操作Ｏ２との間に関連性があることがわかる。また、ＵＭＬのシーケンス図３０３を参照すると、Ｃｌａｓｓ１の操作Ｏ２から得られる返り値ｔと、操作Ｏ３から得られる返り値ｓとが、Ｃｌａｓｓ２の操作Ｏ４に渡されている。したがって、操作Ｏ２と操作Ｏ４との間に関連性があることがわかり、同様に、操作Ｏ３と操作Ｏ４との間に関連性があることがわかる。
【００４１】
このように、リンク生成部４０３は、操作Ｏ１と操作Ｏ２との間に関連性があることにより、第６図に示すように、操作Ｏ１から生成されたノードＶ１と操作Ｏ２から生成されたノードＶ２との間を連結するリンクＥ３を生成することができる。また、リンク生成部４０３は、操作Ｏ２と操作Ｏ４との間に関連性があることにより、操作Ｏ２から生成されたノードＶ２と操作Ｏ４から生成されたノードＶ４との間を連結するリンクＥ２を生成することができる。
【００４２】
さらに、リンク生成部４０３は、操作Ｏ３と操作Ｏ４との間に関連性があることにより、操作Ｏ３から生成されたノードＶ３と操作Ｏ４から生成されたノードＶ４との間を連結するリンクＥ１を生成することができる。そして、各ノードＶ１〜ノードＶ４間をリンクＥ１〜リンクＥ３によって連結することにより、図表の一例としてのグラフＧが生成される。
【００４３】
コスト設定部４０４は、仕様記述入力部４０１によって入力された仕様記述に基づいて、リンク生成部４０３によって生成されたリンクの重みを示すコストを設定する。第７図〜第９図は、第６図に示したグラフＧのリンクＥ１〜Ｅ３にコストを設定した例を示す説明図である。このコストの設定例としては、たとえば、第７図において、すべてのリンクＥ１〜Ｅ３のコストをＷ（Ｅ）＝１に設定することができる。これにより、任意のノード間にリンクが連結されているか否かのみを重視することができる。
【００４４】
また、コスト設定部４０４は、リンクに連結された一対のノードに対応する処理情報間の処理において共通に用いられる共通変数に基づいて、コストを設定することもできる。たとえば、コスト設定部４０４は、この共通変数の数に基づいて、コストを設定することもできる。第２図および第３図において、一対の処理情報である操作Ｏ１と操作Ｏ２との間の処理において共通に用いられる共通変数はｑのみである。したがって、第８図において、操作Ｏ１および操作Ｏ２に対応するノードＶ１およびノードＶ２を連結するリンクＥ３の重みＷ（Ｅ３）は、Ｗ（Ｅ３）＝１に設定することができる。
【００４５】
また、操作Ｏ２と操作Ｏ４との間の処理において共通に用いられる共通変数はｔのみである。したがって、第８図において、操作Ｏ２および操作Ｏ４に対応するノードＶ２およびノードＶ４を連結するリンクＥ２の重みＷ（Ｅ２）は、Ｗ（Ｅ２）＝１に設定することができる。
【００４６】
さらに、操作Ｏ３と操作Ｏ４との間の処理において共通に用いられる共通変数は、ｓとｇの２つである。したがって、第８図において、操作Ｏ３および操作Ｏ４に対応するノードＶ３およびノードＶ４を連結するリンクＥ１の重みＷ（Ｅ１）は、Ｗ（Ｅ１）＝２に設定することができる。
【００４７】
また、コスト設定部４０４は、リンクに連結された一対のノードに対応する処理情報間の処理において共通に用いられる共通変数のビット長に基づいてコストを設定することもできる。
【００４８】
たとえば、操作Ｏ１と操作Ｏ２との間の処理において共通に用いられる共通変数ｑは整数型（ｉｎｔ）であるので、そのビット長は３２ビットとなる。したがって、第９図において、操作Ｏ１および操作Ｏ２に対応するノードＶ１およびノードＶ２を連結するリンクＥ３の重みＷ（Ｅ３）を、Ｗ（Ｅ３）＝３２に設定することができる。
【００４９】
また、操作Ｏ２と操作Ｏ４との間の処理において共通に用いられる共通変数ｔも整数型であるので、そのビット長は３２ビットとなる。したがって、第９図において、操作Ｏ２および操作Ｏ４に対応するノードＶ２およびノードＶ４を連結するリンクＥ２の重みＷ（Ｅ２）を、Ｗ（Ｅ２）＝３２に設定することができる。
【００５０】
さらに、操作Ｏ３と操作Ｏ４との間の処理において共通に用いられる共通変数は２つ存在する。その一つであるパラメータｑは整数型（ｉｎｔ）であるので、そのビット長は３２ビットとなる。他方のパラメータｇは、論理型（ｂｏｏｌ）であるので、そのビット数は１ビットとなる。したがって、第９図において、操作Ｏ３および操作Ｏ４に対応するノードＶ３およびノードＶ４を連結するリンクＥ１の重みＷ（Ｅ１）を、Ｗ（Ｅ１）＝３２＋１＝３３に設定することができる。
【００５１】
分割図表生成部４０５は、ノード生成部４０２によって生成されたノードＶ１〜Ｖ４およびリンク生成部４０３によって生成されたリンクＥ１〜Ｅ３に基づいて仕様記述を模式的に示す図表としてのグラフＧを分割することによって、複数の分割図表としてのサブグラフを生成する。
【００５２】
分割図表生成部４０５は、リンク抽出部４１１を備える。リンク抽出部４１１は、コスト設定部４０４によって設定されたコストが最小となるリンクを抽出する。たとえば、第７図に示したグラフＧからは、すべてのリンクＥ１〜Ｅ３を抽出する。また、第８図に示したグラフＧからは、リンクＥ２、Ｅ３を抽出する。さらに、第９図に示したグラフＧからは、すべてのリンクＥ２、Ｅ３を抽出する。このリンクの抽出は、具体的には、後述するＭｉｎ−Ｃｕｔのアルゴリズムによっておこなわれる。
【００５３】
この分割図表生成部４０５は、リンク抽出部４１１によって抽出されたリンクに基づいて、複数の分割図表としてのサブグラフを生成することができる。この分割処理では、Ｍｉｎ−Ｃｕｔのアルゴリズムを導入することができる。
【００５４】
ここで、Ｍｉｎ−Ｃｕｔのアルゴリズムを導入して分割処理をおこなう例について説明する。Ｍｉｎ−Ｃｕｔとは、無向グラフＧ＝（Ｖ, Ｅ）が与えられた場合、グラフＧのノードの集合Ｖを、２つの部分集合ＳとＴに分割することである。このＭｉｎ−Ｃｕｔは、ノードＶの部分集合ＳとＴとの間において、重み付けられているコストが最小となるリンクをカットすることができる。これにより、Ｏ（２ｎ・ｌｏｇｎ）時間で解くことができる。ただし、ｎはノード数である。
【００５５】
第１０図は、第８図において示したグラフから得られた分割解を示す説明図である。第１０図において、第８図に示したグラフＧは、リンクＥ１〜リンクＥ３のコストがパラメータの数によって設定されているグラフの分割例を示している。Ｍｉｎ―Ｃｕｔのアルゴリズムを導入すると、コストが最小となるリンクＥ２またはリンクＥ３をカットするため、分割解が２つ存在することとなる。
【００５６】
分割解１ではリンクＥ２をカットしているため、サブグラフＧ１はノードＶ３、ノードＶ４およびリンクＥ１によって構成され、サブグラフＧ２はノードＶ１、ノードＶ２およびリンクＥ３によって構成される。一方、分割解２ではリンクＥ３をカットしているため、サブグラフＧ１はノードＶ２、ノードＶ３、ノードＶ４、リンクＥ１およびリンクＥ２によって構成され、サブグラフＧ２はノードＶ１によって構成される。この分割解１および分割解２はともに、サブグラフＧ１、Ｇ２間を連結するリンクのコストが最小となっており、いずれも正解となる。
【００５７】
機能モジュール生成部４０６は、分割図表生成部４０５によって生成された複数の分割図表ごとに、各分割図表内のノードに対応する処理情報およびリンクに対応する関連情報に基づく機能を実行する機能モジュールを生成する。第１１図は、第１０図に示した分割解１のサブグラフＧ１、Ｇ２から、それぞれ機能モジュールを生成する例を示す説明図である。
【００５８】
第１１図において、サブグラフＧ１は、ＵＭＬのクラス図１１０１によってあらわされる機能モジュールＭｏｄｕｌｅ１にまとめ上げられ、サブグラフＧ２は、ＵＭＬのクラス図１１０２によってあらわされる機能モジュールＭｏｄｕｌｅ２にまとめ上げられる。ここで、このクラス図１１０１，１１０２において、＜＜ｍｏｄｕｌｅ＞＞ステレオタイプは該当クラスがモジュールであることを示している。また、＜＜ｐｒｏｃｅｓｓ＞＞ステレオタイプは、モジュールの操作がプロセスであることを示している。さらに、＜＜ｐｏｒｔ＞＞ステレオタイプは、モジュール間の通信をするためのポートを示している。
【００５９】
ここで、機能モジュールＭｏｄｕｌｅ１については、サブグラフＧ１にノードＶ３、Ｖ４が含まれるので、Ｃｌａｓｓ１の操作Ｏ３およびＣｌａｓｓ２の操作Ｏ４が、機能モジュールＭｏｄｕｌｅ１のプロセス＜＜ｐｒｏｃｅｓｓ＞＞のｅｎｔｒｙ（）にまとめ上げられる。
【００６０】
同様に、機能モジュールＭｏｄｕｌｅ２については、サブグラフＧ２にノードＶ１、Ｖ２が含まれるので、Ｃｌａｓｓ１の操作Ｏ１および操作Ｏ２が、Ｍｏｄｕｌｅ２のプロセス＜＜ｐｒｏｃｅｓｓ＞＞のｅｎｔｒｙ（）にまとめ上げられる。
【００６１】
また、第２図および第３図に示した仕様記述２００，３００から、機能モジュールＭｏｄｕｌｅ１と機能モジュールＭｏｄｕｌｅ２との間を通信するパラメータが２つあることから、機能モジュールＭｏｄｕｌｅ１と機能モジュールＭｏｄｕｌｅ２との通信をおこなうためのポートを決定することができる。ここでは、機能モジュールＭｏｄｕｌｅ１にはｄａｔａ＿ｉｎ１およびｄａｔａ＿ｉｎ２が割り当てられる。それぞれのデータ型はｉｎ＜ｉｎｔ＞とｉｎ＜ｂｏｏｌ＞とによって表現する。ｉｎ＜型＞は、入力であることを示している。
【００６２】
機能モジュールＭｏｄｕｌｅ２は、ｄａｔａ＿ｏｕｔ１およびｄａｔａ＿ｏｕｔ２のポートを備えている。それぞれのデータ型は、ｏｕｔ＜ｉｎｔ＞、ｏｕｔ＜ｂｏｏｌ＞と表現する。ｏｕｔ＜型＞は出力であることを表現している。
【００６３】
第１２図は、第１１図と同一内容を、ＳｙｓｔｅｍＣ１２０１、１２０２によって表現した例を示す説明図である。第１２図において、ＳＣ＿ＭＯＤＵＬＥ（）マクロは、機能モジュールを定義している。また、ＳＣ＿ＣＴＯＲは、処理化するための部分を表現している。ＳＣ＿ＭＥＴＨＯＤおよびＳＣ＿ＴＨＲＥＡＤは、プロセスであることを示している。Ｍｏｄｕｌｅ２は、入力のポートが無いためにＳＣ＿ＴＨＲＥＡＤとする。
【００６４】
通信路仕様記述生成部４０７は、機能モジュール生成部４０６によって生成された複数の機能モジュールに基づいて、複数の機能モジュール間を接続する通信路に関する仕様記述を生成する。第１３図は、第１２図に示した機能モジュール間において生成された通信路に関する仕様記述を示す説明図である。第１３図において、機能モジュールの生成によって機能モジュールＭｏｄｕｌｅ１および機能モジュールＭｏｄｕｌｅ２のポートが明らかになると、機能モジュール間の通信路に関する仕様記述とトップモジュールを生成することも可能となる。また、Ｍｏｄｕｌｅ１およびＭｏｄｕｌｅ２を集約した＜＜ｍｏｄｕｌｅ＞＞というステレオタイプであらわされるクラス図１１０１（ＴＯＰ）を生成することができる。さらに、通信路＜＜ｃｈａｎｎｅｌ＞＞というステレオタイプであらわされるクラス１３０２（ｓｉｇｎａｌ）を生成することができる。これにより、設計の完成度を高めることができる。
【００６５】
制約条件入力部４０８は、分割図表生成部４０５によって生成される複数の分割図表の生成数を制約する制約条件を入力する。この制約条件の例としては、たとえば、複数の分割図表の生成数を、所定数と同数、所定数以下、所定数以上、または所定数以上所定数以下とすることができる。
【００６６】
また、分割図表生成部４０５によって生成される複数の分割図表内に含まれるノードの数を制約する制約条件を入力することができる。この制約条件の例としては、たとえば、分割図表内に含まれるノードの数を、所定数と同数、所定数以下、所定数以上、または所定数以上所定数以下とすることができる。
【００６７】
さらに、任意の複数の処理情報を一の機能モジュールに含めるという内容を含む制約条件を入力したり、任意の複数の処理情報を一の機能モジュールに含めないという内容を含む制約条件を入力することができる。たとえば、操作Ｏ１および操作Ｏ２を同じ機能モジュールに含めるという制約条件を入力したり、操作Ｏ２および操作Ｏ３を同じ機能モジュールに含めないという制約条件を入力したりすることができる。
【００６８】
判定部４０９は、分割図表生成部４０５によって生成された分割図表が、制約条件入力部４０８によって入力された制約条件に合致するか否かを判定する。この場合、分割図表生成部４０５は、判定部４０９によって判定された判定結果に基づいて、図表としてのグラフを複数の分割図表としてのサブグラフに分割する。
【００６９】
ここで、制約条件にしたがってサブグラフに分割する例について説明する。第１４図は、制約条件にしたがってサブグラフに分割する例を示す説明図である。第１４図において、第１０図に示した２つの分割解のうち一つの分割解１を例示している。制約条件を、サブグラフの数を２、サブグラフに含まれるノードの数を２とすると、第１０図に示した分割解２は除外され、分割解１のみが正解となる。
【００７０】
通知部４１０は、判定部４０９によって制約条件に合致しないと判定された場合、分割図表への分割が不可能である旨を通知する。具体的には、たとえば、第１図に示したディスプレイ１０８に、その旨を表示することによって通知する。
【００７１】
また、第４図に示した仕様記述入力部４０１、ノード生成部４０２、リンク生成部４０３、コスト設定部４０４、分割図表生成部４０５、機能モジュール生成部４０６、通信路仕様記述生成部４０７、制約条件入力部４０８、判定部４０９、通知部４１０およびリンク抽出部４１１は、具体的には、第１図に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などに記録されたプログラムをＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００７２】
（設計支援装置の設計支援処理手順）
つぎに、この発明の実施の形態にかかる設計支援装置４００の設計支援処理手順について説明する。第１５図は、この発明の実施の形態にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【００７３】
第１５図に示すように、まず、第２図および第３図に示した仕様記述２００、３００が入力された場合（ステップＳ１５０１：Ｙｅｓ）、仕様記述２００、３００に記述されている処理情報からノードを生成する（ステップＳ１５０２）。また、仕様記述に記述されている関連情報からリンクとそのコストを生成する（ステップＳ１５０３、ステップＳ１５０４）。これにより、ノードＶとリンクＥによって構成されるグラフＧが生成される。
【００７４】
そして、Ｍｉｎ−ｃｕｔのアルゴリズムによって、グラフＧからコストが最小となるリンクを抽出し（ステップＳ１５０５）、抽出したリンクをカットすることによって、グラフＧを分割する（ステップＳ１５０６）。制約条件がない場合（ステップＳ１５０７：Ｎｏ）、分割解からサブグラフを生成する（ステップＳ１５１０）。一方、制約条件がある場合（ステップＳ１５０７：Ｙｅｓ）、分割解の中に制約条件に合致する分割解があるか否かを判定する（ステップＳ１５０８）。合致する分割解がない場合（ステップＳ１５０８：Ｎｏ）、グラフＧの分割が不可能である旨を表示する（ステップＳ１５０９）。
【００７５】
一方、合致する分割解がある場合（ステップＳ１５０８：Ｙｅｓ）、その分割解からサブグラフを出力する（ステップＳ１５１０）。そして、出力されたサブグラフから機能モジュールを生成し（ステップＳ１５１１）、機能モジュール間の通信路に関する仕様記述を生成する（ステップＳ１５１２）。
【００７６】
この設計支援装置４００によれば、機能モジュールの最適な分割結果を自動的に取得することができるため、ＬＳＩ設計者の経験年数や熟練度にかかわらず、最適なＬＳＩの設計をおこなうことができる。
【００７７】
また、上述した実施の形態では、ノード生成部４０２は、第３図に示したクラス図のＣｌａｓｓ１およびＣｌａｓｓ２に含まれている操作Ｏ１〜Ｏ４を抽出し、抽出された操作Ｏ１〜Ｏ４をノードＶ１〜Ｖ４に変換することとしたが、第１６図に示すように、仕様記述入力部４０１によって入力された複数の処理情報として、Ｃｌａｓｓ１およびＣｌａｓｓ２に含まれている属性ｑおよび属性ｍを抽出し、ノードＶ５およびノードＶ６に変換することにより、ノードＶ５およびノードＶ６を生成することとしてもよい。これにより、属性単位でサブグループに分割することができる。
【００７８】
また、上述したコスト設定部４０４は、すべて静的な解析によるコスト設定となるが、第２図に示したＣ＋＋言語によって記述された仕様記述２００そのものを実行することによって動的な解析によってコスト設定をおこなうことができる。これにより、実行可能な仕様記述２００の実行プロファイルを取得して、外部入力に依存する操作の呼び出し回数を得ることができる。第１７図は、この場合のコスト設定部の機能的構成を示すブロック図である。
【００７９】
第１７図において、コスト設定部４０４は、変換部１７０１と、プロファイル部１７０２と、実行回数算出部１７０３と、コスト算出部１７０４とを備えている。変換部１７０１は、仕様記述入力部４０１によって入力された仕様記述を、プログラム言語によって実行可能なモデルに変換する。具体的には、Ｃ＋＋言語によって記述された仕様記述２００を、ｇｃｃ−ｐｇなどのコンパイラによって、実行可能なモデルにコンパイルする。プロファイル部１７０２は、フリーのコマンドｇｐｒｏｆなどのプロファイラによって、実行可能なモデルをプロファイルする。
【００８０】
実行回数算出部１７０３は、プロファイル部１７０２によってプロファイルされたプロファイル結果から、ノードＶによってあらわされる処理情報（たとえば、操作Ｏ１〜操作Ｏ４）の実行回数を算出する。また、コスト算出部１７０４は、リンクＥによって連結される一対のノードＶによってあらわされる処理情報の実行回数を加算することによりコストを算出する。
【００８１】
つぎに、この場合のコスト設定処理手順について説明する。第１８図は、コスト設定処理手順の一例を示すフローチャートである。第１８図において、まず、Ｃ＋＋言語によって記述された仕様記述２００が入力された場合（ステップＳ１８０１：Ｙｅｓ）、入力された仕様記述２００を、ｇｃｃ−ｐｇなどのコンパイラによって、実行可能なモデルにコンパイルする（ステップＳ１８０２）。ここでは、プロファイラとして、フリーのコマンドｇｐｒｏｆを利用するため、コンパイルの際に―ｐｇを付加する。「―ｐｇ」は、ｇｐｒｏｆを利用するためのフラグである。
【００８２】
そして、コンパイルされた実行可能モデルに、テストケースを流すことによって実行し（ステップＳ１８０３）、プロファイルデータを生成する（ステップＳ１８０４）。そして、生成されたプロファイルデータから、操作Ｏ１〜操作Ｏ４の実行回数を算出する（ステップＳ１８０５）。これにより、各ノードＶ１〜ノードＶ４のコストＷ（Ｖ１）〜Ｗ（Ｖ４）を得ることができる。そして、各リンクのコストを、各リンクＥ１〜Ｅ３によって連結される一対のノードＶのコストを合計することによって、リンクのコストを算出する（ステップＳ１８０６）。この算出したコストによって、リンクのコストを設定することができる。
【００８３】
つぎに、このコスト設定処理によってコストが設定されたグラフについて説明する。第１９図は、このコスト設定処理によってコストが設定されたグラフを示す説明図である。第１９図のグラフにおいて、リンクＥ１のコストＷ（Ｅ１）は、ノードＶ３のコストＷ（Ｖ３）とノードＶ４のコストＷ（Ｖ４）を合計したコストである。また、リンクＥ２のコストＷ（Ｅ２）は、ノードＶ２のコストＷ（Ｖ２）とノードＶ４のコストＷ（Ｖ４）を合計したコストである。さらに、リンクＥ３のコストＷ（Ｅ３）は、ノードＶ１のコストＷ（Ｖ１）とノードＶ２のコストＷ（Ｖ２）を合計したコストである。これにより、仕様記述の実行時における各操作Ｏ１〜操作Ｏ４の実行回数を重視したコストを設定することができる。
【００８４】
以上説明したように、この実施の形態にかかる設計支援装置４００によれば、モジュール間の通信におけるデータ転送量を考慮したモジュール分割をおこなうことができる。したがって、オーバーヘッドが生じることなく、各機能モジュールを実行することができ、設計対象のパフォーマンスの向上を図ることができる。また、設計現場において、設計対象システムの最終的な性能要件、たとえば、実装面積や消費電力などが顧客要求を満たさないことによる設計変更を低減することができ、設計品質の向上や信頼性の向上を図ることができる。またこれにより、手戻り設計を低減することができ、設計期間の短縮化を図ることができる。
【００８５】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００８６】
以上説明したように、本発明によれば、要求されている仕様記述を、ノードとリンクによって構成されるグラフに変換するため、仕様記述によって記述された設計対象のモジュール分割を、グラフ分割に置換することができ、モジュール分割の自動化を図ることができるという効果を奏する。これにより、設計対象における設計作業の支援を容易かつ効率的におこなうことができるという効果を奏する。
【産業上の利用可能性】
【００８７】
以上のように本発明は、Ｃ＋＋言語、ＵＭＬ、ＯＣＬなどによって記述された仕様記述から並列、並行に実行可能な機能モジュールに分割する設計支援装置、設計支援方法および設計支援プログラムを提供することに適している。
【図面の簡単な説明】
【００８８】
【図１】第１図は、この発明の実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図２】第２図は、Ｃ＋＋言語によって記述された仕様記述の一例を示す説明図である。
【図３】第３図は、第２図と同一内容の仕様記述について、ＵＭＬおよびＯＣＬによって記述された例を示す説明図である。
【図４】第４図は、この発明の実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。
【図５】第５図は、仕様記述からノードを生成する例を示す説明図である。
【図６】第６図は、第５図に示したノードおよびリンクによって模式的にあらわした図表の一例を示す説明図である。
【図７】第７図は、第６図に示したグラフのリンクにコストを設定した例（１）を示す説明図である。
【図８】第８図は、第６図に示したグラフのリンクにコストを設定した例（２）を示す説明図である。
【図９】第９図は、第６図に示したグラフのリンクにコストを設定した例（３）を示す説明図である。
【図１０】第１０図は、第８図において示したグラフから得られた分割解を示す説明図である。
【図１１】第１１図は、第１０図に示した分割解のサブグラフから、それぞれ機能モジュールを生成する例を示す説明図である。
【図１２】第１２図は、第１１図と同一内容を、ＳｙｓｔｅｍＣによって表現した例を示す説明図である。
【図１３】第１３図は、第１２図に示した機能モジュール間において生成された通信路に関する仕様記述を示す説明図である。
【図１４】第１４図は、制約条件にしたがってサブグラフに分割する例を示す説明図である。
【図１５】第１５図は、この発明の実施の形態にかかる設計支援装置の設計支援処理手順を示すフローチャートである。
【図１６】第１６図は、この発明の実施の形態にかかる設計支援装置にかかるノード生成の他の例を示す説明図である。
【図１７】第１７図は、この場合のコスト設定部の機能的構成を示すブロック図である。
【図１８】第１８図は、コスト設定処理手順の一例を示すフローチャートである。
【図１９】第１９図は、このコスト設定処理によってコストが設定されたグラフを示す説明図である。
【図２０】第２０図は、従来の設計対象システムのハードウェア構成を示すブロック図である。
【図２１】第２１図は、従来の設計対象システムのハードウェア構成の他の例を示すブロック図である。
【図１】
0003877753.tif 000002
【図２】
0003877753.tif 000003
【図３】
0003877753.tif 000004
【図４】
0003877753.tif 000005
【図５】
0003877753.tif 000006
【図６】
0003877753.tif 000007
【図７】
0003877753.tif 000008
【図８】
0003877753.tif 000009
【図９】
0003877753.tif 000010
【図１０】
0003877753.tif 000011
【図１１】
0003877753.tif 000012
【図１２】
0003877753.tif 000013
【図１３】
0003877753.tif 000014
【図１４】
0003877753.tif 000015
【図１５】
0003877753.tif 000016
【図１６】
0003877753.tif 000017
【図１７】
0003877753.tif 000018
【図１８】
0003877753.tif 000019
【図１９】
0003877753.tif 000020
【図２０】
0003877753.tif 000021
【図２１】
0003877753.tif 000022