JP2009157505A - ソフトウェア変更影響分析装置 - Google Patents

ソフトウェア変更影響分析装置 Download PDF

Info

Publication number
JP2009157505A
JP2009157505A JP2007333049A JP2007333049A JP2009157505A JP 2009157505 A JP2009157505 A JP 2009157505A JP 2007333049 A JP2007333049 A JP 2007333049A JP 2007333049 A JP2007333049 A JP 2007333049A JP 2009157505 A JP2009157505 A JP 2009157505A
Authority
JP
Japan
Prior art keywords
analysis
change
influence
software
work
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.)
Pending
Application number
JP2007333049A
Other languages
English (en)
Inventor
Teiichiro Inoue
禎一郎 井上
Soichi Matsui
聡一 松井
Takuya Fujimoto
卓也 藤本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007333049A priority Critical patent/JP2009157505A/ja
Publication of JP2009157505A publication Critical patent/JP2009157505A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】曖昧性を排除しつつ確実で早い影響度分析を可能とし、かつ、ソースコードの変更を高い品質で実現可能なソフトウェア変更影響分析装置を得ること。
【解決手段】本発明にかかるソフトウェア変更影響分析装置は、たとえば、所定の影響度分析図を記憶するための影響度分析図記憶部5と、実際に変更作業にかかった時間を蓄積するための過去作業記憶部6と、現在の変更作業内容を保存するための分析情報記憶部7と、影響度分析図記憶部5、過去作業記憶部6および分析情報記憶部7に記憶されている内容に基づいて、ソフトウェアの変更に伴う影響を分析し、その変更に対応する適切な検証方法を導出する分析部4と、を備える。
【選択図】 図1

Description

本発明は、ソフトウェアの変更に伴う影響を分析するソフトウェア変更影響分析装置に関するものである。
ソフトウェア開発において、不具合の改修や再利用開発を行う場合は、通常、ソースコードの編集を行うが、その編集により発生する影響範囲を把握できるかどうかは、開発者の能力に左右されている。具体的な作業としては、たとえば、ソースコードの特定部分を変更する場合、その変更に伴って影響をうける部分をソースコードから検出し、そして、このようなソースコードの検索を繰返し実行する。これにより、ソースコードの変更による影響範囲を把握することができる。また、上記の影響をうけた部分については改修を行う必要があるが、その改修だけで十分なのか、検証はどのように行うのか等については、開発者の経験や知識に大きく依存する。
そのため、従来から、ソースコードを分析しその変更に伴う影響を分析する装置が検討されている。たとえば、下記特許文献1に記載の従来の影響度分析方法では、分析ルールを規定し、これに基づいて変更の影響度を分析している。このとき、正確な分析を行うためには、詳細な分析ルールを作成する必要がある。
公開昭64−32337号公報(第181頁、第1−2図)
しかしながら、従来の影響度分析方法では、分析ルールを文章で詳細に明文化して登録しておく必要があり、そのルールの作成に時間がかかってしまう、という問題があった。また、複数のルールを加味して分析する必要があるため、システムへの処理負荷がかかる、という問題もあった。なお、従来の影響度分析方法では、変更による影響度を分析しているだけであり、その検証方法や改修規模の見積もり等についてはふれられていない。
本発明は、上記に鑑みてなされたものであって、曖昧性を排除しつつ確実で早い影響度分析を可能とし、かつ、ソースコードの変更を高い品質で実現可能なソフトウェア変更影響分析装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるソフトウェア変更影響分析装置は、ソフトウェアの変更に伴う影響を分析するソフトウェア変更影響分析装置であって、たとえば、ソースコードの変更対象項目毎にその変更で想定されるすべての検証方法が記載された影響度分析図を記憶するための影響度分析図記憶部と、実際に変更作業にかかった時間を蓄積するための過去作業記憶部と、現在の変更作業内容を保存するための分析情報記憶部と、前記影響度分析図記憶部、前記過去作業記憶部および前記分析情報記憶部に記憶されている内容に基づいて、ソフトウェアの変更に伴う影響を分析し、その変更に対応する適切な検証方法を導出する分析部と、を備え、前記分析部は、前記影響度分析図記憶部から影響度分析図を読み出し、ソフトウェアの変更部分について、当該影響度分析図に記載された分岐条件を画面表示する制御を行うことにより、適切な検証方法を導出するまでの分析処理をユーザーとの対話形式で行い、前記変更部分毎に、導出された検証方法および前記過去作業記憶部に記憶された情報に基づき算出した予定作業時間、を前記分析情報記憶部に保存し、さらに、前記分析情報記憶部に保存されたすべての情報を画面表示する制御を行うことを特徴とする。
この発明によれば、影響度分析図を用いて対話形式でユーザーの意図する内容を反映することができるため、曖昧性を排除し、確実で早い分析が可能となる、という効果を奏する。また、分析後に検証方法を示すこととしたので、ソースコードの変更を高い品質で行うことができる、という効果を奏する。また、過去のソースコードの改修作業実績を利用することにより、改修にかかる工数を見積もることが可能となる、という効果を奏する。
以下に、本発明にかかるソフトウェア変更影響分析装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
図1は、本発明にかかるソフトウェア変更影響分析装置の構成例を示す図である。本実施の形態では、入力装置2,分析部4,影響度分析図記憶部5,過去作業記憶部6,分析情報記憶部7,表示部8によりソフトウェア変更影響分析装置を構成する。図1において、ユーザー1は、入力装置2を使用して分析部4を操作する。分析部4は、影響度分析図記憶部5、過去作業記憶部6および分析情報記憶部7を利用して、ソースコード3を分析する。そして、その分析結果として、影響一覧ウィンドウ9,エディタウィンドウ10,情報画面ウィンドウ11などを表示部8に表示する。ユーザー1は、これらの画面情報を参照しながら対話的に操作を行う。
ここで、上記ソフトウェア変更影響分析装置による分析動作を、図面にしたがって説明する。図2は、本発明にかかるソフトウェア変更影響分析装置による分析動作の一例を示すフローチャートである。
まず、ユーザー1が入力装置2を用いてソースコード3を入力し、分析部4がそのソースコード3を取り込む(ステップS1)。分析部4は、表示部8に対して所定の表示制御を行い、エディタウィンドウ10上にソースコード3を表示する(ステップS2)。
つぎに、ユーザー1は、表示部8のエディタウィンドウ10上で、ソフトウェアの改修対象部分を、入力装置2を操作して選択する(ステップS3)。分析部4は、選択された部分がソフトウェア上、何にあたるかを判別する(ステップS4)。たとえば、選択された部分が、インクルードファイル,構造体の定義,型の定義,定数マクロ,固定値テーブル,関数マクロ,関数,内部変数,グローバル変数であるかを判別する。
つぎに、分析部4は、影響度分析図記憶部5から影響度分析図を読み出し、この影響度分析図に基づいて、ユーザー1と対話形式でどのような変更なのかを分析する(ステップS5)。ここでは、分析部4が影響度分析図の分岐内容を表示部8に表示する制御を行い、ユーザー1が入力装置2を操作して答える形式により、上記分析処理を行っていく(詳細は後述する)。そして、分析部4は、上記改修対象部分の変更により影響を受ける部分を、表示部8を介して影響一覧ウィンドウ9に一覧表示する(ステップS6)。ここで、図1の「Aa 11」,「Bb 22」…は、エディタ10を操作して発生する変更影響先を示す。具体的には、関数や変数等が表示される。また、「aaaaa」,「bbbbb」…は、影響内容を示す。具体的には、図3に示す実施事項が表示される。
つぎに、ユーザー1が影響一覧ウィンドウ9に表示された情報を選択すると、分析部4は、選択された部分の情報を情報画面ウィンドウ11に表示する(ステップS7)。たとえば、図示のように<変数aの変更>が選択された場合は、呼び出し関数の引数や戻り値、代入される変数、代入する変数等が表示される。ここで、ユーザー1は、情報画面ウィンドウ11やエディタウィンドウ10から得られた情報に基づいて、実際に上記改修対象部分の変更を行うかどうかを判断し、その判断結果(ソフトウェアの変更を実施するかしないか)を、入力装置2を操作して分析部4に通知する(ステップS8)。
たとえば、ユーザー1がソフトウェアの変更を実施すると判断した場合(ステップS9,Yes)、まず、分析部4は、影響度分析図に示された検証方法を表示部8に表示する制御を行う(ステップS10)。つぎに、分析部4は、この変更処理にかかると予想される作業工数を過去作業記憶部6に記憶された情報に基づき算出し、その結果を表示部8に出力する(ステップS11)。たとえば、過去の同様の事例の平均工数等を算出する。そして、上記ステップS7で情報画面ウィンドウ11に表示した情報、上記ステップS10で得られた検証方法、および上記ステップS11で得られた作業工数を、分析情報記憶部7に保存する(ステップS12)。
その後、分析部4は、上記改修対象部分の変更によりさらなる変更影響が生じると判断した場合(ステップS13,Yes)、その変更に対してステップS4〜S12を実行し、以降、上記変更の影響が発生しなくなるまで(ステップS13,No)ステップS4〜S12の処理を繰返し実行する。
そして、上記ステップS13の処理で変更の影響がなくなった場合(ステップS13,No)、または、上記ステップS9の処理でソフトウェアの変更を実施しないと判断された場合(ステップS9,No)、分析部4は、すべての改修対象部分を分析したかどうかを判断する(ステップS14)。ここで、すべての改修対象部分を分析したと判断した場合(ステップS14,Yes)、分析部4は、上記ステップS12で保存した情報の内容を表示部8に表示する制御を行う(ステップS15)。最後に、ユーザー1は、変更作業終了後に入力装置2を操作して、作業時間を改修対象部分の種類(インクルードファイル,構造体の定義,型の定義,定数マクロ,固定値テーブル,関数マクロ,関数,内部変数,グローバル変数)毎に過去作業記憶部6に保存する。なお、上記ステップS14の処理ですべての改修対象部分を分析していないと判断した場合(ステップS14,No)、分析部4は、すべての改修対象部分の分析が完了するまで、上記ステップS3〜S13の処理を繰り返し実行する。
つづいて、分析部4が影響度分析図に基づいてソフトウェアの変更の影響を分析する処理を、図面にしたがって説明する。
図3(図3−1〜図3−3)は、影響度分析図の一例を示す図である。影響度分析図は、図3に示すように、変更内容に従って分岐が列挙されている。ここでは、この分岐を選択していき、選択毎に実施内容欄に記載されている内容を確認する。なお、図中の四角枠は分岐を示し、判断内容が示されている。分析部4は、分岐の判断内容をユーザー1に問い合わせることになる。また、楕円枠は変更対象(インクルードファイル,構造体の定義,型の定義,定数マクロ,固定値テーブル,関数マクロ,関数,内部変数,グローバル変数)を表し、変更のシンボルが何であるかを示している。また、同様に項目の最後に付けられている○で囲まれた記号(型,値,範囲)はジャンプを示しており、同一記号に進むことになる。そして、最終的に行きつくボックスに影響内容とその検証方法が記載されている。
ここで、上記ステップS5における変更の影響を分析する処理を、事例をあげて具体的に説明する。たとえば、図4は、上記影響分析図5における「構造体の定義」に関する分析図であり、図5は、構造体のメンバーが不要となり、影響度分析図に基づきそのメンバーを削除する場合の分析処理を示す図である。
たとえば、構造体が定義され、削除対象のメンバーがghiの場合を想定する。このような場合、従来は、ghiをテキストエディタなどでgrep(ソースコードから指定した名前のシンボルを検索する機能)し、ghiの使用個所を検索する必要がある。一方、本実施の形態では、図4に示す分析図(構造体の定義を変更する場合の分析図)に従って影響度分析を行う。なお、図5には、図3に示す影響度分析図に基づきユーザー1が処理を選択した結果が示されている。
まず、ユーザー1がエディタウィンドウ10上で図6に示されているghiを選択すると(ステップS21)、分析部4は、何を変更したかを判断し(ステップS22)、構造体のメンバーだと判断する(ステップS23、ステップS24,メンバー)。その後、分析部4は、どのような変更かをポップアップウィンドウなどでユーザー1に問い合わせる(ステップS25)。たとえば、ユーザー1が選択肢(名前,メンバー追加,メンバー削除,型)の中から“メンバー削除”を選択すると(ステップS25,メンバー削除)、“削除するメンバーを利用する全ての箇所において、削除しても問題がないことを確認”にいきつくため、分析部4は、ghiを利用している全ての関数情報(ghiを利用している関数の情報、関数内の位置など)をユーザー1にポップアップウィンドウなどで示す。
その後、ユーザー1が上記ポップアップウィンドウを確認して、ghiを削除した場合に問題ないかを判断し、その判断結果を分析部4に示す。たとえば、削除可能との判断であれば、分析部4は、ソースコードから自動で上記対象メンバーを削除する。なお、自動で処理できないような場合には、予想工数を表示し、ユーザーに処理を促すこととしてもよい。
ただし、図4に示すように、上記ステップS25の処理で、ユーザー1が選択肢(名前,メンバー追加,メンバー削除,型)の中から“名前”を選択した場合には(ステップS25,名前)、“命名規則、同名の変数がないかを確認し、利用対象部分をすべて変更”にいきつくため、分析部4は、上記検証方法を実行した結果をユーザー1にポップアップウィンドウなどで示す。
また、上記ステップS25の処理で、ユーザー1が選択肢(名前,メンバー追加,メンバー削除,型)の中から“メンバー追加”を選択した場合には(ステップS25,メンバー追加)、“命名規則にのっとった名前をつけ、動作を明確にする”にいきつくため、分析部4は、上記検証方法を実行した結果をユーザー1にポップアップウィンドウなどで示す。
なお、分析部4では、変更作業終了後に、たとえば、図7に示すような作業内容と作業工数とを関連付けた一覧を表示部8に表示する制御を行う。たとえば、作業内容が“関数の引数変更”の場合には、その作業に伴う工数の欄が表示される(図示のNo.1に対応)。また、作業内容が“関数の引数変更”の場合は、その変更に伴う2次的な影響が発生しているので、たとえば、“内部変数の型を変更”に伴う工数の欄も表示される(図示のNo.1−1,No.1−2に対応)。さらに、ここでは、すべての改修対象部分に対応する工数の欄が表示されている(図示のNo.2,No.3,No.4…に対応)。そして、ユーザー1の操作により作業工数欄に作業時間が入力された場合、分析部4は、その入力に基づき過去作業記憶部6に作業時間を記憶する。このような処理でデータを蓄積することにより、上記ステップS11では作業工数の算出が可能となる。
以上のように、本実施の形態では、影響度分析図を用いて対話形式で利用者の意図する内容を反映することができるため、曖昧性を排除し、確実で早い分析が可能となる。また、分析後に検証方法を示すこととしたので、ソースコードの変更を高い品質で行うことができる。また、過去のソースコードの改修作業実績を利用することにより、改修にかかる工数を見積もることが可能となる。
以上のように、本発明にかかるソフトウェア変更影響分析装置は、ソフトウェアの変更に伴う影響を分析する装置として有用であり、特に、より高い品質でソースコードの変更を行う場合に適している。
本発明にかかるソフトウェア変更影響分析装置の構成例を示す図である。 本発明にかかるソフトウェア変更影響分析装置による分析動作の一例を示すフローチャートである。 影響度分析図の一例を示す図である。 影響度分析図の一例を示す図である。 影響度分析図の一例を示す図である。 影響分析図における「構造体の定義」に関する分析図である。 構造体のメンバーを削除する場合の分析処理を示す図である。 エディタウィンドウの表示例を示す図である。 作業内容と作業工数とを関連付けた一覧を示す図である。
符号の説明
1 ユーザー
2 入力装置
3 ソースコード
4 分析部
5 影響度分析図記憶部
6 過去作業記憶部
7 分析情報記憶部
8 表示部
9 影響一覧ウィンドウ
10 エディタウィンドウ
11 情報画面ウィンドウ

Claims (5)

  1. ソフトウェアの変更に伴う影響を分析するソフトウェア変更影響分析装置であって、
    ソースコードの変更対象項目毎にその変更で想定されるすべての検証方法が記載された影響度分析図を記憶するための影響度分析図記憶部と、
    実際に変更作業にかかった時間を蓄積するための過去作業記憶部と、
    現在の変更作業内容を保存するための分析情報記憶部と、
    前記影響度分析図記憶部、前記過去作業記憶部および前記分析情報記憶部に記憶されている内容に基づいて、ソフトウェアの変更に伴う影響を分析し、その変更に対応する適切な検証方法を導出する分析部と、
    を備え、
    前記分析部は、
    前記影響度分析図記憶部から影響度分析図を読み出し、ソフトウェアの変更部分について、当該影響度分析図に記載された分岐条件を画面表示する制御を行うことにより、適切な検証方法を導出するまでの分析処理をユーザーとの対話形式で行い、
    前記変更部分毎に、導出された検証方法および前記過去作業記憶部に記憶された情報に基づき算出した予定作業時間、を前記分析情報記憶部に保存し、
    さらに、前記分析情報記憶部に保存されたすべての情報を画面表示する制御を行うことを特徴とするソフトウェア変更影響分析装置。
  2. 前記影響度分析図は、前記ソースコードの変更対象項目として、インクルードファイル、構造体の定義、型の定義、定数マクロ、固定値テーブル、関数マクロ、関数、内部変数およびグローバル変数の少なくともいずれか一つを含むことを特徴とする請求項1に記載のソフトウェア変更影響分析装置。
  3. 前記分析部は、ユーザーにより選択されたソフトウェアの変更部分が、前記変更対象項目の何にあたるかを判別することを特徴とする請求項2に記載のソフトウェア変更影響分析装置。
  4. 前記分析部は、前記ソフトウェアの変更により新たな変更が生じると判断した場合、当該新たな変更に伴う影響を分析し、その変更に対応する適切な検証方法を導出することを特徴とする請求項1、2または3に記載のソフトウェア変更影響分析装置。
  5. 前記分析部は、
    変更作業終了後に、変更作業内容とその作業時間とを関連付けた一覧を画面表示する制御を行い、ユーザーの操作により作業時間欄に実際の作業時間が入力された場合に、その作業時間を前記過去作業記憶部に記憶することを特徴とする請求項1〜4のいずれか1つに記載のソフトウェア変更影響分析装置。
JP2007333049A 2007-12-25 2007-12-25 ソフトウェア変更影響分析装置 Pending JP2009157505A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007333049A JP2009157505A (ja) 2007-12-25 2007-12-25 ソフトウェア変更影響分析装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007333049A JP2009157505A (ja) 2007-12-25 2007-12-25 ソフトウェア変更影響分析装置

Publications (1)

Publication Number Publication Date
JP2009157505A true JP2009157505A (ja) 2009-07-16

Family

ID=40961490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007333049A Pending JP2009157505A (ja) 2007-12-25 2007-12-25 ソフトウェア変更影響分析装置

Country Status (1)

Country Link
JP (1) JP2009157505A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067390A (ja) * 2012-09-10 2014-04-17 Casio Comput Co Ltd 数式表示装置、数式表示プログラム及び数式表示方法
JP2018501538A (ja) * 2014-11-05 2018-01-18 アビニシオ テクノロジー エルエルシー 影響分析

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067390A (ja) * 2012-09-10 2014-04-17 Casio Comput Co Ltd 数式表示装置、数式表示プログラム及び数式表示方法
JP2018501538A (ja) * 2014-11-05 2018-01-18 アビニシオ テクノロジー エルエルシー 影響分析
US11475023B2 (en) 2014-11-05 2022-10-18 Ab Initio Technology Llc Impact analysis

Similar Documents

Publication Publication Date Title
JP4876511B2 (ja) ロジック抽出支援装置
US7908564B2 (en) Copying and pasting a plurality of data items as a group
US20060010429A1 (en) Method, system and program for model based software development with test case generation and evaluation
JP5198132B2 (ja) 状態遷移テスト支援装置、状態遷移テスト支援プログラム、および状態遷移テスト支援方法
JPWO2006033159A1 (ja) 業務モデル図作成支援プログラム、業務モデル図作成支援方法、および業務モデル図作成支援装置
US20140365990A1 (en) Software evaluation device and method
JP2008021296A (ja) テスト計画支援装置およびテスト計画支援プログラム
JP2007052703A (ja) テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法
CN104268083A (zh) 软件自动化测试方法和装置
US20090217259A1 (en) Building Operating System Images Based on Applications
CN114897296A (zh) Rpa流程标注方法、执行过程回放方法及存储介质
CN110737573B (zh) 用户界面ui自动化测试的方法和装置
CN104461864A (zh) 一种基于Eclipse插件的Java源代码缺陷检测方法及其系统
JPH08241191A (ja) Gui自動評価装置
US10042638B2 (en) Evaluating documentation coverage
JP2009157505A (ja) ソフトウェア変更影響分析装置
JP2009104252A (ja) デバッグ支援装置およびデバッグ支援方法
US8332254B2 (en) Automatic insertion point identification in model merging operations
JP5811978B2 (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
JP5321286B2 (ja) プログラムモデル検査方法、プログラムモデル検査プログラム
JP2007122207A (ja) プログラム分析プログラム、プログラム分析装置、プログラム分析方法
US20220374342A1 (en) Techniques for decoupled management of software test execution planning and corresponding software test execution runs
JP7380851B2 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
US20220374341A1 (en) Techniques for decoupled management of software test execution planning and corresponding software test execution runs
JP2008305019A (ja) シミュレーション装置及びシミュレーション方法及びプログラム