特許第5741264号(P5741264)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士電機株式会社の特許一覧

特許5741264図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法
<>
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000002
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000003
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000004
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000005
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000006
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000007
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000008
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000009
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000010
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000011
  • 特許5741264-図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5741264
(24)【登録日】2015年5月15日
(45)【発行日】2015年7月1日
(54)【発明の名称】図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法
(51)【国際特許分類】
   G06F 11/36 20060101AFI20150611BHJP
【FI】
   G06F9/06 620M
   G06F9/06 620R
【請求項の数】8
【全頁数】13
(21)【出願番号】特願2011-153143(P2011-153143)
(22)【出願日】2011年7月11日
(65)【公開番号】特開2013-20442(P2013-20442A)
(43)【公開日】2013年1月31日
【審査請求日】2014年6月16日
(73)【特許権者】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】110000176
【氏名又は名称】一色国際特許業務法人
(72)【発明者】
【氏名】徳田 寛和
【審査官】 石川 亮
(56)【参考文献】
【文献】 特開平06−250832(JP,A)
【文献】 特開2011−209839(JP,A)
【文献】 特開2005−301568(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
機能を表す図形により記述される図形式プログラムの特徴と、前記図形式プログラムから生成されたテキスト形式のソースコードの特徴との関連を分析した関連分析結果を格納する関連データベースと、
前記図形式プログラムが入力される図形式プログラム入力手段と、
前記図形式プログラム入力手段に入力された前記図形式プログラムの特徴を分析する図形式プログラム分析手段と、
前記図形式プログラム分析手段の分析結果と、前記関連データベースに格納されている前記関連分析結果とに基づいて、前記図形式プログラム入力手段に入力された前記図形式プログラムを評価する図形式プログラム評価手段と、
を備えることを特徴とする図形式プログラム評価システム。
【請求項2】
前記関連データベースは、前記図形式プログラムの特徴を定量化した第1の特徴量と、前記ソースコードの特徴を定量化した第2の特徴量との関連を統計的に分析した前記関連分析結果を格納することを特徴とする請求項1に記載の図形式プログラム評価システム。
【請求項3】
前記関連データベースは、前記第1の特徴量を独立変数とし、前記第2の特徴量を従属変数とした回帰分析によって求められた回帰式を格納し、
前記図形式プログラム分析手段は、前記図形式プログラム入力手段に入力された前記図形式プログラムの特徴を定量化した前記第1の特徴量を求め、
前記図形式プログラム評価手段は、前記図形式プログラム分析手段によって求められた前記第1の特徴量と、前記回帰式とに基づいて、前記図形式プログラム入力手段に入力された前記図形式プログラムから前記ソースコードを生成した場合の前記第2の特徴量の予測値を求め、当該予測値に基づいて前記図形式プログラム入力手段に入力された前記図形式プログラムを評価することを特徴とする請求項2に記載の図形式プログラム評価システム。
【請求項4】
前記図形式プログラムは、機能を表すブロックと、当該ブロック間を接続する接続線とを含み、
前記第1の特徴量は、前記図形式プログラムに含まれる前記ブロックの数、前記図形式プログラムに含まれる前記接続線の数、前記図形式プログラムにおける入力の数、前記図形式プログラムにおける出力の数、前記図形式プログラムにおける合流の数、前記図形式プログラムにおける分岐の数、および前記図形式プログラムにおいて条件により実行される区画の数の少なくとも1つであり、
前記第2の特徴量は、前記ソースコードにおける実行行数、前記ソースコードにおける自動変数の数、前記ソースコードにおける入れ子の深さの最大数、および前記ソースコードにおける経路複雑度の少なくとも1つであることを特徴とする請求項2又は請求項3に記載の図形式プログラム評価システム。
【請求項5】
前記図形式プログラム入力手段に入力された前記図形式プログラムから前記ソースコードを生成するソースコード生成手段と、
前記ソースコード生成手段によって生成された前記ソースコードの特徴を分析するソースコード分析手段と、
前記図形式プログラム分析手段の分析結果と、前記ソースコード分析手段の分析結果との関連を分析して前記関連分析結果を前記関連データベースに格納させる関連分析手段と、
前記図形式プログラム評価手段の評価結果を出力する評価結果出力手段と、
をさらに備えることを特徴とする請求項1ないし請求項4の何れかに記載の図形式プログラム評価システム。
【請求項6】
機能を表す図形により記述される図形式プログラムの特徴と、前記図形式プログラムから生成されたテキスト形式のソースコードの特徴との関連を分析した関連分析結果を格納する記憶装置と、
前記図形式プログラムが入力される入力装置と、
を備えるコンピュータに、
前記入力装置に入力された前記図形式プログラムの特徴を分析する図形式プログラム分析処理と、
前記図形式プログラム分析処理の分析結果と、前記記憶装置に格納されている前記関連分析結果とに基づいて、前記入力装置に入力された前記図形式プログラムを評価する図形式プログラム評価処理と、
を実行させることを特徴とする図形式プログラム評価プログラム。
【請求項7】
前記入力装置に入力された前記図形式プログラムから前記ソースコードを生成するソースコード生成処理と、
前記ソースコード生成処理で生成された前記ソースコードの特徴を分析するソースコード分析処理と、
前記図形式プログラム分析処理の分析結果と、前記ソースコード分析処理の分析結果との関連を分析して前記関連分析結果を前記記憶装置に格納させる関連分析処理と、
をさらに実行させることを特徴とする請求項6に記載の図形式プログラム評価プログラム。
【請求項8】
機能を表す図形により記述される図形式プログラムの特徴と、前記図形式プログラムから生成されたテキスト形式のソースコードの特徴との関連を分析した関連分析結果を格納するデータベースを用いて、
前記図形式プログラムの特徴を分析し、
前記図形式プログラムの分析結果と、前記関連分析結果とに基づいて、前記図形式プログラムを評価することを特徴とする図形式プログラムの評価方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、図形式プログラム評価システム、図形式プログラム評価プログラムおよび図形式プログラムの評価方法に関する。

【背景技術】
【0002】
一般的に、プログラムの製作に際しては、C言語などの高級言語を利用してソースコード(原始プログラム)を記述し、コンパイラによって、ソースコードからコンピュータが直接実行可能な形式に変換するという方法が用いられている。この場合、ソースコードは、通常テキスト形式で記述される。
【0003】
一方、近年、機能を表す図形を用いて記述される図形式プログラムも知られており、図形式プログラムからC言語などの高級言語によるソースコードや、コンピュータが直接実行可能な形式に変換するシステムが用いられている。例えば、特許文献1では、ブロック要素とブロック要素間の接続関係とを表記したブロック図に基づいて、計算機言語によるプログラムを自動生成するソフトウェア開発支援装置が開示されている。また、例えば、特許文献2では、プログラム要素とプログラム要素を結合する結合情報とからなるプログラム情報を用いて、実行可能なプログラムを効率よく自動生成することができるプログラム自動生成装置が開示されている。
【0004】
このような図形式プログラムを用いることによって、事前に作成されたプログラムの詳細設計書からC言語などの高級言語によるソースコードへの変換作業における冗長さを回避して開発工数を削減したり、人為ミス(単純ミス)の混入を回避したりすることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2011−13887号公報
【特許文献2】特開2006−285480号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、プログラムの不具合を減らし、品質を向上させるための技術として、プログラムを実際に実行して確認する動的検証(動的プログラム解析)技術のほか、プログラムを実行せず、プログラムの形(形式)を評価する静的検証(静的コード解析)技術が知られている。
【0007】
しかしながら、図形式プログラムは、テキスト形式のC言語のような高級言語に比べて後発であるため、静的検証技術の確立が遅れており、品質の良否を議論するための一般的な指標も定まっていない。そのため、図形式プログラムの静的検証を実施する場合には、一般に、図形式プログラムをC言語などの既存の形式のプログラムに変換した後、生成されたソースコードを静的検証するという手法が用いられている。さらに、図形式プログラムをC言語のようなテキスト形式の高級言語によるプログラムと組み合わせて用いる場合もあり、この場合も、図形式プログラムから、C言語など既存のプログラムと同じ形式のプログラムを生成する必要がある。
【0008】
しかしながら、このような静的検証の方法では、静的検証の結果を用いてプログラムの修正を行う場合、図形式プログラムを一旦C言語のようなテキスト形式の高級言語に変換して静的検証を行い、再度図形式プログラムに戻って修正を行う必要がある。そのため、作業工数が多くなり、効率よく作業を進めることができない。また、特許文献1のソフトウェア開発支援装置では、プログラムコードを生成する前に不適切なブロック図の表記を検出することができるものの、既存の形式のプログラムと組み合わせて用いる場合には、両者を同一の基準で検証を実施することができない。
【課題を解決するための手段】
【0009】
前述した課題を解決する主たる本発明は、機能を表す図形により記述される図形式プログラムの特徴と、前記図形式プログラムから生成されたテキスト形式のソースコードの特徴との関連を分析した関連分析結果を格納する関連データベースと、前記図形式プログラムが入力される図形式プログラム入力手段と、前記図形式プログラム入力手段に入力された前記図形式プログラムの特徴を分析する図形式プログラム分析手段と、前記図形式プログラム分析手段の分析結果と、前記関連データベースに格納されている前記関連分析結果とに基づいて、前記図形式プログラム入力手段に入力された前記図形式プログラムを評価する図形式プログラム評価手段と、を備えることを特徴とする図形式プログラム評価システムである。
【0010】
本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。
【発明の効果】
【0011】
本発明によれば、図形式プログラムの静的検証を、既存の形式のプログラムと同じ基準で、効率的に実施することができる。
【図面の簡単な説明】
【0012】
図1】本発明によるソースコード自動生成・評価システムの一つの実施の形態を示す図である。
図2】図形式プログラム入力手段1を使用して製作した図形式プログラムの一例を示す図である。
図3図2に示した図形式プログラムから、ソースコード生成手段2により変換されたC言語プログラムの一例を示す図である。
図4図2に示した図形式プログラムに含まれるブロックの数を計数する方法を説明する図である。
図5図2に示した図形式プログラムにおいて、図4の処理によって割り当てられた符号を重ねて表示した図である。
図6図2に示した図形式プログラムにおいて、入力の数、出力の数、合流の数、および分岐の数を計数する方法を説明する図である。
図7】図形式プログラム入力手段1を使用して製作した図形式プログラムの別の例を示す図である。
図8図7に示した図形式プログラムから、ソースコード生成手段2により変換されたC言語プログラムの一例を示す図である。
図9】元となる図形式プログラムが同一である2つの数値化の結果の組が格納された、関連データベース6のデータ構造の一例を示す図である。
図10】重回帰分析の結果得られた重み係数が格納された、関連データベース6のデータ構造の一例を示す図である。
図11】本発明によるソースコード自動生成・評価システムを汎用の計算機システム上に構築する実施の形態を示す図である。
【発明を実施するための形態】
【0013】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。
【0014】
図1は本発明によるソースコード自動生成・評価システムの一つの実施の形態を示した図である。この例では、ソースコード生成手段2により変換されるテキスト形式のプログラムは、C言語のプログラムであるものとする。
【0015】
プログラムを製作する作業者は、図形式プログラム入力手段1を使用して図形式プログラムを製作する。製作した図形式プログラムは、図形式プログラム分析手段4にて分析が行われ、対象となる図形式で記述されたプログラムの特徴を数値化する。数値化した結果は、図形式プログラム評価手段7にて、関連データベース6の情報を基に評価される。評価結果は図形式プログラム評価結果表示手段8を用いて表示される。この表示された結果を基にプログラムを製作する作業者は、入力した図形式プログラムに問題があれば、これを修正し、問題がなくなるまで、これを反復して、図形式プログラムを完成させる。図形式プログラムが完成したら、ソースコード生成手段2によりC言語のソースコードを生成して、ソースコード自動生成・評価システム100による作業を完了する。
【0016】
さらに、今回製作したプログラムの情報を関連データベース6に反映させるときには以下の処理を実行する。プログラムを製作する作業者が図形式プログラム入力手段1を使用して図形式プログラムを製作した段階で、ソースコード生成手段2によりC言語のソースコードを生成する。次にソースコード分析手段3により生成したC言語のソースコードを数値化する。ここで、関連分析手段5により、ソースコード分析手段3により数値化した結果と、図形式プログラム分析手段4により数値化した結果との相関を分析する。分析結果は、関連データベース6に格納される。
【0017】
ソースコード生成手段2やソースコード分析手段3による処理は通常時間がかかるので、この作業は、図形式プログラム入力手段1によりプログラムを製作するのとは、別のタイミングで実施するのが望ましい。
【0018】
図2は、図形式プログラム入力手段1を使用して製作した図形式プログラムの例である。これは、データフロー図を示しており、In−1に入力された信号データに対しては、処理aが実行される。また、In−2に入力された信号データに対して処理dが実行され、その結果に対して処理eが実行される。さらに、これらの結果に対して処理bが実行され、その結果に対して処理cが実行された後、その結果はOut−1に出力されることを意味している。
【0019】
図2のプログラムは、ソースコード生成手段2により、例えば、図3のようなC言語プログラムに変換される。図2の図形式プログラムから、ソースコード生成手段2によりC言語のプログラムに変換する方法は、例えば特許文献2に記載の方法など、公知の方法を用いることができる。
【0020】
図2に示した図形式プログラムは、図形式プログラム分析手段4にて分析が行われる。分析(対象となる図形式で記述されたプログラムの特徴の数値化)の方法は種々の方法があるが、例えば、図形式プログラムに含まれるブロックの数は、分析項目の一例である。図2において、「図形式プログラムに含まれるブロックの数」を計数する方法を図4を用いて説明する。
【0021】
S201では、対象となる図形式プログラムから、図形要素を1つ選択する。S202では選択した図形要素が接続線であるかどうか判定する。接続線であったときにはS203に進み、L1、L2、L3のようにLで始まる新たな符号を割り当てる。また、接続線でなかったときには、S204に進み、E1、E2、E3のようにEで始まる新たな符号を割り当てる。符号を割り当てたら、この図形要素についての処理を終了し、これをすべての図形要素について実行する。すべての図形要素について実行が終わったら、ループを抜け、処理を終了する。図4の処理を実行した後、割り当てた符号を図2に重ねて表示すると図5のようになる。ここで、Eで始まる符号が割り当てられた数が、図形式プログラムに含まれるブロックの数となる。図2の例では、この値は8になる。
【0022】
また、図形式プログラムに含まれる接続線の数は、分析項目の一例である。これは、同様にLで始まる符号が割り当てられた数が図形式プログラムに含まれる接続線の数となる。図2の例では、この値は7になる。
【0023】
また、入力の数は、分析項目の一例である。この場合、すべてのEで始まる符号について調べ、入力が無く、出力があるブロックの数を計数すれば、値が求まる。その具体的な処理の方法としては、すべてのLで始まる図形要素について、その両側にある図形要素の符号を特定し、これを列挙する。図2の図形式プログラムの場合、この結果は、例えば図6のように表現することができる。その後、第1列には現れるが、第3列には現れないものの数を数える。例えば、E1は、第1列には、第1行で現れるが、第3列には現れない。従って、E1は入力の要素である。次にE2については、第1列には、第2行で現れるが、第3列には、第1行で現れる。従って、E2は入力の要素ではない。このようにすべての行について調べた後、重複するものを除外すれば入力の数となる。図2の例では、この値は2になる。
【0024】
また、出力の数は、分析項目の一例である。この場合、図6を用いて、第3列には現れるが、第1列には現れないものの数を数え、重複を除けば良い。図2の例では、この値は1になる。
【0025】
また、合流の数は、分析項目の一例である。この場合も、図6を用いて計数できる。すなわち、第3列に複数回現れる符号の数を数えればよい。図2の例の場合、E6は第3列に2回現れるので、これが合流に相当する。計数の方法は、第3列をキーにソートし、同じものが連続する符号の種類を数えればよい。図2の例ではこの値は1になる。
【0026】
また、分岐の数は、分析項目の一例である。この場合も、同様に図6を用いて、第1列に複数回現れる符号の数を同様の方法で測定すればよい。図2の例では、この値は0になる。
【0027】
図7は、図形式プログラム入力手段1を使用して製作した図形式プログラムの別の例である。この図では破線で囲われた領域は、その下からの入力が真のときのみ実行されることを意味している。そのため、ソースコード生成手段2により、例えば、図8のような分岐構造のあるC言語プログラムに変換される。このようなブロック図の場合、条件により実行される区画の数は、分析項目の一例となる。
【0028】
一方、ソースコード分析手段3では、ソースコード生成手段2により変換されたC言語のプログラムを分析する。例えば、プログラムの実行行数は、分析項目の一例である。実行行数の数え方も幾通りかあるが、例えば、ソースコード全体から、コメントのみの行と、空の行を除いた行数を数えれば良い。この数え方によると、例えば、図3のソースコードでは、実行行数は、11行である。図8のソースコードでは、実行行数は、14行である。
【0029】
また、自動変数の数は、変換されたC言語プログラムの分析項目の一例である。図3のソースコードでは、自動変数の数は2である。図8の例でも、自動変数の数は2である。
【0030】
また、入れ子(ネスト)の深さは、変換されたC言語プログラムの分析項目の一例である。図3のソースコードでは、入れ子の深さの最大数は0である。また、図8のソースコードでは、入れ子の深さの最大数は1である。
【0031】
また、マッケーブ(Thomas McCabe)による経路複雑度や循環的複雑度(Cyclomatic complexity)などと呼ばれるよく知られた指標も、変換されたC言語プログラムの分析項目の一例である。経路複雑度は判定の数に1を加算することで求められるので、図3のソースコードでは、経路複雑度は1である。図8のソースコードでは、経路複雑度は2である。
【0032】
このように図形式プログラム分析手段4は図形式プログラム入力手段1により入力された図形式プログラムを数値化する。また、ソースコード分析手段3は、入力された図形式プログラムをソースコード生成手段2で自動コード生成した結果のソースコードを数値化する。関連分析手段5においては、これらの源を同一とする2つの数値化の結果の間の関連を統計的手法を用いて分析する。
【0033】
まず、関連分析手段5は、このような測定結果の組が得られたら、これを関連データベース6に格納する。複数の測定結果の組が格納されたら、関連分析手段5は、これらのデータにより、統計処理を行えるようになる。
【0034】
図9は、関連データベース6のデータ構造の一部を示した例である。元となる図形式プログラムが同一の数値化の結果1組に対して、1行のデータが記録される。図9の例では、一番左の列にプログラムの名称が記録される。図9の例では、左から2番目から8番目までは図形式プログラム分析手段4により数値化された値が記録される。図9の例では、左から9番目から12番目まではソースコード分析手段3により数値化された値が記録される。
【0035】
関連分析手段5は、ソースコード分析手段3により数値化した値を1つ選択して従属変数(目的変数)とし、図形式プログラム分析手段4により数値化した値(複数)を独立変数(説明変数)とした重回帰分析を行い、最小2乗法のような方法を用いて、重み係数(偏回帰係数)を計算する。関連分析手段5は、図形式プログラム分析手段4により数値化したすべての値に対してこれを行い、重み係数を計算する。この計算結果は、重回帰式とともに、関連データベース6に格納される。
【0036】
図10は、関連データベース6のデータ構造の一部を示した例で、重回帰分析の結果得られた重み係数の記録方式を示したものである。この表では、求めたい従属変数を縦に配置し、各行ごとの従属変数の予測値を独立変数から計算するための、各独立変数に対応する重み係数を横に記録している。この係数を用いてそれぞれの従属変数の予測値を計算するが、これは、図10の左上のセルに記載されている重回帰式にて計算する。
【0037】
このように重回帰式に対応した重み係数が関連データベース6に格納されるので、図形式プログラム入力手段1により図形式プログラムを作成した際に、ソースコード生成手段2、ソースコード分析手段3による処理を行わなくとも、入力した図形式プログラムを図形式プログラム分析手段4により数値化し、図形式プログラム評価手段7により、数値化した値を重回帰式に当てはめることにより、ソースコード分析手段3により数値化されると予測される予測値が取得される。
【0038】
ところで、C言語のプログラムの品質保証の手段としては、静的検証によりソースコードを定量化し、その値に基準を設けて、基準値を逸脱した際には設計規約違反として、逸脱しないようにソースコードを修正するというような方法が一般に行われているが、図形式プログラム評価手段7により、重回帰式により計算される値は、これに相当する予測値になるため、図形式プログラム評価手段7は、この基準に照らし合わせて、図形式プログラム入力手段1により入力された図形式プログラムを評価し、基準値の逸脱があるかどうか、判定する。その結果は、図形式プログラム評価結果表示手段8により表示される。図形式プログラム入力手段1を使用して図形式プログラムを製作する作業者は、この結果を見て、逸脱がある場合には、図形式プログラムを修正し、逸脱が起こらないように図形式プログラムを修正する。
【0039】
ここで示したような、ソースコード自動生成・評価システム100は、図11に示したような汎用の計算機システム上に構築することができる。図11に示したコンピュータシステムは、演算装置51、主記憶装置52、ディスプレイ装置53、補助記憶装置54、入力装置55から構成される。そして、ソースコード自動生成・評価プログラムが補助記憶装置54からバス56を介して主記憶装置52に読み込まれ、演算装置51にて実行されることによって、ソースコード自動生成・評価システム100の各手段の処理を実行することができる。
【0040】
プログラムを製作する作業者は、入力装置55を使用して図形式プログラムの入力作業を行い、その結果は、ディスプレイ装置53に表示される。また、図形式プログラムの入力後、評価の指示を入力装置55から行うことにより、図形式プログラム分析手段4が起動され、その結果と、補助記憶装置54に格納された関連データベース6を参照して図形式プログラム評価手段7が実行される。その結果は、ディスプレイ装置53に表示されるので、この結果を見て、プログラムを製作する作業者は、入力装置55により、図形式プログラムの修正を行う。
【0041】
また、関連の分析を行うときには、作業者が入力装置55により、分析実行の指示を行い、まだソースコード生成手段2によるソースコード生成が行われていないときにはソースコードの生成を行い、ソースコード分析手段3により、生成されたソースコードの分析が行われる。また、図形式プログラム分析手段4により図形式プログラムの分析が行われていないときには、図形式プログラムの分析が実行される。その後、これらの関連が、関連分析手段5にて実行され、その結果が補助記憶装置54に格納された関連データベース6に格納され、参照可能な状態となる。
【0042】
なお、上記実施形態では、作業者は、ソースコード自動生成・評価システム100を用いて、図形式プログラムの製作および評価の両方を行うことができるが、これに限定されるものではない。例えば、重回帰分析の結果得られた重み係数が予め格納された関連データベースを備え、図形式プログラム製作システムによって別途製作された図形式プログラムを読み込み、関連データベースを参照して評価する、図形式プログラム評価システムを構築してもよい。当該図形式プログラム評価システムは、関連データベースのほか、少なくとも、図形式プログラム入力手段、図形式プログラム分析手段、および図形式プログラム評価手段を備える。好ましくは、さらに、図形式プログラムの評価結果を表示するディスプレイ装置や、印刷するプリンタ装置などの評価結果出力手段を備える。
【0043】
前述したように、図1に示したソースコード自動生成・評価システム100(図形式プログラム評価システム)において、入力された図形式プログラムの特徴を分析した分析結果と、関連データベース6に格納されている、図形式プログラムおよびソースコードの特徴間の関連を分析した関連分析結果とに基づいて、図形式プログラムを評価することによって、図形式プログラムからソースコードを生成してソースコードの特徴を分析することなく、図形式プログラムの静的検証を、既存の形式のプログラムと同じ基準で、効率的に実施することができる。したがって、既存の形式のプログラムと同じ実績のある基準で評価した図形式プログラムを効率的に製作できるようになり、不具合の少ない、品質の良い図形式プログラムを安定して迅速に製作できるようになる。
【0044】
また、図形式プログラムおよびソースコードの特徴を定量化(数値化)することによって、それぞれ定量化された第1および第2の特徴量間の関連を統計的手法を用いて分析することができ、当該統計処理された関連分析結果を関連データベース6に格納することができる。
【0045】
また、第1の特徴量を独立変数とし、第2の特徴量を従属変数とした(重)回帰分析を行うことによって、入力された図形式プログラムに基づく第1の特徴量を(重)回帰式に当てはめて第2の特徴量の予測値を求めることができ、当該予測値に基づいて図形式プログラムを評価することができる。
【0046】
また、図形式プログラムに基づく第1の特徴量としては、ブロックの数、接続線の数、入力の数、出力の数、合流の数、分岐の数、条件により実行される区画の数などを用いることができる。一方、ソースコードに基づく第2の特徴量としては、実行行数、自動変数の数、入れ子の深さの最大数、経路複雑度など、C言語のようなテキスト形式の高級言語において一般的に用いられている指標を用いることができる。
【0047】
また、図形式プログラムからソースコードを生成してソースコードの特徴を分析する手段をさらに備えることによって、図形式プログラムおよびソースコードの特徴間の関連を分析して、当該関連分析結果を関連データベース6に反映させることができる。さらに、図形式プログラムの評価結果を表示するディスプレイ装置などの出力手段を備えることによって、評価結果を参照しながら図形式プログラムの修正を行うことができる。
【0048】
また、コンピュータに、ソースコード自動生成・評価システム100の図形式プログラム分析手段4および図形式プログラム評価手段7の処理を実行させる図形式プログラム評価プログラムにおいて、入力された図形式プログラムの分析結果と、補助記憶装置54に格納されている関連分析結果とに基づいて、図形式プログラムを評価することによって、図形式プログラムからソースコードを生成してソースコードの特徴を分析することなく、図形式プログラムの静的検証を、既存の形式のプログラムと同じ基準で、効率的に実施することができる。
【0049】
また、コンピュータに、ソースコード生成手段2、ソースコード分析手段3、および関連分析手段5の処理をさらに実行させることによって、図形式プログラムおよびソースコードの特徴間の関連を分析して、当該関連分析結果を関連データベース6に反映させることができる。さらに、コンピュータが図形式プログラムの評価結果を表示するディスプレイ装置53などの出力手段をさらに備えることによって、評価結果を参照しながら図形式プログラムの修正を行うことができる。
【0050】
また、図形式プログラムおよびソースコードの特徴間の関連を分析した関連分析結果を格納する関連データベース6を構築することによって、関連データベース6(に格納されている関連分析結果)を参照して、入力された図形式プログラムを評価することができ、図形式プログラムからソースコードを生成してソースコードの特徴を分析することなく、図形式プログラムの静的検証を、既存の形式のプログラムと同じ基準で、効率的に実施することができる。
【0051】
なお、上記実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物も含まれる。
【符号の説明】
【0052】
1 図形式プログラム入力手段
2 ソースコード生成手段
3 ソースコード分析手段
4 図形式プログラム分析手段
5 関連分析手段
6 関連データベース
7 図形式プログラム評価手段
8 図形式プログラム評価結果表示手段
51 演算装置
52 主記憶装置
53 ディスプレイ装置
54 補助記憶装置
55 入力装置
56 バス
100 ソースコード自動生成・評価システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11