JP5516736B2 - ソフトウェア保守支援装置及びそれにより検証した電子制御装置 - Google Patents

ソフトウェア保守支援装置及びそれにより検証した電子制御装置 Download PDF

Info

Publication number
JP5516736B2
JP5516736B2 JP2012525258A JP2012525258A JP5516736B2 JP 5516736 B2 JP5516736 B2 JP 5516736B2 JP 2012525258 A JP2012525258 A JP 2012525258A JP 2012525258 A JP2012525258 A JP 2012525258A JP 5516736 B2 JP5516736 B2 JP 5516736B2
Authority
JP
Japan
Prior art keywords
variable
cluster
data
maintenance support
dependency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012525258A
Other languages
English (en)
Other versions
JPWO2012011145A1 (ja
Inventor
健太郎 吉村
毅 福田
吉高 新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2012011145A1 publication Critical patent/JPWO2012011145A1/ja
Application granted granted Critical
Publication of JP5516736B2 publication Critical patent/JP5516736B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア保守支援装置およびそれにより検証した電子制御装置に関するものである。
エレベータ,自動車,建設機械等の技術分野では、いわゆる組込みソフトウェアによって制御対象を制御する、組込み制御装置が用いられている。組込みソフトウェアは、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できること、ソフトウェアの部分的な変更によって多くの派生製品を開発できることが利点として挙げられる。
このような組込み制御装置、例えばエレベータ制御装置では、一定周期または割り込みに応じてタスクを起動し、行き先階指定ボタンやドア安全センサ等のセンサの入力に基づいて制御変数を更新し、ドア開閉用モータやかご駆動用モータなどのアクチュエータを制御する、いわゆるデータ駆動型の計算モデルが採用されている。
その一方で、組み込み制御装置に求められる制御処理が年々複雑化するとともに、制御変数間の依存関係が複雑化し、ソフトウェアの理解が困難になるという課題がある。
例えば数千個の変数で更新されている制御ソフトウェアにおいても、ある一か所の変数の演算方法を変更した場合に、その影響を受ける変数を特定し、ソフトウェアを検証することが必要不可欠である。
下記特許文献1には、変数のデータ型に基づいて分析する業務用ソフトウェア保守支援装置の例が示されている。このソフトウェア保守支援装置では、変数定義やソースコード上での判定文に基づいて、データの型を例えば「日付データ」等のドメインに分割し、ドメイン間の関係を解析してソフトウェア構造を表示する。
下記特許文献2には、ユーザが着目している変数に関連する処理内容を強調表示するソフトウェア保守支援装置の例が示されている。特定の関数の処理内容を図示するとともに、ユーザが着目している変数に関連する処理ブロックを、太線表示などの方法で協調して明示する。
特開平9−274562号公報 特開2006−323480号公報
上記特許文献1に記載された技術では、制御ソフトウェア、特にエレベータのようにON/OFFスイッチの状態を入力として制御が行われるソフトウェアに適用すると、ほとんどの変数が同一ドメイン(ON/OFF型)に分類されてしまうため、解析支援として検討されていないという課題がある。
上記特許文献2に記載された技術では、複数の関数やファイルにまたがる影響関係を解析表示することができない。
本発明は、上記のような課題を解決するためになされたものであり、電子制御装置向けソフトウェアのソフトウェア構造解析可視化装置を提供することを目的とする。
本発明に係る組込み制御装置は、データ参照部品に対して公開する制御データとして、公開データと保管データを有する。また、データ公開元部品の実行優先度とデータ参照部品の実行優先度のいずれが高いかに基づいて、データ参照部品が公開データと保管データのいずれを参照するかを切り替える。
つまり、本発明のソフトウェア保守支援装置は、電子制御装置に搭載されて制御対象を制御するためのソフトウェアのソースコードを解析するソースコード解析手段を有し、ソースコード中の変数に関する解析情報を出力するものであって、前記ソースコード解析手段は、前記変数を演算する際に参照する他の変数を認識して変数依存関係データを抽出する変数依存関係解析手段と、前記変数依存関係データに基づいて、変数全体からなる集合を、少なくとも一つの変数で構成される変数クラスタに分割した変数クラスタデータを抽出する変数クラスタ解析手段を有する変数依存関係ネットワーク解析手段と、を有し、前記変数依存関係データに基づいて、変数間依存関係を、変数をノードとし依存関係をリンクとする有向グラフとして図示するとともに、前記変数クラスタデータに基づいて同一クラスタに属する変数を強調表示する変数依存関係表示手段を有することを特徴とする。
そして、前記変数依存関係表示部は、前記変数クラスタデータに基づいて、分割されたクラスタ内の変数依存関係の数とクラスタ間の変数依存関係の数とに基づいて算出するモジュール性指標を表示することを特徴とする。
また、前記変数依存関係表示部は、前記変数クラスタデータに基づいて、同一変数クラスタに属する変数は同一色で表示することを特徴とする。
また、前記変数依存関係表示部は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、前記変数クラスタをノードとし、変数クラスタ間をまたがる変数依存関係をリンクとするクラスタ依存関係ネットワークを図示することを特徴とする。
また、前記変数依存関係表示部は、変数クラスタ間をまたがる変数依存関係を示すリンクの始点となる変数名をリンク上に表示することを特徴とする。
また、前記変数依存関係表示部は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、同一の変数クラスタに属する変数間での変数依存関係をクラスタ内に図示することを特徴とする。
また、前記変数依存関係表示部は、前記変数重要度データに基づいて、変数重要度が高い変数を、変数重要度が低い変数以上の大きさで図示することを特徴とする。
また、前記変数依存関係表示部は、前記変数重要度データに基づいて、変数重要度の値に応じて表示色を変更することを特徴とする。
また、前記変数依存関係ネットワーク解析手段は、前記変数依存関係データに基づいて、各変数の重要度を示す変数重要度データを抽出する変数重要度解析手段を有することを特徴とする。
また、前記ソースコード解析手段は、分析対象とする変数を選択するための分析対象設定手段を有することを特徴とする。
また、前記変数クラスタ解析手段は、少なくともリンク媒介中心性コミュニティ解析あるいは固有ベクトルコミュニティ解析のいずれか一つのクラスタ分析手法を選択するためのクラスタ分析手法選択手段を有することを特徴とする。
また、前記変数重要度解析手段は、少なくとも次数中心性,推移確率行列固有ベクトル中心性,固有ベクトル中心性のいずれか一つの分析手法を選択する重要度分析法選択手段を有することを特徴とする。
また、本発明のソフトウェア保守支援装置は、前記ソースコードに基づいて実行可能ソフトウェアへと変換するソースコードコンパイル装置を有する。
また、本発明のエレベータ制御装置のような電子制御装置は、本発明のソフトウェア保守支援装置を有し、実行可能ソフトウェアを転送することを特徴とする。
本発明に係るソフトウェア保守支援装置によれば、複数ファイル、複数関数にわたる制御ソフトウェアでも、ソフトウェアの処理構造を図示することができる。
実施の形態1に係るソフトウェア保守支援装置1の構成図である。 ソースコード解析部11の構成を示す図である。 ソースコード3の構成を示す図である。 変数依存関係データ112の構成を示す図である。 変数依存関係データ112の構成を示す図である。 分析対象設定113の構成を示す図である。 分析対象データ114の構成を示す図である。 変数依存関係ネットワーク解析部115の構成を示す図である。 変数クラスタ解析部1151において実行されるクラスタ解析実行フローを示す図である。 リンク切断前の変数依存関係ネットワーク115Aを示す図である。 リンク切断後の変数依存関係ネットワーク115Bを示す図である。 変数クラスタデータ116の構成を示す図である。 変数クラスタデータ116の構成を示す図である。 変数重要度解析部1152において実行される変数重要度解析実行フローを示す図である。 変数重要度データ117の構成を示す図である。 変数重要度データ117の構成を示す図である。 変数依存関係クラスタ表示部12における表示を示す図である。 変数依存関係クラスタ表示部12における表示を示す図である。 変数依存関係クラスタ表示部12における表示を示す図である。 変数依存関係クラスタ表示部12における表示を示す図である。 変数依存関係クラスタ表示部12における表示を示す図である。 変数依存関係クラスタ表示部12における表示を示す図である。 エレベータ制御装置6の構成を示す図である。
以下、本発明の実施例を説明する。
図1は、本発明の実施の形態に係るソフトウェア保守支援装置及びそれにより検証した電子制御装置1000の構成図である。ソフトウェア保守支援装置及びそれにより検証した電子制御装置1000は、ソフトウェア保守支援装置1と、ソフトウェア保守支援装置1を実行するコンピュータ2と、電子制御装置に搭載されるソフトウェアのソースコード3と、ソフトウェア保守支援装置1の実行状況をユーザに提示する表示装置4と、ソフトウェア保守支援装置1に対してユーザが指示を与えるために利用する入力装置5と、エレベータを制御するために用いられる電子制御装置であるエレベータ制御装置6とを備える。
ソフトウェア保守支援装置1は、ソースコード3に基づいて変数依存関係クラスタを分析するソースコード解析部11と、変数依存関係クラスタを図示する変数依存関係クラスタ表示部12と、ソースコード3をコンパイルして実行可能ソフトウェアへと変換するソースコードコンパイル部13と、全体の動作を制御する制御部14とを備える。
エレベータ制御装置6は、実行可能ソフトウェアを記憶するメモリ61と、実行可能ソフトウェアを実行するマイクロプロセッサ62とを備える。
図2は、ソースコード解析部11の詳細な構成を示す図である。ソースコード解析部11は、ソースコード3に基づいてソフトウェア実行時の変数更新処理における変数間依存関係を分析する変数依存関係解析部111と、変数依存関係解析部111の分析結果である変数依存関係データ112と、変数依存関係データ112と入力装置5によるユーザの操作とに基づいて分析対象とする変数を選択する分析対象設定部113と、分析対象設定部113の設定結果である分析対象変数データ114と、変数依存関係データと分析対象変数データのいずれかに基づいてソースコード3における変数依存関係ネットワークを分析して変数クラスタおよび変数重要度を分析する変数依存関係ネットワーク解析部115と、変数依存関係ネットワーク解析部115の出力である変数クラスタデータ116および変数重要度データ117とを備える。
図3は、ソースコード3の詳細を示す図である。ソースコード3は、関数xの処理手順が記述されたソースファイル31と、関数yの処理手順が記述されたソースファイル32とで構成されている。なお、ソースファイル31と、ソースファイル32とで用いられている変数a,b,c,d,e,f,gはグローバル変数として定義されている。
ソースファイル31は、関数xにおいて、変数aを入力とし、変数b,c,dおよびeを更新する処理を行っている。
ソースファイル32は、関数yにおいて、変数eを入力とし、変数fおよびgを更新する処理を行っている。
図4は、ソースファイル31およびソースファイル32に基づいて変数依存関係解析部111が抽出した、変数依存関係データ112の詳細な構成である変数依存関係リンクテーブル1121を示す図である。変数依存関係リンクテーブル1121は、リンクID,変数名(始点),変数名(終点)で構成され、変数依存関係を示している。例えばリンクID1は変数名(始点)がa、変数名(終点)がbである。リンクID1は、変数bの更新時に変数aを参照して演算を行っていることを示している。これは、ソースファイル31の2行目“b=(b|a);”に対応している。また、リンクID3は変数名(始点)がb、変数名(終点)がdであり、リンクID4は変数名(始点)がc、変数名(終点)がdである。リンクID3および4は、変数dの更新時に変数bおよび変数cを参照して演算を行っていることを示している。これは、ソースファイル31の4行目“d=(b&c);”に対応している。
図5は、ソースファイル31およびソースファイル32に基づいて変数依存関係解析部111が抽出した変数依存関係データ112の、詳細な構成の別形態である、変数依存関係リンクマトリクス1122を示す図である。変数依存関係リンクマトリクス1122は、始点となる変数名と、終点となる変数名からなるリンクをマトリクス形式で表現したものである。例えば、始点をa、終点をbとする要素は“1”となっており、変数bの更新時に変数aを参照して演算を行っていることを示している。また、始点をa、終点をdとする要素は“0”となっており、変数dの更新時には変数aを参照せずに演算を行っていることを示している。
図6は、分析対象設定部113の設定画面1131を示す図である。本画面では、変数依存関係ネットワークにおける分析対象とする変数を、ユーザがチェックすることによって選択する。例えば、設定画面1131では変数aは分析対象から外され、変数b,c,d,e,f,gが変数依存関係ネットワークの分析対象となっていることを示している。
図7は、分析対象設定部113により選択された分析対象変数データ114の詳細な構成である分析対象変数テーブル1141を示す図である。分析対象変数テーブル1141は、分析対象設定部113において、変数a,b,c,d,e,f,gを分析対象とした場合の分析対象変数データである。
図8は、変数依存関係ネットワーク解析部115の詳細な構成を示す図である。変数依存関係ネットワーク解析部115は、変数依存関係データ112または分析対象変数データ114に基づいて、結合度が高く凝集度が低い変数のモジュール構成を示す変数クラスタデータ116を抽出する変数クラスタ解析部1151と、変数依存関係データ112または分析対象変数データ114に基づいて、変数の重要度を示す変数重要度データ117を抽出する変数重要度解析部1152とを備える。
図9は、変数クラスタ解析部1151の詳細な実行フローを示す図である。なお、図9で示す変数クラスタ解析はリンク媒介中心性コミュニティ解析(Newman法)を用いた場合の実行フローであるが、固有ベクトルコミュニティ解析を用いても良い。ステップS11510から処理が開始される。ステップS11511では、あるリンクが変数間の最短経路上に存在する度数を示すリンク媒介中心性の計算を、全てのリンクに対して実行する。ステップS11512では、リンク媒介中心性が最大値を取るリンクの切断を行う。ステップS11513では、全てのリンクを切断済みか否かを判定する。全てのリンクを切断済みの場合にはステップS11514に進み、リンクが残っている場合にはステップS11511に戻る。ステップS11514では、結合度が高く凝集度が低いモジュールの性質を示すモジュール性の指標を、リンク分割パターンごとに演算し、最もモジュール性の高いリンク分割パターンを、変数クラスタとして採用する。
モジュール性は、次のように計算される。変数依存関係ネットワークがk個のクラスタに分割されているとき、k×kのクラスタの関係を示す行列e=(eij)を作る。eijはクラスタiに分類される変数とクラスタjに分類される変数の間に張られる変数依存関係の数が、変数依存関係ネットワーク全体の依存関係に占める割合である。また、eの行和aを以下のようにとる。
Figure 0005516736
そして、モジュール性Qを次のように定式化する。
Figure 0005516736
例えば、後に分割パターンとして図12で示すクラスタ分割結果に基づいて対称行列eを求めると、eは次のようになる。
Figure 0005516736
このとき、モジュール性は約0.3(0.2653・・・)と算出される。
図10は、変数依存関係ネットワーク115Aを図示したものである。これは有向グラフ記法に基づいており、変数a,b,c,d,e,f,gをノードとし、分析対象変数テーブル1141で指定されているリンク情報をノード間のリンクとして表記したものである。さらに、各リンクの上部にリンクの媒介中心性指標が記載されている。また、モジュール性指標をネットワーク図横に“モジュール性=0.0”と表示する。
図11は、リンクが切断された変数依存関係ネットワーク115Bを図示したものである。これは有向グラフ記法に基づいており、変数a,b,c,d,e,f,gをノードとし、分析対象変数テーブル1141で指定されているリンク情報をノード間のリンクとして表記したものである。また、図10に記載された変数依存関係ネットワーク115Aにおいてもっともリンク媒介中心性が高いリンクである、“d→e”へのリンクが点線で図示されており、リンクが切断されたことを示している。また、モジュール性指標をネットワーク図横に“モジュール性=0.3”と表示する。なお、分析対象変数テーブル1141に基づくクラスタ分析では、変数依存関係ネットワーク115Bに示す分割パターンがモジュール性最大値を取るため、本分割パータンがクラスタ分割結果となる。
図12は、変数クラスタデータ116の詳細な構成である変数クラスタテーブル1161を示す図である。変数クラスタテーブル1161は、クラスタ1は変数a,b,c,dで構成され、クラスタ2は変数e,f,gで構成されていることを示している。
図13は、変数クラスタデータ116の詳細な構成である変数クラスタ間リンクテーブル1162を示す図である。リンクID101は、クラスタ1を始点とし、クラスタ2を終点とするリンクであり、そのリンクに対応する変数はdであることを示している。これはクラスタ分割によって、変数dはクラスタ1に、変数eはクラスタ2に分割されたことにより、分析対象変数テーブル1141におけるリンクID5におけるリンクがクラスタ間を横断するリンクとなり、かつその時の始点となる変数がdであるためである。
図14は、変数重要度解析部1152の詳細な実行フローを示す図である。図14では、次数中心性に基づく重要度分析フローを示しているが、推移確率行列固有ベクトル中心性や固有ベクトル中心性を用いても良い。ステップS11520から処理が開始される。ステップS11521にて変数のIDが初期化される。ステップS11522にてリンクのIDが初期化される。ステップS11523にて分析対象リンクに分析対象変数が含まれるか否かが判定される。含まれる場合にはステップS11524にて変数の次数中心性に1が加算され、含まれない場合にはステップS11525に進む。ステップS11525では分析対象のリンクIDが最終リンクか否かを判定し、最終リンクである場合にはステップS11527に進み、最終リンクではない場合にはステップS11526に進む。ステップS11526ではリンクIDに1を加算し、次のリンクを分析対象としてステップS11523に戻る。ステップS11527では分析対象変数が最終変数か否かを判定し、最終変数である場合にはステップS11529に進み、最終変数ではない場合にはステップS11528に進む。ステップS11528では変数IDに1を加算し、次の変数を分析対象としてステップS11522に戻る。ステップS11529で処理を完了する。
図15は、変数重要度データ117の詳細な構成である変数重要度テーブル1171を示す図である。変数重要度テーブル1171は、変数重要度として、図14に示した変数重要度解析部1152の詳細な実行フローに基づいて算出された次数中心性を示している。例えば、変数aは、二つの変数b,cとリンクで接続されているため、重要度は2となる。また、変数dは、3つの変数b,c,eとそれぞれリンクで接続されているため、重要度は3を示している。
図16は、変数重要度データ117の詳細な構成である変数重要度テーブル1172を示す図である。変数重要度テーブル1172は、変数重要度として、推移確率行列固有ベクトル中心性を示している。
図17は、変数依存関係クラスタ表示部12における変数依存関係クラスタの図示画面121を示す図である。変数依存関係ネットワークが、クラスタ1とクラスタ2とで構成されており、クラスタ1とクラスタ2を接続するリンクにおいて変数dが媒介変数となっていることを示している。また、本クラスタ構成におけるモジュール性指標を示している。
図18は、変数依存関係クラスタ表示部12における変数依存関係クラスタの図示画面122を示す図である。変数依存関係ネットワークおよび、クラスタ1とクラスタ2とに分類されている変数とを示している。また、本クラスタ構成におけるモジュール性指標を示している。
図19は、変数依存関係クラスタ表示部12における変数依存関係クラスタの図示画面123を示す図である。変数依存関係ネットワークが、クラスタ1とクラスタ2とで構成されており、クラスタ1とクラスタ2を接続するリンクにおいて変数dが媒介変数となっていることを示している。各クラスタ内部での変数間依存関係ネットワークが階層的に表示されている。また、本クラスタ構成におけるモジュール性指標を示している。
図20は、変数依存関係クラスタ表示部12における変数依存関係クラスタの図示画面124を示す図である。変数依存関係ネットワークが、クラスタ1とクラスタ2とで構成されており、クラスタ1とクラスタ2を接続するリンクにおいて変数dが媒介変数をなっていることを示している。各クラスタ内部での変数間依存関係ネットワークが階層的に表示されている。さらに、変数重要度テーブル1171を参照し、変数重要度が3.0以上の変数を黒色で、変数重要度が3未満の変数を白色で示している。また、本クラスタ構成におけるモジュール性指標を示している。
図21は、変数依存関係クラスタ表示部12における変数依存関係クラスタの図示画面125を示す図である。変数依存関係ネットワークにおいて、クラスタ1に分類された変数を白色で、クラスタ2に分類された変数を黒色で示している。また、本クラスタ構成におけるモジュール性指標を示している。
図22は、図21の変数依存関係クラスタ表示部12における変数依存関係クラスタの図示画面125を示す図である。変数依存関係ネットワークにおいて、クラスタ1に分類された変数を白色で、クラスタ2に分類された変数を黒色で示している。さらに、変数重要度テーブル1171を参照し、変数重要度が大きい変数ほど大きいサイズで表示している。また、本クラスタ構成におけるモジュール性指標を示している。
また、ソースコード3におけるソフトウェア分割と、本実施の形態による変数依存関係クラスタによる分割とを同時に表示しても良い。すなわち、ソースファイル31とソースファイル32というファイルに分類される変数の分割を入力状態におけるクラスタ分割として扱い、変数依存関係クラスタ表示部により表示する。また、ソースファイル31とソースファイル32というファイルに分類される変数の分割状態におけるモジュール性を演算して表示する。本構成を取ることにより、分析対象となるソースファイルの構成を、変数依存関係クラスタによる理想的な分割と比較し、ソフトウェアの検証に用いることがきる。このとき、分割結果の差異を強調表示するようにしても良い。
図23は、エレベータシステム2000の構成を示す図である。エレベータシステム2000は、エレベータ制御装置6と、エレベータかご7と、複数のエレベータの協調動作を制御する群管理制御装置81と、他のエレベータかごを制御するエレベータ制御装置82と、行き先階ボタンが押されたことを検知する行き先階ボタンセンサ91と、ドアへの挟み込みを検知するドア安全センサ92と、ドアの開閉を行うドア駆動モータ93と、かごの上下動を行うかご駆動モータ94と、エレベータ制御装置6と群管理制御装置81とエレベータ制御装置82との通信を行う通信回線95とで構成される。ソフトウェア保守支援装置1にて解析表示および検証されたソースコード3は、ソースコードコンパイル部13によって実行可能ソフトウェアへと変換され、メモリ61へと転送される。マイクロプロセッサ62は、メモリ61に記憶された実行可能ソフトウェアに基づいて、入出力デバイスである行き先階ボタンが押されたことを検知する行き先階ボタンセンサ91と、ドアへの挟み込みを検知するドア安全センサ92と、ドアの開閉を行うドア駆動モータ93と、かごの上下動を行うかご駆動モータ94とを操作し、エレベータかご7の制御を行う。
以上のように、本実施の形態において、変数依存関係クラスタ表示部12は、ソースコード3における変数間の依存関係に基づいて、モジュール性の高い、すなわちクラスタ内の変数依存関係は多く、クラスタ間の変数依存関係は少ないクラスタ分割パターンを表示する。これにより、電子制御装置に搭載されるソフトウェアの構造を、変数依存関係という観点から抽出して出力することができる。
1 ソフトウェア保守支援装置
2 コンピュータ
3 ソースコード
4 表示装置
5 入力装置
6 エレベータ制御装置
11 ソースコード解析部
12 変数依存関係クラスタ表示部
13 ソースコードコンパイル部
14 制御部
61 メモリ
62 マイクロプロセッサ
1000 ソフトウェア保守支援装置及びそれにより検証した電子制御装置

Claims (13)

  1. 電子制御装置に搭載されて制御対象を制御するためのソフトウェアのソースコードを解析するソースコード解析手段を有し、ソースコード中の変数に関する解析情報を出力するソフトウェア保守支援装置であって、
    前記ソースコードは、複数の関数によって構成され、
    前記ソースコード解析手段は、
    前記ソースコードに含まれる変数同士に、ある変数を更新するときに他の変数を参照するかの依存関係の有無を前記複数の関数にまたがって分析して変数依存関係データを抽出する変数依存関係解析手段と、
    前記変数依存関係データに基づいて、変数全体からなる集合を、少なくとも一つの変数で構成される変数クラスタに分割した変数クラスタデータを抽出する変数クラスタ解析手段を有する変数依存関係ネットワーク解析手段と、を有し、
    前記変数依存関係データに基づいて、変数間依存関係を、変数をノードとし依存関係をリンクとする有向グラフとして図示するとともに、前記変数クラスタデータに基づいて同一クラスタに属する変数を強調表示する変数依存関係表示手段を有し、
    前記変数依存関係表示手段は、前記変数クラスタデータに基づいて、分割されたクラスタ内の変数依存関係の数とクラスタ間の変数依存関係の数とに基づいて算出するモジュール性指標を表示することを特徴とするソフトウェア保守支援装置。
  2. 前記変数依存関係表示手段は、前記変数クラスタデータに基づいて、同一変数クラスタに属する変数は同一色で表示することを特徴とする請求項1記載のソフトウェア保守支援装置。
  3. 前記変数依存関係表示手段は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、前記変数クラスタをノードとし、変数クラスタ間をまたがる変数依存関係をリンクとするクラスタ依存関係ネットワークを図示することを特徴とする請求項1記載のソフトウェア保守支援装置。
  4. 前記変数依存関係表示手段は、変数クラスタ間をまたがる変数依存関係を示すリンクの始点となる変数名をリンク上に表示することを特徴とする請求項3記載のソフトウェア保守支援装置。
  5. 前記変数依存関係表示手段は、前記変数依存関係データおよび前記変数クラスタデータに基づいて、同一の変数クラスタに属する変数間での変数依存関係をクラスタ内に図示することを特徴とする請求項3記載のソフトウェア保守支援装置。
  6. 前記変数依存関係表示手段は、各変数の重要度を示す変数重要度データに基づいて、変数重要度が高い変数を、変数重要度が低い変数以上の大きさで図示することを特徴とする請求項5記載のソフトウェア保守支援装置。
  7. 前記変数依存関係表示手段は、各変数の重要度を示す変数重要度データに基づいて、変数重要度の値に応じて表示色を変更することを特徴とする請求項5記載のソフトウェア保守支援装置。
  8. 前記変数依存関係ネットワーク解析手段は、
    前記変数依存関係データに基づいて、各変数の重要度を示す変数重要度データを抽出する変数重要度解析手段を有することを特徴とする請求項1記載のソフトウェア保守支援装置。
  9. 前記ソースコード解析手段は、
    分析対象とする変数を選択するための分析対象設定手段を有することを特徴とする請求項1記載のソフトウェア保守支援装置。
  10. 前記変数クラスタ解析手段は、
    少なくともリンク媒介中心性コミュニティ解析あるいは固有ベクトルコミュニティ解析のいずれか一つのクラスタ分析手法を選択するためのクラスタ分析手法選択手段を有することを特徴とする請求項1記載のソフトウェア保守支援装置。
  11. 前記変数重要度解析手段は、
    少なくとも次数中心性,推移確率行列固有ベクトル中心性,固有ベクトル中心性のいずれか一つの分析手法を選択する重要度分析法選択手段を有することを特徴とする請求項記載のソフトウェア保守支援装置。
  12. 請求項1記載のソフトウェア保守支援装置において、
    前記ソースコードに基づいて実行可能ソフトウェアへと変換するソースコードコンパイル装置を有することを特徴とするソフトウェア保守支援装置。
  13. 請求項12記載のソフトウェア保守支援装置を有し、実行可能ソフトウェアを転送することを特徴とする電子制御装置。
JP2012525258A 2010-07-20 2010-07-20 ソフトウェア保守支援装置及びそれにより検証した電子制御装置 Active JP5516736B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/004635 WO2012011145A1 (ja) 2010-07-20 2010-07-20 ソフトウェア保守支援装置及びそれにより検証した電子制御装置

Publications (2)

Publication Number Publication Date
JPWO2012011145A1 JPWO2012011145A1 (ja) 2013-09-09
JP5516736B2 true JP5516736B2 (ja) 2014-06-11

Family

ID=45496590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012525258A Active JP5516736B2 (ja) 2010-07-20 2010-07-20 ソフトウェア保守支援装置及びそれにより検証した電子制御装置

Country Status (4)

Country Link
US (1) US9170805B2 (ja)
EP (1) EP2597566B1 (ja)
JP (1) JP5516736B2 (ja)
WO (1) WO2012011145A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210009143A (ko) * 2019-07-16 2021-01-26 서울과학기술대학교 산학협력단 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템 및 그 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799859B2 (en) * 2011-05-19 2014-08-05 Siemens Aktiengesellschaft Augmented design structure matrix visualizations for software system analysis
US9038025B1 (en) * 2012-05-24 2015-05-19 Allstate Insurance Company Technical interaction model
CN104885060B (zh) * 2013-01-21 2016-10-12 日产自动车株式会社 数据漏更新检查装置、数据漏更新检查方法
JP6301803B2 (ja) * 2014-10-09 2018-03-28 株式会社東芝 データフロー図生成装置
JP6607705B2 (ja) * 2015-05-29 2019-11-20 日立オートモティブシステムズ株式会社 ログ保存条件生成装置、ログ保存条件生成方法
US9952960B1 (en) * 2016-10-19 2018-04-24 Sangmyung University Seoul Industry—Academy Cooperation Foundation Method and apparatus for analyzing hazard of elevator control software, and computer readable recording medium
US11086604B2 (en) 2017-11-21 2021-08-10 Mitsubishi Electric Corporation Source code splitting device, source code analyzing device, source code splitting method, and computer readable medium
JP7067286B2 (ja) * 2018-06-06 2022-05-16 オムロン株式会社 制御システム、制御システムの制御方法、および制御システムのプログラム
WO2020261487A1 (ja) * 2019-06-27 2020-12-30 オムロン株式会社 解析装置、解析方法及び解析プログラム
JP7404748B2 (ja) * 2019-10-03 2023-12-26 オムロン株式会社 プログラム開発装置およびプログラム開発装置を実現するためのプログラム
WO2021210071A1 (ja) * 2020-04-14 2021-10-21 三菱電機株式会社 デバッグ支援プログラム、記憶媒体、デバッグ支援装置およびデバッグ支援方法
CN112540749B (zh) * 2020-11-16 2023-10-24 南方电网数字平台科技(广东)有限公司 微服务划分方法、装置、计算机设备和可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141166A (ja) * 1993-11-19 1995-06-02 Ricoh Co Ltd クラスタ分析を用いたプログラム解析方法
JPH08190475A (ja) * 1995-01-05 1996-07-23 Fujitsu Ltd プログラム解析装置
JP2001273169A (ja) * 2000-03-24 2001-10-05 Toshiba Corp プログラムテスト仕様書生成装置
JP2001325100A (ja) * 2000-05-15 2001-11-22 Mitsubishi Electric Corp プログラム解析装置
JP2009205289A (ja) * 2008-02-26 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> 興味体系グラフ形成装置、興味体系グラフ形成方法、および、興味体系グラフ形成プログラム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161216A (en) * 1989-03-08 1992-11-03 Wisconsin Alumni Research Foundation Interprocedural slicing of computer programs using dependence graphs
JP3305949B2 (ja) * 1996-02-08 2002-07-24 富士通株式会社 プログラム解析装置
US6378066B1 (en) * 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
JP4720964B2 (ja) * 2001-05-31 2011-07-13 日本電気株式会社 Fem解析方法、プログラム、およびシステム
US7657455B2 (en) * 2002-12-23 2010-02-02 Akoya, Inc. Method and system for analyzing a plurality of parts
US7620946B2 (en) * 2003-05-05 2009-11-17 Jeffry Thomas Russell Program slicing for codesign of embedded systems
JP3966518B2 (ja) * 2004-03-12 2007-08-29 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム解析装置、その解析方法及びプログラム
JP4667954B2 (ja) 2005-05-17 2011-04-13 三菱電機株式会社 解析支援装置
KR20080018011A (ko) * 2006-08-23 2008-02-27 삼성전자주식회사 컴포넌트 구현 장치 및 방법, 컴포넌트 검증 장치 및 방법
US8713513B2 (en) * 2006-12-13 2014-04-29 Infosys Limited Evaluating programmer efficiency in maintaining software systems
US7984426B2 (en) * 2006-12-28 2011-07-19 Sap Ag Graphical representation of dependencies between changes of source code
JP4919825B2 (ja) * 2007-01-30 2012-04-18 株式会社東芝 プログラム開発装置、プログラム開発方法およびプログラム
WO2009011056A1 (ja) * 2007-07-19 2009-01-22 Fujitsu Limited アプリケーション改善支援プログラム、アプリケーション改善支援方法およびアプリケーション改善支援装置
JP2009237762A (ja) * 2008-03-26 2009-10-15 Toshiba Corp プログラム解析装置、プログラム解析方法および解析プログラム
US8499284B2 (en) * 2008-09-11 2013-07-30 Microsoft Corporation Visualizing relationships among components using grouping information
JP4635082B2 (ja) * 2008-09-30 2011-02-16 株式会社東芝 マルチプロセッサシステム及びグルーピング方法
US8060857B2 (en) * 2009-01-31 2011-11-15 Ted J. Biggerstaff Automated partitioning of a computation for parallel or other high capability architecture
US8359592B2 (en) * 2009-03-19 2013-01-22 Microsoft Corporation Identifying groups and subgroups
US8584108B2 (en) * 2010-03-29 2013-11-12 GM Global Technology Operations LLC Method and apparatus for analyzing software

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141166A (ja) * 1993-11-19 1995-06-02 Ricoh Co Ltd クラスタ分析を用いたプログラム解析方法
JPH08190475A (ja) * 1995-01-05 1996-07-23 Fujitsu Ltd プログラム解析装置
JP2001273169A (ja) * 2000-03-24 2001-10-05 Toshiba Corp プログラムテスト仕様書生成装置
JP2001325100A (ja) * 2000-05-15 2001-11-22 Mitsubishi Electric Corp プログラム解析装置
JP2009205289A (ja) * 2008-02-26 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> 興味体系グラフ形成装置、興味体系グラフ形成方法、および、興味体系グラフ形成プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200700500007; 大向一輝: 'SNSの現状と展望' 情報処理 第47巻、第9号, 20060915, pp.993-1000, 社団法人情報処理学会 *
JPN6013016177; 大向一輝: 'SNSの現状と展望' 情報処理 第47巻、第9号, 20060915, pp.993-1000, 社団法人情報処理学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210009143A (ko) * 2019-07-16 2021-01-26 서울과학기술대학교 산학협력단 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템 및 그 방법

Also Published As

Publication number Publication date
EP2597566A1 (en) 2013-05-29
US20130111438A1 (en) 2013-05-02
EP2597566B1 (en) 2019-04-03
JPWO2012011145A1 (ja) 2013-09-09
WO2012011145A1 (ja) 2012-01-26
US9170805B2 (en) 2015-10-27
EP2597566A4 (en) 2017-01-04

Similar Documents

Publication Publication Date Title
JP5516736B2 (ja) ソフトウェア保守支援装置及びそれにより検証した電子制御装置
EP2688002B1 (en) Design assistance device of a network system
US20100235814A1 (en) Apparatus and a method for generating a test case
US20140130012A1 (en) Object design
US8832642B2 (en) Split and merge sequence description
US7802186B2 (en) Property independent in-place editing
EP3975050A1 (en) Method and system for evaluating consistency of an engineered system
WO2012172687A1 (ja) プログラム可視化装置
Moormann et al. Supervisory control synthesis for large-scale systems with isomorphisms
US11775263B2 (en) Control code generation and collaboration using active machine learning
CN110928761B (zh) 需求链及其应用的系统和方法
Saqui-Sannes et al. Early checking of SysML models applied to protocols
JP2005222221A (ja) 組込コントローラ開発ツール、組込コントローラ、及び組込コントローラ開発プロセス
Qamsane et al. Towards an approach of synthesis, validation and implementation of distributed control for AMS by using events ordering relations
Malik et al. Hierarchical modelling of manufacturing systems using discrete event systems and the conflict preorder
JP4481783B2 (ja) シミュレーションモデル作成装置及びシミュレーション装置とシステム並びに方法とプログラム
Bauer et al. Survey of modeling and engineering aspects of self-adapting & self-optimizing systems
US20100063606A1 (en) Automated derivation of a logic-controller-behavior-model from a mechanical-machine-operation-model
Jungmann et al. Towards Fusing Data and Expert Knowledge for Better-Informed Digital Twins: An Initial Framework
EP3945421A1 (en) Computer-implemented method and computerized device for identifying a defect generator causing a defect in a production system
JP2012203777A (ja) ソフトウェア部品作成支援装置および方法
KR101628773B1 (ko) 프로그램 자동 설치 장치 및 방법
Calà et al. Migration strategy toward innovative, digitalized, and harmonized production systems
KR100261969B1 (ko) 전산화 절차서에서 절차의 목적 및 흐름을 그래프로 표현하는방법
Li et al. An Approach to Reliable Software Architectures Evolution

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131220

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140317

R151 Written notification of patent or utility model registration

Ref document number: 5516736

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151