(57)【要約】【課題】関数仕様表に入力した情報を用いて下位関数の入出力条件のチェックを行えるとともに、下位関数のスタブ関数を自動的に生成することができるプログラム開発支援装置を得る。【解決手段】入出力装置１を介する入力にしたがって、プログラムの関数仕様を編集する関数仕様編集部４は、関数仕様のうちの呼出関数入出力条件については、呼出関数入出力条件編集部５に編集させ、この呼出関数入出力条件編集部５により編集された呼出関数入出力条件は、呼出関数インタフェース検査部６により、呼出関数の関数仕様のインタフェース情報と照合し、結果を呼出関数入出力条件編集部５に返して不整合の場合には不整合箇所を表示させ、整合された呼出関数入出力条件からは、スタブ関数生成部７により、スタブ関数を生成するようにした。【選択図】図１
2010250598.tif 000002
【特許請求の範囲】
【請求項１】
入出力装置に表示された画面に入力することにより、プログラムの関数の関数仕様を作成するプログラム開発支援装置であって、
上記プログラムの関数の関数仕様を上記入力によって編集する関数仕様編集手段、
この関数仕様編集手段によって編集された上記関数仕様を格納する関数仕様記憶部、
上記関数仕様は、下位関数を呼び出すときの入出力条件を含み、
上記入出力条件を上記入力によって編集し、上記関数仕様編集手段に送る入出力条件編集手段、
この入出力条件編集手段によって編集された上記入出力条件と、上記下位関数の関数仕様に入力された入出力条件とを照合して、整合性をチェックし、チェック結果を上記入出力条件編集手段に送る入出力条件検査手段、
編集済みの上記プログラムの関数の関数仕様の上記入出力条件から上記下位関数のスタブ関数を生成するスタブ関数生成手段、
このスタブ関数生成手段によって生成されたスタブ関数を格納するスタブ関数記憶部を備えたことを特徴とするプログラム開発支援装置。
【請求項２】
上記プログラムの関数の関数仕様に含まれる入出力条件には、上記下位関数の関数仕様に入力された入出力条件の一部の情報が自動入力されることを特徴とする請求項１に記載のプログラム開発支援装置。
【請求項３】
上記入出力条件編集手段は、上記入出力条件検査手段によるチェックの結果、不整合がある場合には、不整合箇所を上記プログラムの関数の関数仕様上に表示することを特徴とする請求項１または請求項２に記載のプログラム開発支援装置。
【請求項４】
上記スタブ関数生成手段による上記スタブ関数の生成を行わないように指定する手段を備えたことを特徴とする請求項１〜請求項３のいずれかに記載のプログラム開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、関数仕様表にプログラムの関数の入出力条件を入力し、下位関数を自動生成して、プログラムの開発効率を向上させるプログラム開発支援装置に関するものである。
【背景技術】
【０００２】
従来の開発支援装置である特許文献１には、ソースプログラムから情報を抽出して生成することで、個々の関数と下位関数に対応したスタブ関数を自動生成することを可能にしたものが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１４０２６３号公報（第４〜１２頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のものでは、元にしたソースプログラムに誤りがある場合、自動生成されたスタブ関数にも誤りが伝播し、そのまま試験を行ってしまうと誤りを発見できないという問題がある。
また、特許文献１のものでは、個々のスタブ関数の任意の入出力値を指定して試験することは可能であるが、値の設定方法と試験対象関数との関係が分かりにくいという問題もあった。
この改善策として、特定のグローバル変数に値を設定することで、インタフェース部分の値を固定として試験の実施を可能としているが、固定値を設定するグローバル変数と呼び出し側、呼び出される側それぞれの関数インタフェース部分の関係が分かりにくかった。これらの比較は、操作者が確認する必要があり、見落としが多く発生していた。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、関数仕様表に入力した情報を用いて下位関数の入出力条件のチェックを行えるとともに、下位関数のスタブ関数を自動的に生成することができるプログラム開発支援装置を得ることを目的としている。
【課題を解決するための手段】
【０００６】
この発明に係わるプログラム開発支援装置においては、
入出力装置に表示された画面に入力することにより、プログラムの関数の関数仕様を作成するプログラム開発支援装置であって、
プログラムの関数の関数仕様を入力によって編集する関数仕様編集手段、
この関数仕様編集手段によって編集された関数仕様を格納する関数仕様記憶部、
関数仕様は、下位関数を呼び出すときの入出力条件を含み、
入出力条件を入力によって編集し、関数仕様編集手段に送る入出力条件編集手段、
この入出力条件編集手段によって編集された入出力条件と、下位関数の関数仕様に入力された入出力条件とを照合して、整合性をチェックし、チェック結果を入出力条件編集手段に送る入出力条件検査手段、
編集済みのプログラムの関数の関数仕様の入出力条件から下位関数のスタブ関数を生成するスタブ関数生成手段、
このスタブ関数生成手段によって生成されたスタブ関数を格納するスタブ関数記憶部を備えたものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、入出力装置に表示された画面に入力することにより、プログラムの関数の関数仕様を作成するプログラム開発支援装置であって、
プログラムの関数の関数仕様を入力によって編集する関数仕様編集手段、
この関数仕様編集手段によって編集された関数仕様を格納する関数仕様記憶部、
関数仕様は、下位関数を呼び出すときの入出力条件を含み、
入出力条件を入力によって編集し、関数仕様編集手段に送る入出力条件編集手段、
この入出力条件編集手段によって編集された入出力条件と、下位関数の関数仕様に入力された入出力条件とを照合して、整合性をチェックし、チェック結果を入出力条件編集手段に送る入出力条件検査手段、
編集済みのプログラムの関数の関数仕様の入出力条件から下位関数のスタブ関数を生成するスタブ関数生成手段、
このスタブ関数生成手段によって生成されたスタブ関数を格納するスタブ関数記憶部を備えたので、下位関数の入出力条件のチェックを行えるとともに、下位関数のスタブ関数を自動的に生成することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるプログラム開発支援装置を示す構成図である。
【図２】この発明の実施の形態１によるプログラム開発支援装置のシステム制御部の処理を示すフローチャートである。
【図３】この発明の実施の形態１によるプログラム開発支援装置の関数仕様編集部の処理を示すフローチャートである。
【図４】この発明の実施の形態１によるプログラム開発支援装置の呼出関数入出力条件編集部の処理を示すフローチャートである。
【図５】この発明の実施の形態１によるプログラム開発支援装置の呼出関数Ｉ／Ｆ検査部の処理を示すフローチャートである。
【図６】この発明の実施の形態１によるプログラム開発支援装置のスタブ関数生成部の処理を示すフローチャートである。
【図７】この発明の実施の形態１によるプログラム開発支援装置の関数仕様表の例を示す図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるプログラム開発支援装置を示す構成図である。
図１において、プログラム開発支援装置は、コンピュータによって形成され、入出力装置１、関数仕様記憶部２、スタブ関数記憶部３、関数仕様編集部４（関数仕様編集手段）、呼出関数入出力条件編集部５（入出力条件編集手段）、呼出関数Ｉ／Ｆ（インタフェース）検査部６（入出力条件検査手段）、スタブ関数生成部７（スタブ関数生成手段）、システム制御部８から構成される。関数仕様記憶部２とスタブ関数記憶部３は、コンピュータの記憶装置に設けられている。
入出力装置１は、プログラム開発作業者の操作を入力し、処理結果を出力する装置である。関数仕様記憶部２は、プログラム開発作業者が、作成対象とするプログラムの関数についての関数仕様を格納する。スタブ関数記憶部３は、プログラム開発作業者が、作成対象の関数（プログラムの関数）によって呼び出される下位関数のスタブ関数を格納する。ここで、スタブ関数とは、試験時に試験対象の関数から呼び出される下位関数を擬似する関数であり、試験対象の関数からの呼び出しに対して、試験対象の関数の実行を継続できるように、戻り値とグローバル変数の値を設定する。
【００１０】
関数仕様編集部４は、システム制御部８の指示により、入出力装置１からの入力に従い、プログラム開発作業者が、作成対象の関数について関数仕様を編集し、その結果を入出力装置１へ送る。編集した関数仕様は、関数仕様記憶部２に格納され、関数仕様編集部４によって関数仕様記憶部２から読み出されることにより、再編集される。
関数仕様の内、特に、作成対象の関数によって呼び出される下位関数である呼出関数の入出力条件である呼出関数入出力条件については、呼出関数入出力条件編集部５から受けた内容で更新を行う。
呼出関数入出力条件編集部５は、システム制御部８の指示により、関数仕様編集部４から受けた呼出関数入出力条件について、入出力装置１からの入力に従って編集し、その結果を入出力装置１へ送る。編集した呼出関数入出力条件は、関数仕様編集部４へ送るとともに、呼出関数Ｉ／Ｆ検査部６へ送る。また、後述する呼出関数Ｉ／Ｆ検査部６から不整合ありの指摘を受けた場合は、作成対象の関数の関数仕様の呼出関数入出力条件の該当部位に着色するとともに、不整合理由を付けて入出力装置１へ送る。
呼出関数Ｉ／Ｆ検査部６は、システム制御部８の指示により、関数仕様編集部４から受けた呼出関数の関数仕様にあるインタフェース情報と、呼出関数入出力条件編集部５から受けた呼出関数入出力条件とを照合し、不整合があれば、該当部位と不整合の理由を呼出関数入出力条件編集部５へ送る。
スタブ関数生成部７は、システム制御部８の指示により、関数仕様編集部４から受けた呼出関数入出力条件を変換してスタブ関数を生成し、スタブ関数記憶部３に格納する。
【００１１】
システム制御部８は、プログラム開発支援装置全体の制御を行う。システム制御部８と各部のデータの流れは、次のとおりである。
システム制御部８は、入出力装置１からの入力を受けて、関数仕様編集部４に関数仕様の編集を指示する。
システム制御部８は、入出力装置１からの入力を受けて、呼出関数入出力条件編集部５に呼出関数入出力条件の編集を指示する。
システム制御部８は、入出力装置１からの入力を受けて、スタブ関数生成部７にスタブ関数の生成を指示する。
システム制御部８は、入出力装置１からの入力を受けて、呼出関数Ｉ／Ｆ検査部６に呼出関数入出力条件の検査を指示する。
【００１２】
図２は、この発明の実施の形態１によるプログラム開発支援装置のシステム制御部の処理を示すフローチャートである。
図３は、この発明の実施の形態１によるプログラム開発支援装置の関数仕様編集部の処理を示すフローチャートである。
【００１３】
図４は、この発明の実施の形態１によるプログラム開発支援装置の呼出関数入出力条件編集部の処理を示すフローチャートである。
図５は、この発明の実施の形態１によるプログラム開発支援装置の呼出関数Ｉ／Ｆ検査部の処理を示すフローチャートである。
【００１４】
図６は、この発明の実施の形態１によるプログラム開発支援装置のスタブ関数生成部の処理を示すフローチャートである。
【００１５】
図７は、この発明の実施の形態１によるプログラム開発支援装置の関数仕様表の例を示す図である。
図７において、関数仕様７００、７１０（関数仕様表）は、プログラム開発作業者が、作成対象とする関数の関数仕様を編集するための編集画面であり、入力することによって編集される。関数仕様７１０は、関数仕様７００から呼び出される呼出関数（下位関数）の関数仕様である。
関数仕様７００は、呼出関数の関数仕様のインタフェース情報との間に不整合がない場合の入出力条件７０１と、呼出関数のインタフェース情報との間に不整合がある場合の入出力条件７０２と、呼出関数との間の入出力条件を定義する項目を示す呼出関数入出力条件７０３と、呼出関数入出力条件７０３に、呼出関数との間に不整合がある場合にその不整合の箇所を示す該当箇所７０４と、不整合の理由をコメントしたコメント表示７０５と、入出力条件７０１における呼出関数入出力条件の具体例である呼出関数入出力条件７０６とを有している。
関数仕様７１０は、インタフェース７１１を有し、インタフェース７１１内に関数ｃａｌｌの戻り値７１２を有している。この戻り値７１２はインタフェース仕様上０または１になっている。
スタブ関数７２０は、呼出関数入出力条件７０６から生成したスタブ関数の内容を示している。
【００１６】
次に、動作について説明する。
本発明は、例えば、図７に示すような関数仕様７００、７１０（関数仕様表）を、プログラム開発作業者が、入力を行って、関数仕様を編集する。
この場合に、作成対象の関数仕様の入力時に、作成対象の関数から呼び出される下位関数の入出力条件も同時に入力可能とする。つまり、関数仕様には下位関数の入出力条件を含んでいる。これにより、入力された作成対象の関数の関数仕様にある入出力条件を、下位関数の関数仕様のインタフェース情報を元に、チェックすることができる。
また、試験対象の関数と下位関数との間の入出力を規定する入出力条件として、試験対象の関数の関数仕様に含まれる呼出関数入出力条件を入力する際には、その一部を下位関数の関数仕様のインタフェース情報を抽出することにより、自動入力することが可能となっている。
さらに、入力された呼出関数入出力条件に不整合部分があった場合は、その旨をユーザに通知する。
また、スタブ関数生成部７により、任意のスタブ関数を自動生成することが可能であるが、任意の関数を指定することで、該当する関数を自動生成しないようにすることもできる。
以下、詳細に説明する。
【００１７】
まず、システム制御部８の処理について、図２により説明する。
プログラムの開始後、指示待ち（ステップ２０１）を行い、入出力装置１より入力された指示内容（ステップ２０２）により処理を分岐する。
指示内容が、関数仕様編集の場合は、関数仕様編集部４（ステップ２１０）の処理を行ってから、再び指示待ち（ステップ２０１）に戻る。
指示内容が、呼出関数入出力条件編集の場合は、呼出関数入出力条件編集部５（ステップ２２０）の処理を行ってから、再び指示待ち（ステップ２０１）に戻る。
指示内容が、スタブ関数生成の場合は、スタブ関数生成部７（ステップ２３０）の処理を行ってから、再び指示待ち（ステップ２０１）に戻る。
指示内容が、呼出関数入出力条件検査の場合は、呼出関数Ｉ／Ｆ検査部６（ステップ２４０）の処理を行ってから、再び指示待ち（ステップ２０１）に戻る。
【００１８】
次に、関数仕様編集部４の処理について、図３により説明する。
プログラムの開始後、作成対象の関数についての関数仕様読出（ステップ３００）を行う。
関数仕様読出（ステップ３００）では、関数仕様記憶部２より該当する関数仕様を読み出す。この読み出された関数仕様が編集可能となる。
次に、入力待ち（ステップ３０１）を行い、入出力装置１より入力された入力内容（ステップ３０２）により処理を分岐する。
入力内容が、関数仕様の場合は、関数仕様更新（ステップ３２０）を行ってから、再び入力待ち（ステップ３０１）に戻る。
関数仕様更新（ステップ３２０）では、該当する関数仕様のデータを上書きして更新する編集作業を行う。
入力内容が、終了の場合は、関数仕様書込（ステップ３１０）を行ってから終了する。
関数仕様書込（ステップ３１０）では、関数仕様記憶部２に編集中の関数仕様を書き込む。これにより、編集された関数仕様が保存される。
【００１９】
次に、呼出関数入出力条件編集部５の処理について、図４により説明する。
プログラムの開始後、入力待ち（ステップ４０１）を行い、入出力装置１より入力された入力内容（ステップ４０２）により処理を分岐する。
入力内容が、呼出関数入出力条件の場合は、新たな条件追加（ステップ４０３）でかつ指示された呼出関数の関数仕様が存在しない場合（ステップ４０４）は、編集不可出力（ステップ４２１）を行い、再び入力待ち（ステップ４０１）に戻る。その他の場合は、呼出関数入出力条件更新（ステップ４２０）を行い、再び入力待ち（ステップ４０１）に戻る。
呼出関数入出力条件更新（ステップ４２０）では、該当する呼出関数入出力条件のデータを上書き更新する編集作業を行う。
編集不可出力（ステップ４２１）では、入出力装置１へ編集不可であるメッセージを出力する。
入力内容が、照合結果の場合は、照合結果反映（ステップ４３０）を行ってから、再び入力待ち（ステップ４０１）に戻る。
照合結果反映（ステップ４３０）では、先ず呼出関数入出力条件の着色解除および理由コメント削除を行い、次に照合結果が不整合ありの場合は、呼出関数入出力条件の該当部位に着色するとともに理由コメントを付加する。
【００２０】
次に、呼出関数Ｉ／Ｆ検査部６の処理について、図５により説明する。
プログラムの開始後、照合結果クリア（ステップ５００）を行う。
照合結果クリア（ステップ５００）では、照合結果に不整合なしを設定する。
次に、指示された呼出関数入出力条件について、指示された呼出関数の関数仕様のインタフェース７１１の情報と、呼出関数入出力条件とを照合（ステップ５０２）し、不整合がある場合は、照合エラー登録（ステップ５２０）を行ってから、照合結果送出（ステップ５１０）を行って終了する。
照合エラー登録（ステップ５２０）では、照合結果に不整合あり、該当部位、理由コメントを設定する。
照合結果送出（ステップ５１０）では、照合結果を呼出関数入出力条件編集部５に送出する。
ステップ５０２とステップ５２０は、指示された呼出関数入出力条件について全て実施（ステップ５０１）するまで繰り返す。
【００２１】
次に、スタブ関数生成部７の処理について、図６により説明する。
プログラムの開始後、指示された呼出関数入出力条件について、先ずスタブ関数作成（ステップ６２０）を行い、次にスタブ関数書込（ステップ６２１）を行って終了する。
スタブ関数作成（ステップ６２０）では、関数仕様編集部４から受けた呼出関数入出力条件を変換してスタブ関数を作成する。
スタブ関数書込（ステップ６２１）では、ステップ６２１で作成されたスタブ関数をスタブ関数記憶部３に書き込む。これにより、スタブ関数が保存される。
ステップ６２０とステップ６２１は、指示された呼出関数入出力条件について全て実施（ステップ６０１）するまで繰り返す。
なお、このスタブ関数生成部の実行については、事前に指定することにより自動生成を行わないこととすることができる。これにより既存の下位関数を利用することで、より実動作時に近い環境で、作成対象の関数の動作の確認を行うことが可能となる。
【００２２】
次に、図７を用いて、具体的に説明する。
図７の関数仕様７００、７１０（関数仕様表）は、プログラム開発作業者が、作成対象とする関数仕様を編集するための編集画面であり、関数仕様７１０は、関数仕様７００から呼び出される呼出関数の関数仕様である。
関数仕様７００には、２つの入出力条件７０１、７０２がある場合を示しており、ここで呼出関数入出力条件７０３に示す項目について、各入出力条件で呼び出す呼出関数の入出力条件を編集可能としている。
呼出関数入出力条件７０３は、呼出関数の関数仕様７１０のインタフェース７１１に存在する項目を自動的に反映し、編集可能となっている。
【００２３】
また、関数仕様７００の入出力条件７０２に示される呼出関数入出力条件７０３には、呼出関数の関数仕様７１０のインタフェース７１１との間に不整合があることを示している。具体的には、呼出関数の関数仕様７１０のインタフェース７１１では、戻り値７１２が０か１であるのに対し、関数仕様７００の入出力条件７０２の呼出関数入出力条件７０３では、戻り値が４であり、該当箇所７０４に着色および理由のコメント表示７０５を行っている。
また、スタブ関数７２０は、関数仕様７００の入出力条件７０１の呼出関数入出力条件７０６から生成したスタブ関数の内容を示している。
【００２４】
実施の形態１によれば、関数仕様の入力と共に下位関数である呼出関数との入出力条件を入力するため、下位関数をスタブ関数として自動的に生成可能となり、さらにこの試験対象関数と下位関数間で入出力条件の誤りによる不具合発生を事前に防ぐことが可能となる。
また、入力済みの呼出関数の関数仕様のインタフェース情報を用いて、呼出関数入出力条件を自動的に入力することで、入力の効率化と入力誤りの削減が可能となる。
また、試験対象関数と下位関数の関数仕様相互間に不整合があった場合は、検出した時点でユーザに明示することで、早期の段階で誤りを削減し、大きな手戻り作業の発生を防ぐことが可能となる。
また、既存の下位関数がある場合は、下位関数のスタブ関数の自動生成を行わない指定をすることで、既存の下位関数を利用した開発環境を構築することが可能となり、より製品に近い開発環境を容易に構築することが可能となる。
【符号の説明】
【００２５】
１    入出力装置
２    関数仕様記憶部
３    スタブ関数記憶部
４    関数仕様編集部
５    呼出関数入出力条件編集部
６    呼出関数Ｉ／Ｆ検査部
７    スタブ関数生成部
８    システム制御部
【図１】
2010250598.tif 000003
【図２】
2010250598.tif 000004
【図３】
2010250598.tif 000005
【図４】
2010250598.tif 000006
【図５】
2010250598.tif 000007
【図６】
2010250598.tif 000008
【図７】
2010250598.tif 000009