(57)【要約】【課題】  実行可能プログラムが格納されるＲＯＭサイズに関する情報を考慮して、適切なプログラムコードを生成する。【解決手段】  実行形式のプログラムを生成する情報処理装置であって、前記実行形式のプログラムを生成した際に、設計図面構成要素に対応する該プログラムのサイズを取得し、データベース２１７に記憶する手段（２１６）と、入力される設計図面に基づいて実行形式のプログラムを生成する際に用いられるプラットフォームとプログラムコード生成パターンとを取得し、これに対応する設計図面の構成要素についてのプログラムサイズを、前記データベース８０７より取得する手段（２２０）と、取得された前記構成要素についてのプログラムサイズを用いて、前記入力される設計図面に基づいて生成される前記実行形式のプログラムのサイズを算出する算出手段（２２８）とを備える。【選択図】  図２
2008015945.tif 000002
【特許請求の範囲】
【請求項１】
入力される設計図面に対して、プラットフォームの種類に応じたプログラムコードを生成し、該生成したプログラムコードをコンパイル・リンクすることで、実行形式のプログラムを生成する情報処理装置であって、
前記実行形式のプログラムを生成した際に、前記設計図面を構成する各構成要素に対応する該プログラムのサイズを取得し、該取得した各構成要素に対応する該プログラムのサイズのうち、前記プラットフォームに依存し、かつ該実行形式のプログラムが生成された際に生成されたプログラムコードの生成手順が記述されたプログラムコード生成パターンに依存する一方で、前記設計図面に依存しない前記構成要素についての該プログラムのサイズを抽出し、該プラットフォームを識別する識別情報および該プログラムコード生成パターンを識別する識別情報とに対応付けてデータベースに記憶する構成要素サイズデータベース生成手段と、
入力される設計図面に基づいて実行形式のプログラムを生成する際に、生成に際して用いられるプラットフォームとプログラムコード生成パターンとを取得し、これに対応する該入力される設計図面の構成要素についての生成後の該プログラムのサイズを、前記構成要素サイズデータベースより取得する構成要素サイズ取得手段と、
前記構成要素サイズ取得手段において取得された前記サイズを用いて、前記入力される設計図面に基づいて生成される前記実行形式のプログラムのサイズを算出する算出手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記算出手段は、前記入力される設計図面を構成する各構成要素ごとに、前記生成される実行形式のプログラムのサイズを算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記入力される設計図面に基づいて前記実行形式のプログラムを生成する際に用いられる前記プログラムコード生成パターンは、複数選択可能であり、
前記算出手段は、前記選択されたプログラムコード生成パターンごとに、前記入力される設計図面に基づいて生成される前記実行形式のプログラムのサイズを算出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記算出手段は、更に、前記選択されたプログラムコード生成パターンごとに算出された前記実行形式のプログラムのサイズの差を算出することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記算出手段は、前記入力される設計図面に基づいて生成される前記実行形式のプログラム全体のサイズを算出することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記実行形式のプログラムを生成した際の、該プログラム全体のサイズを取得し、前記プラットフォームを識別する識別情報および前記プログラムコード生成パターンを識別する識別情報とに対応付けて全体サイズデータベースに記憶する全体サイズデータベース生成手段と、
入力される設計図面に基づいて前記実行形式のプログラムを生成する際に用いられる前記プラットフォームと前記プログラムコード生成パターンとに対応する前記プログラム全体のサイズを、前記全体サイズデータベースより取得する全体サイズ取得手段と、
前記全体サイズ取得手段において取得された前記プログラムの全体サイズを用いて、前記入力される設計図面に基づいて生成される前記実行形式のプログラムの全体サイズを算出する全体サイズ算出手段と
を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記入力される設計図面に基づいて前記実行形式のプログラムを生成する際に用いられる前記プログラムコード生成パターンは、複数選択可能であり、
前記全体サイズ算出手段は、前記選択されたプログラムコード生成パターンごとに、前記入力された設計図面に基づいて生成される前記実行形式のプログラムの全体サイズを算出することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記全体サイズ算出手段は、更に、前記選択されたプログラムコード生成パターンごとに算出された前記実行形式のプログラムの全体サイズの差を算出することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
入力される設計図面に対して、プラットフォームの種類に応じたプログラムコードを生成し、該生成したプログラムコードをコンパイル・リンクすることで、実行形式のプログラムを生成する情報処理装置における情報処理方法であって、
前記実行形式のプログラムを生成した際に、前記設計図面を構成する各構成要素に対応する該プログラムのサイズを取得し、該取得した各構成要素に対応する該プログラムのサイズのうち、前記プラットフォームに依存し、かつ該実行形式のプログラムが生成された際に生成されたプログラムコードの生成手順が記述されたプログラムコード生成パターンに依存する一方で、前記設計図面に依存しない前記構成要素についての該プログラムのサイズを抽出し、該プラットフォームを識別する識別情報および該プログラムコード生成パターンを識別する識別情報とに対応付けてデータベースに記憶する構成要素サイズデータベース生成工程と、
入力される設計図面に基づいて実行形式のプログラムを生成する際に、生成に際して用いられるプラットフォームとプログラムコード生成パターンとを取得し、これに対応する該入力される設計図面の構成要素についての生成後の該プログラムのサイズを、前記構成要素サイズデータベースより取得する構成要素サイズ取得工程と、
前記構成要素サイズ取得工程において取得された前記サイズを用いて、前記入力される設計図面に基づいて生成される前記実行形式のプログラムのサイズを算出する算出工程と
を備えることを特徴とする情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法をコンピュータによって実現させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力される設計図面に対するプログラムコードを生成し、該生成したプログラムコードをコンパイル・リンクすることで、実行形式のプログラム（実行可能プログラム）を生成する情報処理技術に関するものである。
【背景技術】
【０００２】
近年、ソフトウェア設計技術として、モデル駆動型アーキテクチャー（Ｍｏｄｅｌ  Ｄｒｉｖｅｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ）技術（以降、ＭＤＡ技術と称す）が広まり、一般に採用されるようになってきている。ＭＤＡ技術とは、オペレータが入力したソフトウェアの設計図面情報から各種プラットフォームのプログラムコードを自動的に生成する技術であり、同技術によれば、入力したソフトウェアの設計図面情報をＭＤＡ専用ツール上で動作させ、検証することができる。これらソフトウェアの設計図面情報の代表的な例としては、オブジェクト指向技術のモデル表記言語であるＵＭＬやＳＤＬなどが挙げられる。なお、ＵＭＬとは、Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅの略称であり、ＳＤＬとは、Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ＆  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅの略称である。
【０００３】
ＭＤＡ技術の分野においては、プログラムコードの最適化を目的として、いくつかの提案がなされている。一例として、特開平１１−２３７９８０号公報掲載の「オブジェクト指向最適化コード生成装置および方法」が挙げられる。あるいは、特開２００４−１１８８６５号公報掲載の「最適化ソフトウエア生成方法」が挙げられる。これらの公報によれば、オブジェクト指向機能排除手段を用いて仮想関数の機能を排除することにより、あるいはインスタンスの動的生成の機能を排除することにより、必要なメモリ容量を削減することが開示されている。
【特許文献１】特開平１１−２３７９８０号公報
【特許文献２】特開２００４−１１８８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、既存のプログラム生成装置により生成されるプログラムコードの場合、設計図面情報からプログラムコードを生成する際に利用されるルールによっては、最終成果物である実行可能プログラムのサイズが大きく異なってくる。このため、利用されるルール次第で実行のために多くのＲＯＭが必要となったり、あるいは十分な応答速度が得られないといった問題が生じえる。この結果、組み込み制御システムなどのようにメモリ容量や応答速度の制限が厳しい領域では、ＭＤＡ技術の導入が躊躇されるケースが少なくない。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、ソフトウェアの最終成果物である実行可能プログラムが格納されるＲＯＭサイズに関する情報を考慮して、適切なプログラムコードを生成することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために本発明に係る情報処理装置は以下のような構成を備える。即ち、
入力される設計図面に対して、プラットフォームの種類に応じたプログラムコードを生成し、該生成したプログラムコードをコンパイル・リンクすることで、実行形式のプログラムを生成する情報処理装置であって、
前記実行形式のプログラムを生成した際に、前記設計図面を構成する各構成要素に対応する該プログラムのサイズを取得し、該取得した各構成要素に対応する該プログラムのサイズのうち、前記プラットフォームに依存し、かつ該実行形式のプログラムが生成された際に生成されたプログラムコードの生成手順が記述されたプログラムコード生成パターンに依存する一方で、前記設計図面に依存しない前記構成要素についての該プログラムのサイズを抽出し、該プラットフォームを識別する識別情報および該プログラムコード生成パターンを識別する識別情報とに対応付けてデータベースに記憶する構成要素サイズデータベース生成手段と、
入力される設計図面に基づいて実行形式のプログラムを生成する際に、生成に際して用いられるプラットフォームとプログラムコード生成パターンとを取得し、これに対応する該入力される設計図面の構成要素についての生成後の該プログラムのサイズを、前記構成要素サイズデータベースより取得する構成要素サイズ取得手段と、
前記構成要素サイズ取得手段において取得された前記サイズを用いて、前記入力される設計図面に基づいて生成される前記実行形式のプログラムのサイズを算出する算出手段とを備える。
【発明の効果】
【０００７】
本発明によれば、ソフトウェアの最終成果物である実行可能プログラムのＲＯＭサイズに関する情報を考慮して、適切なプログラムコードを生成することが可能となる。
【発明を実施するための最良の形態】
【０００８】
はじめに、本発明の各実施形態にかかる情報処理装置の概要について説明する。本情報処理装置において実現される特徴的な機能は、以下の４つである。
（１）ＲＯＭサイズ見積もりの際に、基本情報取得のために用いられる設計図面を予めコンパイル・リンクすることで得られたプロファイル情報より、ＲＯＭサイズ見積もりに必要な情報を抽出して、該抽出した情報を基本ＲＯＭ情報データベースに登録する機能。
（２）上記（１）で作成した基本ＲＯＭ情報データベースからＲＯＭサイズを見積もるための数式情報を取り出し、その情報と計測対象の設計図面の情報とからプログラムコード内の各設計図面構成要素と対応関係にある部分のＲＯＭサイズを見積もる機能。
（３）計測対象となっている設計図面をコンパイル・リンクして得られたプロファイル情報より、計測対象の設計図面の全体のＲＯＭサイズやユーザ記述部分のＲＯＭサイズを抽出し、その抽出した情報を計測ＲＯＭ情報データベースに登録する機能。
（４）各設計図面構成要素と対応関係にある部分のＲＯＭサイズを上記（２）で示した方法で見積もり、アクションなどのユーザ記述部分のＲＯＭサイズを、計測ＲＯＭ情報データベースより抽出する。更に、この両者のＲＯＭサイズの情報を加算することにより、全体のＲＯＭサイズを見積もる機能。
【０００９】
以下、第１の実施形態では、上記（１）〜（４）の各機能を備える情報処理装置の概要について説明する。また、第２の実施形態では、上記（１）〜（４）の機能のうち、上記（２）の“設計図面構成要素と対応関係にある部分のＲＯＭサイズを見積もる機能”の具体的態様について説明する。また、第３の実施形態では、上記（１）〜（４）の機能のうち、上記（１）の“ＲＯＭサイズ見積もりの情報を蓄積する基本ＲＯＭ情報データベースの作成”の具体的態様について説明する。また、第４の実施形態では上記（１）〜（４）の機能のうち、上記（３）の“計測対象の設計図面のＲＯＭサイズを蓄積する計測ＲＯＭ情報データベースの作成”の具体的態様について説明する。更に、第５の実施形態では上記（１）〜（４）の機能のうち、上記（４）の“過去に計測したユーザ記述部分のＲＯＭサイズと見積もったＲＯＭサイズ情報とから全体のＲＯＭサイズを見積もる方法”の具体的態様について説明する。
【００１０】
［第１の実施形態］
１．情報処理装置のハードウェア構成
図１は本発明の一実施形態に係る情報処理装置のハードウェア構成を示す全体図である。図１において、１０１はＣＰＵであり、以下に説明する各処理部１０３から１１０にバス１０２を介してアクセスし各処理部１０３〜１１０を制御する。
【００１１】
１０３はバス１０２を介してＣＰＵ１０１からアクセス可能な読み出し専用メモリ（ＲＯＭ）である。ＲＯＭ１０３には、本実施形態においてその処理内容を詳細に説明する処理プログラム１０３ａと処理プログラム１０３ａにより使用されるパラメータ１０３ｂとが格納されている。
【００１２】
１０４は読み書き可能なメモリ（ＲＡＭ）であり、ＲＡＭ１０４上には、上記処理プログラム１０３ａにより作成／変更がなされる各種情報を格納するための領域が確保されている。各種情報とは、具体的には、設計図面情報、プラットフォーム情報、プログラムコード、実行可能プログラム、プログラムコード生成パターンである。また、基本ＲＯＭ情報、設計図面ＲＯＭ情報、基本ＲＯＭ情報データベース、プラットフォームＲＯＭ情報、設計図面計測ＲＯＭ情報、コンパイラプロファイル情報も含まれる。なお、これらの情報を格納するための領域は、図１の１０４ａ、１０４ｂ、１０４ｃ、１０４ｄ、１０４ｅ、１０４ｆ、１０４ｇ、１０４ｈ、１０４ｉ、１０４ｊ、１０４ｋに示すとおりである。
【００１３】
１０５は入力インターフェイスであり、１０６で示したキーボード、マウス、ボタン、ダイアル等の入力装置を介してなされる入力を受け取る。１０７は出力インターフェイスであり、１０８で示したＣＲＴ、ＬＣＤ等の表示装置１０８ａ、更にはプリンタ、プロッタ等の出力装置１０８ｂに対し、データの表示／出力を行う。また、１０９は外部記憶装置インターフェイスであり、１１０で示したＨＤ、ＦＤ、ＣＤ−ＲＯＭ、ＭＤ、ＣＦ等の外部記憶装置に対するデータの入出力を行うものである。
【００１４】
本実施形態では、動作の詳細な説明を行うにあたり、処理プログラム１０３ａやパラメータ１０３ｂがＲＯＭ１０３上にあるものとして、また、処理対象となる各種情報の格納領域（１０４ａ〜１０４ｋ）がＲＡＭ１０４上にあるものとして説明を行う。ただし、これらはすべて、外部記憶装置１１０上に配置されていてもよいし、更に、必要に応じて、外部記憶装置１１０からＲＡＭ１０４上にロードし、使用されるように構成されていてもよい。また、ＣＰＵ１０１のキャッシュメモリ上に配置されていてもよい。
【００１５】
２．情報処理装置の機能構成
図２は、図１において１０３ａで示した処理プログラムの機能構成と各機能が図１の１０４ａ〜１０４ｋで示した格納領域に格納される各種情報とどのような関係にあるかを示したものである。図２に示す処理プログラムの機能は、ＣＰＵ１０１によって実行される。
【００１６】
２００は、図１における入力インターフェイス１０５を介して入力されるデータを扱うＧＵＩ入力処理部であり、ユーザはこのＧＵＩ入力処理部によりデータの入力や編集ならびに各処理部への指示ができるようになっている。本実施形態における情報処理装置においては、ＧＵＩ入力処理部は自動生成装置起動部２００として機能する。
【００１７】
２０１は、外部記憶装置１１０内から実行可能な設計図面を読み込み、構文解析を行う実行可能設計図面解析部であり、処理プログラム１０３ａが実行可能な設計図面を解釈し、設計図面情報を生成する。２０２は、実行可能設計図面解析部２０１において生成された、処理プログラム１０３ａが解釈することが可能な設計図面情報である（図１の１０４ａに格納される）。
【００１８】
２０３は、外部記憶装置１１０内からプログラムコード生成パターンを読み込み、構文解析を行うプログラムコード生成パターン解析部であり、プログラムコード生成パターン情報を生成する。２０４は、プログラムコード生成パターン解析部２０３において生成された、処理プログラム１０３ａが解釈することが可能なプログラムコード生成パターン情報である（図１の１０４ｅに格納される）。
【００１９】
２０５は、外部記憶装置１１０内から実行可能プログラムが動作するＯＳやＣＰＵやプログラミング言語やフレームワークといったプラットフォームデータを読み込み、構文解析を行うプラットフォーム依存解析部である。プラットフォーム依存解析部２０５は、処理プログラム１０３ａが解釈可能なプラットフォーム情報を生成する。２０６は、プラットフォーム依存解析部２０５において生成された、処理プログラム１０３ａが解釈することが可能なプラットフォーム情報である（図１の１０４ｂに格納される）。
【００２０】
２０７は、設計図面情報２０２やプログラムコード生成パターン情報２０４、そして必要であればプラットフォーム情報２０６を読み込み、プログラムコード生成処理を実行するプログラムコード生成部である。プログラムコード生成部２０７では、プラットフォーム情報２０６で指定されたプラットフォームで設計図面情報２０２で規定された動作をするプログラムコードをプログラムコード生成パターン情報２０４に基づいて自動生成する。
【００２１】
２０８は、プログラムコード生成部２０７において生成された、コンパイラによりコンパイルすることが可能なプログラムコードである（図１の１０４ｃに格納される）。２０９は、プログラムコード２０８を読み込み、構文解釈をして、オブジェクトファイルなどの生成処理や結合処理を行うコンパイラ・リンカであり、実行可能なプログラムやマップファイルなどのコンパイラ・プロファイル情報を生成する。
【００２２】
２１０は、コンパイラ・リンカ２０９において生成された、特定の環境で実行することが可能な実行可能プログラムである（図１の１０４ｄに格納される）。２１１は、コンパイラ・リンカ２０９より生成された、各プログラム構成要素のＲＯＭサイズの情報が記述されたコンパイラ・プロファイル情報である（図１の１０４ｋに格納される）。コンパイラ・プロファイル情報は、一般に、マップファイルなどと呼ばれる。
【００２３】
２１２は、設計図面計測ＲＯＭ情報抽出部である。設計図面計測ＲＯＭ情報抽出部では、コンパイラプロファイル情報２１１を読み込み、関数などの各プログラム構成要素のＲＯＭサイズを再集計する。これにより、設計図面情報２０２内の各設計図面構成要素に対応したＲＯＭサイズが記述された設計図面計測ＲＯＭ情報を抽出する。
【００２４】
２１３は、設計図面計測ＲＯＭ情報抽出部２１２において生成された、設計図面計測ＲＯＭ情報である（図１の１０４ｊに格納される）。２１４は、設計図面計測ＲＯＭ情報２１３を解析するプラットフォームＲＯＭ情報同定部である。プラットフォームＲＯＭ情報同定部２１４では、プラットフォーム情報２０６とプログラムコード生成パターン情報２０４に依存し、かつ、設計図面情報２０２に依存しないＲＯＭサイズに関するパラメータならびにプラットフォームＲＯＭ情報を同定する。
【００２５】
２１５は、プラットフォームＲＯＭ情報同定部２１４において生成された、プラットフォームＲＯＭ情報である（図１の１０４ｉに格納される）。２１６は、プラットフォームＲＯＭ情報２１５をデータベースとして登録する基本ＲＯＭ情報登録部であり、プラットフォームＲＯＭ情報２１５は基本ＲＯＭ情報登録部２１６により基本ＲＯＭ情報データベース２１７に登録される。
【００２６】
２１７は、基本ＲＯＭ情報登録部２１６によりプラットフォームＲＯＭ情報２１５が登録された基本ＲＯＭ情報データベースである（図１の１０４ｈに格納される）。
【００２７】
２２２は、外部記憶装置１１０内のプログラムコード生成パターンの選択を行う生成パターン選択部であり、選択されたプログラムコード生成パターンの識別情報である生成パターン選択情報２２３を生成する。２２３は、生成パターン選択部２２２において生成された、生成パターン選択情報である。
【００２８】
２１８は、基本ＲＯＭ情報探索部である。基本ＲＯＭ情報探索部２１８では、基本ＲＯＭ情報データベース２１７に登録されているプラットフォームＲＯＭ情報の中から、基本ＲＯＭに関する情報を探索する。探索時の検索条件としては、生成パターン選択情報２２３に記述されているプログラムコード生成パターン識別情報や、必要であればプラットフォーム情報２０６に記載されているプラットフォームの識別情報が用いられる。これにより、特定プラットフォームにおいて生成されるプログラムコードのＲＯＭサイズ見積もりのための基本的な情報である基本ＲＯＭ情報２１９を生成する。
【００２９】
２１９は、基本ＲＯＭ情報探索部２１８より生成された、基本ＲＯＭ情報である（図１の１０４ｆに格納される）。２２０は、設計図面情報２０２と基本ＲＯＭ情報２１９とを解析して、設計図面内の各設計図面構成要素に対応したＲＯＭサイズを算出する設計図面ＲＯＭ情報取得部であり、設計図面ＲＯＭ情報２２１を生成する。
【００３０】
２２１は、設計図面ＲＯＭ情報取得部２２０において生成された、設計図面ＲＯＭ情報である（図１の１０４ｇに格納される）。
【００３１】
２２４は、設計図面計測ＲＯＭ情報抽出部２１２において抽出された設計図面計測ＲＯＭ情報２１３をデータベースに登録する設計図面全体計測ＲＯＭ情報登録部であり、設計図面計測ＲＯＭ情報２１３は計測ＲＯＭ情報データベース２２５に登録される。
【００３２】
２２５は、設計図面全体計測ＲＯＭ情報登録部２２４において登録された設計図面計測ＲＯＭ情報２１３を蓄積する計測ＲＯＭ情報データベースである。
【００３３】
２２６は、計測ＲＯＭ情報データベース２２５に登録された設計図面計測ＲＯＭ情報２１３の中から、設計図面情報２０２に対応したＲＯＭサイズについての設計図面計測ＲＯＭ情報があるか否かを判定する計測ＲＯＭ情報探索部である。
【００３４】
２２７は、計測ＲＯＭ情報探索部２２６において、対応する設計図面計測ＲＯＭ情報２１３があると判定された場合に、計測ＲＯＭ情報データベース２２５より取得された設計図面過去計測ＲＯＭ情報である。
【００３５】
２２８は、設計図面全体ＲＯＭ情報取得部である。設計図面全体ＲＯＭ情報取得部２２８では、入力された設計図面について見積もられた各設計図面構成要素のＲＯＭサイズと、設計図面過去計測ＲＯＭ情報２２７とを比較して差分を算出する。そして、設計図面過去計測ＲＯＭ情報２２７に加算することで、該入力された設計図面により生成される実行可能プログラムのＲＯＭサイズを見積もる。
【００３６】
２２９は、設計図面全体ＲＯＭ情報取得部２２８において見積もられた実行可能プログラムのＲＯＭサイズである、設計図面全体ＲＯＭ情報である。
【００３７】
３．設計図面の説明
次に実行可能な設計図面について説明する。実行可能な設計図面の全体構成を規定する図面は、一般にドメイン図と呼ばれている。実際の例を図３に示す。図３は、オペレータからの入力を受けてライトを付け、時間を指定してライトを消すシステムを表したドメイン図の一例である。
【００３８】
３０１はライトを明滅するシステムの制御を行うＣｏｎｔｒｏｌｌｅｒドメイン、３０２はオペレータからの操作を受け取るＵＩドメイン、３０３はライトを制御するＬｉｇｈｔドメイン、３０４はタイムサービスを提供するＴｉｍｅｒドメインを示している。さらに、ドメイン同士の結びつきは、関連と呼ばれ、図３においては矢印付きの点線で表現されている。
【００３９】
図３では、ドメイン間の通信であるイベントの送受信を行う場合に点線で結ぶ例を示している。３０５は、関連の一例で、Ｃｏｎｔｒｏｌｌｅｒドメイン３０１とＴｉｍｅｒドメイン３０４との間では、双方向のイベント通信が行われるため、両方向に矢印のついた点線で表現されている。３０６は関連の他の一例であり、Ｃｏｎｔｒｏｌｌｅｒドメイン３０１とＬｉｇｈｔドメイン３０３との間では、片方向のイベント通信が行われるため、Ｌｉｇｈｔドメイン３０３側だけに矢印のついた点線で表現されている。
【００４０】
実行可能な設計図面において、処理を行うオブジェクトの静的な構造を示す設計図は、クラス図と呼ばれている。実際の例を図４に示す。図４は、オペレータからの入力を受けてライトを付け、時間を指定してライトを消すシステムを表したドメイン図（図３）における、ライトを明滅するシステムの制御を行うＣｏｎｔｒｏｌｌｅｒドメイン３０１のクラス図の一例である。
【００４１】
図４において、４０１はクラスの名称を示す。図４の例では「Ｃｏｎｔｒｏｌｌｅｒ」がクラスの名称である。４０２はＣｏｎｔｒｏｌｌｅｒクラスが「ｎａｍｅ」というＳｔｒｉｎｇ型のインスタンス変数を持つことを表わしている。
【００４２】
４０３はＣｏｎｔｒｏｌｌｅｒクラスが「ｇｅｔＮａｍｅ」というメソッドをもち、「ｅｖＯｎ」、「ｅｖＯｆｆ」、「ａｌａｒｍ」という３つのイベントを受け取ることを示している。メソッドには処理の内容が書かれており、イベントはクラス間での通信オブジェクトの一例である。
【００４３】
４．設計図面についての状態遷移図
実行可能な設計図面において、クラスの動的な振る舞いは、状態の遷移を表現する図や表などで表現される。実際の例を図５に示す。図５は状態遷移図を使ったクラスの動的な振る舞いを表現した例で、図４におけるＣｏｎｔｒｏｌｌｅｒクラスの状態遷移図の例である。
【００４４】
図５において、５０１は初期状態を示し、Ｃｏｎｔｒｏｌｌｅｒクラスのインスタンスが生成されたときに入る状態を表す。初期状態５０１はその状態に留まることはなく、すぐに次の状態５０２に遷移する。５０２は「Ｏｆｆ」と名づけた状態を表し、Ｃｏｎｔｒｏｌｌｅｒクラスのインスタンスが生成された後、この状態に留まる。５０３は状態から状態への遷移を示し、Ｏｆｆ状態５０２のときにｅｖＯｎイベントが発行されると特定のアクションｅｖＯｎ（）を実行して、状態５０４に遷移する。５０５は、Ｏｎ状態５０４のときにａｌａｒｍイベントが発行されると特定のアクションａｌａｒｍ（）を実行して、再度、Ｏｎ状態５０４に遷移する。なお、一般に、状態遷移図にはアクションを記述することも可能であるが、図５に示した状態遷移図の例では別のファイルに定義して利用する例を示している。
【００４５】
プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向である設計図面において、各クラスの状態における処理手順の記述を一般にはアクションと呼ぶ。以下、本実施形態においてはアクションの記述を別ファイルにて提供する場合について説明するが、状態遷移図などに記入するようにしてもよい。
【００４６】
５．設計図面におけるアクション記述
プラットフォーム非依存であり、実行可能であり、かつオブジェクト指向である設計図面におけるアクション記述の例を図６に示す。
【００４７】
図６において、６０１は、オペレータからの入力を受けてライトを付け、時間を指定してライトを消すシステム（図３）において、初期化時に実行されるアクションの一例を示した図である。図３のシステムで必要となるＣｏｎｔｒｏｌｌｅｒクラス、ＵＩクラス、Ｌｉｇｈｔクラスのインスタンスを、それぞれ、ｎｅｗにより作成する。ここで作成したインスタンスは、システム全体で操作可能な変数として登録するため、ｒｅｇｉｓｔＬｉｎｋにより登録する。
【００４８】
６０２は図５で示したＣｏｎｔｒｏｌｌｅｒクラスの状態遷移図において、Ｏｆｆ状態５０２からＯｎ状態５０４に遷移するアクションｅｖＯｎ（）を記述した例である。アクションｅｖＯｎ（）６０２では、このアクション内で、クラスＴｉｍｅｒのインスタンスを新たに生成する。そして、このアクションを実行するＣｏｎｔｒｏｌｌｅｒクラスのインスタンス内で操作可能な変数として登録するため、ｒｅｓｉｇｔＬｉｎｋにより登録する。さらに、アクションｅｖＯｎ（）６０２では、既にシステム全体で操作可能として登録したＬｉｇｈｔクラスの唯一のインスタンスをｑｕｅｒｙＬｉｎｋにより入手する。そして、ライトを点灯するためのイベントｌｉｇｈｔＯｎをｓｅｎｄＥｖｅｎｔにより送信する。６０３は図５で示したＣｏｎｔｒｏｌｌｅｒクラスの状態遷移図において、Ｏｎ状態５０４からＯｆｆ状態５０２に遷移するアクションｅｖＯｆｆ（）を記述した例である。
【００４９】
アクションｅｖＯｆｆ（）６０３では、既にシステム全体で操作可能として登録したＬｉｇｈｔクラスの唯一のインスタンスをｑｕｅｒｙＬｉｎｋにより入手して、ライトを消灯するためのイベントｌｉｇｈｔＯｆｆをｓｅｎｄＥｖｅｎｔにより送信する。さらに、アクションｅｖＯｆｆ（）６０３では、アクションｅｖＯｎ（）６０２でＣｏｎｔｒｏｌｌｅｒクラスのインスタンス内で操作可能な変数として登録したＴｉｍｅｒクラスのインスタンスをｑｕｅｒｙＬｉｎｋにより入手する。これによりｔｉｍｅｒインスタンスを削除する。加えて、アクションｅｖＯｆｆ（）６０３では、既にシステム全体で操作可能として登録したＵＩクラスの唯一のインスタンスｕｉをｑｕｅｒｙＬｉｎｋにより入手して、ライトを消灯したことを知らせるイベントｓｔｏｐをｓｅｎｄＥｖｅｎｔにより送信する。
【００５０】
図６に示したアクションの例では、インスタンスの識別に生成時の変数名を利用しているが、インスタンスを識別するための情報、例えばシステム内で特定できる識別番号などを用いる別の方法で実現してもよい。
【００５１】
また、図６に示したアクション記述の例では、生成したクラスのインスタンスの種類をユーザがアクションで記述している。具体的には、生成したクラスのインスタンスが、システム全体で利用可能なインスタンスであるのか、特定のインスタンス内で利用可能なインスタンスであるのか、アクション記述のブロック内だけで利用可能なインスタンスであるのかを記述している。しかしながら、図３で示したドメイン図や図４で示したクラス図からこれらの変数の利用範囲を特定する情報を得ることができるため、特にこの方法によるものではない。
【００５２】
なお、これ以降のフローチャートにより説明される各処理手順は、特に図３に一例として示したシステムを処理対象として限定したものではない。また、本発明の構成要件を満たす限り手順の組み合わせは自由に変えられるものとし、あるいは複数処理をまとめることもできるものとする。また、処理を細分化することも可能である。更に、各処理を個々に切り出してひとつの機能要素として単体として構成し、記載した処理以外の処理と組み合わせて使用することも可能である。
【００５３】
６．情報処理装置における処理の流れ
図７は、本実施形態にかかる情報処理装置のＣＰＵ１０１が処理プログラム１０３ａに基づいて実行する全体の処理手順を示したフローチャートである。ステップＳ７０１〜Ｓ７０６は起動時の処理を示している。また、ステップＳ７０７〜Ｓ７１２は全体のＲＯＭサイズを取得する処理を示している。また、ステップＳ７１３〜Ｓ７１６はプログラムコード生成パターンを変えてプログラムコードを生成した際のＲＯＭサイズ増加量や減少量を取得する処理を示している。また、ステップＳ７１７〜Ｓ７１８は設計図面を構成する設計図面構成要素の一部のＲＯＭサイズを取得する処理を示している。起動時の処理以外の残り３種類の処理は、本実施形態内では１種類以上登場すればよく、また、処理する順番も問わない。以下、これらについて説明していく。
【００５４】
起動したオブジェクト配置を考慮した情報処理装置のＣＰＵ１０１は、ステップＳ７０１において外部記憶装置１１０内などに記憶してある実行可能な設計図面を読み込む。そして、ＣＰＵ１０１は、実行可能設計図面解析部２０１において設計図面情報２０２を生成する。
【００５５】
ステップＳ７０２では、ＣＰＵ１０１はプラットフォーム情報の入力があるか否かを判定し、プラットフォーム情報の入力がある場合にはステップＳ７０３へ分岐する。ステップＳ７０３ではプラットフォーム依存解析部２０５においてＣＰＵ１０１はプラットフォーム情報２０６を生成する。
【００５６】
一方、ステップＳ７０２においてプラットフォーム情報２０５の入力がないと判定された場合には、ステップＳ７０４へ分岐する。プラットフォーム情報の入力とは、タスクやスレッドをどこのドメインやクラスなどにマッピングさせるか、実行スピード優先なのか、メモリ容量節約優先なのかなどといった、生成されるプログラムコードを実行するプラットフォームに依存した情報である。
【００５７】
ステップＳ７０４では、ＣＰＵ１０１は、生成パターン選択部２２２を起動し、プログラムコード生成パターンの選択を行い、選択されたプログラムコード生成パターンについての生成パターン選択情報２２３を生成する。
【００５８】
ステップＳ７０５では、ＣＰＵ１０１は、指定のプラットフォーム情報２０５、生成パターン選択情報２２３に対応したプラットフォームＲＯＭ情報が基本ＲＯＭ情報データベース２１７に登録済みであるか否かを判定する。登録済みでないと判定された場合は、ステップＳ７０６へ分岐する。
【００５９】
ステップＳ７０６では、ＣＰＵ１０１は、基本ＲＯＭ情報データベース２１７にプラットフォームＲＯＭ情報２１５を登録する。プラットフォームＲＯＭ情報２１５とは、ＲＯＭサイズを見積もるための情報で、プラットフォーム情報２０６とプログラムコード生成パターン（具体的には生成パターン選択情報２２３）にのみ依存する情報である。この情報の基本ＲＯＭ情報データベース２１７への登録処理については、第３の実施形態で別途詳細に説明する。なお、プラットフォームＲＯＭ情報２１５と基本ＲＯＭ情報２１９は同一のフォーマットでもよい。
【００６０】
ステップＳ７０５において、プラットフォームＲＯＭ情報２１５が基本ＲＯＭ情報データベース２１７に登録済みであると判定された場合には、ステップＳ７０７へ分岐する。
【００６１】
ステップＳ７０７では、ＣＰＵ１０１は、全体のＲＯＭサイズを取得するか否かを判定し、取得すると判定した場合には、ステップＳ７０８へ分岐する。ステップＳ７０８では、ＣＰＵ１０１は、計測ＲＯＭ情報データベース２２５に設計図面情報２０２に対応したＲＯＭサイズについての計測結果のデータ（設計図面計測ＲＯＭ情報２１３）があるか否かの判定をする。
【００６２】
ステップＳ７０８において計測ＲＯＭ情報データベース２２５に設計図面計測ＲＯＭ情報２１３があると判定された場合にはステップＳ７０９に進む。ステップＳ７０９では、ＣＰＵ１０１は、計測ＲＯＭ情報データベース２２５より過去の計測情報である設計図面過去計測ＲＯＭ情報２２７を取得する。ステップＳ７１０では、ＣＰＵ１０１は、ステップＳ７０４で選択した生成パターン選択情報２２５を用いてプログラムコードを自動生成した際の、ステップＳ７０１で読み込んだ設計図面情報２０２に対応したＲＯＭサイズの見積もりを行う。
【００６３】
なお、ステップＳ７１０のＲＯＭサイズ見積もり処理については、第４の実施形態で別途詳細に説明する。
【００６４】
ステップＳ７１１では、ＣＰＵ１０１は、ステップＳ７１０で見積もった各設計図面構成要素のＲＯＭサイズと、以前に計測した各設計図面構成要素のＲＯＭサイズとを比較して差分を算出する。そして、ＣＰＵ１０１は、以前に計測した実行可能プログラムのＲＯＭサイズに加算することで、ステップＳ７０１で読み込まれた設計図面情報２０２により生成される実行可能プログラム２１０のＲＯＭサイズを見積もる。
【００６５】
一方、ステップＳ７０８において、ＣＰＵ１０１は、計測ＲＯＭ情報データベース２２５に設計図面計測ＲＯＭ情報２１３があるか否かを判定する。無いと判定された場合には、ステップＳ７１２に進む。ステップＳ７１２では、ＣＰＵ１０１は、ステップＳ７０４で生成した生成パターン選択情報２２３を用いて、ステップＳ７０１で読み込んだ設計図面情報から生成されるプログラムコード全体のＲＯＭサイズを計測する。そして、計測ＲＯＭ情報データベース２２５に登録する。
【００６６】
ステップＳ７１３では、同一の設計図面構成要素に対し複数のプログラムコード生成パターン情報２０４が選択されたとき、ＣＰＵ１０１は、プログラムコード生成パターン変更時のＲＯＭサイズの増減量を取得するか否かを判定する。取得すると判定された場合には、ステップＳ７１４に進む。ステップＳ７１４では、ＣＰＵ１０１は、参照元のプログラムコード生成パターン情報を用いて生成される実行可能プログラムについて、各設計図面構成要素に対応したＲＯＭサイズを見積もる。そして、参照元に関する設計図面ＲＯＭ情報２２１を生成する。
【００６７】
ステップＳ７１５では、参照先のプログラムコード生成パターン情報を用いて生成される実行可能プログラムについて、ＣＰＵ１０１は、各設計図面構成要素に対応したＲＯＭサイズを見積もる。そして、参照先に関する設計図面ＲＯＭ情報２２１を生成する。ステップＳ７１４、ステップＳ７１５における設計図面構成要素のＲＯＭサイズ見積もりの処理手順については、第２の実施形態で別途詳細に説明する。
【００６８】
ステップＳ７１６では、ステップＳ７１４、Ｓ７１５で得られた各設計図面構成要素のＲＯＭサイズの差分を計算する。これにより、ＣＰＵ１０１は、プログラムコード生成パターンを変更した際のＲＯＭサイズの増加分、減少分を見積もる。
【００６９】
ステップＳ７１７では、ＣＰＵ１０１は、設計図面情報２０２内の各設計図面構成要素のＲＯＭサイズを取得するか否かを判定する。ＲＯＭサイズを取得すると判定された場合には、ステップＳ７１８に進み、ＣＰＵ１０１は、各設計図面構成要素のＲＯＭサイズを見積もる。この処理の詳細については、第２の実施形態にて詳細に説明する。一方、ステップＳ７１７において、設計図面構成要素のＲＯＭサイズを取得しないと判定された場合には、処理を終了する。
【００７０】
以上の説明から明らかなように、本実施形態によれば、各プログラムコード生成パターンを用いた際の設計図面から生成される実行可能プログラム内の設計図面構成要素に対応した箇所のＲＯＭサイズを見積もることが可能になる。加えて、設計図面からプログラムコードの自動生成や生成したプログラムコードのコンパイル・リンクをせずに全体のＲＯＭサイズを見積もりすることが可能となる。この結果、ＲＯＭサイズの見積もりを迅速に行うことや、コンパイラ・リンカの無い環境でのＲＯＭサイズの見積もりが可能になる。これにより、各設計図面構成要素から生成されるプログラム構成部品のＲＯＭサイズを考慮しながら、プログラムコード生成パターンを迅速かつ容易に選択することが可能になる。
【００７１】
［第２の実施形態］
以下、本発明の第２の実施形態にかかる情報処理装置において設計図面構成要素のＲＯＭサイズを見積もる処理の詳細を説明する。
【００７２】
１．情報処理装置の機能構成
図８はＲＯＭサイズを見積もる際のデータフローを表す。ただし、図８内の用語の定義は、図２内の用語の定義に従うものとする。
【００７３】
８００は自動生成装置起動部である。８０１は、プラットフォーム情報８０４を出力するプラットフォーム依存解析部である。８０２は、設計図面情報を出力する実行可能設計図面解析部である。８０３は、生成パターン選択情報を出力する生成パターン選択部である。これらの機能は処理プログラム１０３ａに含まれ、ＣＰＵ１０１が処理プログラム１０３ａに基づいて実行される。
【００７４】
８０４は、プラットフォーム解析依存部８０１より生成される、プラットフォーム情報である（１０４ｂに格納される）。８０５は、実行可能設計図面解析部８０２より生成される、設計図面情報である（１０４ａに格納される）。８０６は、生成パターン選択部８０３より生成される、生成パターン選択情報である（１０４ｅに格納される）。
【００７５】
８０７は、ＲＯＭサイズに関するプラットフォーム情報８０４と選択されたプログラムコード生成パターン（生成パターン選択情報８０６）に依存した情報（プラットフォームＲＯＭ情報）が蓄積された基本ＲＯＭ情報データベースである（１０４ｈに格納される)。
【００７６】
８０８は、基本ＲＯＭ情報探索部である。基本ＲＯＭ情報探索部８０８は、基本ＲＯＭ情報データベース８０７を探索する。そして、プラットフォーム情報８０４に記述されたプラットフォームと生成パターン選択情報８０６に記述されたプログラムコード生成パターンに一致する条件でプラットフォームＲＯＭ情報を探索し、探索結果を基本ＲＯＭ情報８０９として出力する。
【００７７】
８０９は、基本ＲＯＭ情報探索部８０８より生成される、基本ＲＯＭ情報である（１０４ｆに格納される）。８１０は、設計図面情報８０５と基本ＲＯＭ情報８０９とを解析し、設計図面情報８０５内の各設計図面構成要素に対応したＲＯＭサイズの情報である設計図面ＲＯＭ情報８１１を取得する設計図面ＲＯＭ情報取得部である。８１１は、設計図面ＲＯＭ情報取得部８１０より生成される、設計図面ＲＯＭ情報である（１０４ｇである）。
【００７８】
２．情報処理装置における処理の流れ
図９は設計図面から実行可能プログラムを生成した際の各設計図面構成要素のＲＯＭサイズを見積もる処理の流れを示すフローチャートを表す。図９の処理はＣＰＵ１０１が処理プログラム１０３ａに基づいて実行する。
【００７９】
ステップＳ９０１では、ＣＰＵ１０１は、実行可能設計図面解析部８０２を起動して設計図面情報８０５を取得する。ステップＳ９０２では、プラットフォーム情報の入力があれば、ステップＳ９０３に進み、ＣＰＵ１０１は、プラットフォーム依存解析部８０１を起動してプラットフォーム情報８０４を取得する。
【００８０】
ステップＳ９０４では、ＣＰＵ１０１は、生成パターン選択部８０３を起動して、プログラムコード生成パターンを選択し、生成パターン選択情報８０６を取得する。
【００８１】
ステップＳ９０５では、ＣＰＵ１０１は、指定のプラットフォーム情報に対応するＲＯＭに関する情報（プラットフォームＲＯＭ情報）が基本ＲＯＭ情報データベース８０７に登録済みか否かを判定し、する。登録済みでないと判定された場合には、ステップＳ９０６に進む。ステップＳ９０６では、ＣＰＵ１０１は、基本ＲＯＭ情報データベース８０７に必要なプラットフォームＲＯＭ情報を追加する処理を行う。
【００８２】
基本ＲＯＭ情報データベース８０７にプラットフォームＲＯＭ情報を追加する処理については、第３の実施形態において別途説明する。ステップＳ９０７では、ＣＰＵ１０１は、各設計図面構成要素に対応したＲＯＭサイズを見積もる。具体的には、設計図面情報８０５（ステップＳ９０１）とプラットフォーム情報８０４（ステップＳ９０３）と生成パターン選択情報８０６（ステップＳ９０４）と、基本ＲＯＭ情報データベース８０７とに基づいて行う。なお、ステップＳ９０７の詳細については、以下に説明する。
【００８３】
３．ＲＯＭサイズの見積処理
図１０は、ステップＳ９０６の詳細な処理の流れを示すフローチャートであり、指定の設計図面構成要素のＲＯＭサイズを見積もる処理フローを記述したものである。図９の処理はＣＰＵ１０１が処理プログラム１０３ａに基づいて実行する。
【００８４】
ステップＳ１００１では、ＣＰＵ１０１は、基本ＲＯＭ情報データベース８０７の中から、ステップＳ９０３で読み込んだプラットフォーム情報８０４に記されたプラットフォームを探索する。また、ステップＳ９０４で、ＣＰＵ１０１は、読み込んだ生成パターン選択情報８０６に記された生成パターンに対応するＲＯＭサイズに関する情報（プラットフォームＲＯＭ情報）を探索する。そして探索結果を基本ＲＯＭ情報８０９として出力する。
【００８５】
ステップＳ１００２〜Ｓ１００４では、ＣＰＵ１０１は、ステップＳ９０４で生成された生成パターン選択情報で指定された生成パターンに対応した、設計図面情報８０５内の各設計図面構成要素について、ループ処理を実行する。
【００８６】
ステップＳ１００３では、ＣＰＵ１０１は、ステップＳ１００１で取得した基本ＲＯＭ情報８０９と、ループ処理の対象となっている設計図面構成要素とを解析して設計図面構成要素のＲＯＭサイズを算出する。
【００８７】
ステップＳ１００５では、ＣＰＵ１０１は、複数の設計図面構成要素が共通して利用する各箇所のＲＯＭサイズの総和を算出する。ステップＳ１００６では、ＣＰＵ１０１は、各設計図面構成要素が独立して利用するＲＯＭサイズの総和と各設計図面構成要素が共通して利用するＲＯＭサイズの和を算出して、する。これによって選択されたプログラムコード生成パターンに対応した全設計図面構成要素のＲＯＭサイズを出力する。
【００８８】
４．設計図面構成要素のＲＯＭサイズの算出処理の詳細
ステップＳ１００３の処理の詳細を、設計図面構成要素が状態遷移図であった場合を例にとって説明する。状態遷移図に対応したプログラムコードを自動生成するプログラムコード生成部を利用して生成される実行可能プログラム内の状態遷移図に対応する箇所のＲＯＭサイズの見積もり式を図１８の一般式１８０１に示す。
【００８９】
この式に設計図面より得られる特定クラスが保持する状態数ｓｔＮｕｍ、特定クラスが保持するイベント数ｅｖＮｕｍ、特定クラスが保持する状態遷移線数ｔｒａｎｓＮｕｍを代入する。これにより、実行可能プログラム内の状態遷移図に対応した部分のＲＯＭサイズを見積もる。ただし、Ａ、Ｂ、Ｃ、Ｄ、Ｅは、実行可能プログラムを実行する環境とプログラムコード生成パターン情報のみに依存する定数で、設計図面情報に依存しない定数である。これらは設計図面情報より取得可能な値である。
【００９０】
図１９に、基本ＲＯＭ情報８０９が格納された基本ＲＯＭ情報データベース８０７の一例を示す。１９０１は、基本ＲＯＭ情報データベース８０７に登録された、ステートチャートのプログラムコード生成パターンｔａｂｌｅを用いた際の定数情報を表している。
【００９１】
１９０２は、図１８の一般式１８０１で表される状態遷移図ＲＯＭサイズ見積もり式の定数情報Ａ、Ｂ、Ｃ、Ｄ、Ｅの値を表している。同様に、他のプログラムコード生成パターンについても、基本ＲＯＭ情報データベース８０７に登録されていることを表している。
【００９２】
なお、図１９の例では、状態遷移図に対応したプログラムコードのＲＯＭサイズに関する基本ＲＯＭ情報のみを示したが、クラス、オペレーション、アトリビュートなどについても同様にＤＢによる見積もりをすることが可能である。
【００９３】
図２０に設計図面ＲＯＭ情報８１１の一例を示す。２００１は、クラス内の状態遷移図部分やアクション部分やオペレーション部分を含まない部分に対応したプログラムコードのＲＯＭサイズを表している。２００２は、状態遷移図内のアクション部分を含まない部分に対応したプログラムコードのＲＯＭサイズを表している。
【００９４】
２００３は、ステップＳ１００１で算出された、オペレーション内のアクション部分を含まない部分に対応したプログラムコードの、ＲＯＭサイズを表している。２００４は、ステップＳ１００５で算出された、クラスＸ、Ｙ、Ｚが共通で利用している部分のＲＯＭサイズを表している。２００５は、ステップＳ１００６で算出された、全ての状態遷移図に対応したプログラムコードの全ＲＯＭサイズを表している。
【００９５】
補足として、以下、図１８の式１８０１で状態遷移図のＲＯＭサイズが見積ることができることの理論的な裏づけについて説明する。
【００９６】
図１７に、一般的な状態遷移図の実装を示す。１７０１は、２次元の状態遷移テーブルを用いて状態遷移図を実装した例である。この場合、テーブルのＲＯＭサイズは状態数とイベント数の積ｓｔＮｕｍ・ｅｖＮｕｍに比例するため、適当なパラメータＤを設定することで、テーブルのＲＯＭサイズを見積もることが可能である。１７０２は、１次元の状態遷移テーブルを用いて状態遷移図を実装した例で、この場合、テーブルのＲＯＭサイズは遷移線数ｔｒａｎｓＮｕｍに比例するため、適当なパラメータＣを設定することで、テーブルのＲＯＭサイズを見積もることができる。
【００９７】
１７０３、１７０４は、ｓｗｉｔｃｈ−ｃａｓｅ文を用いて状態遷移図を表現したものである。この場合、ｃａｓｅ〜ｂｒｅａｋ文の数は遷移線数ｔｒａｎｓＮｕｍに比例し、状態遷移図ごとに用意される１７０３の関数の数は１つであり、イベント毎に用意される１７０４の関数の数は、イベント数ｅｖＮｕｍに比例する。このため、適当なパラメータＢ、Ｃ、Ｅを設定することで分岐文や関数定義文のＲＯＭサイズを見積もることができる。
【００９８】
１７０５は状態遷移が発生した際に実行されるイベントハンドラで、これは遷移線の数だけあるので、イベントハンドラによって増加するＲＯＭサイズは遷移線数ｔｒａｎｓＮｕｍに比例する。また、遷移時には、Ｅｎｔｒｙアクション、Ｅｘｉｔアクション、Ｔｒａｎｓｉｔｉｏｎアクションが呼ばれる。しかし、ＥｎｔｒｙアクションやＥｘｉｔアクションは状態数だけ定義されており、また、Ｔｒａｎｓｉｔｉｏｎアクションは遷移線数だけ定義されている。このため、アクションがインプリメントされた関数の定義部分のＲＯＭサイズは、適当なパラメータＡやパラメータＣを指定することで見積もることが可能である。
【００９９】
状態遷移図全体のＲＯＭサイズは、これらのＲＯＭサイズの和であるため、適当なパラメータＡ、Ｂ、Ｃ、Ｄ、Ｅを決めることでＲＯＭサイズの見積もり式が定義できるといえる。
【０１００】
この場合、基本ＲＯＭ情報８０９とは、１つの状態遷移図から生成された実行可能プログラムの１状態遷移図部分のＲＯＭサイズを見積もる一般式１８０１におけるＡ、Ｂ、Ｃ、Ｄ、Ｅ相当の定数情報である。上述の設計図面ＲＯＭ情報取得部８１０では、基本ＲＯＭ情報８０９と実行可能設計図面解析部８０２から得られた状態数、イベント数、遷移線数といった設計図面情報８０５を一般式１８０１に代入する。これにより、設計図面情報８０５内の各設計図面要素に対応した箇所のＲＯＭサイズを算出する。
【０１０１】
ステップＳ１００５の処理を、ステップＳ１００３と同様、設計図面構成要素が状態遷移図であった場合を例にとって説明する。状態遷移図に対応したプログラムコードを自動生成するプログラムコード生成部を利用して生成される実行可能プログラム内の全状態遷移図に対応する箇所のＲＯＭサイズの見積もり式を一般式１８０２で表現する。ただし、Ｆは、Ａ、Ｂ、Ｃ、Ｄ、Ｅ同様、実行可能プログラムを実行する環境とプログラムコード生成パターン情報にのみに依存する定数で、設計図面情報に依存しない定数である。このような一般式を用いることにより、全状態遷移図のＲＯＭサイズを見積もることが可能になる。
【０１０２】
このような全状態遷移図のＲＯＭサイズの総和にＦという定数を足したものが、全状態遷移図に対応した部分のＲＯＭサイズになるということの理論的な裏づけについて説明する。
【０１０３】
通常、状態遷移図の中で、イベントを処理する機構などは、各状態遷移図ごとに処理ルーチンを持たずに、状態遷移図間で共通関数として共有している。このような箇所のＲＯＭサイズは、イベント数、状態数、遷移線数といった状態遷移図構成要素だけでなく状態遷移図数にも因らず一定である。したがって、全ての状態遷移図のＲＯＭサイズの総和に加えて、この一定の部分のＲＯＭサイズを加えて、全体の状態遷移図に対応したＲＯＭサイズを算出することができる。
【０１０４】
なお、上記説明では、状態の階層化、浅い履歴、深い履歴の無い状態遷移図についての例を示しており、また、不要なｓｗｉｔｃｈ−ｃａｓｅの除去や状態遷移テーブルの畳み込み等の最適化を行わないプログラムコード生成パターンを対象としている。しかし、本発明は特にこれに限られず、これらの機能を有するものに関しても、一般式の項数や使用するメトリックス情報を増やすことで対応することが可能である。
【０１０５】
［第３の実施形態］
以下、ＲＯＭサイズを算出するための情報を基本ＲＯＭ情報データベースに登録する場合の処理の詳細について説明する。
【０１０６】
１．情報処理装置の機能構成
図１１はＲＯＭサイズを見積もるための情報を基本ＲＯＭ情報データベースに登録する際のデータフローを表す。ただし、図１１内の用語の定義は図２内の用語の定義に従うものとする。
【０１０７】
１１００は自動生成装置起動部である。１１０１は、プラットフォーム情報を出力するプラットフォーム依存解析部である。１１０２は、設計図面情報を出力する実行可能設計図面解析部である。１１０３は、生成パターン情報を出力する生成パターン情報解析部である。
【０１０８】
１１０４は、プラットフォーム依存解析部１１０１より出力されたプラットフォーム情報である（１０４ｂに格納される）。１１０５は、実行可能設計図面情報解析部１１０２より出力された設計図面情報である（１０４ａに格納される）。１１０６は、生成パターン解析部１１０３より出力された生成パターン情報である（１０４ｅに格納される）。
【０１０９】
１１０７は、設計図面情報１１０５とプラットフォーム情報１１０４とを、生成パターン情報１１０６に従って解析し、プログラムコードを出力するプログラムコード生成部である。１１０８は、プログラムコード生成部１１０７より生成されたプログラムコードである（１０４ｃに格納される）。１１０９は、プログラムコード１１０８をコンパイル・リンクして、コンパイラ・プロファイル情報や実行可能プログラムを生成するコンパイル・リンク部である。
【０１１０】
１１１０は、コンパイル・リンク部１１０９より生成される実行可能プログラムである。１１１１は、コンパイル・リンク部１１０９より生成される、各プログラム構成要素のＲＯＭサイズ等を格納しているコンパイラ・プロファイル情報である。１１１２は、コンパイラ・プロファイル情報１１１１を解析して、設計図面情報内の各設計図面構成要素に対応したＲＯＭサイズ情報を抽出する、設計図面計測ＲＯＭ情報抽出部である。
【０１１１】
１１１３は、設計図面計測ＲＯＭ情報抽出部１１１２より抽出された、設計図面計測ＲＯＭ情報である。１１１４は、設計図面計測ＲＯＭ情報１１１３を解析して、プログラムコード生成パターンとプラットフォームに依存したプラットフォームＲＯＭ情報を同定するプラットフォームＲＯＭ情報同定部である。１１１５は、プラットフォームＲＯＭ情報同定部１１１４より生成された、プラットフォームＲＯＭ情報である。
【０１１２】
１１１６は、プラットフォームＲＯＭ情報を基本ＲＯＭ情報データベースに登録する、基本ＲＯＭ情報登録部である。１１１７は、基本ＲＯＭ情報登録部１１１６より登録されたプラットフォームＲＯＭ情報を蓄積する、基本ＲＯＭ情報データベースである。
【０１１３】
１１１８は、設計図面計測ＲＯＭ情報抽出部１１１２より得られた設計図面計測ＲＯＭ情報１１１３を計測ＲＯＭ情報データベースに登録する設計図面全体計測ＲＯＭ情報登録部である。１１１９は、設計図面全体計測ＲＯＭ情報登録部１１１８より登録された設計図面計測ＲＯＭ情報を蓄積する、計測ＲＯＭ情報データベースである。
【０１１４】
上記１１０１〜１１０３，１１０７，１１０９，１１１２，１１１４，１１１８，１１１６の各機能は処理プログラム１０３ａに含まれ、ＣＰＵ１０１が処理プログラム１０３ａに基づいて実行される。
【０１１５】
２．全体処理の流れ
図１２はＲＯＭサイズを見積もるための情報を基本ＲＯＭ情報データベース１１１７に登録する際のフローチャートである。図９の処理はＣＰＵ１０１が処理プログラム１０３ａに基づいて実行する。
【０１１６】
ステップＳ１２０１において、ＣＰＵ１０１は、実行可能設計図面解析部１１０２を起動して、基本情報取得用の設計図面を読み込み、む。そして設計図面情報１１０５を生成する。ステップＳ１２０２において、ＣＰＵ１０１は、プラットフォーム情報の入力があれば、プラットフォーム依存解析部１１０１を起動してプラットフォーム情報１１０４を生成する。
【０１１７】
ステップＳ１２０４〜Ｓ１２１２において、ＣＰＵ１０１は、全プログラムコード生成パターンについて、ループ処理を実行する。以下、ループ内の処理の説明をする。ステップＳ１２０５では、ＣＰＵ１０１は、生成パターン解析部１１０３を起動し、プログラムコード生成パターンを読み込み、生成パターン情報１１０６を生成する。
【０１１８】
ステップＳ１２０６において、ＣＰＵ１０１は、設計図面情報１１０５、プラットフォーム情報１１０４、生成パターン情報１１０６を解析して、する。これによってプログラムコード１１０８を自動生成する。ステップＳ１２０７において、ＣＰＵ１０１は、コンパイル・リンク部１１０９を起動し、ステップＳ１２０６にて得られたプログラムコード１１０８をコンパイル・リンクし、コンパイラ・プロファイル情報１１１１を得る。
【０１１９】
ステップＳ１２０８において、ＣＰＵ１０１は、コンパイラ・プロファイル情報１１１１を解析し、設計図面計測ＲＯＭ情報１１１３を生成する。ステップＳ１２０９において、ＣＰＵ１０１は、計測ＲＯＭ情報データベース１１１９に設計図面計測ＲＯＭ情報１１１３を登録する。ステップＳ１２１０において、ＣＰＵ１０１は、設計図面計測ＲＯＭ情報１１１３から、プラットフォームＲＯＭ情報１１１５を同定する。なおステップＳ１２１０のプラットフォームＲＯＭ情報１１１５を同定する処理の詳細については別途説明する。ステップＳ１２１１において、基本ＲＯＭ情報データベース１１１７にプラットフォームＲＯＭ情報１１１５を登録する。
【０１２０】
３．プラットフォームＲＯＭ情報を同定する処理の流れ
図１３は、プラットフォームＲＯＭ情報を同定する処理（ステップＳ１２１０）の詳細を記述したフローチャートである。図９の処理はＣＰＵ１０１が処理プログラム１０３ａに基づいて実行する。
【０１２１】
ステップＳ１３０１〜Ｓ１３０３では、ＣＰＵ１０１は、基本ＲＯＭ情報データベースへの登録用に処理される設計図面情報１１０５内の各設計図面構成要素について処理を行う。ステップＳ１３０２において、ＣＰＵ１０１は、コンパイラ・プロファイル情報１１１１を解析して、各プログラム構成要素に対応したＲＯＭサイズ情報を抽出し、する。そして設計図面情報１１１１を元に取得したＲＯＭサイズを集計する。これにより、各設計図面構成要素に対応したＲＯＭサイズ情報である設計図面計測ＲＯＭ情報１１１３を取得する。
【０１２２】
ステップＳ１３０４においてＲＯＭサイズを表す式に対して同定したいプラットフォームＲＯＭ情報が非線形である場合、ステップＳ１３０５に進む。ステップＳ１３０５において、ＣＰＵ１０１は、同定したいプラットフォームＲＯＭ情報の予測値を設定する。ステップＳ１３０６では、ＣＰＵ１０１は、設定した予想値と設計図面計測ＲＯＭ情報１１１３からＲＯＭサイズの予想値を算出する。
【０１２３】
ステップＳ１３０７では、ＣＰＵ１０１は、ステップＳ１３０２で抽出したＲＯＭサイズとステップＳ１３０６で算出したＲＯＭサイズの差を計算する。算出した差が一定値以下の場合、得られたプラットフォームＲＯＭ情報１１１５を保存する。一方、算出した差が一定値以上の場合、ステップＳ１３０５に戻る。
【０１２４】
なお、ステップＳ１３０５において設定される予想値は、一般的に知られているブロイデン法、最急降下法などの最適化手法により決定されるため、ここでは詳細な説明を割愛する。
【０１２５】
ステップＳ１３０４において、ＣＰＵ１０１は、ＲＯＭサイズを表す式に対して、同定したいプラットフォームＲＯＭ情報が線形である場合、ステップＳ１３０８に進む。ステップＳ１３０８において、ＣＰＵ１０１は、最小二乗法や特異値分解法などの線形の統計学的手法を用いて、プラットフォームＲＯＭ情報１１１５を同定し、保存する。
【０１２６】
図１８の１８０１の特定の状態遷移図におけるＲＯＭサイズを見積もる式を例にとって、プラットフォームＲＯＭ情報１１１５の同定方法を示す。１８０１において、Ａ、Ｂ、Ｃ、Ｄ、ＥがプラットフォームＲＯＭ情報１１１５に相当するため、ＲＯＭサイズを表す式に対して、同定したいプラットフォームＲＯＭ情報１１１５が線形であるといえる。
【０１２７】
ステップＳ１３０２において、ＣＰＵ１０１は、各基本ＲＯＭ情報データベース登録用の設計図面として、状態数、遷移線数、イベント数の異なる複数の状態遷移図から成る設計図面を用い、る。そして該設計図面などより生成されたコンパイラ・プロファイル情報１１１１を解析する。そして、ＣＰＵ１０１は、各状態遷移図に対応したＲＯＭサイズを抽出する。ただし、状態遷移図に対応したＲＯＭサイズとは、アクション部分を含まない状態遷移図部分のみのＲＯＭサイズである。
【０１２８】
［第４の実施形態］
以下、設計図面全体のＲＯＭサイズを見積もる処理について説明する。
【０１２９】
１．情報処理装置の機能構成
図１４は設計図面全体のＲＯＭサイズを見積もる際のデータフローを表す。ただし、図１４内の用語の定義は図２内の用語の定義に従うものとする。
【０１３０】
１４００は、自動生成装置起動部である。１４０１は、設計図面情報を出力する実行可能設計図面解析部である。１４０２は、実行可能設計図面解析部１４０１より出力された設計図面情報である。１４０５は、プラットフォーム情報を出力するプラットフォーム依存解析部である。
【０１３１】
１４０６は、プラットフォーム依存解析部１４０５より出力されたプラットフォーム情報である。１４０７は、生成パターン選択情報を出力する生成パターン選択部である。１４０８は、生成パターン選択部１４０７より出力された生成パターン選択情報である。１４０９は、基本ＲＯＭ情報データベースである。
【０１３２】
１４１０は、基本ＲＯＭ情報探索部である。基本ＲＯＭ情報探索部１４１０では、プラットフォーム情報１４０６で指定されたプラットフォームや生成パターン選択情報で指定されたプログラムコード生成パターン情報を一致条件にして、基本ＲＯＭ情報データベース１４０９から基本ＲＯＭ情報を読み取る。
【０１３３】
１４１１は、基本ＲＯＭ情報探索部１４１０より出力された、基本ＲＯＭ情報である。１４１２は、設計図面情報１４０２と基本ＲＯＭ情報１４１１とを解析して、設計図面ＲＯＭ情報を出力する、設計図面ＲＯＭ情報取得部である。１４１３は、設計図面ＲＯＭ情報取得部１４１２より出力された、設計図面ＲＯＭ情報である。１４１４は、計測ＲＯＭ情報データベースである。
【０１３４】
１４１５は、計測ＲＯＭ情報データベース１４１４を解析して、設計図面情報、プラットフォーム情報に基づいて設計図面過去計測ＲＯＭ情報を探索する、計測ＲＯＭ情報探索部である。１４１６は、計測ＲＯＭ情報探索部１４１５から出力される、設計図面過去計測ＲＯＭ情報である。１４１７は、設計図面過去計測ＲＯＭ情報１４１６と設計図面ＲＯＭ情報１４１３から設計図面全体ＲＯＭ情報を出力する、設計図面全体ＲＯＭ情報取得部である。１４１８は、設計図面全体ＲＯＭ情報取得部１４１７より出力される、設計図面全体ＲＯＭ情報である。
【０１３５】
上記１４００，１４０１，１４０５，１４０７，１４１０，１４１２，１４１５，１４１７の機能は処理プログラム１０３ａに含まれ、ＣＰＵ１０１が処理プログラム１０３ａに基づいて実行される。
【０１３６】
２．全体処理の流れ
図１５は設計図面全体のＲＯＭサイズを見積もる際のフローチャートである。図１５の処理はＣＰＵ１０１が処理プログラム１０３ａに基づいて実行する。ステップＳ１５０１では、生成パターン選択部１４０７を起動して、生成パターン選択情報１４０８を取得する。ステップＳ１５０２では、実行可能設計図面解析部１４０１を起動して設計図面情報１４０２を取得する。
【０１３７】
ステップＳ１５０３では、ＣＰＵ１０１は、プラットフォーム依存解析部１４０５を起動して、プラットフォーム情報１４０６を取得する。ステップＳ１５０４において指定のプラットフォーム情報１４０６、生成パターン選択情報１４０８に対応したプラットフォームＲＯＭ情報が基本ＲＯＭ情報データベース１４０９に登録済みで無い場合、ステップＳ１５０５に進む。ステップＳ１５０５では、ＣＰＵ１０１は、プラットフォームＲＯＭ情報を基本ＲＯＭ情報データベース１４０９に登録する。
【０１３８】
ステップＳ１５０５における登録処理は上記第３の実施形態に記述した通りである。ステップＳ１５０４においてプラットフォームＲＯＭ情報が登録済みで無い場合、ステップＳ１５０６に進む。ステップＳ１５０６において、ＣＰＵ１０１は、計測ＲＯＭ情報データベース１４１４に見積もり対象の設計図面情報１４０２と同じ設計図面情報で計測された設計図面過去計測ＲＯＭ情報１４１６がある場合、ステップＳ１５０７に進む。ステップＳ１５０７では、ＣＰＵ１０１は、計測ＲＯＭ情報データベース１４１６から設計図面過去計測ＲＯＭ情報１４１６を取得する。
【０１３９】
ステップＳ１５０８において、ＣＰＵ１０１は、設計図面情報１４０２と基本ＲＯＭ情報１４１１より設計図面情報１４０２内の各設計図面構成要素に対応したＲＯＭサイズを見積もる。この見積もり方法については、上記第２の実施形態に記した通りである。
【０１４０】
ステップＳ１５０９では、ＣＰＵ１０１は、ステップＳ１５０８で見積もった各設計図面構成要素のＲＯＭサイズと、設計図面過去計測ＲＯＭ情報１４１６内の各設計図面構成要素のＲＯＭサイズの差を計算する。これによって、設計図面全体の計測値と合計する。そして、設計図面全体のＲＯＭサイズの見積もり情報である設計図面全体ＲＯＭ情報１４１８を取得する。
【０１４１】
３．計測ＲＯＭ情報データベースの構成
図２１に、計測ＲＯＭ情報データベースの一例を示す。２１０１は、クラスＸのＲＯＭサイズの情報で、ｃｌａｓｓ−ｐａｔｔｅｒｎとあるのはプログラムコード生成パターンを表しており、計測したことのあるプログラムコード生成パターンかどうかの判定に用いる。ｌａｓｔ−ｕｐｄａｔｅとあるのは設計図面の更新履歴を表しており、見積もり対象の設計図面が以前に計測されていたかどうかの判定に用いる。Ｔｏｔａｌはオペレーションや状態遷移やアクションなどを含むクラス全体のＲＯＭサイズを表している。Ｐａｒｔはオペレーションや遷移図などを含まないクラス部分のみのＲＯＭサイズを表している。
【０１４２】
２１０２は、クラスＸ内の状態遷移図のＲＯＭサイズを表している。２１０３は、クラスＸ内のオペレーションのＲＯＭサイズを表している。
【０１４３】
［第５の実施形態］
以下、同一の設計図面より、２つの異なるプログラムコード生成パターンを用いて自動生成されたプログラムコードをコンパイル・リンクして得られた実行可能プログラムの相対的なＲＯＭサイズを見積もる場合について説明する。
【０１４４】
データフローは上記第２の実施形態の説明で用いた図８と同じであるが、生成パターン選択部において複数のプログラムコード生成パターンを選択する点が、上記第２の実施形態とは異なる。
【０１４５】
１．全体処理の流れ
図１６は、同一の設計図面情報などより生成される実行可能プログラムの相対的なＲＯＭサイズを取得するフローチャートである。図１６の処理はＣＰＵ１０１が処理プログラム１０３ａに基づいて実行する。ステップＳ１６０１では、ＣＰＵ１０１は、実行可能設計図面解析部８０２を起動して、設計図面情報８０５を取得する。ステップＳ１６０２においてプラットフォーム情報の入力があった場合、ステップＳ１６０３に進み、ＣＰＵ１０１は、プラットフォーム依存解析部８０１を起動してプラットフォーム情報８０４を取得する。
【０１４６】
ステップＳ１６０４では、ＣＰＵ１０１は、生成パターン選択部８０３を起動して、参照元、参照先の生成パターン選択情報８０６を取得する。ステップＳ１６０５では、対応するプラットフォームＲＯＭ情報が基本ＲＯＭ情報データベース８０７に登録済みでない場合、ステップＳ１６０６に進む。そして、ＣＰＵ１０１は、プラットフォームＲＯＭ情報を基本ＲＯＭ情報データベース８０７に登録する。
【０１４７】
ステップＳ１６０７では、ＣＰＵ１０１は、参照元の実行可能プログラム中の指定のプログラムコード生成パターンが対象とする設計図面構成要素に対応する箇所のＲＯＭサイズを見積もる。実行可能プログラムは、参照元のプログラムコード生成パターンやコンパイラ・リンカを用いて得られる。ステップＳ１６０８では、ＣＰＵ１０１は、参照先の実行可能プログラムの中の、指定のプログラムコード生成パターンが対象とする設計図面構成要素に対応する箇所のＲＯＭサイズを見積もる。なお、各実行可能プログラムは、プログラムコード生成パターンやコンパイラ・リンカを用いて得られる。
【０１４８】
ただし、ステップＳ１６０７、Ｓ１６０８におけるＲＯＭサイズを見積もる処理は、上記第２の実施形態で説明した手順に従うものとする。
【０１４９】
ステップＳ１６０９において、ＣＰＵ１０１は、ステップＳ１６０７やステップＳ１６０８で算出されたＲＯＭサイズの差を算出する。これによってプログラムコード生成パターンなどを用いて生成された実行可能プログラムの相対的なＲＯＭサイズが算出される。
【０１５０】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１５１】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給するよう構成することによっても達成されることはいうまでもない。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５２】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１５３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５４】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【図面の簡単な説明】
【０１５５】
【図１】本発明の一実施形態に係る情報処理装置のハードウェア構成を示す全体図である。
【図２】本発明の一実施形態に係る情報処理装置のデータフロー図である。
【図３】設計図面情報のうちドメイン図について説明した図である。
【図４】設計図面情報のうち、クラス図について説明した図である。
【図５】設計図面情報のうち、状態遷移図について説明した図である。
【図６】設計図面情報のうち、アクション記述について説明した図である。
【図７】本発明の一実施形態に係る情報処理装置における全体の処理手順を示したフローチャートである。
【図８】設計図面構成要素のＲＯＭサイズを見積もるためのデータフロー図である。
【図９】設計図面から実行可能プログラムを生成した際の、各設計図面構成要素のＲＯＭサイズを見積もる処理の流れを示すフローチャートである。
【図１０】指定の設計図面構成要素のＲＯＭサイズを見積もる処理の流れを示すフローチャートである。
【図１１】ＲＯＭサイズを見積もるための情報を基本ＲＯＭ情報データベースに登録するためのデータフロー図である。
【図１２】ＲＯＭサイズを見積もるための情報を基本ＲＯＭ情報データベースに登録する処理の流れを示すフローチャートである。
【図１３】プラットフォームＲＯＭ情報を同定する処理の流れを示すフローチャートである。
【図１４】設計図面全体のＲＯＭサイズを見積もるためのデータフロー図である。
【図１５】設計図面全体のＲＯＭサイズを見積もる処理の流れを示すフローチャートである。
【図１６】同一の設計図面情報などより生成される実行可能プログラムの相対的なＲＯＭサイズを取得する処理の流れを示すフローチャートである。
【図１７】一般的な状態遷移図の実装プログラムコードを示す図である。
【図１８】状態遷移図のＲＯＭサイズを見積もる一般式を示す図である。
【図１９】基本ＲＯＭ情報データベースの一例を示す図である。
【図２０】設計図面ＲＯＭ情報の一例を示す図である。
【図２１】計測ＲＯＭ情報データベースの一例を示す図である。
【図１】
2008015945.tif 000003
【図２】
2008015945.tif 000004
【図３】
2008015945.tif 000005
【図４】
2008015945.tif 000006
【図５】
2008015945.tif 000007
【図６】
2008015945.tif 000008
【図７】
2008015945.tif 000009
【図８】
2008015945.tif 000010
【図９】
2008015945.tif 000011
【図１０】
2008015945.tif 000012
【図１１】
2008015945.tif 000013
【図１２】
2008015945.tif 000014
【図１３】
2008015945.tif 000015
【図１４】
2008015945.tif 000016
【図１５】
2008015945.tif 000017
【図１６】
2008015945.tif 000018
【図１７】
2008015945.tif 000019
【図１８】
2008015945.tif 000020
【図１９】
2008015945.tif 000021
【図２０】
2008015945.tif 000022
【図２１】
2008015945.tif 000023