JP2009223843A - コンピュータプログラムのソースコード自動生成装置及び方法 - Google Patents

コンピュータプログラムのソースコード自動生成装置及び方法 Download PDF

Info

Publication number
JP2009223843A
JP2009223843A JP2008070561A JP2008070561A JP2009223843A JP 2009223843 A JP2009223843 A JP 2009223843A JP 2008070561 A JP2008070561 A JP 2008070561A JP 2008070561 A JP2008070561 A JP 2008070561A JP 2009223843 A JP2009223843 A JP 2009223843A
Authority
JP
Japan
Prior art keywords
source code
cell
calculation formula
function
cells
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008070561A
Other languages
English (en)
Inventor
Satoshi Shirae
聡 白江
Yoshihiro Hashiguchi
義博 橋口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2008070561A priority Critical patent/JP2009223843A/ja
Publication of JP2009223843A publication Critical patent/JP2009223843A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】設計者などが容易に仕様を確認できる表計算ソフトで作成した仕様書ファイルから、設計者などが効率的に確認できるソースコードを生成する。
【解決手段】表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられているファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている仕様書ファイル10を読み込む。読み込んだ仕様書ファイル10の計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数310〜340と、生成された関数の呼出を行うメイン処理部340を含むプログラムを生成する。
【選択図】図13

Description

本発明は、プログラムのソースコードを自動生成する技術に関し、特に表計算ソフトで作成した表計算ファイルからソースコードを自動生成する技術に関する。
従来、表計算ソフトで作成した仕様書ファイルに従ってソースコードを自動生成するシステムがある(例えば特許文献1)。
このようなソースコードの自動生成システムを利用すれば、頻繁に仕様変更が行われるシステムにおいても、その変更内容をプログラムに容易に反映させることができる。また、金融関係の業務など、複雑な計算を必要とする業務プログラムの仕様変更をする場合、変更の内容が正しく反映されているか否かを、表計算ソフトの機能を使って事前にチェックできるので、変更作業を効率的に進めることができる。
特開2003−58370号公報
しかしながら、自動プログラミングシステムで生成したソースコードであっても、設計者がその内容を目視で確認するときがある。例えば、表計算ソフトで作成した仕様書ファイルからソースコードを自動生成することで、仕様の確認及び実装作業を効率化できても、確認作業で手間取ってしまっては、その効果が半減してしまう。
また、損害保険業界では、保険規定が頻繁に改訂されたり、保険業務の知識とコンピュータプログラミングの知識の双方を兼ねた人材が少ないという事情がある。そのため、保険の業務担当者が容易に確認できる仕様書を元に、ソースコードを自動生成することで、コンピュータプログラミングの知識がなくても保険規定の改定に対して、迅速且つ正確にソースコードを修正できるようにすることが望まれている。
そこで、本発明の目的は、設計者などが容易に仕様を確認できる表計算ソフトで作成した仕様書ファイルから、設計者などが効率的に確認できるソースコードを生成することである。
本発明の一つの実施態様に従うコンピュータプログラムのソースコード自動生成装置は、表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込む手段と、前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成する関数生成手段と、を有し、前記関数生成手段によって生成された関数の呼出を行うソースコードを含むプログラムを生成する。
好適な実施形態では、前記表計算ファイルに複数の計算式セルが含まれているとき、前記複数の計算式セルにそれぞれ対応する複数の関数の実行順序を、前記表計算ファイル内での前記複数の計算式セルの相対的な位置関係に基づいて定めてもよい。
好適な実施形態では、前記表計算ファイルは、前記一以上の仕様記述セル、前記一以上の入力セル及び前記一以上の計算式セルが含まれている仕様定義シートと、テーブル名及びテーブルに含まれる値が記述されたテーブルシートとを有する。そして、前記ソースコードの自動生成装置は、前記テーブルシートの記述に基づいて、呼び出されたときの条件に応じて前記テーブルに含まれる値を出力するテーブル関数を生成する手段をさらに備え、前記関数生成手段は、前記テーブルを参照する関数が記述されている計算式セルについて、前記テーブル関数の呼び出しを行う関数を生成するようにしてもよい。
好適な実施形態では、前記表計算ファイルは、外部関数の入出力パラメータを定義したパラメータ定義シートをさらに有する。そして、前記ソースコードの自動生成装置は、前記パラメータ定義シートの定義に従って、前記外部関数とのインタフェースを定義する手段をさらに備え、前記関数生成手段は、前記外部関数を呼び出す計算式が記述されている計算式セルについて、前記インタフェースを用いて前記外部関数の呼び出しを行う関数を生成するようにしてもよい。
好適な実施形態では、前記表計算ファイルは、データの入力または出力のための構造体を定義した構造体定義シートをさらに有する。前記ソースコードの自動生成装置は、前記構造体定義シートの定義に従って、前記プログラムの入力または出力のための構造体を定義するソースコードを生成する手段をさらに備えていてもよい。
好適な実施形態では、前記計算式セルには、前記プログラム内で利用される中間的な値を算出するワークセルと、前記プログラムから出力される値を算出する出力セルとが含まれていてもよい。
以下、本発明の一実施形態に係る自動プログラミングシステムについて、図面を参照して説明する。
図1は、本実施形態に係る自動プログラミングシステムの機能構成図である。本システムは、ソースコード自動生成装置1を備える。ソースコード自動生成装置1は、同図に示すように、所定のフォーマットで記述された仕様書ファイル10を読み込んで、プログラムのソースコード51を自動生成する。ここで生成されるソースコード51は、別に生成されたメインプログラムであるソースコード53から呼び出されるサブルーチンである。ソースコード53は、複数のソースコード51を組み合わせて、1つの保険料率を計算するための上位プログラムである。本システムは、さらに、コンパイラ・リンカ5を備える。コンパイラ・リンカ5は、ソースコード51,53のコンパイル及びリンクを行って、それぞれソースコード51,53に対応する実行モジュール61,63を生成する。
この自動プログラミングシステムは、例えば、プロセッサ及びメモリを備えた本体と、入出力装置を備えた汎用的なコンピュータシステムによって実現され、以下に説明するソースコード自動生成装置1内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
まず、仕様書ファイル10について説明する。本実施形態に係る仕様書ファイル10は、表計算ソフトによって生成されたファイルである。すなわち、仕様書ファイル10は、複数のシートを有し、各シートには多数のセルが含まれている。そして、仕様書ファイル10には、文章で仕様が記述されているとともに、その仕様が表計算ソフトの関数などを用いて実現されている。
図2〜図7は、仕様書ファイル10の各シートを示す。
図2は、仕様書シート11を示す。仕様書シート11には、プログラムとして実現したい仕様が記載される。すなわち、仕様書シート11は、計算仕様列111と、名前定義列112と、入力列113と、ワーク列114と、出力列115と、エラー時遷移列116と、定数列117とを備える。ここで、ソースコードを生成したい仕様の全体が、複数のステップからなるときは、ステップごとの仕様が分割して記載される。
計算仕様列111は、文章で記述された計算仕様の入力領域である。設計者または要件定義者は、計算仕様列111のセル内に所望の仕様をテキストで記載する。また、計算仕様列111には、各計算仕様のステップ番号も記載されている。
入力列113は、計算仕様列111に記述された仕様に係る入力を受け付けるセルの列である。
ワーク列114は、生成されるプログラム内で利用される中間的な値を算出するワークセルの列である。ワークセルには、計算仕様列111に記述された仕様に対応する、表計算ソフトの関数などを用いた計算式が記述される。
出力列115は、生成されるプログラムから出力される値を算出する出力セルの列である。出力セルには、計算仕様列111に記述された仕様に対応する計算式が記述される。
エラー時遷移列116は、ワークセルまたは出力セルに記述された計算式の実行結果がエラーであった場合に遷移する遷移先のステップを記述する列である。
ワーク列114のワークセル及び出力列115の出力セルには、同一ステップ内の計算仕様列111に記述された仕様を実現するための計算式が記載される。その計算式は、同一ステップ内の入力列113の入力セルの値を利用する。出力セルについては、同一ステップまたは前段のステップのワークセルの計算結果を利用する場合もある。ここで、ワークセル及び出力セルに記載される計算式は、表計算ソフトが予め用意している関数を用いた式でもよいし、あるいは外部関数の呼出しでもよい。表計算ソフトが予め用意している関数は、例えば、条件分岐のためのIf関数、およびテーブルを参照するためのLookup関数など、種々のものがある。
図3は、テーブル内容シート12を示す。テーブル内容シート12には、生成されるプログラムにおいて使用されるテーブル内容が定義される。同図に示すテーブル内容としては、ソースプログラム内で使用されるコード121と、そのコードの内容122とが含まれている。
図4は、テーブル定義シート13を示す。テーブル定義シート13には、テーブル名称131に対して、テーブルID132及びプログラムID133が定義される。本システムでは、テーブルは、テーブルの値を出力するテーブル関数として実装される。つまり、本システムは、各テーブルのテーブル関数のソースコードを、プログラムID133で定義された名称で生成する。各テーブルの値は、テーブル内容シート12で定義されている。
図5は、項目定義シート14を示す。項目定義シート14は、生成されるソースコードにおいて変数などとして使用される項目が定義される。同図の例では、例えば、項目名称141に対して、項目ID142、属性143及び桁数144が定義される。
図6は、入力構造体定義シート15を示す。入力構造体定義シート15は、生成されるプログラムの入力データを格納するための構造体の定義情報が記載されている。出力構造体定義シートは、入力構造体定義シート15と同一の構成であり、生成されるプログラムの出力データを格納するための構造体の定義情報が記載されている。
図7は、パラメータ定義シート16を示す。パラメータ定義シート16は、外部関数を呼び出す際の、外部関数とのインタフェースに関するパラメータを定義する。すなわち、パラメータ定義シート16には、呼出元で使用しているパラメータと呼出先で使用するパラメータとを対応付けている。同図の例では、呼び出し元の区分161,項目名162及び項目ID163と、呼出先の外部関数における区分164,項目名165及び項目ID166とが対応付けられている。区分161,164は、項目ID163,166に示す項目が入力「I」、ワーク「W」、出力「O」の何れの項目であるかの区分を示す。
このパラメータ定義シート16によれば、外部関数が呼び出されるときに、区分161が「I」の呼出元項目ID163に示すパラメータに値がセットされていると、外部関数では項目名165に示すパラメータでその値を受け取ることが定義されている。また、外部関数の処理結果が、区分164「O」の呼出先項目ID166に示すパラメータにセットされると、呼出元では、呼出元項目ID163に示すパラメータでその値を受け取ることが定義されている。
設計者等は、表計算ソフトを用いて、上述の仕様書ファイル10を生成する。この仕様書ファイル10には、仕様書シート11にテキストで仕様を記述した計算仕様列111があるので、人間が読んでも計算仕様の内容を容易に理解することができる。従って、コンピュータにあまり詳しくないユーザであっても、計算仕様列111によって仕様の確認が容易である。さらに、計算仕様列111に記載されている仕様が、入力列113,ワーク列114及び出力列115に、表計算ソフトの機能を利用して実現されているので、その場で実現されている機能が仕様通りであるか否かのチェックを容易にすることができる。
以下に説明するように、この仕様書ファイル10に基づいて自動的にソースコードが生成されるので、計算仕様列111に記載された仕様が確実にソースコードに反映されることになる。
次に、ソースコード自動生成装置1について説明する。まず、ソースコード自動生成装置1は、図8及び図9に示すインタフェース画面200を提供する。
図8を参照すると、インタフェース画面200は、処理区分の入力領域210と、入力ファイルの選択領域220と、入力対象シートの選択領域230と、出力フォルダの選択領域240とを有する。
処理区分の入力領域210は、「シート別出力処理」と、「共通テーブル処理」との選択を受け付ける。図8には、「シート別出力処理」が選択された場合のインタフェース画面200が示されている。
入力ファイルの選択領域220において、オペレータがソースコードを生成するための対象となる仕様書ファイルを選択する。
入力対象シートの選択領域230において、オペレータが入力ファイルの選択領域220で選択したファイルの中から、入力対象とするシートを選択する。図8の例では、入力対象シートとして、仕様書シート11が選択されている。入力対象シートの選択領域230には、さらに、出力ID2301、開始行2302,入力列2303、ワーク列2304,出力列2305、定数列2307、エラー時遷移列2308、遷移先列2309、入力データの構造体ID2310、ワークデータの構造体ID2311、及び出力データの構造体ID2312の各入力領域が設けられている。
出力ID2301には、ソースコード自動生成装置1が生成するソースコードのプログラムIDが設定される。
開始行2302は、ソースコード自動生成装置1が仕様書シート11の解析を開始する行が設定される。
入力列2303、ワーク列2304,出力列2305、定数列2307及びエラー時遷移列2308には、選択されたシート(仕様書シート11)における、入力列113、ワーク列114、出力列115、エラー時遷移列116及び定数列117がそれぞれ割り当てられている列番号が入力される。
遷移先列2309は、選択されたシート(仕様書シート11)における、計算仕様列111のステップ名が割り当てられている列番号が入力される。
入力データの構造体ID2310、ワークデータの構造体ID2311、及び出力データの構造体ID2312は、入力データ、ワークデータ及び出力データの構造体定義を使用する場合に、それぞれの構造体IDが入力される。
出力フォルダの選択領域240には、ソースコード自動生成装置1が生成するソースコードファイルを格納するフォルダが入力される。
図9は、処理区分の入力領域210において、「共通テーブル処理」が選択された場合のインタフェース画面200を示す。この場合、インタフェース画面200には、対象表定義選択領域250が表示される。対象表定義選択領域250では、入力ファイルの選択領域220で入力ファイルとして選択された表計算ファイルの中のテーブル定義シート13で定義されているテーブルの中から、テーブル関数のソースコードを生成する対象となるテーブルが選択される。本実施形態では、同図に示すように、対象表定義選択領域250のプルダウンリストには、選択可能なテーブルID132(“T_SHURUI”及び“T_SHUMOKU”)が表示される。尚、対照表定義選択領域250のプルダウンリスト上に、テーブルID132を表示する際には、表計算ソフトが備える機能によって、テーブル定義シート13内の表に対して、プログラムから参照可能なオブジェクト名称(例.「TABLE_TEIGI」)を予め付与しておき、プルダウンを生成するプログラムでは、当該オブジェクト(例.「TABLE_TEIGI」)から、テーブルID132に対応する値を取得するようにしても良い。
なお、インタフェース画面200の各項目に入力された値は、所定のテキストファイルに保存しておくことができる。それ以降、同じ構造の仕様書ファイル10を対象とする際は、このテキストファイルを利用して、各項目へのユーザ入力を省略することができる。
次に、本実施形態に係る自動プログラミングシステムにおいて、ソースコード自動生成処理の手順について、図10〜図12のフローチャートを用いて説明する。
図10は、テーブル関数の生成処理手順を示すフローチャートである。
まず、ソースコード自動生成装置1は、インタフェース画面200の入力ファイル選択領域220において指定された入力ファイルをオープンする(S11)。さらにソースコード自動生成装置1は、この入力ファイルのうち、テーブル内容シート12及びテーブル定義シート13を読み込む(S13)。そして、インタフェース画面200の対象表定義選択領域250において指定されたテーブルについて、読み込んだテーブル定義シート13のテーブルID及びプログラムIDを取得し、読み込んだテーブル内容シート12に記述されたコードなどのテーブルを構成する値に従って、テーブル関数のソースコードを生成する(S15)。例えば、対象表定義選択領域250において選択されたテーブルID132のテーブルの値をテーブル内容シート12から取得して、プログラムID133を関数名とするテーブル関数のソースコードを生成する。ここで生成されるテーブル関数は、例えば、呼び出されたときのパラメータとしてコードを受け取ると、そのコードに対応するテーブル内の値を所定の構造体にセットするようにしてもよい。構造体を使用する場合は、ソースコード自動生成装置1は、構造体を定義するためのソースコードも生成する。「尚、テーブルID132のテーブルの値を、テーブル内容シート12から取得する際には、表計算ソフトが備える機能によって、テーブル内容シート12内の表に対して、テーブル名称131に対応するよう、プログラムから参照可能なオブジェクト名称(例.「保険種目」「保険種類」)を予め付与しておき、テーブルID132(例.「T_SHURUI」)のテーブルの値をテーブル内容シート12から取得するプログラムでは、当該テーブルID132(例.「T_SHURUI」)に対応するオブジェクト(例.「保険種類」)から、テーブルの値を取得するようにしても良い。
次に、図11は、ソースコード自動生成の全体の処理手順を示すフローチャートである。
まず、ソースコード自動生成装置1は、インタフェース画面200の入力ファイル選択領域220において指定された入力ファイルをオープンする(S20)。そして、ソースコード自動生成装置1は、ここでオープンした入力ファイルのうち、入力構造体定義シート15及び出力構造体シートを読み込んで、入力構造体及び出力構造体を定義するためのソースコードを生成する(S22)。
次に、ソースコード自動生成装置1は、テーブル定義シート13及び項目定義シート14を読み込む(S24)。そして、インタフェース画面200の出力対象シート選択領域230で選択されたシートの、開始行2302で指定された行以降のワーク列2304及び出力列2305のワークセル及び出力セルについて、行番号の若い順に、行番号が等しいときには、列番号の若い順に以下の処理を行う。まず、ソースコード自動生成装置1は、各セルに計算式が記載されているか否かを判定する(S26)。そして、計算式が記載されていた場合は(S26:Yes)、そこに記載されている式の内容を解析する(S27)。この式の解析は、例えば、以下のようにして行う。すなわち、各セルに記載されている文字列から、予め定められている関数の文字列を検出する。そして、検出された関数ごとの、それぞれのフォーマットに従って、各セルに記載されている文字列から、その関数のパラメータとして指定されている値を特定する。
つぎに、ステップS27の解析結果に基づいて、ソースコードの生成を行う(S28)。この処理の詳細については、次に説明する。
そして、ソースコード自動生成装置1は、ステップS26〜S28を、すべてのワークセル及び出力セルに適用する(S30)。
なお、ソースコード自動生成装置1は、プログラミング言語の種別に応じて、既に読み込んでいるテーブル定義シート13及び項目定義シート14を参照して、必要な宣言部あるいは定義部を適宜生成する。
図12は、ソースコードの生成処理の詳細な手順を示すフローチャートである。
まず、ソースコード自動生成装置1は、ステップS27の解析により検出された関数が、予め表計算ソフトが提供する関数であるか、あるいは、外部関数の呼出であるかを判定する(S32)。例えば、外部関数の呼出形式(例えば、call_dll())を予め定めておき、ソースコード自動生成装置1は、検出された関数がそれに合致するか否によって判定するようにしてもよい。なお、外部関数は、ソースコード自動生成装置1を用いて、別途作成しておいたプログラムであってもよい。
セル内の関数が表計算ソフトの関数であるときは(S32:表計算関数)、ソースコード自動生成装置1は、その関数の種別を判別し、その種別に応じたソースコードを生成する(S34)。例えば、関数ごとに、予めソースコードへの変換手順が定義されていて、ソースコード自動生成装置1は、その定義されている変換手順に従って、セル内の関数からソースコードを生成する。ソースコードへの変換手順には、例えば、関数名の文字列(例えばvlookup)に続く左カッコ“(”と、“,”の間に挟まれている文字列を、第1引数として設定する、などがある。ここで生成されるソースコードには、ステップS27の解析により検出されたパラメータがそれぞれ適宜使用される。また、既に読み込んでいるテーブル定義シート13及び項目定義シート14を参照して、日本語で記述されている名称は、項目定義シート14(図5参照)を用いてソースコードで使用可能なIDに変換されて使用される。例えば、If関数であれば、パラメータに示す条件の判定を行うソースコードが生成され、Lookup関数であれば、パラメータに示すテーブルに対応する関数の呼出を行うソースコードが生成される。
一方、セル内の関数が外部関数呼出であるときは(S32:外部関数呼出)、ソースコード自動生成装置1は、既に読み込んでいるパラメータ定義シート16に基づいて、外部関数を呼び出すときのパラメータを選択するための関数を生成する(S36)。例えば、パラメータ定義シート16には、呼出元と呼出先のパラメータの組が複数登録されている。ここで生成されるパラメータ選択関数は、呼出元と呼出先のパラメータの組のいずれか一つを選択するための関数である。
このパラメータ選択関数を用いて選択したパラメータの組を用いて、外部関数の呼び出しを行うソースコードを生成する(S38)。これにより、外部関数に必要なデータを渡し、その関数の実行結果を取得するソースコードが生成できる。
ここで、生成されるソースコードは、セルごとに関数化し、メイン処理部からそれぞれの関数を呼び出す構成としてもよい。このとき、各関数の実行順序は、セル同士の相対的な位置関係に応じて定めてもよい。例えば、各関数の実行順序は、各セルの行番号が若い順としてもよい。
このときの仕様書ファイル10とソースコード300との対応関係の一例を図13に示す。すなわち、仕様書シート11のワーク列114及び出力列115の、ワークセル及び出力セルに記載されている計算式に対応する関数310〜330がそれぞれ生成される。そして、メイン処理部340が、それらの関数をワークセル及び出力セルの行番号が若い順に、行番号が等しいときには、列番号の若い順に呼び出すようになっている。
このように、ソースコードを仕様書ファイルのセルごとに関数化することにより、仕様書ファイルの記述とソースコードの構成が対応するため、設計者が目視でソースコードを確認するときに理解しやすい。
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
本発明の一実施形態に係る自動プログラミングシステムの機能構成図である。 仕様書ファイル中の仕様書シートを示す。 仕様書ファイル中のテーブル内容テーブル内容シートを示す。 仕様書ファイル中のテーブル定義シートを示す。 仕様書ファイル中の項目定義シートを示す。 仕様書ファイル中の入力構造体定義シートを示す。 仕様書ファイル中のパラメータ定義シートを示す。 「シート別出力処理」が選択された場合のインタフェース画面を示す。 「共通テーブル処理」が選択された場合のインタフェース画面を示す。 テーブル関数の生成処理手順を示すフローチャートである。 ソースコード自動生成の全体の処理手順を示すフローチャートである。 ソースコードの生成処理の詳細な手順を示すフローチャートである。 仕様書シートとソースコードの対応の一例を示す。
符号の説明
1…ソースコード自動生成装置、10…仕様書ファイル、11…仕様書シート、12…テーブル内容シート、13…テーブル定義シート、14…項目定義シート、15…入力構造体定義シート、16…パラメータ定義シート、200…インタフェース画面、300…ソースコード。

Claims (8)

  1. コンピュータプログラムのソースコード自動生成装置であって、
    表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込む手段と、
    前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成する関数生成手段と、を有し、
    前記関数生成手段によって生成された関数の呼出を行うソースコードを含むプログラムを生成することを特徴とするソースコードの自動生成装置。
  2. 前記表計算ファイルに複数の計算式セルが含まれているとき、前記複数の計算式セルにそれぞれ対応する複数の関数の実行順序を、前記表計算ファイル内での前記複数の計算式セルの相対的な位置関係に基づいて定めることを特徴とする請求項1記載のソースコードの自動生成装置。
  3. 前記表計算ファイルは、前記一以上の仕様記述セル、前記一以上の入力セル及び前記一以上の計算式セルが含まれている仕様定義シートと、テーブル名及びテーブルに含まれる値が記述されたテーブルシートとを有し、
    前記ソースコードの自動生成装置は、
    前記テーブルシートの記述に基づいて、呼び出されたときの条件に応じて前記テーブルに含まれる値を出力するテーブル関数を生成する手段をさらに備え、
    前記関数生成手段は、前記テーブルを参照する関数が記述されている計算式セルについて、前記テーブル関数の呼び出しを行う関数を生成することを特徴とする請求項1または2記載のソースコードの自動生成装置。
  4. 前記表計算ファイルは、外部関数の入出力パラメータを定義したパラメータ定義シートをさらに有し、
    前記ソースコードの自動生成装置は、
    前記パラメータ定義シートの定義に従って、前記外部関数とのインタフェースを定義する手段をさらに備え、
    前記関数生成手段は、前記外部関数を呼び出す計算式が記述されている計算式セルについて、前記インタフェースを用いて前記外部関数の呼び出しを行う関数を生成することを特徴とする請求項1〜3のいずれかに記載のソースコードの自動生成装置。
  5. 前記表計算ファイルは、データの入力または出力のための構造体を定義した構造体定義シートをさらに有し、
    前記ソースコードの自動生成装置は、
    前記構造体定義シートの定義に従って、前記プログラムの入力または出力のための構造体を定義するソースコードを生成する手段をさらに備えることを特徴とする請求項1〜4のいずれかに記載のソースコードの自動生成装置。
  6. 前記計算式セルには、前記プログラム内で利用される中間的な値を算出するワークセルと、前記プログラムから出力される値を算出する出力セルとが含まれることを特徴とする請求項1〜5のいずれかに記載のソースコードの自動生成装置。
  7. コンピュータプログラムのソースコード自動生成方法であって、
    表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込むステップと、
    前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成するステップと、
    前記生成された関数の呼出を行うソースコードを含むプログラムを生成するステップと、を有するソースコードの自動生成方法。
  8. コンピュータプログラムのソースコードを自動生成するためのコンピュータプログラムであって、
    表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込むステップと、
    前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成するステップと、
    前記生成された関数の呼出を行うソースコードを含むプログラムを生成するステップと、をコンピュータに実行させるためのコンピュータプログラム。
JP2008070561A 2008-03-19 2008-03-19 コンピュータプログラムのソースコード自動生成装置及び方法 Pending JP2009223843A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008070561A JP2009223843A (ja) 2008-03-19 2008-03-19 コンピュータプログラムのソースコード自動生成装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008070561A JP2009223843A (ja) 2008-03-19 2008-03-19 コンピュータプログラムのソースコード自動生成装置及び方法

Publications (1)

Publication Number Publication Date
JP2009223843A true JP2009223843A (ja) 2009-10-01

Family

ID=41240504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008070561A Pending JP2009223843A (ja) 2008-03-19 2008-03-19 コンピュータプログラムのソースコード自動生成装置及び方法

Country Status (1)

Country Link
JP (1) JP2009223843A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014015023A1 (en) * 2012-07-17 2014-01-23 Winshuttle, Llc Bulk business workflow systems and methods
US9513875B2 (en) 2011-11-22 2016-12-06 International Business Machines Corporation Processing instruction information
CN109857384A (zh) * 2018-11-21 2019-06-07 江苏方天电力技术有限公司 一种热工指标在线计算的编码方法
KR102621198B1 (ko) * 2023-09-06 2024-01-04 지엔터프라이즈 주식회사 비즈니스 로직을 처리하는 전자장치 및 그 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257658A (ja) * 1991-05-09 1993-10-08 Toshiba Corp データ自動生成システム
JP2000231478A (ja) * 1999-02-09 2000-08-22 Nippon Steel Corp ソフトウェアの自動生成装置および方法、記録媒体
JP2002169692A (ja) * 2000-09-19 2002-06-14 Fujitsu Ltd 仕様書作成プログラム及び仕様書作成プログラムを格納したコンピュータ可読媒体
JP2005196589A (ja) * 2004-01-08 2005-07-21 Nec Corp 帳票作成プログラム生成装置、帳票作成プログラム生成方法、及び帳票作成プログラム生成プログラム
JP2006260314A (ja) * 2005-03-18 2006-09-28 Dainippon Screen Mfg Co Ltd アプリケーションソフトウェア構成管理装置、アプリケーションソフトウェア構成管理方法、およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257658A (ja) * 1991-05-09 1993-10-08 Toshiba Corp データ自動生成システム
JP2000231478A (ja) * 1999-02-09 2000-08-22 Nippon Steel Corp ソフトウェアの自動生成装置および方法、記録媒体
JP2002169692A (ja) * 2000-09-19 2002-06-14 Fujitsu Ltd 仕様書作成プログラム及び仕様書作成プログラムを格納したコンピュータ可読媒体
JP2005196589A (ja) * 2004-01-08 2005-07-21 Nec Corp 帳票作成プログラム生成装置、帳票作成プログラム生成方法、及び帳票作成プログラム生成プログラム
JP2006260314A (ja) * 2005-03-18 2006-09-28 Dainippon Screen Mfg Co Ltd アプリケーションソフトウェア構成管理装置、アプリケーションソフトウェア構成管理方法、およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513875B2 (en) 2011-11-22 2016-12-06 International Business Machines Corporation Processing instruction information
WO2014015023A1 (en) * 2012-07-17 2014-01-23 Winshuttle, Llc Bulk business workflow systems and methods
CN109857384A (zh) * 2018-11-21 2019-06-07 江苏方天电力技术有限公司 一种热工指标在线计算的编码方法
KR102621198B1 (ko) * 2023-09-06 2024-01-04 지엔터프라이즈 주식회사 비즈니스 로직을 처리하는 전자장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
US7475289B2 (en) Test manager
US8117589B2 (en) Metadata driven API development
Stănciulescu et al. Concepts, operations, and feasibility of a projection-based variation control system
US6757889B1 (en) Source program checking device and program and method for same
KR101623174B1 (ko) 소스 코드 분석 장치, 이를 위한 컴퓨터 프로그램, 그 기록매체
Freeman Essential TypeScript 5
US8296254B2 (en) Data flow analyzing apparatus, data flow analyzing method and data flow analyzing program
JP2009223843A (ja) コンピュータプログラムのソースコード自動生成装置及び方法
Paramonov et al. Tacle: Learning constraints in tabular data
CN110096688B (zh) 一种基于流程图和表格的生产工序记录方法和装置
Mendonça et al. Test2feature: Feature-based test traceability tool for highly configurable software
JP5758311B2 (ja) テストコード生成装置、テストコード生成方法、テストコード生成プログラム
CN116225902A (zh) 生成测试用例的方法、装置及设备
JP6097231B2 (ja) プログラム生成装置および方法
Schubanz Custom-MADE-Leveraging Agile Rationale Management by Employing Domain-Specific Languages.
Grünbacher A Study on Variability for Multi-Device Rendering in Digital Music Publishing
Cu et al. Architecture-centric derivation of products in a software product line
JP2005032047A (ja) ファイル自動生成装置、方法、プログラム及び記憶媒体
KR100846203B1 (ko) 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
JP2020160923A (ja) 処理性能検証装置、及び、処理性能を検証する方法
JP2007058750A (ja) データ仕様記述文書および検証データ生成装置
Brdjanin et al. Dealing with structural differences in serialized BPMN models
Correia et al. Improving Maritime Operations with Robotic Process Automation and Platform-Independent Specifications
KR101149655B1 (ko) 프로그램 디자인 장치 및 그 방법
JP2009134662A (ja) 性能テストデータ構築ツール

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110113

A977 Report on retrieval

Effective date: 20120927

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130108