JP2015090596A - ソフトウェア開発管理装置およびその方法 - Google Patents
ソフトウェア開発管理装置およびその方法 Download PDFInfo
- Publication number
- JP2015090596A JP2015090596A JP2013230426A JP2013230426A JP2015090596A JP 2015090596 A JP2015090596 A JP 2015090596A JP 2013230426 A JP2013230426 A JP 2013230426A JP 2013230426 A JP2013230426 A JP 2013230426A JP 2015090596 A JP2015090596 A JP 2015090596A
- Authority
- JP
- Japan
- Prior art keywords
- code
- information
- development management
- clone
- code clone
- 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
- Stored Programmes (AREA)
Abstract
【解決手段】 上記課題を解決するため、ソースコードやテストコード内のコードクローンを検出し、その分布状況を解析する。そして、解析結果から得られるコードクローン間の競合関係、担当チームとの関係、修正作業の優先度や順序などの情報を、コードクローンのチーム担当またがりの検出や修正作業順序の最適化などの目的に応じた形式で可視化する。
【選択図】 図5
Description
たとえば、あるチームで不具合が発見されると、不具合が複数箇所に拡散しているすべてを検出し、修正し、テストすることが求められる。
しかし、開発の大規模化等にともない検出されるクローン等も大量になると網羅的な把握にもとづく作業推進が困難になってくる。その結果として、品質や開発コストや開発期間に悪影響を及ぼすことが知られている。
その上、コードクローンセット同士が、互いに疎とは限らない点に注意を要する。
例えば、
(1)複数の類似コードや複数のコードクローンセット間同士の所在に重なりがある場合。
(2)コードクローンのペアが所有者や担当チームが異なる複数モジュールにまたがり、
変更等の作業にも、複数の担当やチームの関与が必要となる場合。
などを挙げることができる。
さらにコードは、ソースコード以外にもテストコード等であってもよい。
図1を用いて本発明の第一実施形態に係るソフトウェア開発管理装置のハードウェア構成について説明する。
図1は、本発明の第一の実施形態に係るソフトウェア開発管理装置のハードウェア構成を示すブロック図である。
ROM2は、起動プログラムであるBIOSなどを記憶する読み出し専用の半導体記憶装置である。
RAM3は、OS(Operating System)やソフトウェア開発管理プログラム21などの各種プログラムやワークデータ等を記憶する書き換え可能な半導体記憶装置であり、ソフトウェア開発管理装置11の主記憶装置になる。
HDD5は、大容量の記憶装置であり、OSやソフトウェア開発管理プログラムなどの各種プログラム、プログラムに使用されるデータなどを格納する補助記憶装置である。
CDROMドライブ6は、CDROM(Compact Disc Read Only Memory)7に記憶されたプログラムやデータを読み取る装置である。
NIC8は、ネットワークとの通信を制御する装置である。
入力装置9は、各種操作指示をおこなうキーボードやマウスなどのポインティングデバイスである。
表示装置10は、各種情報を表示するLCD(Liquid Crystal Display)などの表示のための装置である。
本実施形態のソフトウェア開発管理装置は、図1に示したハードウェア構成で、HDD5に格納されたソフトウェア開発管理プログラムが、RAM3にロードされて、CPU1がプログラムを解釈実行することにより、その機能が実行される。
図2に示すようにソフトウェア開発管理装置のソフトウェア部分は、アプリケーションソフトウェアとしてソフトウェア開発管理プログラム21と、ユーティリティ・ライブラリプログラム25、OS26よりなる。
OS26は、ハードウェアとソフトウェアの仲立ちとなり、ユーザに対してのインタフェースを提供する基本プログラムであり、ユーティリティ・ライブラリプログラム25は、OS26の機能をアプリケーションソフトウェアに隠蔽し、アプリケーションソフトウェアに様々な機能を提供するプログラムである。
ソフトウェア開発管理プログラム21は、ソフトウェア開発管理装置11のアプリケーションソフトウェアであり、コードクローン検出部22、コードクローン分布解析部23、マトリクス生成部24の3つのモジュールよりなる。これらの各モジュールの処理については、後に詳説する。
本実施形態のソフトウェア開発管理装置が開発管理対象とするソフトウェア31は、複数の構成要素で構成されているものとし、各構成要素に対して、開発や修正などを担当するチームが決められているとする。
以下、構成要素の単位はモジュールとして説明するが、モジュールに限らず、ファイルや関数を単位としてもよい。
また、開発管理対象ソフトウェア31は、複数のコードクローンを含んでいることを想定する。
図5は、本発明の第一の実施形態に係るソフトウェア開発管理プログラム全体の機能構成およびデータフローを示した図である。
なお、開発管理マトリクス56は実施例1における作業依存関係情報の一例に相当し、マトリクス生成部24は請求項1における作業依存関係情報生成部の一例に相当する。
コードクローン検出部22が実行するコードクローン検出ツールとしては、例えば、一般的に使用されているものとしては、“CCFinderX”があるが、その他のコードクローン検出ツールでもよい。
なお、ソフトウェア開発管理プログラム21の中では、当該処理の一時的なデータとして、コードクローン検出部22がコードクローン検出結果52を生成し、コードクローン分布解析部23がコードクローン分布情報54を生成し、RAM3およびHDD5に一時的に格納されるが、ソフトウェア開発管理プログラム21の永続的な構成要素ではない。
構成要素情報53は開発管理対象ソフトウェアの全てのソースコードファイル名、開発管理対象ソフトウェアの全ての構成要素の名前、および、それらファイルと構成要素との対応関係の情報を表すデータである。
担当チーム情報55は開発管理対象ソフトウェアの各構成要素に対する担当チームの情報を表すデータである。
先ず、ステップS61において、ソースコード51と構成要素情報53と担当チーム情報55をソフトウェア開発管理プログラム21に入力する。
次に、ステップS62において、コードクローン検出部22が、コードクローン検出ツールを実行し、ステップS61で入力されたソースコード51のコードクローンを検出し、コードクローン検出結果52を出力する。
次に、ステップS64において、マトリクス生成部24が、ステップS61で入力された構成要素情報53と担当チーム情報55を元にテーブルを作成し、ステップS63で出力されたコードクローン分布情報54を元にテーブルに要素を入力することで開発管理マトリクス56を生成する。
最後に、ステップS65において、表示装置10にステップS64で生成した開発管理マトリクス56を表示し、一連の処理を終了する。
例えば行83はクローンIDに1が、ファイル名にC:\aaa\file1.cが入力されている。これは、ファイルC:\aaa\file1.cでクローンIDが1のコードクローンが検出されたということを示している。
例えば行93はファイル名にC:\aaa\file1.cが、モジュール名にm1が入力されている。これは、ファイルC:\aaa\file1.cがモジュールm1に対応していることを表している。
これらの入力情報を解析することで、検出されたコードクローン全てに対してそのコードクローンを含んでいる構成要素を特定し、これをコードクローン分布情報54として出力する。コードクローン分布情報54の一例を図10に示す。
例えば行103はクローンIDに1、モジュール名にm1が入力されている。これは、クローンIDが1であるコードクローンをモジュールm1が含んでいることを表している。
なお、図8、9、10で示したコードクローン検出結果52、構成要素情報53、コードクローン分布情報54の例においては、データ構造としてテーブルを用いているが、同等の情報が表現可能であればグラフやツリーなど他のデータ構造を用いてもよい。
先ず、ステップS71において、N=1とする。
次に、ステップS72において、コードクローン検出結果52のN行目のデータレコードを取り出し、クローンIDの列の値を変数CID、ファイル名の列の値を変数FILEに代入する。
次に、ステップS73において、構成要素情報53のテーブルから、ファイル名の列が変数FILEの値と一致する行を検索し、見つかった行のモジュール名の列の値を変数MODULEに代入する。
次に、ステップS75において、コードクローン分布情報54のテーブルの新しい行に、クローンIDの列に変数CIDの値、モジュール名の列に変数MODULEの値を記録する。
次に、ステップS76において、N行目がコードクローン検出結果52の最後の行であるならば、コードクローン分布解析処理を終了する。そうでないならば、ステップS77においてN=N+1として、ステップS72に戻る。
マトリクス生成部24は、図11に示されるように、テーブル作成部111と、マトリクス要素入力部113よりなる。
テーブル作成部111は、担当チーム情報55(後述)を元に、開発管理対象ソフトウェア31の構成要素を担当チーム別にブロックをなすようにソートしたものを列インデクス、ソースコード51から検出されたコードクローンのクローンIDを行インデクスとするテーブル112を作成するモジュールである。
図13に示すように、テーブル112の列インデクスは開発管理対象ソフトウェア31の構成要素となり、インデクスの順番は担当チーム別にブロックをなすようにソートされる。
図14は図13のテーブル112に図10のコードクローン分布情報54を元にデータを入力して得られる開発管理マトリクス56である。図14に示すように、各要素には、その要素の列インデクスに対応する構成要素に、行インデクスのクローンIDに対応するコードクローンが含まれる場合、×が入力される。例えば、1行m1列要素の値は×であり、これは、モジュールm1がクローンID1のコードクローンを含んでいることを表している。なお、本実施例ではマトリクスの要素は空欄、×の2値を用いるが、その他、整数値などを用いてもよい。
先ず、ステップS151において、マトリクス生成部24への入力である担当チーム情報55とコードクローン分布情報54が入力される。
次に、ステップS152において、入力データを元に、テーブル作成部111が、開発管理対象ソフトウェア31の構成要素を担当チーム別にブロックをなすようにソートしたものを列インデクス、ソースコード51から検出されたコードクローンのクローンIDを行インデクスとするテーブル112を作成する。
次に、ステップS153において、マトリクス要素入力部113がコードクローン分布情報54を参照し、各行のデータに対して、テーブル112の対応する箇所に×を入力する。
コードクローン分布情報54の全ての行に対して入力が完了したら、テーブル112を開発管理マトリクス56として出力し、処理を終了する。
例えば、以下の方法を実施すればよい。
1.開発管理マトリクス56の各行に対して、×が入力されている担当チームブロックの数を数え上げる。
2.×が入力されている担当チームブロックの数が二つ以上である行のクローンIDに対応するコードクローンを、チーム担当範囲をまたがるコードクローンであると判定する。
本実施形態における開発管理対象ソフトウェアは、複数の構成要素で構成されているものとする。以下、構成要素の単位はモジュールとして説明するが、モジュールに限らず、ファイルや関数を単位としてもよい。また、本実施形態における開発管理対象ソフトウェアは、複数のコードクローンを含んでいることを想定する。
図16の例では、対象ソフトウェアはモジュールm1、 m2、…、 m5で構成されている。また、クローンIDが1、 2、 3、 4、 5のコードクローンが存在しており、各モジュール内に偏在している。例えば、図16の例では、モジュールm1内にはクローンIDが1、2の二つのコードクローンが存在している。
図18と図19を用いて、ステップS64のマトリクス生成処理の詳細について説明する。図18はマトリクス生成部24の機能構成とデータフローを示す図である。図18に示されるように、マトリクス生成部24は、テーブル作成部111と、修正競合判定部181と、マトリクス要素入力部113よりなる。
修正競合判定部181は、コードクローン分布情報54を元に、それぞれのコードクローンの組に対して修正が競合するかどうか(修正が競合するとは、一方のコードクローンに対して修正を行なったとき、もう一方のコードクローンの修正に影響を及ぼして、もう一方のコードクローンの修正が困難、または不可となること。)を判定し、結果を修正競合情報182として出力するモジュールである。
マトリクス生成部24への入力として、コードクローン分布情報54がある。コードクローン分布情報54の内容は実施例1で説明したものと同様である。
マトリクス生成処理の一時的なデータとして、テーブル112および修正競合情報182がある。これらはRAM3およびHDD5に一時的に格納されるが、マトリクス生成部24の永続的な構成要素ではない。
修正競合情報182の例を図21に示す。図21の例においては、修正競合関係にあるコードクローンの組の配列により修正競合情報182を表している。例えば、項211はコードクローンの組(1、2)が入力されている。これは、クローンIDが1と2であるコードクローンが修正の競合関係にあることを表している。
図22は図20のテーブル112に図21の修正競合情報182を元にデータを入力して得られる開発管理マトリクス56である。図22においては、例えば、1行2列要素に×が入力されている。これはクローンIDが1と2のコードクローン間に、修正競合関係があることを表している。なお、本実施例ではマトリクスの要素は空欄、×の2値を用いるが、その他、整数値などを用いてもよい。
先ず、ステップS151において、マトリクス生成部への入力であるコードクローン分布情報54が入力される。
次に、ステップS152において、テーブル作成部111が、コードクローン分布情報54を元に、コードクローンのクローンIDを行、列のインデクスとするテーブル112を作成する。
開発管理マトリクス56のインデクスの順序がコードクローンの修正順序を表現していると考える。
開発管理マトリクス56のb行a列に×が入力されているとき、コードクローンaとbの間には修正競合関係がある。従って、片方を修正後にもう片方を修正した場合、修正済みの方に影響が生じて再修正が必要になり、手戻りを引き起こす可能性がある。
このように、本実施例のソフトウェア開発管理プログラム21により出力された開発管理マトリクス56を用いて、コードクローン修正作業順序を最適化することができる。
実施例3におけるソフトウェア開発管理プログラムを実行するソフトウェア開発管理装置11のハードウェア構成の一例を示すブロック図は、図1に示す実施例1、2におけるハードウェア構成のブロック図と同様である。
以後、実施例1あるいは実施例2と同一の機能を有する部分および処理手順については説明を省略する。
規模の大きいコードクローンほど、修正によって得られる設計の改善効果が大きいため、修正の優先度は高いと考えられる。また、修正が容易なコードクローンほど、少ない工数で修正を完了できるため、修正の優先度は高いと考えられる。また、チーム担当範囲をまたぐようなクローンは保守困難化の原因となるため、修正の優先度は高いと考えられる。このような、修正優先度の決め方の指針を、修正優先度ポリシーと呼ぶこととする。
修正優先度ポリシー251は、各コードクローンに対して優先度を決定可能なように修正優先度の決め方の指針を具体的に定めた情報である。例えば、「規模が大きいコードクローンほど優先度が高い」という指針の場合は、「30行以上のコードクローンならば優先度A、10行以上29行以下のコードクローンならば優先度B、9行以下のコードクローンならば優先度Cとする」などの修正優先度ポリシー251が考えられる。なお、この行数に対する優先度決定の閾値は一例であり、優先度の決め方として妥当であれば別の閾値を用いてもよい。この例では優先度の表現方法としてアルファベットによるランクを用いているが、行数をそのまま優先度の値とするなど、数値により優先度を表現してもよい。
ステップS261のコードクローン修正優先度決定処理においては、コードクローン分布情報54と修正優先度ポリシー251がコードクローン修正優先度決定部252へ入力され、コードクローン修正優先度決定部252が修正優先度ポリシー251に従ってコードクローン分布情報54に含まれる各コードクローンの修正優先度を決定し、結果をコードクローン修正優先度情報253として出力する。
図27の例においては、コードクローンの識別子であるクローンIDを入力する列271とそのコードクローンの修正優先度を入力する列272を備えるテーブルにより、コードクローン修正優先度情報253を表現している。例えば、行273はクローンIDに1、修正優先度にBが入力されている。これは、クローンIDが1であるコードクローンの修正優先度がBであることを表している。
なお、この例においては、データ構造としてテーブルを用いているが、同等の情報が表現可能であればグラフやツリーなど他のデータ構造を用いてもよい。
図28と、図29を用いて、マトリクス生成部24とステップS64のマトリクス生成処理の詳細について説明する。
テーブル作成部111と修正競合判定部181は、実施例2におけるものと同等である。
マトリクス要素入力部113は、修正優先度比較結果282に基づいてテーブル作成部111が作成したテーブル112にデータを入力し、開発管理マトリクス56を作成するモジュールである。
マトリクス生成部24への入力として、コードクローン分布情報54とコードクローン修正優先度情報253がある。コードクローン分布情報54の内容は実施例1で説明したものと同様である。
テーブル112、修正競合情報182、修正優先度比較結果282はマトリクス生成処理の一時的なデータであり、RAM3およびHDD5に一時的に格納されるが、マトリクス生成部24の永続的な構成要素ではない。
テーブル112、修正競合情報182の内容は実施例2において説明したものと同様である。
修正競合の関係のあるコードクローンの組のIDがaとbであり、aの方がbより優先度が高い場合、b行a列の要素に×が入力される。aとbの優先度が等しい場合は、b行a列とa行b列両方の要素に×が入力される。
なお、本実施例ではマトリクスの要素は空欄、×の2値を用いるが、その他、整数値などを用いてもよい。また、クローンの存在するモジュール名等の位置情報を記入してもよい。
先ず、ステップS151において、マトリクス生成部への入力であるコードクローン分布情報54とコードクローン修正優先度情報253が入力される。
次に、ステップS152のテーブル作成処理、ステップS191の修正競合判定処理が実施例2と同様に行われる。
次に、ステップS153において、マトリクス要素入力部113が、修正競合情報182を参照し、修正優先度比較結果282に基づいてテーブル112の対応する箇所に×を入力する。修正競合情報182の全てのデータに対して入力が完了したら、テーブル112を開発管理マトリクス56として出力し、処理を終了する。
実施例2と同様に、開発管理マトリクス56のインデクスの順序がコードクローンの修正順序を表現していると考える。従って、マトリクスにおける×と対角線の距離と、手戻りの大きさの関係は実施例2で説明した通りである。
1.×が対角線の下側の三角領域にできるだけ集まる
2.×がマトリクスの対角線にできるだけ近くなる
開発管理マトリクス56のインデクスの順序を並べ替える処理は、実施例2の場合と同様に、公知の技術を使用できる。DSM(Design Structure Matrix)における手法を適用して、上記の2つの条件を満足する開発管理マトリクス56のインデクスの順序を並べ替えるアルゴリズムには,パス探索による方法,隣接行列のべき乗による方法,グラフ理論による方法など,様々な方法がある。それらのうちいずれかの方法を採用して、本実施例では、図に示していない優先度付き競合作業指針導出部が実施する。
「×がマトリクスの対角線にできるだけ近くする」処理に加えて「×が対角線の下側の三角領域にできるだけ集める」処理を行うことが実施の形態2で示した競合作業指針導出部との違いである。
2 ROM
3 RAM
4 バス
5 HDD
6 CDROMドライブ
7 CDROM
8 NIC
9 入力装置
10 表示装置
11 ソフトウェア開発管理装置
21 ソフトウェア開発管理プログラム
22 コードクローン検出部
23 コードクローン分布解析部
24 マトリクス生成部
25 ユーティリティ・ライブラリプログラム
26 OS
31 開発管理対象ソフトウェア
51 ソースコード
52 コードクローン検出結果
53 構成要素情報
54 コードクローン分布情報
55 担当チーム情報
56 開発管理マトリクス
111 テーブル作成部
112 テーブル
113 マトリクス要素入力部
181 修正競合判定部
182 修正競合情報
251 修正優先度ポリシー
252 コードクローン修正優先度決定部
253 コードクローン修正優先度情報
281 修正優先度比較部
282 修正優先度比較結果
Claims (8)
- 開発管理対象ソフトウェアのソースコード、またはテストコードを入力して、コードクローンの所在を検出するコードクローン検出部と、
前記開発管理対象ソフトウェアのファイルと構成要素との対応関係を表わす構成要素情報を入力して、前記コードクローン検出部の検出結果とより、各構成要素に対するコードクローンの分布を解析し、コードクローンと、構成要素との対応関係を表わすコードクローン分布情報を出力するコードクローン分布解析部と、
前記コードクローン分布情報よりコードクローンを対象とする変更あるいは修正作業における作業依存関係情報を出力する作業依存関係情報生成部と、
を備えたことを特徴とするソフトウェア開発管理装置。 - 請求項1に記載するソフトウェア開発管理装置において、
前記作業依存関係情報生成部に対応する部分が、
前記開発管理対象ソフトウェアの各構成要素に対する担当チームの情報を入力して、前記コードクローン分布情報とより、前記開発管理対象ソフトウェアの構成要素と担当チームの関係、および、各構成要素に対するコードクローンの分布状況を一つのマトリクスで表現した開発管理マトリクスを作成して出力するマトリクス生成部
であることを特徴とするソフトウェア開発管理装置。 - 請求項1に記載するソフトウェア開発管理装置において、
前記作業依存関係情報生成部に対応する部分が、
前記コードクローン分布情報に従って、コードクローンのクローンIDを行、列のインデクスとするマトリクステーブルを作成するテーブル作成部と、
前記コードクローン分布情報に従って、それぞれのコードクローンの組に対して修正が競合するかどうかを判定し、結果を修正競合関係にあるコードクローンの組の配列として表わす修正競合情報を出力する修正競合判定部と、
前記修正競合情報に基づいて前記マトリクステーブルに、行と列のインデクスに対応するコードクローン間に修正の競合関係があることを示す値を入力し、開発管理マトリクスを作成して、出力するマトリクス要素入力部と、
を備えるマトリクス生成部
であることを特徴とするソフトウェア開発管理装置。 - 請求項3に記載するソフトウェア開発管理装置において、
各コードクローンに対して優先度を決定可能とする修正優先度の決め方を定めた情報修正優先度ポリシーを入力して、前記コードクローン分布情報に含まれる各コードクローンの修正優先度を決定して、結果をコードクローンIDと修正優先度情報を対応付けたコードクローン修正優先度情報を出力するコードクローン修正優先度決定部を更に備え、
前記マトリクス生成部に、前記コードクローン修正優先度情報に従い、前記修正競合情報にあるコードクローンの組の修正優先度を比較し、その結果を修正優先度比較結果として出力する修正優先度比較部を更に備え、
前記マトリクス要素入力部が、前記修正競合情報と前記修正優先度比較結果に基づいて前記マトリクステーブルに、修正競合の関係のあるコードクローンの組のIDがaとbであり、aの方がbより優先度が高い場合、b行a列の要素に行と列のインデクスに対応するコードクローン間に修正の競合関係があることを示す値を入力し、またはaとbの優先度が同じ場合、b行a列の要素、およびa行b列の要素のいずれにも行と列のインデクスに対応するコードクローン間に修正の競合関係があることを示す値を入力して、開発管理マトリクスを作成して、出力することを特徴とするソフトウェア開発管理装置。 - CPUと記憶装置と入力装置と出力装置とを少なくとも有する情報処理装置として実現されるソフトウェア開発管理装置において、
開発管理対象ソフトウェアのソースコード、またはテストコード、前記開発管理対象ソフトウェアのファイルと構成要素との対応関係を表わす構成要素情報を入力するステップと、
前記開発管理対象ソフトウェアのソースコード、またはテストコードからコードクローンの所在を検出するステップと、
前記開発管理対象ソフトウェアのファイルと構成要素との対応関係を表わす構成要素情報と、及び前記コードクローンの検出結果から各構成要素に対するコードクローンの分布を解析し、コードクローンと、構成要素との対応関係を表わすコードクローン分布情報を出力するステップと、
前記コードクローン分布情報からコードクローンを対象とする変更あるいは修正作業における作業依存関係の情報を出力するステップとを有することを特徴とするソフトウェア開発管理方法。 - 請求項5に記載するソフトウェア開発管理方法において、
更に、前記開発管理対象ソフトウェアの各構成要素に対する担当チームの情報を入力するステップを有し、
前記作業依存関係の情報を出力するステップを、
前記開発管理対象ソフトウェアの各構成要素に対する担当チームの情報と、前記コードクローン分布情報とから前記開発管理対象ソフトウェアの構成要素と担当チームの関係、および、各構成要素に対するコードクローンの分布状況を一つのマトリクスで表現した開発管理マトリクスを作成して出力するステップとを有するように替えたことを特徴とするソフトウェア開発管理方法。 - 請求項5に記載するソフトウェア開発管理方法において、
前記作業依存関係の情報を出力するステップを、
前記コードクローン分布情報に従って、コードクローンのクローンIDを行、列のインデクスとするマトリクステーブルを作成するステップと、
前記コードクローン分布情報に従って、それぞれのコードクローンの組に対して修正が競合するかどうかを判定し、結果を修正競合関係にあるコードクローンの組の配列として表わす修正競合情報を出力するステップと、
前記修正競合情報に基づいて前記マトリクステーブルに、行と列のインデクスに対応するコードクローン間に修正の競合関係があることを示す値を入力し、開発管理マトリクスを作成して、出力するステップとを有するように替えたことを特徴とするソフトウェア開発管理方法。 - 請求項7に記載するソフトウェア開発管理方法において、
各コードクローンに対して優先度を決定可能とする修正優先度の決め方を定めた情報修正優先度ポリシーを入力して、前記コードクローン分布情報に含まれる各コードクローンの修正優先度を決定して、結果をコードクローンと修正優先度情報を対応付けたコードクローン修正優先度情報を出力するステップと、
前記コードクローン修正優先度情報に従い、前記修正競合情報にあるコードクローンの組の修正優先度を比較し、その結果を修正優先度比較結果として出力するステップとを更に有し、
前記開発管理マトリクスを作成して、出力するステップを、前記修正競合情報と前記修正優先度比較結果に基づいて前記マトリクステーブルに、修正競合の関係のあるコードクローンの組のIDがaとbであり、aの方がbより優先度が高い場合、b行a列の要素に行と列のインデクスに対応するコードクローン間に修正の競合関係があることを示す値を入力し、またはaとbの優先度が同じ場合、b行a列の要素、およびa行b列の要素のいずれにも行と列のインデクスに対応するコードクローン間に修正の競合関係があることを示す値を入力して、開発管理マトリクスを作成して、出力するステップに替えたことを特徴とするソフトウェア開発管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013230426A JP6199160B2 (ja) | 2013-11-06 | 2013-11-06 | ソフトウェア開発管理装置およびその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013230426A JP6199160B2 (ja) | 2013-11-06 | 2013-11-06 | ソフトウェア開発管理装置およびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015090596A true JP2015090596A (ja) | 2015-05-11 |
JP6199160B2 JP6199160B2 (ja) | 2017-09-20 |
Family
ID=53194088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013230426A Active JP6199160B2 (ja) | 2013-11-06 | 2013-11-06 | ソフトウェア開発管理装置およびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6199160B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010113449A (ja) * | 2008-11-05 | 2010-05-20 | Hitachi Ltd | ソフトウェア分析装置 |
JP2011096082A (ja) * | 2009-10-30 | 2011-05-12 | Hitachi Ltd | プログラム解析方法、プログラム解析プログラムおよびプログラム解析装置 |
-
2013
- 2013-11-06 JP JP2013230426A patent/JP6199160B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010113449A (ja) * | 2008-11-05 | 2010-05-20 | Hitachi Ltd | ソフトウェア分析装置 |
JP2011096082A (ja) * | 2009-10-30 | 2011-05-12 | Hitachi Ltd | プログラム解析方法、プログラム解析プログラムおよびプログラム解析装置 |
Non-Patent Citations (1)
Title |
---|
角田 良明 編著, 「ネットワークソフトウェア」, vol. 初版, JPN6017027268, 15 January 2013 (2013-01-15), pages pp.115−118 * |
Also Published As
Publication number | Publication date |
---|---|
JP6199160B2 (ja) | 2017-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4239932B2 (ja) | 生産管理システム | |
US20100042745A1 (en) | Workflow diagram generation program, apparatus and method | |
US20090077013A1 (en) | Methods, systems, and computer program products for user-driven targeted query re-optimizations using delta values | |
US20120109606A1 (en) | Automated interactive multi-objective optimization-based systems design tool | |
Medeiros et al. | Requirements Engineering in Agile Projects: A Systematic Mapping based in Evidences of Industry. | |
JP5614843B2 (ja) | ソフトウェア設計・運用統合管理システム | |
Gondro et al. | Quality control for genome-wide association studies | |
JP5942481B2 (ja) | 運用作業管理システム、方法、及びプログラム | |
KR101230007B1 (ko) | 의사결정문제 해결 대응 시스템 | |
JP6244274B2 (ja) | 相関ルール分析装置および相関ルール分析方法 | |
CN104462461A (zh) | 对表单进行排查空值处理的方法及装置 | |
EP2930577A1 (en) | Controlling a manufacturing plant with a MES system | |
JPWO2009011057A1 (ja) | アプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置 | |
JP6199160B2 (ja) | ソフトウェア開発管理装置およびその方法 | |
Corea et al. | A taxonomy of business rule organizing approaches in regard to business process compliance | |
Al-Zubidy et al. | Review of systematic literature review tools | |
Snipes et al. | Code hot spot: A tool for extraction and analysis of code change history | |
JP5168099B2 (ja) | 改修作業範囲分割プログラム,改修作業範囲分割装置,及び改修作業範囲分割方法 | |
JP7295792B2 (ja) | データ分析装置およびデータ分析方法 | |
JP7275504B2 (ja) | 情報処理装置、分析モデル管理方法及び分析モデル管理プログラム | |
KR101609292B1 (ko) | 연구 개발 프로젝트 관리 장치 및 방법 | |
KR101649913B1 (ko) | 연구 개발 프로젝트 관리 장치 및 방법 | |
Elstner et al. | From product development to market introduction: A co-citation analysis in the field of ramp-up | |
Heiser et al. | Revealing hidden structures in organizational transformation–a case study | |
Altavilla et al. | Interdisciplinary life cycle data analysis within a knowledge-based system for product cost estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160802 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170712 |
|
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: 20170725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170823 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6199160 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |