(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-26
(45)【発行日】2024-05-09
(54)【発明の名称】ソフトウェア開発支援装置、方法及びプログラム
(51)【国際特許分類】
G06F 8/77 20180101AFI20240430BHJP
G06F 8/65 20180101ALI20240430BHJP
【FI】
G06F8/77
G06F8/65
(21)【出願番号】P 2021036370
(22)【出願日】2021-03-08
【審査請求日】2023-03-13
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】松本 雄磨
(72)【発明者】
【氏名】田中 里奈
(72)【発明者】
【氏名】池田 信之
【審査官】北川 純次
(56)【参考文献】
【文献】特開2011-180814(JP,A)
【文献】特開2020-067697(JP,A)
【文献】国際公開第2016/001982(WO,A1)
【文献】国際公開第2014/112317(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00 - 8/77
(57)【特許請求の範囲】
【請求項1】
プログラム言語を用いて記述された変数及び条件分岐を含む複数の行から構成されるソースコードを取得する取得手段と、
前記取得されたソースコードにおいて値が変更された変数及び当該変数に対する値が変更された行を示す第1行番号を入力する入力手段と、
前記取得されたソースコードを構成する複数の行のうち、前記入力された変数が読み取られる行を示す第2行番号を特定する特定手段と、
前記入力された第1行番号によって示される行から前記特定された第2行番号によって示される行までの実行経路中に記述されている条件分岐の数を計測する計測手段と、
前記計測された条件分岐の数に基づいて前記特定された第2行番号を表示する表示手段と
を具備するソフトウェア開発支援装置。
【請求項2】
前記表示手段は、前記計測された条件分岐の数を更に表示する請求項1記載のソフトウェア開発支援装置。
【請求項3】
前記計測手段は、前記入力された変数が読み取られる行を示す複数の第2行番号が特定された場合、当該第2行番号毎に前記条件分岐の数を計測し、
前記表示手段は、前記複数の第2行番号のうち、前記計測された条件分岐の数が最も大きい第2行番号を表示する
請求項1または2記載のソフトウェア開発支援装置。
【請求項4】
前記計測手段は、前記入力された変数が読み取られる行を示す複数の第2行番号が特定された場合、当該第2行番号毎に前記条件分岐の数を計測し、
前記表示手段は、前記複数の第2行番号のうち、前記計測された条件分岐の数が予め定められた値以上である第2行番号を表示する
請求項1または2記載のソフトウェア開発支援装置。
【請求項5】
前記計測手段は、前記入力された第1行番号によって示される行から前記特定された第2行番号によって示される行までの第1及び第2実行経路が存在する場合、当該第1実行経路中に記述されている条件分岐の第1数よりも小さい第2実行経路中に記述されている条件分岐の第2数を計測する請求項1~4のいずれか一項に記載のソフトウェア開発支援装置。
【請求項6】
前記入力された第1行番号によって示される行から前記特定された第2行番号によって示される行までの実行経路中に前記入力された変数が上書きされる行が存在する場合、当該第2行番号は表示されない請求項1~5のいずれか一項に記載のソフトウェア開発支援装置。
【請求項7】
ソフトウェア開発支援装置が実行する方法であって、
プログラム言語を用いて記述された変数及び条件分岐を含む複数の行から構成されるソースコードを取得することと、
前記取得されたソースコードにおいて値が変更された変数及び当該変数に対する値が変更された行を示す第1行番号を入力することと、
前記取得されたソースコードを構成する複数の行のうち、前記入力された変数が読み取られる行を示す第2行番号を特定することと、
前記入力された第1行番号によって示される行から前記特定された第2行番号によって示される行までの実行経路中に記述されている条件分岐の数を計測することと、
前記計測された条件分岐の数に基づいて前記特定された第2行番号を表示することと
を具備する方法。
【請求項8】
ソフトウェア開発支援装置のコンピュータによって実行されるプログラムであって、
前記コンピュータに、
プログラム言語を用いて記述された変数及び条件分岐を含む複数の行から構成されるソースコードを取得することと、
前記取得されたソースコードにおいて値が変更された変数及び当該変数に対する値が変更された行を示す第1行番号を入力することと、
前記取得されたソースコードを構成する複数の行のうち、前記入力された変数が読み取られる行を示す第2行番号を特定することと、
前記入力された第1行番号によって示される行から前記特定された第2行番号によって示される行までの実行経路中に記述されている条件分岐の数を計測することと、
前記計測された条件分岐の数に基づいて前記特定された第2行番号を表示することと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ソフトウェア開発支援装置、方法及びプログラムに関する。
【背景技術】
【0002】
一般に、ソフトウェア製品の開発は、パーソナルコンピュータ等の情報処理装置上で提供される統合開発環境(IDE:Integrated Development Environment)において行われることが知られている。IDEは、ソフトウェア製品の総合的な開発環境であり、様々なツールの集合から構成される。
【0003】
このようなIDEを構成する様々なツールを用いることによって、効率的なソフトウェア製品の開発が可能となる。
【0004】
ところで、上記したソフトウェア製品の開発においては必要に応じてソースコードを編集(改修)することがあるが、当該ソースコードの特定の箇所に対して行われた変更は当該ソースコード中の他の箇所に影響を与える可能性がある。具体的には、ソースコードにおいて記述されている変数に対する値が変更された場合、当該変数が読み取られる箇所(リード箇所)に影響を与えることがある。ソースコードの編集時に、このような変数に対する値の変更が当該リード箇所に与える影響を見落としていると、不具合の原因となる。
【0005】
このため、上記したソースコードを編集する作業(ソースコードに対する編集作業)を支援する仕組みが望まれている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで、本発明が解決しようとする課題は、ソースコードに対する編集作業を支援することが可能なソフトウェア開発支援装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
実施形態に係るソフトウェア開発支援装置は、取得手段と、入力手段と、特定手段と、計測手段と、表示手段とを具備する。前記取得手段は、プログラム言語を用いて記述された変数及び条件分岐を含む複数の行から構成されるソースコードを取得する。前記入力手段は、前記取得されたソースコードにおいて値が変更された変数及び当該変数に対する値が変更された行を示す第1行番号を入力する。前記特定手段は、前記取得されたソースコードを構成する複数の行のうち、前記入力された変数が読み取られる行を示す第2行番号を特定する。前記計測手段は、前記入力された第1行番号によって示される行から前記特定された第2行番号によって示される行までの実行経路中に記述されている条件分岐の数を計測する。前記表示手段は、前記計測された条件分岐の数に基づいて前記特定された第2行番号を表示する。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係るソフトウェア開発支援装置の機能構成の一例を示すブロック図。
【
図2】ソフトウェア開発支援装置のシステム構成の一例を示す図。
【
図3】ソフトウェア開発支援装置の処理手順の一例を示すフローチャート。
【
図7】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図8】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図9】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図10】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図11】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図12】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図13】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図14】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図15】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図16】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図17】リード箇所「7」について実行される分岐数計測処理について説明するための図。
【
図18】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図19】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図20】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図21】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図22】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図23】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図24】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図25】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図26】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図27】リード箇所「10」について実行される分岐数計測処理について説明するための図。
【
図28】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図29】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図30】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図31】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図32】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図33】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図34】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図35】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図36】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図37】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図38】リード箇所「13」について実行される分岐数計測処理について説明するための図。
【
図40】表示されるリード箇所の一例について説明するための図。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態について説明する。
本実施形態に係るソフトウェア開発支援装置は、ソフトウェア開発におけるソースコードに対する編集作業(改修作業)を支援するために用いられる。
【0011】
なお、ソフトウェア開発支援装置10は、ソフトウェア製品の開発作業(ソフトウェア製品を実現するためのソースコードの編集作業等)の際にユーザによって使用されるパーソナルコンピュータ等の情報処理装置であり、統合開発環境(以下、IDEと表記)を当該ユーザに提供する。IDEは様々なツールの集合から構成されており、ユーザは、当該IDEを構成する様々なツールを用いて効率的なソフトウェア製品の開発を行うことができる。
【0012】
図1は、本実施形態に係るソフトウェア開発支援装置の機能構成の一例を示すブロック図である。
図1に示すように、ソフトウェア開発支援装置10は、格納部11、入力部12、計測部13及び表示部14を含む。
【0013】
格納部11には、ソフトウェア製品を実現するためのソースコードが格納されている。格納部11に格納されているソースコードは例えば複数の行から構成されており、当該ソースコードを構成する複数の行の各々には、所定のプログラミング言語を用いて記述された変数や条件分岐等が記述されている。
【0014】
ここで、上記したIDEを構成するツールを用いることによってユーザ(ソフトウェア製品の開発者)は上記したソースコードを編集することができるが、当該ソースコードの編集において、当該ソースコードに記述されている変数に対する値が変更された場合を想定する。このような変数に対する値の変更は、ソースコード中に記述されている当該変数(に対する値)が読み取られる箇所に影響を与え、結果として不具合の発生につながることがある。
【0015】
このため、ソースコード中の変数に対する値を変更するような場合には当該変更が及ぼす影響等を十分に検討しておく必要があるが、当該変数に対する値が変更された箇所(行)から当該変数が読み取られる箇所(行)までの実行経路が複雑である場合、ユーザは当該実行経路(シナリオ)を確認することが困難であり、上記した変数に対する値の変更が与える影響を見落とす可能性がある。なお、本実施形態における変数としてはソースコード中に記述(設定)されている様々な変数が含まれるが、グローバル変数(に対する値)が変更された場合には、当該変更による影響が大きく、不具合が発生しやすい。
【0016】
そこで、本実施形態においては、上記したように変数に対する値が変更された箇所から当該変数が読み取られる箇所までの実行経路中に条件分岐が多いほど当該変更が与える影響を見落とす可能性が高くなるという観点に基づき、当該影響の見落としを防止するための構成を有する。
【0017】
入力部12は、格納部11に格納されているソースコードにおいて値が変更された変数(以下、調査対象変数と表記)及び当該変数に対する値が変更された行を示す行番号(以下、調査起点箇所と表記)を入力する。
【0018】
計測部13は、格納部11に格納されているソースコードを取得する。計測部13は、取得されたソースコードを構成する複数の行のうち、調査対象変数が読み取られる行を示す行番号(以下、リード箇所と表記)を特定する。なお、計測部13によって特定されるリード箇所は、複数であっても構わない。
【0019】
計測部13は、入力部12によって入力された調査起点箇所から当該計測部13によって特定されたリード箇所までの実行経路中に記述されている条件分岐の数(以下、分岐数と表記)を計測する。なお、本実施形態における分岐数とは、上記した実行経路中において条件分岐が記述されている行(を示す行番号)の数をいう。
【0020】
表示部14は、計測部13によって計測された分岐数に基づいてリード箇所を表示する。この場合、上記したように分岐数が多いほどリード箇所に与える影響を見落とす可能性が高くなるとの観点から、表示部14は、例えば計測部13によって計測された分岐数が多い(つまり、調査起点箇所からリード箇所までの条件分岐の数が大きい)リード箇所を表示する。
【0021】
なお、
図1においては省略されているが、ソフトウェア開発支援装置10は、格納部11、入力部12、計測部13及び表示部14以外に、上記したIDEを構成する様々なツールによって実現される機能部を有しているものとする。
【0022】
図2は、
図1に示すソフトウェア開発支援装置10のシステム構成の一例を示す。
図2に示すように、ソフトウェア開発支援装置10は、CPU101、不揮発性メモリ102、主メモリ103、BIOS-ROM104、システムコントローラ105、入力デバイス106、表示デバイス107及びエンベデッドコントローラ(EC)108等を備える。
【0023】
CPU101は、ソフトウェア開発支援装置10内の各コンポーネントの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ102から主メモリ103にロードされる様々なプログラムを実行する。このプログラムには、オペレーティングシステム(OS)、ユーザに対してIDEを提供するためのアプリケーションプログラム及び当該アプリケーションプログラム(ツール)に組み込まれるプラグイン等が含まれる。
【0024】
なお、CPU101は、BIOS-ROM104に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
【0025】
システムコントローラ105は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。
【0026】
入力デバイス106は、例えばキーボード及びマウス等を含む。表示デバイス107は、例えば液晶表示装置のようなディスプレイ等を含む。EC108は、電力管理のためのワンチップマイクロコンピュータである。
【0027】
図2においては、CPU101、不揮発性メモリ102、主メモリ103、BIOS-ROM104、システムコントローラ105、入力デバイス106、表示デバイス107及びEC108のみが示されているが、ソフトウェア開発支援装置10は、例えばHDD(Hard Disk Drive)及びSSD(Solid State Drive)のような他の記憶装置を備えていてもよいし、外部装置との通信を実行するように構成された通信デバイス等を備えていてもよい。
【0028】
なお、本実施形態において、上記した
図1に示す格納部11は、例えば
図2に示す不揮発性メモリ102または他の記憶装置等によって実現される。
【0029】
また、
図1に示す各部12~14の一部または全ては、例えば
図2に示すCPU101(つまり、ソフトウェア開発支援装置10のコンピュータ)にIDEを提供するためのアプリケーションプログラム及び当該アプリケーションプログラムに組み込まれるプラグインを実行させること、すなわちソフトウェアによって実現されるものとする。
【0030】
ここでは、各部12~14の一部または全てがソフトウェアによって実現されるものとして説明したが、当該各部12~14の一部または全ては、例えばハードウェアによって実現されてもよいし、ソフトウェア及びハードウェアの組み合わせによって実現されてもよい。
【0031】
次に、
図3のフローチャートを参照して、本実施形態に係るソフトウェア開発支援装置10の処理手順の一例について説明する。
【0032】
まず、ソフトウェア開発支援装置10を使用するユーザは、上記したIDEを構成するツールを用いて例えば格納部11に格納されているソースコードに対する編集作業を行うことができる。
【0033】
このような編集作業においてソースコードに記述されている変数に対する値が変更された場合、入力部12は、上記した調査対象変数及び調査起点箇所を入力する(ステップS1)。
【0034】
なお、入力部12によって入力される調査対象変数及び調査起点箇所は、ソフトウェア開発支援装置10(入力デバイス106)を操作するユーザによって指定される。この場合、調査対象変数及び調査起点箇所を例えばソースコード(が表示された領域)上で指定することができるようなユーザインタフェース(UI)が提供されてもよい。
【0035】
ステップS1の処理が実行されると、計測部13は、格納部11に格納されているソースコードを、当該格納部11から取得する(ステップS2)。
【0036】
ステップS2の処理が実行されると、計測部13は、空のリード箇所リスト、計測終了箇所リスト及び分岐数表を生成(用意)する(ステップS3)。
【0037】
次に、計測部13は、ステップS2において取得されたソースコードを解析し、当該ソースコードを構成する複数の行のうち、ステップS1において入力された調査対象変数(に対する値)が読み取られる行を示す行番号をリード箇所として特定し、当該リード箇所をステップS3において生成された空のリード箇所リストに追加する(ステップS4)。なお、ステップS4においてリード箇所リストに追加されるリード箇所は、複数であってもよい。
【0038】
また、計測部13は、ステップS2において取得されたソースコードを解析し、当該ソースコードを構成する複数の行のうち、ステップS1において入力された調査対象変数に対する値が上書きされている行を示す行番号(以下、ライト箇所と表記)特定し、当該ライト箇所を計測終了箇所としてステップS3において生成された空の計測終了箇所リストに追加する(ステップS5)。
【0039】
計測終了箇所リストに追加される計測終了箇所は、後述する分岐数の計測を終了するか否かを判定するために用いられる。具体的には、例えば調査起点箇所(調査対象変数に対する値が変更された箇所)以降の実行経路中で当該調査対象変数に対する値が上書きされた場合、当該当該調査起点箇所における調査対象変数に対する値の変更は、当該上書きされた箇所(つまり、ライト箇所)以降には影響を及ぼさない。このため、ライト箇所を計測終了箇所として計測終了箇所リストに追加しておくことにより、例えば実行経路が当該ライト箇所(計測終了箇所)を通る場合には、分岐数の計測を終了することができる。
【0040】
なお、ステップS5において計測終了箇所リストに追加されるライト箇所は、複数であってもよい。ただし、上記した調査起点箇所(つまり、変更された値が書き込まれている箇所)は、ライト箇所には含まれない。
【0041】
上記したステップS4及びS5において実行されるソースコードの解析は、例えばIDEを構成するツールを用いて実行することができる。なお、このようなIDEを構成するツールを用いたソースコードの解析によれば、例えば所定の変数(例えば、調査対象変数)に対して、当該変数がアクセスされている行を示す行番号及び当該アクセスの種別(リードまたはライト等)を取得することが可能である。
【0042】
次に、計測部13は、ステップS1において入力された調査起点箇所、ステップS4においてリード箇所が追加されたリード箇所リスト及びステップS5において計測終了箇所(ライト箇所)が追加された計測終了箇所リストに基づいて、分岐数計測処理を実行する(ステップS6)。
【0043】
この分岐数計測処理はリード箇所リストに含まれるリード箇所毎に実行され、調査起点箇所から当該リード箇所までの実行経路中の分岐数が計測される。
【0044】
ステップS6の処理が実行されると、上記したリード箇所リストに追加されたリード箇所及び当該リード箇所について計測された分岐数がステップS3において生成された空の分岐数表に追加される。
【0045】
表示部14は、上記した分岐数表(に追加された分岐数)に基づいてリード箇所を例えば表示デバイス107に表示する(ステップS7)。この場合、表示部14は、分岐数表を参照して、分岐数が最も多いリード箇所を表示してもよいし、分岐数が予め定められた値以上であるリード箇所を表示してもよい。なお、ステップS7においては、分岐数表(つまり、リード箇所に加えて更に分岐数)が表示されても構わない。
【0046】
上記した
図3に示す処理によれば、調査対象変数に対する値の変更が影響与える箇所(リード箇所)を分岐数という観点から評価し、当該評価結果(分岐数)に基づいて当該影響を見落とす可能性が高い箇所をユーザに対して提示することができる。
【0047】
以下、本実施形態に係るソフトウェア開発支援装置10の動作について詳細に説明する。まず、
図4は、格納部11に格納されているソースコードの一例を示す。
【0048】
図4に示す例では、ソースコードは1行目~14行目から構成されており、当該ソースコードの3行目には変数「gvar」が記述されている。
【0049】
このようなソースコードの編集作業において3行目に記述されている変数「gvar」に対する値が
図4に示すように0に変更されたものとすると、上記した入力部12は、調査対象変数として「gvar」及び調査起点箇所(調査起点行番号)として「3(行目)」を入力する。
【0050】
次に、
図4に示すソースコードにおいて、調査対象変数「gvar」の値が読み取られる箇所(つまり、リード箇所)は、7行目、10行目及び13行目である。この場合、リード箇所リストには、リード箇所として「7(行目)」、「10(行目)」及び「13(行目)」が追加される。
【0051】
一方、
図4に示すソースコードにおいて、調査対象変数「gvar」に対する値が上書きされる箇所(つまり、ライト箇所)は、6行目である。この場合、計測終了箇所リストには、計測終了箇所として「6(行目)」が追加される。
【0052】
なお、
図5は、上記したように調査対象変数が「gvar」である場合におけるリード箇所及びライト箇所を示している。
【0053】
以下、上記した調査起点箇所、リード箇所リスト及び計測終了箇所リストに基づいて、分岐数計測処理が実行される。
【0054】
分岐数計測処理は、上記したようにリード箇所リストに追加されたリード箇所毎に実行される。この場合、分岐数計測処理における入力は調査起点箇所、リード箇所及び計測終了箇所リストであり、当該分岐数計測処理における出力は、分岐数である。
【0055】
具体的には、調査起点箇所をs、リード箇所をd、計測終了箇所リストをAとすると、分岐数計測処理における出力である分岐数は、s(行目)から辿ってAに含まれる計測終了箇所を通らずにd(行目)に到達する実行経路(つまり、調査起点箇所からリード箇所までの実行経路)中に記述されている条件分岐の数である。ただし、調査起点箇所からリード箇所までの実行経路が複数存在する場合は、当該複数の実行経路の中の最小の分岐数が計測される。
【0056】
なお、調査起点箇所sからリード箇所dまでの実行経路においてAに含まれる計測終了箇所を通らずにdに到達することができない場合、分岐数計測処理における出力は「∞」となる。
【0057】
ここで、
図6は分岐数計測処理の処理内容(定義)を示しており、分岐数計測処理は、当該
図6に示す処理内容に従って実行される。以下、
図6に基づく分岐数計測処理について具体的に説明する。
【0058】
ここでは、
図4に示すソースコードから特定されたリード箇所「7」、「10」及び「13」がリード箇所リストに追加されており、当該ソースコードから特定されたライト箇所「6」が計測終了箇所リストAに計測終了箇所として追加されているものとして説明する。この場合、リード箇所「7」、「10」及び「13」の各々について分岐数計測処理が実行される。
【0059】
まず、リード箇所「7」について実行される分岐数計測処理について説明する。この場合、計測部13は、
図7に示すように、調査起点箇所s「3(行目)」、リード箇所d「7(行目)」及び計測終了箇所リストA「6(行目)」を入力として分岐数計測処理を実行する。なお、
図7に示すように、s「3」、d「7」、A「6」を入力として実行される分岐数計測処理は、分岐数計測(3,7,[6])と表すものとする。以下の説明についても同様である。
【0060】
ここで、調査起点箇所sは「3」であり、ソースコードの3行目には、条件分岐は記述されていない。上記した
図6によれば、sが条件分岐ではない場合には、当該sを計測終了箇所リストAに追加するとともに、当該sを次に実行される行番号(ここでは、「4」)とした上で、新たなs、d、Aを入力とした分岐数計測処理が再度実行される(つまり、再帰呼び出しされる)ことが示されている。この場合、
図8に示すように、分岐数計測(4,7,[6,3])が実行される。このように計測終了箇所リストに分岐数計測処理が実行された行番号を追加することによって、実行経路においてリード箇所に到達する前に同一の箇所を通るような場合に分岐数の計測(分岐数計測処理)を終了することができる。
【0061】
分岐数計測処理の入力が行番号s「4」、リード箇所d「7」及び計測終了箇所リストA「6,3」である場合、ソースコードの4行目には、while文(つまり、条件分岐)が記述されている。上記した
図6によれば、sが条件分岐である場合には、当該sを計測終了箇所リストAに追加するとともに、当該sを当該条件がtrueであるときに次に実行される行番号(ここでは、「5」)とした上で、新たなs、d、Aを入力とした分岐数計測が再度実行されることが示されている。この場合、
図9に示すように、分岐数計測(5,7,[6,3,4])が実行される。
【0062】
なお、
図5によれば、sが条件分岐である場合にはr1及びr2のうちの値が小さい方に1を加算した値を返すこと示されているが、r1は条件がtrueであるときに新たなs、d、Aを入力として再度実行される分岐数計測処理における出力(return)を示し、r2は条件がfalseであるときに新たなs、d、Aを入力として再度実行される分岐数計測処理における出力(return)を示す。よって、この時点では上記した行番号s「4」、リード箇所d「7」、計測終了箇所リストA「6,3」を入力とした分岐数計測処理の出力を得ることはできない。
【0063】
分岐数計測処理の入力が行番号s「5」、リード箇所d「7」及び計測終了箇所リストA「6,3,4」である場合、ソースコードの5行目には、if文(つまり、条件分岐)が記述されている。上記した
図6によれば、sが条件分岐である場合には、当該sを計測終了箇所リストAに追加するとともに、当該sを当該条件がtrueであるときに次に実行される行番号(ここでは、「6」)とした上で、新たなs、d、Aを入力とした分岐数計測処理が再度実行されることが示されている。この場合、
図10に示すように、分岐数計測(6,7,[6,3,4,5])が実行される。
【0064】
分岐数計測処理の入力が行番号s「6」、リード箇所d「7」及び計測終了箇所リストA「6,3,4,5」である場合、ソースコードの6行目は、計測終了箇所リストAに含まれている。上記した
図6によれば、sがAに含まれる場合には「∞」返すことが示されている。よって、分岐数計測(6,7,[6,3,4,5])の出力は、
図10に示すように「∞」となる。
【0065】
ここで、上記したようにソースコードの5行目には条件分岐が記述されているが、上記した
図6によれば、sが条件分岐である場合には、当該sを計測終了箇所リストAに追加するとともに、当該sを当該条件がfalseであるときに次に実行される行番号(ここでは、「9」)とした上で、新たなs、d、Aを入力とした分岐数計測処理が再度実行されることが示されている。この場合、
図11に示すように、分岐数計測(9,7,[6,3,4,5])が実行される。
【0066】
分岐数計測処理の入力が行番号s「9」、リード箇所d「7」及び計測終了箇所リストA「6,3,4,5」である場合、ソースコードの9行目には、条件分岐は記述されていない。この場合、
図12に示すように、分岐数計測(10,7,[6,3,4,5,9])が実行される。
【0067】
分岐数計測処理の入力が行番号s「10」、リード箇所d「7」及び計測終了箇所リストA「6,3,4,5,9」である場合、ソースコードの10行目には、条件分岐は記述されていない。なお、上記したソースコードの4行目に記述されているwhile文は処理を繰り返すため、行番号sが「10」である場合、次に実行される行番号は「4」である。この場合、
図13に示すように、分岐数計測(4,7,[6,3,4,5,9,10])が実行される。
【0068】
分岐数計測処理の入力が行番号s「4」、リード箇所d「7」及び計測終了箇所リストA「6,3,4,5,9,10」である場合、ソースコードの4行目は、計測終了箇所リストAに含まれている。この場合、分岐数計測(4,7,[6,3,4,5,9,10])の出力は、
図13に示すように「∞」となる。
【0069】
更に、上記した分岐数計測(4,7,[6,3,4,5,9,10])は、分岐数計測(10,7,[6,3,4,5,9])の出力を得るために再帰呼び出しによって実行される処理である。このため、分岐数計測(4,7,[6,3,4,5,9,10])の出力が「∞」である場合、
図13に示すように分岐数計測(10,7,[6,3,4,5,9])の出力も「∞」となる。分岐数計測(10,7,[6,3,4,5,9])の前に実行される分岐数計測(9,7,[6,3,4,5])の出力も同様に「∞」となる。
【0070】
上記したようにsが条件分岐である場合にはr1及びr2のうちの値が小さい方に1を加算した値を返すが、条件分岐が記述されている5行目についての分岐数計測(5,7,[6,3,4])に着目すると、r1(つまり、分岐数計測(6,7,[6,3,4,5]の出力)及びr2(つまり、分岐数計測(9,7,[6,3,4,5]の出力)のうちの値が小さい方に1を加算した値は「∞+1」である。この場合、「∞+1」は「∞」と同値とみなすことができるため、分岐数計測(5,7,[6,3,4])の出力は、
図14に示すように「∞」となる。
【0071】
次に、上記したようにソースコードの4行目には条件分岐が記述されているが、上記した
図6によれば、sが条件分岐である場合には、当該sを計測終了箇所リストAに追加するとともに、当該sを当該条件がfalseであるときに次に実行される行番号(ここでは、「12」)とした上で、新たなs、d、Aを入力とした分岐数計測処理が再度実行されることが示されている。この場合、
図15に示すように、分岐数計測(12,7,[6,3,4])が実行される。
【0072】
分岐数計測処理の入力が行番号s「12」、リード箇所d「7」及び計測終了箇所リストA「6,3,4」である場合、ソースコードの12行目には、条件分岐は記述されていない。この場合、
図16に示すように、分岐数計測(13,7、[6,3,4,12])が実行される。
【0073】
分岐数計測処理の入力が行番号s「13」、リード箇所d「7」及び計測終了箇所リストA「6,3,4,12」である場合、ソースコードの13行目は、当該ソースコードの最後の行であり、次に実行される行は存在しない。上記した
図6によれば、sの次に実行される行が存在しない場合には「∞」を返すことが示されている。よって、分岐数計測(13,7,[6,3,4,12])の出力は、
図16に示すように「∞」となる。分岐数計測(13,7,[6,3,4,12])の前に実行される分岐数計測(12,7,[6,3,4])の出力も同様に「∞」となる。
【0074】
上記したようにsが条件分岐である場合にはr1及びr2のうちの値が小さい方に1を加算した値を返すが、条件分岐が記述されている4行目についての分岐数計測(4,7、[6,3])に着目すると、r1(つまり、分岐数計測(5,7、[6,3,4])の出力)及びr2(つまり、分岐数計測(12,7、[6,3,4])の出力)のうちの値が小さい方に1を加算した値は「∞+1」である。この場合、「∞+1」は「∞」と同値とみなすことができるため、分岐数計測(4,7,[6,3])の出力は、
図17に示すように「∞」となる。分岐数計測(4,7,[6,3])の前に実行される分岐数計測(3,7,[6])の出力も同様に「∞」となる。
【0075】
上記したようにリード箇所「7」について分岐数計測処理が実行された場合、
図7~
図17において説明したように処理を繰り返すことにより、当該分岐数計測処理の出力として「∞」が得られる。この分岐数計測処理の出力「∞」は、調査起点箇所である3行目から計測終了箇所リストに含まれる計測終了箇所(例えば、6行目)を通らずにリード箇所である7行目に到達することができないことを示している。
【0076】
次に、リード箇所「10」について実行される分岐数計測処理について説明する。この場合、計測部13は、
図18に示すように、調査起点箇所s「3」、リード箇所d「10」及び計測終了箇所リストA「6」を入力として分岐数計測処理(つまり、分岐数計測(3,10,[6]))を実行する。
【0077】
ここで、調査起点箇所sは「3」であり、ソースコードの3行目には、条件分岐は記述されていない。この場合、
図19に示すように、分岐数計測(4,10,[6,3])が実行される。
【0078】
分岐数計測処理の入力が行番号s「4」、リード箇所d「10」及び計測終了箇所リストA「6,3」である場合、ソースコードの4行目には、条件分岐が記述されている。この場合、
図20に示すように、分岐数計測(5,10,[6,3,4])が実行される。なお、この分岐数計測処理における行番号s「5」は、行番号s「4」に記述されている条件(分岐)がtrueであるときに次に実行される行番号である。
【0079】
分岐数計測処理の入力が行番号s「5」、リード箇所d「10」及び計測終了箇所リストA「6,3,4」である場合、ソースコードの5行目には、条件分岐が記述されている。この場合、
図21に示すように、分岐数計測(6,10,[6,3,4,5])が実行される。この分岐数計測処理における行番号s「6」は、行番号s「5」に記述されている条件(分岐)がtrueであるときに次に実行される行番号である。
【0080】
分岐数計測処理の入力が行番号s「6」、リード箇所d「10」及び計測終了箇所リストA「6,3,4,5」である場合、ソースコードの6行目は、計測終了箇所リストAに含まれている。この場合、分岐数計測(6,10,[6,3,4,5])の出力は、
図21に示すように「∞」となる。
【0081】
ここで、上記したようにソースコードの5行目には条件分岐が記述されているため、
図22に示すように、分岐数計測(9,10,[6,3,4,5])が実行される。なお、この分岐数計測処理における行番号s「9」は、行番号s「5」に記述されている条件(分岐)がfalseであるときに次に実行される行番号である。
【0082】
分岐数計測処理の入力が行番号s「9」、リード箇所d「10」及び計測終了箇所リストA「6,3,4,5」である場合、ソースコードの9行目には、条件分岐は記述されていない。この場合、
図23に示すように、分岐数計測(10,10,[6,3,4,5,9])が実行される。
【0083】
分岐数計測処理の入力が行番号s「10」、リード箇所d「10」及び計測終了箇所リストA「6,3,4,5,9」である場合、ソースコードの10行目は、リード箇所d「10」と一致する。上記した
図6によれば、sがdと一致する場合には「0」を返すことが示されている。よって、分岐数計測(10,10,[6,3,4,5,9])の出力は、
図23に示すように「0」となる。分岐数計測(10,10,[6,3,4,5,9])の前に実行される分岐数計測(9,10,[6,3,4,5])の出力も同様に「0」となる。
【0084】
ここで、上記したようにsが条件分岐である場合にはr1及びr2のうちの値が小さい方に1を加算した値を返すが、条件分岐が記述されている5行目についての分岐数計測(5,10、[6,3,4])に着目すると、r1(つまり、分岐数計測(6,10、[6,3,4,5])の出力)及びr2(つまり、分岐数計測(9,10、[6,3,4,5])の出力)のうちの値が小さい方は「0」であり、当該値に1を加算した値は「1」である。この場合、分岐数計測(5,10,[6,3,4])の出力は、
図24に示すように「1」となる。本実施形態においては、このようにr1及びr2のうちの値が小さい方に1を加算した値を返すことにより、同一のリード箇所に到達するまでに複数の実行経路が存在する場合には、当該複数の実行経路の中から最小の分岐数を選択することができる。
【0085】
次に、上記したようにソースコードの4行目には条件分岐が記述されているため、
図25に示すように、分岐数計測(12,10,[6,3,4])が実行される。なお、この分岐数計測処理における行番号s「12」は、行番号s「4」に記述されている条件(分岐)がfalseであるときに次に実行される行番号である。
【0086】
分岐数計測処理の入力が行番号s「12」、リード箇所d「10」及び計測終了箇所リストA「6,3,4」である場合、ソースコードの12行目には、条件分岐は記述されていない。この場合、
図26に示すように、分岐数計測(13,10,[6,3,4,12])が実行される。
【0087】
分岐数計測処理の入力が行番号s「13」、リード箇所d「10」及び計測終了箇所リストA「6,3,4,12」である場合、ソースコードの13行目は、当該ソースコードの最後の行であり、次に実行される行は存在しない。この場合、分岐数計測(13,10,[6,3,4,12])の出力は、
図26に示すように「∞」となる。分岐数計測(13,10,[6,3,4,12])の前に実行される分岐数計測(12,10,[6,3,4])の出力も同様に「∞」となる。
【0088】
ここで、上記したようにsが条件分岐である場合にはr1及びr2のうちの値が小さい方に1を加算した値を返すが、条件分岐が記述されている4行目についての分岐数計測(4,10,[6,3])に着目すると、r1(つまり、分岐数計測(5,10,[6,3,4])の出力)及びr2(つまり、分岐数計測(12,10,[6,3,4])の出力)のうちの値が小さい方は「1」であり、当該値に1を加算した値は「2」である。この場合、分岐数計測(4,10,[6,3])の出力は、
図27に示すように「2」となる。分岐数計測(4,10,[6,3])の前に実行される分岐数計測(3,10,[6])の出力も同様に「2」となる。
【0089】
上記したようにリード箇所「10」について分岐数計測処理が実行された場合、
図18~
図27において説明したように処理を繰り返すことにより、当該分岐数計測処理の出力として「2」が得られる。この分岐数計測処理の出力「2」は、調査起点箇所である3行目から計測終了箇所リストに含まれる計測終了箇所(例えば、6行目)を通らずにリード箇所である10行目に到達するまでに条件分岐が2つ存在することを示している。
【0090】
次に、リード箇所「13」について実行される分岐数計測処理について説明する。この場合、計測部13は、
図28に示すように、調査起点箇所s「3」、リード箇所d「13」及び計測終了箇所リストA「6」を入力として分岐数計測処理(つまり、分岐数計測(3,13,[6]))を実行する。
【0091】
ここで、調査起点箇所sは「3」であり、ソースコードの3行目には、条件分岐は記述されていない。この場合、
図29に示すように、分岐数計測(4,13,[6,3])が実行される。
【0092】
分岐数計測処理の入力が行番号s「4」、リード箇所d「13」及び計測終了箇所リスト「6,3」である場合、ソースコードの4行目には、条件分岐が記述されている。この場合、
図30に示すように、分岐数計測(5,13,[6,3,4])が実行される。なお、この分岐計測処理における行番号s「5」は、行番号s「4」に記述されている条件(分岐)がtrueであるときに次に実行される行番号である。
【0093】
分岐数計測処理の入力が行番号s「5」、リード箇所d「13」及び計測終了箇所リストA「6,3,4」である場合、ソースコードの5行目には、条件分岐が記述されている。この場合、
図31に示すように、分岐数計測(6,13,[6,3,4,5])が実行される。この分岐数計測処理における行番号s「6」は、行番号s「5」に記述されている条件(分岐)がtrueであるときに次に実行される行番号である。
【0094】
分岐数計測処理の入力が行番号s「6」、リード箇所d「13」及び計測終了箇所リストA「6,3,4,5」である場合、ソースコードの6行目は、計測終了箇所リストAに含まれている。この場合、分岐数計測(6,13,[6,3,4,5])の出力は、
図31に示すように「∞」となる。
【0095】
ここで、上記したようにソースコードの5行目には条件分岐が記述されているため、
図32に示すように、分岐数計測(9,13,[6,3,4,5])が実行される。なお、この分岐数計測処理における行番号s「9」は、行番号s「5」に記述されている条件(分岐)がfalseであるときに次に実行される行番号である。
【0096】
分岐数計測処理の入力が行番号s「9」、リード箇所d「13」及び計測終了箇所リストA「6,3,4,5」である場合、ソースコードの9行目には、条件分岐は記述されていない。この場合、
図33に示すように、分岐数計測(10,13,[6,3,4,5,9])が実行される。
【0097】
分岐数計測処理の入力が行番号s「10」、リード箇所d「13」及び計測終了箇所リストA「6,3,4,5,9」である場合、ソースコードの10行目には、条件分岐は記述されていない。なお、上記したソースコードの4行目に記述されているwhile文は処理を繰り返すため、行番号s「10」である場合、次に実行される行番号は「4」である。この場合、
図34に示すように、分岐数計測(4,13,[6,3,4,5,9,10])が実行される。
【0098】
分岐数計測処理の入力が行番号s「4」、リード箇所d「13」及び計測終了箇所リストA「6,3,4,5,9,10」である場合、ソースコードの4行目は、計測終了箇所リストAに含まれている。この場合、分岐数計測(4,13,[6,3,4,5,9,10])の出力は、
図34に示すように「∞」となる。同様に、上記した分岐数計測(4,13,[6,3,4,5,9,10])の前に実行される分岐数計測(10,13,[6,3,4,5,9])の出力も同様に「∞」となり、当該分岐数計測(10,13,[6,3,4,5,9])の前に実行される分岐数計測(9,13,[6,3,4,5])の出力も同様に「∞」となる。
【0099】
ここで、上記したようにsが条件分岐である場合にはr1及びr2のうちの値が小さい方に1を加算した値を返すが、条件分岐が記述されている5行目についての分岐数計測(5,13,[6,3,4])に着目すると、r1(つまり、分岐数計測(6,13,[6,3,4,5])の出力)及びr2(つまり、分岐数計測(9,13,[6,3,4,5]の出力)のうちの値が小さい方に1を加算した値は「∞+1」である。上記したように「∞+1」は「∞」と同値とみなすことができるため、分岐数計測(5,13,[6,3,4])の出力は、
図35に示すように「∞」となる。
【0100】
次に、上記したようにソースコードの4行目には条件分岐が記述されているため、
図36に示すように、分岐数計測(12,13,[6,3,4])が実行される。なお、この分岐数計測処理における行番号s「12」は、行番号s「4」に記述されている条件(分岐)がfalseであるときに次に実行される行番号である。
【0101】
分岐数計測処理の入力が行番号s「12」、リード箇所d「13」及び計測終了箇所リストA「6,3,4」である場合、ソースコードの12行目には、条件分岐は記述されていない。この場合、
図37に示すように、分岐数計測(13,13,[6,3,4,12])が実行される。
【0102】
分岐数計測処理の入力が行番号s「13」、リード箇所d「13」及び計測終了箇所リストA「6,3,4,12」である場合、ソースコードの13行目は、リード箇所d「13」と一致する。この場合、分岐数計測(13,13,[6,3,4,12])の出力は、
図37に示すように「0」となる。分岐数計測(13,13,[6,3,4,12])の前に実行される分岐数計測(12,13,[6,3,4])の出力も同様に「0」となる。
【0103】
ここで、上記したようにsが条件分岐である場合にはr1及びr2のうちの値が小さい方に1を加算した値を返すが、条件分岐が記述されている4行目についての分岐数計測(4,13,[6,3])に着目すると、r1(つまり、分岐数計測(5,13,[6,3,4]の出力)及びr2(つまり、分岐数計測(12,13,[6,3,4])の出力)のうちの値が小さい方は「0」であり、当該値に1を加算した値は「1」である。この場合、分岐数計測(4,13,[6,3])の出力は、
図38に示すように「1」となる。分岐数計測(4,13,[6,3])の前に実行される分岐数計測(3,13,[6])の出力も同様に「1」となる。
【0104】
上記したようにリード箇所「13」について分岐数計測処理が実行された場合、
図28~
図38において説明したように処理を繰り返すことにより、当該分岐数計測処理の出力として「1」が得られる。この分岐数計測処理の出力「1」は、調査起点箇所である3行目から計測終了箇所リストに含まれる計測終了箇所を通らずにリード箇所である13行目に到達するまでに条件分岐が1つ存在することを示している。
【0105】
上記したリード箇所「7」、「10」及び「13」の各々について分岐数計測処理が実行された結果(つまり、分岐数計測処理の出力として得られる分岐数)は、当該リード箇所に対応づけて分岐数表に追加される。
【0106】
図39は、上記した分岐数計測処理の概略を示している。上記したようにリード箇所「7」について実行された分岐数計測処理の出力は「∞」であるため、
図39に示す分岐数表においては、リード箇所(行番号)「7」に対応づけて分岐数「∞」が追加されている。同様に、リード箇所「10」について実行された分岐数計測処理の出力は「2」であるため、
図39に示す分岐数表においては、リード箇所(行番号)「10」に対応づけて分岐数「2」が追加されている。更に、リード箇所「13」について実行された分岐数計測処理の出力は「1」であるため、
図39に示す分岐数表においては、リード箇所(行番号)「13」に対応づけて分岐数「1」が追加されている。
【0107】
ここで、上記したように調査起点箇所からリード箇所までの実行経路中に条件分岐が多いほど当該リード箇所に与える影響を見落とす可能性が高くなるという観点によれば、
図39に示す分岐数表に追加されたリード箇所のうちのリード箇所「10」(つまり、ソースコードの10行目)が、調査起点箇所において調査対象変数に対する値が変更されたことによる影響を見落としやすい箇所であるといえる。この場合には、
図40に示すように、リード箇所「10」が表示(出力)される。
【0108】
なお、本実施形態においては例えば実行経路中に分岐数が最も多いリード箇所を表示するが、分岐数「∞」は、上記したように調査起点箇所から計測終了箇所を通らずにリード箇所に到達できないことを示す。よって、本実施形態において、分岐数が「∞」であるリード箇所は表示の対象とはされない(つまり、分岐数が最も多いリード箇所としては扱われない)ものとする。この場合、分岐数表においては、分岐数「∞」の代わりに、リード箇所が表示の対象でないことを示す「-」等が追加されてもよい。
【0109】
上記したように本実施形態においては、ソースコードにおいて値が変更された調査対象変数及び当該調査対象変数に対する値が変更された行を示す調査起点箇所(第1行番号)を入力し、当該ソースコードを構成する複数の行のうち、調査対象変数が読み取られる行を示すリード箇所(第2行番号)を特定し、調査起点箇所(によって示される行)から特定されたリード箇所(によって示される行)までの実行経路中に記述されている条件分岐の数(分岐数)を計測し、当該計測された分岐数に基づいてリード箇所を表示する。
【0110】
本実施形態においては、このような構成により、調査対象変数に対する値が変更されたことによる影響を見落としやすいリード箇所をユーザに提示することができるため、ソースコードに対する編集作業を支援することが可能となる。具体的には、
図40に示すようにリード箇所「10」が表示された場合には、ユーザは、調査対象変数に対する値の変更がソースコードの10行目(リード箇所)に対して与える影響等に関して検討漏れがなかったか(つまり、十分に検討されているか)を確認することができる。
【0111】
なお、本実施形態においてはリード箇所(行番号)のみを表示するものとして説明したが、当該リード箇所について実行される分岐数計測処理の結果(分岐数)を更に表示してもよい。
【0112】
また、本実施形態においては分岐数が最も大きいリード箇所を表示するものとして説明したが、分岐数表に追加されたリード箇所のうち、分岐数が予め定められた値以上であるリード箇所を表示してもよい。例えば
図39に示す分岐数表の例の場合であれば、例えば分岐数が1以上であるリード箇所「10」及び「13」が表示されてもよい。
【0113】
更に、上記したリード箇所は、例えば格納部11に格納されているソースコード上で表示されてもよい。上記したようにリード箇所「10」を表示する場合であれば、10行目に他の行と区別可能な色または加工を施したソースコードを表示するようにしてもよい。すなわち、本実施形態においては、分岐数が多いリード箇所(つまり、調査対象変数に対する値の変更による影響を見落としやすいリード箇所)をユーザが容易に把握することが可能な態様で当該リード箇所が表示(提示)されればよい。
【0114】
また、リード箇所は、分岐数表の形式で表示されてもよい。この場合、例えば分岐数でリード箇所をソートした分岐数表が表示されるようにしてもよい。
【0115】
また、本実施形態においては、調査起点箇所からリード箇所までの複数の実行経路(例えば、第1及び第2実行経路)が存在する場合、当該第1実行経路中に記述されている条件分岐の数(第1数)よりも小さい第2実行経路中に記述されている条件分岐の数(第2数)が計測される。すなわち、本実施形態においては、複数の実行経路が存在する場合には最小となる分岐数が計測(選択)される。
【0116】
更に、本実施形態においては、調査起点箇所からリード箇所までの実行経路中に調査対象変数が上書きされる行(つまり、ライト箇所)が存在する場合、当該リード箇所についての分岐数は「∞(-)」となり、当該リード箇所は表示されない。
【0117】
このような構成によれば、不当に分岐数が多いリード箇所や分岐数を計測することができないリード箇所が表示されることを抑制し、適切なリード箇所を表示することができる。
【0118】
なお、本実施形態においては、例えばコンパイルする(つまり、プログラムの実行のための環境を構築する)といった手間をかけることなく、変数に対する値の変更が影響を与える箇所(リード箇所)を静的解析により評価することが可能であるため、ユーザの利便性を向上させることができる。
【0119】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0120】
10…ソフトウェア開発支援装置、11…格納部、12…入力部、13…計測部、14…表示部、101…CPU、102…不揮発性メモリ、103…主メモリ、104…BIOS-ROM、105…システムコントローラ、106…入力デバイス、107…表示デバイス、108…EC。