説明

プログラム開発支援装置

【課題】関数仕様表に入力した情報を用いて下位関数の入出力条件のチェックを行えるとともに、下位関数のスタブ関数を自動的に生成することができるプログラム開発支援装置を得る。
【解決手段】入出力装置1を介する入力にしたがって、プログラムの関数仕様を編集する関数仕様編集部4は、関数仕様のうちの呼出関数入出力条件については、呼出関数入出力条件編集部5に編集させ、この呼出関数入出力条件編集部5により編集された呼出関数入出力条件は、呼出関数インタフェース検査部6により、呼出関数の関数仕様のインタフェース情報と照合し、結果を呼出関数入出力条件編集部5に返して不整合の場合には不整合箇所を表示させ、整合された呼出関数入出力条件からは、スタブ関数生成部7により、スタブ関数を生成するようにした。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、関数仕様表にプログラムの関数の入出力条件を入力し、下位関数を自動生成して、プログラムの開発効率を向上させるプログラム開発支援装置に関するものである。
【背景技術】
【0002】
従来の開発支援装置である特許文献1には、ソースプログラムから情報を抽出して生成することで、個々の関数と下位関数に対応したスタブ関数を自動生成することを可能にしたものが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−140263号公報(第4〜12頁、図1)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1のものでは、元にしたソースプログラムに誤りがある場合、自動生成されたスタブ関数にも誤りが伝播し、そのまま試験を行ってしまうと誤りを発見できないという問題がある。
また、特許文献1のものでは、個々のスタブ関数の任意の入出力値を指定して試験することは可能であるが、値の設定方法と試験対象関数との関係が分かりにくいという問題もあった。
この改善策として、特定のグローバル変数に値を設定することで、インタフェース部分の値を固定として試験の実施を可能としているが、固定値を設定するグローバル変数と呼び出し側、呼び出される側それぞれの関数インタフェース部分の関係が分かりにくかった。これらの比較は、操作者が確認する必要があり、見落としが多く発生していた。
【0005】
この発明は、上記のような課題を解決するためになされたものであり、関数仕様表に入力した情報を用いて下位関数の入出力条件のチェックを行えるとともに、下位関数のスタブ関数を自動的に生成することができるプログラム開発支援装置を得ることを目的としている。
【課題を解決するための手段】
【0006】
この発明に係わるプログラム開発支援装置においては、
入出力装置に表示された画面に入力することにより、プログラムの関数の関数仕様を作成するプログラム開発支援装置であって、
プログラムの関数の関数仕様を入力によって編集する関数仕様編集手段、
この関数仕様編集手段によって編集された関数仕様を格納する関数仕様記憶部、
関数仕様は、下位関数を呼び出すときの入出力条件を含み、
入出力条件を入力によって編集し、関数仕様編集手段に送る入出力条件編集手段、
この入出力条件編集手段によって編集された入出力条件と、下位関数の関数仕様に入力された入出力条件とを照合して、整合性をチェックし、チェック結果を入出力条件編集手段に送る入出力条件検査手段、
編集済みのプログラムの関数の関数仕様の入出力条件から下位関数のスタブ関数を生成するスタブ関数生成手段、
このスタブ関数生成手段によって生成されたスタブ関数を格納するスタブ関数記憶部を備えたものである。
【発明の効果】
【0007】
この発明は、以上説明したように、入出力装置に表示された画面に入力することにより、プログラムの関数の関数仕様を作成するプログラム開発支援装置であって、
プログラムの関数の関数仕様を入力によって編集する関数仕様編集手段、
この関数仕様編集手段によって編集された関数仕様を格納する関数仕様記憶部、
関数仕様は、下位関数を呼び出すときの入出力条件を含み、
入出力条件を入力によって編集し、関数仕様編集手段に送る入出力条件編集手段、
この入出力条件編集手段によって編集された入出力条件と、下位関数の関数仕様に入力された入出力条件とを照合して、整合性をチェックし、チェック結果を入出力条件編集手段に送る入出力条件検査手段、
編集済みのプログラムの関数の関数仕様の入出力条件から下位関数のスタブ関数を生成するスタブ関数生成手段、
このスタブ関数生成手段によって生成されたスタブ関数を格納するスタブ関数記憶部を備えたので、下位関数の入出力条件のチェックを行えるとともに、下位関数のスタブ関数を自動的に生成することができる。
【図面の簡単な説明】
【0008】
【図1】この発明の実施の形態1によるプログラム開発支援装置を示す構成図である。
【図2】この発明の実施の形態1によるプログラム開発支援装置のシステム制御部の処理を示すフローチャートである。
【図3】この発明の実施の形態1によるプログラム開発支援装置の関数仕様編集部の処理を示すフローチャートである。
【図4】この発明の実施の形態1によるプログラム開発支援装置の呼出関数入出力条件編集部の処理を示すフローチャートである。
【図5】この発明の実施の形態1によるプログラム開発支援装置の呼出関数I/F検査部の処理を示すフローチャートである。
【図6】この発明の実施の形態1によるプログラム開発支援装置のスタブ関数生成部の処理を示すフローチャートである。
【図7】この発明の実施の形態1によるプログラム開発支援装置の関数仕様表の例を示す図である。
【発明を実施するための形態】
【0009】
実施の形態1.
図1は、この発明の実施の形態1によるプログラム開発支援装置を示す構成図である。
図1において、プログラム開発支援装置は、コンピュータによって形成され、入出力装置1、関数仕様記憶部2、スタブ関数記憶部3、関数仕様編集部4(関数仕様編集手段)、呼出関数入出力条件編集部5(入出力条件編集手段)、呼出関数I/F(インタフェース)検査部6(入出力条件検査手段)、スタブ関数生成部7(スタブ関数生成手段)、システム制御部8から構成される。関数仕様記憶部2とスタブ関数記憶部3は、コンピュータの記憶装置に設けられている。
入出力装置1は、プログラム開発作業者の操作を入力し、処理結果を出力する装置である。関数仕様記憶部2は、プログラム開発作業者が、作成対象とするプログラムの関数についての関数仕様を格納する。スタブ関数記憶部3は、プログラム開発作業者が、作成対象の関数(プログラムの関数)によって呼び出される下位関数のスタブ関数を格納する。ここで、スタブ関数とは、試験時に試験対象の関数から呼び出される下位関数を擬似する関数であり、試験対象の関数からの呼び出しに対して、試験対象の関数の実行を継続できるように、戻り値とグローバル変数の値を設定する。
【0010】
関数仕様編集部4は、システム制御部8の指示により、入出力装置1からの入力に従い、プログラム開発作業者が、作成対象の関数について関数仕様を編集し、その結果を入出力装置1へ送る。編集した関数仕様は、関数仕様記憶部2に格納され、関数仕様編集部4によって関数仕様記憶部2から読み出されることにより、再編集される。
関数仕様の内、特に、作成対象の関数によって呼び出される下位関数である呼出関数の入出力条件である呼出関数入出力条件については、呼出関数入出力条件編集部5から受けた内容で更新を行う。
呼出関数入出力条件編集部5は、システム制御部8の指示により、関数仕様編集部4から受けた呼出関数入出力条件について、入出力装置1からの入力に従って編集し、その結果を入出力装置1へ送る。編集した呼出関数入出力条件は、関数仕様編集部4へ送るとともに、呼出関数I/F検査部6へ送る。また、後述する呼出関数I/F検査部6から不整合ありの指摘を受けた場合は、作成対象の関数の関数仕様の呼出関数入出力条件の該当部位に着色するとともに、不整合理由を付けて入出力装置1へ送る。
呼出関数I/F検査部6は、システム制御部8の指示により、関数仕様編集部4から受けた呼出関数の関数仕様にあるインタフェース情報と、呼出関数入出力条件編集部5から受けた呼出関数入出力条件とを照合し、不整合があれば、該当部位と不整合の理由を呼出関数入出力条件編集部5へ送る。
スタブ関数生成部7は、システム制御部8の指示により、関数仕様編集部4から受けた呼出関数入出力条件を変換してスタブ関数を生成し、スタブ関数記憶部3に格納する。
【0011】
システム制御部8は、プログラム開発支援装置全体の制御を行う。システム制御部8と各部のデータの流れは、次のとおりである。
システム制御部8は、入出力装置1からの入力を受けて、関数仕様編集部4に関数仕様の編集を指示する。
システム制御部8は、入出力装置1からの入力を受けて、呼出関数入出力条件編集部5に呼出関数入出力条件の編集を指示する。
システム制御部8は、入出力装置1からの入力を受けて、スタブ関数生成部7にスタブ関数の生成を指示する。
システム制御部8は、入出力装置1からの入力を受けて、呼出関数I/F検査部6に呼出関数入出力条件の検査を指示する。
【0012】
図2は、この発明の実施の形態1によるプログラム開発支援装置のシステム制御部の処理を示すフローチャートである。
図3は、この発明の実施の形態1によるプログラム開発支援装置の関数仕様編集部の処理を示すフローチャートである。
【0013】
図4は、この発明の実施の形態1によるプログラム開発支援装置の呼出関数入出力条件編集部の処理を示すフローチャートである。
図5は、この発明の実施の形態1によるプログラム開発支援装置の呼出関数I/F検査部の処理を示すフローチャートである。
【0014】
図6は、この発明の実施の形態1によるプログラム開発支援装置のスタブ関数生成部の処理を示すフローチャートである。
【0015】
図7は、この発明の実施の形態1によるプログラム開発支援装置の関数仕様表の例を示す図である。
図7において、関数仕様700、710(関数仕様表)は、プログラム開発作業者が、作成対象とする関数の関数仕様を編集するための編集画面であり、入力することによって編集される。関数仕様710は、関数仕様700から呼び出される呼出関数(下位関数)の関数仕様である。
関数仕様700は、呼出関数の関数仕様のインタフェース情報との間に不整合がない場合の入出力条件701と、呼出関数のインタフェース情報との間に不整合がある場合の入出力条件702と、呼出関数との間の入出力条件を定義する項目を示す呼出関数入出力条件703と、呼出関数入出力条件703に、呼出関数との間に不整合がある場合にその不整合の箇所を示す該当箇所704と、不整合の理由をコメントしたコメント表示705と、入出力条件701における呼出関数入出力条件の具体例である呼出関数入出力条件706とを有している。
関数仕様710は、インタフェース711を有し、インタフェース711内に関数callの戻り値712を有している。この戻り値712はインタフェース仕様上0または1になっている。
スタブ関数720は、呼出関数入出力条件706から生成したスタブ関数の内容を示している。
【0016】
次に、動作について説明する。
本発明は、例えば、図7に示すような関数仕様700、710(関数仕様表)を、プログラム開発作業者が、入力を行って、関数仕様を編集する。
この場合に、作成対象の関数仕様の入力時に、作成対象の関数から呼び出される下位関数の入出力条件も同時に入力可能とする。つまり、関数仕様には下位関数の入出力条件を含んでいる。これにより、入力された作成対象の関数の関数仕様にある入出力条件を、下位関数の関数仕様のインタフェース情報を元に、チェックすることができる。
また、試験対象の関数と下位関数との間の入出力を規定する入出力条件として、試験対象の関数の関数仕様に含まれる呼出関数入出力条件を入力する際には、その一部を下位関数の関数仕様のインタフェース情報を抽出することにより、自動入力することが可能となっている。
さらに、入力された呼出関数入出力条件に不整合部分があった場合は、その旨をユーザに通知する。
また、スタブ関数生成部7により、任意のスタブ関数を自動生成することが可能であるが、任意の関数を指定することで、該当する関数を自動生成しないようにすることもできる。
以下、詳細に説明する。
【0017】
まず、システム制御部8の処理について、図2により説明する。
プログラムの開始後、指示待ち(ステップ201)を行い、入出力装置1より入力された指示内容(ステップ202)により処理を分岐する。
指示内容が、関数仕様編集の場合は、関数仕様編集部4(ステップ210)の処理を行ってから、再び指示待ち(ステップ201)に戻る。
指示内容が、呼出関数入出力条件編集の場合は、呼出関数入出力条件編集部5(ステップ220)の処理を行ってから、再び指示待ち(ステップ201)に戻る。
指示内容が、スタブ関数生成の場合は、スタブ関数生成部7(ステップ230)の処理を行ってから、再び指示待ち(ステップ201)に戻る。
指示内容が、呼出関数入出力条件検査の場合は、呼出関数I/F検査部6(ステップ240)の処理を行ってから、再び指示待ち(ステップ201)に戻る。
【0018】
次に、関数仕様編集部4の処理について、図3により説明する。
プログラムの開始後、作成対象の関数についての関数仕様読出(ステップ300)を行う。
関数仕様読出(ステップ300)では、関数仕様記憶部2より該当する関数仕様を読み出す。この読み出された関数仕様が編集可能となる。
次に、入力待ち(ステップ301)を行い、入出力装置1より入力された入力内容(ステップ302)により処理を分岐する。
入力内容が、関数仕様の場合は、関数仕様更新(ステップ320)を行ってから、再び入力待ち(ステップ301)に戻る。
関数仕様更新(ステップ320)では、該当する関数仕様のデータを上書きして更新する編集作業を行う。
入力内容が、終了の場合は、関数仕様書込(ステップ310)を行ってから終了する。
関数仕様書込(ステップ310)では、関数仕様記憶部2に編集中の関数仕様を書き込む。これにより、編集された関数仕様が保存される。
【0019】
次に、呼出関数入出力条件編集部5の処理について、図4により説明する。
プログラムの開始後、入力待ち(ステップ401)を行い、入出力装置1より入力された入力内容(ステップ402)により処理を分岐する。
入力内容が、呼出関数入出力条件の場合は、新たな条件追加(ステップ403)でかつ指示された呼出関数の関数仕様が存在しない場合(ステップ404)は、編集不可出力(ステップ421)を行い、再び入力待ち(ステップ401)に戻る。その他の場合は、呼出関数入出力条件更新(ステップ420)を行い、再び入力待ち(ステップ401)に戻る。
呼出関数入出力条件更新(ステップ420)では、該当する呼出関数入出力条件のデータを上書き更新する編集作業を行う。
編集不可出力(ステップ421)では、入出力装置1へ編集不可であるメッセージを出力する。
入力内容が、照合結果の場合は、照合結果反映(ステップ430)を行ってから、再び入力待ち(ステップ401)に戻る。
照合結果反映(ステップ430)では、先ず呼出関数入出力条件の着色解除および理由コメント削除を行い、次に照合結果が不整合ありの場合は、呼出関数入出力条件の該当部位に着色するとともに理由コメントを付加する。
【0020】
次に、呼出関数I/F検査部6の処理について、図5により説明する。
プログラムの開始後、照合結果クリア(ステップ500)を行う。
照合結果クリア(ステップ500)では、照合結果に不整合なしを設定する。
次に、指示された呼出関数入出力条件について、指示された呼出関数の関数仕様のインタフェース711の情報と、呼出関数入出力条件とを照合(ステップ502)し、不整合がある場合は、照合エラー登録(ステップ520)を行ってから、照合結果送出(ステップ510)を行って終了する。
照合エラー登録(ステップ520)では、照合結果に不整合あり、該当部位、理由コメントを設定する。
照合結果送出(ステップ510)では、照合結果を呼出関数入出力条件編集部5に送出する。
ステップ502とステップ520は、指示された呼出関数入出力条件について全て実施(ステップ501)するまで繰り返す。
【0021】
次に、スタブ関数生成部7の処理について、図6により説明する。
プログラムの開始後、指示された呼出関数入出力条件について、先ずスタブ関数作成(ステップ620)を行い、次にスタブ関数書込(ステップ621)を行って終了する。
スタブ関数作成(ステップ620)では、関数仕様編集部4から受けた呼出関数入出力条件を変換してスタブ関数を作成する。
スタブ関数書込(ステップ621)では、ステップ621で作成されたスタブ関数をスタブ関数記憶部3に書き込む。これにより、スタブ関数が保存される。
ステップ620とステップ621は、指示された呼出関数入出力条件について全て実施(ステップ601)するまで繰り返す。
なお、このスタブ関数生成部の実行については、事前に指定することにより自動生成を行わないこととすることができる。これにより既存の下位関数を利用することで、より実動作時に近い環境で、作成対象の関数の動作の確認を行うことが可能となる。
【0022】
次に、図7を用いて、具体的に説明する。
図7の関数仕様700、710(関数仕様表)は、プログラム開発作業者が、作成対象とする関数仕様を編集するための編集画面であり、関数仕様710は、関数仕様700から呼び出される呼出関数の関数仕様である。
関数仕様700には、2つの入出力条件701、702がある場合を示しており、ここで呼出関数入出力条件703に示す項目について、各入出力条件で呼び出す呼出関数の入出力条件を編集可能としている。
呼出関数入出力条件703は、呼出関数の関数仕様710のインタフェース711に存在する項目を自動的に反映し、編集可能となっている。
【0023】
また、関数仕様700の入出力条件702に示される呼出関数入出力条件703には、呼出関数の関数仕様710のインタフェース711との間に不整合があることを示している。具体的には、呼出関数の関数仕様710のインタフェース711では、戻り値712が0か1であるのに対し、関数仕様700の入出力条件702の呼出関数入出力条件703では、戻り値が4であり、該当箇所704に着色および理由のコメント表示705を行っている。
また、スタブ関数720は、関数仕様700の入出力条件701の呼出関数入出力条件706から生成したスタブ関数の内容を示している。
【0024】
実施の形態1によれば、関数仕様の入力と共に下位関数である呼出関数との入出力条件を入力するため、下位関数をスタブ関数として自動的に生成可能となり、さらにこの試験対象関数と下位関数間で入出力条件の誤りによる不具合発生を事前に防ぐことが可能となる。
また、入力済みの呼出関数の関数仕様のインタフェース情報を用いて、呼出関数入出力条件を自動的に入力することで、入力の効率化と入力誤りの削減が可能となる。
また、試験対象関数と下位関数の関数仕様相互間に不整合があった場合は、検出した時点でユーザに明示することで、早期の段階で誤りを削減し、大きな手戻り作業の発生を防ぐことが可能となる。
また、既存の下位関数がある場合は、下位関数のスタブ関数の自動生成を行わない指定をすることで、既存の下位関数を利用した開発環境を構築することが可能となり、より製品に近い開発環境を容易に構築することが可能となる。
【符号の説明】
【0025】
1 入出力装置
2 関数仕様記憶部
3 スタブ関数記憶部
4 関数仕様編集部
5 呼出関数入出力条件編集部
6 呼出関数I/F検査部
7 スタブ関数生成部
8 システム制御部







【特許請求の範囲】
【請求項1】
入出力装置に表示された画面に入力することにより、プログラムの関数の関数仕様を作成するプログラム開発支援装置であって、
上記プログラムの関数の関数仕様を上記入力によって編集する関数仕様編集手段、
この関数仕様編集手段によって編集された上記関数仕様を格納する関数仕様記憶部、
上記関数仕様は、下位関数を呼び出すときの入出力条件を含み、
上記入出力条件を上記入力によって編集し、上記関数仕様編集手段に送る入出力条件編集手段、
この入出力条件編集手段によって編集された上記入出力条件と、上記下位関数の関数仕様に入力された入出力条件とを照合して、整合性をチェックし、チェック結果を上記入出力条件編集手段に送る入出力条件検査手段、
編集済みの上記プログラムの関数の関数仕様の上記入出力条件から上記下位関数のスタブ関数を生成するスタブ関数生成手段、
このスタブ関数生成手段によって生成されたスタブ関数を格納するスタブ関数記憶部を備えたことを特徴とするプログラム開発支援装置。
【請求項2】
上記プログラムの関数の関数仕様に含まれる入出力条件には、上記下位関数の関数仕様に入力された入出力条件の一部の情報が自動入力されることを特徴とする請求項1に記載のプログラム開発支援装置。
【請求項3】
上記入出力条件編集手段は、上記入出力条件検査手段によるチェックの結果、不整合がある場合には、不整合箇所を上記プログラムの関数の関数仕様上に表示することを特徴とする請求項1または請求項2に記載のプログラム開発支援装置。
【請求項4】
上記スタブ関数生成手段による上記スタブ関数の生成を行わないように指定する手段を備えたことを特徴とする請求項1〜請求項3のいずれかに記載のプログラム開発支援装置。




【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate