JP5040320B2 - プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム - Google Patents

プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム Download PDF

Info

Publication number
JP5040320B2
JP5040320B2 JP2007005528A JP2007005528A JP5040320B2 JP 5040320 B2 JP5040320 B2 JP 5040320B2 JP 2007005528 A JP2007005528 A JP 2007005528A JP 2007005528 A JP2007005528 A JP 2007005528A JP 5040320 B2 JP5040320 B2 JP 5040320B2
Authority
JP
Japan
Prior art keywords
flow diagram
data flow
output point
point
input
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
JP2007005528A
Other languages
English (en)
Other versions
JP2008171305A (ja
Inventor
寛和 徳田
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2007005528A priority Critical patent/JP5040320B2/ja
Publication of JP2008171305A publication Critical patent/JP2008171305A/ja
Application granted granted Critical
Publication of JP5040320B2 publication Critical patent/JP5040320B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はプログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラムに関し、特にプログラムを自動的に生成するプログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラムに関する。
プログラムの記述を合理化するために、プログラムの仕様をテキストに代えて、データ処理を示す機能ブロックによる処理の流れを表すデータフロー図を用いて記述し、そして、データフロー図からソースコードを自動的に生成することにより、プログラムの開発を容易に行う方法が利用されている。この方法によれば、開発者により指定された機能ブロックの順序に応じ、ソースコードが順次生成されるため、比較的単純なアルゴリズムによりソースコードを生成することができる。
ところが、この方法では、機能ブロックごとに順序を指定する必要があるため、開発者の作業が煩雑で、順序の指定ミスが生じる可能性もある。また、順序指定の完了後に指定ミスが発覚すると、変更を要する機能ブロック以降のすべての機能ブロックにて変更が必要となり、大きな作業量が発生してしまう。
このような問題に対処すべく、機能ブロック間を結合する結合情報に沿って、開始要素の機能ブロックから終端要素の機能ブロックまでを順次追跡すると同時に、ソースコードを自動的に生成するアルゴリズムなど(例えば、特許文献1参照。)が提案され、開発者の作業量を軽減して、効率よくソースコードを生成することができた。
特開2006−285480号公報
特許文献1のようにソースコードの生成順序を自動的に決定する方法では、組み込み分野において、ハードウェアのレジスタを直接操作する場合に、アクセスの順序やタイミングの規定などを適宜変更するために、ソースコードの実行順序の明示および指定が行えるようにして、より柔軟にソースコードの生成順序を決定する必要がある。
本発明はこのような点に鑑みてなされたものであり、効率よく、柔軟にソースコードを自動的に生成することができるプログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラムを提供することを目的とする。
本発明では上記課題を解決するために、プログラムを自動的に生成するプログラム開発支援装置において、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、前記機能ブロック間の結合を示す結合情報と、フレームによって包囲された前記機能ブロックに対応するコードの生成の優先順位を示す優先順位情報とを備えるデータフロー図を記憶するデータフロー図記憶手段と、ユーザによる操作入力を受け付け、前記機能ブロックが結合され、前記機能ブロックが前記フレームに包囲されて構成される前記データフロー図を生成し、前記データフロー図を前記データフロー図記憶手段に記憶させるデータフロー図生成手段と、前記データフロー図記憶手段が記憶する前記データフロー図を用いて、前記開始要素から前記通常要素を、前記優先順位情報に従って、前記結合情報に沿いながら前記終端要素にいたるまでを追跡すると同時に、前記機能ブロックに対応する前記コードを生成して実行可能なソースコードを生成するソースコード生成手段と、を有し、前記ソースコード生成手段は、前記データフロー図を用いて、前記機能ブロックから信号が出力される出力点と前記機能ブロックに信号が入力される入力点とに一意な識別子を付加する手段と前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の前記識別子に前記フレームが示す前記優先順位情報を付加する手段と、前記出力点の前記識別子を格納した出力点リストを作成する手段と、すべての前記入力点に対し、前記入力点を有する前記機能ブロックに対応するコードの生成が可能か否かを示すフラグを付加する手段と、前記出力点リストから、前記優先順位情報に従って選択した前記出力点と結合する前記入力点を有する前記機能ブロックを特定するとともに、すべての前記入力点に対して付加された前記フラグの属性を変化する手段と、特定した前記機能ブロックの前記入力点に付加されたすべての前記属性が変更されている場合は、前記機能ブロックに対応するコードを生成する手段を有する、ことを特徴とするプログラム開発支援装置が提供される。
このような装置によれば、データフロー図生成手段によって、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックが結合され、結合された機能ブロックがフレームで包囲されて構成されたデータフロー図が生成され、ソースコード生成手段によって、生成されたデータフロー図から、開始要素から通常要素を、優先順位情報に従って、結合情報に沿いながら終端要素にいたるまでを追跡すると同時に、機能ブロックに対応するコードを生成して実行可能なソースコードが生成されるようになる。
また、上記課題を解決するために、プログラムを自動的に生成するプログラム開発支援方法において、データフロー図記憶手段が、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、前記機能ブロック間の結合を示す結合情報と、フレームによって包囲された前記機能ブロックに対応するコードの生成の優先順位を示す優先順位情報とを備えるデータフロー図を記憶するステップと、データフロー図生成手段が、ユーザによる操作入力を受け付け、前記機能ブロックが結合され、前記機能ブロックが前記フレームに包囲されて構成される前記データフロー図を生成し、前記データフロー図を前記データフロー図記憶手段に記憶させるステップと、ソースコード生成手段が、前記データフロー図記憶手段が記憶する前記データフロー図を用いて、前記開始要素から前記通常要素を、前記優先順位情報に従って、前記結合情報に沿いながら前記終端要素にいたるまでを追跡すると同時に、前記機能ブロックに対応する前記コードを生成して実行可能なソースコードを生成するステップと、を有し、前記ソースコード生成手段は、前記データフロー図を用いて、前記機能ブロックから信号が出力される出力点と前記機能ブロックに信号が入力される入力点とに一意な識別子を付加するステップと前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の前記識別子に前記フレームが示す前記優先順位情報を付加するステップと、前記出力点の前記識別子を格納した出力点リストを作成するステップと、すべての前記入力点に対し、前記入力点を有する前記機能ブロックに対応するコードの生成が可能か否かを示すフラグを付加するステップと、前記出力点リストから、前記優先順位情報に従って選択した前記出力点と結合する前記入力点を有する前記機能ブロックを特定するとともに、すべての前記入力点に対して付加された前記フラグの属性を変更するステップと、特定した前記機能ブロックの前記入力点に付加されたすべての前記属性が変更されている場合は、前記機能ブロックに対応するコードを生成するステップを有する、ことを特徴とするプログラム開発支援方法が提供される。
このような方法によれば、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックが結合され、結合された機能ブロックがフレームで包囲されて構成されたデータフロー図が生成され、生成されたデータフロー図から、開始要素から通常要素を、優先順位情報に従って、結合情報に沿いながら終端要素にいたるまでを追跡すると同時に、機能ブロックに対応するコードを生成して実行可能なソースコードが生成されるようになる。
また、上記課題を解決するために、プログラムを自動的に生成するプログラム開発支援プログラムにおいて、コンピュータを、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、前記機能ブロック間の結合を示す結合情報と、フレームによって包囲された前記機能ブロックに対応するコードの生成の優先順位を示す優先順位情報とを備えるデータフロー図を記憶するデータフロー図記憶手段、ユーザによる操作入力を受け付け、前記機能ブロックが結合され、前記機能ブロックが前記フレームに包囲されて構成される前記データフロー図を生成し、前記データフロー図を前記データフロー図記憶手段に記憶させるデータフロー図生成手段、前記データフロー図記憶手段が記憶する前記データフロー図を用いて、前記開始要素から前記通常要素を、前記優先順位情報に従って、前記結合情報に沿いながら前記終端要素にいたるまでを追跡すると同時に、前記機能ブロックに対応する前記コードを生成して実行可能なソースコードを生成するソースコード生成手段、として機能させ、前記ソースコード生成手段は、前記データフロー図を用いて、前記機能ブロックから信号が出力される出力点と前記機能ブロックに信号が入力される入力点とに一意な識別子を付加する手段と前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の前記識別子に前記フレームが示す前記優先順位情報を付加する手段と、前記出力点の前記識別子を格納した出力点リストを作成する手段と、すべての前記入力点に対し、前記入力点を有する前記機能ブロックに対応するコードの生成が可能か否かを示すフラグを付加する手段と、前記出力点リストから、前記優先順位情報に従って選択した前記出力点と結合する前記入力点を有する前記機能ブロックを特定するとともに、すべての前記入力点に対して付加された前記フラグの属性を変化する手段と、特定した前記機能ブロックの前記入力点に付加されたすべての前記属性が変更されている場合は、前記機能ブロックに対応するコードを生成する手段を有する、ことを特徴とするプログラム開発支援プログラムが提供される。
このようなプログラムによれば、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックが結合され、結合された機能ブロックがフレームで包囲されて構成されたデータフロー図が生成され、生成されたデータフロー図から、開始要素から通常要素を、優先順位情報に従って、結合情報に沿いながら終端要素にいたるまでを追跡すると同時に、機能ブロックに対応するコードを生成して実行可能なソースコードが生成されるようになる。
本発明では、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックを結合して、結合した機能ブロックがフレームで包囲して構成されるデータフロー図を生成し、生成したデータフロー図から、開始要素から通常要素を、優先順位情報に従って、結合情報に沿いながら終端要素にいたるまでを追跡すると同時に、機能ブロックに対応するコードを生成して実行可能なソースコードを生成するようにした。これにより、ソースコードを生成する作業量が低減し、短時間で効率的に、品質が向上した組み込み分野向けのソースコードを柔軟に生成することができる。
以下、本発明の実施の形態を、図面を参照して詳細に説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されない。
まず、本発明における概要について説明し、その後に本発明の実施の形態について説明する。
図1は、実施の形態に適用される発明の概要図である。
図1に示されるプログラム開発支援装置10は、データフロー図から、プログラムのソースコードを自動的に生成するものである。
プログラム開発支援装置10は、データフロー図記憶手段11と、データフロー図生成手段12と、ソースコード生成手段13とを有する。
データフロー図記憶手段11は、データフロー図11aが記憶されている。データフロー図11aは、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、機能ブロック間の結合を示す結合情報と、機能ブロックに対応するコードの生成処理の優先順位を付けるために、枠(以下、「フレーム」を呼ぶ。)によって機能ブロックを包囲して優先順位を示す優先順位情報とを備えている。
データフロー図生成手段12は、開発者による操作入力を入力装置2から受け付け、機能ブロックが結合され、機能ブロックがフレームに包囲されて構成されるデータフロー図11aを生成し、データフロー図11aをデータフロー図記憶手段11に記憶させる。
ソースコード生成手段13は、データフロー図記憶手段11が記憶するデータフロー図11aを用いて、開始要素から通常要素を、優先順位情報に従って、結合情報に沿いながら終端要素にいたるまでを追跡すると同時に、機能ブロックに対応するコードの生成を行って実行可能なソースコード3を生成する。
このように構成されるプログラム開発支援装置10により、機能ブロックによって構成されるデータフロー図にて、フレームによって機能ブロックを包囲してコードの生成順序の優先順位をつけることによって、データフロー図からソースコードへ生成する作業量が低減し、短時間で効率的に、品質が向上した組み込み分野向けのソースコードを柔軟に生成することができるようになる。
次に、本発明の実施の形態について以下に説明する。
図2は、プログラム開発支援装置のハードウェア構成を示す図である。
プログラム開発支援装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス106を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104および入力インタフェース105が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSプログラムやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ21の画面に表示させる。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号を、バス106を介してCPU101に送信する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、プログラム開発支援装置100のモジュール構成について説明する。
図3は、プログラム開発支援装置の機能を示すブロック図である。
プログラム開発支援装置100は、データフロー図記憶部110、ソースファイル記憶部120、データフロー図作成部130およびソースコード生成部140により構成される。なお、データフロー図作成部130は、キーボード22およびマウス23を通じて開発者からの入力を受け付けることができる。また、データフロー図作成部130およびソースコード生成部140は、モニタ21の画面に処理結果を表示することができる。
データフロー図記憶部110は、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、機能ブロック間の結合を示す結合情報と、機能ブロックに処理の優先順位を付けるために、フレームによって機能ブロックを包囲して優先順位が示された優先順位情報とを備えるデータフロー図を記憶する。
ソースファイル記憶部120は、データフロー図から生成されたソースコードが記述されたソースファイルを格納する。
データフロー図作成部130は、開発者の操作入力を受け付け、機能ブロックが結合され、機能ブロックがフレームに包囲されて構成されるデータフロー図を作成する。そして、データフロー図作成部130は作成したデータフロー図をデータフロー図記憶部110に格納する。
ソースコード生成部140は、識別子付加機能141と、優先順位付加機能142と、出力点リスト生成機能143と、フラグ表示機能144と、出力点選択機能145と、フラグ属性変更機能146と、コード生成機能147とを備えており、データフロー図記憶部110が記憶するデータフロー図からソースコードを生成し、生成したソースコードをソースファイル記憶部120へ格納する。
識別子付加機能141は、データフロー図を構成する機能ブロックから信号が出力される出力点と機能ブロックに信号が入力される入力点とに一意な識別子を付加する。なお、識別子として、番号やアルファベットなどを用いることができる。
優先順位付加機能142は、特定した機能ブロックの出力点と結合する別の機能ブロックの入力点がフレーム内にある場合、特定した機能ブロックの出力点に付加された識別子に、別の機能ブロックの入力点を包囲するフレームが示す優先順位情報を付加する。なお、別の機能ブロックの入力点がフレーム内にある場合とは、特定した機能ブロックの出力点と別の機能ブロックの入力点とを包囲するフレームが同一または異なる場合、または、入力点のみがフレームに包囲されている場合を意味する。さらに、開発者の操作入力によって、優先順位付加機能142は、特定した機能ブロックの出力点がフレーム内にあって、特定した機能ブロックの出力点がこのフレーム外の別の機能ブロックの入力点と結合するとともに、出力点を包囲するフレーム内に特定した機能ブロックと別の機能ブロックがある場合、別の機能ブロックは特定した機能ブロックを包囲するフレームの外にあるものと見なして、改めてすべての出力点の識別子に優先順位情報を付加し直す。
出力点リスト生成機能143は、機能ブロックの出力点の識別子を格納した出力点リストを生成する。
フラグ表示機能144は、機能ブロックに対応するコードの生成が可能か否かを示すフラグを、すべての機能ブロックの入力点に付加する。
出力点選択機能145は、出力点リストから優先順位情報に従って出力点を1つ選択する。さらに出力点選択機能145は、選択した出力点を出力点リストから削除して、選択した出力点と結合する入力点を有する機能ブロックを特定する。
フラグ属性変更機能146は、選択した出力点と機能ブロックの入力点との結合を確認すると、入力点に付加したフラグの属性を変更する。
コード生成機能147は、特定した機能ブロックに付加されたフラグ属性のすべてが変更されている場合、機能ブロックに対応するコードを生成する。
次に、このようなプログラム開発支援装置により行われる処理について、フローチャートを利用して説明する。
図4は、プログラム開発支援装置の処理手順を示すフローチャートである。
[ステップS11]初期化設定として、識別子付加機能141は識別番号を、データフロー図を構成する機能ブロックの出力点および入力点に、優先順位付加機能142は優先順位情報を出力点に、そして、フラグ表示機能144は属性を入力点にそれぞれ付加し、出力点リスト生成機能143は出力点を格納した出力点リストを作成する。なお、この初期化設定については後に詳細を説明する。
[ステップS12]出力点選択機能145は、出力点リストに格納された識別番号から、優先順位に従って、出力点を1つ選択する。そして、出力点選択機能145は、選択した出力点を出力点リストから削除するとともに、選択した出力点と結合する入力点を有する機能ブロックを特定する。なお、識別番号には優先順位情報が付加されているものと付加されていないものがある。このため、特定した機能ブロックに対応するコードの生成を行う際、どちらを優先するかは生成したいソースコードの設計に応じて、開発者の操作入力により決定される。
[ステップS13]フラグ属性変更機能146は、特定した入力点を有する機能ブロックに付加されたフラグの属性から、特定した機能ブロックに対応するコードが生成可能であることを示す属性へと変更する。
[ステップS14]コード生成機能147は、特定した機能ブロックのすべてのフラグの属性が生成可能であるように変更されているか否かを判断する。生成不可能である場合はステップS12へ進められ、生成可能である場合はステップS15へ進められる。
[ステップS15]コード生成機能147は、特定した機能ブロックに対応するコードを生成する。
[ステップS16]出力点リスト生成機能143は、コード生成機能147によってコード生成が行われた機能ブロックのすべての出力点を読み込み、出力点リストに格納する。
[ステップS17]出力点選択機能145は、出力点リストにて、特定した出力点以外に出力点が残っている場合はステップS12へ進められ、出力点が残っていない場合はコード生成が終了する。
なお、プログラム開発支援装置100により行われるステップS11の初期化処理について、以下にフローチャートを利用してさらに説明する。
図5は、プログラム開発支援装置の初期化設定処理手順を示すフローチャートである。
[ステップS11a]識別子付加機能141は、データフロー図を構成する機能ブロックの出力点および入力点のすべてに識別番号を付加する。
[ステップS11b]出力点リスト生成機能143は、識別番号が付加された出力点を検出する。
[ステップS11c]出力点リスト生成機能143は、検出した出力点と結合する入力点を特定する。
[ステップS11d]優先順位付加機能142は、機能ブロックの出力点と結合する別の機能ブロックの入力点がフレーム内にある場合、出力点に付加された識別番号に、入力点を包囲するフレームが示す優先順位情報を付加する。なお、入力点がフレーム内にある場合とは、出力点と入力点とを包囲するフレームが同一または異なる場合、または、入力点のみがフレームに包囲されている場合を意味する。
[ステップS11e]出力点リスト生成機能143は、すべての開始要素の出力点をリスト化し出力点リストを生成する。
[ステップS11f]フラグ表示機能144は、機能ブロックに対応するコードの生成が可能か否かを示すフラグを、検出したすべての入力点に作成する。
以上、初期化設定を行った後に、図4のステップS12の処理を始める。
このように、プログラム開発支援装置100が、図4,5の処理手順を経ることによりデータフロー図からソースコードを自動的に生成することができる。
実際に、プログラム開発支援装置によるデータフロー図からソースコードへの自動生成について、具体的なデータフロー図を挙げて説明する。なお、以下では、機能ブロック内に記述されたアルファベットは、機能ブロックに対応するコードを示すものとする。
(実施例1)
図6は、実施例1のデータフロー図である。
データフロー図150は、開始要素151,152、通常要素161,162,163,164、終端要素153の機能ブロックが結合しており、開始要素152および通常要素161、開始要素151および通常要素162、通常要素163,164および終端要素153がフレーム154,155,156にそれぞれ包囲されて、フレーム154,155,156に優先順位情報として、それぞれ“1”,“2”,“3”の優先順位が付加されている。
このようなデータフロー図150からソースコードの生成について以下に説明する。
図7,9は、実施例1における識別番号、優先順位情報およびフラグが付加されたデータフロー図、図8,11は、実施例1において生成された出力点リスト、図10は、実施例1において生成されたソースコードである。
まず、識別子付加機能141は、データフロー図150の各機能ブロックの出力点および入力点に識別番号を付加する。
優先順位付加機能142は、機能ブロックの出力点と結合する別の機能ブロックの入力点がフレーム内にある場合、出力点に付加された識別番号に、入力点を包囲するフレームが示す優先順位情報を付加する。図7のデータフロー図150では、例えば、通常要素161の出力点11は、通常要素163の入力点12と結合している。このとき、入力点12は、優先順位“3”が付加されたフレーム156内にあるため、出力点11に“[3]”を付加する。
出力点リスト生成機能143は、開始要素の出力点を選択して、選択した出力点をリスト化し、出力点リストを生成する。図7のデータフロー図150では、2つの開始要素151,152があるため、図8に示すように、開始要素の識別番号により出力点リスト143aを作成する。
フラグ表示機能144は、機能ブロックに対応するコードの生成が可能か否かを示すフラグを、検出した入力点に付加する。図7のデータフロー図150では、機能ブロックの入力点に、コード生成が不可能であることを示すフラグとして黒丸“●”を付加している。
以上により初期化設定が終了する。
そして、出力点選択機能145は、出力点リストに格納された識別番号から、優先順位に従って出力点を1つ選択する。そして、出力点リスト生成機能143は、選択した出力点を出力点リストから削除し、選択した出力点と結合する入力点を有する機能ブロックを特定する。例えば、図8の出力点リスト143aでは、優先順位が高い開始要素152の出力点9[1]が選択され、出力点リスト143aから削除される。そして、データフロー図150にて、出力点9[1]と結合する入力点10を有する通常要素161が特定される。
フラグ属性変更機能146は、特定した入力点を有する機能ブロックに付加されたフラグの属性を変更する。図9のデータフロー図150に示すように、特定した通常要素161に付加されたフラグの属性を、コード生成が可能であることを示すフラグとして白丸“○”に変更する。
コード生成機能147は、コード生成を行うために、特定した機能ブロックのフラグの属性が生成可能になっているか否かを判断する。図9のデータフロー図150の通常要素161では、入力点10に付加されたフラグの属性が白丸となり、特定した通常要素161に付加されたすべての入力点のフラグが白丸であるために、コードの生成が可能となる。
コード生成機能147は、特定した機能ブロックのコードを生成する。データフロー図150の通常要素161のコードを生成すると、図10に示すように、特定した通常要素161のコードを生成して、ソースコード146aに、通常要素161に対応するコード“a()”が生成される。
出力点リスト生成機能143は、コード生成機能147によってコード生成が行われた機能ブロックのすべての出力点を読み込み、出力点リストに格納する。データフロー図150では、通常要素161のコード生成が行われたので、図11に示すように、通常要素161の出力点11[3]が新たに出力点リスト143aに格納される。
出力点選択機能145は、出力点リストに、特定した出力点以外に出力点が残っている場合は、再度、優先順位に従って出力点を選択する。また、出力点が残っていない場合はコード生成が終了する。
以上のような処理を行うごとに1つの機能ブロックに対応するコードが生成される。
引き続き、データフロー図150を例に挙げて、出力点リストの優先順位に従って、通常要素161,162に対応するコードを順に生成した後に、通常要素163を生成する場合について説明する。
図12は、実施例1における識別番号と、優先順位情報と、フラグとが付加された別のデータフロー図、ソースコードおよび出力点リストである。
通常要素162のコード生成を行った後、出力点リストには、出力点3[3]が格納されている。
出力点選択機能145は、出力点リストから出力点3[3]を選択する。そして、出力点リスト生成機能143は、選択した出力点3[3]を出力点リストから削除し、選択した出力点3[3]と結合する入力点4を有する通常要素163を特定する。
フラグ属性変更機能146は、図12(A)に示すように、特定した通常要素163の入力点4に付加されたフラグの属性を黒丸から白丸に変更する。
コード生成機能147は、通常要素163のフラグの属性が生成可能になっているか否かを判断する。コード生成機能147は通常要素163の入力点4,12に付加されたフラグがすべて白丸であり、コードの生成が可能であることを確認する。
コード生成機能147は、通常要素163のコードを生成する。データフロー図150の通常要素163のコードを生成すると、図12(B)に示すように、特定した通常要素163のコードを生成して、ソースコード146aには、通常要素161に対応するコード“a()”および通常要素162に対応するコード“b()”に加えて、通常要素163に対応するコード“c()”が生成される。
出力点リスト生成機能143は、コード生成機能147によってコード生成が行われた通常要素163の出力点5[3]を読み込み、図12(C)に示すように、出力点リスト143aに格納する。
再び、出力点5[3]を格納した出力点リスト143aによって、同様の処理により、通常要素164に対応するコード“d()”の生成も行うことができる。
以上の処理を繰り返すことによって、データフロー図150からソースコードを、“a()”,“b()”,“c()”,“d()”の順に生成することができる。
(実施例2)
図13は、実施例2のデータフロー図である。
データフロー図200は、開始要素201,202、通常要素211,212,213,214、終端要素203,204の機能ブロックが結合しており、開始要素201,通常要素211,212および終端要素203、開始要素202、通常要素213,214および終端要素204がフレーム205,206にそれぞれ包囲されて、フレーム205,206に優先順位情報として、それぞれ“1”,“2”の優先順位が付加されている。
このデータフロー図200から実施例1と同様にしてソースコードを生成すると、“a()”,“b()”,“c()”,“d()”の順序でソースコードが生成される。
以下に、実施例2のデータフロー図の場合に対して、フレームが無い場合のデータフロー図からソースコードの生成について比較する。
図14は、従来のデータフロー図の例である。
データフロー図200aは、データフロー図200において、フレーム205,206が無い従来のデータフロー図である。
データフロー図200aは、開始要素201a,202a、通常要素211a,212a,213a,214a、終端要素203a,204aの機能ブロックから、開始要素201a、通常要素211a,212a、終端要素203a、および、開始要素202a、通常要素213a,214a、終端要素204aが結合している。
このデータフロー図200aからソースコードを生成すると、“a()”,“b()”,“c()”,“d()”または“c()”,“d()”,“a()”,“b()”のいずれかの順序でソースコードが生成される。
このように、データフロー図の機能ブロックをフレームによって包囲して優先順位をつけることによって、コード生成の順序を簡単に制御することができる。
(実施例3)
実施例1,2では、データフロー図を構成するすべての機能ブロックがいずれかのフレームに必ず包囲されている場合を例にして説明した。一方、実施例3では、すべての機能ブロックがフレームに包囲されていない場合を例にして説明する。なお、実施例3では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応したコードの生成処理を、優先順位が付加された識別番号よりも優先することにする。
図15は、実施例3のデータフロー図である。
データフロー図250は、開始要素251,252,253、通常要素261,262,263,264,265、終端要素254の機能ブロックが結合しており、開始要素252および通常要素262,263、開始要素253および通常要素264,265がフレーム255,256にそれぞれ包囲されて、フレーム255,256に優先順位情報として、それぞれ“1”,“2”の優先順位が付加されている。
このデータフロー図250に対して、初期化設定を行う。
図16は、実施例3における識別番号と、優先順位情報と、フラグとが付加されたデータフロー図および出力点リストである。
データフロー図250において、図16(A)に示すように、識別子付加機能141は、出力点および入力点に識別番号を付加する。さらに、優先順位付加機能142は、出力点の識別番号に優先順位を付加する。そして、図16(B)に示すように、出力点リスト生成機能143は、開始要素の出力点を選択して出力点リスト143bに格納する。フラグ表示機能144は、入力点にフラグを付加して、初期化設定が終了する。
データフロー図250では、優先順位が付加されていない識別番号の出力点の機能ブロックに対応するコードの生成処理を優先するために、出力点選択機能145は、出力点リスト143bから、開始要素251の出力点13を選択および削除して、出力点13と結合する入力点14を有する通常要素261を特定する。
フラグ属性変更機能146は、入力点14に付加されたフラグを白丸に変更する。
コード生成機能147は、通常要素261に対応するコード“a()”を生成する。
出力点リスト生成機能143は、通常要素261の出力点15[1]を出力点リスト143bに格納する。
以上のようにして、最初に出力点13を選択して、出力点13と結合する入力点14を有する通常要素261に対応するコードが生成される。以下は同様の処理を繰り返し行うことによって、データフロー図250から“a()”,“b()”,“c()”,“d()”,“e()”の順序でソースコードを生成することができる。
(実施例4)
実施例4は、実施例3と同様にすべての機能ブロックがフレームに包囲されていない場合を例にして説明する。
図17は、実施例4のデータフロー図である。
データフロー図300は、開始要素301、通常要素311,312,313,314,315,316、終端要素302,303の機能ブロックが結合しており、通常要素315および終端要素303、通常要素316および終端要素304がフレーム305,306にそれぞれ包囲されて、フレーム305,306に優先順位情報として、それぞれ“1”,“2”の優先順位が付加されている。なお、実施例4では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応したコードの生成処理を、優先順位が付加された識別番号よりも優先することにする。
データフロー図300でも、既述の処理方法を繰り返し行うことによって、“a()”,“b()”,“c()”,“d()”,“e()”,“f()”の順序でソースコードを生成することができる。
(実施例5)
実施例5は、実施例3と同様にすべての機能ブロックがフレームに包囲されていない場合を例にして説明する。
図18は、実施例5のデータフロー図である。
データフロー図350は、開始要素351,352、通常要素361,362,363,364,365,366,367,368、終端要素353,354の機能ブロックが結合しており、通常要素363,365,367がフレーム355,356,357にそれぞれ包囲されて、フレーム355,356,357に優先順位情報として、それぞれ“1”,“2”,“3”の優先順位が付加されている。なお、実施例5では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応したコードの生成処理を、優先順位が付加された識別番号よりも優先することにする。
データフロー図350でも、既述の処理方法を繰り返し行うことによって、“a()”,“b()”,“c()”,“d()”,“e()”,“f()”,“g()”,“h()”の順序でソースコードを生成することができる。
(実施例6)
実施例6は、実施例3と同様にすべての機能ブロックがフレームに包囲されておらず、フレーム内の機能ブロックにフレーム外からの入力を受ける場合を例にして説明する。
図19は、実施例6のデータフロー図である。
データフロー図400は、開始要素401、通常要素411,412,413,414,415,416、終端要素402の機能ブロックが結合しており、通常要素412,414,415、通常要素413がフレーム403,404にそれぞれ包囲されて、フレーム403,404に優先順位情報として、それぞれ“1”,“2”の優先順位が付加されている。なお、実施例6では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応したコードの生成処理は、優先順位が付加された識別番号よりも優先することにする。
データフロー図400でも、既述の処理方法を繰り返し行うことによって、“a()”,“b()”,“c()”,“d()”,“e()”,“f()”の順序でソースコードを生成することができる。
(実施例7)
実施例7は、実施例3と同様にすべての機能ブロックがフレームに包囲されていない場合を例にして説明する。
図20は、実施例7のデータフロー図である。
データフロー図450は、開始要素451,452、通常要素461,462,463,467,465,466、終端要素453の機能ブロックが結合しており、開始要素451および通常要素461、通常要素463、開始要素452および通常要素467がフレーム455,456,457にそれぞれ包囲されて、フレーム455,456,457に優先順位情報として、それぞれ“1”,“2”,“3”の優先順位が付加されている。なお、実施例7では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応したコードの生成処理を、優先順位が付加された識別番号よりも優先することにする。
データフロー図450でも、既述の処理方法を繰り返し行うことによって、“a()”,“b()”,“c()”,“e()”,“d()”,“f()”の順序でソースコードを生成することができる。
(実施例8)
実施例8は、実施例3と同様にすべての機能ブロックがフレームに包囲されていない場合を例にして説明する。
図21は、実施例8のデータフロー図である。
データフロー図500は、開始要素501,502、通常要素511,512,513,514,515、終端要素503の機能ブロックが結合しており、開始要素501および通常要素511、開始要素502および通常要素512がフレーム504,505にそれぞれ包囲されて、フレーム504,505に優先順位情報として、それぞれ“1”,“2”の優先順位が付加されている。なお、実施例8では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応したコードの生成処理は、優先順位が付加された識別番号よりも優先することにする。
データフロー図500でも、既述の処理方法を繰り返し行うことによって、“a()”,“b()”,“c()”,“d()”,“e()”の順序でソースコードを生成することができる。
(実施例9)
実施例9は、フレーム内の機能ブロックに対応するコードの生成処理が、一旦フレーム外に出て、再びフレーム内に入る場合を例に挙げて説明する。
図22は、実施例9のデータフロー図である。
データフロー図550は、開始要素551、通常要素561,562,563,564,565,566、終端要素552,553の機能ブロックが結合しており、通常要素562,565がフレーム554に包囲されて、フレーム554に優先順位情報として“1”の優先順位が付加されている。なお、実施例9では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応したコードの生成処理を、優先順位が付加された識別番号よりも優先することにする。
まず、初期化設定を行って、通常要素561に対応するコード“a()”を生成した後の処理について以下に説明する。
図23,24,25は、実施例9における識別番号と、優先順位情報と、フラグとが付加されたデータフロー図、ソースコードおよび出力点リストである。
図23は、通常要素561に対応するコード“a()”を加えてソースコード146cを生成し、出力点リスト143cに通常要素561の出力点3[1]を格納した状態のデータフロー図550を示している。
この後、出力点選択機能145は、出力点3[1]を選択して、出力点3[1]と結合する入力点4を有する通常要素562が特定される。
フラグ属性変更機能146は、特定した通常要素562に付加されたフラグの属性を、コード生成が可能であることを示すフラグとして白丸に変更する。
コード生成機能147は、通常要素562では、図24(A)に示すように、入力点4に付加されたフラグの属性が白丸となり、特定した通常要素562に付加されたすべての入力点のフラグが白丸であるために、コードの生成が可能となる。
コード生成機能147は、図24(B)に示すように、通常要素562のコード“b()”をさらにソースコード146cに生成する。
出力点リスト生成機能143によって、コード生成機能147によってコード生成が行われた機能ブロックのすべての出力点を読み込み、図24(C)に示すように、通常要素562の出力点5が出力点リスト143cに格納される。
引き続き、出力点選択機能145は、出力点5を選択して、出力点5と結合する入力点6を有する通常要素563が特定される。
フラグ属性変更機能146は、特定した通常要素563に付加されたフラグの属性を、コード生成が可能であることを示すフラグとして白丸に変更する。
コード生成機能147は、通常要素563では、図25(A)に示すように、入力点6に付加されたフラグの属性が白丸となり、特定した通常要素563に付加されたすべての入力点のフラグが白丸であるために、コードの生成が可能となる。
コード生成機能147は、図25(B)に示すように、通常要素563に対応するコード“c()”をさらにソースコード146cに生成する。
出力点リスト生成機能143によって、コード生成機能147によってコード生成が行われた通常要素563の出力点7,8[1]を読み込み、図25(C)に示すように、通常要素563の出力点7,8[1]が出力点リスト143cに格納される。
引き続き、出力点選択機能145が、出力点リスト143cから優先順位が高い出力点7を選択し、既述の処理手順を繰り返し行うと、データフロー図550から、“a()”,“b()”,“c()”,“d()”,“e()”,“f()”の順序に従ってソースコードが生成される。
このような処理方法では、フレーム内の出力点を有する機能ブロックがフレーム外の入力点の機能ブロックと結合する場合、フレーム内の他の機能ブロックに対応するコード生成を一旦保留して、生成処理を続けるようにした。
一方、この場合に、フレーム内の他の機能ブロックを、特定した出力点を有する機能ブロックを包囲するフレームの外にあるものとして処理を行うことを考える。
図26は、プログラム開発支援装置の処理手順を示す別のフローチャートである。
図26のフローチャートは、図4において、ステップS15以降に、ステップS15aとステップS15bとの処理をさらに加えたものである。
これらの処理工程を加えた[ステップS15]以降について以下に説明する。なお、図26において、その他の処理および処理番号は図4と同様とするために、各処理についての説明は省略する。
[ステップS15a]優先順位付加機能142は、特定した機能ブロックと、特定した機能ブロックの他の機能ブロックがフレームに包囲されてあって、特定した機能ブロックの出力点がフレーム外の別の機能ブロックの入力点と結合しているか否かを判断する。これが真のときはステップS15bへ進められ、偽のときはステップS16へ進められる。
[ステップS15b]優先順位付加機能142は、特定した機能ブロックと同じフレーム内の他の機能ブロックは、特定した機能ブロックを包囲するフレーム外にあるものとして、出力点の識別番号に、改めて優先順位情報を付加し直す。
そして、[ステップS16]へと処理が続く。
このように、図26のフローチャートでは、特定した出力点を有する機能ブロックを包囲するフレームに他の機能ブロックがあって、特定した機能ブロックの出力点が、フレーム外の入力点と結合する場合に、特定した機能ブロックを包囲するフレーム内の処理を終了させて、他の機能ブロックを特定した機能ブロックを包囲するフレームの外にあるものとして処理させている。
以下に図26のフローチャートを用いたソースコードの生成について説明する。なお、ソースコード生成の説明は、通常要素461に対応するコード“a()”を生成(図23)した後から説明する。
図27,28は、実施例9における識別番号と、優先順位情報と、フラグとが付加された別のデータフロー図、別のソースコードおよび別の出力点リストである。
出力点選択機能145は、出力点3[1]を選択して、出力点3[1]と結合する入力点4を有する通常要素562が特定される。
フラグ属性変更機能146は、特定した通常要素562に付加されたフラグの属性を、コード生成が可能であることを示すフラグとして白丸に変更する。
コード生成機能147は、通常要素562では、入力点4に付加されたフラグの属性が白丸となり、特定した通常要素562に付加されたすべての入力点のフラグが白丸であるために、コードの生成が可能であることを確認する。
コード生成機能147は、図27(B)に示すように、通常要素562のコード“b()”をさらにソースコード146bに生成する。
優先順位付加機能142によって、フレーム554に包囲された通常要素562の出力点5は、フレーム554外の通常要素563の入力点6と結合しており、フレーム554内には、通常要素562の他に通常要素565があるため、図27(A)に示すように、通常要素565をフレーム554の外にあるものとして、優先順位情報を付加し直すと、通常要素563の出力点8[1]が出力点8となる。
出力点リスト生成機能143によって、コード生成機能147によってコード生成が行われた機能ブロックのすべての出力点を読み込み、図27(C)に示すように、通常要素562の出力点5が出力点リスト143cに格納される。
引き続き、出力点選択機能145は、出力点5を選択して、出力点5と結合する入力点6を有する通常要素563が特定される。
フラグ属性変更機能146は、特定した通常要素563に付加されたフラグの属性を、コード生成が可能であることを示すフラグとして白丸に変更する。
コード生成機能147は、通常要素563では、入力点6に付加されたフラグの属性が白丸となり、特定した通常要素563に付加されたすべての入力点のフラグが白丸であるために、コードの生成が可能であることを確認する。
コード生成機能147は、図28(B)に示すように、通常要素563のコード“c()”をさらにソースコード146cに生成する。
出力点リスト生成機能143によって、コード生成機能147によってコード生成が行われた通常要素563の出力点7,8を読み込み、図28(C)に示すように、通常要素563の出力点7,8が出力点リスト143cに格納される。
そして、出力点選択機能145が、出力点リスト143cから優先順位が等しい出力点7,8のいずれかを選択することができ、フローチャートに沿った処理を行うと、データフロー図550から、“a()”,“b()”,“c()”,“d()”,“e()”,“f()”、“a()”,“b()”,“c()”,“e()”,“d()”,“f()”、または、“a()”,“b()”,“c()”,“e()”,“f()”,“d()”のいずれかの順序によってソースコードが生成される。
以上のように、特に、フレーム内の機能ブロックに対応するコードの生成処理が、一旦フレーム外に出て、再びフレーム内に入るようなデータフロー図からソースコードを生成する場合には、フレーム内の機能ブロックに対応するコードの生成処理を一旦、保留または終了させる方法がある。なお、一旦保留させる方法の方が、厳密に生成処理の優先順位を決定することができる。いずれかの方法を利用するかは生成したいソースコードの設計に応じて、開発者の操作入力により決定される。
(実施例10)
これまでの実施例では、優先順位が付加されていない識別番号の出力点を有する機能ブロックに対応するコードの生成を、付加された識別番号よりも優先する場合を例にして説明したが、実施例10では、優先順位が付加された識別番号の出力点を有する機能ブロックに対応するコードの生成を優先する場合とする。
図29は、実施例10のデータフロー図である。
データフロー図600は、開始要素601,602,603、通常要素611,612,613,614,615、終端要素604の機能ブロックが結合しており、開始要素601および通常要素611、開始要素602および通常要素612,613がフレーム605,606にそれぞれ包囲されて、フレーム605,606に優先順位情報として、それぞれ“1”,“2”の優先順位が付加されている。
図30は、実施例10における識別番号、優先順位情報と、フラグとが付加されたデータフロー図および出力点リストである。
データフロー図600において、図30(A)に示すように、識別子付加機能141は、出力点および入力点に識別番号を付加する。さらに、優先順位付加機能142は、出力点の識別番号に優先順位を付加する。そして、図30(B)に示すように、出力点リスト生成機能143は、開始要素の出力点を選択して出力点リスト143dに格納する。フラグ表示機能144は、入力点にフラグを付加して、初期化設定が終了する。
次に、出力点選択機能145は、出力点リストに格納された識別番号から、優先順位に従って出力点を1つ選択する。但し、実施例10では、優先順位が付加された識別番号のコード生成を、付加されていないよりも優先するために、出力点リスト143dから出力点9[1]を選択して、以下、優先順位を間違わずに既述の処理方法を繰り返し行うことによって、データフロー図600から、“a()”,“b()”,“c()”,“d()”,“e()”の順序でソースコードを生成することができる。
以上のように、機能ブロックによって構成されるデータフロー図にて、フレームによって機能ブロックを包囲して、コードの生成順序の優先順位をつけることによって、データフロー図からソースコードへ生成する作業量が低減し、短時間で効率的に、品質が向上した組み込み分野向けのソースコードを柔軟に生成することができるようになる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、プログラム開発支援装置100が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどが挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどが挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などが挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)などが挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラム開発支援プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
実施の形態に適用される発明の概要図である。 プログラム開発支援装置のハードウェア構成を示す図である。 プログラム開発支援装置の機能を示すブロック図である。 プログラム開発支援装置の処理手順を示すフローチャートである。 プログラム開発支援装置の初期化設定処理手順を示すフローチャートである。 実施例1のデータフロー図である。 実施例1における識別番号、優先順位情報およびフラグが付加されたデータフロー図(その1)である。 実施例1において生成された出力点リスト(その1)である。 実施例1における識別番号、優先順位情報およびフラグが付加されたデータフロー図(その2)である。 実施例1において生成されたソースコードである。 実施例1において生成された出力点リスト(その2)である。 実施例1における識別番号と、優先順位情報と、フラグとが付加された別のデータフロー図、ソースコードおよび出力点リストである。 実施例2のデータフロー図である。 従来のデータフロー図の例である。 実施例3のデータフロー図である。 実施例3における識別番号と、優先順位情報と、フラグとが付加されたデータフロー図および出力点リストである。 実施例4のデータフロー図である。 実施例5のデータフロー図である。 実施例6のデータフロー図である。 実施例7のデータフロー図である。 実施例8のデータフロー図である。 実施例9のデータフロー図である。 実施例9における識別番号と、優先順位情報と、フラグとが付加されたデータフロー図、ソースコードおよび出力点リスト(その1)である。 実施例9における識別番号と、優先順位情報と、フラグとが付加されたデータフロー図、ソースコードおよび出力点リスト(その2)である。 実施例9における識別番号と、優先順位情報と、フラグとが付加されたデータフロー図、ソースコードおよび出力点リスト(その3)である。 プログラム開発支援装置の処理手順を示す別のフローチャートである。 実施例9における識別番号と、優先順位情報と、フラグとが付加された別のデータフロー図、別のソースコードおよび別の出力点リスト(その1)である。 実施例9における識別番号と、優先順位情報と、フラグとが付加された別のデータフロー図、別のソースコードおよび別の出力点リスト(その2)である。 実施例10のデータフロー図である。 実施例10における識別番号、優先順位情報と、フラグとが付加されたデータフロー図および出力点リストである。
符号の説明
2 入力装置
3 ソースコード
10 プログラム開発支援装置
11 データフロー図記憶手段
11a データフロー図
12 データフロー図生成手段
13 ソースコード生成手段

Claims (9)

  1. プログラムを自動的に生成するプログラム開発支援装置において、
    外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、前記機能ブロック間の結合を示す結合情報と、フレームによって包囲された前記機能ブロックに対応するコードの生成の優先順位を示す優先順位情報とを備えるデータフロー図を記憶するデータフロー図記憶手段と、
    ユーザによる操作入力を受け付け、前記機能ブロックが結合され、前記機能ブロックが前記フレームに包囲されて構成される前記データフロー図を生成し、前記データフロー図を前記データフロー図記憶手段に記憶させるデータフロー図生成手段と、
    前記データフロー図記憶手段が記憶する前記データフロー図を用いて、前記開始要素から前記通常要素を、前記優先順位情報に従って、前記結合情報に沿いながら前記終端要素にいたるまでを追跡すると同時に、前記機能ブロックに対応する前記コードを生成して実行可能なソースコードを生成するソースコード生成手段と、
    を有し、
    前記ソースコード生成手段は、
    前記データフロー図を用いて、前記機能ブロックから信号が出力される出力点と前記機能ブロックに信号が入力される入力点とに一意な識別子を付加する手段と前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の前記識別子に前記フレームが示す前記優先順位情報を付加する手段と、前記出力点の前記識別子を格納した出力点リストを作成する手段と、すべての前記入力点に対し、前記入力点を有する前記機能ブロックに対応するコードの生成が可能か否かを示すフラグを付加する手段と、前記出力点リストから、前記優先順位情報に従って選択した前記出力点と結合する前記入力点を有する前記機能ブロックを特定するとともに、すべての前記入力点に対して付加された前記フラグの属性を変化する手段と、特定した前記機能ブロックの前記入力点に付加されたすべての前記属性が変更されている場合は、前記機能ブロックに対応するコードを生成する手段を有する、
    ことを特徴とするプログラム開発支援装置。
  2. 前記ソースコード生成手段は、前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の前記識別子に前記フレームが示す前記優先順位情報を付加する手段の後に、前記出力点が前記入力点を包囲する前記フレームと別の前記フレームに包囲されてあって、前記出力点が前記入力点と結合し、前記出力点を包囲する別の前記フレーム内に他の前記機能ブロックがある場合、他の前記機能ブロックは前記出力点を包囲する別の前記フレーム外にあるものとして、前記出力点の前記識別子に前記優先順位情報を付加し直す手段をさらに有することを特徴とする請求項1記載のプログラム開発支援装置。
  3. 前記出力点の優先順位は、前記優先順位情報が付加されていないほうが、付加されているよりも高いことを特徴とする請求項1記載のプログラム開発支援装置。
  4. 前記出力点の優先順位は、前記優先順位情報が付加されているほうが、付加されていないよりも高いことを特徴とする請求項1記載のプログラム開発支援装置。
  5. プログラムを自動的に生成するプログラム開発支援方法において、
    データフロー図記憶手段が、外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、前記機能ブロック間の結合を示す結合情報と、フレームによって包囲された前記機能ブロックに対応するコードの生成の優先順位を示す優先順位情報とを備えるデータフロー図を記憶するステップと、
    データフロー図生成手段が、ユーザによる操作入力を受け付け、前記機能ブロックが結合され、前記機能ブロックが前記フレームに包囲されて構成される前記データフロー図を生成し、前記データフロー図を前記データフロー図記憶手段に記憶させるステップと、
    ソースコード生成手段が、前記データフロー図記憶手段が記憶する前記データフロー図を用いて、前記開始要素から前記通常要素を、前記優先順位情報に従って、前記結合情報に沿いながら前記終端要素にいたるまでを追跡すると同時に、前記機能ブロックに対応する前記コードを生成して実行可能なソースコードを生成するステップと、
    を有し、
    前記ソースコード生成手段は、
    前記データフロー図を用いて、前記機能ブロックから信号が出力される出力点と前記機能ブロックに信号が入力される入力点とに一意な識別子を付加するステップと、前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の前記識別子に前記フレームが示す前記優先順位情報を付加するステップと、前記出力点の前記識別子を格納した出力点リストを作成するステップと、すべての前記入力点に対し、前記入力点を有する前記機能ブロックに対応するコードの生成が可能か否かを示すフラグを付加するステップと、前記出力点リストから、前記優先順位情報に従って選択した前記出力点と結合する前記入力点を有する前記機能ブロックを特定するとともに、すべての前記入力点に対して付加された前記フラグの属性を変更するステップと、特定した前記機能ブロックの前記入力点に付加されたすべての前記属性が変更されている場合は、前記機能ブロックに対応するコードを生成するステップとを有する、
    ことを特徴とするプログラム開発支援方法。
  6. 前記ソースコード生成手段は、前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の識別子に前記フレームが示す前記優先順位情報を付加するステップの後に、前記出力点が前記入力点を包囲する前記フレームと別の前記フレームに包囲されてあって、前記出力点が前記入力点と結合し、前記出力点を包囲する別の前記フレーム内に他の前記機能ブロックがある場合、他の前記機能ブロックは前記出力点を包囲する別の前記フレーム外にあるものとして、前記出力点の前記識別子に前記優先順位情報を付加し直すステップをさらに有することを特徴とする請求項5記載のプログラム開発支援方法。
  7. 前記出力点の優先順位は、前記優先順位情報が付加されていないほうが、付加されているよりも高いことを特徴とする請求項5記載のプログラム開発支援方法。
  8. 前記出力点の優先順位は、前記優先順位情報が付加されているほうが、付加されていないよりも高いことを特徴とする請求項5記載のプログラム開発支援方法。
  9. プログラムを自動的に生成するプログラム開発支援プログラムにおいて、
    コンピュータを、
    外部入力データを示す開始要素、データ処理を示す通常要素および外部出力データを示す終端要素を含む機能ブロックと、前記機能ブロック間の結合を示す結合情報と、フレームによって包囲された前記機能ブロックに対応するコードの生成の優先順位を示す優先順位情報とを備えるデータフロー図を記憶するデータフロー図記憶手段、
    ユーザによる操作入力を受け付け、前記機能ブロックが結合され、前記機能ブロックが前記フレームに包囲されて構成される前記データフロー図を生成し、前記データフロー図を前記データフロー図記憶手段に記憶させるデータフロー図生成手段、
    前記データフロー図記憶手段が記憶する前記データフロー図を用いて、前記開始要素から前記通常要素を、前記優先順位情報に従って、前記結合情報に沿いながら前記終端要素にいたるまでを追跡すると同時に、前記機能ブロックに対応する前記コードを生成して実行可能なソースコードを生成するソースコード生成手段、
    として機能させ、
    前記ソースコード生成手段は、
    前記データフロー図を用いて、前記機能ブロックから信号が出力される出力点と前記機能ブロックに信号が入力される入力点とに一意な識別子を付加する手段と、前記出力点と結合する前記入力点が前記フレーム内にある場合、前記出力点の前記識別子に前記フレームが示す前記優先順位情報を付加する手段と、前記出力点の前記識別子を格納した出力点リストを作成する手段と、すべての前記入力点に対し、前記入力点を有する前記機能ブロックに対応するコードの生成が可能か否かを示すフラグを付加する手段と、前記出力点リストから、前記優先順位情報に従って選択した前記出力点と結合する前記入力点を有する前記機能ブロックを特定するとともに、すべての前記入力点に対して付加された前記フラグの属性を変化する手段と、特定した前記機能ブロックの前記入力点に付加されたすべての前記属性が変更されている場合は、前記機能ブロックに対応するコードを生成する手段とを有する、
    ことを特徴とするプログラム開発支援プログラム。
