説明

プログラム開発支援装置

【課題】状態遷移表からソースコード生成後に状態遷移表を変更すると生じるソースコードと状態遷移表との不整合の内容を状態遷移表上に表示することができるプログラム開発支援装置を得る。
【解決手段】状態遷移表編集手段111は、入力装置110を使って状態遷移表を編集し、次に、ソースコード生成手段140によって状態遷移表からソースコードが生成され、この生成されたソースコードを記憶装置130に書き込んでおき、状態遷移表が変更されたとき、記憶装置130からソースコードを読み出し、この読み出されたソースコードと変更された状態遷移表とをソースコード照合手段150によって照合し、この照合結果を状態遷移表上に表示するようにした。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、状態遷移表とソースコードの照合が可能で、かつ相違の確認が容易なプログラム開発支援装置に関するものである。
【背景技術】
【0002】
各種装置の制御を行うプログラムとして、状態とイベントの組合せにより処理を選択する状態遷移表が広く一般に用いられており、状態遷移表からソースコードを生成することが可能である。
状態遷移表からソースコードを生成した場合、生成後に状態遷移表を変更すると生成済のソースコードとの不整合が生じる。変更後の状態遷移表と既存ソースコードの比較・照合によって、不整合の内容を抽出する方法がある。このような例として、特許文献1に記載された技術がある。
【0003】
【特許文献1】特開2004−94837号公報(第3〜9頁、図1)
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1に示される従来の例では、ソースコード上には不整合の内容が示される(状態遷移表の更新により新たに追加されたコールバック関数すなわちトランザクションのスケルトンが自動的に生成される)が、元の状態遷移表上には何も示されない。このため、不整合を解決しようとする者が、状態遷移表の変更者本人でない等の場合、変更の意図がわかり難く、作業効率が良くないという問題点があった。
【0005】
この発明は、上記のような課題を解決するためになされたものであり、状態遷移表からソースコード生成後に状態遷移表を変更すると生じるソースコードと状態遷移表との不整合の内容を状態遷移表上に表示することができるプログラム開発支援装置を得ることを目的としている。
【課題を解決するための手段】
【0006】
この発明に係わるプログラム開発支援装置においては、状態遷移表を編集する状態遷移表編集手段、この状態遷移表編集手段によって編集された状態遷移表からソースコードを生成するソースコード生成手段、このソースコード生成手段により生成されたソースコードを記憶装置に書き込むソースコード書込手段、記憶装置からソースコードを読み出すソースコード読出手段、このソースコード読出手段によって読み出されたソースコードと編集された状態遷移表とを照合するソースコード照合手段、及びこのソースコード照合手段による照合の結果を状態遷移表上に表示する状態遷移表表示手段を備えたものである。
【発明の効果】
【0007】
この発明は、以上説明したように、状態遷移表を編集する状態遷移表編集手段、この状態遷移表編集手段によって編集された状態遷移表からソースコードを生成するソースコード生成手段、このソースコード生成手段により生成されたソースコードを記憶装置に書き込むソースコード書込手段、記憶装置からソースコードを読み出すソースコード読出手段、このソースコード読出手段によって読み出されたソースコードと編集された状態遷移表とを照合するソースコード照合手段、及びこのソースコード照合手段による照合の結果を状態遷移表上に表示する状態遷移表表示手段を備えたので、状態遷移表が変更された場合に、不整合部の解析・修正が容易になるという効果がある。
【発明を実施するための最良の形態】
【0008】
実施の形態1.
図1は、この発明の実施の形態1によるプログラム開発支援装置を示す構成図である。
図1において、プログラム開発支援装置は、入力装置110、表示装置120、記憶装置130、演算処理部100から構成される。
入力装置110は、プログラム開発作業者の操作を入力する装置である。表示装置120は、プログラム開発作業者へ本プログラム開発支援装置の作業状況を出力する装置である。記憶装置130には、プログラム開発作業者が目的とする状態遷移表及びソースコードを、それぞれ状態遷移表ファイル131およびソースコードファイル132として格納する。
【0009】
演算処理部100は、制御部101、状態遷移表編集手段111、ソースコード生成指示手段112、ソースコード照合指示手段113、状態遷移表表示手段121、ソースコード表示手段122、状態遷移表書込手段133、状態遷移表読出手段134、ソースコード書込手段135、ソースコード読出手段136、ソースコード生成手段140、ソースコード照合手段150から構成される。
制御部101は、プログラム開発支援装置全体の制御を行う。制御部101と各手段とのデータの流れは、次のとおりである。
制御部101は、状態遷移表データを状態遷移表編集手段111へ送り、状態遷移表編集手段111から編集された状態遷移表データを受ける。また、制御部101は、ソースコード生成指示手段112からソースコード生成指示を受けるとともに、ソースコード照合指示手段113からソースコード照合指示を受ける。状態遷移表表示手段121へは、状態遷移表データと照合結果を送り、ソースコード表示手段122へは、ソースコードを送る。
また、制御部101は、状態遷移表書込手段133へ状態遷移表データを送り、状態遷移表読出手段134から状態遷移表データを受けるとともに、制御部101は、ソースコード書込手段135へソースコードを送り、ソースコード読出手段136からソースコードを受ける。
さらに、制御部101は、ソースコード生成手段140へ状態遷移表データを送り、ソースコード生成手段140から生成されたソースコードを受ける。
また、制御部101は、ソースコード照合手段150へ状態遷移表データとソースコードを送り、ソースコード照合手段150から照合結果を受ける。
【0010】
状態遷移表編集手段111は、制御部101から状態遷移表データを受ける。また、入力装置110から操作を受けて状態遷移表データを編集し、それを制御部101へ送る。
ソースコード生成指示手段112は、入力装置110から操作を受けて、制御部101へソースコード生成指示を送る。
ソースコード照合指示手段113は、入力装置110から操作を受けて、制御部101へソースコード照合指示を送る。
状態遷移表表示手段121は、制御部101から状態遷移表データと照合結果を受けて状態遷移表画面を合成し、表示装置120へ状態遷移表画面を送る。
【0011】
ソースコード表示手段122は、制御部101からソースコードを受けて表示装置120へソースコード画面を送る。
状態遷移表書込手段133は、制御部101から状態遷移表データを受けて、記憶装置130へ状態遷移表131を格納する。
状態遷移表読出手段134は、記憶装置130から状態遷移表131を読み出し、制御部101へ状態遷移表データを送る。
ソースコード書込手段135は、制御部101からソースコードを受けて記憶装置130へソースコードファイルを送る。
ソースコード読出手段136は、記憶装置130からソースコードファイルを読み出し、制御部101へソースコードを送る。
ソースコード生成手段140は、制御部101から状態遷移表データを受けてソースコードを生成し、制御部101へソースコードを送る。
ソースコード照合手段150は、制御部101から状態遷移表データとソースコードを受けて相互の処理内容を照合し、その照合結果を制御部101へ送る。
【0012】
図2は、この発明の実施の形態1によるプログラム開発支援装置の制御部の処理を示すフローチャートである。
図3は、この発明の実施の形態1によるプログラム開発支援装置の状態遷移表編集手段の処理を示すフローチャートである。
【0013】
図4は、この発明の実施の形態1によるプログラム開発支援装置の状態遷移表表示手段の処理を示すフローチャートである。
図5は、この発明の実施の形態1によるプログラム開発支援装置のソースコード生成手段の処理を示すフローチャートである。
【0014】
図6は、この発明の実施の形態1によるプログラム開発支援装置のソースコード照合手段の処理を示すフローチャートである。
【0015】
図7は、この発明の実施の形態1によるプログラム開発支援装置の状態遷移表データの構造を示す図である。
図7において、状態遷移表データ300は、状態がM個でイベントがN個の場合を示す。各状態およびイベントの交点となるセル310毎に、関数名311と遷移先状態(1からM)312を格納する。また、関数名311および各遷移先状態(1からM)312に対してソースコードとの照合結果313と不整合理由314を格納する。
関数名311の内容は、文字列で、処理が無いセルの場合はヌルとする。また、他のセルから参照する場合は、その関数名の頭に特定の文字を付加して区別する。
【0016】
図8は、この発明の実施の形態1によるプログラム開発支援装置のソースコードの構造を示す図である。
図8において、ソースコード400は、1つの関数の場合を示す。状態遷移表データ300から生成する際は、関数名311の内容を用いて関数スケルトン401を作成する。また、遷移先状態(1からM)312の値を用いて状態変数に遷移先状態を代入する処理402を、ソースコード400の関数スケルトン401内に作成する。
【0017】
図9は、この発明の実施の形態1によるプログラム開発支援装置の状態遷移表画面の構造を示す図である。
図9において、状態遷移表画面500は、状態がM個でイベントがN個の場合を示す。各状態およびイベントの交点となるセル501毎に、関数名と遷移先状態(1からM)を設定する。また、関数名または各遷移先状態(1からM)について、ソースコードと不整合の場合は、その部位に着色するとともに不整合理由コメント502、503を設定する。
【0018】
図10は、この発明の実施の形態1によるプログラム開発支援装置の実行画面例を示す図である。
図10において、実行画面は、状態遷移表入力兼ソースコード照合結果表示エリアであり、状態遷移表600が表示される状態遷移表編集ウインドウ、状態遷移表からソースコードの生成を指示するソースコード生成指示ボタン610、ソースコードと状態遷移表との照合を指示するソースコード照合指示ボタン620、ソースコード630が表示されるソースコード表示ウインドウにより構成されている。
【0019】
図11は、この発明の実施の形態1によるプログラム開発支援装置の状態遷移表を変更した場合の表示を示す図である。
図11において、状態遷移表600の状態ZでイベントAにおける処理名を「Tr4」から「Tr5」に変更した後に、ソースコード630との照合を行った場合の状態遷移表600bを示す。
ソースコード630には、処理名「Tr5」に対応する関数名が存在しないので、状態遷移表600bにおける「Tr5」を強調して不整合であることを明示するとともに、その理由をコメント700表示する。
【0020】
図12は、この発明の実施の形態1によるプログラム開発支援装置の変更されたソースコードと状態遷移表との照合を示す図である。
図12において、ソースコード630の関数Tr3における状態変数への代入値を01から02に変更したソースコード630bと、状態遷移表600との照合を行った場合の状態遷移表600cを示す。
状態遷移表600において、処理名「Tr3」の遷移先状態が不一致であるので、状態遷移表600cにおける「Tr3」の下の「→01」を強調して不整合であることを明示するとともに、その理由をコメント800表示する。
【0021】
次に、動作について説明する。
まず、制御部101の処理について、図2により説明する。
プログラムの開始後、初期設定(S000)がプログラムにより実行される。初期設定(S000)では、状態遷移表読出手段134より状態遷移表データを読出して状態遷移表表示手段121および状態遷移表編集手段111に送出する。また、ソースコード読出手段136よりソースコードを読出してソースコード表示手段122に送出する。これにより、表示装置120に状態遷移表とソースコードの画面が表示され、状態遷移表が編集可能な状態となる。
【0022】
次に、指示待ち(S001)を行い、入力装置110より入力された指示内容(S002)により処理を分岐する。
指示内容が、状態遷移表編集手段111で指示された状態遷移表データの場合は、状態遷移表表示(S010)を行ってから、再び指示待ち(S001)に戻る。
状態遷移表表示(S010)では、当該状態遷移表データを状態遷移表表示手段121に送ることにより、表示装置120上に状態遷移表の内容を表示する。
指示内容が、状態遷移表編集手段111で指示された状態遷移表保存指示の場合は、状態遷移表書込(S011)を行ってから、再び指示待ち(S001)に戻る。
状態遷移表書込(S011)では、当該状態遷移表データを状態遷移表書込手段133に送ることにより、記憶装置130上に状態遷移表131を格納する。
指示内容が、ソースコード生成指示手段112で指示されたソースコード生成指示の場合は、先ずソースコード生成(S020)を行い、次にソースコード表示(S021)を行い、次にソースコード書込(S022)を行ってから、再び指示待ち(S001)に戻る。
ソースコード生成(S020)では、表示装置120で表示中すなわち状態遷移表表示手段121に送られた状態遷移表データをソースコード生成手段140に送ることにより、ソースコードを生成する。
ソースコード表示(S021)では、当該ソースコードをソースコード表示手段122に送ることにより、表示装置120上にソースコードの内容を表示する。
ソースコード書込(S022)では、当該ソースコードをソースコード書込手段135に送ることにより、記憶装置130上にソースコード132を格納する。
【0023】
指示内容が、ソースコード照合指示手段113で指示されたソースコード照合指示の場合は、先ずソースコード読出(S030)を行い、次にソースコード表示(S031)を行い、次にソースコード照合(S032)を行い、次に状態遷移表表示(S033)を行ってから、再び指示待ち(S001)に戻る。
ソースコード読出(S030)では、ソースコード読出手段136により記憶装置130上のソースコード132を読み出す。
ソースコード表示(S031)では、当該ソースコードをソースコード表示手段122に送ることにより、表示装置120上にソースコードの内容を表示する。
ソースコード照合(S032)では、当該ソースコードと表示装置120で表示中すなわち状態遷移表表示手段121に送られた状態遷移表データをソースコード照合手段150に送ることにより、照合結果313と不整合理由314が更新された状態遷移表データを受ける。
状態遷移表表示(S033)では、当該状態遷移表データを状態遷移表表示手段121に送ることにより、表示装置120上にソースコードとの照合結果および不整合理由が付いた状態遷移表の内容を表示する。
【0024】
次に、状態遷移表編集手段111の処理について図3により説明する。
プログラムの開始後、入力待ち(S101)を行い、入力装置110から入力された指示内容によって分岐処理(S102)で、処理を状態遷移表データ保存と状態遷移表編集の2つに分ける。
指示内容が状態遷移表データ保存の場合は、状態遷移表保存指示(S110)を行ってから、再び入力待ち(S101)に戻る。
状態遷移表保存指示(S110)では、状態遷移表保存指示を制御部101へ送る。
指示内容が、状態遷移表データ編集の場合は、状態遷移表データ更新(S120)を行ってから、再び入力待ち(S101)に戻る。
状態遷移表データ更新(S120)では、更新対象セルが処理なしの場合には、状態遷移表データ300上のセルの関数名311をヌルとする(図7参照)。また、更新対象セルの関数名311が他のセルと重複する場合には、更新対象セルの関数名311の頭に特定の文字を付加する。これにより、更新対象セルが他のセルの関数名311を参照していることを示す。更新が済んだ状態遷移表データを制御部101へ送る。
【0025】
次に、状態遷移表表示手段121の処理について図4により説明する。
プログラムの開始後、状態遷移表枠作成(S200)を行う。
状態遷移表枠作成(S200)では、状態遷移表データ300をもとに状態遷移表画面500の枠を作成する(図9参照)。
状態遷移表データ300の全セルについて、セルごとに、先ず関数名・遷移先状態記入(S220)を行い、次に照合エラー記入(S221)を行ってから、全セルが終了(S202)したら、最後に状態遷移表画面送出(S210)を行って終了する。
状態遷移表画面送出(S210)では、状態遷移表データを画面データに変換して表示装置120に送る。
関数名・遷移先状態記入(S220)では、関数名311と遷移先状態(1からM)312の内容を状態遷移表画面500の枠に記入する。
照合エラー記入(S221)では、照合結果(1からM)313がエラーの場合には、その部位501に着色するとともに、不整合理由(1からM)314の内容をコメント502または503追記する。
【0026】
次いで、ソースコード生成手段140の処理について図5により説明する。
プログラムの開始後、状態遷移表データ300上に存在する全関数名について、それぞれ、先ず関数スケルトン作成(S320)を行い、次に状態更新処理作成(S321)を行ってから、全関数名について終了(S302)したら、最後にソースコード送出(S310)を行って終了する。
ソースコード送出(S310)では、ソースコードを制御部101に送る。
関数スケルトン作成(S320)では、関数名311を用いて関数スケルトン401をソースコード400に作成する(図8参照)。
状態更新処理作成(S321)では、遷移先状態(1からM)312を用いて状態変数に遷移先状態を代入する処理402をソースコード400の関数スケルトン401内に作成する。
【0027】
次に、ソースコード照合手段150の処理について図6により説明する。
プログラムの開始後、照合エラークリア(S400)を行う。
照合エラークリア(S400)では、状態遷移表データ300上の照合結果(1からM)と不整合理由(1からM)314を全てクリア(不整合なしの状態に)する。
状態遷移表データ上に存在する全関数名について、それぞれ以下を実施する。まず、ソースコードに一つの関数名が存在するかどうかをチェック(S420)し、存在しなければ照合エラー登録(S422)を行う。存在すれば、さらにその関数内に遷移先状態の代入行が存在するかどうかをチェック(S421)し、存在しなければ、照合エラー登録(S422)を行う。全関数名について終了(S402)したら、最後に照合結果送出(S410)を行って終了する。
照合エラー登録(S422)では、状態遷移表データ300上のエラーとなったセルの照合結果(1からM)には不整合ありを、不整合理由(1からM)314には「処理名が存在しない」か「遷移先状態が存在しない」を設定する。
【0028】
次に、状態遷移表からのソースコードの生成と、状態遷移表とソースコードとの照合について、図10〜図12に示す例によって説明する。
図10は、このプログラム開発支援装置の実行画面例であり、状態遷移表600、ソースコード生成指示ボタン610、ソースコード照合指示ボタン620、ソースコード630により構成されている。
状態遷移表600に対して、設計者が各状態およびイベントに対する処理名と遷移先状態を入力装置110に入力することで、目的とする状態遷移表の編集を行う。処理名と遷移先状態を入力完了した後、ソースコード生成指示ボタン610を押すことにより、状態遷移表に入力した内容からソースコード生成手段140は、目的とするソースコードを自動的に生成する。
なお、状態遷移表600における「Tr1」「Tr2」「Tr3」「Tr4」は、各状態およびイベントに対する処理名であり、「→01」「→02」「→03」は遷移先状態を示す。
また、状態遷移表600の処理名と遷移先状態は、それぞれソースコードの関数名と状態変数代入文に対応付けられる。
生成されたソースコード630は、ソースコード表示エリアに表示されると同時に、記憶装置130に保存され、設計者が編集可能となる。
【0029】
ソースコードの生成後に、状態遷移表もしくはソースコードを設計者が変更すると、状態遷移表とソースコードの内容が不整合となる可能性がある。
この場合、ソースコード照合指示ボタン620を押すと、ソースコード照合指示手段113(入力装置110)は、制御部101を介してソースコード照合手段150に照合を指示し、ソースコード照合手段150は状態遷移表600とソースコード630の内容を照合し、不整合となっている場合には制御部101を介して、表示装置120上に表示されている状態遷移表600の該当する部分のセルの色を変化させ、その旨を表示する。
また、不整合を検出した場合は、その理由をコメントとして状態遷移表600に表示することで、不整合部分が容易に特定可能となる。
【0030】
図11では、状態遷移表600の状態ZでイベントAにおける処理名を「Tr4」から「Tr5」に変更した後に、ソースコード630との照合を行った場合の状態遷移表600bを示している。
ソースコード630には、処理名「Tr5」に対応する関数名が存在しないので、状態遷移表600bにおける「Tr5」を強調して不整合であることを明示するとともに、その理由をコメント700表示する。
【0031】
図12には、ソースコード630の関数Tr3における状態変数への代入値を01から02に変更したソースコード630bと、状態遷移表600との照合を行った場合の状態遷移表600cを示している。
状態遷移表600において、処理名「Tr3」の遷移先状態が不一致であるので、状態遷移表600cにおける「Tr3」の下の「→01」を強調して不整合であることを明示するとともに、その理由をコメント800表示する。
【0032】
実施の形態1によれば、状態遷移表もしくはソースコードを設計者が変更した場合、状態遷移表とソースコードを照合し、不整合が発生した場合に不整合を表示する手段を設けたので、プログラム開発における不整合の発生を防ぐとともに、不整合部の解析・修正も容易となる効果がある。
【図面の簡単な説明】
【0033】
【図1】この発明の実施の形態1によるプログラム開発支援装置を示す構成図である。
【図2】この発明の実施の形態1によるプログラム開発支援装置の制御部の処理を示すフローチャートである。
【図3】この発明の実施の形態1によるプログラム開発支援装置の状態遷移表編集手段の処理を示すフローチャートである。
【図4】この発明の実施の形態1によるプログラム開発支援装置の状態遷移表表示手段の処理を示すフローチャートである。
【図5】この発明の実施の形態1によるプログラム開発支援装置のソースコード生成手段の処理を示すフローチャートである。
【図6】この発明の実施の形態1によるプログラム開発支援装置のソースコード照合手段の処理を示すフローチャートである。
【図7】この発明の実施の形態1によるプログラム開発支援装置の状態遷移表データの構造を示す図である。
【図8】この発明の実施の形態1によるプログラム開発支援装置のソースコードの構造を示す図である。
【図9】この発明の実施の形態1によるプログラム開発支援装置の状態遷移表画面の構造を示す図である。
【図10】この発明の実施の形態1によるプログラム開発支援装置の実行画面例を示す図である。
【図11】この発明の実施の形態1によるプログラム開発支援装置の状態遷移表を変更した場合の表示を示す図である。
【図12】この発明の実施の形態1によるプログラム開発支援装置の変更されたソースコードと状態遷移表との照合を示す図である。
【符号の説明】
【0034】
100 演算処理部
101 制御部
110 入力装置
111 状態遷移表編集手段
112 ソースコード生成指示手段
113 ソースコード照合指示手段
120 表示装置
121 状態遷移表表示手段
122 ソースコード表示手段
130 記憶装置
131 状態遷移表ファイル
132 ソースコードファイル
133 状態遷移表書込手段
134 状態遷移表読出手段
135 ソースコード書込手段
136 ソースコード読出手段
140 ソースコード生成手段
150 ソースコード照合手段
300 状態遷移表データ
400 ソースコード
500 状態遷移表画面
600 状態遷移表
610 ソースコード生成指示ボタン
620 ソースコード照合指示ボタン
630 ソースコード
700 照合エラー理由コメント(処理名が存在しない場合)
800 照合エラー理由コメント(遷移先状態が不一致の場合)

【特許請求の範囲】
【請求項1】
状態遷移表を編集する状態遷移表編集手段、この状態遷移表編集手段によって編集された状態遷移表からソースコードを生成するソースコード生成手段、このソースコード生成手段により生成されたソースコードを記憶装置に書き込むソースコード書込手段、上記記憶装置から上記ソースコードを読み出すソースコード読出手段、このソースコード読出手段によって読み出された上記ソースコードと上記編集された状態遷移表とを照合するソースコード照合手段、及びこのソースコード照合手段による照合の結果を上記状態遷移表上に表示する状態遷移表表示手段を備えたことを特徴とするプログラム開発支援装置。
【請求項2】
上記状態遷移表表示手段は、上記ソースコード照合手段による照合の結果、上記ソースコードと状態遷移表との間に相違がある場合には、上記状態遷移表に上記相違についてのコメントを表示することを特徴とする請求項1記載のプログラム開発支援装置。
【請求項3】
上記ソースコード照合手段は、上記状態遷移表編集手段により上記状態遷移表が編集された場合に、自動的に上記状態遷移表と上記ソースコードとの照合を行うことを特徴とする請求項1または請求項2記載のプログラム開発支援装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate