JP5976209B2 - プログラム解析装置、プログラム解析方法およびプログラム解析プログラム - Google Patents
プログラム解析装置、プログラム解析方法およびプログラム解析プログラム Download PDFInfo
- Publication number
- JP5976209B2 JP5976209B2 JP2015516813A JP2015516813A JP5976209B2 JP 5976209 B2 JP5976209 B2 JP 5976209B2 JP 2015516813 A JP2015516813 A JP 2015516813A JP 2015516813 A JP2015516813 A JP 2015516813A JP 5976209 B2 JP5976209 B2 JP 5976209B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- variable
- source code
- new
- partial program
- 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.)
- Expired - Fee Related
Links
- 230000007547 defect Effects 0.000 claims description 21
- 239000000284 extract Substances 0.000 claims 1
- 230000007257 malfunction Effects 0.000 claims 1
- 238000013461 design Methods 0.000 description 70
- 238000000034 method Methods 0.000 description 66
- 238000004458 analytical method Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 30
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 238000010998 test method Methods 0.000 description 3
- 230000008094 contradictory effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
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におけるプログラム管理システム100の構成について、図1に基づいて説明する。
外部端末200は、有線または無線で、アプリケーションサーバ110および車両120と通信する。
実行プログラム123は、例えば、車両120を制御するための実行形式のプログラムである。
アプリケーションリスト122は、実行プログラム123を構成するアプリケーションプログラム(部分プログラムの一例)の名称を示すデータである。
以下、実行プログラム123を構成するアプリケーションプログラムを「搭載アプリケーション」という。
以下、追加するアプリケーションプログラムを「追加アプリケーション」といい、アプリケーションプログラムを追加後の実行プログラム123を「新たな実行プログラム123」という。
(1)外部端末200は、電子制御装置121からアプリケーションリスト122を取得する。
(2)外部端末200は、アプリケーションリスト122に示されているアプリケーション名で識別される搭載アプリケーションのソースコード111をアプリケーションサーバ110から取得する。
また、外部端末200は、追加アプリケーションのソースコード111をアプリケーションサーバ110から取得する。
(3)外部端末200は、追加アプリケーションのソースコード111と搭載アプリケーションのソースコード111とを用いて、新たな実行プログラム123に関するプログラム解析を行う。プログラム解析では、新たな実行プログラム123に不具合が生じるか否かを判定する。
(4)新たな実行プログラム123に不具合が生じないと判定した場合、外部端末200は、新たな実行プログラム123を作成し、電子制御装置121に記憶されている実行プログラム123を新たな実行プログラム123で更新する。また、外部端末200は、追加アプリケーションのアプリケーション名をアプリケーションリスト122に追加する。
以上の動作により、アプリケーションプログラムを追加した際に新たな実行プログラム123に不具合が生じるか否か、を判定することができる。
実施の形態1における外部端末200の機能構成について、図2に基づいて説明する。
外部端末200は、プログラム解析部240と、プログラム作成部250と、プログラム更新部260と、端末記憶部290とを備える。
アプリケーションリスト読み込み部220は、電子制御装置121からアプリケーションリスト122を読み込む。
アプリケーション収集部230は、アプリケーションリスト122に示されているアプリケーション名で識別される搭載アプリケーションのソースコード111をアプリケーションサーバ110からダウンロードする。また、アプリケーション収集部230は、追加アプリケーションのソースコード111をアプリケーションサーバ110からダウンロードする。
プログラム解析部240は、追加アプリケーションのソースコード111と搭載アプリケーションのソースコード111とを用いて、新たな実行プログラム123に関するプログラム解析を行う。
プログラム作成部250は、新たな実行プログラム123に不具合が生じないと判定された場合に、新たな実行プログラム123を作成する。
プログラム更新部260は、電子制御装置121に記憶されている実行プログラム123を新たな実行プログラム123に更新する。また、プログラム更新部260は、追加アプリケーションのアプリケーション名をアプリケーションリスト122に追加する。
例えば、端末記憶部290は、アプリケーションリスト122、追加アプリケーションのソースコード111、搭載アプリケーションのソースコード111および新たな実行プログラム123などを記憶する。
実施の形態1におけるプログラム管理方法について、図3に基づいて説明する。
ソースコード111がC言語で記述されている場合、ソースコード111が記述されたファイルの拡張子は“.c”または“.h”である。
そして、外部端末200の追加アプリケーション受付部210は、アプリケーションの追加要求を受け付ける。
なお、アプリケーションの追加要求には、電子制御装置121に追加したい追加アプリケーションのアプリケーション名(識別子の一例)が含まれる。
S110の後、処理はS120に進む。
S120の後、処理はS130に進む。
そして、アプリケーション収集部230は、S110で入力された追加要求に含まれるアプリケーション名で識別される追加アプリケーションのソースコード111をアプリケーションサーバ110からダウンロードする。
また、アプリケーション収集部230は、S120で読み込まれたアプリケーションリスト122に示されるアプリケーション名で識別される搭載アプリケーションのソースコード111をアプリケーションサーバ110からダウンロードする。
S130の後、処理はS140に進む。
例えば、プログラム解析部240は、従来のプログラム解析ツールを実行することによって、静的または動的にプログラム解析を行う。
オーバーフロー、アンダーフロー、ゼロ除算またはアクセス例外の有無、モジュール(ルーチンともいう)の再帰呼び出しの有無、割り込みの制限の不整合などは、解析内容の一例である。
S140の後、処理はS150に進む。
新たな実行プログラム123に不具合が生じるという解析結果が得られた場合(YES)、追加アプリケーション受付部210がアプリケーションを追加できない旨のエラーメッセージを表示し、プログラム管理方法の処理は終了する。
新たな実行プログラム123に不具合が生じないという解析結果が得られた場合(NO)、処理はS160に進む。
例えば、プログラム作成部250は、追加アプリケーションのソースコード111と搭載アプリケーションのソースコード111とをコンパイルする。そして、プログラム作成部250は、コンパイルによって作成された各オブジェクトファイルをリンクする。各オブジェクトファイルをリンクすることによって、新たな実行プログラム123が作成される。
S160の後、処理はS170に進む。
そして、プログラム更新部260は、電子制御装置121に記憶されている実行プログラム123を、S160で作成された新たな実行プログラム123に更新する。
また、プログラム更新部260は、追加アプリケーションのアプリケーション名を、電子制御装置121に記憶されているアプリケーションリスト122に追加する。
追加アプリケーション受付部210は、アプリケーションの追加が終了したことを示す終了メッセージを外部端末200の表示部に表示する。
S170の後、プログラム管理方法の処理は終了する。
実施の形態1における外部端末200のハードウェア構成の一例について、図4に基づいて説明する。
演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905はバス909に接続している。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリまたはハードディスク装置である。
主記憶装置903は、例えば、RAM(Random Access Memory)である。
通信装置904は、有線または無線でインターネット、LAN(ローカルエリアネットワーク)、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置905は、例えば、マウス、キーボード、ディスプレイ装置である。
例えば、オペレーティングシステム(OS)が補助記憶装置902に記憶される。また、「〜部」として説明している機能を実現するプログラム(プログラム解析プログラムの一例)が補助記憶装置902に記憶される。そして、OSおよび「〜部」として説明している機能を実現するプログラムは主記憶装置903にロードされ、演算装置901によって実行される。
なお、実施の形態1に係る方法(プログラム解析方法の一例)はフローチャート等を用いて説明している手順または一部異なる手順によって実現することができる。
また、新たな実行プログラム123の実装に必要なソースコードが揃った状態でプログラム解析を行うため、プログラム解析が1回で済む。つまり、プログラム解析の工数を削減することができる。
過去のプログラム解析の結果を利用する形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
実施の形態2におけるアプリケーションサーバ110の機能構成について、図5に基づいて説明する。
例えば、サーバ記憶部119は、ソースコード111と解析結果テーブル112とを記憶する。
解析結果テーブル112は、プログラムの解析結果とプログラムを構成する複数のアプリケーションのそれぞれのアプリケーション名とを対応付けるテーブルである。
実施の形態2におけるプログラム管理方法について、図6に基づいて説明する。
アプリケーションサーバ110のソースコード要求受信部113は、外部端末200からソースコード要求を受信する。
アプリケーションサーバ110の解析結果検索部114は、ソースコード要求から追加アプリケーションのアプリケーション名と搭載アプリケーションのアプリケーション名とを取得する。そして、解析結果検索部114は、追加アプリケーションのアプリケーション名と搭載アプリケーションのアプリケーション名とに対応付けられた解析結果が解析結果テーブル112に設定されているか否かを判定する。
該当する解析結果が解析結果テーブル112に設定されている場合、アプリケーションサーバ110のソースコード応答部115は、該当する解析結果と、追加アプリケーションのソースコード111と、搭載アプリケーションのソースコード111とを外部端末200に送信する。そして、外部端末200のアプリケーション収集部230は、アプリケーションサーバ110から送信された解析結果およびソースコード111を受信する。但し、不具合が生じることを解析結果が示す場合、ソースコード111の通信は行わなくてもよい。
該当する解析結果が解析結果テーブル112に設定されていない場合、アプリケーションサーバ110のソースコード応答部115は、追加アプリケーションのソースコード111と搭載アプリケーションのソースコード111とを外部端末200に送信する。そして、外部端末200のアプリケーション収集部230は、アプリケーションサーバ110から送信されたソースコード111を受信する。
S131の後、処理はS132に進む。
解析結果を取得できた場合(YES)、処理はS150に進む。
解析結果を取得できなかった場合(NO)、処理はS140に進む。
S140の後、処理はS150に進む。
その他の処理は、実施の形態1と同様である。
なお、アプリケーションサーバ110の代わりに外部端末200が解析結果テーブル112を記憶しても構わない。そして、該当する解析結果が解析結果テーブル112に設定されている場合、外部端末200はプログラム解析(S140)を行わず、解析結果テーブル112に設定されている解析結果を利用する。
外部端末200の代わりにアプリケーションサーバ110がプログラム解析およびプログラムの作成を行う形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
実施の形態3におけるプログラム管理システム100の機能構成について、図7に基づいて説明する。
アプリケーションサーバ110は、新たな実行プログラム123を外部端末200に提供するプログラム提供部116を備える。
アプリケーションサーバ110は、アプリケーションサーバ110で使用するデータ(例えば、ソースコード111)を記憶するサーバ記憶部119を備える。
実施の形態3におけるプログラム管理方法について、図8に基づいて説明する。
アプリケーションサーバ110のプログラム提供部116は、外部端末200からプログラム要求を受信する。
アプリケーションサーバ110のアプリケーション収集部230は、プログラム要求に含まれる各アプリケーション名に基づいて、追加アプリケーションのソースコード111と搭載アプリケーションのソースコード111とをサーバ記憶部119から収集する。
アプリケーションサーバ110のプログラム解析部240は、収集されたソースコード111を用いて、新たな実行プログラム123に関するプログラム解析を行う(実施の形態1と同様)。
新たな実行プログラム123に不具合が生じないという解析結果が得られた場合、アプリケーションサーバ110のプログラム作成部250は新たな実行プログラム123を作成する(実施の形態1と同様)。そして、アプリケーションサーバ110のプログラム提供部116は新たな実行プログラム123を送信し、外部端末200のプログラム取得部270は新たな実行プログラム123を受信する。
新たな実行プログラム123に不具合が生じるという解析結果が得られた場合、アプリケーションサーバ110のプログラム提供部116は新たな実行プログラム123を提供できない旨のエラーメッセージを送信し、外部端末200のプログラム取得部270はエラーメッセージを受信する。
S133の後、処理はS134に進む。
新たな実行プログラム123が取得できた場合(YES)、処理はS170に進む。
新たな実行プログラム123が取得できなかった場合、つまり、エラーメッセージを取得した場合(NO)、外部端末200の追加アプリケーション受付部210がアプリケーションを追加できない旨のエラーメッセージを表示し、プログラム管理方法の処理は終了する。
その他の処理は、実施の形態1と同様である。
なお、プログラム解析とプログラム作成とのいずれか一方の処理をアプリケーションサーバ110で実行し、他方の処理を外部端末200で実行しても構わない。
新たな実行プログラム123を構成する各アプリケーションの変数情報に基づいて、新たな実行プログラム123に関するプログラム解析を行う形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
実施の形態4におけるアプリケーションファイル118の構成について、図9に基づいて説明する。
アプリケーションファイル118は、アプリケーションのソースコード111と、アプリケーションの構造設計情報117(変数情報の一例)とを含む。構造設計情報117はアプリケーションで使用される変数に関する情報である。
実施の形態4において、構造設計情報117は、アプリケーションのソースコード111に含まれるサブルーチン(関数ともいう)の名称と、サブルーチン内で使用される変数の名称と、変数が有する属性の値と、を対応付けて示す。
アプリケーション(a)のソースコード111は変数Xを使用するサブルーチン(a)を含み、アプリケーション(a)の構造設計情報117はサブルーチン(a)で使用される変数Xの属性値として属性(3)を示す。
アプリケーション(b)のソースコード111は変数Xを使用するサブルーチン(b)を含み、アプリケーション(b)の構造設計情報117はサブルーチン(b)で使用される変数Xの属性値として属性(2)を示す。
アプリケーション(c)のソースコード111は変数Xを使用するサブルーチン(c)を含み、アプリケーション(c)の構造設計情報117はサブルーチン(c)で使用される変数Xの属性値として属性(1)を示す。
例えば、変数Xは、電子制御装置121の内部状態の変化または電子制御装置121に入力される入力信号の変化を確認するための状態変数(フラグともいう)である。
一周期遅れ読み出し属性は、更新周期が経過する前の変数値が読み出されることを示す。言い換えると、一周期遅れ読み出し属性は、更新前の変数値を読み出すための属性である。
書き込み属性は、変数値が書き込まれることを示す。言い換えると、書き込み属性は、変数値を更新するための属性である。
通常周期読み出し属性は、更新周期が経過した後の変数値が読み出されることを示す。言い換えると、通常周期読み出し属性は、更新後の変数値を読み出すための属性である。
実施の形態4における外部端末200の機能構成について、図10に基づいて説明する。
プログラム解析部240は、メインルーチン作成部241と、プログラム組み立て部242と、プログラム解析実行部243とを備える。
メインルーチン作成部241は、新たな実行プログラム123のメインルーチンのソースコードを作成する。
プログラム組み立て部242は、メインルーチンのソースコードと追加アプリケーションのソースコード111と搭載アプリケーションのソースコード111とを用いて、新たな実行プログラム123のソースコードを作成する。
プログラム解析実行部243は、新たな実行プログラム123のソースコードに対してプログラム解析を実行する。
実施の形態4におけるプログラム管理方法について、図11に基づいて説明する。
S135の後、処理はS200に進む。
その他の処理は、実施の形態1と同様である。
実施の形態4におけるプログラム解析処理(S200)について、図12に基づいて説明する。
新たな実行プログラム123のメインルーチンは、各アプリケーションに含まれるサブルーチンを適切な順番で呼び出すための関数である。
メインルーチン作成処理(S210)の詳細については後述する。
S210の後、処理はS220に進む。
例えば、新たな実行プログラム123のソースコードは、メインルーチンのソースコードと追加アプリケーションのソースコード111と搭載アプリケーションのソースコード111とを含む。
S220の後、処理はS230に進む。
例えば、プログラム解析実行部243は、新たな実行プログラム123のソースコードをプログラム解析ツールに入力し、プログラム解析ツールを実行する。
S230の後、プログラム解析処理(S200)は終了する。
実施の形態4におけるメインルーチン作成処理(S210)について、図13に基づいて説明する。
例えば、メインルーチン作成部241は、各アプリケーションファイル118に含まれる構造設計情報117から、未選択の変数を一つ選択する。
S211の後、処理はS212に進む。
そして、メインルーチン作成部241は、S211で選択した変数の属性値を構造設計情報117から取得する。
例えば、アプリケーション(a)のサブルーチン(a)で使用される変数XがS211で選択された場合、メインルーチン作成部241は、アプリケーション(a)のアプリケーションファイル118に含まれる構造設計情報117を選択する。そして、メインルーチン作成部241は、サブルーチン(a)と変数Xとに対応付けられている属性値を構造設計情報117から取得する。
S212の後、処理はS213に進む。
例えば、S211でサブルーチン(a)の変数Xが選択され、S212で属性(3)が取得された場合、メインルーチン作成部241は、図14の(1)に示すように、第一の構造設計ファイル291の設定を行う。
図14は、実施の形態4における第一の構造設計ファイル291の一例を示す図である。
S213の後、処理はS214に進む。
未選択の変数が有る場合(YES)、処理はS211に戻る。
未選択の変数が無い場合(NO)、処理はS215に進む。
第二の構造設計ファイル292は、変数毎に変数名と変数の属性値と変数が使用されるサブルーチンの名称とを対応付けるデータである。
例えば、メインルーチン作成部241は、図14の(2)に示す第一の構造設計ファイル291に基づいて、図15に示す第二の構造設計ファイル292を作成する。
図15は、実施の形態4における第二の構造設計ファイル292の一例を示す図である。
S215の後、処理はS216に進む。
例えば、メインルーチン作成部241は、属性(1)の変数が使用されるサブルーチン、属性(2)の変数が使用されるサブルーチン、属性(3)の変数が使用されるサブルーチンの順序で、サブルーチンの呼び出し順序を決定する。
例えば、メインルーチン作成部241は、図15に示す第二の構造設計ファイル292に基づいて、サブルーチンの呼び出し順序「(c)→(b)→(a)」を決定する。
S216の後、処理はS217に進む。
例えば、メインルーチン作成部241は、サブルーチン(a)(b)(c)を(c)(b)(a)の順番で呼び出すためのメインルーチンのソースコードを作成する。
S217の後、メインルーチン作成処理(S210)は終了する。
実施の形態4におけるアプリケーションのテスト方法の概要について、図16に基づいて説明する。
まず、アプリケーションの仕様が決定され、アプリケーション仕様書131が作成される。
アプリケーション仕様書131には、アプリケーションに含まれるサブルーチンに関する情報として、サブルーチンで使用される変数の情報が含まれる。
次に、アプリケーションのソースコード111がアプリケーション仕様書131に基づいて作成される。
また、アプリケーションをテストするためのテスト仕様書132がアプリケーション仕様書131に基づいて作成される。テスト仕様書132が作成される際、アプリケーション仕様書131からサブルーチンの変数情報が抽出される。このときに抽出されるサブルーチンの変数情報は構造設計情報117として使用することができる。
次に、アプリケーションをテストするためのテスト用プログラム133がテスト仕様書132に基づいて作成される。
そして、テスト用プログラム133が実行されることによってアプリケーションのソースコード111(またはソースコード111をコンパイルして得られるオブジェクトコード)がテストされる。なお、テスト用プログラム133は開発用プラットフォーム134で実行される。
以上のように、アプリケーションがテストされる際にソースコード111および構造設計情報117が得られる。つまり、アプリケーションファイル118は、アプリケーションがテストされる際に得られるソースコード111および構造設計情報117を用いて作成することができる。
新たな実行プログラム123を構成する各アプリケーションの変数情報に基づいて、新たな実行プログラム123に関するプログラム解析を行う形態について説明する。
以下、実施の形態4と異なる事項について主に説明する。説明を省略する事項については実施の形態4と同様である。
実施の形態5におけるプログラム解析処理(S200)について、図17に基づいて説明する。
属性(1)(一周期遅れ読み出し属性)を有する変数が新たな実行プログラム123のソースコードに含まれる場合、解析ツールは属性(1)を有する変数を新たな実行プログラム123の不具合として検出(警告)する。
S231の後、処理はS232に進む。
属性(1)を有する変数だけが不具合として検出された場合、処理はS233に進む。
属性(1)を有する変数以外の不具合が検出された場合、処理はS234に進む。
不具合が検出されなかった場合、処理はS235に進む。
不具合として検出された変数が属性(1)を有する変数として定義されている場合(YES)、処理はS235に進む。この場合、不具合として検出(警告)された変数は設計通りの変数であって不具合ではないと考えられる。
不具合として検出された変数が属性(1)を有する変数として定義されていない場合(NO)、処理はS234に進む。この場合、不具合として検出(警告)された変数は設計ミスの変数であって不具合であると考えられる。
S234の後、プログラム解析処理(S200)は終了する。
S235の後、プログラム解析処理(S200)は終了する。
異なる属性を有する複数の変数が使用されるサブルーチンが有り、そのサブルーチンが新たな実行プログラム123に含まれる形態について説明する。
以下、実施の形態4、5と異なる事項について主に説明する。説明を省略する事項については実施の形態4、5と同様である。
メインルーチン作成部241は、実施の形態4(図13参照)で説明したように、新たな実行プログラム123のメインルーチンのソースコードを作成する。
但し、メインルーチン作成部241は、メインルーチンで呼び出すサブルーチンの順序を以下のように決定する(S216)。
図19は、実施の形態6における第二の構造設計ファイル292の一例を示す図である。
図20は、実施の形態6における第三の構造設計ファイル293の一例を示す図である。
第三の構造設計ファイル293は、変数毎に変数名と1つまたは複数の属性値と変数が使用されるサブルーチンの名称とを対応付けるデータである。
S215において、メインルーチン作成部241は、図18に示す第一の構造設計ファイル291に基づいて、図19に示す第二の構造設計ファイル292を作成する。
図19に示す第二の構造設計ファイル292は、変数Xおよび変数Yがサブルーチン(e)で使用され、変数Xの属性(2)と変数Yの属性(3)とが異なることを示している。
図19に示す第二の構造設計ファイル292において、サブルーチン(e)は、属性が異なる複数の変数が使用されるサブルーチンに該当している。
該当するサブルーチンが無い場合、メインルーチン作成部241は、第二の構造設計ファイル292に基づいてサブルーチンの呼び出し順序を決定する(実施の形態4と同様)。
該当するサブルーチンが有る場合、メインルーチン作成部241は、第二の構造設計ファイル292に基づいて第三の構造設計ファイル293を作成する。そして、メインルーチン作成部241は、第三の構造設計ファイル293に基づいてサブルーチンの呼び出し順序を決定する。
つまり、メインルーチン作成部241は、サブルーチン(e)を属性(2)と属性(3)との組み合わせ「属性(2)/(3)」に対応付けることによって、第三の構造設計ファイル293(図20参照)を作成する。サブルーチン(e)が属性(2)と属性(3)とのそれぞれに対応付けて第二の構造設計ファイル292(図19参照)に設定されているためである。
そして、メインルーチン作成部241は、属性(1)に対応付けられたサブルーチン、属性(1)/(2)に対応付けられたサブルーチン、属性(2)に対応付けられたサブルーチン、属性(2)/(3)に対応付けられたサブルーチン、属性(3)に対応付けられたサブルーチンの順序で、サブルーチンの呼び出し順序を決定する。
つまり、メインルーチン作成部241は、サブルーチンの呼び出し順序「(c)→(d)→(b)→(e)→(a)」を決定する。但し、サブルーチン(c)およびサブルーチン(d)は共に属性(1)に対応付けられているため、サブルーチン(c)(d)の順番が入れ替わっても構わない。
サブルーチンの呼び出しが論理的に成立しない形態について説明する。
以下、実施の形態4、5と異なる事項について主に説明する。説明を省略する事項については実施の形態4、5と同様である。
実施の形態7におけるメインルーチン作成処理(S210)について、図21に基づいて説明する。
S214の後、処理はS214−2に進む。
ここで、呼び出し順序が矛盾するサブルーチンの組み合わせは、以下のような2つのサブルーチンを含んだ組み合わせである。
2つのサブルーチンは、第一の変数と第二の変数とを使用する。
一方のサブルーチンで使用される第二の変数は、一方のサブルーチンで使用される第一の変数の属性よりも「低い」呼び出し順序に対応付けられる属性を有する。
他方のサブルーチンで使用される第二の変数は、他方のサブルーチンで使用される第一の変数の属性よりも「高い」呼び出し順序に対応付けられる属性を有する。
呼び出し順序が矛盾するサブルーチンの組み合わせが無い場合、処理はS215に進む。S215からS217は実施の形態4と同様である。
図22から図24に示すような第一の構造設計ファイル291が作成された場合、メインルーチン作成部241は、呼び出し順序が矛盾するサブルーチンの組み合わせが有ると判定する。図22から図24の第一の構造設計ファイル291において、属性(1)に対応する呼び出し順序が1番であり、属性(2)に対応する呼び出し順序が2番であり、属性(3)に対応する呼び出し順序が3番である。
また、サブルーチン(f)は属性(3)の変数Yと属性(2)の変数Xとを使用する。つまり、変数Xは、変数Yの属性(3)よりも「高い」呼び出し順序に対応付けられる属性(2)を有する。
したがって、サブルーチン(e)およびサブルーチン(f)は呼び出し順序が矛盾する。なお、サブルーチン(f)で使用される変数Xの属性が属性(1)である場合も呼び出し順序は矛盾する。
図23または図24の第一の構造設計ファイル291についても同様である。
つまり、プログラム管理システム100および外部端末200は、各実施の形態で説明した機能または構成の一部を備えなくても構わない。
また、プログラム管理システム100および外部端末200は、各実施の形態で説明していない機能または構成を備えても構わない。
さらに、各実施の形態は、矛盾が生じない範囲で一部または全てを組み合わせても構わない。
Claims (9)
- 実行プログラムを構成する部分プログラムを示す部分プログラムリストを取得するリスト取得部と、
前記リスト取得部によって取得された前記部分プログラムリストに示される前記部分プログラムのソースコードと、前記実行プログラムに追加する新たな部分プログラムのソースコードと、前記部分プログラムで使用される変数に関する変数情報と、前記新たな部分プログラムで使用される変数に関する変数情報とを取得するソースコード取得部と、
前記ソースコード取得部によって取得された前記部分プログラムの前記ソースコードと、前記部分プログラムの前記変数情報と、前記新たな部分プログラムの前記ソースコードと、前記新たな部分プログラムの前記変数情報とを用いて、前記新たな部分プログラムを含む新たな実行プログラムのソースコードを作成し、前記新たな実行プログラムの前記ソースコードに対してプログラム解析ツールを実行することによって、前記新たな実行プログラムに不具合が生じるか否かを判定するプログラム解析部とを備え、
前記部分プログラムの前記変数情報は、前記部分プログラムを構成するサブルーチンで使用される変数が、更新前の変数値を読み出すための更新前読み出し属性と、変数値を更新するための書き込み属性と、更新後の変数値を読み出すための更新後読み出し属性と、のいずれの属性を有する変数であるかを示し、
前記新たな部分プログラムの前記変数情報は、前記新たな部分プログラムを構成するサブルーチンで使用される変数が、前記更新前読み出し属性と、前記書き込み属性と、前記更新後読み出し属性と、のいずれの属性を有する変数であるかを示し、
前記プログラム解析部は、前記部分プログラムの前記変数情報と前記新たな部分プログラムの前記変数情報とに基づいて、前記部分プログラムの前記サブルーチンと前記新たな部分プログラムの前記サブルーチンとを呼び出す順序を決定し、
前記プログラム解析部は、決定した順序で前記部分プログラムの前記サブルーチンと前記新たな部分プログラムの前記サブルーチンとを呼び出すメインルーチンのソースコードを作成し、
前記プログラム解析部は、前記メインルーチンの前記ソースコードと、前記部分プログラムの前記ソースコードと、前記新たな部分プログラムの前記ソースコードとを用いて、前記新たな実行プログラムの前記ソースコードを作成する
ことを特徴とするプログラム解析装置。 - 前記メインルーチンは、前記更新前読み出し属性を有する変数を使用するサブルーチン、前記書き込み属性を有する変数を使用するサブルーチン、前記更新後読み出し属性を有する変数を使用するサブルーチンの順序で、前記部分プログラムの前記サブルーチンと前記新たな部分プログラムの前記サブルーチンとを呼び出す
ことを特徴とする請求項1に記載のプログラム解析装置。 - 前記プログラム解析部は、前記プログラム解析ツールを実行することによって、前記実行プログラムの前記ソースコードから前記更新前読み出し属性を有する変数を抽出し、
前記プログラム解析部は、抽出した前記変数が前記部分プログラムの前記変数情報と前記新たな部分プログラムの前記変数情報との少なくともいずれかに前記更新前読み出し属性を有する変数として示されていない場合、前記新たな実行プログラムに不具合が生じると判定する
ことを特徴とする請求項1または請求項2記載のプログラム解析装置。 - 実行プログラムを構成する部分プログラムを示す部分プログラムリストを取得するリスト取得部と、
前記リスト取得部によって取得された前記部分プログラムリストに示される前記部分プログラムのソースコードと、前記実行プログラムに追加する新たな部分プログラムのソースコードと、前記部分プログラムで使用される変数に関する変数情報と、前記新たな部分プログラムで使用される変数に関する変数情報とを取得するソースコード取得部と、
前記ソースコード取得部によって取得された前記部分プログラムの前記ソースコードと、前記部分プログラムの前記変数情報と、前記新たな部分プログラムの前記ソースコードと、前記新たな部分プログラムの前記変数情報とを用いて、前記新たな部分プログラムを含む新たな実行プログラムのソースコードを作成し、前記新たな実行プログラムの前記ソースコードに対してプログラム解析ツールを実行することによって、前記新たな実行プログラムに不具合が生じるか否かを判定するプログラム解析部とを備え、
前記部分プログラムの前記変数情報は、前記部分プログラムを構成するサブルーチンで使用される変数毎に変数の属性を示し、
前記新たな部分プログラムの前記変数情報は、前記新たな部分プログラムを構成するサブルーチンで使用される変数毎に変数の属性を示し、
前記プログラム解析部は、前記部分プログラムの前記サブルーチンと前記新たな部分プログラムの前記サブルーチンとが第一の変数と第二の変数とを使用し、一方のサブルーチンで使用される前記第二の変数が前記一方のサブルーチンで使用される前記第一の変数の属性よりも低い呼び出し順序に対応付けられる属性を有し、他方のサブルーチンで使用される前記第二の変数が前記他方のサブルーチンで使用される前記第一の変数の属性よりも高い呼び出し順序に対応付けられる属性を有する場合、前記新たな実行プログラムの前記ソースコードの作成の有無に関わらず、前記新たな実行プログラムに不具合が生じると判定する
ことを特徴とするプログラム解析装置。 - 前記プログラム解析部は、前記部分プログラムと前記新たな部分プログラムと同じ部分プログラムの組み合わせによって構成される過去の実行プログラムを判定済みである場合、前記過去のプログラムの判定結果に基づいて前記新たな実行プログラムを判定する
ことを特徴とする請求項1から請求項4のいずれかに記載のプログラム解析装置。 - 前記プログラム解析部が前記新たな実行プログラムに不具合が生じないと判断した場合に、前記新たな実行プログラムを作成するプログラム作成部と、
前記実行プログラムを前記プログラム作成部によって作成された前記新たな実行プログラムに更新すると共に、前記部分プログラムリストに前記新たな部分プログラムのプログラム名を追加するプログラム更新部と
を備えることを特徴とする請求項1から請求項5のいずれかに記載のプログラム解析装置。 - リスト取得部とソースコード取得部とプログラム解析部とを備えるプログラム解析装置を用いるプログラム解析方法であって、
前記リスト取得部が、実行プログラムを構成する部分プログラムを示す部分プログラムリストを取得し、
前記ソースコード取得部が、前記リスト取得部によって取得された前記部分プログラムリストに示される前記部分プログラムのソースコードと、前記実行プログラムに追加する新たな部分プログラムのソースコードと、前記部分プログラムで使用される変数に関する変数情報と、前記新たな部分プログラムで使用される変数に関する変数情報とを取得し、
前記プログラム解析部が、前記ソースコード取得部によって取得された前記部分プログラムの前記ソースコードと、前記部分プログラムの前記変数情報と、前記新たな部分プログラムの前記ソースコードと、前記新たな部分プログラムの前記変数情報とを用いて、前記新たな部分プログラムを含む新たな実行プログラムのソースコードを作成し、前記新たな実行プログラムの前記ソースコードに対してプログラム解析ツールを実行することによって、前記新たな実行プログラムに不具合が生じるか否かを判定するプログラム解析方法であって、
前記部分プログラムの前記変数情報は、前記部分プログラムを構成するサブルーチンで使用される変数が、更新前の変数値を読み出すための更新前読み出し属性と、変数値を更新するための書き込み属性と、更新後の変数値を読み出すための更新後読み出し属性と、のいずれの属性を有する変数であるかを示し、
前記新たな部分プログラムの前記変数情報は、前記新たな部分プログラムを構成するサブルーチンで使用される変数が、前記更新前読み出し属性と、前記書き込み属性と、前記更新後読み出し属性と、のいずれの属性を有する変数であるかを示し、
前記プログラム解析部は、前記部分プログラムの前記変数情報と前記新たな部分プログラムの前記変数情報とに基づいて、前記部分プログラムの前記サブルーチンと前記新たな部分プログラムの前記サブルーチンとを呼び出す順序を決定し、
前記プログラム解析部は、決定した順序で前記部分プログラムの前記サブルーチンと前記新たな部分プログラムの前記サブルーチンとを呼び出すメインルーチンのソースコードを作成し、
前記プログラム解析部は、前記メインルーチンの前記ソースコードと、前記部分プログラムの前記ソースコードと、前記新たな部分プログラムの前記ソースコードとを用いて、前記新たな実行プログラムの前記ソースコードを作成する
ことを特徴とするプログラム解析方法。 - リスト取得部とソースコード取得部とプログラム解析部とを備えるプログラム解析装置を用いるプログラム解析方法であって、
前記リスト取得部が、実行プログラムを構成する部分プログラムを示す部分プログラムリストを取得し、
前記ソースコード取得部が、前記リスト取得部によって取得された前記部分プログラムリストに示される前記部分プログラムのソースコードと、前記実行プログラムに追加する新たな部分プログラムのソースコードと、前記部分プログラムで使用される変数に関する変数情報と、前記新たな部分プログラムで使用される変数に関する変数情報とを取得し、
前記プログラム解析部が、前記ソースコード取得部によって取得された前記部分プログラムの前記ソースコードと、前記部分プログラムの前記変数情報と、前記新たな部分プログラムの前記ソースコードと、前記新たな部分プログラムの前記変数情報とを用いて、前記新たな部分プログラムを含む新たな実行プログラムのソースコードを作成し、前記新たな実行プログラムの前記ソースコードに対してプログラム解析ツールを実行することによって、前記新たな実行プログラムに不具合が生じるか否かを判定するプログラム解析方法であって、
前記部分プログラムの前記変数情報は、前記部分プログラムを構成するサブルーチンで使用される変数毎に変数の属性を示し、
前記新たな部分プログラムの前記変数情報は、前記新たな部分プログラムを構成するサブルーチンで使用される変数毎に変数の属性を示し、
前記プログラム解析部は、前記部分プログラムの前記サブルーチンと前記新たな部分プログラムの前記サブルーチンとが第一の変数と第二の変数とを使用し、一方のサブルーチンで使用される前記第二の変数が前記一方のサブルーチンで使用される前記第一の変数の属性よりも低い呼び出し順序に対応付けられる属性を有し、他方のサブルーチンで使用される前記第二の変数が前記他方のサブルーチンで使用される前記第一の変数の属性よりも高い呼び出し順序に対応付けられる属性を有する場合、前記新たな実行プログラムの前記ソースコードの作成の有無に関わらず、前記新たな実行プログラムに不具合が生じると判定する
ことを特徴とするプログラム解析方法。 - 請求項1から請求項6のいずれかに記載のプログラム解析装置としてコンピュータを機能させるためのプログラム解析プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/063549 WO2014184896A1 (ja) | 2013-05-15 | 2013-05-15 | プログラム解析装置、プログラム解析方法およびプログラム解析プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5976209B2 true JP5976209B2 (ja) | 2016-08-23 |
JPWO2014184896A1 JPWO2014184896A1 (ja) | 2017-02-23 |
Family
ID=51897912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015516813A Expired - Fee Related JP5976209B2 (ja) | 2013-05-15 | 2013-05-15 | プログラム解析装置、プログラム解析方法およびプログラム解析プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US9760470B2 (ja) |
JP (1) | JP5976209B2 (ja) |
CN (1) | CN105210044B (ja) |
DE (1) | DE112013007083B4 (ja) |
WO (1) | WO2014184896A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3111323A1 (en) * | 2014-02-25 | 2017-01-04 | Flexion Mobile Limited | System and method to modify run-time behavior of an application by modification of machine-readable instructions |
CN107783892A (zh) * | 2016-08-25 | 2018-03-09 | 平安科技(深圳)有限公司 | 一种代码分析方法及终端 |
CN107562463B (zh) * | 2017-09-11 | 2020-10-27 | 上海航天控制技术研究所 | 一种Ada编程语言的子程序规格化定义及调用方法 |
CN108009084B (zh) * | 2017-11-29 | 2021-07-30 | 北京中电普华信息技术有限公司 | 一种混合移动应用的测试方法、装置及系统 |
DE112020006105T5 (de) * | 2020-02-14 | 2022-10-13 | Mitsubishi Electric Corporation | Betriebssteuerungsgerät und Betriebssteuerungssystem |
CN116756048B (zh) * | 2023-08-16 | 2023-10-31 | 北京安普诺信息技术有限公司 | 一种代码分析方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0444176A (ja) * | 1990-06-11 | 1992-02-13 | Mitsubishi Electric Corp | ソフトウエア開発支援ツール |
JPH0659871A (ja) * | 1992-08-12 | 1994-03-04 | Unisia Jecs Corp | ソフトウェア開発装置 |
JP2000284952A (ja) * | 1999-03-30 | 2000-10-13 | Mitsubishi Electric Corp | ソフトウェア生成試験連携機構 |
JP2010067188A (ja) * | 2008-09-12 | 2010-03-25 | Internatl Business Mach Corp <Ibm> | プログラミングを支援するための情報処理装置、情報処理システム、プログラミング支援方法およびプログラム |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210424A (ja) | 1994-01-14 | 1995-08-11 | Toshiba Corp | ソフトウェアテスト支援システム |
CA2147036A1 (en) | 1994-05-16 | 1995-11-17 | Yih-Farn Robin Chen | System and method for selective regression testing |
JPH1063536A (ja) | 1996-08-16 | 1998-03-06 | Hitachi Software Eng Co Ltd | プログラム開発支援装置及びプログラム開発支援方法及びプログラム開発支援用記憶媒体 |
JPH11296406A (ja) | 1998-04-14 | 1999-10-29 | Kawasaki Steel Systems R & D Corp | プログラム修正支援方法 |
US20040025083A1 (en) * | 2002-07-31 | 2004-02-05 | Murthi Nanja | Generating test code for software |
JP2004272830A (ja) | 2003-03-12 | 2004-09-30 | Hitachi Ltd | ソフトウェア開発支援装置 |
US7594219B2 (en) * | 2003-07-24 | 2009-09-22 | International Business Machines Corporation | Method and apparatus for monitoring compatibility of software combinations |
US20060041864A1 (en) * | 2004-08-19 | 2006-02-23 | International Business Machines Corporation | Error estimation and tracking tool for testing of code |
CA2504333A1 (en) * | 2005-04-15 | 2006-10-15 | Symbium Corporation | Programming and development infrastructure for an autonomic element |
JP4745728B2 (ja) | 2005-06-21 | 2011-08-10 | 富士通株式会社 | デバッグ支援のためのプログラム |
JP2007172269A (ja) | 2005-12-21 | 2007-07-05 | Internatl Business Mach Corp <Ibm> | プログラムのテスト方法、テスト装置 |
JP2007249495A (ja) | 2006-03-15 | 2007-09-27 | Nec Corp | ソフトウェア検証方法、情報処理装置およびプログラム |
JP2007257478A (ja) | 2006-03-24 | 2007-10-04 | Ricoh Co Ltd | 情報処理装置、機能検査方法、およびプログラム |
US8561024B2 (en) * | 2007-01-23 | 2013-10-15 | International Business Machines Corporation | Developing software components and capability testing procedures for testing coded software component |
JP2008191963A (ja) * | 2007-02-06 | 2008-08-21 | Nec Corp | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム |
US8930275B2 (en) * | 2008-09-08 | 2015-01-06 | Robin Heizmann | Apparatuses, methods and systems for providing a virtual development and deployment environment including real and synthetic data |
JP5374146B2 (ja) | 2008-12-26 | 2013-12-25 | キヤノン株式会社 | ソフトウエア評価方法及びそれを実現する情報処理装置 |
CN102023918A (zh) | 2009-09-17 | 2011-04-20 | 英业达股份有限公司 | 对服务器产品进行测试的方法 |
US8645936B2 (en) * | 2009-09-30 | 2014-02-04 | Zynga Inc. | Apparatuses, methods and systems for an a API call abstractor |
JP2011113296A (ja) | 2009-11-26 | 2011-06-09 | Canon Inc | ソース管理プログラムにおけるコーディング規約チェックシステム |
US8856724B2 (en) * | 2011-06-20 | 2014-10-07 | Ebay Inc. | Systems and methods for incremental software development |
-
2013
- 2013-05-15 US US14/781,553 patent/US9760470B2/en active Active
- 2013-05-15 WO PCT/JP2013/063549 patent/WO2014184896A1/ja active Application Filing
- 2013-05-15 DE DE112013007083.9T patent/DE112013007083B4/de not_active Expired - Fee Related
- 2013-05-15 CN CN201380076507.9A patent/CN105210044B/zh not_active Expired - Fee Related
- 2013-05-15 JP JP2015516813A patent/JP5976209B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0444176A (ja) * | 1990-06-11 | 1992-02-13 | Mitsubishi Electric Corp | ソフトウエア開発支援ツール |
JPH0659871A (ja) * | 1992-08-12 | 1994-03-04 | Unisia Jecs Corp | ソフトウェア開発装置 |
JP2000284952A (ja) * | 1999-03-30 | 2000-10-13 | Mitsubishi Electric Corp | ソフトウェア生成試験連携機構 |
JP2010067188A (ja) * | 2008-09-12 | 2010-03-25 | Internatl Business Mach Corp <Ibm> | プログラミングを支援するための情報処理装置、情報処理システム、プログラミング支援方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20160055074A1 (en) | 2016-02-25 |
WO2014184896A1 (ja) | 2014-11-20 |
DE112013007083B4 (de) | 2020-02-27 |
US9760470B2 (en) | 2017-09-12 |
DE112013007083T5 (de) | 2016-01-28 |
CN105210044A (zh) | 2015-12-30 |
JPWO2014184896A1 (ja) | 2017-02-23 |
CN105210044B (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5976209B2 (ja) | プログラム解析装置、プログラム解析方法およびプログラム解析プログラム | |
US9152731B2 (en) | Detecting a broken point in a web application automatic test case | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
US7536678B2 (en) | System and method for determining the possibility of adverse effect arising from a code change in a computer program | |
US9424168B2 (en) | System and method for automatic generation of software test | |
JP5208635B2 (ja) | プログラミングを支援するための情報処理装置、情報処理システム、プログラミング支援方法およびプログラム | |
CN110286934B (zh) | 一种静态代码的检查方法及装置 | |
CN114780109B (zh) | Python项目第三方库依赖自动化解析与安装方法 | |
CN110716874A (zh) | 一种国产操作系统硬件兼容性测试方法 | |
CN116431520A (zh) | 测试场景确定方法、装置、电子设备和存储介质 | |
CN113821496B (zh) | 数据库迁移方法、系统、设备及计算机可读存储介质 | |
CN113704281A (zh) | 一种数据格式转换方法、装置、存储介质和电子设备 | |
JP6107455B2 (ja) | テストスケジュール決定装置、プログラム | |
US10599424B2 (en) | Committed program-code management | |
CN112241262A (zh) | 一种面向软件定义卫星的可复用代码提取、分析与检索方法与装置 | |
US20220206934A1 (en) | Test apparatus, test method and program | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
EP4336366A1 (en) | Code processing method and system, computer cluster, medium and program product | |
CN113656318A (zh) | 软件版本测试方法、装置及计算机设备 | |
CN109597638B (zh) | 基于实时计算引擎解决数据处理、设备联动的方法及装置 | |
CN111813749A (zh) | 文件过滤方法及装置、电子设备、存储介质 | |
WO2016001982A1 (ja) | テストデータ生成支援装置、及びテストデータ生成支援方法 | |
CN113704020B (zh) | 固态硬盘的出错现场数据的解析方法以及装置 | |
US11782682B2 (en) | Providing metric data for patterns usable in a modeling environment | |
CN118445214B (zh) | 基于代码文件修改的测例获取方法、装置、设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160531 |
|
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: 20160621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160719 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5976209 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |