(57)【要約】【課題】計算機装置のハードウェアとソフトウェアとを効率よく開発する。【解決手段】計算機開発装置１に、ハードウェアを識別する情報毎に、ハードウェアの設計情報を対応付けたハード部品ＤＢ１００と、ソフトウェアを識別する情報毎に、ソフトウェアの設計情報を対応付けたソフト部品ＤＢ１２０と、計算機の機能毎に、その機能を実現するために必要なハードウェアおよびソフトウェアを特定するデータを登録している関連ＤＢ１４０と、開発対象の計算機の機能を指定する制約条件１６０と、を保持させて、制約条件１６０および関連ＤＢ１４０を用いて、制約条件１６０に含まれる機能を実現するために必要なハードウェアおよびソフトウェアを特定し、その特定したハードウェアおよびソフトウェアに対応する設計情報をハード部品ＤＢ１００およびソフト部品ＤＢ１２０の中から抽出して出力する抽出部１８０を設ける。【選択図】図１
2008052410.tif 000002
【特許請求の範囲】
【請求項１】
計算機の設計情報を集めた設計資産情報を保持し、該設計資産情報の中から指定された計算機の機能を実現するための設計情報を抽出する計算機開発装置であって、
前記設計資産情報には、ハードウェアを識別するハード識別情報毎に、該ハードウェアの設計情報を対応付けて登録しているハード部品データベースと、ソフトウェアを識別するソフト識別情報毎に、該ソフトウェアの設計情報を対応付けて登録しているソフト部品データベースとが含まれていて、
計算機の機能毎に、該機能を実現するために必要なハードウェアおよびソフトウェアを特定するデータが登録されている関連データベースと、
開発対象の計算機の機能を指定する情報を含む制約条件が登録されている制約条件データベースと、
前記制約条件データベースおよび前記関連データベースを用いて、前記制約条件に含まれる機能毎に該機能を実現するために必要なハードウェアおよびソフトウェアを特定し、該特定したハードウェアおよびソフトウェアに対応する設計情報を前記設計資産情報の中から抽出し、該抽出した該設計情報を出力する抽出手段と、を有すること
を特徴とする計算機開発装置。
【請求項２】
請求項１に記載の計算機開発装置であって、
前記設計資産情報には、計算機の機能を試験するテストを識別するテスト識別情報毎に、該テストに利用するためのテスト設計情報を登録したテスト部品データベースが含まれていて、
前記関連データベースに登録されているデータは、前記計算機の機能毎に、該機能を実現するために必要なハードウェアおよびソフトウェアを特定するデータに加え、さらに、該機能を試験するためのテストを特定するデータが関連付けられていて、
前記抽出手段は、前記制約条件データベースおよび前記関連データベースを用いて、前記制約条件に含まれる機能を試験するためのテストを特定し、前記特定したテストに対応するテスト設計情報を前記設計資産情報の中から抽出し、該抽出したテスト設計情報を前記設計情報に含めて出力すること
を特徴とする計算機開発装置。
【請求項３】
請求項１または２に記載の計算機開発装置であって、
前記設計資産情報に含まれている前記設計情報は、複数の種類の情報により構成されていて、
前記制約条件には、前記計算機の機能を指定する情報に、前記設計情報の種類毎に該種類の情報を出力するか否かを指定した出力フラグが対応付けられていて、
前記抽出手段は、前記設計情報を抽出する際、前記出力フラグを参照し、該出力することを指定する出力フラグに対応付けられている種類の設計情報だけを抽出して出力すること
を特徴とする計算機開発装置。
【請求項４】
請求項２〜３のいずれか一項に記載の計算機開発装置であって、
前記関連データベースに登録されている前記特定するデータには、それぞれ、管理履歴が対応付けられていて、
前記設計資産情報に含まれる、前記ハード識別情報、前記ソフト識別情報、および前記テスト識別情報には、それぞれ、前記管理履歴が対応付けられていて、
前記抽出手段は、前記出力する設計資産情報の中に、前記関連データベースに対応付けられている管理履歴と同じ管理履歴の設計情報がなければ警告メッセージを出力すること
を特徴とする計算機開発装置。
【請求項５】
請求項１〜４のいずれか一項に記載の計算機開発装置であって、
前記ユーザからの操作により、前記制約条件の設定を受け付ける設定手段を有すること
を特徴とする計算機開発装置。
【請求項６】
請求項５に記載の計算機開発装置であって、
前記計算機開発装置は、ネットワークを介して端末装置と接続されていて、
前記設定手段は、前記端末装置とネットワークを介してデータの送受信を行う通信手段を備え、
前記通信手段は、前記端末装置からのデータ参照要求に応じて前記登録されている制約条件を出力する処理、および前記端末からの設定要求に応じて前記登録されている制約条件の変更を受け付ける処理を行うこと
を特徴とする計算機開発装置。
【請求項７】
請求項１〜６のいずれか一項に記載の計算機開発装置であって、
前記ハード部品データベースは、前記ハード識別情報毎に、該ハード識別情報により特定されるハードウェアが共有可能な部品であるか否かを示す共有情報が対応付けられていて、
前記抽出手段は、前記特定したハードウェアの中に同じハードウェアが複数ある場合、当該同じハードウェアが共有可能な部品であるか否かを前記ハード部品データベースの共有情報を用いて判定し、該判共有可能と判定されたハードウェアは1つにしてから、前記設計情報を前記設計資産情報の中から抽出すること
を特徴とする計算機開発装置。
【請求項８】
請求項１〜７のいずれか一項に記載の計算機開発装置であって、
前記抽出手段は、前記特定したソフトウェアの中に同じソフトウェアが複数ある場合、当該ソフトウェアを1つにしてから、前記設計情報を前記設計資産情報の中から抽出すること
を特徴とする計算機開発装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機装置を開発するための技術に関する。特に、計算機装置を構成するハードウェア構成要素と、ソフトウェア構成要素とを設計資産から選択して開発するための技術に関する。
【背景技術】
【０００２】
計算機装置を開発する方式に関する技術が特許文献１に開示されている。特許文献１では、既に開発を終えた電子機器を基本として、類似する電子機器を開発する際の開発作業を支援する方法、装置、およびプログラムに関する技術が開示されている。特許文献１に記載されている、既に開発を終えた電子機器は、処理ユニット（ＭＰＵ）と、周辺装置とを備えている。処理ユニットは、周辺装置を制御するためのファームウェアを実行する。そして、特許文献１には、類似の電子機器を開発する際に、既に開発した電子機器の機能を選択することにより、回路構成における部品の選択と、部品に対応するＭＰＵのピンの削除や変更と、ファームウェアのマシン語プログラムの変更方法とが開示されている。
【０００３】
【特許文献１】特開２００５−２３４７０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、計算機装置の開発において、特に装置組み込み用途向けの計算機装置は、装置制御のための実時間制御技術に加え、ネットワークの情報共有のために情報通信技術を活用する事例が増えつつある。そのため、計算機装置を開発するためには、実時間制御のための基本ソフトウェア（Operating System；OS）の知識のみならず、情報通信のための通信ハードウェアやデバイスドライバ（ソフトウェア）の両方に関する知識が必要となってきている。開発の現場では、計算機装置のハードウェアとソフトウェアとの両方を品質良く設計し、開発効率を向上させ、開発者の負担を軽減する技術や運用方法が強く望まれている。
【０００５】
しかしながら、上述の特許文献１は、以下に述べる問題を有している。具体的には、特許文献１は、既に開発した電子機器において、機能の部分的な削除や変更を行うための技術であり、開発者が所望する機能に応じて、新たに、必要なハードウェアやそれに対応するソフトウェアを選択するものではない。また、特許文献１では、既に開発した電子機器の制御ファームウェアの変更をコンパイラによらず行うため、ＭＰＵやＯＳを変更する場合には、新規に電子機器を開発する必要がある。そのため、開発者は、必要なハードウェアとソフトウェアに関する設計を再度行わなければならない。
【０００６】
なお、一般的に、開発効率を向上させるための手法として、既存の開発品の設計資産を流用する手順が取られる。しかし、開発した当人でなければハードウェアやソフトウェア資産の使い方や方法が明らかでないことが多く、同一企業内であっても設計資産の流用が困難である。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、計算機装置のハードウェアとソフトウェアとを効率よく開発することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一態様は、計算機の設計情報を集めた設計資産情報を保持し、該設計資産情報の中から指定された計算機の機能を実現するための設計情報を抽出する計算機開発装置に適用される。前記設計資産情報には、ハードウェアを識別するハード識別情報毎に、該ハードウェアの設計情報を対応付けて登録しているハード部品データベースと、ソフトウェアを識別するソフト識別情報毎に、該ソフトウェアの設計情報を対応付けて登録しているソフト部品データベースとが含まれている。
【０００９】
そして、前記計算機装置は、計算機の機能毎に、該機能を実現するために必要なハードウェアおよびソフトウェアを特定するデータが登録されている関連データベースと、開発対象の計算機の機能を指定する情報を含む制約条件が登録されている制約条件データベースと、前記制約条件データベースおよび前記関連データベースを用いて、前記制約条件に含まれる機能毎に該機能を実現するために必要なハードウェアおよびソフトウェアを特定し、該特定したハードウェアおよびソフトウェアに対応する設計情報を前記設計資産情報の中から抽出し、該抽出した該設計情報を出力する抽出手段と、を有する。
【発明の効果】
【００１０】
本発明を利用よれば、計算機装置のハードウェアとソフトウェアとを効率よく開発することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について図面を用いて説明する。なお、本実施形態は、計算機装置のハードウェアとソフトウェアとを開発する際に、既存の設計情報を活用して、新たな構成の計算機装置の設計情報を生成するための開発装置の構成に関するものである。
【００１２】
《第１実施形態》
最初に、本発明の第１実施形態の計算機開発装置について図面を用いて説明する。
【００１３】
図１は、本発明の第１実施形態における計算機開発装置の構成を表す機能ブロック図である。
【００１４】
図示するように、計算機開発装置１は、ハード部品ＤＢ１００、ソフト部品ＤＢ１２０、関連ＤＢ１４０、制約条件１６０、および設計情報を抽出する抽出部１８０を有する。なお、後段で詳細に説明するが、抽出部１８０は、選択機能２２０、最適化機能２４０、および出力機能２５０の３つの機能を備えている。
【００１５】
ハード部品ＤＢ１００は、計算機の所定の機能を実現するために必要なハードウェア部品の情報が格納されるデータベースである。ソフト部品ＤＢ１２０は、ハードウェアを制御するためのソフトウェアや基本ソフト(ＯＳ)の情報が格納されるデータベースである。関連ＤＢ１４０は、ハード部品ＤＢ１００とソフト部品ＤＢ１２０とを関連付けるデータベースである。なお、これらのデータベースの構成は、後段で詳細に説明する。
【００１６】
開発者は、後述する制約条件１６０を計算機開発装置１に設定することで、開発対象の計算機が必要とする計算機機能を指定する。計算機開発装置１の抽出部１８０は、制約条件１６０の中で指定されている計算機機能と関連付けられたハードウェアの部品とソフトウェアの部品とを抽出し、必要に応じて変換する。なお、制約条件１６０の機能記述は、例えば、テキストエディタや文書処理ソフトによるテキスト形式であってもデータベースソフトによって設定されるバイナリデータであっても良い。
【００１７】
抽出部１８０は、それぞれの抽出変換結果をハード設計情報２６０、およびソフト設計情報２８０として出力する。これらの処理については、後段で詳細に説明する。
【００１８】
つぎに、計算機開発装置１のハードウェア構成について、図２を用いて説明する。
【００１９】
図２は、本発明の第１実施形態の計算機開発装置１のハードウェア構成の一例を示した図である。
【００２０】
図示するように、計算機開発装置１は、ＣＰＵ１０、内部バス１１、ＲＡＭ（Random Access Memory）１２、通信部１３、および不揮発性メモリ１４を有する。ＣＰＵ１０、ＲＡＭ１２、通信部１３、および不揮発性メモリ１４は、内部バス１１を介して相互にデータを交換する。
【００２１】
不揮発性メモリ１４には、ハード部品ＤＢ１００、ソフト部品ＤＢ１２０、関連ＤＢ１４０、制約条件１６０、ハード設計情報２６０、ソフト設計情報２８０、ＯＳ２０、および抽出プログラム１８００が格納されている。抽出プログラム１８００は、図1に示す抽出部１８０の機能を実現するためのプログラムである。抽出プログラム１８００には、選択機能２２０を実現するための選択機能プログラム２２００と、最適化機能２４０を実現するための最適化機能プログラム２４００と、出力機能２５０を実現するための出力機能プログラム２５００と、が含まれる。なお、本実施形態では、不揮発メモリ１４について特に限定しない。不揮発メモリ１４には、例えば、電気的に消去や書き込み可能なＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）やフラッシュメモリ、ハードディスク装置等を用いることができる。
【００２２】
ＣＰＵ１０は、不揮発性メモリ１４に格納されているＯＳ２０や、ソフトウェア（抽出プログラム１８００等）の命令や定数等の各種情報を読み出し、これら命令や定数を必要に応じてＲＡＭ１２に格納し、読み出し或いは書き出しを行い、ソフトウェア処理を実行する。ＣＰＵ１０のソフトウェア処理により、図1に示す抽出部１８０の機能が実現される。すなわち、上述した抽出部１８０の機能は、ＣＰＵ１０が不揮発性メモリ１４に格納されているＯＳ２０、抽出プログラム１８００、および各種情報をＲＡＭ１２にロードして実行することにより実現される。
【００２３】
通信部１３は、内部バス１１を介してＣＰＵ１０から要求されたデータをネットワーク３へ送信する処理や、ネットワーク３から受信した処理をＣＰＵ１０に報告する処理を行う。なお、本実施形態は、ネットワーク３を活用するネットワーク技術により制限されない。ネットワーク３を活用する技術には、有線のネットワーク技術であるＥｔｈｅｒｎｅｔ(登録商標)やＲＳ４８５、光ファイバなどによるシリアル伝送技術、あるいはＳＣＳＩ（Small Computer System Interface）やＰＣＩ（Peripheral Component Interconnect）バスなどのパラレル伝送技術などがある。通信部１３は、自身の状態変化や処理要求が発生したことをＣＰＵ１０へ割込み信号(図示なし)で通知する。ＣＰＵ１０は、上記ソフトウェアの実行、通信部１３からの割込みの処理を行い、目的とする機能を実現する。
【００２４】
続いて、本発明の第１実施形態の計算機開発装置１の動作の概略を説明する。
【００２５】
図３は、本発明の第１実施形態の計算機開発装置１の抽出部１８０の動作フローを示す図である。なお、以下に示す処理ステップを行う、計算機開発装置１には、あらかじめ、制約条件１６０が設定されているものとする（不揮発性メモリ１４の所定領域に、制約条件１６０が格納されているものとする）。
【００２６】
先ず、抽出部１８０は、制約条件１６０より、開発する対象の計算機の機能を取得する(Ｓ５００)。制約条件１６０は、あらかじめテキスト形式やバイナリ形式にて与えられた、計算機機能を記述したデータである。
【００２７】
次に、抽出部１８０は、制約条件１６０にて示された計算機機能を実現するためのハードウェア部品およびソフトウェア部品を抽出する（Ｓ５１０）。具体的には、抽出部１８０は、選択機能２２０を用いて関連ＤＢ１４０から該当するレコードを抽出する。関連ＤＢ１４０のレコードには、計算機機能に対応付けて、ハード部品ＤＢ１００へのインデックスと、ソフト部品ＤＢ１２０へのインデックスとが記述されている。抽出部１８０は、抽出したレコードに登録されているハード部品ＤＢ１００へのインデックスを用いて、ハード部品ＤＢ１００からハードウェア部品情報を抽出する。また、抽出部１８０は、ソフト部品ＤＢ１２０からソフトウェア部品情報を抽出する。
【００２８】
その後、抽出部１８０は、最適化機能２４０を用いて、冗長なハードウェア部品やソフトウェア部品を削除すると共に、それぞれの部品のパラメータを変更する(Ｓ５３０)。変更するパラメータの例として、計算機機能に応じたメモリ容量やプロセッサのクロック速度などが挙げられる。
【００２９】
そして、抽出部１８０は、出力機能２５０を用いて、最適化した処理結果のうち、ハードウェア部品の設計情報をハード設計情報２６０として、ソフトウェア部品の設計情報をソフト設計情報２８０として、それぞれ出力し(Ｓ５５０)、処理を終了する。なお、ハード設計情報２６０やソフト設計情報２８０は、不揮発性メモリ１４に格納するようにしてもよいし、通信部１３を介して他の計算機装置(図示なし)へ転送してもよい。
【００３０】
以上のように構成することで、開発対象の計算機装置に対応した制約条件１６０から、関連するハード設計情報２６０やソフト設計情報２８０を取得することが可能となる。開発者は、取得したハード設計情報２６０から計算機装置のハードウェアを設計することができる。その後、開発者は、設計した計算機装置のハードウェアに、取得したソフト設計情報２８０に含まれているＯＳやデバイスドライバを実装することで、所望の計算機装置を得ることができる。
【００３１】
次に、第１実施形態の各構成要素、および処理について詳細について説明する。
【００３２】
まず、本実施形態のハード部品ＤＢ１００のデータ構成について、図４および図５を用いて説明する。
【００３３】
図４は、本発明の第１実施形態のハード部品ＤＢ１００のデータ構成を模擬的に示した図である。図５は、本発明の実施形態のハードウェア部品の回路構成を例示した図である。なお、図４に示すハード部品ＤＢ１００は、図５（ａ）、（ｂ）に示す回路構成のハード部品に関するハード部品情報が含まれる例を示している。
【００３４】
さて、図４に示すように、ハード部品ＤＢ１００は、ハード機能を示すデータを登録するためのフィールド１０１と、関連機能を示すデータを登録するためのフィールド１０２と、回路図データを登録するためのフィールド１０３と、設計データを登録するためのフィールド１０４と、バージョンを示すデータを登録するためのフィールド１０５と、共有可能か否かを示すフラグ（共有可フラグ）を登録するためのフィールド１０６と、を備えて１つのレコードが構成される。
【００３５】
ここで、フィールド１０１に登録するハード機能を示すデータとは、ハードウェア部品に関するインデックス（ハードウェア部品を特定する識別情報）である。
【００３６】
フィールド１０２に登録する関連機能を示すデータとは、対応するフィールド１０１に登録されたハード機能に関連するデータ（或いは当該ハード機能が包含するハード機能を示すデータ）である。例えば、関連機能を示すデータとは、対応するフィールド１０１に登録されたハード機能を構成する部品を示すデータをいう。
【００３７】
フィールド１０３に登録する回路図データとは、ハードウェア部品を配線するための情報や当該ハードウェア部品の内部配線情報を示すデータである。回路図データの具体的な例として、ハードウェア部品のピン配置データやＥＤＩＦ（Electronic Design Interchange Format）データなどが挙げられる。
【００３８】
フィールド１０４に登録する設計データとは、ハードウェア部品を用いて設計する場合に必要な情報を示す。フィールド１０４に登録する設計データとしては、例えば、ハードウェアマニュアルや電気的仕様、アクセスタイミング仕様、クロック速度、メモリ容量、注釈、使用方法などが該当する。図示する例では、これらの設計データをまとめて拡張子「ｐｄｆ」のドキュメントファイルとして示したが、必要に応じて個別に独立した要素としてハード部品ＤＢ１００へ登録しても良い。
【００３９】
フィールド１０５に登録するバージョンを示すデータとは、対応するフィールド１０１に格納されたハード機能を管理する際に使用するデータであって、当該情報の履歴を表す。
【００４０】
フィールド１０６に登録する共有可フラグは、当該ハードウェア部品が複数の構成に渡って共有できる部品か否かを示すフラグである。例えば、メモリやＣＰＵであれば、想定する使用量や性能の範囲内であれば、同一部品を複数の構成にて共有して利用することが可能である。そのため、共有可を示すフラグを設定すればよい。一方、ＬＡＮ（Local Area Network）コントローラや画面出力のように、１つの部品にて一定の機能を期待する通信用部品や入出力制御部品の場合は、共有不可を示すフラグを設定する。
【００４１】
図示する例において、ハード部品ＤＢ１００のレコード１１０には、「ＬＡＮＣａｌＨＷ」に関する情報が登録されている。具体的には、レコード１１０では、フィールド１０１に、「ＬＡＮＣａｌＨＷ」が登録されている。フィールド１０２には、データが登録されていない。これは、「ＬＡＮＣａｌＨＷ」に関連機能がないことを示している。また、フィールド１０３には、「ＬＡＮＣａｌＨＷ」の回路図を示すＥＤＩＦデータ（ＬＡＮＣａ１．ｅｄｆファイル）が登録されている。フィールド１０４には、「ＬＡＮＣａｌＨＷ」の設計データ（例えば、マニュアルＬＡＮＣａ１．ｐｄｆファイル）が登録されている。フィールド１０５には、「ＬＡＮＣａｌＨＷ」のバージョンが２であることを示すデータ（Ｒｅｖ.２（ｒｅｖｉｓｉｏｎ２））が登録されている。フィールド１０６には、共有不可を示すフラグ（Ｎｏ）が登録されている。
【００４２】
また、図示するレコード１１２から１１６には、レコード１１０と同様に単一部品から構成されるハード部品情報が登録されている。なお、レコード１１２は、画面出力制御用のハードウェア部品「ＶＧＡｃ１ＨＷ」に関するデータが登録されている。
【００４３】
レコード１１１には、複数部品から構成されるハード部品である「ＬＡＮｂ１ＨＷ」に関する情報が登録されている。レコード１１１のフィールド１０２には、複数の部品を示すデータが登録されている。具体的には、レコード１１１のフィールド１０２に登録されているデータから、ＬＡＮ機能を提供する「ＬＡＮｂ１ＨＷ」は、ＬＡＮコントローラである「ＬＡＮＣａ１ＨＷ」と、パルストランスである「ＰＴｄ１ＨＷ」とからなることが分かる。レコード１１１のフィールド１０３に登録する回路図データは、これらの関連機能（フィールド１０２に登録されている関連機能）がどのように構成されるかを示すＥＤＩＦデータ（ＬＡＮｂ１．ｅｄｆファイル）である。フィールド１０４には、設計データとして「マニュアルＬＡＮｂ１.ｐｄｆファイル」が登録されている。フィールド１０５には、バージョンが１であることを示す「Ｒｅｖ.１（ｒｅｖｉｓｉｏｎ１）」が登録されている。また、フィールド１０６には、共有不可を示すフラグ（"No"）が登録されている。
【００４４】
また、レコード１１７には、図５（ａ）に示すハードウェア部品に関する情報が登録されていて、レコード１１８には、図５（ｂ）に示すハードウェア部品に関する情報が登録されている。
【００４５】
具体的には、レコード１１７には、計算機モジュール「ＭＯＤｘ１ＨＷ」に関する情報が登録されている。レコード１１７では、フィールド１０２に複数のデータが登録されていることから、計算機モジュール「ＭＯＤｘ１ＨＷ」が複数の部品により構成されていることが分かる。また、計算機モジュール「ＭＯＤｘ１ＨＷ」の回路構成は、フィールド１０３に登録されている回路データ（ＭＯＤｘ１．ｅｄｆ）により確認できる。フィールド１０５に登録されたデータ（Ｒｅｖ.２（ｒｅｖｉｓｉｏｎ２））から、バージョンが２であり、フィールド１０６の共有可フラグが「Ｙｅｓ」であることから、計算機モジュール「ＭＯＤｘ１ＨＷ」が共有可能なハードウェア部品であることが確認できる。
【００４６】
レコード１１８には、計算機モジュール「ＭＯＤｘ２ＨＷ」に関する情報が格納されている。なお、レコード１１８に登録されている計算機モジュール「ＭＯＤｘ２ＨＷ」は、レコード１１７に登録されている計算機モジュール「ＭＯＤｘ１ＨＷ」と回路構成が一部異なっている以外（すなわち、ＬＡＮ機能と画面出力機能とが入れ替わっている以外）は、同じである。
【００４７】
ここで、レコード１１７と、レコード１１８に登録されているハードウェア部品について、図５を用いて説明する。
【００４８】
図５（ａ）には、図４に示すハード部品ＤＢ１００のレコード１１７に登録されているハードウェア部品である計算機モジュールＭＯＤｘ１ＨＷの構成を示している。計算機モジュールＭＯＤｘ１ＨＷは、ＣＰＵであるＰＲＯＣｐ１ＨＷと、ＲＡＭであるＲＡＭｓ１ＨＷと、ＲＯＭであるＲＯＭｆ１ＨＷと、ＬＡＮ機能であるＬＡＮｂ１ＨＷとを有する。ＬＡＮ機能であるＬＡＮｂ１ＨＷは、さらに、ＬＡＮコントローラＬＡＮＣａ１ＨＷと、パルストランスＰＴｄ１ＨＷとを備える。
【００４９】
図５（ｂ）には、図４に示すハード部品ＤＢ１００のレコード１１８に登録されているハードウェア部品である計算機モジュールＭＯＤｘ２ＨＷの構成を示している。計算機モジュールＭＯＤｘ２ＨＷは、ＣＰＵであるＰＲＯＣｐ１ＨＷと、ＲＡＭであるＲＡＭｓ１ＨＷと、ＲＯＭであるＲＯＭｆ１ＨＷと、画面出力機能を提供するハードウェア部品であるＶＧＡｃ１ＨＷと、を有する。
【００５０】
以上のように、ハード部品ＤＢ１００を構成することにより、計算機の構成要素に関連するハードウェア部品に関して、それら要素間の関連や、回路図データ、設計データ、バージョン、部品共有の可否を知ることができる。
【００５１】
次に、本実施形態のソフト部品ＤＢ１２０のデータ構成を説明する。
【００５２】
図６は、本発明の第１実施形態のソフト部品ＤＢ１２０のデータ構成を模擬的に示した図である。
【００５３】
図に示すように、ソフト部品ＤＢ１２０は、ソフト機能を示すデータを登録するためのフィールド１２１と、関連機能を示すデータを登録するためのフィールド１２２と、ソースコードを登録するためのフィールド１２３と、ＣＰＵのタイプを示すデータを登録するためのフィールド１２４と、バイナリを登録するためのフィールド１２５と、バージョンを示すデータを登録するためのフィールド１２６と、実装位置を示すデータを登録するためのフィールド１２７とを備えて１つのレコードが構成される。
【００５４】
フィールド１２１に登録するソフト機能とは、ソフトウェア部品に関するインデックス（ソフトウェア部品を特定する識別情報）である。
【００５５】
フィールド１２２に登録する関連機能を示すデータとは、対応するフィールド１２１に登録されたソフト機能に関連するデータ（或いは当該ソフト機能が包含するデータ）である。例えば、フィールド１２２に登録する関連機能を示すデータとは、ソフト機能を構成する部分機能が該当する。
【００５６】
フィールド１２３に登録するソースコードとは、ソフト機能を記述するプログラムのコードである。なお、記述する言語に本発明は、制約されることはない。図示する例では、Ｃ言語を想定したソースコード(ファイル拡張子が「.c」や「.h」)の例を示す。
【００５７】
フィールド１２４に登録するＣＰＵタイプとは、対応するフィールド１２３に登録されているソースコードをコンパイルしてバイナリを生成する際に、ターゲットとするプロセッサアーキテクチャを示す。
【００５８】
フィールド１２５に登録するバイナリとは、フィールド１２３に登録されているソースコードをコンパイルして生成されたコードを含み、ＣＰＵタイプにて指定されるＣＰＵが解釈可能な形式のプログラムファイル名をいう。
【００５９】
フィールド１２６に登録するバージョンを示すデータとは、対応するフィールド１２１に格納されたソフト機能を管理する際に使用するデータであって、当該情報の履歴を表す。
【００６０】
フィールド１２７に登録する実装位置を示すデータとは、当該ソフト機能に対応する生成物(バイナリ)が最終的にどのような位置に実装されるかを示す情報である。例えば、開発対象の計算機が、ファイルシステムを管理するＯＳであれば、対応するソフト機能がファイルシステムのどのディレクトリに格納されるかを示すのが好適である。また、カーネル部分に全てのドライバが静的にリンクされるようなＯＳの場合、実装位置を示すデータは不要である（すなわち、フィールド１２７にデータを登録する必要はない）。
【００６１】
図示するソフト部品ＤＢ１２０の例では、レコード１３０に、ＬＡＮコントローラ用のソフト機能を有するソフトウェア部品「ＬＡＮＣａ１ＳＷ」に関する情報が登録されている。レコード１３１に、ＶＧＡチップ用のソフト機能を有するソフトウェア部品「ＶＧＡｃ１ＳＷ」に関する情報が登録されている。レコード１３２に、ＣＰＵに関するソフト機能を有するソフトウェア部品「ＰＲＯＣｐ１ＳＷ」に関する情報が登録されている。
【００６２】
また、レコード１３３に、ＯＳに関するソフト機能を有するソフトウェア部品「ＯＳｚ１ＳＷ」に関する情報が登録されている。レコード１３４に、Ｗｅｂサーバに関するソフト機能を有するソフトウェア部品「ＨＴＴＰｈ１ＳＷ」に関する情報が登録されている。レコード１３５には、計算機モジュール「ＭＯＤｘ１ＨＷ」に関するソフト機能のソフトウェア部品「ＭＯＤｘ１ＳＷ」に関する情報が登録されている。レコード１３６には、計算機モジュールＭＯＤｘ２ＨＷに関するソフト機能のソフトウェア部品「ＭＯＤｘ２ＳＷ」に関する情報が登録されている。
【００６３】
また、ソフト部品ＤＢ１２０の構成要素として、他にバイナリ（フールド１２５に格納されるバイナリ）の実行に際して参照する設定ファイルや、ソースコードをコンパイルする際に使用するコンパイル手順ファイル(makefile、スクリプト等)を含めても良い。
【００６４】
図示する例では、レコード１３０のＬＡＮコントローラを制御するソフトウェア部品「ＬＡＮＣａ１ＳＷ」は、ソースコードが「ＬＡＮＣａ１.ｃ」および「ＬＡＮＣａ１.ｈ」からなり、バイナリが「ＬＡＮＣａ１．ｍｏｄ」であり、ＣＰＵタイプが「ＣＰＵ−Ａ」であるプロセッサに用意されており、バージョンが「ｒｅｖｉｓｉｏｎ１」であり、実装位置が「/usr/lib」であることが示されている。
【００６５】
レコード１３３に格納されている、ＯＳ機能を有するソフトウェア部品「ＯＳｚ１ＳＷ」は、関連機能が「ＰＲＯＣｐ１ＳＷ」で、ソースコードが「ＣＯＲＥ１.ｃ」、「ＣＯＲＥ１.ｈ」などの複数のソースファイルで、ＣＰＵタイプが「ＣＰＵ−Ａ」向けで、バイナリに「ＯＳｚ１」が用意されており、バージョンが「Ｒｅｖ.２（ｒｅｖｉｓｉｏｎ２）」であり、実装位置がルート「(/)」であることが示されている。
【００６６】
レコード１３５には、ハードウェア部品である計算機モジュール「ＭＯＤｘ１ＨＷ」に実装すべきソフト機能を有するソフトウェア部品「ＭＯＤｘ１ＳＷ」の情報が登録されている。具体的には、レコード１３５には、ソフトウェア部品「ＭＯＤｘ１ＳＷ」は、関連機能として、ＬＡＮコントローラ用のドライバとＯＳに関する記述(ＬＡＮａｌＳＷ、ＯＳｚ１ＳＷ)が登録されていて、ソースコードに「ＭＯＤｘ１.c」および「ＭＯＤｘ1.ｈ」が必要で、ＣＰＵタイプが「ＣＰＵ-Ａ」であり、バイナリが「ＭＯＤｘ１.ｍｏｄ」であり、バージョンが「Ｒｅｖ.１（ｒｅｖｉｓｉｏｎ１）」であることが示すデータが登録されている。
【００６７】
以上のように、ソフト部品ＤＢ１２０を構成することにより、計算機の構成要素に関連するソフトウェア部品に関して、それら要素間の関連やソースコード、ＣＰＵタイプに応じたバイナリ、バージョン、実装位置を知ることができる。
【００６８】
次に、本実施形態の関連部品ＤＢ１４０のデータ構成を説明する。
【００６９】
図７は、本発明の第１実施形態の関連部品ＤＢ１４０のデータ構成を模擬的に示した図である。
【００７０】
図示するように、関連ＤＢ１４０は、計算機の機能（計算機機能）を示すデータを登録するためのフィールド１４１と、関連機能を示すデータを登録するためのフィールド１４２と、ハード機能を示すデータを登録するためのフィールド１４３と、ハード機能の変更履歴をあらわすバージョン（ハードバージョン）を登録するためのフィールド１４４と、ソフト機能を示すデータを登録するためのフィールド１４５と、ソフト機能の変更履歴をあらわすバージョン（ソフトバージョン）を登録するためのフィールド１４６と、を備えて１つのレコードが構成される。すなわち、１つのレコードでは、フィールド１４１に登録した計算機機能に対応付けて、各フィールド１４２〜１４６に、関連機能、ハード機能、ハードバージョン、ソフト機能、およびソフトバージョンが登録されている。
【００７１】
フィールド１４１に登録する計算機機能とは、計算機が必要とする機能の名前（計算機の機能を識別するデータ）である。本実施形態では、この記述される計算機機能を単位として、機能の追加や削除をする。
【００７２】
フィールド１４２に登録する関連機能は、既に存在する計算機機能を指定するための要素であり、新たな計算機機能を作成する際に使用する。
【００７３】
フィールド１４３に登録するハード機能を示すデータは、図４に示すハード部品ＤＢ１００を構成するレコードのフィールド１０１に登録するデータと同様のデータ、すなわち、ハードウェア部品を特定する識別情報である。また、フィールド１４４に登録するハードバージョンは、図４に示すハード部品ＤＢ１００を構成するレコードのフィールド１０５に登録されるデータと同様のデータである。
【００７４】
フィールド１４５に登録するソフト機能を示すデータは、図６に示すソフト部品ＤＢ１２０を構成するレコードのフィールド１２１に登録されるデータと同様のデータ、すなわち、ソフトウェア部品を特定する識別情報である。また、フィールド１４６に登録するソフトバージョンは、図６に示すソフト部品ＤＢ１２０を構成するレコードのフィールド１２６に登録されるデータと同様のものである。
【００７５】
図７では、レコード１５０〜１５７に、計算機機能に関するデータを登録した例を示している。図示するレコードの中には、ハード機能とソフト機能とが対になり登録されているレコード（例えば、レコード１５０〜１５４）と、ハード機能がけが登録されているレコード（例えば、レコード１５５、１５６）と、ソフト機能だけが登録されているレコード（例えば、レコード１５７）とが存在している。
【００７６】
例えば、レコード１５３では、計算機モジュールに関し、ハード機能ＭＯＤｘ１ＨＷおよびソフト機能ＭＯＤｘ１ＳＷの両方が登録されている。また、例えば、レコード１５５では、ＲＡＭ機能に関し、ハード機能ＲＡＭｓ１ＨＷだけが登録されている。レコード１５７では、Ｗｅｂサーバ機能に関し、ソフト機能ＨＴＴＰｈ１ＳＷだけが登録されている。
【００７７】
なお、本実施形態では、関連ＤＢ１４０に必要な機能要素だけを登録するようにしておけばよい。また、フィールド１４３に登録するハード機能と、フィールド１４５に登録するソフト機能との組み合わせが同一であっても、それぞれのバージョンが異なる場合には、別のレコードで管理するようにしてもよい。
【００７８】
以上のように、関連ＤＢ１４０を構成することにより、計算機機能に対応したハード機能とソフト機能との関連を知ることができる。
【００７９】
続いて、本実施形態の制約条件１６０について、図８を用いて説明する。
【００８０】
図８は、本発明の第１実施形態の制約条件１６０のデータ構成を模擬的に示した図である。なお、制約条件１６０とは、ユーザにより設定されるデータである。
【００８１】
図示するように制約条件１６０は、開発対象の計算機装置の計算機機能を登録するためのフィールド１６１と、回路図データを出力するか否かを指定するフラグ（回路図データ出力フラグ）を登録するためのフィールド１６２と、設計データを出力するか否かを指定するフラグ（設計データ出力フラグ）を登録するためのフィールド１６３と、ソースコードを出力するか否かを指定するフラグ（ソースコード出力フラグ）を登録するためのフィールド１６４と、バイナリを出力するか否かを指定するフラグ（バイナリ出力フラグ）を登録するためのフィールド１６５と、を備えて１つのレコードが構成される。例えば、レコード１７０では、計算機モジュールＭＯＤｘ１に関してバイナリだけを出力しないで（Disableと記載)、他は全て出力する(Enableと記載)旨をフラグで指示している。
【００８２】
続いて、上述の図３で説明した動作フローについて詳細に説明していく。
【００８３】
先ず、図３のＳ５１０に示した選択処理を詳細に説明する。
【００８４】
図９は、図３のＳ５１０に示した選択処理の詳細な処理フローを示した図である。ここで、Ｓ５１０の選択処理とは、抽出部１８０（図１参照）が、選択機能２２０により、制約条件１６０で指定された計算機機能に関連する、ハード機能およびソフト機能を選択する処理である。
【００８５】
なお、抽出部１８０は、計算機機能リスト（図示しない）、ハード機能リスト（図示しない）、およびソフト機能リスト（図示しない）を保持しているものとする（例えば、ＲＡＭ１２の所定領域に格納しておく）。そして、本処理フローに入る際に、抽出部１８０は、保持している、計算機機能リスト、ハード機能リスト、およびソフト機能リストを空に初期化する。なお、図９に示す動作は、全て抽出部１８０の選択機能２２０により行われる。
【００８６】
まず、抽出部１８０は、制約条件１６０で指定されている計算機機能と、それぞれの計算機機能に関連する関連機能とを全て抽出し、リスト化して計算機機能リストを作成する(Ｓ５１１)。抽出部１８０は、計算機機能リストを作成する際、制約条件１６０にて指定されている、回路図データ出力フラグ、設計データ出力フラグ、ソースコード出力フラグ、バイナリ出力フラグも計算機機能リストに含めておく。
【００８７】
次に、抽出部１８０は、作成した計算機機能リストにリスト化されている計算機機能に対し、順にＳ５１２〜５１５の処理を行い、リスト化されている全ての計算機機能に対して、Ｓ５１２〜Ｓ５１５の処理を実行したら、選択処理を終了する。
【００８８】
具体的には、抽出部１８０は、Ｓ５１１で作成した計算機機能リストを参照し（例えば上から順に参照し）リスト要素が存在するか否かを確認する(Ｓ５１２)。そして、リスト要素が残存していなければ選択処理を終了する。一方、リスト要素が残存している場合には、Ｓ５１３の処理に遷移する。
【００８９】
Ｓ５１３では、抽出部１８０は、Ｓ５１１で作成した計算機機能リストから計算機能を示すデータを取り出す（計算機能を示すデータを１つ取り出す）。抽出部１８０は、関連ＤＢ１４０（図７参照）にアクセスして、関連ＤＢ１４０に登録されたレコードの中から、取り出した計算機機能を示すデータが登録されたレコードを検索する。
【００９０】
次に、抽出部１８０は、Ｓ５１３で検索されたレコードの中から、ハード機能を示すデータ（図７のフィールド１４３に登録されているデータ）を取り出し、ハード機能リストに追記（登録）する（Ｓ５１４）。ハード機能リストに追記する際、当該計算機機能に関して、制約条件１６０における回路図データ出力フラグ（フィールド１６２に登録されているデータ）および設計データ出力フラグ（フォールド１６３に登録されているデータ）も同様にハード機能リストに追記しておく。
【００９１】
次に、抽出部１８０は、Ｓ５１３で検索されたレコードの中から、ソフト機能を示すデータ（図７のフィールド１４５に登録されているデータ）を取り出し、ソフト機能リストに追記（登録）する（Ｓ５１５）。なお、本ステップでも、Ｓ５１４と同様、計算機機能に関して、制約条件１６０におけるソースコード出力フラグ（フィールド１６４に登録されているデータ）およびバイナリ出力フラグ（フィールド１６５に登録されているデータ）もソフト機能リストに追記しておく。その後、抽出部１８０は、Ｓ５１２の処理を再度繰り返す。
【００９２】
以上の処理により、抽出部１８０の選択機能２２０は、制約条件１６０で指定されている計算機機能に対応して、所望の計算機機能を実現するために必要なハード機能およびソフト機能をリスト化することができる。
【００９３】
次に、図３のＳ５３０に示した最適化処理を詳細に説明する。
【００９４】
図１０は、図３のＳ５３０に示した最適化処理の詳細な処理フローを示した図である。なお、図１０に示す動作は、全て抽出部１８０の最適化機能２４０により行われる。
【００９５】
先ず、抽出部１８０は、図９の選択処理で作成したハード機能リストに対して、ハード機能名にキーにしてソートして（例えば、ハード機能名を昇順でソートする）、ハード機能リストの要素の順序を整える。また、抽出部１８０は、図９の選択処理で作成したソフト機能リストに対して、ソフト機能名をキーにしてソートして、ソフト機能リストの要素の順序を整える（Ｓ５３１）。
【００９６】
次に、抽出部１８０は、Ｓ５３１でソートしたハード機能リストの中から、順番にハード機能名の重複しているリストを検索する（Ｓ５３２）。なお、Ｓ５３１でソート済みであるため、重複したハード機能がある場合には、重複したハード機能は、ハード機能リスト上で連続して現れている。
【００９７】
次に、抽出部１８０は、ハード機能リスト上にハード機能名の重複しているリストがある場合にはＳ５３４の処理に進み、重複しているリストがなければＳ５３７の処理に進む（Ｓ５３３）。
【００９８】
次に、ハード機能リストに重複したハード機能があった場合に進むＳ５３４について説明する。Ｓ５３４では、抽出部１８０は、重複しているハード機能が共有可能であるか否かを判定する。そして、共有可能と判定した場合にＳ５３５に進み、共有可能ではないと判定した場合にＳ５３６に進む。
【００９９】
具体的には、抽出部１８０は、重複しているハード機能を特定する。そして、抽出部１８０は、ハード機能ＤＢ１００（図４参照）にアクセスし、特定したハード機能を示すデータが登録されているレコードのフィールド１０６に登録されている共有可フラグを参照し、ハード機能が共有可能であるか否かを判定する。すなわち、該当するハード機能が登録されているレコードのフィールド１０６に共有できない事を示す共有不可フラグ（Ｎｏ）が登録されていれば、そのハード機能は共有できないものと判定される。一方、該当するハード機能が登録されているレコードのフィールド１０６に共有できる事を示す共有可フラグ（Ｙｅｓ）が登録されていれば、そのハード機能は共有できると判定される。
【０１００】
Ｓ５３５では、抽出部１８０は、ハード機能リストにおける重複しているハード機能を縮退させて、１つのハード機能だけを残すようにハード機能リストを変更して、Ｓ５３２の処理に戻る。
【０１０１】
一方、Ｓ５３６では、抽出部１８０は、ハード機能リストにおけるハード機能をそのまま並存させておく。すなわち、ハード機能リストを変更しないで、Ｓ５３２の処理に戻る。
【０１０２】
次に、Ｓ５３７以降の処理を説明する。
【０１０３】
Ｓ５３７では、抽出部１８０は、Ｓ５３１でソートしたソフト機能リストの中から、ソフト機能名の重複しているリストを検索する。なお、Ｓ５３１でソート済みであるため、重複したソフト機能がある場合には、重複したソフト機能は、ソフト機能リスト上で連続して現れている。
【０１０４】
そして、抽出部１８０は、ソフト機能リスト上にソフト機能名の重複しているリストがある場合にはＳ５３９の処理に進み、重複しているリストがなければ最適化処理を終了する。
【０１０５】
Ｓ５３９では、すなわち、重複するソフト機能があった場合、基本的にソフトウェアは共有可能と考え、重複するソフト機能を縮退させて、一つのソフト機能だけを残すようソフト機能リストを変更する。
【０１０６】
ここで、例えばソフトウェア内の排他制御やメモリリソースの設定の都合上、ソフトウェアを共有不可能とする場合には、次のようにする必要がある。具体的には、ソフト部品ＤＢ１２０において、ハード部品ＤＢ１００と同様に、各ソフト機能に関して共有可フラグを設けて、それぞれ設定する。その上で、Ｓ５３８において、重複するソフト機能について、それぞれ共有可フラグを検査する。そして、共有可能であればＳ５３９と同様に処理し、共有不可であれば重複するソフト機能を縮退させずにソフト機能リストは更新しない。この際、ソフトウェアを排他的に利用したりメモリ上に配置したりするためにパラメータにて排他的に設定する必要がある。
【０１０７】
また、Ｓ５３２やＳ５３７の処理において、機能は、同一だがバージョンが異なる場合が存在する。バージョンが異なる場合（バージョン差異）の解消方法の例として、「最新または最古のバージョンを優先する」、「縮退をせずにすべて並存させておく」という方法が考えられる。このようなバージョン差異が発生した場合には、出力するハード設計情報２６０およびソフト設計情報２８０において、注意を促すためにメッセージを含めるようにするのが好適である。なお、これらの解消方法は、最適化のポリシーとして事前に最適化機能２４０へ通知することで自動処理が可能となる。
【０１０８】
以上のようにすることで、最適化機能２４０は、ハード機能やソフト機能に関して、共有可能な機能は縮退させ、共有不可の機能は並存させることが可能となる。
【０１０９】
次に、図３のＳ５５０に示している出力処理を詳細に説明する。
【０１１０】
図１１は、図３のＳ５５０に示した出力処理の詳細な処理フローを示した図である。なお、図１１に示す動作は、全て抽出部１８０の出力機能２５０により行われる。
【０１１１】
先ず、抽出部１８０は、図１０に示した最適化処理により最適化したハード機能リストに登録されている各ハード機能に対し、順にＳ５５１〜５５６の処理を行う。そして、登録されている全てのハード機能に対して、Ｓ５５１〜Ｓ５５６の処理を実行したら、Ｓ５５７の処理に進む。
【０１１２】
具体的には、抽出部１８０は、図１０に示した最適化処理により最適化したハード機能リストを検査し、出力すべきハード機能が存在するか否かを確認する（Ｓ５５１）。確認により、出力すべきハード機能が存在しなければＳ５５７に進み、出力すべきハード機能が存在すればＳ５５２に進む。
【０１１３】
Ｓ５５２では、すなわち、出力すべきハード機能が存在する場合には、抽出部１８０は、ハード機能リストからハード機能を取得する。
【０１１４】
次に、抽出部１８０は、Ｓ５５２で取得したハード機能に関して設定されている回路図データ出力フラグの値を検査する(Ｓ５５３)。そして、検査したフラグの値が、回路図データを出力しない値(Disable)である場合、Ｓ５５５の処理に進む。一方、検査したフラグの値が、回路図データを出力する値(Enable)である場合、Ｓ５５４の処理に進む。
【０１１５】
Ｓ５５４では、抽出部１８０は、Ｓ５５２で取得したハード機能に対応付けられている回路図データをハード部品ＤＢ１００から読み出す。そして、抽出部１８０は、計算機開発装置1のハード設計情報２６０へ、望ましくは計算機開発装置1が有するファイルシステムの所定ディレクトリ(例えば/result/edif/)へ、読み出した回路図データを出力する。
【０１１６】
次に、抽出部１８０は、Ｓ５５２で取得したハード機能に関して設定されている設計データ出力フラグの値を検査する(Ｓ５５５)。検査した設計データ出力フラグの値が、設計データを出力しない値(Disable)である場合、Ｓ５５１の処理に戻る。一方、検査したフラグの値が、設計データを出力する値(Enable)である場合、Ｓ５５６の処理に進む。
【０１１７】
Ｓ５５６では、抽出部１８０は、Ｓ５５２で取得したハード機能に対応付けられている設計データをハード部品ＤＢ１００から読み出す。そして、抽出部１８０は、計算機開発装置1のハード設計情報２６０へ、望ましくは計算機開発装置1が有するファイルシステムの所定ディレクトリ(例えば/result/design/)へ、読み出した設計データを出力して、Ｓ５５１の処理に戻る。
【０１１８】
そして、抽出部１８０は、Ｓ５５１に戻り、出力すべきハード機能が存在しないと判定するとＳ５５７に進む。すなわち、ハード機能の出力処理を終えたら、Ｓ５５７以降のソフト機能の出力処理に遷移する。
【０１１９】
次に、Ｓ５５７以降の処理を説明する。抽出部１８０は、図１０に示した最適化処理により最適化したソフト機能リストに登録されている各ソフト機能に対し、順にＳ５５７〜５６２の処理を行い、登録されている全てのソフト機能に対して、Ｓ５５７〜Ｓ５６２の処理を実行したら、Ｓ５６３の処理に進む。
【０１２０】
具体的には、Ｓ５５７では、抽出部１８０は、最適化処理により最適化したソフト機能リストを検査し、出力すべきソフト機能が存在するか否かを確認する。確認により、出力すべきソフト機能が存在しなければＳ５６３に進み、出力すべきソフト機能が存在すればＳ５５８に進む。
【０１２１】
そして、Ｓ５５７において、出力すべきソフト機能が存在しないと判定されると、Ｓ５６３で追加処理を実行して出力処理を終了する。なお、第１実施形態では、Ｓ５６３で行うべき処理は特にないので、そのまま出力処理を終了する。
【０１２２】
次に、Ｓ５５７において、出力すべきソフト機能が存在すると判定した場合に進むＳ５５８以降の処理を説明する。先ず、Ｓ５５８では、抽出部１８０は、ソフト機能リストからソフト機能を取得する。
【０１２３】
次に、抽出部１８０は、Ｓ５５８で取得したソフト機能に関して設定されているソースコード出力フラグの値を検査する(Ｓ５５９)。検査したソースコード出力フラグの値が、ソースコードを出力しない値(Disable)である場合、Ｓ５６１の処理に進む。一方、ソースコード出力フラグの値が、ソースコードを出力する値(Enable)である場合、Ｓ５６０の処理に進む。
【０１２４】
Ｓ５６０では、抽出部１８０は、Ｓ５５８で取得したソフト機能に対応付けられているソースコードをソフト部品ＤＢ１２０から読み出す。そして、抽出部１８０は、計算機開発装置1のソフト設計情報２８０へ、望ましくは計算機開発装置1が有するファイルシステムの所定ディレクトリ(例えば/result/source/)へ読み出したソースコードを出力し、Ｓ５６１の処理に進む。
【０１２５】
Ｓ５６１では、抽出部１８０は、Ｓ５５８で取得したソフト機能に関して設定されているバイナリ出力フラグの値を検査する。検査したバイナリ出力フラグの値が、バイナリを出力しない値(Disable)である場合、Ｓ５５７の処理に戻る。一方、バイナリ出力フラグの値が、バイナリを出力する値(Enable)である場合、Ｓ５６２の処理に進む。
【０１２６】
Ｓ５６２では、抽出部１８０は、Ｓ５５８で取得したソフト機能に対応付けられているバイナリをソフト部品ＤＢ１２０から読み出す。そして、抽出部１８０は、計算機開発装置1のソフト設計情報２８０へ、望ましくは計算機開発装置1が有するファイルシステムの所定ディレクトリ(例えば/result/binary/)へ、読み出したバイナリを出力し、Ｓ５５７の処理に戻る。このとき所定ディレクトリを基準として、ソフト部品ＤＢ１２０の対応するレコードのフィールド１２７に登録されている実装位置に指定された階層にバイナリファイルを格納するのが好適である。
【０１２７】
以上のようにすることで、出力機能２５０は、最適化されたハード部品およびソフト部品の設計情報を、ハード設計情報２６０およびソフト設計情報２８０として出力することが可能となる。
【０１２８】
続いて、本実施形態の抽出部１８０が出力する、ハード設計情報２６０およびソフト設計情報２８０の例を図１２に示す。
【０１２９】
なお、図示する例は、「ＭＯＤｘｌ」と「ＭＯＤｘ２」とのそれぞれの機能を融合した計算機装置を開発する場合を示している。すなわち、制約条件１６０に、「ＭＯＤｘｌ」を登録したレコードと、「ＭＯＤｘ２」を登録したレコードとを設定されている場合に出力される設計情報の例を示している。なお、以下では、制約条件１６０に登録されるフラグを、全て「Ｅｎａｂｌｅ」とする。
【０１３０】
抽出部１８０は、上記の制約条件１６０を基にして、選択機能２２０および最適化機能２４０により、ハード機能およびソフト機能を抽出する。ハード機能に関しては、共有可能なハード部品(ＰＲＯＣｐ１ＨＷ、ＲＡＭｓ１ＨＷ、ＲＯＭｆ１ＨＷ)と、共有不可のハード部品（ＬＡＮＣａ１ＨＷ、ＰＴｄ１ＨＷ、ＶＧＡｃ１ＨＷ）とを抽出する。また、ソフト機能に関しては、ＬＡＮＣａ１ＳＷ、ＶＧＡｃ１ＳＷ、ＰＲＯＣｐ１ＳＷ、ＯＳｚ１ＳＷ、ＭＯＤｘ１ＳＷ、ＭＯＤｘ２ＳＷを抽出する。
【０１３１】
そして、抽出部１８０は、出力機能により、上記の抽出結果と、制約条件１６０に登録されている各フラグとにより、図１２に示す、ハード設計情報２６０およびソフト設計情報２８０を出力する。
【０１３２】
このように、本発明の第１実施形態によれば、ハード部品ＤＢ１００、ソフト部品ＤＢ１２０、および関連ＤＢ１４０の情報から、計算機開発装置１に与えた制約条件１６０に関連したハードウェアの設計情報、およびソフトウェアの設計情報を取得することが可能となる。すなわち、第１実施形態によれば、開発者は、所望する計算機の機能を計算機開発装置１に設定するという簡単な作業だけで、開発対象の計算機の設計情報を取得することができる。なお、出力される設計情報には、所望した機能を実現するためのハードウェアに対応したソフトウェアの情報も含まれている。また、第１実施形態では、図１０に示した最適化処理により、設計情報を、共有可能な部品と共有不可の部品とに対応して最小の構成を表すようにしている。
【０１３３】
そのため、ハードウェアの設計資産およびソフトウェア資産の使い方を熟知していない開発者であっても、第１実施形態の計算機開発装置１を利用することで、簡単に、計算機装置のハードウェアおよびソフトウェアの両者を設計することができる。
【０１３４】
《第２実施形態》
次に本発明の第２実施形態を説明する。なお、第２実施形態の説明において、上述した第１実施形態と同じ構成については、特に断りのない限り、同じ符号を用いる。
【０１３５】
図１３は、本発明の第２実施形態における計算機開発装置の構成を表す機能ブロック図である。第２実施形態は、第１実施形態の機能に加えて、さらに、後述するテスト設計情報３８０を生成して出力する機能を付加している。第２実施形態では、テスト設計情報３８０を生成して出力するために、第１実施形態の構成に、テスト部品ＤＢ３２０を付加し、それに伴い関連ＤＢ３４０および制約条件４００の構成と、抽出部１８０の機能を一部変更している。なお、第１実施形態の計算機開発装置１と区別するために、第２実施形態においては、計算機開発装置５と称する。なお、第２実施形態の説明では、第１実施形態の構成と同じ構成の説明については簡略化し、異なる部分を中心に説明する。
【０１３６】
具体的には、第２実施形態の計算機開発装置５は、ハード部品ＤＢ１００、ソフト部品ＤＢ１２０、テスト部品ＤＢ３２０、関連ＤＢ３４０、制約条件４００、および抽出部３６０を有する。抽出部３６０は、選択機能２２０、最適化機能２４０、および出力機能２５１の３つの機能を備えている。
【０１３７】
テスト部品ＤＢ３２０は、計算機の所定の機能を検査するために必要なテストプログラムの情報(以下ではテスト部品と称する)が格納されるデータベースである。関連ＤＢ３４０は、第１実施形態の関連ＤＢ１４０のデータ構成に、さらにテスト部品ＤＢ３２０を関連付けるデータを付加したデータベースである。制約条件４００は、第１実施形態の制約条件のデータ構成に、さらに、テスト部品ＤＢ３２０を関連付けるデータを付加したファイルである。これらのデータベースの構成は後段で詳細に説明する。
【０１３８】
抽出部３６０は、開発者が設定した制約条件４００と、各データベース（ハード部品ＤＢ１００、ソフト部品ＤＢ１２０、テスト部品ＤＢ３２０、関連ＤＢ３４０）に格納されたデータとを用いて、開発対象の計算機が必要とするハード部品およびソフト部品と、テスト部品とを抽出して必要に応じて変換処理を行う。すなわち、第２実施形態の抽出部３６０と、第１実施形態の抽出部１８０との違いは、テスト部品を抽出して、出力するための機能が付加されたことにある。抽出部３６０は、それぞれの抽出変換結果をハード設計情報２６０、ソフト設計情報２８０、テスト設計情報３８０として出力する。
【０１３９】
このように、第２実施形態では、第１実施形態の場合と同様に、開発者は、制約条件４００を介して、開発対象の計算機が必要とする計算機機能を選択する。計算機開発装置５は、制約条件４００によって選択された計算機機能と関連付けられたハード部品およびソフト部品の情報と、テスト部品を示す情報とを出力する。すなわち、第２実施形態によれば、開発者は、制約条件４００を設定するだけで、開発対象の計算機が必要とする計算機機能を実現するためのハード部品およびソフト部品の情報と、テスト部品の情報とを取得することができるようになる。
【０１４０】
次に、本発明の第２実施形態の計算機開発装置５のハードウェア構成を説明する。
【０１４１】
図１４は、本発明の第２実施形態の計算機開発装置５のハードウェア構成の一例を示した図である。なお、図示する計算機開発装置５は、上述した図２で示したものと、不揮発性メモリに格納されているデータの一部が異なる以外は、同じである。
【０１４２】
具体的には、計算機開発装置５は、ＣＰＵ１０、内部バス１１、ＲＡＭ（Random Access Memory）１２、通信部１３、および不揮発性メモリ１５を有する。不揮発性メモリ１５には、第１実施形態の不揮発性メモリ１４に格納されているデータに加えて、新たに追加されたテスト部品ＤＢ３２０やテスト設計情報３８０が格納されている。そして、第２実施形態の抽出部３６０の機能は、ＣＰＵ１０が不揮発性メモリ１５に格納されているＯＳ２０、抽出プログラム３６００、および各種情報をＲＡＭ１２にロードして実行することにより実現される。
【０１４３】
次に、第２実施形態のテスト部品ＤＢ３２０のデータ構成について説明する。
【０１４４】
図１５は、本発明の第２実施形態のテスト部品３２０のデータ構成を模擬的に示した図である。
【０１４５】
テスト部品ＤＢ３２０は、テスト機能を登録するためのフィールド３２１と、テストプログラムを登録するためのフィールド３２２と、テスト仕様を登録するためのフィールド３２３と、バージョンを登録するためのフィールド３２４とを備えて、１つのレコードが構成される。
【０１４６】
フィールド３２１に登録するテスト機能とは、テスト部品に関するインデックス（テスト部品を特定する識別情報）である。
【０１４７】
フィールド３２２に登録するテストプログラムとは、ハードウェア部品やソフトウェア部品を検査するためのプログラムである。検査のために必要なテストプログラムを複数記述することが可能である。なお、本実施形態では拡張子「exe」という実行ファイルを例として取り上げたが、これに限定されることは無く、スクリプトファイルや実行手順を記したドキュメントであっても良い。
【０１４８】
フィールド３２３に登録するテスト仕様とは、テストプログラムの対象となるハードウェア部品やソフトウェア部品の検査をする際に、必要となる前提条件や検査方針、実行方法に関する注釈が記されているドキュメントである。
【０１４９】
フィールド３２４に登録するバージョンとは、当該テスト機能を管理する際に使用するデータであり、当該情報の履歴を示す。
【０１５０】
図示するテスト部品ＤＢ３２０は、各レコードに以下のデータが登録されている例を示している。レコード３３０には、ＬＡＮコントローラの機能をテストする「ＬＡＮＣａ１ＥＸ」に関するデータが登録されている。レコード３３１には、画面出力制御用のＶＧＡチップの機能をテストする「ＶＧＡｃ１ＥＸ」に関するデータが登録されている。レコード３３２には、ＲＡＭの機能をテストする「ＲＡＭｓ１ＥＸ」に関するデータが登録されている。レコード３３３には、ＲＯＭの機能をテストする「ＲＯＭｆ１ＥＸ」に関するデータが登録されている。レコード３３４には、ＣＰＵの機能をテストする「ＰＲＯＣｐ１ＥＸ」に関するデータが登録されている。レコード３３５（３３６）には、計算機モジュールの機能をテストする「ＭＯＤｘ１（ＭＯＤｘ２）」に関するデータが登録されている。
【０１５１】
そして、例えば、レコード３３０では、「ＬＡＮＣａ１ＥＸ」について、テストプログラムが「ＬＡＮＣａ１．ｅｘe」であり、テスト仕様が「ＬＡＮＣａｌＥＸ.ｐｄｆ」であり、バージョンが「Ｒｅｖ.２（revision2）」であることが示されている。
【０１５２】
以上のようにテスト部品ＤＢ３２０を構成することにより、計算機の構成要素に関連する機能に関して、対応するテストプログラムやテスト手法を知ることができる。
【０１５３】
次に、第２実施形態の関連ＤＢ３４０のデータ構成について説明する。
【０１５４】
図１６は、本発明の第２実施形態の関連ＤＢ３４０のデータ構成を模擬的に示した図である。なお、第２実施形態の関連ＤＢ３４０と、第１実施形態の関連ＤＢ１４０との違いは、テスト機能との関連付けを行う要素である、テスト機能を登録するためのデータと、テストバージョンを登録するためのデータとが追加された点にある。
【０１５５】
具体的には、関連ＤＢ３４０は、第１実施形態の関連ＤＢ１４０のレコードと同じフィールド１４１〜１４６と、テスト機能を登録するためのフィールド１４７と、テストバージョンを登録するためのフィールド１４８と、を備えて１つのレコードが構成される。
【０１５６】
関連ＤＢ３４０は、各レコードにおいて、計算機機能に対して、ハード機能、ソフト機能、およびテスト機能を対応付けて登録しているところが特徴である。また、ハード機能、ソフト機能、およびテスト機能の組みが同一であっても、それぞれのバージョンが異なる場合には、別のレコードで管理するようにしてもよい。
【０１５７】
以上のような関連ＤＢ３４０のデータ構成により、計算機機能に対応したハード機能およびソフト機能と、テスト機能との関連を知ることができる。
【０１５８】
次に、第２実施形態の計算機開発装置５の制約条件４００について説明する。
【０１５９】
図１７は、本発明の第２実施形態の計算機開発装置５における制約条件４００のデータ構成を模擬的に示した図である。
【０１６０】
図示するように、第２実施形態の制約条件４００は、第１実施形態の制約条件１６０に、テストプログラムを出力するか否かを示すフラグ（テストプログラム出力フラグ）と、テスト仕様を出力するか否かを示すフラグ（テスト仕様出力フラグ）と、を追加したものである。具体的には、制約条件４００は、第１実施形態の制約条件１６０のレコードと同じフィールド１６１〜１６５と、テストプログラム出力フラグを登録するためのフィールド１６６と、テスト仕様出力フラグを登録するためのフィールドと、を備えて１つのレコードが構成される。
【０１６１】
例えば、レコード４０１では、計算機モジュールＭＯＤｘ１に関して、バイナリのみ出力せず(Disableと記載)、他は全て出力する(Enableと記載)旨を各フラグで指示している。
【０１６２】
続いて、本発明の第２実施形態の抽出部３６０の動作について説明する。第２実施形態の抽出部３６０は、出力機能２５１による処理が第１実施形態のものと異なる以外は、第１実施形態のものと同じである。
【０１６３】
具体的には、第２実施形態の抽出部３６０は、上述した図９と同様の手順による選択処理を行う。また、抽出部３６０は、図１０と同様の手順による最適化処理を行う。また、抽出部３６０は、図１１の出力処理のうち、Ｓ５６３において、図１８に示す追加処理を行う。
【０１６４】
なお、第２実施形態では、抽出部３６０は、図９のＳ５１１で作成する計算機機能リストに、制約条件１６０で指定されている、テストプログラム出力フラグおよびテスト仕様出力フラグを含めるものとする。すなわち、第２実施形態の計算機機能リストは、各計算機機能に、テストプログラム出力フラグおよびテスト仕様出力フラグも対応付けられている。以下、第２実施形態の出力処理を図１８に示す。
【０１６５】
図１８は、本発明の第２実施形態が行う、追加出力処理の詳細な処理フローを示した図である。この追加処理は、図１１のＳ５６３で行われる処理である。なお、以下の動作は、抽出部３４０の出力機能２５１により行われる。
【０１６６】
図１８では、抽出部３４０は、計算機機能リストを参照し、計算機機能リストに登録されている計算機機能を示すデータに対して、順番に（例えば、リストの上から順次）、Ｓ５７０〜Ｓ５７５の処理を行い、計算機機能リストに登録されている計算機機能を示すデータを全て処理できたら、追加処理を終了する。
【０１６７】
具体的には、抽出部３４０は、図９のＳ５１１で作成した計算機機能リストを参照し、出力処理すべき計算機機能が存在するか否かを確認する（Ｓ５７０）。そして、出力処理すべき計算機機能が存在しない場合、追加出力処理を終了する。一方、出力処理すべき計算機機能が存在する場合、出力すべき計算機機能を特定し（例えば、リストの上から順番に特定する）、Ｓ５７１の処理に進む。
【０１６８】
Ｓ５７１では、抽出部３６０は、特定した計算機機能に対応するテスト機能を取得する(Ｓ５７１)。具体的には、抽出部３６０は、関連ＤＢ３４０にアクセスして、関連ＤＢ３４０に登録されているレコードの中から、特定した計算機機能を示すデータが登録されたレコードを検索する。抽出部３４０は、検索したレコードの中から、テスト機能を取り出す。
【０１６９】
次に、抽出部３６０は、テスト機能に関して設定されているテストプログラム出力フラグの値を検査する(Ｓ５７２)。具体的には、抽出部３６０は、計算機機能リストを参照し、特定したテスト機能に対応付けられているテストプログラム出力フラグの値を参照する。そして、テストプログラム出力フラグが、テストプログラムを出力しないフラグ(フラグの値がDisableである)の場合、Ｓ５７４へ分岐する。テストプログラムを出力するフラグ(フラグの値がEnableである)の場合、Ｓ５７３に進む。
【０１７０】
Ｓ５７３では、抽出部３６０は、テストプログラムを出力する。例えば、抽出部３６０は、計算機開発装置５が有するファイルシステムの所定ディレクトリ(例えば/result/testprog/)ヘテストプログラムを出力する。
【０１７１】
次に、特定したテスト機能に関して設定されているテスト仕様出力フラグの値を検査する(Ｓ５７４)。具体的には、抽出部３６０は、計算機機能リストを参照し、特定したテスト機能に対応付けられているテスト仕様出力フラグの値を参照する。そして、テスト仕様出力フラグが、テスト仕様を出力しないフラグ(フラグの値がDisableである)の場合、Ｓ５７０へ戻る。テストプログラムを出力するフラグ(フラグの値がEnableである)の場合、Ｓ５７５に進む。
【０１７２】
Ｓ５７５では、抽出部３６０は、テスト仕様を出力する。例えば、抽出部３６０は、計算機開発装置５が有するファイルシステムの所定ディレクトリ(例えば/result/testspec/)ヘテスト仕様を出力する。
【０１７３】
なお、テスト設計情報３８０を出力する際に、関連ＤＢ３４０に記述されているハード機能、ソフト機能、およびテスト機能の組みが同一であっても、それぞれのバージョンが整合しない場合が存在しうる。その際、テスト設計情報３８０を生成する際に、開発者へ注意を促すためにメッセージをテスト設計情報３８０へ出力するのが好適である。このとき、出力するテストプログラムやテスト仕様に関しては、「最新のバージョンのテスト部品を出力する」あるいは「全てのテスト部品を出力する」、「ソフト部品のバージョンを優先して整合するテスト部品を出力する」などの方法が取りうる。
【０１７４】
以上のようにすることで、出力機能２５１は、最適化されたハード部品とソフト部品の設計情報に加えてテスト部品の設計情報を出力することが可能となる。
【０１７５】
続いて、第２実施形態の抽出部３６０が出力する、テスト設計情報３８０の例を図１９に示す。
【０１７６】
なお、図示する例は、「ＭＯＤｘｌ」と「ＭＯＤｘ２」とのそれぞれの機能を融合した計算機装置を開発する場合を示している。すなわち、制約条件４００に、「ＭＯＤｘｌ」を登録したレコードと、「ＭＯＤｘ２」を登録したレコードとが設定されている場合に出力されるテスト設計情報３８０の例を示している。なお、制約条件４００に登録されるフラグを、全て「Ｅｎａｂｌｅ」とする。
【０１７７】
抽出部３６０は、上記の制約条件４００を基にして、ハード設計情報２６０とソフト設計情報２８０とに加えて、テスト設計情報３８０を出力する。そして、テスト設計情報３８０は、図１９の示す通り出力される。なお、ハード設計情報２６０とソフト設計情報２８０は、図１２に示した通りである。
【０１７８】
このように、本発明の第２実施形態によれば、ハード部品ＤＢ１００、ソフト部品ＤＢ１２０、テスト部品ＤＢ３２０、関連ＤＢ３４０の情報から、計算機開発装置５に与えた制約条件４００に関連したハードウェアの設計情報およびソフトウェアの設計情報と、試験のための設計情報とを得ることが可能となる。開発者は、開発対象の計算機機能を制約条件４００に設定するだけで、計算機のハードとソフトの設計情報に加え、試験の設計情報を得ることが可能となる。
【０１７９】
そのため、本発明の第２実施形態によれば、新たな装置を開発する際の検査に関しても、過去の資産を活用することが可能となり、ハードウェア部品やソフ
トウェア部品を再利用する際の負担を大幅に軽減することが可能となる。すなわち、第２実施形態によれば、第１実施形態の効果に加えて、さらに、設計した計算機をチェックする仕組みをつくることができるため品質の高い計算機を作ることが可能になる。
《第３実施形態》
次に本発明の第３実施形態を説明する。なお、第３実施形態の説明において、上述した第１実施形態および第２実施形態と同じ構成については、特に断りのない限り、同じ符号を用いる。なお、第３実施形態は、第２実施形態の構成を基に適用した例を示すが、第１実施形態の構成に対しても適用することは可能である。
【０１８０】
図２０および図２１に本発明の第３実施形態の構成を示す。図２０は、本発明の第３実施形態の計算機開発装置の機能ブロック図である。図２１は、本発明の第３実施形態の計算機開発装置のハードウェア構成の一例を示した図である。
【０１８１】
第３実施形態の特徴は、ネットワーク３に接続する端末4を新たに導入し、計算機開発装置２に制約設定部３００を設けたことにある。
【０１８２】
具体的には、図２０に示すように、第３実施形態の計算機開発装置２は、第２実施形態の計算機開発装置５の構成に、制約設定部３００を付加したものである。
【０１８３】
制約設定部３００は、計算機開発装置２の制約条件４００をネットワーク３に接続されている端末４（図２１参照）から設定するための手段である。すなわち、制約設定部３００は、端末４からのデータや各種要求を受け付け、制約条件４００の設定を行う。
【０１８４】
また、図２１に示すように、第３実施形態のハードウェア構成は、不揮発性メモリ１６に格納されているデータが第２実施形態のものと一部異なる点と、ネットワーク３に端末４が接続されている点以外は、第２実施形態のものと同じである。具体的には、計算機開発装置２が有する不揮発性メモリ１６には、第２実施形態の不揮発性メモリ１５（図１４参照）に格納されている各種データおよびプログラムに加え、さらに、制約設定部３００の機能を実現するためのプログラム（制約設定プログラム３０００）が格納されている。
【０１８５】
端末４は、計算機開発装置２の制約設定部３００と通信し、制約条件４００を設定する計算機である。端末４は、ユーザからの入力を受け付けて、対象の計算機と接続する機能や、現在の制約条件４００の設定値を表示する機能、設定値を追加、変更する機能を有する。また、端末４は、ネットワーク３に接続できるインターフェースを有する。なお、端末４の具体的な構成について特に限定しない。端末４は、ユーザからの入力を受け付けて、計算機開発装置２の制約設定部３００と通信して、制約設定部３００を介して、制約条件４００を設定できる機能を有する計算機であればよい。例えば、端末４には、ＨＴＴＰによるデータの入出力可能なＷｅｂブラウザを具備した計算機（例えば、パーソナルコンピュータ（ＰＣ）やワークステーション）を用いることができる。また、Ｗｅｂブラウザへ入出力する情報を適切に制限することで携帯電話やＰＤＡ（Personal Digital Assistant）が具備するＷｅｂブラウザを利用しても良い。
【０１８６】
なお、本実施形態では、端末４は、ネットワーク３に接続できるインターフェースを有するものとして説明を行うが、インターフェースはそれに限定されるものではない。例えば、端末４は、ＲＳ２３２ＣやＲＳ４２２などのシリアル伝送を具備する端末であり、ネットワーク３を介さずに直接、計算機開発装置２に接続するよう構成し、これらの計算機間を、ＳＬＩＰ（Serial Line Internet Protocol)やＰＰＰ（Point to Point Protocol）通信方式などにより接続しても本実施形態の効果を損なうものではない。
【０１８７】
また、第３実施形態では、端末４を独立した計算機として説明するが、端末４の機能を計算機開発装置２が有していても良い。その場合、それぞれの計算機は、設定に必要な画面出力手段(図示しない)が必要である。また、端末４の機能を備える計算機は、マウスやトラックボールなどのポインティングデバイス、キーボード等の入力手段(図示しない)を備える。
【０１８８】
次に、端末４および制約設定部３００の動作を説明する。端末４は、ネットワーク３を介して、制約設定部３００に接続する。その後、端末４は、制約設定部３００を介して、現在の制約条件４００に保持されている設定値を読み出す。端末４は、読み出した設定値を液晶ディスプレイ等の画面出力手段（図示しない）に表示する。開発者は、端末４の画面表示手段に表示されている設定値を見ながら、端末４の入力手段を介して設定値の変更指示を入力する。端末４は、開発者からの変更指示を受けて、制約設定部３００に設定値の変更指示を通知する。制約設定部３００は、通知された変更指示にしたがい、制約条件４００の設定値を変更して、その結果を端末４に応答する。
【０１８９】
なお、制約設定部３００の機能は、ＣＰＵ１０が不揮発性メモリ１６に記憶されている制約設定プログラム３０００をロードして実行することにより実現される。
【０１９０】
ここで、制約設定部３００の構成例について、図２２を用いて説明する。
【０１９１】
図２２は、本発明の第３実施形態の制約設定部３００の構成例を示した図である。
【０１９２】
図示するように、制約設定部３００は、ＨＴＴＰサーバ４０、制約条件取得部４１、および制約条件変更部４２を有する。
【０１９３】
ＨＴＴＰサーバ４０は、通信部１３およびネットワーク３を介して到達する端末４と通信を行い、端末４からの接続要求に対する応答を行う。
【０１９４】
制約条件取得部４１は、ＨＴＴＰサーバ４０からの要求に応じて、制約条件４００に保持されている設定値を読み出し、ＨＴＴＰサーバ４０に読み出した設定値を出力する。制約条件変更部４２は、ＨＴＴＰサーバ４０からの要求に応じて、制約条件４００に保持されている設定値の値を変更する。なお、制約条件取得部４１および制約条件変更部４２は、ＨＴＴＰサーバ４０と通信するソフトウェアであり、ＣＧＩやサーブレットなどにより実装されるのが好適である。
【０１９５】
具体的には、ＨＴＴＰサーバ４０は、端末４から、制約条件取得を要求された場合、制約条件取得部４１へ当該要求を発行する。制約条件取得部４１は、制約条件４００から対応する情報を読み出し、端末４により閲覧可能な形式に書式を変換して、変換した情報をＨＴＴＰサーバ４０へ返答する。ＨＴＴＰサーバ４０は、制約条件取得部４１が返答した情報を受け付け、受け付けた情報を要求元の端末４へ応答を返信する。
【０１９６】
また、ＨＴＴＰサーバ４０は、端末４から、制約条件変更を要求された場合、制約条件変更部４２へ当該要求を発行する。制約条件変更部４２は、要求された変更すべき情報を元に制約条件４００を変更する。
【０１９７】
続いて、端末４で出力される制約条件設定画面について、図２３を用いて説明する。
【０１９８】
図２３は、本発明の第３実施形態の端末４で出力される制約画面の一例を示した図である。
【０１９９】
ここで、端末４には、計算機開発装置２に保持されている制約条件４００の設定変更（或いは設定値の入力）を受け付けるための制約条件設定ツールが実装されているものとする。なお、図示する例では、制約条件設定ツールの初期画面７００を例示している。
【０２００】
なお、以下の説明では、制約条件を設定するための専用ツールによる方式を示すが、Ｗｅｂブラウザにより同様の画面を出力することも可能である。その場合には、初期画面情報を端末４あるいは別の計算機(図示せず)にて保持しておき、Ｗｅｂブラウザの起動時に初期画面情報を参照すればよい。
【０２０１】
さて、制約条件設定画面７００は、計算機開発装置２に保持されている制約条件４００の参照指示を受け付ける参照ボタン７０１と、制約条件変更の要求を受け付ける変更ボタン７０２と、開発する計算機機能を選択するチェック画面７１０と、を有する。ユーザは、端末４に接続されているマウスやトラックボールなどのポインティングデバイス(図示せず)により、制約条件設定画面７００上に表示されているカーソル７２０を移動操作し、対象のボタンやチェックボタンを選択し押下する。この操作により、ユーザは、計算機開発装置２に、制約条件を設定する。
【０２０２】
次に、図示する制約条件設定画面７００を参照しながら、開発者が所望する計算機の機能を制約条件４００に反映させる手順を説明する。
【０２０３】
先ず、開発者は、端末４に接続されているポインティングデバイス等を操作して、制約条件設定画面７００上の参照ボタン７０１を押下して、現在の制約条件４００の値をチェック画面７１０へ呼び出す。具体的には、開発者が参照ボタン７０１を押下すると、端末4は、計算機開発装置２の制約設定部３００と通信して制約条件４００に登録されている設定値を取得する。なお、制約設定部３００は、端末４からの要求に応じて制約条件４００の設定値を読み出す際、現在の制約条件４００に含まれていないが、制約条件の対象となる項目も関連ＤＢ３４０を参照して、端末４に出力することが望ましい。このようにすれば、端末４は、現在の制約条件４００に含まれていないが、制約条件の対象となる項目もチェック画面７１０へ呼び出して表示することができる。
【０２０４】
その後、開発者は、所望する計算機機能名７１１に対応する、機能有効７１２を登録するためのチェックボックスにチェックを入れる。開発者は、合わせて、必要な設計情報に対応する、回路図出力有効７１３を登録するためのチェックボックスにチェックを入れる。また、同様に、開発者は、設計データ出力有効７１４、ソースコード出力有効７１５、バイナリ出力有効７１６、テストプログラム出力有効７１７、およびテスト仕様出力有効７１８を登録するための各チェックボックスにチェックを入れる。
【０２０５】
必要な設計情報へのチェックが完了したら、開発者は、変更ボタン７０２を押下する。すると、端末４は、開発者の指定した設計情報を計算機開発装置２の制約設定部３００へ通知する。その後、制約設定部３００により、計算機開発装置２に登録されている制約条件４００が更新される。
【０２０６】
なお、図２３に示すチェック項目の例で制約条件４００を更新すると、開発者は、制約条件４００を得ることができる。
【０２０７】
以上により、本発明の第３実施形態によれば、開発者は、設定対象の計算機機能について専門的な知識が無くとも、ディスプレイに表示された制約条件設定画面７００を見ながら、画面上でチェック項目を選択するだけで、開発対象となる計算機が必要とする機能を追加あるいは変更、削除することが可能となる。
【０２０８】
なお、本発明は、以上で説明した実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形が可能である。
【０２０９】
例えば、抽出部１８０は、ハード部品ＤＢ１００およびソフト部品ＤＢ１２０から抽出した設計情報を出力する際、ハード部品ＤＢ１００、ソフト部品ＤＢ１２０、および関連ＤＢ１４０を参照して、抽出した設計情報のバージョンが関連ＤＢ１４０で指定されているバージョン（ハードバージョン、ソフトバージョン）と異なる場合に、警告メッセージを出力するようにしてもよい。
【０２１０】
また、例えば、上記の実施形態において、ハードウェア部品とソフトウェア部品とに分けて説明してきたが、本発明に関しては、ハードウェア部品が物理的に部品として存在するものに制限されるものではない。例えば、ハードウェア記述言語にて論理を記述されている「Ｒｅｇｉｓｔｅｒ Ｔｒａｎｓｆｅｒ Ｌｅｖｅｌ（ＲＴＬ)」設計情報や、Ｃ言語で記述された論理設計情報であっても同様に扱うことが可能である。
【０２１１】
また、上記実施形態では、抽出部１８０（或いは、抽出部３６０）の機能は、ＣＰＵ１０が各プログラム（ＯＳおよび抽出プログラム）を実行することにより実現される場合を例にしているが特にこれに限定するものではない。例えば、抽出部１８０（或いは、抽出部３６０）の機能を実現するために専用に設計されたハードウェア（ＡＳＩＣ（Application Specific Integrated Circuit）等）により、抽出部１８０（或いは、抽出部３６０）の機能を実現するようにしてもよい。
【図面の簡単な説明】
【０２１２】
【図１】本発明の第１実施形態における計算機開発装置の構成を表す機能ブロック図である。
【図２】本発明の第１実施形態の計算機開発装置のハードウェア構成の一例を示した図である。
【図３】本発明の第１実施形態の計算機開発装置の抽出部１８０の動作フローを示す図である。
【図４】本発明の第１実施形態のハード部品ＤＢ１００のデータ構成を模擬的に示した図である。
【図５】本発明の第１実施形態のハードウェア部品の説明図である。
【図６】本発明の第１実施形態のソフト部品ＤＢ１２０のデータ構成を模擬的に示した図である。
【図７】本発明の第１実施形態の関連部品ＤＢ１４０のデータ構成を模擬的に示した図である。
【図８】本発明の第１実施形態の制約条件１６０のデータ構成を模擬的に示した図である。
【図９】図３のＳ５１０に示した選択処理の詳細な処理フローを示した図である。
【図１０】図３のＳ５３０に示した最適化処理の詳細な処理フローを示した図である。
【図１１】図３のＳ５５０に示した出力処理の詳細な処理フローを示した図である。
【図１２】本発明の第１実施形態の抽出部１８０が出力する、ハード設計情報２６０およびソフト設計情報２８０の一例を示した図である。
【図１３】本発明の第２実施形態における計算機開発装置の構成を表す機能ブロック図である。
【図１４】本発明の第２実施形態の計算機開発装置５のハードウェア構成の一例を示した図である。
【図１５】本発明の第２実施形態のテスト部品３２０のデータ構成を模擬的に示した図である。
【図１６】本発明の第２実施形態の関連ＤＢ３４０のデータ構成を模擬的に示した図である。
【図１７】本発明の第２実施形態の計算機開発装置５における制約条件４００のデータ構成を模擬的に示した図である。
【図１８】本発明の第２実施形態が行う、追加出力処理の詳細な処理フローを示した図である。
【図１９】本発明の第２実施形態の抽出部３６０が出力する、テスト設計情報３８０のデータ構成を模擬的に示した図である。
【図２０】本発明の第３実施形態の計算機開発装置の機能ブロック図である。
【図２１】本発明の第３実施形態の計算機開発装置のハードウェア構成の一例を示した図である。
【図２２】本発明の第３実施形態の制約設定部３００の構成例を示した図である。
【図２３】本発明の第３実施形態の端末４で出力される制約画面の一例を示した図である。
【符号の説明】
【０２１３】
１…計算機開発装置、２…計算機開発装置、３…ネットワーク、５…計算機開発装置、１０…ＣＰＵ、１１…内部バス、１２…ＲＡＭ、１３…通信部、１４…不揮発性メモリ、１５…不揮発性メモリ、１６…不揮発性メモリ、２０…ＯＳ、４０…ＨＴＴＰサーバ、４１…制約条件取得部、４２…制約条件変更部、１００…ハード部品ＤＢ、１２０…ソフト部品ＤＢ、１４０…関連ＤＢ、１６０…制約条件、１８０…抽出部、２２０…選択機能、２４０…最適化機能、２５０…出力機能、２６０…ハード設計情報、２８０…ソフト設計情報、３００…制約条件設定部、３４０…関連ＤＢ、３６０…抽出部、４００…制約条件
【図１】
2008052410.tif 000003
【図２】
2008052410.tif 000004
【図３】
2008052410.tif 000005
【図４】
2008052410.tif 000006
【図５】
2008052410.tif 000007
【図６】
2008052410.tif 000008
【図７】
2008052410.tif 000009
【図８】
2008052410.tif 000010
【図９】
2008052410.tif 000011
【図１０】
2008052410.tif 000012
【図１１】
2008052410.tif 000013
【図１２】
2008052410.tif 000014
【図１３】
2008052410.tif 000015
【図１４】
2008052410.tif 000016
【図１５】
2008052410.tif 000017
【図１６】
2008052410.tif 000018
【図１７】
2008052410.tif 000019
【図１８】
2008052410.tif 000020
【図１９】
2008052410.tif 000021
【図２０】
2008052410.tif 000022
【図２１】
2008052410.tif 000023
【図２２】
2008052410.tif 000024
【図２３】
2008052410.tif 000025