(57)【特許請求の範囲】
【請求項１】
電子制御装置に搭載されて制御対象を制御するためのソフトウェアのソースコードを解析するソースコード解析手段を有し、ソースコード中の変数に関する解析情報を出力するソフトウェア保守支援装置であって、
前記ソースコードは、複数の関数によって構成され、
前記ソースコード解析手段は、
前記ソースコードに含まれる変数同士に、ある変数を更新するときに他の変数を参照するかの依存関係の有無を前記複数の関数にまたがって分析して変数依存関係データを抽出する変数依存関係解析手段と、
前記変数依存関係データに基づいて、変数全体からなる集合を、少なくとも一つの変数で構成される変数クラスタに分割した変数クラスタデータを抽出する変数クラスタ解析手段を有する変数依存関係ネットワーク解析手段と、を有し、
前記変数依存関係データに基づいて、変数間依存関係を、変数をノードとし依存関係をリンクとする有向グラフとして図示するとともに、前記変数クラスタデータに基づいて同一クラスタに属する変数を強調表示する変数依存関係表示手段を有し、
前記変数依存関係表示手段は、前記変数クラスタデータに基づいて、分割されたクラスタ内の変数依存関係の数とクラスタ間の変数依存関係の数とに基づいて算出するモジュール性指標を表示することを特徴とするソフトウェア保守支援装置。
【請求項２】
前記変数依存関係表示手段は、前記変数クラスタデータに基づいて、同一変数クラスタに属する変数は同一色で表示することを特徴とする請求項１記載のソフトウェア保守支援装置。
【請求項３】
前記変数依存関係表示手段は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、前記変数クラスタをノードとし、変数クラスタ間をまたがる変数依存関係をリンクとするクラスタ依存関係ネットワークを図示することを特徴とする請求項１記載のソフトウェア保守支援装置。
【請求項４】
前記変数依存関係表示手段は、変数クラスタ間をまたがる変数依存関係を示すリンクの始点となる変数名をリンク上に表示することを特徴とする請求項３記載のソフトウェア保守支援装置。
【請求項５】
前記変数依存関係表示手段は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、同一の変数クラスタに属する変数間での変数依存関係をクラスタ内に図示することを特徴とする請求項３記載のソフトウェア保守支援装置。
【請求項６】
前記変数依存関係表示手段は、各変数の重要度を示す変数重要度データに基づいて、変数重要度が高い変数を、変数重要度が低い変数以上の大きさで図示することを特徴とする請求項５記載のソフトウェア保守支援装置。
【請求項７】
前記変数依存関係表示手段は、各変数の重要度を示す変数重要度データに基づいて、変数重要度の値に応じて表示色を変更することを特徴とする請求項５記載のソフトウェア保守支援装置。
【請求項８】
前記変数依存関係ネットワーク解析手段は、
前記変数依存関係データに基づいて、各変数の重要度を示す変数重要度データを抽出する変数重要度解析手段を有することを特徴とする請求項１記載のソフトウェア保守支援装置。
【請求項９】
前記ソースコード解析手段は、
分析対象とする変数を選択するための分析対象設定手段を有することを特徴とする請求項１記載のソフトウェア保守支援装置。
【請求項１０】
前記変数クラスタ解析手段は、
少なくともリンク媒介中心性コミュニティ解析あるいは固有ベクトルコミュニティ解析のいずれか一つのクラスタ分析手法を選択するためのクラスタ分析手法選択手段を有することを特徴とする請求項１記載のソフトウェア保守支援装置。
【請求項１１】
前記変数重要度解析手段は、
少なくとも次数中心性，推移確率行列固有ベクトル中心性，固有ベクトル中心性のいずれか一つの分析手法を選択する重要度分析法選択手段を有することを特徴とする請求項８記載のソフトウェア保守支援装置。
【請求項１２】
請求項１記載のソフトウェア保守支援装置において、
前記ソースコードに基づいて実行可能ソフトウェアへと変換するソースコードコンパイル装置を有することを特徴とするソフトウェア保守支援装置。
【請求項１３】
請求項１２記載のソフトウェア保守支援装置を有し、実行可能ソフトウェアを転送することを特徴とする電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア保守支援装置およびそれにより検証した電子制御装置に関するものである。
【背景技術】
【０００２】
エレベータ，自動車，建設機械等の技術分野では、いわゆる組込みソフトウェアによって制御対象を制御する、組込み制御装置が用いられている。組込みソフトウェアは、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できること、ソフトウェアの部分的な変更によって多くの派生製品を開発できることが利点として挙げられる。【０００３】
このような組込み制御装置、例えばエレベータ制御装置では、一定周期または割り込みに応じてタスクを起動し、行き先階指定ボタンやドア安全センサ等のセンサの入力に基づいて制御変数を更新し、ドア開閉用モータやかご駆動用モータなどのアクチュエータを制御する、いわゆるデータ駆動型の計算モデルが採用されている。【０００４】
その一方で、組み込み制御装置に求められる制御処理が年々複雑化するとともに、制御変数間の依存関係が複雑化し、ソフトウェアの理解が困難になるという課題がある。【０００５】
例えば数千個の変数で更新されている制御ソフトウェアにおいても、ある一か所の変数の演算方法を変更した場合に、その影響を受ける変数を特定し、ソフトウェアを検証することが必要不可欠である。【０００６】
下記特許文献１には、変数のデータ型に基づいて分析する業務用ソフトウェア保守支援装置の例が示されている。このソフトウェア保守支援装置では、変数定義やソースコード上での判定文に基づいて、データの型を例えば「日付データ」等のドメインに分割し、ドメイン間の関係を解析してソフトウェア構造を表示する。【０００７】
下記特許文献２には、ユーザが着目している変数に関連する処理内容を強調表示するソフトウェア保守支援装置の例が示されている。特定の関数の処理内容を図示するとともに、ユーザが着目している変数に関連する処理ブロックを、太線表示などの方法で協調して明示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平９−２７４５６２号公報
【特許文献２】特開２００６−３２３４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記特許文献１に記載された技術では、制御ソフトウェア、特にエレベータのようにＯＮ／ＯＦＦスイッチの状態を入力として制御が行われるソフトウェアに適用すると、ほとんどの変数が同一ドメイン（ＯＮ／ＯＦＦ型）に分類されてしまうため、解析支援として検討されていないという課題がある。【００１０】
上記特許文献２に記載された技術では、複数の関数やファイルにまたがる影響関係を解析表示することができない。【００１１】
本発明は、上記のような課題を解決するためになされたものであり、電子制御装置向けソフトウェアのソフトウェア構造解析可視化装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る組込み制御装置は、データ参照部品に対して公開する制御データとして、公開データと保管データを有する。また、データ公開元部品の実行優先度とデータ参照部品の実行優先度のいずれが高いかに基づいて、データ参照部品が公開データと保管データのいずれを参照するかを切り替える。【００１３】
つまり、本発明のソフトウェア保守支援装置は、電子制御装置に搭載されて制御対象を制御するためのソフトウェアのソースコードを解析するソースコード解析手段を有し、ソースコード中の変数に関する解析情報を出力するものであって、前記ソースコード解析手段は、前記変数を演算する際に参照する他の変数を認識して変数依存関係データを抽出する変数依存関係解析手段と、前記変数依存関係データに基づいて、変数全体からなる集合を、少なくとも一つの変数で構成される変数クラスタに分割した変数クラスタデータを抽出する変数クラスタ解析手段を有する変数依存関係ネットワーク解析手段と、を有し、前記変数依存関係データに基づいて、変数間依存関係を、変数をノードとし依存関係をリンクとする有向グラフとして図示するとともに、前記変数クラスタデータに基づいて同一クラスタに属する変数を強調表示する変数依存関係表示手段を有することを特徴とする。【００１４】
そして、前記変数依存関係表示部は、前記変数クラスタデータに基づいて、分割されたクラスタ内の変数依存関係の数とクラスタ間の変数依存関係の数とに基づいて算出するモジュール性指標を表示することを特徴とする。【００１５】
また、前記変数依存関係表示部は、前記変数クラスタデータに基づいて、同一変数クラスタに属する変数は同一色で表示することを特徴とする。【００１６】
また、前記変数依存関係表示部は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、前記変数クラスタをノードとし、変数クラスタ間をまたがる変数依存関係をリンクとするクラスタ依存関係ネットワークを図示することを特徴とする。【００１７】
また、前記変数依存関係表示部は、変数クラスタ間をまたがる変数依存関係を示すリンクの始点となる変数名をリンク上に表示することを特徴とする。【００１８】
また、前記変数依存関係表示部は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、同一の変数クラスタに属する変数間での変数依存関係をクラスタ内に図示することを特徴とする。【００１９】
また、前記変数依存関係表示部は、前記変数重要度データに基づいて、変数重要度が高い変数を、変数重要度が低い変数以上の大きさで図示することを特徴とする。【００２０】
また、前記変数依存関係表示部は、前記変数重要度データに基づいて、変数重要度の値に応じて表示色を変更することを特徴とする。【００２１】
また、前記変数依存関係ネットワーク解析手段は、前記変数依存関係データに基づいて、各変数の重要度を示す変数重要度データを抽出する変数重要度解析手段を有することを特徴とする。【００２２】
また、前記ソースコード解析手段は、分析対象とする変数を選択するための分析対象設定手段を有することを特徴とする。【００２３】
また、前記変数クラスタ解析手段は、少なくともリンク媒介中心性コミュニティ解析あるいは固有ベクトルコミュニティ解析のいずれか一つのクラスタ分析手法を選択するためのクラスタ分析手法選択手段を有することを特徴とする。【００２４】
また、前記変数重要度解析手段は、少なくとも次数中心性，推移確率行列固有ベクトル中心性，固有ベクトル中心性のいずれか一つの分析手法を選択する重要度分析法選択手段を有することを特徴とする。【００２５】
また、本発明のソフトウェア保守支援装置は、前記ソースコードに基づいて実行可能ソフトウェアへと変換するソースコードコンパイル装置を有する。【００２６】
また、本発明のエレベータ制御装置のような電子制御装置は、本発明のソフトウェア保守支援装置を有し、実行可能ソフトウェアを転送することを特徴とする。
【発明の効果】
【００２７】
本発明に係るソフトウェア保守支援装置によれば、複数ファイル、複数関数にわたる制御ソフトウェアでも、ソフトウェアの処理構造を図示することができる。
【図面の簡単な説明】
【００２８】
【図１】実施の形態１に係るソフトウェア保守支援装置１の構成図である。
【図２】ソースコード解析部１１の構成を示す図である。
【図３】ソースコード３の構成を示す図である。
【図４】変数依存関係データ１１２の構成を示す図である。
【図５】変数依存関係データ１１２の構成を示す図である。
【図６】分析対象設定１１３の構成を示す図である。
【図７】分析対象データ１１４の構成を示す図である。
【図８】変数依存関係ネットワーク解析部１１５の構成を示す図である。
【図９】変数クラスタ解析部１１５１において実行されるクラスタ解析実行フローを示す図である。
【図１０】リンク切断前の変数依存関係ネットワーク１１５Ａを示す図である。
【図１１】リンク切断後の変数依存関係ネットワーク１１５Ｂを示す図である。
【図１２】変数クラスタデータ１１６の構成を示す図である。
【図１３】変数クラスタデータ１１６の構成を示す図である。
【図１４】変数重要度解析部１１５２において実行される変数重要度解析実行フローを示す図である。
【図１５】変数重要度データ１１７の構成を示す図である。
【図１６】変数重要度データ１１７の構成を示す図である。
【図１７】変数依存関係クラスタ表示部１２における表示を示す図である。
【図１８】変数依存関係クラスタ表示部１２における表示を示す図である。
【図１９】変数依存関係クラスタ表示部１２における表示を示す図である。
【図２０】変数依存関係クラスタ表示部１２における表示を示す図である。
【図２１】変数依存関係クラスタ表示部１２における表示を示す図である。
【図２２】変数依存関係クラスタ表示部１２における表示を示す図である。
【図２３】エレベータ制御装置６の構成を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施例を説明する。
【実施例】
【００３０】
図１は、本発明の実施の形態に係るソフトウェア保守支援装置及びそれにより検証した電子制御装置１０００の構成図である。ソフトウェア保守支援装置及びそれにより検証した電子制御装置１０００は、ソフトウェア保守支援装置１と、ソフトウェア保守支援装置１を実行するコンピュータ２と、電子制御装置に搭載されるソフトウェアのソースコード３と、ソフトウェア保守支援装置１の実行状況をユーザに提示する表示装置４と、ソフトウェア保守支援装置１に対してユーザが指示を与えるために利用する入力装置５と、エレベータを制御するために用いられる電子制御装置であるエレベータ制御装置６とを備える。【００３１】
ソフトウェア保守支援装置１は、ソースコード３に基づいて変数依存関係クラスタを分析するソースコード解析部１１と、変数依存関係クラスタを図示する変数依存関係クラスタ表示部１２と、ソースコード３をコンパイルして実行可能ソフトウェアへと変換するソースコードコンパイル部１３と、全体の動作を制御する制御部１４とを備える。【００３２】
エレベータ制御装置６は、実行可能ソフトウェアを記憶するメモリ６１と、実行可能ソフトウェアを実行するマイクロプロセッサ６２とを備える。【００３３】
図２は、ソースコード解析部１１の詳細な構成を示す図である。ソースコード解析部１１は、ソースコード３に基づいてソフトウェア実行時の変数更新処理における変数間依存関係を分析する変数依存関係解析部１１１と、変数依存関係解析部１１１の分析結果である変数依存関係データ１１２と、変数依存関係データ１１２と入力装置５によるユーザの操作とに基づいて分析対象とする変数を選択する分析対象設定部１１３と、分析対象設定部１１３の設定結果である分析対象変数データ１１４と、変数依存関係データと分析対象変数データのいずれかに基づいてソースコード３における変数依存関係ネットワークを分析して変数クラスタおよび変数重要度を分析する変数依存関係ネットワーク解析部１１５と、変数依存関係ネットワーク解析部１１５の出力である変数クラスタデータ１１６および変数重要度データ１１７とを備える。【００３４】
図３は、ソースコード３の詳細を示す図である。ソースコード３は、関数ｘの処理手順が記述されたソースファイル３１と、関数ｙの処理手順が記述されたソースファイル３２とで構成されている。なお、ソースファイル３１と、ソースファイル３２とで用いられている変数ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇはグローバル変数として定義されている。【００３５】
ソースファイル３１は、関数ｘにおいて、変数ａを入力とし、変数ｂ，ｃ，ｄおよびｅを更新する処理を行っている。【００３６】
ソースファイル３２は、関数ｙにおいて、変数ｅを入力とし、変数ｆおよびｇを更新する処理を行っている。【００３７】
図４は、ソースファイル３１およびソースファイル３２に基づいて変数依存関係解析部１１１が抽出した、変数依存関係データ１１２の詳細な構成である変数依存関係リンクテーブル１１２１を示す図である。変数依存関係リンクテーブル１１２１は、リンクＩＤ，変数名（始点），変数名（終点）で構成され、変数依存関係を示している。例えばリンクＩＤ１は変数名（始点）がａ、変数名（終点）がｂである。リンクＩＤ１は、変数ｂの更新時に変数ａを参照して演算を行っていることを示している。これは、ソースファイル３１の２行目“ｂ＝（ｂ｜ａ）；”に対応している。また、リンクＩＤ３は変数名（始点）がｂ、変数名（終点）がｄであり、リンクＩＤ４は変数名（始点）がｃ、変数名（終点）がｄである。リンクＩＤ３および４は、変数ｄの更新時に変数ｂおよび変数ｃを参照して演算を行っていることを示している。これは、ソースファイル３１の４行目“ｄ＝（ｂ＆ｃ）；”に対応している。【００３８】
図５は、ソースファイル３１およびソースファイル３２に基づいて変数依存関係解析部１１１が抽出した変数依存関係データ１１２の、詳細な構成の別形態である、変数依存関係リンクマトリクス１１２２を示す図である。変数依存関係リンクマトリクス１１２２は、始点となる変数名と、終点となる変数名からなるリンクをマトリクス形式で表現したものである。例えば、始点をａ、終点をｂとする要素は“１”となっており、変数ｂの更新時に変数ａを参照して演算を行っていることを示している。また、始点をａ、終点をｄとする要素は“０”となっており、変数ｄの更新時には変数ａを参照せずに演算を行っていることを示している。【００３９】
図６は、分析対象設定部１１３の設定画面１１３１を示す図である。本画面では、変数依存関係ネットワークにおける分析対象とする変数を、ユーザがチェックすることによって選択する。例えば、設定画面１１３１では変数ａは分析対象から外され、変数ｂ，ｃ，ｄ，ｅ，ｆ，ｇが変数依存関係ネットワークの分析対象となっていることを示している。【００４０】
図７は、分析対象設定部１１３により選択された分析対象変数データ１１４の詳細な構成である分析対象変数テーブル１１４１を示す図である。分析対象変数テーブル１１４１は、分析対象設定部１１３において、変数ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇを分析対象とした場合の分析対象変数データである。【００４１】
図８は、変数依存関係ネットワーク解析部１１５の詳細な構成を示す図である。変数依存関係ネットワーク解析部１１５は、変数依存関係データ１１２または分析対象変数データ１１４に基づいて、結合度が高く凝集度が低い変数のモジュール構成を示す変数クラスタデータ１１６を抽出する変数クラスタ解析部１１５１と、変数依存関係データ１１２または分析対象変数データ１１４に基づいて、変数の重要度を示す変数重要度データ１１７を抽出する変数重要度解析部１１５２とを備える。【００４２】
図９は、変数クラスタ解析部１１５１の詳細な実行フローを示す図である。なお、図９で示す変数クラスタ解析はリンク媒介中心性コミュニティ解析（Newman法）を用いた場合の実行フローであるが、固有ベクトルコミュニティ解析を用いても良い。ステップＳ１１５１０から処理が開始される。ステップＳ１１５１１では、あるリンクが変数間の最短経路上に存在する度数を示すリンク媒介中心性の計算を、全てのリンクに対して実行する。ステップＳ１１５１２では、リンク媒介中心性が最大値を取るリンクの切断を行う。ステップＳ１１５１３では、全てのリンクを切断済みか否かを判定する。全てのリンクを切断済みの場合にはステップＳ１１５１４に進み、リンクが残っている場合にはステップＳ１１５１１に戻る。ステップＳ１１５１４では、結合度が高く凝集度が低いモジュールの性質を示すモジュール性の指標を、リンク分割パターンごとに演算し、最もモジュール性の高いリンク分割パターンを、変数クラスタとして採用する。【００４３】
モジュール性は、次のように計算される。変数依存関係ネットワークがｋ個のクラスタに分割されているとき、ｋ×ｋのクラスタの関係を示す行列ｅ＝（ｅij）を作る。ｅijはクラスタｉに分類される変数とクラスタｊに分類される変数の間に張られる変数依存関係の数が、変数依存関係ネットワーク全体の依存関係に占める割合である。また、ｅの行和ａを以下のようにとる。【００４４】
【数１】
0005516736.tif 000002
【００４５】
そして、モジュール性Ｑを次のように定式化する。【００４６】
【数２】
0005516736.tif 000003
【００４７】
例えば、後に分割パターンとして図１２で示すクラスタ分割結果に基づいて対称行列ｅを求めると、ｅは次のようになる。【００４８】
【数３】
0005516736.tif 000004
【００４９】
このとき、モジュール性は約０.３（０.２６５３・・・）と算出される。【００５０】
図１０は、変数依存関係ネットワーク１１５Ａを図示したものである。これは有向グラフ記法に基づいており、変数ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇをノードとし、分析対象変数テーブル１１４１で指定されているリンク情報をノード間のリンクとして表記したものである。さらに、各リンクの上部にリンクの媒介中心性指標が記載されている。また、モジュール性指標をネットワーク図横に“モジュール性＝０.０”と表示する。【００５１】
図１１は、リンクが切断された変数依存関係ネットワーク１１５Ｂを図示したものである。これは有向グラフ記法に基づいており、変数ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇをノードとし、分析対象変数テーブル１１４１で指定されているリンク情報をノード間のリンクとして表記したものである。また、図１０に記載された変数依存関係ネットワーク１１５Ａにおいてもっともリンク媒介中心性が高いリンクである、“ｄ→ｅ”へのリンクが点線で図示されており、リンクが切断されたことを示している。また、モジュール性指標をネットワーク図横に“モジュール性＝０.３”と表示する。なお、分析対象変数テーブル１１４１に基づくクラスタ分析では、変数依存関係ネットワーク１１５Ｂに示す分割パターンがモジュール性最大値を取るため、本分割パータンがクラスタ分割結果となる。【００５２】
図１２は、変数クラスタデータ１１６の詳細な構成である変数クラスタテーブル１１６１を示す図である。変数クラスタテーブル１１６１は、クラスタ１は変数ａ，ｂ，ｃ，ｄで構成され、クラスタ２は変数ｅ，ｆ，ｇで構成されていることを示している。【００５３】
図１３は、変数クラスタデータ１１６の詳細な構成である変数クラスタ間リンクテーブル１１６２を示す図である。リンクＩＤ１０１は、クラスタ１を始点とし、クラスタ２を終点とするリンクであり、そのリンクに対応する変数はｄであることを示している。これはクラスタ分割によって、変数ｄはクラスタ１に、変数ｅはクラスタ２に分割されたことにより、分析対象変数テーブル１１４１におけるリンクＩＤ５におけるリンクがクラスタ間を横断するリンクとなり、かつその時の始点となる変数がｄであるためである。【００５４】
図１４は、変数重要度解析部１１５２の詳細な実行フローを示す図である。図１４では、次数中心性に基づく重要度分析フローを示しているが、推移確率行列固有ベクトル中心性や固有ベクトル中心性を用いても良い。ステップＳ１１５２０から処理が開始される。ステップＳ１１５２１にて変数のＩＤが初期化される。ステップＳ１１５２２にてリンクのＩＤが初期化される。ステップＳ１１５２３にて分析対象リンクに分析対象変数が含まれるか否かが判定される。含まれる場合にはステップＳ１１５２４にて変数の次数中心性に１が加算され、含まれない場合にはステップＳ１１５２５に進む。ステップＳ１１５２５では分析対象のリンクＩＤが最終リンクか否かを判定し、最終リンクである場合にはステップＳ１１５２７に進み、最終リンクではない場合にはステップＳ１１５２６に進む。ステップＳ１１５２６ではリンクＩＤに１を加算し、次のリンクを分析対象としてステップＳ１１５２３に戻る。ステップＳ１１５２７では分析対象変数が最終変数か否かを判定し、最終変数である場合にはステップＳ１１５２９に進み、最終変数ではない場合にはステップＳ１１５２８に進む。ステップＳ１１５２８では変数ＩＤに１を加算し、次の変数を分析対象としてステップＳ１１５２２に戻る。ステップＳ１１５２９で処理を完了する。【００５５】
図１５は、変数重要度データ１１７の詳細な構成である変数重要度テーブル１１７１を示す図である。変数重要度テーブル１１７１は、変数重要度として、図１４に示した変数重要度解析部１１５２の詳細な実行フローに基づいて算出された次数中心性を示している。例えば、変数ａは、二つの変数ｂ，ｃとリンクで接続されているため、重要度は２となる。また、変数ｄは、３つの変数ｂ，ｃ，ｅとそれぞれリンクで接続されているため、重要度は３を示している。【００５６】
図１６は、変数重要度データ１１７の詳細な構成である変数重要度テーブル１１７２を示す図である。変数重要度テーブル１１７２は、変数重要度として、推移確率行列固有ベクトル中心性を示している。【００５７】
図１７は、変数依存関係クラスタ表示部１２における変数依存関係クラスタの図示画面１２１を示す図である。変数依存関係ネットワークが、クラスタ１とクラスタ２とで構成されており、クラスタ１とクラスタ２を接続するリンクにおいて変数ｄが媒介変数となっていることを示している。また、本クラスタ構成におけるモジュール性指標を示している。【００５８】
図１８は、変数依存関係クラスタ表示部１２における変数依存関係クラスタの図示画面１２２を示す図である。変数依存関係ネットワークおよび、クラスタ１とクラスタ２とに分類されている変数とを示している。また、本クラスタ構成におけるモジュール性指標を示している。【００５９】
図１９は、変数依存関係クラスタ表示部１２における変数依存関係クラスタの図示画面１２３を示す図である。変数依存関係ネットワークが、クラスタ１とクラスタ２とで構成されており、クラスタ１とクラスタ２を接続するリンクにおいて変数ｄが媒介変数となっていることを示している。各クラスタ内部での変数間依存関係ネットワークが階層的に表示されている。また、本クラスタ構成におけるモジュール性指標を示している。【００６０】
図２０は、変数依存関係クラスタ表示部１２における変数依存関係クラスタの図示画面１２４を示す図である。変数依存関係ネットワークが、クラスタ１とクラスタ２とで構成されており、クラスタ１とクラスタ２を接続するリンクにおいて変数ｄが媒介変数をなっていることを示している。各クラスタ内部での変数間依存関係ネットワークが階層的に表示されている。さらに、変数重要度テーブル１１７１を参照し、変数重要度が３.０以上の変数を黒色で、変数重要度が３未満の変数を白色で示している。また、本クラスタ構成におけるモジュール性指標を示している。【００６１】
図２１は、変数依存関係クラスタ表示部１２における変数依存関係クラスタの図示画面１２５を示す図である。変数依存関係ネットワークにおいて、クラスタ１に分類された変数を白色で、クラスタ２に分類された変数を黒色で示している。また、本クラスタ構成におけるモジュール性指標を示している。【００６２】
図２２は、図２１の変数依存関係クラスタ表示部１２における変数依存関係クラスタの図示画面１２５を示す図である。変数依存関係ネットワークにおいて、クラスタ１に分類された変数を白色で、クラスタ２に分類された変数を黒色で示している。さらに、変数重要度テーブル１１７１を参照し、変数重要度が大きい変数ほど大きいサイズで表示している。また、本クラスタ構成におけるモジュール性指標を示している。【００６３】
また、ソースコード３におけるソフトウェア分割と、本実施の形態による変数依存関係クラスタによる分割とを同時に表示しても良い。すなわち、ソースファイル３１とソースファイル３２というファイルに分類される変数の分割を入力状態におけるクラスタ分割として扱い、変数依存関係クラスタ表示部により表示する。また、ソースファイル３１とソースファイル３２というファイルに分類される変数の分割状態におけるモジュール性を演算して表示する。本構成を取ることにより、分析対象となるソースファイルの構成を、変数依存関係クラスタによる理想的な分割と比較し、ソフトウェアの検証に用いることがきる。このとき、分割結果の差異を強調表示するようにしても良い。【００６４】
図２３は、エレベータシステム２０００の構成を示す図である。エレベータシステム２０００は、エレベータ制御装置６と、エレベータかご７と、複数のエレベータの協調動作を制御する群管理制御装置８１と、他のエレベータかごを制御するエレベータ制御装置８２と、行き先階ボタンが押されたことを検知する行き先階ボタンセンサ９１と、ドアへの挟み込みを検知するドア安全センサ９２と、ドアの開閉を行うドア駆動モータ９３と、かごの上下動を行うかご駆動モータ９４と、エレベータ制御装置６と群管理制御装置８１とエレベータ制御装置８２との通信を行う通信回線９５とで構成される。ソフトウェア保守支援装置１にて解析表示および検証されたソースコード３は、ソースコードコンパイル部１３によって実行可能ソフトウェアへと変換され、メモリ６１へと転送される。マイクロプロセッサ６２は、メモリ６１に記憶された実行可能ソフトウェアに基づいて、入出力デバイスである行き先階ボタンが押されたことを検知する行き先階ボタンセンサ９１と、ドアへの挟み込みを検知するドア安全センサ９２と、ドアの開閉を行うドア駆動モータ９３と、かごの上下動を行うかご駆動モータ９４とを操作し、エレベータかご７の制御を行う。【００６５】
以上のように、本実施の形態において、変数依存関係クラスタ表示部１２は、ソースコード３における変数間の依存関係に基づいて、モジュール性の高い、すなわちクラスタ内の変数依存関係は多く、クラスタ間の変数依存関係は少ないクラスタ分割パターンを表示する。これにより、電子制御装置に搭載されるソフトウェアの構造を、変数依存関係という観点から抽出して出力することができる。
【符号の説明】
【００６６】
１  ソフトウェア保守支援装置
２  コンピュータ
３  ソースコード
４  表示装置
５  入力装置
６  エレベータ制御装置
１１  ソースコード解析部
１２  変数依存関係クラスタ表示部
１３  ソースコードコンパイル部
１４  制御部
６１  メモリ
６２  マイクロプロセッサ
１０００  ソフトウェア保守支援装置及びそれにより検証した電子制御装置
【図１】
0005516736.tif 000005
【図２】
0005516736.tif 000006
【図３】
0005516736.tif 000007
【図４】
0005516736.tif 000008
【図５】
0005516736.tif 000009
【図６】
0005516736.tif 000010
【図７】
0005516736.tif 000011
【図８】
0005516736.tif 000012
【図９】
0005516736.tif 000013
【図１０】
0005516736.tif 000014
【図１１】
0005516736.tif 000015
【図１２】
0005516736.tif 000016
【図１３】
0005516736.tif 000017
【図１４】
0005516736.tif 000018
【図１５】
0005516736.tif 000019
【図１６】
0005516736.tif 000020
【図１７】
0005516736.tif 000021
【図１８】
0005516736.tif 000022
【図１９】
0005516736.tif 000023
【図２０】
0005516736.tif 000024
【図２１】
0005516736.tif 000025
【図２２】
0005516736.tif 000026
【図２３】
0005516736.tif 000027