JP2011165039A - モデルデバッグ装置およびモデルデバッグ方法 - Google Patents
モデルデバッグ装置およびモデルデバッグ方法 Download PDFInfo
- Publication number
- JP2011165039A JP2011165039A JP2010028777A JP2010028777A JP2011165039A JP 2011165039 A JP2011165039 A JP 2011165039A JP 2010028777 A JP2010028777 A JP 2010028777A JP 2010028777 A JP2010028777 A JP 2010028777A JP 2011165039 A JP2011165039 A JP 2011165039A
- Authority
- JP
- Japan
- Prior art keywords
- model
- equipment data
- decision table
- execution
- information
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】ソフトウェアの仕様を表すモデルを用いるソフトウェア開発において、モデルとソースコードの2重管理の手間が省く。。
【解決手段】前記モデルデバッグ装置は、設備データの更新を伴うソフトウェアの仕様を、設備データを更新するための条件を示す条件部と、条件部に記述された条件が成立した場合に実行する、設備データの更新内容を示す定義部との対応関係で表す決定表モデルを用いて、モデルおよび設備データの更新情報を出力するログ出力部を含むソースコードを生成し、生成したソースコードをコンパイル・実行して実行ログを出力し、その実行ログ情報を用いて決定表モデルを表示し、決定表モデルの中で識別情報が示す処理単位を強調表示し、設備データの更新情報を表示する。
【選択図】図1
【解決手段】前記モデルデバッグ装置は、設備データの更新を伴うソフトウェアの仕様を、設備データを更新するための条件を示す条件部と、条件部に記述された条件が成立した場合に実行する、設備データの更新内容を示す定義部との対応関係で表す決定表モデルを用いて、モデルおよび設備データの更新情報を出力するログ出力部を含むソースコードを生成し、生成したソースコードをコンパイル・実行して実行ログを出力し、その実行ログ情報を用いて決定表モデルを表示し、決定表モデルの中で識別情報が示す処理単位を強調表示し、設備データの更新情報を表示する。
【選択図】図1
Description
本発明は、ソフトウェアの仕様を表すモデルのデバッグ装置およびその方法に関する。
近年、システム開発の低コスト化・高品質化を目的として、モデル駆動開発が適用されている。モデル駆動開発は、自然言語で書かれていた従来の設計仕様を、決定表または状態遷移図等の図表を用いたモデル形式で表現することで、仕様の影響範囲が明確になり再利用性が高まる。また、そのモデルからソースコードを自動生成することで、言語の修得が必要なソースコードの作成の手間を省くという開発方法である。非特許文献1には、モデル駆動で行う開発方法が開示されている。
上記開発方法において、デバッグするためには、一般的に2つの作業を行う必要がある。まず、モデルから生成したソースコードに、ログ出力部を追加して実行し、実行後に得られるログを用いてソースコード上で誤りを発見・修正を行う。その後、ソースコードの修正部分に対応するモデルの部分を発見して、モデルを修正する。この2つの作業により、モデルおよびソースコードの誤りを除去できる。特許文献1には、上記デバッグの例として決定表(デシジョンテーブル)形式のモデルから作成したソースコードをデバッグする方法が開示されている。
また、上記のモデルデバッグ方法とは別の方法として、モデルのシミュレータを構築し、ソースコードを作成せずに、モデルそのままの形で実行してデバッグする方法がある。特許文献2には、モデルシミュレータを用いたモデルデバッグ方法が開示されている。
David S. Frankel「Model Driven Archtecture:Applying MDA to Enterprise Computing」、Wiley、2003年1月、pp.31−64
特許文献1に開示されている従来のソースコードを用いたモデルデバッグ方法は、ソースコードとモデルにおいて同じ内容を修正対象とした修正を2度行う必要があり、2重管理の手間がかかる。実際の開発では開発スケジュールの厳しさからソースコードの修正が中心となり、対応するモデルの修正は十分に行われない。これにより、モデルとソースコードの間で乖離が生じ、正確なモデルが存在しないため、開発担当者以外の者がシステムの仕様を正確に把握するのが困難になっている。そのため、次回以降のシステム開発において、過去の設計資産を有効活用できず、同じ仕様でも最初から開発する手間が生じており、モデル駆動開発の特徴であるモデルの再利用が十分に行われていない。
また、特許文献2に開示されているモデルシミュレータを用いたモデルデバッグ方法は、ソースコードを介さずに、モデルを直接実行・デバッグできるため、上記の問題はないが、モデルを実行するためにシミュレータおよびシミュレータ用のデータを実機とは別に用意する開発コストがかかる。また、実機とは別の環境で実行するため、リアルタイムシステムにおける実行タイミングを正確に再現できない恐れがあり、シミュレータでは正常でも実機上では異常が発生する恐れがある。
本発明は、上記の点を考慮してデバッグ時のモデルとソースコードの2重管理の手間を省くと同時に、実機を用いた正確なデバッグを行うための装置を提供することを目的とする。
上記目的を達成するため、本発明のモデルデバッグ装置は、設備データの更新を伴うソフトウェアの仕様を、設備データを更新するための条件を示す条件部と、条件部に記述された条件が成立した場合に実行する、設備データの更新内容を示す定義部との対応関係で表す決定表モデルを編集するモデル編集手段と、編集された決定表モデルからソースコードを生成し、設備データを更新する処理である処理単位毎に処理単位を含む決定表モデル、処理単位を識別する識別情報、および設備データの更新情報を出力するログ処理を生成されたソースコードに追加するソースコード生成手段と、
ソースコード実行に伴い、ログ処理により得られる実行ログを読み込み、実行ログに含まれる決定表モデルを表示し、決定表モデルの中で識別情報が示す処理単位を強調表示し、設備データの更新情報を表示する実行結果表示手段とを備える。
ソースコード実行に伴い、ログ処理により得られる実行ログを読み込み、実行ログに含まれる決定表モデルを表示し、決定表モデルの中で識別情報が示す処理単位を強調表示し、設備データの更新情報を表示する実行結果表示手段とを備える。
本発明の望ましい他の態様は、モデルデバッグ装置は、設備データの初期値を保持する初期化データ保持手段を備え、実行結果表示手段は、実行ログに含まれる設備データの更新情報を用いて、初期化データ保持手段に保持される設備データの初期値を更新し、初期化データ保持手段に保持される他の設備データを含む設備データのスナップショットを表示する。
本発明の望ましいさらに他の態様は、モデルデバッグ装置は、決定表モデルの一覧と、決定表モデルに含まれる設備データの一覧を表示し、ユーザによる、決定表モデルの一覧における決定表モデルの指定、および/または設備データの一覧における設備データの指定に応答して、指定されたモデルおよび設備データをブレークポイント情報として保存するブレークポイント保持手段を設け、実行結果表示手段は、ブレークポイント情報として指定された前デルまたは設備データに至る所までの実行ログを読み込み、読み込んだ実行ログに含まれる設備データの更新情報を用いて、初期化データ保持手段に保持される設備データの初期値を更新する。
本発明によれば、モデルを直接編集することができ、ソースコードは修正後のモデルから再び自動生成できるため、モデルとソースコードの2重管理の手間が省ける。
ソフトウェアは、その処理の実行に伴い、定義した変数の値(データ)を更新する。特に、列車の進路制御のような制御用のソフトウェアでは、制御対象の設備の状態や設備への制御指令(設備データ)を変数として扱う。本実施形態では、このようなソフトウェアの開発において、実行する処理を設備データの更新に対応させて定義すると、定義が容易であると共に、定義した処理のデバッグも容易であることに注目している。設備データの更新に対応する処理を以下では処理単位と呼ぶ。
設備データの更新を伴うソフトウェアの仕様を、設備データを更新するための条件を示す条件部と、この条件部に記述された条件が成立した場合に実行する、設備データの更新内容を示す定義部との対応関係で表す決定表モデルで表す。一つの対応関係は処理単位に対応する。この決定表モデルからソースコードを生成する。決定表モデルに含まれる、設備データを更新する処理毎に(処理単位毎に)、その処理を含む決定表モデル、その処理を識別する識別情報、およびこの処理に伴う設備データの更新情報を実行ログとして出力するログ処理をソースコードに追加する。
ソースコードの実行に伴い、実行ログに含まれる決定表モデルを表示し、識別情報が示す処理を強調表示し、設備データの更新情報を表示する。このような表示により、ユーザは、設備データの更新情報から決定表モデルの成否を判定できるので、決定表モデル及びソースコードを容易に検証、デバッグできる。
なお、列車の進路制御システムのような大規模なシステムは、列車接近判断、信号機制御などのいくつかのサブシステムに分割し、サブシステム毎に決定表モデルを作成する。
図1は、本実施形態のモデルデバッグ装置の構成例である。モデルデバッグ装置100は、モデル編集部101、モデル保持部102、ソースコード生成部103、ソースコード保持部104、プログラム実行部105、実行ログ保持部106、ブレークポイント入力部107、ブレークポイント保持部108、ログ読込制御部109、初期化データ保持部110、実行結果表示部111、及び確認結果保持部112を含む。
モデル編集部101は、表示装置の画面上に空又は雛形の決定表モデルを表示し、ユーザに、その決定表のテキストをセル単位で編集させることにより、決定表モデルを作成させる。決定表モデルには、ソフトウェアの要求仕様を元にして、ユーザが、設備データの更新を伴う一纏まりの処理を処理単位として、後述する条件と定義とを入力する。したがって、決定表モデルは少なくとも1つの処理単位を含む。また、モデル編集部101は、編集した決定表モデルをモデル保持部102に保存する。
ソースコード生成部103は、モデル保持部102保存されている決定表モデルからソースコードを生成し、ソースコード保持部104に保存する。ソースコードを生成する際に、決定表モデルに含まれる処理単位に対応するソースコードの処理単位(ある設備データの更新を伴う処理)毎にその処理単位に対応する決定表モデルに係る情報および設備データの更新情報を出力するログ出力処理を追加する。
プログラム実行部105は、ソースコード保持部104に保持されたソースコードを実行可能なプログラム形式にコンパイルし、コンパイルしたプログラムを実行する。プログラムの実行に伴い、ソースコードに追加したログ出力処理は、テキストファイル形式で決定表モデルの処理単位に係る情報および設備データの更新情報を含む実行ログを出力し、実行ログ保持部106に保存する。
ブレークポイント入力部107は、モデル保持部102に保持されている決定表モデルおよび初期化データ保持部110に保持されている設備データをブレークポイント入力画面に表示し、デバッグする際に用いるブレークポイント情報としてユーザに決定表モデルおよび設備データを選択させる。なお、ブレークポイント情報を用いたデバッグを行わない場合には、決定表モデルおよび設備データは選択する必要ない。
初期化データ保持部110は、設備データを保持する。なお、その設備データには初期値があらかじめ設定される。
ログ読込制御部109は、ブレークポイント保持部108に保持されている決定表モデルおよび設備データのブレークポイント情報が現れるまで、実行ログ保持部106に保持されている実行ログを一行(処理単位に対応する実行ログ)づつ読み込み、逐次、実行結果表示部111に読みこんだ情報を渡す。ブレークポイント情報を用いたデバッグを行わない場合には、プログラムの実行完了までの実行ログを読み込む。なお、実行結果表示部111に対するデータ受け渡しに関しては、実行ログを最後まで読み込んだ後で、一括で行ってもよい。
実行結果表示部111は、モデル保持部102に保持されている決定表モデルの情報をモデル実行結果表示画面に表示し、ログ読込制御部109から受け取った実行ログを1行ずつ読み込み、実行ログに含まれる設備データの更新情報と共に、その更新情報に対応する決定表モデルの処理単位の行を強調表示する。設備データの更新情報を表示する部分に、ユーザ確認用のチェックボックスも合わせて表示し、ユーザの確認結果を保持できるようにする。また、実行結果表示部111は、初期化データ保持部110に保持されている設備データの初期値を用いて、メモリ上に設備データの初期状態を構築しておく。その後、実行ログ読込制御部109から受け取った実行ログデータに含まれる設備データの更新情報を基に、指定したブレークポイントのモデルが実行された時点での設備データ値のスナップショットをとり、データスナップショット確認画面に表示する。なお、ユーザがモデル実行結果表示画面およびデータスナップショット確認画面を用いてモデルの誤りを発見した場合、実行結果表示部111は、誤りがあったモデルの情報をモデル編集部101に通知し、すぐにモデルを編集できるようにする。
確認結果保持部112は、モデル実行結果表示画面でユーザがチェックした情報を保持する。保持した情報は次回以降のデバッグ時に再利用し、前回のデバッグ時とモデル、モデルが扱う設備および設定される設備データ値が同じであればチェック済みとする。
図2は、モデル編集部101が編集、作成する決定表モデルの例である。図2には、表名「列車接近判断処理」の決定表モデル200と表名「信号機制御処理」の決定表モデル210とを示している。表名「列車接近判断処理」や「信号機制御処理」はモデル名であり、開発対象のソフトウェアを示す。決定表200、210は、処理単位を識別する通し番号(No)に対応して、処理名と条件部と定義部とを含み、処理名には条件部および定義部によって定義される処理の名称を記述し、条件部には定義部で定義する処理を実行するための条件を記述し、定義部には条件部に記述された全ての条件が成り立つ(複数の条件がある場合にそのAND条件が成立する)場合に実行する処理の内容を記述する。開発対象のソフトウェアの決定表モデルは、決定表モデルを構成する処理単位の識別情報である通し番号(No)に対応した条件部と定義部とにより記述される。同様に、処理単位201、202、203および211、212、213のように複数行にわたって条件部および定義部を記述することで、多様な条件に応じた処理を定義する。なお、決定表200で定義部に記述された処理が決定表210の条件部で利用されているが、このように、ある決定表の定義部で記述した処理を他の決定表の条件部に記述する成立条件として用いることができる記述方法である。
図3は、図2の決定表モデルをXMLファイル形式で示した例である。図3の、301、302、303、311、312、及び313は、図2における処理単位201、202、203、211、212、213、の部分に対応している。なお、保存するデータの形式はXMLファイル形式300、310を例として説明するが、CSV形式などテキスト情報が読みこめるファイル形式やデータベースであればよい。
図4は、図2の決定表モデルをC++ソースコードで出力した例である。図4は便宜上日本語で表現している。図4のソースコード400、410は、ぞれぞれ決定表200、210における条件部をif節の条件部401、403、405、411、413、415に、定義部をif節の本体部分402、404、406、412、414、416に記述し、実行可能な形式に変換したものである。なお、ここで、if節の本体部分には、決定表モデルの内容の他に、図中下線で示すように実行時刻および対応する決定表モデルに関する情報を出力するログ出力部を追加する。決定表モデルに関する情報は、決定表モデル名(表名)、決定表モデル内の処理単位を識別する通し番号、設備の属性名およびその属性値である。対象の設備により、設備の属性名が設備名(設備データ名)であり、属性値が設備の状態(設備データ値)であってもよい。
図5は、実行ログの例である。実行ログには、実行時刻および前述の決定表モデルに関する情報が実行順に出力される。
図6は、ブレークポイント入力部により表示されるブレークポイント入力画面600の例である。モデル一覧ビュー610は、作成されているモデルの一覧を表示するビューである。このビュー610には、決定表モデルの1行(レコード)に相当するモデル情報(モデルの種類、モデル名、モデルの行名)の他に、ブレークポイント(図中、B.P)611コントロールを表示する。設備データ一覧ビュー620は、モデル一覧ビュー610に含まれる決定表モデルが使用する設備データ(設備名)の一覧を駅および設備種類の順に表示するビューである。このビュー620にも、ブレークポイント621コントロールを表示する。これら2つのビューを含む画面において、ユーザは、手続き一覧ビュー610で、実行中の設備データを確認したい決定表モデルの対応する処理(行)にブレークポイント611のチェックを入れる。また、決定表モデルから生成され、コンパイルされた実行形式のプログラムは全駅を対象に繰返し実行されるため、特定の駅設備に着目して確認する場合、設備データ一覧ビュー620で確認対象とする設備データにブレークポイント621を設定する。なお、決定表モデルに対応したブレークポイントと設備データに対応したブレークポイントは、少なくとも一方が設定されればよく、双方が設定された場合は、プログラム実行において先に到達したブレークポイントが有効になる。
図7は、ブレークポイント保持部108で保持されるブレークポイント情報700の例である。1つのモデルに対応した複数の設備データに対して指定されたブレークポイントを保持することができる。
図8は、実行結果表示部111により表示されるモデル実行結果表示画面800の例である。ステップ実行用コントロール810および一括実行用コントロール811は、ユーザがログ読込制御部109に対してログの読み込み方法を指示するためのユーザインタフェースである。前者は、ユーザがステップ‐バイ‐ステップでモデル実行結果を確認するためのユーザインタフェースであり、後者は、ユーザが一括してモデル実行結果を確認するためのユーザインタフェースである。ステップ実行用コントロール810は、1度のアクション(ステップ実行用コントロール810の1回の操作)で実行ログを実行ログ保持部106から1行分(処理単位に対応する実行ログ)読み込むようログ読込制御部109に指示する。一括実行用のコントロール811は、ブレークポイントが設定されているときに有効であり、設定されているブレークポイント情報が現れるところまで、実行ログを読み込むようにログ読込制御部109に指示する。ステップ実行用コントロール810または一括実行用コントロール811に対するアクションにより得られる実行ログの内容に基づいて、モデル実行履歴ビュー820を表示する。モデル実行履歴ビュー820は、実行した決定表モデル822、823、824、各モデルで実行した設備データ更新情報(更新結果)825、827、829および設備データ更新情報のユーザ確認用のチェックボックス826、828、830を含む。実行したモデル822、823、824では、各モデルで実行した処理単位に対応する行を強調表示する(例えば、表示色を他の色と異ならせたり、文字色と背景色を反転表示する)。設備データ更新情報825、827、829では、実際に設定した属性(設備データ名又は設備データの属性)とその属性値(設備データの状態又は設備データ属性の値)を表示する。なお、モデル実行履歴ビュー820には多数の駅の情報を表示するため、駅選択用コントロール821を用いて駅を選択することで、一度に表示、確認する情報を減らすことができる。
図9は、ブレークポイントを設定した時点(ブレークポイントまでモデルを実行した時点)での設備データ値のスナップショットを表示するデータスナップショット確認画面900である。設備データ一覧ビュー910は、ブレークポイント入力画面600の設備データ一覧ビュー620と同様に設備の一覧を表示するビューであるが、ブレークポイントのコントロール621を表示しない。データスナップショットビュー920は、設備単位でその設備がもつ属性の情報(属性名、属性値)を詳細に表示する。設備の情報を表示する場合には、ユーザが、設備データ一覧ビュー910の1行を選択するか、設備名入力フォーム921に設備名を入力することにより設備を指定する。設備データ一覧ビュー910で1行選択した場合には、設備名入力フォーム921には選択した設備名を自動的に表示する。詳細設備情報表示ビュー922では、設備の属性名、属性値、この属性に最後に変更を加えたモデルの対応する行(関係するモデルの処理)、ユーザによる結果確認用のチェックボックスを含む。ユーザは詳細設備情報表示ビュー922で結果を確認した属性に対して、その行のチェックボックスにチェックする。
図10は、モデルデバッグ装置100のハードウェア構成例を示している。モデルデバッグ装置100は、CPU1002、メモリ1003、外部記憶装置1004、表示装置1005、入力装置1006、及び通信部1007を備える。CPU1002は、メモリ1003に記憶されたプログラムを実行する。具体的には、モデル編集部101、ソースコード生成部103、プログラム実行部105、ブレークポイント入力部107、ログ読込制御部109、及び実行結果表示部111を実行する。メモリ1003は、CPU1002によってプログラム及びプログラム実行に必要なデータを記憶する記憶領域である。具体的には、記憶するプログラムは、CPU1002が実行するプログラムと同じであり、プログラム実行に必要なデータは、モデル保持部102に保持されるモデル情報、ソースコード保持部104に保持されるソースコード、実行ログ保持部106に保持される実行ログ、ブレークポイント保持部108に保持されるブレークポイント情報、初期化データ保持部110に保持される設備データの初期値、確認結果保持部112に保持されるユーザ確認結果情報である。ただしこれらの情報は、常時メモリ1003上にあるのではなく、通常は外部記憶装置1004に格納されており、プログラム実行時に必要に応じて読み出される。外部記憶装置1004は、メモリ1003に格納されるデータおよびプログラムを保持する。表示装置1005は、プログラムの処理結果を表示する。表示装置は、例えばディスプレイである。入力装置1006は、ユーザからの実行指示及び実行に必要なデータの入力を受け付ける。具体的には、モデル編集部101におけるモデル情報入力、ソースコード生成部103におけるソースコード生成指示、プログラム実行部105におけるソースコードコンパイル及び実行指示、ブレークポイント入力部107におけるブレークポイント情報入力、ログ読込制御部109における実行ログ読込指示、実行結果表示部111におけるユーザ確認結果入力である。通信部1007は、ネットワーク1001を介して他の装置と通信する。図1では、モデルデバッグ装置は1台の装置上で実現されているが、それぞれの機能およびデータ格納領域は他の装置で実行することができ、複数の装置で実行する際に通信部1007を用いて装置間で通信する。
図11は、モデルデバッグ装置100の各部の処理の流れを示すフローチャートである。初めに、CPU1002は、モデル編集部101を実行し、モデル編集用の画面を表示する。ユーザは、モデル編集用の画面を用いて、要求仕様をもとに決定表モデルを作成すると同時に、初期化データ保持部110に保持される設備データを準備する。モデル編集部101は、作成された決定表モデルの情報をモデル保持部102に保存する。(ステップ1101)。
続いて、CPU1002は、ソースコード生成部103を実行し、モデル保持部102に保持されている決定表モデルを用いてソースコードを生成し、ソースコード保持部に保存する(ステップ1102)。CPU1002は、プログラム実行部105を実行し、ユーザからの実行要求を基に、ソースコード保持部104に保持されたソースコードをコンパイルして実行し、実行ログを実行ログ保持部106に保存する(ステップ1103)。CPU1002は、実行結果表示部111を実行し、モデル実行結果表示画面800を表示する(ステップ1104)。ただし、この時点では、ステップ実行用のコントロール810および一括実行用のコントロール811のみが表示され、ユーザはどちらかのコントロールを用いてアクションを実行する。CPU1002は、ログ読込制御部109を実行し、ユーザによって実行されたアクションがブレークポイント情報を用いたデバッグであるかどうかを判断する(ステップ1105)。
ブレークポイント情報を用いたデバッグであれば、ログ実行制御部109は、モデル保持部102に保持されている決定表モデル及び初期化データ保持部110に保持されている設備データを用いて、ブレークポイント入力部107を実行し、ブレークポイント入力画面を表示する。ユーザは、ブレークポイント入力画面上でモデル及び設備データにブレークポイントを入力する。その後、ブレークポイント入力部107は、入力されたブレークポイント情報をブレークポイント保持部108に保存する(ステップ1106)。その後、ログ読込制御部109は、入力されたブレークポイント情報が現れるところまで、実行ログ保持部106に保持されている実行ログを読み込み、実行結果表示部111に渡す(ステップ1107)。
一方、ユーザが実行したアクションがブレークポイント情報を用いたデバッグでない場合、ログ実行制御部109は、実行ログ保持部106に保持されている実行ログを1行読み込み実行結果表示部111に渡す(ステップ1108)。ここで、実行結果表示部111は、既にユーザが既に確認済みの結果が確認結果保持部112に存在するかどうかを確認する(ステップ1109)。ユーザによる確認済み結果があればその情報を読み込む(ステップ1110)。実行結果表示部111は、受け取った実行ログに含まれるモデルの手続き情報および設備データ更新情報を基に、モデル実行結果表示画面を表示する。また、実行結果表示部111は、初期化データ保持部110に保持されている設備データをメモリ上に読み込み、ログ読込制御部109からの実行ログに含まれる設備データ変更情報を基に、設備データのスナップショットをとり、データスナップショット確認画面に表示する。その後、ユーザは、設備データの変更情報および画面上で設備データスナップショットを確認し、属性1つずつ確認結果を入力し、確認結果保持部112に保存する(ステップ1111)。結果を確認していく際に、設備データの誤りがないかどうかをユーザが確認する。もし誤りがあれば、実行結果表示部111は、誤りのあるモデルの情報をモデル編集部101に伝える(ステップ1112)。誤りがなければ、処理を終了する(ステップ1103)。以後、設備データに誤りがなくなるまで、ステップ1101からステップ1112までを繰り返す。
図12は、1度のモデルの実行でモデルの誤りを発見できなかった際に、次に設定するモデルのブレークポイントを決定する処理を示す例である。モデル一覧610において、No6のブレークポイントを設定し、その部分のモデルの処理1202を実行していた場合、その処理1202を呼び出す1つ前の処理を特定し(1201)、モデル一覧610の該当する部分を強調表示する。
図13は、1度のモデルの実行でモデルの誤りを発見できなかった際に、次に設定する設備のブレークポイントを決定する処理を示す例である。設備データ一覧620において、No7の設備1301に対してブレークポイントに設定し実行していた場合、設備対応関係定義1303からその設備1301に関係がある設備を特定し(1302)、設備データ一覧620の該当する部分を強調表示する。なお、設備対応関係定義1303にはある設備に対して関係のある設備を定義しておく。設備対応関係定義1303に、1つの設備に対して関係のある設備が複数定義されていた場合、複数の設備を強調表示する。また、ブレークポイント保持部108において保持しているブレークポイント情報を用いて、すでに結果確認済みの設備を特定し(1304)、その設備のブレークポイントはチェック部品を表示しないようにすることができる。
本実施形態によれば、決定表モデルから生成するソースコードのログ出力部分に、対応する決定表モデル情報を埋め込み、実行時にログ出力させることで、ソースコードを介さずに決定表モデル上でのデバッグが可能となる。これによりモデルを直接編集することができ、ソースコードは修正後のモデルから再び自動生成できるため、モデルとソースコードの2重管理の手間が省ける。
また、決定表モデルは、要求仕様を満たす設計情報のみを含むが、ソースコードには、それを実現するための実装上の細かな演算処理等直接仕様とは関係ない情報も含む。そのため、実装の詳細を把握しなければならないソースコードのデバッグに比べ、モデルのデバッグは作業の属人化が解消される。
さらに本実施形態は、実機上での結果を用いることで、非実機環境の結果を用いるシミュレータでのデバッグに比べ、実行タイミング等の不具合を正確に再現できるため、開発対象のソフトウェアの品質の向上につながる。また、シミュレータ及びシミュレータ用のデータの用意も不要であるので、ソフトウェアの開発コストも抑えることができる。
100:モデルデバッグ装置、101:モデル編集部、102:モデル保持部、103:ソースコード生成部、104:ソースコード保持部、105:プログラム実行部、106:実行ログ保持部、107:ブレークポイント入力部、108:ブレークポイント保持部、109:ログ読込制御部、110:初期化データ保持部、111:実行結果表示部、112:確認結果保持部。
Claims (9)
- 設備データの更新を伴うソフトウェアの仕様を、前記設備データを更新するための条件を示す条件部と、前記条件部に記述された条件が成立した場合に実行する、前記設備データの更新内容を示す定義部との対応関係で表す決定表モデルを編集するモデル編集手段と、
編集された前記決定表モデルからソースコードを生成し、前記設備データを更新する処理である処理単位毎に、前記処理単位を含む前記決定表モデル、前記処理単位を識別する識別情報、および前記設備データの更新情報を出力するログ処理を生成された前記ソースコードに追加するソースコード生成手段と、
前記ソースコードの実行に伴い、前記ログ処理により得られる実行ログを読み込み、前記実行ログに含まれる前記決定表モデルを表示し、前記決定表モデルの中で前記識別情報が示す前記処理単位を強調表示し、前記設備データの更新情報を表示する実行結果表示手段とを備えることを特徴とするモデルデバッグ装置。 - 前記設備データの初期値を保持する初期化データ保持手段を備え、前記実行結果表示手段は、前記実行ログに含まれる前記設備データの更新情報を用いて、前記初期化データ保持手段に保持される前記設備データの前記初期値を更新し、前記初期化データ保持手段に保持される他の設備データを含む設備データのスナップショットを表示することを特徴とする請求項1に記載のモデルデバッグ装置。
- 前記モデルデバッグ装置において、前記決定表モデルの一覧と、前記決定表モデルに含まれる前記設備データの一覧を表示し、ユーザによる、前記決定表モデルの一覧における決定表モデルの指定、および/または前記設備データの一覧における設備データの指定に応答して、指定されたモデルおよび設備データをブレークポイント情報として保存するブレークポイント保持手段を設け、
前記実行結果表示手段は、前記ブレークポイント情報として指定された前記モデルまたは前記設備データに至る所までの前記実行ログを読み込み、読み込んだ前記実行ログに含まれる前記設備データの更新情報を用いて、前記初期化データ保持手段に保持される前記設備データの前記初期値を更新することを特徴とする請求項2に記載のモデルデバッグ装置。 - 前記ブレークポイント保持手段は、1度の実行でモデルの誤りを発見できなかった場合に、前回実行時に保存した前記ブレークポイント情報に含まれる前記モデルの構成要素を呼び出す行を前記モデルから導出し、前記モデルの構成要素の一覧上で強調表示しユーザーの選択を支援することを特徴とする請求項3に記載するモデルデバッグ装置。
- 前記ブレークポイント保持手段は、1度の実行でモデルの誤りを発見できなかった場合に、前回実行時に保存した前記ブレークポイント情報に含まれる設備データに関係がある設備データを前記モデルから導出し、前記設備データの一覧上で強調表示しユーザーの選択を支援することを特徴とする請求項3または請求項4に記載するモデルデバッグ装置。
- 前記実行結果表示手段は、ユーザが確認した設備データの結果を指定し、指定された設備データの情報を保存し、次回実行時に前記確認済み設備データ情報を用いて、ユーザーに前回未確認の設備データ情報のみを表示することを特徴とする請求項3に記載するモデルデバッグ装置。
- モデルデバッグ装置におけるモデルでバッグ方法であって、前記モデルデバッグ装置は、
設備データの更新を伴うソフトウェアの仕様を、前記設備データを更新するための条件を示す条件部と、前記条件部に記述された条件が成立した場合に実行する、前記設備データの更新内容を示す定義部との対応関係で表す決定表モデルを編集し、
編集された前記決定表モデルからソースコードを生成し、
前記設備データを更新する処理である処理単位毎に、前記処理単位を含む前記決定表モデル、前記処理単位を識別する識別情報、および前記設備データの更新情報を出力するログ処理を前記ソースコードに追加し、
前記ソースコードの実行に伴い、前記ログ処理により得られる実行ログを読み込み、
前記実行ログに含まれる前記決定表モデルを表示し、
前記決定表モデルの中で前記識別情報が示す前記処理単位を強調表示し、
前記設備データの更新情報を表示することを特徴とするモデルデバッグ方法。 - 前記モデルデバッグ装置は、前記設備データの初期値を保持し、前記実行ログに含まれる前記設備データの更新情報を用いて、保持される前記設備データの前記初期値を更新し、保持される他の設備データを含む設備データのスナップショットを表示することを特徴とする請求項7に記載のモデルデバッグ方法。
- 前記モデルデバッグ装置は、前記決定表モデルの一覧と、前記決定表モデルに含まれる前記設備データの一覧を表示し、
ユーザによる、前記決定表モデルの一覧における決定表モデルの指定、および/または前記設備データの一覧における設備データの指定に応答して、指定されたモデルおよび設備データをブレークポイント情報として保存し、
前記ブレークポイント情報として指定された前記モデルおよび前記設備データに至る所までの前記実行ログを読み込み、読み込んだ前記実行ログに含まれる前記設備データの更新情報を用いて、保持される前記設備データの前記初期値を更新することを特徴とする請求項8に記載のモデルデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010028777A JP5374405B2 (ja) | 2010-02-12 | 2010-02-12 | モデルデバッグ装置およびモデルデバッグ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010028777A JP5374405B2 (ja) | 2010-02-12 | 2010-02-12 | モデルデバッグ装置およびモデルデバッグ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011165039A true JP2011165039A (ja) | 2011-08-25 |
JP5374405B2 JP5374405B2 (ja) | 2013-12-25 |
Family
ID=44595630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010028777A Expired - Fee Related JP5374405B2 (ja) | 2010-02-12 | 2010-02-12 | モデルデバッグ装置およびモデルデバッグ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5374405B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013105399A (ja) * | 2011-11-15 | 2013-05-30 | Hitachi Ltd | コンピュータプログラム管理装置、コンピュータプログラム管理方法、及びコンピュータプログラムを管理するコンピュータプログラム |
JP2019153265A (ja) * | 2018-03-05 | 2019-09-12 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、その処理方法及びプログラム |
CN111814951A (zh) * | 2019-04-10 | 2020-10-23 | 国际商业机器公司 | 调试深度神经网络 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06139104A (ja) * | 1992-10-23 | 1994-05-20 | Fujitsu Ltd | プログラムの実行履歴表示方式 |
JPH08137717A (ja) * | 1994-11-08 | 1996-05-31 | Toshiba Corp | デバッグ方法及び装置 |
JP2001060150A (ja) * | 1999-08-20 | 2001-03-06 | Nec Corp | データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体 |
JP2002108649A (ja) * | 2000-09-29 | 2002-04-12 | Toshiba Corp | トレース解析を支援するためのプログラムを記録した記録媒体及びプログラム製品 |
JP2003208334A (ja) * | 2002-01-10 | 2003-07-25 | Canon Inc | ソフトウェアシステム動作確認装置 |
JP2005202925A (ja) * | 2003-12-19 | 2005-07-28 | Denso Corp | 制御プログラムの検査方法及び検査装置及び検査プログラム |
WO2009116748A2 (ko) * | 2008-03-19 | 2009-09-24 | 주식회사케투씨소프트 | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및 장치 |
-
2010
- 2010-02-12 JP JP2010028777A patent/JP5374405B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06139104A (ja) * | 1992-10-23 | 1994-05-20 | Fujitsu Ltd | プログラムの実行履歴表示方式 |
JPH08137717A (ja) * | 1994-11-08 | 1996-05-31 | Toshiba Corp | デバッグ方法及び装置 |
JP2001060150A (ja) * | 1999-08-20 | 2001-03-06 | Nec Corp | データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体 |
JP2002108649A (ja) * | 2000-09-29 | 2002-04-12 | Toshiba Corp | トレース解析を支援するためのプログラムを記録した記録媒体及びプログラム製品 |
JP2003208334A (ja) * | 2002-01-10 | 2003-07-25 | Canon Inc | ソフトウェアシステム動作確認装置 |
JP2005202925A (ja) * | 2003-12-19 | 2005-07-28 | Denso Corp | 制御プログラムの検査方法及び検査装置及び検査プログラム |
WO2009116748A2 (ko) * | 2008-03-19 | 2009-09-24 | 주식회사케투씨소프트 | 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및 장치 |
Non-Patent Citations (2)
Title |
---|
JPN6013043262; 小麦田哲也 外1名: 'オブジェクト指向技術による 実践!モデル駆動開発 シーズンIII〜コード生成編' 組込みプレス 第9巻, 20071201, p.160-164, (株)技術評論社 * |
JPN6013043265; 小麦田哲也 外1名: 'オブジェクト指向技術による実践!モデル駆動開発 シーズンI〜要件定義編〜' 組込みプレス 第5巻, 20061201, p.183-185, (株)技術評論社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013105399A (ja) * | 2011-11-15 | 2013-05-30 | Hitachi Ltd | コンピュータプログラム管理装置、コンピュータプログラム管理方法、及びコンピュータプログラムを管理するコンピュータプログラム |
JP2019153265A (ja) * | 2018-03-05 | 2019-09-12 | キヤノンマーケティングジャパン株式会社 | 情報処理装置、その処理方法及びプログラム |
CN111814951A (zh) * | 2019-04-10 | 2020-10-23 | 国际商业机器公司 | 调试深度神经网络 |
CN111814951B (zh) * | 2019-04-10 | 2024-03-26 | 国际商业机器公司 | 调试深度神经网络 |
Also Published As
Publication number | Publication date |
---|---|
JP5374405B2 (ja) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4730315A (en) | Diagrammatic method of testing program | |
US11194550B2 (en) | System and method for migrating legacy software to a system common architecture | |
US20150294039A1 (en) | Graphical Design Verification Environment Generator | |
US20150301923A1 (en) | Sequence-program-debugging supporting apparatus | |
CN104615541A (zh) | 基于流程图的仿真测试建模系统及方法 | |
JP5374405B2 (ja) | モデルデバッグ装置およびモデルデバッグ方法 | |
CN105630661A (zh) | 用于自动化跨系统程序调试的方法和装置 | |
CN104536398A (zh) | 一种变频器监控方法和系统 | |
Cooper et al. | Model-based development of engine control systems: Experiences and lessons learnt | |
JP2016224579A (ja) | 情報処理装置及び情報処理方法 | |
JP2008165324A (ja) | プログラム作成支援装置 | |
JPH0625991B2 (ja) | 工程計画支援装置 | |
Stürmer et al. | Modeling Guidelines and Model Analysis Tools in Embedded Automotive Software Development. | |
Julius et al. | A model-driven approach for transforming GRAFCET specification into PLC code including hierarchical structures | |
JP5540856B2 (ja) | ワークフローを設定するための装置および方法 | |
JP2020086638A (ja) | 制御プログラム作成支援ツール及び制御プログラムの作成方法 | |
JP2006163657A (ja) | プレイバックシミュレータ装置 | |
JP2014010599A (ja) | 運転要領書作成装置 | |
CN112579443B (zh) | 智慧测试机器人的自动化测试方法及平台 | |
Adedjouma et al. | Model-based computer-aided monitoring for ISO26262 compliant systems | |
JP2012048471A (ja) | 数値制御装置およびマクロプログラム実行方法 | |
JP5277126B2 (ja) | プログラム作成支援装置及び方法 | |
JP2013235381A (ja) | データ編集装置およびデータ編集方法 | |
JP2008234379A (ja) | ソフトウェア生成装置ならびにソフトウェア生成方法 | |
JP2005092609A (ja) | シーケンス図表示装置およびシーケンス図表示プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120717 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130821 |
|
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: 20130903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130920 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |