(57)【要約】【課題】  より的確にプログラムの自動生成を行なうことができるプログラム生成装置、及び、プログラム生成方法を提供する【解決手段】  プログラム生成装置は、複数の領域を含むプログラムを予め記憶し、複数の領域を含む設計書データを予め記憶し、前記記憶しているプログラムの各領域を認識し、前記各領域毎に更新可否設定情報を設定し、前記更新可否設定情報において更新可と設定されている領域に対応する設計書データの領域の情報に基づいてプログラムを生成し、前記生成したプログラムを前記記憶しているプログラムの対応する領域に上書きする。【選択図】      図１
2009237926.tif 000002
【特許請求の範囲】
【請求項１】
複数の領域を含むプログラムを予め記憶しているプログラム記憶手段と、
複数の領域を含む設計書データを予め記憶している設計書データ記憶手段と、
前記プログラム記憶手段に記憶されているプログラムの各領域を認識し、前記各領域毎に更新可否設定情報を設定する更新可否設定手段と、
前記更新可否設定情報において更新可と設定されている領域に対応する設計書データの領域の情報に基づいてプログラムを生成するプログラム生成手段と、
前記プログラム生成手段により生成したプログラムを前記プログラム記憶手段により記憶されているプログラムの対応する領域に上書きする更新手段と、
を具備することを特徴とするプログラム生成装置。
【請求項２】
操作が入力される入力手段をさらに具備し、
前記更新可否設定手段は、前記入力手段による操作入力に基づいて前記プログラム記憶手段に記憶されているプログラムの各領域毎の更新可否設定情報を設定することを特徴とする請求項１に記載のプログラム生成装置。
【請求項３】
前記プログラム記憶手段に記憶されているプログラム及び前記設計書データ記憶手段に記憶されている設計書データは、互いに対応する領域毎に共通する識別子を有し、
前記更新可否設定手段は、前記識別子と更新の可否の情報とを対応付けて記憶し、
前記プログラム生成手段及び前記更新手段は、前記識別子に基づいて対応する領域を判定することを特徴とする請求項１に記載のプログラム生成装置。
【請求項４】
複数の領域を含むプログラムを予め記憶し、
複数の領域を含む設計書データを予め記憶し、
前記記憶しているプログラムの各領域を認識し、前記各領域毎に更新可否設定情報を設定し、
前記更新可否設定情報において更新可と設定されている領域に対応する設計書データの領域の情報に基づいてプログラムを生成し、
前記生成したプログラムを前記記憶しているプログラムの対応する領域に上書きする、
ことを特徴とするプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、プログラム設計書からプログラムを生成するプログラム生成装置、及び、プログラム生成方法に関する。
【背景技術】
【０００２】
従来、所定の書式により作成された設計書などに基づいて自動的にプログラムを生成する技術が提示されている（例えば、特許文献１参照）。上記したような技術では、設計書は、文字列、文章中の単語、表、図形、及びそれらを指定するための数値などの情報を含む。設計書として情報が入力された場合、設計書の書式に対応したスクリプト処理により設計書の内容が反映されたプログラムが自動生成される。
【特許文献１】特開２００５−０４３９３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記したような方法で生成したプログラムの一部を直接変更する場合がある。即ち、プログラムのソースコードを直接書き換える場合がある。また、仕様の変更などの為に、設計書の内容を書き換えて再度自動生成を行ない、プログラムを上書きして更新する場合がある。
【０００４】
例えば、プログラムを直接書き換えた後に上記したような自動生成によりプログラムの更新を行なうと、直接書き換えた内容が上書きされてしまうという問題がある。
【０００５】
そこで、本発明の一形態は、上記した問題点を解決するものであり、より的確にプログラムの自動生成を行なうことができるプログラム生成装置、及び、プログラム生成方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一実施形態としてのプログラム生成装置は、複数の領域を含むプログラムを予め記憶しているプログラム記憶手段と、複数の領域を含む設計書データを予め記憶している設計書データ記憶手段と、前記プログラム記憶手段に記憶されているプログラムの各領域を認識し、前記各領域毎に更新可否設定情報を設定する更新可否設定手段と、前記更新可否設定情報において更新可と設定されている領域に対応する設計書データの領域の情報に基づいてプログラムを生成するプログラム生成手段と、前記プログラム生成手段により生成したプログラムを前記プログラム記憶手段により記憶されているプログラムの対応する領域に上書きする更新手段と、を具備する。
【０００７】
また、本発明の一実施形態としてのプログラム生成方法は、複数の領域を含むプログラムを予め記憶し、複数の領域を含む設計書データを予め記憶し、前記記憶しているプログラムの各領域を認識し、前記各領域毎に更新可否設定情報を設定し、前記更新可否設定情報において更新可と設定されている領域に対応する設計書データの領域の情報に基づいてプログラムを生成し、前記生成したプログラムを前記記憶しているプログラムの対応する領域に上書きする。
【発明の効果】
【０００８】
この発明の一形態によれば、より的確にプログラムの自動生成を行なうことができるプログラム生成装置、及び、プログラム生成方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の実施形態に係るプログラム生成装置、及び、プログラム生成方法について詳細に説明する。
【００１０】
図１は、本発明の実施形態に係るプログラム生成装置１の構成例を概略的に示すブロック図である。  
プログラム生成装置１は、入力部２、表示部３、設計書データ記憶部４、プログラム自動生成部５、プログラム記憶部６、更新可否設定部７、及び、制御部１０などを備えている。
【００１１】
入力部２は、例えば、キーボード、若しくは、マウスなどにより構成される。本装置を操作する操作者は、入力部２により種々の操作指示やデータなどを入力する。入力部２は入力手段として機能する。
【００１２】
表示部３は、例えば、液晶パネルなどにより構成される。表示部３は、制御部１０の制御に基づいて、種々の情報を表示する。即ち表示部３は表示手段として機能する。
【００１３】
設計書データ記憶部４は、操作者により入力された情報に基づいて作成された設計書データ４１を記憶する。設計書データ記憶部４は、設計書データ記憶手段として機能する。設計書データ４１は、図２に示すような情報の集まりである。図２は、設計書データ４１の例を示す図である。即ち、設計書データ４１は、複数の領域（ａ、ｂ、・・・）により構成される。設計書データ４１の各領域は、所定のフォーマットにより種々の情報が記載されて作成されている。設計書データ４１の各領域の情報には、それぞれ固有の識別子が含まれている。
【００１４】
プログラム自動生成部５は、制御部１０による制御に基づいて、所定のフォーマットで作成された設計書データ４１の内容からプログラム、即ち、ソースコードを自動生成するスクリプト処理を行なう。プログラム自動生成部５は、プログラム生成手段として機能する。
【００１５】
図３は、図１に示すプログラム生成装置１において行なわれるプログラムを自動生成する処理について説明するためのフローチャートである。
【００１６】
プログラム自動生成部５は、設計書データ４１の表、行、列などを指定し、そこに記載されている内容を読み出す（ステップＳ１１）。プログラム自動生成部５は、読み出した内容に基づいてプログラム、即ちソースコードを生成するスクリプト処理を行なう（ステップＳ１２）。プログラム自動生成部５は、生成したプログラムを出力し（ステップＳ１３）、処理を終了する。
【００１７】
プログラム記憶部６は、プログラム自動生成部５により生成されたプログラム６１を記憶する。プログラム記憶部６は、プログラム記憶手段として機能する。プログラム６１は、図４に示すように、プログラミング言語（ソースコード）によって記載された文字列の集合である。このプログラム６１は、コンピュータに対する一連の指示である。このプログラムをコンパイルして機械語（オブジェクトコード）に変換して実行することにより、コンピュータは種々の処理を行なうことができる。
【００１８】
図４に示すように、プログラム６１は、複数の領域（ａ、ｂ、・・・）により構成される。各領域は、設計書データ４１の各領域に対応している。即ち、プログラム６１の領域ａに記載されている文字列は、設計書データ４１の領域ａの情報から生成されたプログラムである。また、プログラム６１の領域ｂに記載されている文字列は、設計書データ４１の領域ｂの情報から生成されたプログラムである。
【００１９】
プログラム６１の複数の領域（ａ、ｂ、・・・）の先頭には、その領域を識別する為の文字列（設計書データ４１における識別子）が記載される。即ち、識別子「Ｆｕｎｃ−００１」が付された設計書データから生成されたプログラムには、「／＊  ［％ＳＴＡＲＴ％；％ＦｕｎｃｔｉｏｎＨｅａｄｅｒ％；％Ｆｕｎｃ−００１％]  ＊／」及び「／＊  ［％ＥＮＤ％；％ＦｕｎｃｔｉｏｎＨｅａｄｅｒ％；％Ｆｕｎｃ−００１％］  ＊／」という文字列が記載される。また、識別子「Ｆｕｎｃ−００２」が付された設計書データから生成されたプログラムには、「／＊  ［％ＳＴＡＲＴ％；％ＦｕｎｃｔｉｏｎＨｅａｄｅｒ％；％Ｆｕｎｃ−００２％］  ＊／」及び「／＊  [％ＥＮＤ％；％ＦｕｎｃｔｉｏｎＨｅａｄｅｒ％；％Ｆｕｎｃ−００２％]  ＊／」という文字列が記載される。
【００２０】
これにより、制御部１０は、プログラム６１の各領域を認識することができる。さらに、制御部１０は、プログラム６１の各領域が設計書データ４１のどの領域に基づいて生成されたかを識別子に基づいて識別することが出来る。
【００２１】
また、プログラム自動生成部５は、プログラム記憶部６により記憶されているプログラムの内容を設計書データ４１に基づいて更新する更新処理を行なうことができる。即ち、プログラム自動生成部５は、更新手段としても機能する。例えば、設計書データ４１の内容が入力部２により入力された情報によって変更された場合、プログラム自動生成部５は、変更された設計書データ４１に基づいてプログラムを生成し、プログラム記憶部６により記憶されているプログラム６１を上書きする。
【００２２】
また、プログラム記憶部６により記憶されているプログラム６１は、入力部２により入力された情報に基づいて書き換えが可能である。即ち、制御部１０は、操作者による入力に基づいて、プログラム６１の文字列を変更することができる。
【００２３】
更新可否設定部７は、上記した更新処理を行なう場合、上書きの可否をプログラム６１中の各領域毎に示す更新可否設定情報を記憶する。更新可否設定部７及び制御部１０は、更新可否設定手段として機能する。更新可否設定情報は、入力部２により入力された情報に基づいて設定される。プログラム自動生成部５は、更新処理を行なう場合、更新可否設定部７に記憶されている更新可否設定情報を参照し、上書きを行なうか否かを決定する。
【００２４】
制御部１０は、本装置全体の制御を司る。制御部１０は、ＣＰＵ、ＲＯＭ、及びＲＡＭなどを備えている。制御部１０は、ＲＯＭに記憶されている制御プログラムや制御データに基づいて動作することにより、種々の処理手段として機能する。ＲＯＭは、予め制御用のプログラムや制御データなどが記憶されている不揮発性のメモリである。ＲＡＭは、ＣＰＵのワーキングメモリとして機能する揮発性のメモリである。即ち、ＲＡＭは、ＣＰＵが処理中のデータなどを一時保管する。
【００２５】
図５は、図２に示す設計書データ４１の一部を変更した場合の例を示す図である。図５に示すように、設計書データ４１の領域ａは、変更箇所を含んでいない。また、設計書データ４１の領域ｂは、変更箇所４１１を含んでいる。
【００２６】
図６は、図４に示すプログラム６１の一部を変更した場合の例を示す図である。図６に示すように、プログラム６１の領域ａは、変更箇所６１１及び変更箇所６１２を含んでいる。また、プログラム６１の領域ｂは、変更箇所を含んでいない。
【００２７】
図５に示すような設計書データ４１に基づいて、図６に示すプログラム６１に対して更新処理を行なう場合、プログラム６１の領域ａの変更箇所６１１及び６１２は上書きされてしまう。この為、変更箇所６１１及び６１２の内容が更新処理後のプログラムに反映されない。そこで、制御部１０は、更新処理が行なわれる場合、プログラム６１の各領域を認識して、例えばＧｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ（ＧＵＩ）などを用いて一覧にして表示部３に選択可能な状態で表示させる。制御部１０は、操作者に更新の可否を選択させ、更新可否設定情報を作成する。更新可否設定情報は、識別子と更新の可否を示す情報とが対応付けられた情報である。
【００２８】
図７は、図１に示すプログラム生成装置１において行なわれるプログラムの更新処理について説明するためのフローチャートである。なお、プログラム記憶部６には、既に生成されたプログラム６１が記憶されているとする。
【００２９】
制御部１０は、プログラム記憶部６に記憶されているプログラム６１を読み込む（ステップＳ２１）。制御部１０は、読み込んだプログラム６１の各領域（ａ、ｂ、・・・）を認識する（ステップＳ２２）。即ち、制御部１０は、読み込んだプログラム６１から「％ＳＴＡＲＴ％」と「％ＥＮＤ％」とで囲まれる文字列を一つの領域であると認識する。さらに、制御部１０は、認識した領域の中の文字列に含まれている識別子を認識する。
【００３０】
制御部１０は、認識した情報に基づいて、更新可否設定画面を作成し、図８に示すような画面を表示部３に表示する（ステップＳ２３）。制御部１０は、更新可否設定画面を表示させると、操作者の入力を待つ状態となる（ステップＳ２４）。
【００３１】
図８は、更新可否設定画面の例を説明する為の説明図である。更新可否設定画面には、更新処理を行なわない領域の選択を操作者に促す文字列と、更新可否設定ボタン３１と、実行ボタン３２とが表示されている。
【００３２】
更新可否設定ボタン３１は、制御部１０がプログラム６１から認識した各領域の識別子の文字列を選択可能な状態で一覧にして表示させた複数のボタンである。入力部２により１つのボタンが選択されると、制御部１０は、選択されていることが視覚的に認識できるように、選択されているボタンの文字列の横にチェックマークを表示させる。
【００３３】
実行ボタン３２は、更新可否設定ボタン３１によって選択された内容を確定し、後段の処理を実行させるためのボタンである。即ち、実行ボタン３２が押されると、制御部１０は、確定された情報に基づいて更新可否設定情報を作成し、更新可否設定部７に記憶させる。また、制御部１０は、操作者による操作が入力されたと判定する。
【００３４】
操作が入力されたと判定すると（ステップＳ２４、ＹＥＳ）、プログラム自動生成部５に更新処理を実行させる。即ち、プログラム自動生成部５は、設計書データ記憶部４に記憶されている設計書データ４１を読み込む（ステップＳ２５）。
【００３５】
プログラム自動生成部５は、更新可否設定部７の更新可否設定情報を参照し、読み込んだ設計書データ４１の領域について更新処理が許可されているか否か判定する（ステップＳ２６）。即ち、プログラム自動生成部５は、更新可否設定情報において、読み込んだ領域に付されている識別子と可を示す情報とが対応付けられているか否か判定する。読み込んだ設計書データ４１の領域について更新処理が許可されていないと判定した場合（ステップＳ２６、ＮＯ）、設計書データ４１のその領域に対する処理は終了し、次の領域の処理に移行する。即ち、ステップＳ２８に移行する。
【００３６】
読み込んだ設計書データ４１の領域について更新処理が許可されていると判定した場合（ステップＳ２６、ＹＥＳ）、プログラム自動生成部５は、読み込んだ領域の情報に基づいてプログラムの更新を行なう（ステップＳ２７）。即ち、プログラム自動生成部５は、読み込んだ領域の情報に基づいてスクリプト処理によりプログラムを生成し、プログラム記憶部６に記憶されているプログラム６１の中の識別子の一致する領域に上書きする。
【００３７】
設計書データ４１の１つの領域について処理を行なうと、プログラム自動生成部５は、次の領域があるか否か判定する（ステップＳ２８）。即ち、プログラム自動生成部５は、設計書データ４１の中に更新処理を行なっていない領域が有るか否か判定する。
【００３８】
次の領域があると判定した場合（ステップＳ２８、ＹＥＳ）、プログラム自動生成部５は、ステップＳ２５に移行し、更新処理を繰り返す。次の領域がないと判定した場合（ステップＳ２８、ＮＯ）、プログラム自動生成部５は、更新処理を終了する。
【００３９】
図９は、上記した更新処理によって更新されたプログラム６１の例を説明するための説明図である。図９に示すプログラムは、図５に示す設計書データ４１が設計書データ記憶部４に記憶されており、図６に示すプログラム６１がプログラム記憶部６に記憶されており、領域ａの更新可否設定が不可であって領域ｂの更新可否設定が可である更新可否設定情報が更新可否設定部７に記憶されている場合の更新処理によって更新されたプログラムである。
【００４０】
即ち、領域ａの更新可否設定が不可であるため、領域ａには、元のプログラム６１の領域ａの情報がそのまま残る。また、領域ｂの更新可否設定が可であるため、領域ｂには、設計書データ４１の領域ｂの情報から生成されたプログラムが上書きされている。
【００４１】
上述したように、本発明の一実施形態によると、設計書データ複数の領域に区分けし、設計書データに対応するように、プログラムも複数の領域に区分けしている。さらに、この領域毎に設計書データからプログラムを更新するか否かを設定する。例えば、プログラムを直接変更した場合でも、変更箇所を含む領域の更新を不可とすることにより、直接変更した箇所を残したままプログラムの更新を行なう事ができる。
【００４２】
この結果として、より的確にプログラムの自動生成を行なうことができるプログラム生成装置、及び、プログラム生成方法を提供することができる。
【００４３】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合わせてもよい。
【００４４】
上記の実施形態では、プログラム生成装置１は、プログラム自動生成部を有しており、プログラム自動生成部により設計書データからプログラムを生成するとしたが、これに限定されない。例えば、制御部１０が設計書データからプログラムを生成する機能を有していてもよい。
【００４５】
また、制御部１０は、プログラム６１の各領域を認識し、認識した領域の識別子を選択可能な状態で一覧として表示させるとしたがこれに限定されない。例えば、予め、設計書データ４１の全ての領域からプログラムを生成し、プログラム記憶部６に記憶されているプログラム６１と比較し、一致しなかった領域のみを表示させるようにしてもよい。
【００４６】
また、プログラム６１中に変更箇所があり、且つ、変更された文字列が所定のフォーマットで変更されている場合に、プログラム６１から設計書データ４１を生成する機能を制御部１０に持たせてもよい。この場合、プログラム６１における変更箇所が反映された設計書データ４１を書き換え、この設計書データ４１から再びプログラム６１を生成する。この為、プログラムと設計書データとで整合性を高めることが出来る。
【図面の簡単な説明】
【００４７】
【図１】図１は、本発明の一実施形態に係るプログラム生成装置の構成例を概略的に示すブロック図である。
【図２】図２は、設計書データの例を示す図である。
【図３】図３は、図１に示すプログラム生成装置において行なわれるプログラムを自動生成する処理について説明するためのフローチャートである。
【図４】図４は、プログラムの例を示す図である。
【図５】図５は、図２に示す設計書データの一部を変更した場合の例を示す図である。
【図６】図６は、図４に示すプログラムの一部を変更した場合の例を示す図である。
【図７】図７は、図１に示すプログラム生成装置において行なわれるプログラムの更新処理について説明するためのフローチャートである。
【図８】図８は、更新可否設定画面の例を説明する為の説明図である。
【図９】図９は、図７に示す更新処理によって更新されたプログラムの例を説明するための説明図である。
【符号の説明】
【００４８】
１…プログラム生成装置、２…入力部、３…表示部、４…設計書データ記憶部、５…プログラム自動生成部、６…プログラム記憶部、７…更新可否設定部、１０…制御部、４１…設計書データ、６１…プログラム。
【図１】
2009237926.tif 000003
【図２】
2009237926.tif 000004
【図３】
2009237926.tif 000005
【図４】
2009237926.tif 000006
【図５】
2009237926.tif 000007
【図６】
2009237926.tif 000008
【図７】
2009237926.tif 000009
【図８】
2009237926.tif 000010
【図９】
2009237926.tif 000011