JP2007005528A 2007-01-15 2007-01-15 プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム Active JP5040320B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007005528A JP5040320B2 (ja) 2007-01-15 2007-01-15 プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007005528A JP5040320B2 (ja) 2007-01-15 2007-01-15 プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム

Publications (2)

Publication Number Publication Date
JP2008171305A JP2008171305A (ja) 2008-07-24
JP5040320B2 true JP5040320B2 (ja) 2012-10-03

Family

ID=39699325

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007005528A Active JP5040320B2 (ja) 2007-01-15 2007-01-15 プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム

Country Status (1)

Country Link
JP (1) JP5040320B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251554B2 (en) 2012-12-26 2016-02-02 Analog Devices, Inc. Block-based signal processing
KR102028665B1 (ko) * 2017-05-04 2019-10-04 고려대학교 산학협력단 프로그램 합성 방법
JP2019179408A (ja) * 2018-03-30 2019-10-17 株式会社デンソー コード生成方法、コード生成装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3471867B2 (ja) * 1993-11-09 2003-12-02 キヤノン株式会社 データフロー図作成装置及びその方法
JP2000020291A (ja) * 1998-07-06 2000-01-21 Toyota Motor Corp 車両用プログラム開発支援方法および装置
JP4904712B2 (ja) * 2005-03-31 2012-03-28 富士電機株式会社 プログラム自動生成装置、方法、およびプログラム
JP2006301989A (ja) * 2005-04-21 2006-11-02 Fuji Electric Holdings Co Ltd 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム

Also Published As

Publication number Publication date
JP2008171305A (ja) 2008-07-24

Similar Documents

Publication Publication Date Title
KR101076867B1 (ko) 콘텐츠를 생성하기 위한 자동 이미지 캡처
JP4909877B2 (ja) デバッグ装置及びデバッグ方法
CN111143004B (zh) 一种场景引导方法、装置、电子设备及存储介质
CN113066515B (zh) 一种光盘刻录方法、计算设备及可读存储介质
CN107404418B (zh) 互联网产品测试方法、装置、设备及存储介质
JP2008040537A (ja) Guiテスト支援システム及びテスト支援用アプリケーションプログラム
CN110659256A (zh) 多机房同步方法、计算设备及计算机存储介质
JP5040320B2 (ja) プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム
CN109857537B (zh) 后台服务启动方法、装置、介质及电子设备
WO2010044150A1 (ja) プログラム変更管理装置、プログラム変更管理プログラムおよびプログラム変更管理方法
JP4565585B2 (ja) データ処理装置、データ処理方法、記録媒体
JP2009129327A (ja) プログラム開発支援装置、プログラム開発支援方法およびプログラム開発支援プログラム
JP4678770B2 (ja) シーケンス図作成方法及びその装置
CN113672465A (zh) 进程名生成进程日志系统的方法、系统、介质、终端、无人机
JP4475933B2 (ja) 流れ図作成プログラム及び流れ図作成方法
EP3136240A1 (en) Virtual computer system, method and program
CN113656301A (zh) 一种接口测试方法、装置、设备及存储介质
JP2022093835A (ja) 情報処理装置及びプログラム
JP7310706B2 (ja) エージェント制御装置、エージェント制御方法、及びエージェント制御プログラム
JP2007219843A (ja) ノード管理装置及びノード管理方法及びプログラム
JP4904712B2 (ja) プログラム自動生成装置、方法、およびプログラム
CN117422059B (zh) 一种基于LibreOffice文档的内容组合替换方法和系统
JP2007079703A (ja) ソフトウェア製品インストールシステムおよび方法ならびに実行端末およびそのプログラム
JPH11288380A (ja) ソフトウェア開発ツール間インターフェースの評価装置および評価用プログラムを記録した記録媒体
CN115770390A (zh) 模型骨骼修复方法、装置、存储介质与电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090918

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120511

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: 20120612

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120625

R150 Certificate of patent or registration of utility model

Ref document number: 5040320

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250