JP5539921B2 - プログラム開発ツール - Google Patents

プログラム開発ツール Download PDF

Info

Publication number
JP5539921B2
JP5539921B2 JP2011077156A JP2011077156A JP5539921B2 JP 5539921 B2 JP5539921 B2 JP 5539921B2 JP 2011077156 A JP2011077156 A JP 2011077156A JP 2011077156 A JP2011077156 A JP 2011077156A JP 5539921 B2 JP5539921 B2 JP 5539921B2
Authority
JP
Japan
Prior art keywords
program
development tool
design information
source code
program development
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.)
Active
Application number
JP2011077156A
Other languages
English (en)
Other versions
JP2012212286A (ja
Inventor
芳之 鹿野
理之 鈴木
Original Assignee
株式会社キャナリーリサーチ
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 株式会社キャナリーリサーチ filed Critical 株式会社キャナリーリサーチ
Priority to JP2011077156A priority Critical patent/JP5539921B2/ja
Publication of JP2012212286A publication Critical patent/JP2012212286A/ja
Application granted granted Critical
Publication of JP5539921B2 publication Critical patent/JP5539921B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、JAVA(サンマイクロシステムズ社登録商標)によるバッチシステムの構築を自動化するツールを提供するプログラム開発ツールに関する。
ハードウエアやOS(オペレーティングシステム)に依存しないJAVAのような言語の利用度が高まっている。しかしながら、プログラム開発にあたっては、コーディングをして、デバッグをして、リトライしながらプログラムを完成させるという手順が要求される。一定の汎用的な処理を実行するモジュールを利用して、プログラム作成のための負荷を軽減することも行われている。また、指定された設計に基づいてソースコードを自動的に生成する技術も開発されている。
特開2010−152667号公報 特開2010−79803号公報 特開2007−122586号公報 特開2006−236375号公報 特開2004−265278号公報 特開2002−222099号公報
既知の従来の技術には、次のような解決すべき課題があった。
モジュールを組み込んだプログラムについても、コーディングとデバッグは不可欠である。プログラム開発ツールを補助的に利用する従来の方法では、作業性の向上に限界がある。プログラムの作成のためのロードを軽減し、コーディングのミスの発生を抑制し、作成後のプログラムの解析を容易にするツールの開発が望まれる。
上記の課題を解決するために、本発明は次のようなプログラム開発ツールを提供することを目的とする。
(1)ソフトウエアの生産性の向上を図る。
(2)高品質なソフトウエアを提供できる環境を作る。
(3)保守性を向上させる。
以下の構成はそれぞれ上記の課題を解決するための手段である。
〈構成1〉
それぞれ固有のカスタマイズインタフェースを通じて取得した設計情報を取り込んで、求められた演算処理機能を実現するソースコードを生成するための基礎データを集合したプログラム部品を、配列順を指定した状態で記憶装置に記憶させるデザインエディタと、前記プログラム部品を前記配列順にソースコードに変換して連結したものを出力するコードジェネレータと、前記コードジェネレータが前記プログラム部品をソースコードに変換する動作を実行するときに、前記ソースコードに変換されたプログラムの論理チェックを行うコードインスペクタと、前記論理チェックによりエラーが検出されたときに、該当するエラーの原因となったプログラム部品と、そのプログラム部品の設計情報とを、表示出力装置に出力する欠陥ポイントフォーカスコントローラを備えたことを特徴とするプログラム開発ツール。
〈構成2〉
構成1に記載のプログラム開発ツールにおいて、前記設計情報には、プログラムの解釈に必要な情報を含むフリー記述が含まれ、前記欠陥ポイントフォーカスコントローラは、該当するエラーの原因となったプログラム部品と、そのプログラム部品の設計情報と、対応するソースコードリストとフリー記述とを、表示出力装置に出力することを特徴とするプログラム開発ツール。
〈構成3〉
構成2に記載のプログラム開発ツールにおいて、前記欠陥ポイントフォーカスコントローラは、フリー記述のエラーの原因となった箇所を指定して、表示出力装置に出力することを特徴とするプログラム開発ツール。
〈構成4〉
構成1乃至3のいずれかに記載のプログラム開発ツールにおいて、前記プログラム部品は、求められた演算処理機能を実現するソースコードの、骨組みになるソースコードで記述したテンプレートを含むことを特徴とするプログラム開発ツール。
〈構成5〉
構成4に記載のプログラム開発ツールにおいて、前記設計情報は、求められた演算処理機能を特定するための定義データと、プログラムの解釈に必要なフリー記述と、前後のプログラム部品との接続関係を示す接続情報とを含むことを特徴とするプログラム開発ツール。
〈構成6〉
構成1乃至5のいずれかに記載のプログラム開発ツールにおいて、プログラム部品は、構文要素コンポーネントと、データベース処理コンポーネントと、ファイル入出力コンポーネントと、その他のコンポーネントを含むことを特徴とするプログラム開発ツール。
〈構成7〉
構成1乃至6のいずれかに記載のプログラム開発ツールにおいて、前記カスタマイズインタフェースは、複数のプログラム部品に共通の設計情報を取得するために、定義ファイルデータベースを参照することを特徴とするプログラム開発ツール。
〈構成8〉
構成1乃至7のいずれかに記載のプログラム開発ツールにおいて、前記カスタマイズインタフェースは、カスタマイズ後のプログラム部品に対して、入力された設計情報をそのまま再現できる形式で設計情報を一体化させて、記憶装置に記憶させておくことを特徴とするプログラム開発ツール。
〈構成9〉
構成1乃至8のいずれかに記載のプログラム開発ツールにおいて、前記コードジェネレータは、カスタマイズされたプログラム部品から、そのプログラム部品毎に求められた機能を実現するクラス毎ソースコードを生成することを特徴とするプログラム開発ツール。
〈構成10〉
構成1乃至9のいずれかに記載のプログラム開発ツールにおいて、前記コードジェネレータは、配列順に従ってプログラム部品毎にソースコードを生成するときに、これらのソースコードを連結するための連結用のソースコードも生成することを特徴とするプログラム開発ツール。
〈構成11〉
構成10に記載のプログラム開発ツールにおいて、フリー記述はソースコードに挿入されるとともに、前記連結用のソースコード中にも挿入されることを特徴とするプログラム開発ツール。
〈構成12〉
構成1乃至11のいずれかに記載のプログラム開発ツールにおいて、前記コードジェネレータは、コードインスペクタに対して、プログラム部品を組み合わせた結果生成されたソースコードが文法的に正しいかどうかと、実行速度が妥当かどうかの診断を依頼することを特徴とするプログラム開発ツール。
〈構成13〉
構成1乃至12のいずれかに記載のプログラム開発ツールにおいて、
前記設計情報には、プログラムの解釈に必要な情報を含むフリー記述が含まれ、
プログラム部品と、そのプログラム部品の設計情報と、フリー記述とを、表示出力装置に出力する設計情報出力コントローラを備えたことを特徴とするプログラム開発ツール。
〈構成14〉
構成1乃至12のいずれかに記載のプログラム開発ツールにおいて、
前記設計情報には、プログラムの解釈に必要な情報を含むフリー記述が含まれ、
プログラム部品毎に、そのプログラム部品の設計情報と、ソースコードとを、表示出力装置に出力する設計情報出力コントローラを備えたことを特徴とするプログラム開発ツール。
〈構成15〉
コンピュータを、構成1に記載の各手段として機能させるプログラム開発ツール用プログラム。
〈構成16〉
構成15に記載のプログラム開発ツール用プログラムを記録したコンピュータで読み取り可能な記録媒体。
〈構成1の効果〉
一定の機能を持つプログラム部品に設計情報を入力してカスタマイズし、これらを配列するだけで、プログラムを生産できる。エラーを検出したときにはプログラム部品毎に設計情報を表示して修正する。従って、ユーザはソースコードの解析や編集を必要としない。
〈構成2と13と14の効果〉
プログラム部品とフリー記述とその他の設計情報とソースコードを一覧することにより、プログラムの論理の流れをほぼ正確に把握することができる。
〈構成3の効果〉
フリー記述の不具合(エラー)箇所を指摘して、修正作業を容易にすることができる。
〈構成4の効果〉
コードジェネレータは、骨組みになるソースコードと設計情報を参照しながら、求められた演算処理機能を実現するソースコードに変換することができる。
〈構成5の効果〉
骨組みになるソースコードに、定義データと設定データとフリー記述と接続情報を含めれば、これらを使用して自動的に目的とするソースコードに変換をすることができる。
〈構成6の効果〉
プログラム部品を、構文要素コンポーネントと、データベース処理コンポーネントと、ファイル入出力コンポーネントと、その他のコンポーネントとに分類して、それぞれ所定の演算処理機能を実現するソースコードを生成するための基礎データ群を準備するとよい。単機能のプログラム部品を自由に配列して、任意のプログラムを生産できる。
〈構成7の効果〉
複数のプログラム部品に対する設計情報の取得を最小限の入力作業で済ませることができる。
〈構成8の効果〉
プログラム部品にそのままの形式で設計情報を一体化させておけば、プログラムの解析のために、プログラム部品と入力された設計情報とを自動的に表示することができる。
〈構成9の効果〉
プログラム部品毎にクラス毎ソースコードを生成して、これらを関係付けることにより、オブジェクト指向プログラミング技術を利用したプログラムを自動生成できる。
〈構成10の効果〉
ユーザは、プログラム部品の接続のためのソースコード生成も行わなくて済む。
〈構成11の効果〉
フリー記述を任意の場所に挿入することで、プログラムの解析を容易にする。
〈構成12の効果〉
実行速度の妥当性も検査対象とするので、プログラムの品質を向上させることができる。
本発明の概略を示す概念図である。 本発明を実現するための一例を示すシステム構成ブロック図である。 カスタマイズインタフェース42の説明図である。 コードジェネレータ44の動作説明図である。 コードインスペクタの動作説明図である。 デザインエディタの動作説明図である。 プロジェクト作成手順を示すプログラム動作フローチャートである。 ソースコード生成処理後のプログラム動作フローチャートである。
本発明のプログラム開発ツールは、プログラム自動生成機能を持つ。用途は限定されない汎用的なものである。プログラム部品(バッチコンポーネント)をカスタマイズする機能と、プログラム部品コーディングし、点検をして、プログラムを自動生成する機能を持つ。以下、本発明の実施の形態を実施例毎に詳細に説明する。
図1は、本発明の概略を示す概念図である。
本発明では、ユーザ側から見た場合に、プログラムで実行される必要な全ての処理を、プログラム部品28を組み合わせて配列したものになるように、ユーザインタフェースを構成する。ユーザは、プログラム部品28を操作の簡易なカスタマイズインタフェース42を利用して部品単位でカスタマイズし、プログラム部品を自由に配列する。ユーザがソースコードを記述する必要はない。その後、コードジェネレータ44が、配列されたプログラム部品28を自動的にクラス毎ソースコード40に変換する。
ユーザは、プログラム部品28をカスタマイズするときに、プログラムの解釈に必要なフリー記述を含む設計情報32を入力することができる。コードジェネレータ44がソースコードに変換をする動作中にプログラムの論理チェックを行う。コードジェネレータ44の動作をGIコントローラ48が検出して、コードインスペクタ46を起動する。これにより、コーディングのつど論理チェックが実行される。コーディングにエラーを検出したときには、設計情報出力コントローラ52がレポートを出力する。レポートには、例えば、プログラム部品毎に、カスタマイズをした情報とフリー記述を列挙する。同時に、欠陥ポイントフォーカスコントローラ50は、エラーを生じたプログラム部品とカスタマイズをした箇所を指摘する。これが、生産性と保守管理性の向上に大きく貢献する。
[システム構成]
図2は本発明を実現するための一例を示すシステム構成ブロック図である。
本発明のプログラム開発ツールは、汎用のコンピュータ12により実現することができる。このコンピュータ12には、ディスプレイ14、本体制御部16,キーボード18、マウス20といったマンマシンインタフェース用ハードウエアが設けられている。ディスプレイ14はコンピュータ12で処理をした結果を出力するための任意の構成の表示出力装置である。キーボード18やマウス20は、ユーザがコンピュータに指示を入力するための装置である。
コンピュータ12は演算処理装置22と記憶装置24を備えている。演算処理装置22や記憶装置24は、コンピュータ12の本体制御部16に内蔵されていても外付けされていても構わない。演算処理装置22は、インストールされたコンピュータプログラムにより図示した手段として機能する。図示した手段は、それぞれ本発明のプログラム開発ツール10の主要な機能ブロックである。また、演算処理装置22の動作のためにあるいは動作中に、記憶装置24に図示したようなデータが記憶されている。以下、プログラム部品及び各手段としようするデータについて、順に説明する。
[プログラム部品]
プログラム部品28(バッチコンポーネント)とは、一定の処理機能を持つプログラムモジュールのことである。プログラムモジュールとは、プログラムで使用される処理をモジュール化したものである。既知のプログラムモジュールは、引数を与えると所定の処理を実行するような小単位の実行プログラムで構成される場合が多い。一方、本発明のプログラム部品28は、プログラム部品毎に固有のカスタマイズインタフェース42を通じて取得した設計情報32を取り込んで、求められた機能を実現する(クラス毎)ソースコード40を生成するための基礎データを集合したモジュールである。
プログラム部品は、構文要素コンポーネントと、データベース処理コンポーネントと、ファイル入出力コンポーネントと、その他のコンポーネントに分類することができる。
それぞれの分類には、例えば、下記のようなコンポーネントが含まれる。
(構文要素コンポーネント)
クラス定義コンポーネント
インスタンス変数宣言コンポーネント
Getter 定義コンポーネント
Setter 定義コンポーネント
メソッド定義コンポーネント
制御構造コンポーネント
if コンポーネント
switch コンポーネント
for コンポーネント
例外処理コンポーネント
try catch コンポーネント
throw コンポーネント
Import 定義コンポーネント
インタフェイス定義コンポーネント
変数宣言コンポーネント
メソッド宣言コンポーネント
(データベース処理コンポーネント)
DB 駆動表ループ・コンポーネント
コントロールブレイクDB 駆動表ループ・コンポーネント
DB 出力処理コンポーネント
(ファイル入出力コンポーネント)
FILE 駆動表ループ・コンポーネント
コントロールブレイクFILE 駆動表ループ・コンポーネント
FILE 出力処理コンポーネント
マルチレイアウトFILE 駆動表ループ・コンポーネント
マルチレイアウトFILE 出力処理コンポーネント
マッチング処理ループ・コンポーネント
(その他)
フリー記述
初期処理
終了処理
[カスタマイズインタフェース]
図3はカスタマイズインタフェース42の説明図である。
この図を用いて、プログラム部品28の一例とカスタマイズインタフェース42の機能を説明する。プログラム部品28は、例えば、骨組みになるソースコードで記述したテンプレート30を含む。カスタマイズインタフェース42は、プログラム部品28をカスタマイズするために、プログラム部品毎に固有の設計情報32を取り込む機能を持つ。取り込まれた設計情報32は、テンプレート30の属性データのようにしてプログラム部品28と一体化され、記憶装置24(図1)に記憶される。
設計情報32は、例えば、定義データ34と設定データ36とフリー記述38と接続情報39を含む。図2では、プログラム部品28としてifコンポーネントを例示した。このコンポーネント固有のカスタマイズインタフェース42として、ifコンポーネント設計情報入力画面68を例示した。テキストボックス72とテキストボックス74とテキストボックス76に、ifコンポーネントに求められた機能を実現するための、条件と、その条件が成立した場合の処理と不成立の場合の処理とを入力する。
これらには、単に数式等を入力すればよい。ソースコードを意識する必要はない。これらは、定義データ34あるいは設定データ36に相当するデータである。ドロップダウンリスト70と78は、接続情報39を入力するためのものである。前後に配置される他のコンポーネントを特定する名称あるいは識別記号等を入力する。入力処理を終了してその設定をするときにはコマンドボタン82を操作し、処理を中断するときにはコマンドボタン84を操作する。
テンプレート30と設計情報32を参照すれば、そのプログラム部品28に求められた機能を実現するクラス毎ソースコード40を生成できる。プログラム部品28毎に、1個または複数個のクラス毎ソースコード40が生成される。また、複数のプログラム部品28からソースコードを生成するときに、プログラム部品間を接続するためのクラス毎ソースコード40も生成される。カスタマイズインタフェース42は、複数のプログラム部品28に共通の設計情報32を取得するために、定義ファイルデータベース53を利用することができる。これにより、複数のプログラム部品に対する設計情報32の取得を最小限の入力作業で済ませることができる。
例えば、変数の定義と、直前の処理から受け継ぐ変数の設定、後続する処理への変数の受け渡し処理等は、多くのプログラム部品に共通するので、定義ファイルデータベース53から定義データ34を取得するとよい。ifコンポーネントの場合にも、「if文」とその中に含める式と、前後処理とが、カスタマイズ後のプログラム部品28の主要な内容になる。このほかに、プログラム部品の識別情報や名称等の管理情報を含めるとよい。
[フリー記述]
プログラム部品28には、任意の場所にフリー記述38を組み込むことができる。ifコンポーネント設計情報入力画面68では、テキストボックス80を利用して、フリー記述38を取得する。フリー記述とは、プログラム中で、プログラムの処理手順やプログラム部品の機能やその他、プログラムの解釈に有用なコメントを含む記述のことである。変数の設定や簡単な演算式をフリー記述に含めることもできる。本発明では、ユーザが直接ソースコード中にフリー記述を書き込むことはしないので、カスタマイズインタフェース42を用いて、プログラム部品28毎に自由にフリー記述38を挿入するように設定することができる構成とした。フリー記述を利用することで、ユーザは限りあるプログラム部品を使用して、柔軟にプログラムを作成できる。
なお、設計情報入力画面68により入力された設計情報32は、不具合が生じた場合のプログラムの見直しや保守管理に非常に重要な役割を果たす。また、本発明では、不具合の修正をソースコードベースで行う必要がない。不具合が検出されたときには、該当するプログラム部品を指摘し、そのプログラム部品28に設定された設計情報32を表示する。即ち、図の設計情報入力画面68を表示して、再考の上設計情報32を再度入力するようにユーザに要求すればよい。従って、カスタマイズ後のプログラム部品28には、入力された設計情報32をそのまま再現できる形式で設計情報32を一体化させて記憶させておくことが好ましい。例えば、ifコンポーネントの場合には、例えば、テンプレートとして「if *1 then *2」というデータと、「*1: A=B」「*1: C=D+E」(A=BとC=D+Eとは、入力された設計情報)とを保存しておけばよい。
[コードジェネレータ]
図4はコードジェネレータ44の動作説明図である。
コードジェネレータ44は、上記の要領でカスタマイズされたプログラム部品28から、そのプログラム部品28毎に求められた機能を実現するクラス毎ソースコード40を生成する。プログラム部品毎にソースコードが生成され、これらが、指定された順に連結される。コードジェネレータ44は、プログラム部品28を配列するときに、これらを連結するための連結用のソースコードも生成する。このとき、上記のフリー記述38は、ソースコードの先頭、中間、最後尾等の任意の場所に挿入される。また、この連結用のソースコード中にも、フリー記述を挿入できる。ユーザが意識することなく、オブジェクト指向プログラミング技術に基づく高品質のプログラムが自動的に生成できる。
コードジェネレータ44がソースコードを生成するときに、GIコントローラ48がその状態を検出して、コードインスペクタ46を起動させる。コードインスペクタ46は、ソースコードの生成と同時にプログラムの論理チェックをして、その結果をディスプレイ14(図2)等に表示する。もし、不具合が検出されたときには、設計情報出力コントローラ52を起動する。設計情報出力コントローラ52は解析情報54を出力する。
解析情報54には、プログラム部品28毎に、設計情報32とこれに含まれたフリー記述38が一覧できるように表示される。これで、プログラムの論理の流れをほぼ正確に把握することができる。また、設計情報出力コントローラ52はソースコードリスト56を出力することもできる。プログラム部品名と設計情報とソースコードとが対応付けられて表示される。これにより、プログラムの不具合箇所を確認して修正することができる。
なお、本発明では、コードジェネレータ44がプログラム部品28から自動的にソースコードを生成するのみで、ユーザは直接ソースコードを入力できないようにしている。この場合、エラーが生じるのは、フリー記述を含む設計情報の部分以外に無い。また、ユーザの設計思想を書き込めるのはフリー記述だけだである。従って、解析情報54に、プログラム部品28毎に、設計情報32とこれに含まれたフリー記述38が一覧できるように表示するだけで、エラーのチェックと修正ができるという効果がある。ユーザの入力するデータと自動的に生成するソースコードとを当初から完全に分離しているから、こうした処理ができる。
コードジェネレータは、コードインスペクタ46に対して、プログラム部品を組み合わせた結果生成されたソースコードか文法的に正しいかどうか、実行速度が妥当かどうかの診断を依頼することが好ましい。また、コードジェネレータは、次のような機能を持つことが好ましい。即ち、オブジェクト指向に基づくクラスとメソッドのコード生成をする。さらに、安全なSQL文の生成をする。
さらに、指定された言語ロケールに従ったコメント文(フリー記述と同等のもの)を挿入する。また、他のドキュメンテーションツールに連携可能なコメント文の挿入をする。即ち、特定のエディタに頼らないコメント文の編集機能を付与する。さらに、可読性の高いソースの生成をする。そして、指定されたコーディング規約に準拠したコードの生成を可能にする。コーディング規約として、標準形式か利用者の特有の形式を含むかを指定できる。
[コードインスペクタ]
図5は、コードインスペクタの動作説明図である。
コードインスペクタ46は、プログラム部品単位、プロジェクト単位等、指定された単位で、プログラムの論理チェックをし、その結果を出力する。なお、プロジェクトとは、全てのソースコードとプログラム部品を含む、プログラム制作のために必要なデータ一式のことをいう。また、これらのソースコードをコンパイルしたバッチプログラムを製品26(図1)と呼ぶ。コードインスペクタ46がプログラムの不具合を検出して、上記の解析情報54やソースコードリスト56のようなレポートを出力したとき、ユーザがただちにその不具合の修正に着手できる状態にしたい。欠陥ポイントフォーカスコントローラ50は、コードインスペクタ46の依頼を受けて、該当する不具合のあるプログラム部品28を検出する。さらに、フリー記述の文法解釈もして、フリー記述の中の不具合のある箇所を検出して表示することもできる。
そして、そのカスタマイズに使用したカスタマイズインタフェース42を表示して、当初入力された設計情報32を表示する。さらに、このほかに、図示しない不具合の解析結果を解析情報54に含めて表示するとよい。修正案を表示するのもよい。不具合が検出された理由を表示すればよい。なお、ソースコードとフリー記述との対応関係を明らかにするように、例えば、両者に同一のマークを付けるとよい。
[ランタイム手段]
コードインスペクタ46は、プログラムの論理解析とともに、下記の点検をランタイム手段に依頼する。ランタイム手段は、生成したプログラムについて、下記の点検をする。即ち、SQL文が効率良く実行されるかどうかの点検、定義可能な全てのファイル操作が効率良く実行されるかどうかの点検、自前のバッチフレームワークの動作が保証されることの点検、外部のフレームワークを利用した場合のオーバーヘッドが寡少かどうかの点検をする。以上のような点検を、プログラム部品毎に、さらに生成されたプログラム全体について自動的に実行するので、高品質で保守管理の容易なプログラムが自動生成できる。
[デザインエディタ]
図6は、デザインエディタの動作説明図である。
デザインエディタ41は、プログラム部品28の個別のカスタマイズと、配列順を指定する処理のほか、プロジェクト全体についての編集と、フリー記述の挿入等の処理を実行する。さらに、データベースアクセス用プログラム部品58と、ファイルアクセス用プログラム部品60と、バッチフレームワーク取り込み用プログラム部品62(ラッパクラスを利用)と、例外処理のクラス64とを、全てのバッチプログラムに自動的に組み込む。これで、全てのバッチプログラムに最小限必要な機能を自動的に付与することができる。そして、プロジェクトが完成すると、プロジェクト確認画面66を表示する。プロジェクト確認画面66は、使用したプログラム部品を処理順に配列して見せるものになる。
図7は、プロジェクト作成手順を示すプログラム動作フローチャートである。
まず、ステップS11で、デザインエディタ41を起動する。その後、ステップS12で、必要なプログラム部品28の選択を受け付ける。次いで、ステップS13で、図3に示したような設計情報入力画面68の表示をする。ステップS14では、この画面68を使用した定義データ34の入力を受付ける。
続いて、ステップS15で、設定データ36の入力を受付ける。次に、ステップS16で、フリー記述38の入力を受付ける。ステップS17で、接続情報39の入力を受付ける。なお、ステップS14〜17の処理の順序は自由であり、一部を省略することができる。また、定義ファイルを参照してデータ入力をすることもできる。
ステップS18では、プログラム部品の設計情報の入力が終了したかどうかという判断をする。図3のコマンドボタン82が操作されると、この判断の結果がイエスとなり、ステップS19に移行する。ノーのときはステップS12〜18の処理を繰り返す。ステップS19に移行したときは、必要な全てのプログラム部品について、設計情報32の入力が終了している。
ここで、全体を確認するために、プロジェクト確認画面の表示をする。ステップS20では、プログラム部品を連結する部分へのフリー記述の入力を受付ける。ステップS21では、プロジェクト全体の編集が終了したかどうかという判断をする。この判断の結果がイエスのときは、ステップS22に進み、常駐部品の付加をする。常駐部品とは、例えば、ユーザが予め設定した各プログラム部品に共通のデータである。常駐部品には、図6で説明したデータやプロパティコードと呼ばれているデータを含む。ノーのときはステップS19〜21を繰り返す。以上の手順で、ソースコード生成準備が完了する。
図8は、ソースコード生成処理後のプログラム動作フローチャートである。
まず、ステップS31で、コードジェネレータ44が起動する。ステップS32で、プログラム部品単位でソースコードへの変換処理が行われ、クラス毎ソースコードを生成する。ステップS33では、コードインスペクタ46を起動する。ステップS34では、プログラムの欠陥(不具合)を検出したかどうかという判断をする。この判断の結果がイエスのときはステップS35の処理に移行し、ノーのときはステップS39の処理に移行する。
ステップS35では、欠陥ポイントの抽出をする。ステップS36では、その欠陥を生じたプログラム部品の特定をする。ステップS37では、プログラム部品の設計情報の修正を促すために、デザインエディタ41を起動する。ステップS38では、該当箇所のフォ−カス表示をして、修正を受け付ける。即ち、不具合が生じたプログラム部品の該当箇所を明示してディスプレイに表示し、適切な修正を受け付ける。その後、再びステップS31に戻り、ソースコード生成のやり直しをする。
以上の処理で、プログラムの不具合が無くなると、ステップS39では、解析結果を出力するかどうかという判断をする。この判断の結果がイエスのときはステップS40の処理に移行し、ノーのときは処理を終了する。欠陥ポイントが検出されたときには、必ず解析結果を出力する。それ以外の場合には、ユーザの要求により解析結果を出力する。ステップS40では、解析結果を示す情報の出力をする。ステップS41では、ソースコードリストの出力をする。図4で説明したとおりの出力である。以上で、プログラムが完成する。
以上説明したプログラム開発ツール10によれば、全てのバッチシステムをJAVAで自動生成することが可能になる。また、汎用性が高く、高生産性、高品質、高保守性を実現することができる。しかも、オブジェクト指向プログラミング技術を意識しないで、簡便に高機能のプログラムを生成できる。さらに、任意のタイミングで任意の部分について、静的解析と検証を容易にできるという効果がある。
なお、上記の演算処理装置で実行されるコンピュータプログラムは、機能ブロックで図示した単位でモジュール化されてもよいし、複数の機能ブロックを組み合わせて一体化されてもよい。また、上記のコンピュータプログラムは、既存のアプリケーションプログラムに組み込んで使用してもよい。本発明を実現するためのコンピュータプログラムは、例えばCD−ROMのようなコンピュータで読み取り可能な記録媒体に記録して、任意の情報処理装置にインストールして利用することができる。
10 プログラム開発ツール
12 コンピュータ
14 ディスプレイ
16 本体制御部
18 キーボード
20 マウス
22 演算処理装置
24 記憶装置
26 製品
28 プログラム部品
30 テンプレート
32 設計情報
34 定義データ
36 設定データ
38 フリー記述
39 接続情報
40 クラス毎ソースコード
41 デザインエディタ
42 カスタマイズインタフェース
44 コードジェネレータ
46 コードインスペクタ
48 GIコントローラ
50 欠陥ポイントフォーカスコントローラ
52 設計情報出力コントローラ
53 定義ファイルデータベース
54 解析情報
56 ソースコードリスト
58 データベースアクセス用プログラム部品
60 ファイルアクセス用プログラム部品
62 バッチフレームワーク取り込み用プログラム部品
64 例外処理のクラス
66 プロジェクト確認画面
68 設計情報入力画面
70 ドロップダウンリスト
72 テキストボックス
74 テキストボックス
76 テキストボックス
78 ドロップダウンリスト
80 テキストボックス
82 コマンドボタン
84 コマンドボタン

Claims (16)

  1. それぞれ固有のカスタマイズインタフェースを通じて取得した設計情報を取り込んで、求められた演算処理機能を実現するソースコードを生成するための基礎データを集合したプログラム部品を、配列順を指定した状態で記憶装置に記憶させるデザインエディタと、
    前記プログラム部品を前記配列順にソースコードに変換して連結したものを出力するコードジェネレータと、
    前記コードジェネレータが前記プログラム部品をソースコードに変換する動作を実行するときに、前記ソースコードに変換されたプログラムの論理チェックを行うコードインスペクタと、
    前記論理チェックによりエラーが検出されたときに、該当するエラーの原因となったプログラム部品と、そのプログラム部品の設計情報とを、表示出力装置に出力する欠陥ポイントフォーカスコントローラを備えたことを特徴とするプログラム開発ツール。
  2. 請求項1に記載のプログラム開発ツールにおいて、
    前記設計情報には、プログラムの解釈に必要な情報を含むフリー記述が含まれ、前記欠陥ポイントフォーカスコントローラは、該当するエラーの原因となったプログラム部品と、そのプログラム部品の設計情報と、対応するソースコードリストとフリー記述とを、表示出力装置に出力することを特徴とするプログラム開発ツール。
  3. 請求項2に記載のプログラム開発ツールにおいて、
    前記欠陥ポイントフォーカスコントローラは、フリー記述のエラーの原因となった箇所を指定して、表示出力装置に出力することを特徴とするプログラム開発ツール。
  4. 請求項1乃至3のいずれかに記載のプログラム開発ツールにおいて、
    前記プログラム部品は、求められた演算処理機能を実現するソースコードの、骨組みになるソースコードで記述したテンプレートを含むことを特徴とするプログラム開発ツール。
  5. 請求項4に記載のプログラム開発ツールにおいて、
    前記設計情報は、求められた演算処理機能を特定するための定義データと、プログラムの解釈に必要な情報を含むフリー記述と、前後のプログラム部品との接続関係を示す接続情報とを含むことを特徴とするプログラム開発ツール。
  6. 請求項1乃至5のいずれかに記載のプログラム開発ツールにおいて、
    プログラム部品は、構文要素コンポーネントと、データベース処理コンポーネントと、ファイル入出力コンポーネントとを含むことを特徴とするプログラム開発ツール。
  7. 請求項1乃至6のいずれかに記載のプログラム開発ツールにおいて、
    前記カスタマイズインタフェースは、複数のプログラム部品に共通の設計情報を取得するために、定義ファイルデータベースを参照することを特徴とするプログラム開発ツール。
  8. 請求項1乃至7のいずれかに記載のプログラム開発ツールにおいて、
    前記カスタマイズインタフェースは、カスタマイズ後のプログラム部品に対して、入力された設計情報をそのまま再現できる形式で設計情報を一体化させて、記憶装置に記憶させておくことを特徴とするプログラム開発ツール。
  9. 請求項1乃至8のいずれかに記載のプログラム開発ツールにおいて、
    前記コードジェネレータは、カスタマイズされたプログラム部品から、そのプログラム部品毎に求められた機能を実現するクラス毎ソースコードを生成することを特徴とするプログラム開発ツール。
  10. 請求項1乃至9のいずれかに記載のプログラム開発ツールにおいて、
    前記コードジェネレータは、配列順に従ってプログラム部品毎にソースコードを生成するときに、これらのソースコードを連結するための連結用のソースコードも生成することを特徴とするプログラム開発ツール。
  11. 請求項10に記載のプログラム開発ツールにおいて、
    前記フリー記述はソースコードに挿入されるとともに、前記連結用のソースコード中にも挿入されることを特徴とするプログラム開発ツール。
  12. 請求項1乃至11のいずれかに記載のプログラム開発ツールにおいて、
    前記コードジェネレータは、コードインスペクタに対して、プログラム部品を組み合わせた結果生成されたソースコードが文法的に正しいかどうかと、実行速度が妥当かどうかの診断を依頼することを特徴とするプログラム開発ツール。
  13. 請求項1乃至12のいずれかに記載のプログラム開発ツールにおいて、
    前記設計情報には、プログラムの解釈に必要な情報を含むフリー記述が含まれ、
    プログラム部品と、そのプログラム部品の設計情報と、フリー記述とを、表示出力装置に出力する設計情報出力コントローラを備えたことを特徴とするプログラム開発ツール。
  14. 請求項1乃至12のいずれかに記載のプログラム開発ツールにおいて、
    前記設計情報には、プログラムの解釈に必要な情報を含むフリー記述が含まれ、
    プログラム部品毎に、そのプログラム部品の設計情報と、ソースコードとを、表示出力装置に出力する設計情報出力コントローラを備えたことを特徴とするプログラム開発ツール。
  15. コンピュータを、
    請求項1に記載の各手段として機能させるプログラム開発ツール用プログラム。
  16. 請求項15に記載のプログラム開発ツール用プログラムを記録したコンピュータで読み取り可能な記録媒体。
JP2011077156A 2011-03-31 2011-03-31 プログラム開発ツール Active JP5539921B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011077156A JP5539921B2 (ja) 2011-03-31 2011-03-31 プログラム開発ツール

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011077156A JP5539921B2 (ja) 2011-03-31 2011-03-31 プログラム開発ツール

Publications (2)

Publication Number Publication Date
JP2012212286A JP2012212286A (ja) 2012-11-01
JP5539921B2 true JP5539921B2 (ja) 2014-07-02

Family

ID=47266188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011077156A Active JP5539921B2 (ja) 2011-03-31 2011-03-31 プログラム開発ツール

Country Status (1)

Country Link
JP (1) JP5539921B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101418478B1 (ko) * 2012-11-09 2014-07-14 한국항공우주산업 주식회사 실행데이터 검증기능이 구비된 비행제어 ofp시스템 및 그 제어방법
JP6482362B2 (ja) * 2015-04-13 2019-03-13 三菱電機株式会社 ソースコード生成システム、ソースコード生成装置、ソースコード生成方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3288939B2 (ja) * 1996-11-15 2002-06-04 三菱電機株式会社 画面遷移制御装置
JP2002229783A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア構築支援システム、その方法およびソフトウェア構築支援プログラム
JP2007193483A (ja) * 2006-01-18 2007-08-02 Fujitsu Ten Ltd モデルチェックシステム
JP2010009204A (ja) * 2008-06-25 2010-01-14 Toshiba Corp 遠隔保守エージェント作成装置および作成方法

Also Published As

Publication number Publication date
JP2012212286A (ja) 2012-11-01

Similar Documents

Publication Publication Date Title
CN106919434B (zh) 一种代码生成方法及装置
US10572360B2 (en) Functional behaviour test system and method
CN104407973B (zh) 一种自动化单元测试的实现方法及装置
Hartmann et al. A UML-based approach to system testing
CN111459889B (zh) 一种用于物联网平台的设备数据模型生成方法和装置
Lin et al. A testing framework for model transformations
US9418230B2 (en) Automated tools for building secure software programs
US20120116561A1 (en) Program testing apparatus, method of testing a program, and program testing program
CN106598556A (zh) 用户界面生成方法及装置
US20090055804A1 (en) Method and device for automatically evaluating the quality of a software source code
Mayer et al. Cross-language code analysis and refactoring
CN106951305B (zh) 一种基于模型转换由QVT-R语言生成midCore脚本的方法
KR101722856B1 (ko) 프로그래밍 언어 기반의 plc 자동 테스트 장치
CN109857637A (zh) 一种基于注解的Java语言方法覆盖率和方法输入输出统计方法及装置
JP5230587B2 (ja) ラダープログラムのプログラム試験装置、ラダープログラムのプログラム試験方法およびラダープログラムのプログラム試験用プログラム
JP5539921B2 (ja) プログラム開発ツール
Zeller The future of programming environments: Integration, synergy, and assistance
US9612829B2 (en) System and method for pattern based services extraction
US20090070749A1 (en) Method for translating a graphical workflow in a textual description
Rahman et al. A DSL for importing models in a requirements management system
Straszak et al. Automating acceptance testing with tool support
Straszak et al. Model-driven acceptance test automation based on use cases
JPH11224211A (ja) ソフトウェア検査支援装置
Konrad et al. i 2 MAP: An incremental and iterative modeling and analysis process
Jasser et al. Quantifying Object-Oriented System Complexity: Introducing a Powerful Measurement Tool

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140418

R150 Certificate of patent or registration of utility model

Ref document number: 5539921

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140501

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S802 Written request for registration of partial abandonment of right

Free format text: JAPANESE INTERMEDIATE CODE: R311802

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250