JP2009086814A - ソースコード管理システム - Google Patents

ソースコード管理システム Download PDF

Info

Publication number
JP2009086814A
JP2009086814A JP2007253177A JP2007253177A JP2009086814A JP 2009086814 A JP2009086814 A JP 2009086814A JP 2007253177 A JP2007253177 A JP 2007253177A JP 2007253177 A JP2007253177 A JP 2007253177A JP 2009086814 A JP2009086814 A JP 2009086814A
Authority
JP
Japan
Prior art keywords
source code
code
common
management system
sharing
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
JP2007253177A
Other languages
English (en)
Inventor
Yasuhide Sawada
康秀 澤田
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 Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co 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 Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2007253177A priority Critical patent/JP2009086814A/ja
Publication of JP2009086814A publication Critical patent/JP2009086814A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 開発者にソースコードの共通化を確実に実施させる。ソースコードの共通化の標準的かつ具体的な技法を開発者に提示する。開発者が実施した共通化の結果を評価して最善の実施結果を開発者に通知する。
【解決手段】 開発中のソフトウェアのソースコードを管理するリポジトリと、共通化されたソースコードだけを前記リポジトリに登録するソースコード登録手段と、ソースコードに対する共通化実施方法を提示する共通化実施方法提示手段と、ソースコード中に含まれるコードクローンを検出して、当該ソースコードが共通化されているか否かの判定するためのコードクローン検出手段と、ユーザが共通化を実施したソースコードを、メトリクスから算出したソースコードの改善率を用いて評価し、最善の共通化実施結果を選出する共通化実施結果評価手段とを有する。
【選択図】 図1

Description

本発明は、開発中のソフトウェアのソースコードを管理するソースコード管理システムに関し、特に、ソースコードの共通化実施状況により登録の可否を決定する機能、およびソースコードに対する共通化実施方法をユーザに提示する機能を持つソースコード管理システムに関する。
ソフトウェアの開発を行うプロジェクトにおいて、作成済みのソースコードは、専用のリポジトリに格納して構成管理を行うのが一般的である。ソースコードの構成管理リポジトリを構築するシステムの例としては、CVS(Concurrent Versions System)やSubversionが知られている。
また、作成済みのソースコードの品質を定量的に評価するために、メトリクスが用いられることがある。メトリクスの代表的な例としては、LOC(Lines Of Code:行数)、CC(Cyclomatic Complexity:サイクロマティック複雑度)、LCOM(Lack of Cohesion Of Methods:クラスの凝集度の欠如度合い)などがある。メトリクスは、対象となるソースコードをツールで解析することによって容易に値を測定できる。メトリクス測定機能を持つツールには、Together(ボーランド社の登録商標)やEclipse Metrics Pluginなどがある。
また、ソフトウェア開発においては、同じような機能が重複開発されることを防ぐために、設計工程にて共通化のプロセスを設けることが望ましい。共通化のプロセスにて、複数箇所で重複すると予想される機能を前もって洗い出し、それらを共通機能として整理しておくことで、実装工程での共通機能の重複開発を防止できる。共通化されたソフトウェアは、そのソースコード内に無駄な重複が存在しないため、変更が必要になった時でも最小限の変更で済む上、さらには共通的な機能が整理されるのでそれらを部品化して以後の再利用に生かしやすい、といった利点がある。
ところが、開発者によるソースコードのコピー&ペーストの乱発によって、結果的に共通化が不十分なソースコードが出来上がってしまうことがある。ソースコード中の、全く同一もしくは類似したコード断片のことを「コードクローン」と呼ぶが、共通化が不十分なソースコード中には、コードクローンが至る所に見られる。数多くのコードクローンが存在することにより、ソースコードが必要以上に肥大化するばかりでなく、ソースコードの再利用性や保守性が著しく損なわれるという問題が生じる。
しかし、コードクローンを多数含むソースコードであっても、コードクローンを検出して適切な修正を施し、コードクローンを排除・整理することによって、共通化を図ることが可能である。コードクローンを容易に検出するための技術として、特許文献1では、ソースコード中から意味のある同形パターンを検出するシステムが開示されている。
以下、特許文献2から特許文献5までにおいて、近時におけるソースコード管理システムの提案の代表的なものを挙げる。
特許文献2には、動作不良が発生する機能や仕様漏れなどがあった状態で機能を作成した場合、プロトタイプ生成部がそれに代わる仮想の機能を生成するプログラム開発支援システムが開示されている。複数人でソフトウェア開発をする上で課題となるソースコードの管理や機能修正によるソースコードの大幅な変更、仕様の不明確な個所について仮実装が可能となるものである。
特許文献3に開示されている構成管理装置は、指定部により開発環境が指定された場合、抽出部により構成管理DBから開発環境を抽出し出力する。取得部により開発成果物が取得された場合、検証コード生成部によりコンパイラを含む指定された開発環境の下で、開発成果物に含まれているソースコードを再コンパイルする。これにより、再コンパイル結果が生成される。そして、再コンパイル結果及び指定された開発環境中のファイルを用いて、開発環境の照合用検証コードを生成する。開発環境検証コード判定部により、開発環境の照合用検証コードと、開発成果物に含まれている開発環境検証コードとが一致するか否かを判定する。
特許文献4に開示されている進捗管理サーバは、管理者用端末から、プログラムについて、開発が完了するまでの残作業工数の送信要求を受け付け、送信要求されたプログラムのソースコードを評価することにより、当該ソースコードに含まれる問題点をチェックする。そして、進捗管理サーバは、チェックしたソースコードの問題点の修正に要する予測修正工数を、修正工数テーブルを参照して算出し、送信要求されたプログラムのソースコードごとに、予測基準工数と予測修正工数とを加算するとともに、加算したソースコードごとの工数を集計した結果を、前記送信要求されたプログラムの残作業工数として管理者用端末に出力する。
特許文献5に開示されているプログラムの設計管理システムは、プログラム設計に必要な実体ファイルを蓄積するファイルサーバと、このファイルサーバに接続された複数の設計端末とを備えている。ファイルサーバは、当該プログラムに関連する全ての実体ファイルの構成情報を格納したメタデータを格納するリポジトリを有し、設計端末はリポジトリからメタデータを読み込んでメタデータに設計作業を加え、メタデータを通じて設計作業により変更を加えるべき実体データで他の設計段階を担当する設計端末において利用されるべき実体データも含め、設計作業により変更を加えるべき単数の又は複数の実体ファイルに設計作業の内容を反映させる。
特開2003−029978号公報 特開2007−213203号公報 特開2006−350840号公報 特開2006−127020号公報 特開2006−79212号公報
ところで、ソースコードの共通化は、将来の変更や再利用への対応を容易にすることで、ソフトウェアの長期的な改修・保守コストの削減効果がある一方、ソフトウェアの外部仕様には特に影響を及ぼさない。共通化を実施しなかったとしても、要求通りの外部仕様を満たすソフトウェアを作り上げることは可能である。よって、ソフトウェア開発の現場では、共通化というプロセスが省略されてしまうケースが多く、その結果、長期的な改修・保守コストが増大しているという問題がある。
また、作成済みのソースコードの共通化を実施する際には、ソースコードを修正してコードクローンを整理していく作業を各開発者が実施することとなる。しかし、開発者が共通化に精通していないと、共通化の具体的な技法が分からないため、作業に手間取るなどして予定を上回る作業工数を費やしてしまうことがある。また、開発者が共通化の標準的な技法に従わなかった場合、ソースコードの修正中に新たなバグを作り込んでトラブルを招く恐れが高くなる。
また、ソースコードの共通化の技法は、コードクローンの規模や形態等によって適用可能なものが異なるが、一般に複数の技法が適用可能である。開発者は、いくつかの実施方法を試した結果の中から、最終的にどれを採用するかを選択しなくてはならない。しかし、共通化に精通していない開発者が自力で最善の実施結果を選択するのは困難である。
本発明の目的は、共通化が不十分なソースコードの登録を拒絶することによって開発者にソースコードの共通化を確実に実施させることができ、かつ、ソースコードの共通化の標準的かつ具体的な技法を開発者に提示でき、かつ、開発者が実施した共通化の結果を評価することで、最善の実施結果を開発者に通知できるソースコード管理システムを提供することにある。
上記課題を解決するために、本発明のソースコード管理システムは、開発中のソフトウェアのソースコードを管理するリポジトリと、共通化されたソースコードだけを前記リポジトリに登録するソースコード登録手段と、ソースコードに対する共通化実施方法を提示する共通化実施方法提示手段と、ソースコード中に含まれるコードクローンを検出して、当該ソースコードが共通化されているか否かの判定するためのコードクローン検出手段と、ユーザが共通化を実施したソースコードを、メトリクスから算出した改善率を用いて評価し、最善の共通化実施結果を選出する共通化実施結果評価手段とを設けたものである。
請求項1に記載するソースコード管理システムは、イントラネット上に置かれた管理サーバと、複数のクライアントから構成されるソースコード管理システムであって、前記管理サーバは、開発中のソフトウェアのソースコードを格納するリポジトリと、クライアントからソースコードの登録要求を受け付けて、そのソースコードが共通化されているか否かを判定し、共通化がされている場合のみソースコードを該リポジトリに格納するソースコード登録手段と、共通化がされていない場合には、クライアントに対し適切な共通化実施方法を提示する共通化実施方法提示手段とを有し、前記クライアントは、前記管理サーバの共通化実施方法提示手段から提示された共通化実施方法を受信して、操作者に示す表示手段と、該表示手段に表示された内容を操作者が見て、それに基づいて前記ソースコードの共通化を実施し、再度前記管理サーバに登録要求を送信する送信手段とを有する。
請求項2に記載のソースコード管理システムは、請求項1に記載したソースコード管理システムであって、前記管理サーバは、クライアントから受け取ったソースコード中に含まれるコードクローンを検出するコードクローン検出手段をさらに有し、前記ソースコード登録手段は、該コードクローン検出手段によるコードクローン検出結果に基づいて、ソースコードの共通化がされているか否かを判定するものである。
請求項3に記載したソースコード管理システムは、請求項1又は2のいずれか一に記載したソースコード管理システムであって、前記管理サーバは、クライアントの操作者が実施した共通化の実施結果を評価する共通化実施結果評価手段を備える。
請求項4に記載したソースコード管理システムは、請求項3に記載したソースコード管理システムであって、該共通化実施結果評価手段は、共通化を実施したソースコードのメトリクスを用いてソースコードの改善率を算出し、その算出した改善率を用いて最善の共通化実施結果を選出するものである。
本発明に係るソースコード管理システムによれば、次のような効果がある。
(1)共通化の実施が不十分で、コードクローンを多数含んでいるソースコードについて、開発者に共通化をもれなく実施させることが可能となる。
(2)共通化に精通していない開発者であっても、自分が担当しているソースコードに対して共通化を実施するための標準的かつ具体的な技法を容易に知ることができる。また、過去の具体的な共通化の実施例も併せて参照できるため、各開発者が共通化の実施要領を確実に把握できる。よって、共通化に要する工数の短縮や、共通化実施時に混入するバグの減少といった効果がある。
(3)開発者が実施した共通化の結果をメトリクスを用いて評価し、その評価結果を開発者に通知することにより、開発者は常に最善の実施結果を選択・採用することが可能となる。
以下、本発明の実施形態を説明する。
図9は、本発明に係るソースコード管理システムの動作環境を示す概念図である。イントラネット901上に設けられた管理サーバ902上に本発明に係るソースコード管理システムのうちの中心部分であるソースコード登録手段、共通化技法提示手段、コードクローン検出手段、共通化実施結果評価手段などの管理プログラムがインストールされて、端末装置(クライアントコンピュータ)911、912、913などからイントラネット901を介してサーバ902にアクセスし、ログインすることにより開発したソースコードの登録要求を送信する。本発明のソースコード管理システムのうち、共通化技法を開発者(端末装置の操作者)に表示する部分、管理サーバにソースコードの登録要求を送信する部分などは、クライアント側にインストールされている。
図10は、端末装置911のハードウェア構成を示すブロック図である。CPU1001のバス1000上には、RAM(ランダムアクセスメモリ)1002、ROM(リードオンリメモリ)1003、HDD(ハードディスクドライブ)1004、表示回路1005、入力信号処理部1006、ネットワーク回路部1007が接続されている。さらに、表示回路部1005には、表示装置1015が接続される。表示装置1015は、具体的には液晶モニタ装置、CRT装置、プラズマディスプレイ装置などのいずれかが用いられる。そして、入力信号処理部1006には、マウス1012、キーボード1011などの入力装置が接続される。端末装置911の操作者は表示装置の画面上に表示される処理内容を視認しつつ、キーボード911とマウス912とを操作して入力し、さらに端末装置911の処理内容が進められる。ネットワーク回路部1007は、さらに必要な機器を介してイントラネット901につながる。端末装置911から管理サーバ902にアクセスするためにネットワーク接続が必要となる。
図1は、本発明の実施の形態の一例を示すシステム構成図である。
本発明のソースコード管理システムは、ユーザから受信したソースコードを処理するサーバ101、ユーザが操作する複数のクライアント端末102、作成済みのソースコードを登録するためのリポジトリ103、予め定義された共通化技法定義104、ユーザへの共通化実施要求を格納する共通化実施要求格納部105、共通化の実施例を蓄積する共通化実施例格納部106から構成されている。
また、サーバ101は、リポジトリ103へのソースコードの登録処理を実行するソースコード登録手段107、ソースコード中に含有されるコードクローンを検出するコードクローン検出手段108、ソースコードの共通化の実施方法をユーザに提示するための共通化実施方法提示手段109、ソースコードの共通化の実施結果を評価して最適な実施結果を選出する共通化実施結果評価手段110を備えるものとする。
図2は、共通化技法定義104の一例を示す図である。共通化技法定義とは、開発者がソースコードの共通化を実施する際に用いる標準的な技法を定めたものである。
技法名201は、各技法の名称である。他の技法との識別のため、異なる技法に同じ技法名を付けないこととする。適用手順202は、共通化技法を実際に適用する際に開発者が具体的に行う作業内容および手順を説明した文章である。制約条件203は、当該技法の適用対象となるコードクローンが必ず満たしていなければならない条件である。制約条件は全くない場合もあれば、複数個ある場合もある。改善率算出式204は、当該技法を用いて共通化を実施した際に、ソースコードの改善の度合いを示す「改善率」を算出するための、具体的な算出式の定義である。
本実施例では、改善率算出式204の中で、LOC(Lines Of Code:行数)、CC(Cyclomatic Complexity:サイクロマティック複雑度)、LCOM(Lack of Cohesion Of Methods:クラスの凝集度の欠如度合い)という3種類のメトリクスを用いるものとする。
図3は、共通化実施要求格納部105に格納される共通化実施要求の一例を示す図である。共通化実施要求とは、サーバ101がユーザに対して共通化の実施を要求中であり、当該ユーザは共通化を実施するまで本システムへのソースコードの登録が出来ない状態であることを示す情報である。
ユーザ名301は、共通化の実施要求の相手であるユーザを識別する名称である。ユーザ名301は、予め本システムを利用する各ユーザに割り振られているものとする。ファイル名302は、共通化実施の対象となっているソースコードを構成するファイルの名前である。修正前ソースコード303は、共通化の実施要求の対象となっているソースコードの内容である。
図4は、共通化実施例格納部106に格納される共通化実施例の一例を示す図である。
修正前ソースコード401は、共通化実施前のソースコードの内容である。修正後ソースコード402は、共通化実施後のソースコードの内容である。適用技法名403は、共通化の実施に用いられた技法の名称であり、共通化技法定義104にて定義されている技法のいずれか1つに対応する。改善率404は、共通化技法定義104にて定義される改善率算出式を当該実施例に適用して算出した改善率の値である。
図4の例において、修正前ソースコード401には、内容が重複しているコードクローン405が2箇所に出現している。修正後ソースコード402は、コードクローン405が1箇所に整理されるように共通化を実施した結果である。
図5は、ソースコード登録手段107による、リポジトリ103へのソースコードの登録手順を示すフローチャートである。
ステップ501では、クライアント端末102より、登録対象のソースコード一式と、送信者のユーザ名を受信する。ステップ502では、共通化実施要求格納部105に対して検索を実行し、当該ユーザが共通化実施要求格納部105に登録されているかどうか確認することにより、当該ユーザに共通化の実施を要求中かどうかを判定する。共通化の実施を要求中のユーザの場合はステップ503へ進む。ステップ503では、登録不可の通知をクライアント端末102に送信し、処理を終了する。共通化の実施を要求中でないユーザの場合は、ステップ504へ進む。
ステップ504では、コードクローン検出手段を起動して、コードクローンの検出を実行し、検出結果を受信する。ステップ505では、受信したコードクローン検出結果をもとに、コードクローン含有率を算出する。コードクローン含有率は、(登録対象ソースコードに含まれるコードクローンの総行数÷登録対象ソースコード全体の行数)という式にて算出する。ステップ506では、コードクローン含有率が予め設定された閾値を超えているかどうかを判定し、閾値を超える場合はステップ507へ、閾値を超えない場合はステップ509へ進む。
ステップ507では、登録不可の通知をクライアント端末102に送信する。ステップ508では、ステップ501で受信したソースコードと送信者ユーザ名、およびステップ504でのコードクローン検出結果を、共通化実施方法提示手段109に送信して、共通化実施方法提示処理を実行し、処理を終了する。
ステップ509では、ステップ501で受信したソースコードが登録可であることを示す通知をクライアント端末102に送信する。ステップ510では、リポジトリ103へ登録対象ソースコードを格納し、処理を終了する。
図6は、コードクローン検出手段108によるコードクローン検出の手順を示すフローチャートである。
ステップ601では、コードクローン検出対象のソースコード一式を受信する。ステップ602では、リポジトリ103に登録されている既存ソースコード一式を取得する。ステップ603では、ステップ601および602で取得したソースコード全体を解析し、検出対象ソースコード中に出現するコードクローンを全て洗い出す。最後に、ステップ604では、洗い出した全てのコードクローンの出現位置(開始位置および終了位置)の一覧を、検出結果として返却する。
ステップ603のソースコード解析処理は、前述の特許文献1にて開示されている技術で実現するものとし、具体的な実現方法の説明は省略する。
図7は、共通化実施方法提示手段109による、ユーザへの共通化実施方法の提示手順を示すフローチャートである。
ステップ701では、対象となるソースコード、当該ソースコードをクライアント端末102から送信した送信者のユーザ名、および当該ソースコードに対するコードクローン検出結果を受信する。ステップ702では、受信したコードクローン検出結果を精査して、コードクローンの中でサイズが最も大きいものを1つ選出する。ステップ703では、共通化技法定義104で定義されている各共通化技法の制約条件について、ステップ702で選出したコードクローンが当該制約条件を満たすかどうかを判定し、制約条件が満たされる共通化技法を全て選出する。ステップ704では、共通化実施例格納部106を検索し、ステップ703で選出した共通化技法のいずれかに該当する実施例を全て選出する。ステップ705では、ステップ703で選出した共通化技法定義の内容の一覧、およびステップ704で選出した共通化実施例の内容の一覧を、クライアント端末102に送信し、共通化の実施を要求するメッセージとともにユーザに提示する。ステップ706では、共通化実施要求格納部105に対し、当該ユーザに対応するレコードを1件登録する。このレコードには、ステップ701で受信したユーザ名、ステップ701で受信したソースコードを構成するファイルのファイル名を登録し、また、ステップ701で受信したソースコードの内容を、修正前ソースコードとして登録する。
ユーザは、ステップ705で提示された共通化技法の一覧および共通化実施例の一覧を参照することにより、自分が送信したソースコードに対する共通化の実施方法を具体的に把握することが可能となる。
図8は、共通化実施結果評価手段110による共通化実施結果の評価手順を示すフローチャートである。
ステップ801では、開発者が共通化技法を適用して修正したソースコードのファイル一式、適用した共通化技法の技法名、および送信者のユーザ名を、クライアント端末102から受信する。このとき、ユーザが複数の修正パターンを用意している場合は、全てのパターンについて修正後ソースコードおよび適用技法名をクライアントから送信させ、これを一括受信するものとする。ステップ802では、送信者のユーザ名をもとに、共通化実施要求格納部105を検索して修正前ソースコードを取得する。ステップ803では、ステップ801および802で取得したソースコードのメトリクスを測定し、また、適用した共通化技法に対応する改善率算出式を共通化技法定義104から取得し、各メトリクスの値と改善率算出式にもとづいて、ソースコードの改善率を算出する。ステップ803は、ステップ801でクライアント端末102から受信した各々の修正パターンについて繰り返し実施するものとする。ステップ804では、ステップ803で算出した改善率の値が最も高かった修正パターンを選出する。ステップ805では、選出した修正パターンをクライアントに通知する。ステップ806では、選出した修正パターンの内容を共通化実施例格納部106に登録する。そして、ステップ807では、送信者のユーザ名に該当する共通化要求格納部105のレコードを削除する。
ユーザは、ステップ805の通知結果を見て、どの修正パターンが当該ソースコードに対する改善率が最も高かったかを知ることができる。また、ステップ807において共通化実施要求格納部105から当該ユーザのレコードが削除されることによって、当該ユーザによるソースコードの登録処理が解禁される。ステップ806にて共通化実施例格納部106に登録された情報は、以後、共通化実施方法提示手段109によって使用され、必要に応じてユーザに提示されることになる。
開発者に共通化をもれなく実施させ、共通化に精通していない開発者にも共通化を実施するための標準的かつ具体的な技法を知らせるソースコード管理システムを提供できる。共通化に要する工数の短縮や、共通化実施時に混入するバグの減少をもたらすソースコード管理システムを提供できる。
本発明の一実施形態例を示すシステム構成図である。 共通化技法定義の一例を示す図である。 共通化実施要求格納部に格納される共通化実施要求の一例を示す図である。 共通化実施例格納部に格納される共通化実施例の一例を示す図である。 ソースコードの登録手順を示すフローチャートである。 コードクローン検出手順を示すフローチャートである。 共通化実施方法の提示手順を示すフローチャートである。 共通化実施結果の評価手順を示すフローチャートである。 本発明の情報漏洩防止システムの動作環境を示す概念図である。 端末装置のハードウェア構成を示すブロック図である。
符号の説明
101 サーバ
102 クライアント
103 リポジトリ
104 共通化技法定義
105 共通化実施要求格納部
106 共通化実施例格納部
107 ソースコード登録手段
108 コードクローン検出手段
109 共通化技法提示手段
110 共通化実施結果評価手段
201 技法名
202 適用手順
203 制約条件
204 改善率算出式
301 ユーザ名
302 ファイル名
303,401 修正前ソースコード
402 修正後ソースコード
403 適用技法名
404 改善率
901 イントラネット
902 サーバ
911,912,913 端末装置
1000 バス
1001 CPU
1002 RAM
1003 ROM
1004 HDD
1005 表示回路部
1006 入力信号処理部
1007 ネットワーク回路部
1011 キーボード
1012 マウス
1015 表示装置

Claims (4)

  1. イントラネット上に置かれた管理サーバと、複数のクライアントから構成されるソースコード管理システムであって、
    前記管理サーバは、
    開発中のソフトウェアのソースコードを格納するリポジトリと、
    クライアントからソースコードの登録要求を受け付けて、そのソースコードが共通化されているか否かを判定し、共通化がされている場合のみソースコードを該リポジトリに格納するソースコード登録手段と、
    共通化がされていない場合には、クライアントに対し適切な共通化実施方法を提示する共通化実施方法提示手段と
    を有し、
    前記クライアントは、
    前記管理サーバの共通化実施方法提示手段から提示された共通化実施方法を受信して、操作者に示す表示手段と、
    該表示手段に表示された内容を操作者が見て、それに基づいて前記ソースコードの共通化を実施し、再度前記管理サーバに登録要求を送信する送信手段と
    を有するソースコード管理システム。
  2. 請求項1に記載したソースコード管理システムであって、
    前記管理サーバは、
    クライアントから受け取ったソースコード中に含まれるコードクローンを検出するコードクローン検出手段を
    さらに有し、
    前記ソースコード登録手段は、該コードクローン検出手段によるコードクローン検出結果に基づいて、ソースコードの共通化がされているか否かを判定することを特徴とするソースコード管理システム。
  3. 請求項1又は2のいずれか一に記載したソースコード管理システムであって、
    前記管理サーバは、
    クライアントの操作者が実施した共通化の実施結果を評価する共通化実施結果評価手段を備えることを特徴とするソースコード管理システム。
  4. 請求項3に記載したソースコード管理システムであって、
    該共通化実施結果評価手段は、
    共通化を実施したソースコードのメトリクスを用いてソースコードの改善率を算出し、その算出した改善率を用いて最善の共通化実施結果を選出する
    ことを特徴とするソースコード管理システム。
JP2007253177A 2007-09-28 2007-09-28 ソースコード管理システム Pending JP2009086814A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007253177A JP2009086814A (ja) 2007-09-28 2007-09-28 ソースコード管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007253177A JP2009086814A (ja) 2007-09-28 2007-09-28 ソースコード管理システム

Publications (1)

Publication Number Publication Date
JP2009086814A true JP2009086814A (ja) 2009-04-23

Family

ID=40660193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007253177A Pending JP2009086814A (ja) 2007-09-28 2007-09-28 ソースコード管理システム

Country Status (1)

Country Link
JP (1) JP2009086814A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097470A (ja) * 2011-10-28 2013-05-20 Mitsubishi Electric Corp ソースファイル再利用支援装置、ソースファイル再利用支援方法、及び、プログラム
US9275020B2 (en) 2013-01-31 2016-03-01 International Business Machines Corporation Tracking changes among similar documents

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002196930A (ja) * 2000-12-25 2002-07-12 Ricoh Co Ltd ソフトウェア部品管理システム、ソフトウェア部品管理方法およびソフトウェア部品管理プログラムが記憶された記憶媒体
JP2003029978A (ja) * 2001-07-13 2003-01-31 Japan Science & Technology Corp 同形パターン検出システム
JP2004240477A (ja) * 2003-02-03 2004-08-26 Mitsubishi Electric Corp ソースコード静的解析支援システムおよび静的解析装置
JP2004280200A (ja) * 2003-03-12 2004-10-07 Ricoh Co Ltd ソフトウェア部品流通システム、プログラム及び記憶媒体
JP2007164489A (ja) * 2005-12-14 2007-06-28 Hitachi Software Eng Co Ltd ソースコードインスペクションシステム及びソースコードインスペクション方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002196930A (ja) * 2000-12-25 2002-07-12 Ricoh Co Ltd ソフトウェア部品管理システム、ソフトウェア部品管理方法およびソフトウェア部品管理プログラムが記憶された記憶媒体
JP2003029978A (ja) * 2001-07-13 2003-01-31 Japan Science & Technology Corp 同形パターン検出システム
JP2004240477A (ja) * 2003-02-03 2004-08-26 Mitsubishi Electric Corp ソースコード静的解析支援システムおよび静的解析装置
JP2004280200A (ja) * 2003-03-12 2004-10-07 Ricoh Co Ltd ソフトウェア部品流通システム、プログラム及び記憶媒体
JP2007164489A (ja) * 2005-12-14 2007-06-28 Hitachi Software Eng Co Ltd ソースコードインスペクションシステム及びソースコードインスペクション方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097470A (ja) * 2011-10-28 2013-05-20 Mitsubishi Electric Corp ソースファイル再利用支援装置、ソースファイル再利用支援方法、及び、プログラム
US9275020B2 (en) 2013-01-31 2016-03-01 International Business Machines Corporation Tracking changes among similar documents
US10169393B2 (en) 2013-01-31 2019-01-01 International Business Machines Corporation Tracking changes among similar documents

Similar Documents

Publication Publication Date Title
US10824521B2 (en) Generating predictive diagnostics via package update manager
US9477580B2 (en) System and method for determining test coverage
US9753838B2 (en) System and method to classify automated code inspection services defect output for defect analysis
US10769250B1 (en) Targeted security monitoring using semantic behavioral change analysis
US8209564B2 (en) Systems and methods for initiating software repairs in conjunction with software package updates
US8813039B2 (en) Method and system for software defect reporting
US20160004517A1 (en) SOFTWARE DEVELOPMENT IMPROVEMENT TOOL - iREVIEW
US9116802B2 (en) Diagnostic notification via package update manager
US20200081783A1 (en) System and method for automatic correction of a database configuration in case of quality defects
US20120137138A1 (en) Package audit tool
JP2003330720A (ja) 規則ベースの構成問題検出
JP6141471B2 (ja) システムの可用性を解析するための方法、装置、当該装置を含むシステム、並びに、上記方法を実施するためのコンピュータプログラム
JP2015505097A (ja) 修復送達システムのためのコンピュータ実装プロセス、コンピュータ・プログラム製品、および装置
US10705949B2 (en) Evaluation of library test suites using mutation testing
CN115033887A (zh) 开源组件安全治理方法、系统、电子设备及存储介质
CN111654495B (zh) 用于确定流量产生来源的方法、装置、设备及存储介质
US8381205B2 (en) Co-resident software performance tracking
JP2009086814A (ja) ソースコード管理システム
JP4399740B2 (ja) ポリシ型管理装置、方法、及び、プログラム
Vierhauser et al. Evolving systems of systems: Industrial challenges and research perspectives
US20150154498A1 (en) Methods for identifying silent failures in an application and devices thereof
US20090276458A1 (en) Adaptive Workflows Derived From Updates to Solution Building Block Architectures and Designs
CN111290870A (zh) 一种检测异常的方法和装置
US20230083977A1 (en) Method and apparatus for identifying a logic defect in an application
Cataldo et al. Exploring the impact of API complexity on failure-proneness

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120214

A131 Notification of reasons for refusal

Effective date: 20120228

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120703