(57)【要約】      （修正有）【課題】ソースコードを改訂した際に、リグレッションテストを行うことなく、デグレードの発生の有無を容易に判断できる手段を提供する。【解決手段】デグレード検知時の残存率の算出方法であって、ソースコード作成支援システムにおいて、デグレード検知部は、ソフトウェア開発したファイルＤ１〜Ｄ３が端末から登録される都度、ファイルＤ１〜Ｄ３のソースコードを監視し、ファイルＤ１〜Ｄ３の各版数間でソースコードを変更した差分情報ｄ１１〜ｄ１３をそれぞれ検出する。そして、最新の版数のファイルＤ３に、過去の版数Ｄ１，Ｄ２のファイルそれぞれの差分情報が存在する残存率を求め、残存率を端末に通知する。【選択図】図５
2020160784.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視し、前記ファイルの各版数間で前記ソースコードを変更した差分情報をそれぞれ検出する第１処理と、
登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が存在するか否かを判断する第２処理と、
前記判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力する第３処理と、
をコンピュータに実行させることを特徴とするソースコード作成支援プログラム。
【請求項２】
前記第２処理は、登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が残存している残存率を求め、
前記第３処理は、前記情報として前記残存率を出力する、
ことを特徴とする請求項１に記載のソースコード作成支援プログラム。
【請求項３】
前記第３処理は、前記残存率が所定値以下の場合、デグレードの発生である旨を出力する、
ことを特徴とする請求項２に記載のソースコード作成支援プログラム。
【請求項４】
前記第１処理は、版数毎の各ファイルが登録される都度、当該ファイルの前記ソースコードの変更差分を、前記ソースコードの行単位で差分テーブルに追加登録し、
前記差分テーブルを参照して、前記ファイルの各版数間で前記ソースコードの行単位で前記差分情報をそれぞれ検出する、
ことを特徴とする請求項１〜３のいずれか一つに記載のソースコード作成支援プログラム。
【請求項５】
前記第３処理は、判断結果を最新の版数のファイルを登録した開発者の端末に出力する、
ことを特徴とする請求項１〜４のいずれか一つに記載のソースコード作成支援プログラム。
【請求項６】
前記第１処理は、ソフトウェア開発時に作成された各版数の各ファイルが前記ソフトウェアのバージョン管理システムに登録される都度、実行させることを特徴とする請求項１〜５のいずれか一つに記載のソースコード作成支援プログラム。
【請求項７】
ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視し、前記ファイルの各版数間で前記ソースコードを変更した差分情報をそれぞれ検出する第１処理と、
登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が存在するか否かを判断する第２処理と、
前記判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力する第３処理と、
をコンピュータが実行することを特徴とするソースコード作成支援方法。
【請求項８】
ソフトウェア開発者が操作する端末と、前記端末に接続されたサーバとを含むソースコード作成支援システムにおいて、
前記サーバは、
前記端末の操作により、ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視し、前記ファイルの各版数間で前記ソースコードを変更した差分情報をそれぞれ検出し、
登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が存在するか否かを判断し、
前記判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力するデグレード検知部、
を備えたことを特徴とするソースコード作成支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発時のソースコード作成を支援するソースコード作成支援プログラム、ソースコード作成支援方法およびソースコード作成支援システムに関する。
【背景技術】
【０００２】
ソフトウェア開発では、新規にリリースしたソフトウェアを版数（バージョン、Ｖｅｒ）の改版の都度、ソースコードの修正等により、機能拡張、仕様変更、不具合の修正等を行っている。このソフトウェア開発では、リグレッション（ｒｅｇｒｅｓｓｉｏｎ）、通称デグレ（デグレード、ｄｅｇｒａｄｅ）と呼ばれる事象が発生する。
【０００３】
デグレードは、新しい版数のソフトウェアの品質を以前より悪化させる。また、以前に修正した不具合やバグが復活したりする。また、新しいファイルを古い内容で更新してしまい、更新内容が失われたりする。
【０００４】
デグレードの原因は複数存在し、例えば、「バージョン管理の失敗によるデグレード」がある。「バージョン管理の失敗によるデグレード」は、例えば、一つのソフトウェアを複数の開発者により開発する状況で、ある開発者１が行った仕様変更１を所定の版数（バージョン１．１）で更新したとする。しかし、他の開発者２が開発者１が行った仕様変更１を考慮せず、他の版数（例えばより以前の版数）のソフトウェアに対する仕様変更２を行った版数（バージョン１．２）は、開発者１の仕様変更１（バージョン１．１）が欠落してしまう。バージョン１．２のソフトウェアでは、「バージョン管理の失敗によるデグレード」が生じる。
【０００５】
デグレードの検出に関連する従来技術として、プログラムをバージョン管理し、解析対象のバージョンのソースコードの修正パターン等に該当するソース差分を取り出し、ディスプレイに表示する技術がある（例えば、下記特許文献１参照。）。また、ソースプログラムのバージョンを管理し、修正情報とソース差分を関連付けて記録し、修正ミスを防止する技術がある（例えば、下記特許文献２参照。）。また、プログラムのバージョン管理を行い、修正部分をキーワード検索し、対象ブロックの修正が修正内容に沿っているかそれ以外か、により後修正を判定する技術がある（例えば、下記特許文献３参照。）。また、ソースをバージョン毎に管理し、削除、追加、修正行数などを算出し、ソフトウェアを品質管理する技術がある（例えば、下記特許文献４参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１９９８００号公報
【特許文献２】特開平９−９７１７１号公報
【特許文献３】特開２００８−２６２３３０号公報
【特許文献４】特開２０１０−１６５０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したデグレードを発見するために、リグレッションテストを行うことが考えられる。しかし、リグレッションテスト実施には費用、時間のコストがかかるため、テストを十分に実施できない場合が生じる。リグレッションテストを実施することなく、より簡単にデグレードの発生を検知できる手段の提供が望まれている。
【０００８】
一つの側面では、デグレードの発生の有無を容易に判断できることを目的とする。
【課題を解決するための手段】
【０００９】
一つの案では、ソースコード作成支援プログラムは、ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視し、前記ファイルの各版数間で前記ソースコードを変更した差分情報をそれぞれ検出する第１処理と、登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が存在するか否かを判断する第２処理と、前記判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力する第３処理と、をコンピュータに実行させることを要件とする。
【発明の効果】
【００１０】
一つの実施形態によれば、デグレードの発生の有無を容易に判断できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態にかかるソースコード作成支援システムのシステム構成例を示す図である。
【図２】図２は、デグレードの発生を説明する図である。
【図３】図３は、実施の形態にかかるデグレードの定義を説明する図である。
【図４】図４は、実施の形態にかかるデグレード検知時のファイル管理例を説明する図である。
【図５】図５は、実施の形態にかかるデグレード検知時の残存率の算出例を説明する図である。
【図６】図６は、実施の形態にかかるサーバのハードウェア構成例を示す図である。
【図７】図７は、実施の形態にかかるデグレード検知に用いるデータベースの内容例を示す図表である。
【図８】図８は、実施の形態にかかるファイル変更状態を説明する図である。
【図９Ａ】図９Ａは、実施の形態にかかるデータベースの変遷例を示す図表である。（その１）
【図９Ｂ】図９Ｂは、実施の形態にかかるデータベースの変遷例を示す図表である。（その２）
【図９Ｃ】図９Ｃは、実施の形態にかかるデータベースの変遷例を示す図表である。（その３）
【図１０】図１０は、実施の形態にかかるサーバのデグレード検知部の処理例を示すフローチャートである。
【図１１】図１１は、実施の形態にかかるデグレード検知部の差分情報の存在チェックを説明する図である。（その１）
【図１２】図１２は、実施の形態にかかるデグレード検知部の残存率の通知例を示す図である。（その１）
【図１３】図１３は、実施の形態にかかるデグレード検知部の差分情報の存在チェックを説明する図である。（その２）
【図１４】図１４は、実施の形態にかかるデグレード検知部の残存率の通知例を示す図である。（その２）
【発明を実施するための形態】
【００１２】
（実施の形態）
実施の形態のソースコード作成支援プログラム、ソースコード作成支援方法およびソースコード作成支援システムは、各種開発を行うソフトウェアのソースコード作成を支援する。
【００１３】
図１は、実施の形態にかかるソースコード作成支援システムのシステム構成例を示す図である。ソースコード作成支援システム１００は、サーバ１０１と、端末１０２とを含む。端末１０２は、ソフトウェアの開発者が操作する端末であり、図示の例では２名の開発者Ａ，Ｂが操作する端末１０２を示している。
【００１４】
サーバ１０１は、バージョン管理システム１１１と、デグレード検知部１１２とを含む。バージョン管理システム１１１は、端末１０２上で作成、編集されるソフトウェア開発対象のファイルに対するファイル操作（取得、登録、変更等、ステップＳａ）の変更履歴を管理するシステムである。バージョン管理システム１１１は、主にソフトウェア開発におけるソースコードの管理に用いられており、例えば、ＣＶＳ（Ｃｏｎｃｕｒｒｅｎｔ  Ｖｅｒｓｉｏｎｓ  Ｓｙｓｔｅｍ）  、Ｓｕｂｖｅｒｓｉｏｎ（登録商標）、Ｇｉｔ等がある。
【００１５】
デグレード検知部１１２は、処理プログラム１２１と、データベース１２２と、を含む。処理プログラム１２１は、デグレード検知にかかる処理プログラムの実行により、バージョン管理システム１１１にアクセスし、端末１０２によるソフトウェアのファイルに対するファイル操作毎に、ファイル内容の変化を監視する（ステップＳｂ）。
【００１６】
処理プログラム１２１は、データベース１２２に、ソフトウェアのファイル操作の履歴テーブルと、ファイル操作毎に変化したファイル内容の差分テーブルとを保持する。そして、処理プログラム１２１は、ファイル内容の変化の監視を行う際、データベース１２２にアクセスし、新規ファイルの登録、登録済みのファイルの検索、更新、削除を行う（ステップＳｃ）。そして、処理プログラム１２１は、ファイル内容の変更（追加、削除）に基づき、デグレードの発生の有無を検知し、検知結果を端末１０２に表示等することで、開発者が登録したファイルに対するデグレードの発生の有無を通知する（ステップＳｄ）。
【００１７】
実施の形態では、ソフトウェアに対するテスト（リグレッションテスト）が十分に実施できない場合でもデグレードが発生する確率を減らすために、デグレード検知部１１２は、デグレードの原因の一つである「バージョン管理の失敗」を検知する。この「バージョン管理の失敗によるデグレード」は、「過去の変更差分が失われること」と定義する。より具体的には、後述するが、デグレード検知部１１２は、新たなバージョンのソフトウェアのファイルが登録される都度、登録する新たなバージョンのファイルに対する一つ前のバージョンのファイルの変更（追加、削除）を変更差分として検知する。そして、デグレード検知部１１２は、新たなバージョンのファイルに対し、過去のそれぞれのバージョンで行った変更差分が存在しているか、存在していないか（（変更差分が失われたか）を検知する。
【００１８】
この際、デグレード検知部１１２は、「過去の変更差分」を、ソースコードの行（レコード）を最小単位として管理する。また、デグレード検知部１１２は、「行単位で管理される過去の変更差分」が失われている度合いを「残存率」として算出し、ソフトウェアの開発者の端末１０２に表示する。これにより、端末１０２を操作する開発者は「残存率」を指標に、ファイル登録した開発中のソフトウェアに対するデグレの発生の程度を容易に把握できるようになる。
【００１９】
次に、図２〜図５を用いて実施の形態にかかるデグレードの検知の概要を説明する。はじめに、図２は、デグレードの発生を説明する図である。図２を用いて上記の「バージョンの失敗によるデグレード」の発生を説明しておく。図の横軸は時間軸である。開発者Ａ、Ｂの２名がソフトウェア開発に携わっていたとする。縦軸は上からソフトウェア開発のイベント、資産管理の仕組み（バージョン管理システム１１１が管理するバージョン（Ｖｅｒ））、開発者Ａ，Ｂが行った開発（ファイル内容の変化）である。
【００２０】
はじめにイベントとして指示１（ソフトウェア開発のファイル作成依頼、ステップＳ１）がある。次に、開発者Ａが指示１に対応して新規ファイル（Ｖｅｒ１）を作成する（ステップＳ２）。そして、開発者Ａはバージョン管理システム１１１にＶｅｒ１の新規作成したファイルＤ１を登録する（ステップＳ３）。バージョン管理システム１１１は、Ｖｅｒ１のファイル（ソフトウェア）をリリースする（ステップＳ４）。
【００２１】
この後、開発したソフトウェアに指示２（仕様変更１）が発生したとする（ステップＳ５）。この指示２（仕様変更１）を開発者Ｂが対応し、開発者Ｂがバージョン管理システム１１１からＶｅｒ１のファイルを取得したとする（ステップＳ６）。そして、開発者Ｂは指示２（仕様変更１）に対応したファイル修正を行いＶｅｒ２のファイルを作成する（ステップＳ７）。そして、開発者Ｂは、バージョン管理システム１１１に対し、Ｖｅｒ２のファイルＤ２を登録する（ステップＳ８）。バージョン管理システム１１１は、Ｖｅｒ２のファイル（ソフトウェア）をリリースする（ステップＳ９）。
【００２２】
この後、開発したソフトウェアに指示３（仕様変更２）が発生したとする（ステップＳ１０）。この指示３（仕様変更２）を開発者Ａが対応し、開発者Ａが自分が端末１０２に保持しているＶｅｒ１のファイルが最新資産と勘違いしたとする（ステップＳ１１）。この場合、開発者Ａは、端末１０２に保持しているＶｅｒ１のファイルに対し、指示３（仕様変更２）に対応したファイル修正を行いＶｅｒ３のファイルＤ３を作成したとする（ステップＳ１２）。そして、開発者Ａは、バージョン管理システム１１１に対し、Ｖｅｒ３のファイルを登録する（ステップＳ１３）。バージョン管理システム１１１は、Ｖｅｒ３のファイル（ソフトウェア）をリリースする（ステップＳ１４）。上記の流れで作成されたＶｅｒ３のファイルでは仕様変更１が欠落したデグレードが発生することになる（ステップＳ１５）。
【００２３】
図３は、実施の形態にかかるデグレードの定義を説明する図である。実施の形態では、「バージョン管理の失敗によるデグレード」は、「過去の変更差分が失われること」と定義する。上述した図２の説明の例で説明すると、Ｖｅｒ１のファイルＤ１は新規作成分の内容である。また、Ｖｅｒ２のファイルＤ２は新規作成分＋仕様変更１の内容である。また、Ｖｅｒ３のファイルＤ３は、新規作成分＋仕様変更２の内容である。ここで、実施の形態では、Ｖｅｒ３の内容として正しくあるべき「仕様変更１」の過去の変更差分ｄ１が失われた状態を、「バージョン管理失敗のデグレード」と定義する。
【００２４】
図４は、実施の形態にかかるデグレード検知時のファイル管理例を説明する図である。デグレード検知部１１２は、「過去の変更差分」を、ソースコードの行を最小単位として管理する。
【００２５】
図４に示すように、デグレード検知部１１２は、Ｖｅｒ１のファイルＤ１とＶｅｒ２のファイルＤ２を対比する。そして、ソースコードを単位とした変更差分として、Ｖｅｒ２ではＶｅｒ１に対し、０２行（レコード）の「登録画面」が削除（「０２行  削除  登録画面」）されていることを検知する。また、０２行の「ユーザ登録画面」が登録（「０２行  登録  ユーザ登録画面」）されていることを検知する。
【００２６】
図５は、実施の形態にかかるデグレード検知時の残存率の算出例を説明する図である。デグレード検知部１１２は、上記変更差分を検知した対象のファイルに対して「行単位で管理される過去の変更差分」が失われている度合いを「残存率」として算出し、ソフトウェアの開発者の端末１０２に表示する。
【００２７】
図５に示すように、Ｖｅｒ１のファイルＤ１〜Ｖｅｒ３のファイルＤ３の作成時には、デグレード検知部１１２は、最新のＶｅｒに対する過去の各Ｖｅｒのそれぞれの内容の変更差分を判断し、それぞれの「残存率」を算出する。
【００２８】
まず、デグレード検知部１１２は、ファイル未作成時の「無」に対し、Ｖｅｒ１のファイルＤ１の変更差分１（ｄ１１）について、０１行の＜ｔｉｔｌｅ＞〜０５行の「ユーザ登録画面です。」の５行のソースコードの残存率を算出する。この場合、デグレード検知部１１２は、最新のＶｅｒ３には、Ｖｅｒ１の変更差分１（ｄ１１）の内容、すなわち、Ｖｅｒ１で登録した５行（レコード）全てのソースコードが残存している（図中〇印）、と判断し、残存率１００％と算出する。
【００２９】
また、デグレード検知部１１２は、Ｖｅｒ１のファイルＤ１に対し、Ｖｅｒ２のファイルＤ２の変更差分２（ｄ１２）として、０２行「登録画面」が削除され、この０２行に「ユーザ登録画面」が登録されていることによる残存率を算出する。この場合、デグレード検知部１１２は、最新のＶｅｒ３には、Ｖｅｒ１の変更差分２（ｄ１２）の削除および登録の２行のソースコードがいずれも残存していない（図中×印）と判断し、残存率０％と算出する。デグレード検知部１１２は、算出した残存率０％に基づき、デグレードの発生であることを開発者の端末１０２に通知する。
【００３０】
また、デグレード検知部１１２は、Ｖｅｒ２のファイルＤ２に対し、Ｖｅｒ３のファイルＤ３の変更差分３（ｄ１３）を検知する。そして、０２行「ユーザ登録画面」が削除され、この０２行に「登録画面」が登録され、０６行が登録され、また、０７行「項目を入力下さい」〜１０行「電話番号」として４行が登録されていることに基づき残存率を算出する。この場合、デグレード検知部１１２は、最新のＶｅｒ３には、Ｖｅｒ２の変更差分３（ｄ１３）の削除および登録の計７行のソースコードがいずれも残存している（図中〇印）と判断し、残存率１００％と算出する。
【００３１】
デグレード検知部１１２は、残存率が０％〜所定値（例えば５０％）の場合、「デグレード発生」のメッセージを開発者の端末１０２に通知する。また、デグレード検知部１１２は、「残存率」のみを開発者の端末１０２に通知し、開発者が残存率に基づくデグレードの発生を判断するようにしてもよい。これにより、端末１０２を操作する開発者は「残存率」を指標に、開発者が行ったソフトウェアのファイル編集に対するデグレードの発生を容易に把握できるようになる。
【００３２】
図６は、実施の形態にかかるサーバのハードウェア構成例を示す図である。図１に示したサーバ１０１は、例えば、図６に示すハードウェアで構成することができる。
【００３３】
例えば、サーバ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０１、メモリ６０２、ネットワークインタフェース（Ｉ／Ｆ）６０３、記録媒体Ｉ／Ｆ６０４、記録媒体６０５、を含む。６００は各部を接続するバスである。
【００３４】
ＣＰＵ６０１は、サーバ１０１全体の制御を司る演算処理装置である。メモリ６０２は、不揮発性メモリおよび揮発性メモリを含む。不揮発性メモリは、例えば、ＣＰＵ６０１のプログラムを格納するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。揮発性メモリは、例えば、ＣＰＵ６０１のワークエリアとして使用されるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。
【００３５】
ネットワークＩ／Ｆ６０３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク６１０に対する通信インタフェースである。サーバ１０１は、ネットワークＩ／Ｆ６０３を介して、外部の端末（図１の開発者の端末１０２等）に通信接続する。
【００３６】
記録媒体Ｉ／Ｆ６０４は、ＣＰＵ６０１が処理した情報を記録媒体６０５との間で読み書きするためのインタフェースである。記録媒体６０５は、メモリ６０２を補助する記録装置であり、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュドライブ等を用いることができる。
【００３７】
メモリ６０２または記録媒体６０５に記録されたプログラムをＣＰＵ６０１が実行することにより、図１に示したバージョン管理システム１１１、およびデグレード検知部１１２それぞれの制御機能を実現する。また、メモリ６０２や記録媒体６０５は、図１に示したデータベース１２２の情報（履歴テーブル、差分テーブル等）を記録保持する。
【００３８】
図６に示したハードウェア構成は、開発者の端末１０２においても同様であり、サーバ１０１と、開発者の端末１０２を含む全体のソースコード作成支援システムの各装置は、汎用のハードウェア構成を用いて実現できる。
【００３９】
図７は、実施の形態にかかるデグレード検知に用いるデータベースの内容例を示す図表である。図１に示したデータベース１２２は、図７（ａ）に示す履歴テーブル７０１と、図７（ｂ）に示す差分テーブル７０２の情報を保持する。
【００４０】
履歴テーブル７０１は、ファイルの変更履歴の情報をテーブル化したものであり、ファイル名、版数、変更者、変更日時、変更理由の各情報を含む。差分テーブル７０２は、ファイルの変更内容の情報をテーブル化したものであり、版数（Ｖｅｒ）毎のファイル名、版数、行数、差分区分、差分内容の各情報を含む。ファイル名は、開発者が変更を行う開発対象のソフトウェアのファイル名、版数は上記Ｖｅｒ、変更者は開発者の名前、変更日時はファイル変更を行った日時、変更理由は開発者がファイル変更を行った理由である。また、行数は変更を行ったファイル内のソースコードの行、差分区分はファイル変更の属性、例えば、追加（〇印）、削除（×印）である。差分内容は追加または削除した内容（図の例では、ユーザ登録画面上の表示内容）である。
【００４１】
（デグレード検知の具体例）
図８は、実施の形態にかかるファイル変更状態を説明する図である。次に、ファイル変更時のデグレード検知の具体例について説明する。具体的処理として、開発者Ａ，Ｂが「ユーザ登録画面．ｈｔｍｌ」のファイルに対するファイル修正を行う例を説明する。
【００４２】
図８の横軸はファイル「ユーザ登録画面．ｈｔｍｌ」に対して行った版数（Ｖｅｒ）であり、縦軸はファイル「ユーザ登録画面．ｈｔｍｌ」のソースコードの各行の内容（太字は変更内容）を示す。縦軸の下段にはファイル「ユーザ登録画面．ｈｔｍｌ」を変更した開発者Ａ，Ｂと、開発者Ａ，Ｂに対しファイル変更を指示する顧客の指示内容（図７（ａ）の変更理由に相当）を図示してある。
【００４３】
ファイル「無」のＶｅｒ０に対し、まず、顧客の指示１「ユーザ登録画面を作って」との要求に対し、開発者Ａが「ユーザ登録画面．ｈｔｍｌ」というＶｅｒ１のファイルＤ１を新規作成する。ファイルＤ１は、ソースコードの０１行の＜ｔｉｔｌｅ＞、０２行の「登録画面」、０３行の＜／ｔｉｔｌｅ＞、０４行の「ようこそ。」、０５行の「ユーザ登録画面です。」の内容が追加されている。
【００４４】
次に、顧客の指示２「タイトル修正して」との要求に対し、開発者Ｂが「ユーザ登録画面．ｈｔｍｌ」のファイルを修正してＶｅｒ２のファイルＤ２を作成する。ファイルＤ２は、ソースコードの０２行を「ユーザ登録画面」と内容を変更している。
【００４５】
次に、顧客の指示３「氏名、住所、電話番号を入力」との要求に対し、開発者Ａが「ユーザ登録画面．ｈｔｍｌ」のファイルを修正してＶｅｒ３のファイルＤ３を作成する。ファイルＤ３は、ソースコードの０２行を「登録画面」と内容を変更している。また、０７行の「項目を入力下さい」、０８行の「□氏名」、０９行の「□住所」、１０行の「□電話番号」の内容が追加されている。
【００４６】
デグレード検知部１１２は、各開発者Ａ，Ｂが修正後の各Ｖｅｒのファイルをバージョン管理システム１１１に登録する際（図中タイミングｔ１，ｔ２、ｔ３）、デグレード検知にかかる処理をそれぞれ実行する。なお、図８の例では、版数Ｖｅｒ３のファイルをバージョン管理システム１１１に登録する際（図中ｔ３）、顧客の指示２「タイトル修正して」の内容（Ｖｅｒ２の０２行「ユーザ登録画面」の削除、およびＶｅｒ３「登録画面」の登録）に対してデグレーションが発生している。
【００４７】
図９Ａ〜図９Ｃは、実施の形態にかかるデータベースの変遷例を示す図表である。図８に示したファイル変更の具体例に対応して、図７に示した履歴テーブル７０１および差分テーブル７０２の変化状態を示す。
【００４８】
図９Ａには、Ｖｅｒ１のファイルＤ１が登録された直後のテーブル状態を示す。図９Ａ（ａ）は履歴テーブル７０１の内容を示し、ファイルＤ１のファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ１」、変更者「開発者Ａ」、変更日時「１２月１０日」、変更理由「指示１」である。
【００４９】
また。図９Ａ（ｂ）は差分テーブル７０２の内容を示し、ファイルＤ１の内容に対応する計５行が登録されている。１行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ１」、行数「０１」、差分区分「〇追加」、差分内容＜ｔｉｔｌｅ＞である。２行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ１」、行数「０２」、差分区分「〇追加」、差分内容「登録画面」である。３行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ１」、行数「０３」、差分区分「〇追加」、差分内容＜／ｔｉｔｌｅ＞である。４行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ１」、行数「０４」、差分区分「〇追加」、差分内容「ようこそ。」である。５行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ１」、行数「０５」、差分区分「〇追加」、差分内容「ユーザ登録画面です。」である。
【００５０】
図９Ｂには、Ｖｅｒ２のファイルＤ２が登録された直後のテーブル状態を示す。図９Ｂ（ａ）の履歴テーブル７０１では、Ｖｅｒ１の各情報がそのまま保持されているのに加えて、ファイルＤ２で変更された情報が１行追加されている。追加分は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ２」、変更者「開発者Ｂ」、変更日時「１２月１１日」、変更理由「指示２」である。
【００５１】
また。図９Ｂ（ｂ）は差分テーブル７０２の内容を示し、Ｖｅｒ１のファイルＤ１の各情報がそのまま５行分保持されているのに加えて、ファイルＤ２での変更に対応する計２行が追加登録されている。追加分の６行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ２」、行数「０２」、差分区分「×削除」、差分内容「登録画面」である。７行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ２」、行数「０２」、差分区分「〇追加」、差分内容は「ユーザ登録画面」である。
【００５２】
図９Ｃには、Ｖｅｒ３のファイルＤ３が登録された直後のテーブル状態を示す。図９Ｃ（ａ）の履歴テーブル７０１では、Ｖｅｒ１，Ｖｅｒ２の各情報がそのまま保持されているのに加えて、ファイルＤ３で変更された情報が１行追加されている。追加分は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、変更者「開発者Ａ」、変更日時「１２月１２日」、変更理由「指示３」である。
【００５３】
また。図９Ｃ（ｂ）は差分テーブル７０２の内容を示し、Ｖｅｒ１，Ｖｅｒ２のファイルＤ１，Ｄ２の各情報がそのまま７行分保持されているのに加えて、ファイルＤ３での変更に対応する計７行が追加登録されている。追加分の８行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、行数「０２」、差分区分「×削除」、差分内容「ユーザ登録画面」である。９行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、行数「０２」、差分区分「〇追加」、差分内容は「登録画面」である。１０行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、行数「０６」、差分区分「〇追加」、差分内容「（空白）」である。１１行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、行数「０７」、差分区分「〇追加」、差分内容「項目を入力下さい」である。１２行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、行数「０８」、差分区分「〇追加」、差分内容「□氏名」である。１３行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、行数「０９」、差分区分「〇追加」、差分内容「□住所」である。１４行目は、ファイル名「ユーザ登録画面．ｈｔｍｌ」、版数「Ｖｅｒ３」、行数「１０」、差分区分「〇追加」、差分内容「□電話番号」である。
【００５４】
図１０は、実施の形態にかかるサーバのデグレード検知部の処理例を示すフローチャートである。図１に示したサーバ１０１のデグレード検知部１１２（ＣＰＵ６０１）が実行する処理を順に説明する。
【００５５】
デグレード検知部１１２は、バージョン管理システム１１１上の状態変更、例えば、開発者Ａ，Ｂによるファイル登録を監視しており、ファイル登録毎に、以下の処理を実行開始する。
【００５６】
はじめに、デグレード検知部１１２は、登録するファイルの変更履歴の情報（図７（ａ）参照）を履歴テーブル７０１に登録する（ステップＳ１００１）。次に、デグレード検知部１１２は、登録する版数（Ｖｅｒ）が初版（Ｖｅｒ１）であるか否かを判断する（ステップＳ１００２）。版数がＶｅｒ１であれば（ステップＳ１００２：Ｙｅｓ）、ステップＳ１００３の処理を行い、処理を終了する。一方、半数がＶｅｒ１以外であれば（ステップＳ１００２：Ｎｏ）、ステップＳ１００４以降の処理に移行する。
【００５７】
ステップＳ１００３では、デグレード検知部１１２は、登録するファイルの変更内容の情報（図７（ｂ）参照）を差分テーブル７０２に登録する（ステップＳ１００３）。この際、デグレード検知部１１２は、差分テーブル７０２には登録済みの変更内容の情報に、各Ｖｅｒの変更内容の情報全てを追加する形で登録する（図９Ａ（ｂ）〜図９Ｃ（ｂ）参照）。
【００５８】
ステップＳ１００４では、デグレード検知部１１２は、登録する版数（Ｖｅｒ）と、前回登録した版数（版数−１）とを比較する処理を実施する（ステップＳ１００４）。例えば、登録した版数がＶｅｒ２であれば、版数Ｖｅｒ２を前回の版数Ｖｅｒ１と比較して、ステップＳ１００５以降の処理を実施する。
【００５９】
ステップＳ１００５では、デグレード検知部１１２は、登録した版数と、前回登録した版数（版数−１）のファイルの比較結果を差分テーブル７０２に登録する（ステップＳ１００５）。この際、デグレード検知部１１２は、変数（版数、Ｖｅｒ）ｉ＝１に設定しておく（ステップＳ１００６）。
【００６０】
次に、デグレード検知部１１２は、ｉ≦登録する版数−１の間、以降の処理（ステップＳ１００８ａ〜ステップＳ１０１１）を繰り返す処理を実施する（ステップＳ１００７ａ）。すなわち、Ｖｅｒ２の登録時にはＶｅｒ１〜Ｖｅｒ１の１回だけ処理を行い、Ｖｅｒ３の登録時には、Ｖｅｒ１〜Ｖｅｒ２の間の２回の処理を行う。
【００６１】
次に、デグレード検知部１１２は、版数ｉの差分情報の個数（行数）だけ以降の処理（ステップＳ１００９）を繰り返す処理を実施する（ステップＳ１００８ａ）。すなわち、各Ｖｅｒが有する差分情報の行数（レコード数）の数だけ繰り返す。ステップＳ１００９では、版数ｉの差分情報（１行分）が登録する版数に存在するかチェックする（ステップＳ１００９）。このステップＳ１００９では、デグレード検知部１１２は、差分情報の区分が「〇追加」の場合は、今から登録する版数に該当行がそのまま存在すれば、「存在する」と判断する。一方、差分情報の区分が「×削除」の場合は、今から登録する版数に該当行が存在しなければ、「存在する」と判断する。
【００６２】
そして、版数ｉの差分情報の個数（行数）だけステップＳ１００９の処理を繰り返すと（ステップＳ１００８ｂ）、デグレード検知部１１２は、ステップＳ１０１０の処理に移行する。
【００６３】
ステップＳ１０１０では、デグレード検知部１１２は、版数ｉの残存率を計算する（ステップＳ１０１０）。例えば、残存率は、ステップＳ１００９で残存した個数／版数ｉの差分情報の個数、により求める。
【００６４】
次に、デグレード検知部１１２は、計算により求めた版数ｉの残存率を通知（表示）する（ステップＳ１０１１）。例えば、デグレード検知部１１２は、開発者の端末１０２に版数ｉの残存率を表示出力する。この後、デグレード検知部１１２は、ｉ≦登録する版数−１の処理を繰り返すと（ステップＳ１００７ｂ）、以上の処理を終了する。
【００６５】
上記の図１０に示したデグレード検知部１１２が行うデグレード検知の処理内容を上記ファイル変更の具体例（図８，図９Ａ〜図９Ｃ）に適用して説明する。
【００６６】
（Ｖｅｒ１のファイルＤ１登録時）
まず、Ｖｅｒ１のファイルＤ１の登録時の各処理を説明する。Ｖｅｒ１のファイルＤ１登録時、ステップＳ１００１の処理では、デグレード検知部１１２は、履歴テーブル７０１には図９Ａ（ａ）に示すＶｅｒ１のファイル変更履歴の情報（Ｖｅｒ１のため全て新規情報）を登録する。ステップＳ１００２では、Ｙｅｓ側に分岐し、ステップＳ１００３の処理では、デグレード検知部１１２は、差分テーブル７０２には図９Ａ（ｂ）に示すファイルの変更内容の情報（Ｖｅｒ１のため全て新規情報）を登録する。デグレード検知部１１２は、このＶｅｒ１のファイルＤ１の登録時には、残存率の算出および通知（表示）は行わない。
【００６７】
（Ｖｅｒ２のファイルＤ２登録時）
次に、Ｖｅｒ２のファイルＤ２の登録時の各処理を説明する。Ｖｅｒ２のファイルＤ２登録時、ステップＳ１００１の処理では、デグレード検知部１１２は、履歴テーブル７０１には図９Ｂ（ａ）に示すＶｅｒ２のファイル変更履歴の情報を追加登録する。ステップＳ１００２では、Ｎｏ側に分岐し、ステップＳ１００４の処理では、デグレード検知部１１２は、Ｖｅｒ２とＶｅｒ１のファイルを比較する。ステップＳ１００５の処理では、デグレード検知部１１２は、差分テーブル７０２に図９Ｂ（ｂ）の下２行（０６行、０７行）に示すＶｅｒ２のファイルの変更内容の情報を追加登録する。
【００６８】
ステップＳ１００７ａ〜１００７ｂのループ処理では、デグレード検知部１１２は、版数がＶｅｒ１〜Ｖｅｒ１の間、すなわち１回だけ処理を行う。ステップＳ１００８ａ〜１００８ｂのループ処理では、デグレード検知部１１２は、版数Ｖｅｒ１の差分情報は５レコード登録されているので処理を５回繰り返す。この際、ステップＳ１００９では、デグレード検知部１１２は、差分テーブル７０２に登録された版数Ｖｅｒ１の各レコード（０１行〜０５行）の差分情報がＶｅｒ２に存在するか否かをチェックする。
【００６９】
図１１は、実施の形態にかかるデグレード検知部の差分情報の存在チェックを説明する図である。ステップＳ１００９の処理では、デグレード検知部１１２は、差分テーブル７０２に登録された版数Ｖｅｒ１の各レコード（０１行〜０５行）の差分情報がＶｅｒ２に存在するか否かをチェックする。図１１の例では、デグレード検知部１１２は、Ｖｅｒ１の０１行目で追加された内容＜ｔｉｔｌｅ＞はＶｅｒ２に「存在する」と判断する。また、Ｖｅｒ１の０２行目で追加された内容「登録画面」はＶｅｒ２で「ユーザ登録画面」に変更されているため、「存在しない」と判断する。Ｖｅｒ１の０３行目で追加された内容＜／ｔｉｔｌｅ＞はＶｅｒ２に「存在する」と判断する。Ｖｅｒ１の０４行目で追加された内容「ようこそ。」はＶｅｒ２に「存在する」と判断する。Ｖｅｒ１の０５行目で追加された内容「ユーザ登録画面です。」はＶｅｒ２に「存在する」と判断する。
【００７０】
この後、ステップＳ１０１０では、デグレード検知部１１２は、ステップＳ１００９の処理に基づき、版数Ｖｅｒ１の残存率が４個／５個＝８０％を算出する。ステップＳ１０１１では、デグレード検知部１１２は、版数Ｖｅｒ１の残存率を通知する。
【００７１】
図１２は、実施の形態にかかるデグレード検知部の残存率の通知例を示す図である。ステップＳ１０１１で算出したＶｅｒ１の残存率（８０％）は、図１２に示す通知画面１２００として端末１０２（例えば、Ｖｅｒ２のファイルＤ２を登録した開発者Ｂの端末）に通知する。
【００７２】
通知画面１２００は、例えば、「デグレ（デグレード）チェック結果の通知」の表示と、ファイル名「ユーザ登録画面．ｈｔｍｌ」、最新Ｖｅｒ「Ｖｅｒ２」を表示する。また、「最新Ｖｅｒが登録されたタイミングで過去修正の残存率は下記となりました。」との表示と、「Ｖｅｒ１：８０％」と表示する。また、開発者に対して残存率の定義を説明するため、「残存率は過去の変更が残っている割合です。０％の場合、過去の変更が全て失われている状態です。デグレ（デグレード）の可能性が高いので確認して下さい。」等と補足説明を表示してもよい。
【００７３】
（Ｖｅｒ３のファイルＤ３登録時）
次に、Ｖｅｒ３のファイルＤ３の登録時の各処理を説明する。Ｖｅｒ３のファイルＤ３登録時、ステップＳ１００１の処理では、デグレード検知部１１２は、履歴テーブル７０１には図９Ｃ（ａ）に示すＶｅｒ３のファイル変更履歴の情報を追加登録する。ステップＳ１００２では、Ｎｏ側に分岐し、ステップＳ１００４の処理では、デグレード検知部１１２は、Ｖｅｒ３とＶｅｒ２のファイルを比較する。ステップＳ１００５の処理では、デグレード検知部１１２は、差分テーブル７０２に図９Ｃ（ｂ）の下７行（０８行〜１４行）に示すＶｅｒ３のファイルの変更内容の情報を追加登録する。
【００７４】
ステップＳ１００７ａ〜１００７ｂのループ処理では、デグレード検知部１１２は、版数がＶｅｒ１〜Ｖｅｒ２の間、すなわち２回のループ処理を行う。ステップＳ１００８ａ〜１００８ｂの１回目のループ処理では、デグレード検知部１１２は、版数Ｖｅｒ１の差分情報は５レコード登録されているので処理を５回繰り返す。この際、ステップＳ１００９では、デグレード検知部１１２は、差分テーブル７０２に登録された版数Ｖｅｒ１の各レコード（０１行〜０５行）の差分情報がＶｅｒ３に存在するか否かをチェックする。
【００７５】
ステップＳ１００８ａ〜１００８ｂの２回目のループ処理では、デグレード検知部１１２は、版数Ｖｅｒ２の差分情報は２レコード登録されているので処理を２回繰り返す。この際、ステップＳ１００９では、デグレード検知部１１２は、差分テーブル７０２に登録された版数Ｖｅｒ２の各レコード（０２行）の差分情報がＶｅｒ３に存在するか否かをチェックする。
【００７６】
図１３は、実施の形態にかかるデグレード検知部の差分情報の存在チェックを説明する図である。図１３（ａ）に示すステップＳ１００９の１回目の処理では、デグレード検知部１１２は、差分テーブル７０２に登録された版数Ｖｅｒ１の各レコード（０１行〜０５行）の差分情報がＶｅｒ３に存在するか否かをチェックする。図１３（ａ）の例では、デグレード検知部１１２は、Ｖｅｒ１の０１行目〜０５行目で追加された内容は全てＶｅｒ３に「存在する」と判断する。
【００７７】
図１３（ｂ）に示すステップＳ１００９の２回目の処理では、デグレード検知部１１２は、差分テーブル７０２に登録された版数Ｖｅｒ２の各レコード（０２行）の差分情報がＶｅｒ３に存在するか否かをチェックする。図１３（ｂ）の例では、デグレード検知部１１２は、Ｖｅｒ２の０２行目で削除した「登録画面」の情報がＶｅｒ３に「存在しない」と判断する。また、Ｖｅｒ２の０２行目で追加した「ユーザ登録画面」の情報がＶｅｒ３に「存在しない」と判断する。
【００７８】
この後、ステップＳ１０１０では、デグレード検知部１１２は、ステップＳ１００９の処理に基づき、版数Ｖｅｒ１の残存率が５個／５個＝１００％と、版数Ｖｅｒ２の残存率が０個／２個＝０％を算出する。ステップＳ１０１１では、デグレード検知部１１２は、版数Ｖｅｒ１とＶｅｒ２の残存率を通知する。
【００７９】
図１４は、実施の形態にかかるデグレード検知部の残存率の通知例を示す図である。ステップＳ１０１１で算出したＶｅｒ１の残存率（１００％）とＶｅｒ２の残存率（０％）は、図１４に示す通知画面１２００として端末１０２（例えば、Ｖｅｒ３のファイルＤ３を登録した開発者Ａの端末）に通知する。通知画面１２００は、例えば、「デグレ（デグレード）チェック結果の通知」の表示と、ファイル名「ユーザ登録画面．ｈｔｍｌ」、最新Ｖｅｒ「Ｖｅｒ３」を表示する。また、「最新Ｖｅｒが登録されたタイミングで過去修正の残存率は下記となりました。」との表示と、「Ｖｅｒ１：１００％、Ｖｅｒ２：０％」と表示する。また、残存率の定義の説明文（図１２同様）の補足説明を表示してもよい。
【００８０】
図１４の例では、Ｖｅｒ２の残存率（０％）は、Ｖｅｒ２で行った対応がＶｅｒ３の変更では一切残っていないことを示すことになる。これにより、Ｖｅｒ３のファイルＤ３を登録した開発者Ａは、デグレードが生じていると判断することができるようになる。
【００８１】
以上説明した実施の形態によれば、デグレード検知部は、ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視する。そして、ファイルの各版数間でソースコードを変更した差分情報をそれぞれ検出する第１処理と、登録されるファイルに、過去の版数のファイルそれぞれの差分情報が存在するか否かを判断する第２処理と、判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力する第３処理と、を実行する。これにより、デグレーション発生の原因を、版数管理によって簡単かつ容易に検知でき、ソフトウェア開発時のソースコード作成を支援できる。また、必要以上のデグレード対策、例えば、リグレッションテスト等の実施を不要にでき、デグレード対策にかかる費用及び手間を削減できる。
【００８２】
また、第２処理は、登録されるファイルに、過去の版数のファイルそれぞれの差分情報が残存している残存率を求め、第３処理は、情報として残存率を出力してもよい。これにより、デグレードの発生の程度を残存率の指標を用いて通知でき、通知に基づきソフトウェアの開発者はデグレードの発生の程度を容易に把握できるようになる。
【００８３】
また、第３処理は、残存率が予め定めた所定値以下の場合、デグレードの発生である旨を出力してもよい。これにより、ソフトウェアの開発者はデグレードの発生の有無を容易に把握できるようになる。
【００８４】
また、第１処理は、版数毎の各ファイルが登録される都度、ファイルのソースコードの変更差分を、ソースコードの行単位で差分テーブルに追加登録する。そして、差分テーブルを参照して、ファイルの各版数間でソースコードの行単位で差分情報をそれぞれ検出することとしてもよい。これにより、新たな版数のファイルが登録される都度、デグレード検知を行うことができるようになる。また、デグレード検知時に、迅速にデグレード対策を施せるようになる。
【００８５】
また、第３処理は、判断結果を最新の版数のファイルを登録した開発者の端末に出力することとしてもよい。これにより、ソフトウェア開発を行ったファイルを登録する開発者に対し、今回登録したファイルでのデグレードの発生状態を通知でき、迅速にデグレード対策を施せるようになる。
【００８６】
また、第１処理は、ソフトウェア開発時に作成された各版数の各ファイルがソフトウェアのバージョン管理システムに登録される都度、実行させてもよい。バージョン管理システムが管理するソフトウェアのファイルのデグレーション発生の原因を、版数管理により容易に検知できる。
【００８７】
なお、本実施の形態で説明したソースコード作成支援にかかる方法は、予め用意された制御プログラムを対象機器（サーバ）のコンピュータ（ＣＰＵ等）が実行することにより実現することができる。本制御プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【００８８】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００８９】
（付記１）ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視し、前記ファイルの各版数間で前記ソースコードを変更した差分情報をそれぞれ検出する第１処理と、
登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が存在するか否かを判断する第２処理と、
前記判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力する第３処理と、
をコンピュータに実行させることを特徴とするソースコード作成支援プログラム。
【００９０】
（付記２）前記第２処理は、登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が残存している残存率を求め、
前記第３処理は、前記情報として前記残存率を出力する、
ことを特徴とする付記１に記載のソースコード作成支援プログラム。
【００９１】
（付記３）前記第３処理は、前記残存率が所定値以下の場合、デグレードの発生である旨を出力する、
ことを特徴とする付記２に記載のソースコード作成支援プログラム。
【００９２】
（付記４）前記第１処理は、版数毎の各ファイルが登録される都度、当該ファイルの前記ソースコードの変更差分を、前記ソースコードの行単位で差分テーブルに追加登録し、
前記差分テーブルを参照して、前記ファイルの各版数間で前記ソースコードの行単位で前記差分情報をそれぞれ検出する、
ことを特徴とする付記１〜３のいずれか一つに記載のソースコード作成支援プログラム。
【００９３】
（付記５）前記第３処理は、判断結果を最新の版数のファイルを登録した開発者の端末に出力する、
ことを特徴とする付記１〜４のいずれか一つに記載のソースコード作成支援プログラム。
【００９４】
（付記６）前記第１処理は、ソフトウェア開発時に作成された各版数の各ファイルが前記ソフトウェアのバージョン管理システムに登録される都度、実行させることを特徴とする付記１〜５のいずれか一つに記載のソースコード作成支援プログラム。
【００９５】
（付記７）ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視し、前記ファイルの各版数間で前記ソースコードを変更した差分情報をそれぞれ検出する第１処理と、
登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が存在するか否かを判断する第２処理と、
前記判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力する第３処理と、
をコンピュータが実行することを特徴とするソースコード作成支援方法。
【００９６】
（付記８）ソフトウェア開発者が操作する端末と、前記端末に接続されたサーバとを含むソースコード作成支援システムにおいて、
前記サーバは、
前記端末の操作により、ソフトウェア開発時の版数毎に登録される各ファイルのソースコードを監視し、前記ファイルの各版数間で前記ソースコードを変更した差分情報をそれぞれ検出し、
登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が存在するか否かを判断し、
前記判断の結果に基づいて、デグレードが発生しているか否かに関する情報を出力するデグレード検知部、
を備えたことを特徴とするソースコード作成支援システム。
【００９７】
（付記９）前記サーバの前記デグレード検知部は、
登録される前記ファイルに、過去の版数のファイルそれぞれの前記差分情報が残存している残存率を求め、前記残存率を前記端末に通知する、
ことを特徴とする付記８に記載のソースコード作成支援システム。
【符号の説明】
【００９８】
１００  ソースコード作成支援システム
１０１  サーバ
１０２  端末
１１１  バージョン管理システム
１１２  デグレード検知部
１２１  処理プログラム
１２２  データベース
６０１  ＣＰＵ
６０２  メモリ
６０３  ネットワークＩ／Ｆ
６０５  記録媒体
６１０  ネットワーク
７０１  履歴テーブル
７０２  差分テーブル
１２００  通知画面
Ｄ１，Ｄ２，Ｄ３  ファイル
【図１】
2020160784.tif 000003
【図２】
2020160784.tif 000004
【図３】
2020160784.tif 000005
【図４】
2020160784.tif 000006
【図５】
2020160784.tif 000007
【図６】
2020160784.tif 000008
【図７】
2020160784.tif 000009
【図８】
2020160784.tif 000010
【図９Ａ】
2020160784.tif 000011
【図９Ｂ】
2020160784.tif 000012
【図９Ｃ】
2020160784.tif 000013
【図１０】
2020160784.tif 000014
【図１１】
2020160784.tif 000015
【図１２】
2020160784.tif 000016
【図１３】
2020160784.tif 000017
【図１４】
2020160784.tif 000018