修正前のソースコードと修正後のソースコードとを比較して差分を抽出する差分抽出部と、前記差分抽出部により抽出された前記差分を、ソースコードに使用可能な構成要素ごとに分割し、当該分割した後の差分である分割差分と前記構成要素とを対応付けた構文解析結果を生成する構文解析部と、前記構文解析結果に含まれる前記分割差分と前記構成要素との組に対応付けて機能区分を設定することで機能解析結果を生成する機能解析部と、前記機能解析結果に含まれる前記分割差分および前記機能区分を用いて、修正前のソースコードと修正後のソースコードとの比較結果を出力する出力部と、を備え、前記機能解析部は、前記構文解析結果に含まれる前記構成要素が、過去にソースコードを比較した結果に基づいて蓄積された修正履歴に存在する場合に、当該構成要素に対応付けて前記修正履歴に設定されている前記機能区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に設定する、ことを特徴とするソースコード比較装置。前記機能解析部は、前記構文解析結果に含まれる前記構成要素が前記修正履歴に存在しない場合に、前記修正履歴に存在しないことを示す区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に仮設定するとともに、前記仮設定した前記機能区分に対する入力をユーザに促す、ことを特徴とする請求項1記載のソースコード比較装置。前記機能解析部は、前記仮設定した前記機能区分に対する入力をユーザから受け付けた場合に、前記仮設定した前記機能区分を、入力された前記機能区分に変更することで、前記機能解析結果を更新する、ことを特徴とする請求項2記載のソースコード比較装置。前記修正履歴を参照し、前記機能区分ごとに、前記構成要素が当該機能区分に属する前記構成要素として修正される割合を算出し、当該割合が所定の閾値以上となる前記構成要素が、前記機能解析結果の当該機能区分に対応する前記構成要素として設定されていない場合に、修正が妥当ではない旨をユーザに通知する妥当性検査部を、さらに備えることを特徴とする請求項1~3のいずれか1項に記載のソースコード比較装置。前記機能解析部により生成される前記機能解析結果を、前記修正履歴として記憶装置に記憶させる修正履歴登録部を、さらに備えることを特徴とする請求項1~4のいずれか1項に記載のソースコード比較装置。前記機能解析部により生成される前記機能解析結果を、前記修正履歴として修正後のソースコードに組み込む修正履歴組込部を、さらに備えることを特徴とする請求項1~4のいずれか1項に記載のソースコード比較装置。修正前のソースコードと修正後のソースコードとを比較して差分を抽出する差分抽出ステップと、前記差分抽出ステップにおいて抽出された前記差分を、ソースコードに使用可能な構成要素ごとに分割し、当該分割した後の差分である分割差分と前記構成要素とを対応付けた構文解析結果を生成する構文解析ステップと、前記構文解析結果に含まれる前記分割差分と前記構成要素との組に対応付けて機能区分を設定することで機能解析結果を生成する機能解析ステップと、前記機能解析結果に含まれる前記分割差分および前記機能区分を用いて、修正前のソースコードと修正後のソースコードとの比較結果を出力する出力ステップと、を含み、前記機能解析ステップは、前記構文解析結果に含まれる前記構成要素が、過去にソースコードを比較した結果に基づいて蓄積された修正履歴に存在する場合に、当該構成要素に対応付けて前記修正履歴に設定されている前記機能区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に設定する、ことを特徴とするソースコード比較方法。請求項7に記載の各ステップをコンピュータに実行させるためのソースコード比較プログラム。特許文献1のように、構文解析結果を用いるだけでは、変数名や関数名よりも上位階層となるモジュールやファイル等との対応付けには不十分である。また、特許文献2では、プログラムやモジュール等の階層構造を、予め定義して登録しておく必要があるが、例えば、設計情報が入手できない場合や、追加時の登録漏れ等が考えられ、管理するのに困難を要する。本発明は、上述した課題を解決するためになされたものであり、修正箇所と機能との対応付けを正確かつ簡易に行うことができるソースコード比較装置、ソースコード比較方法およびソースコード比較プログラムを提供することを目的の一例とする。本発明の一側面であるソースコード比較装置は、修正前のソースコードと修正後のソースコードとを比較して差分を抽出する差分抽出部と、前記差分抽出部により抽出された前記差分を、ソースコードに使用可能な構成要素ごとに分割し、当該分割した後の差分である分割差分と前記構成要素とを対応付けた構文解析結果を生成する構文解析部と、前記構文解析結果に含まれる前記分割差分と前記構成要素との組に対応付けて機能区分を設定することで機能解析結果を生成する機能解析部と、前記機能解析結果に含まれる前記分割差分および前記機能区分を用いて、修正前のソースコードと修正後のソースコードとの比較結果を出力する出力部と、を備え、前記機能解析部は、前記構文解析結果に含まれる前記構成要素が、過去にソースコードを比較した結果に基づいて蓄積された修正履歴に存在する場合に、当該構成要素に対応付けて前記修正履歴に設定されている前記機能区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に設定する。本発明の一側面であるソースコード比較方法は、修正前のソースコードと修正後のソースコードとを比較して差分を抽出する差分抽出ステップと、前記差分抽出ステップにおいて抽出された前記差分を、ソースコードに使用可能な構成要素ごとに分割し、当該分割した後の差分である分割差分と前記構成要素とを対応付けた構文解析結果を生成する構文解析ステップと、前記構文解析結果に含まれる前記分割差分と前記構成要素との組に対応付けて機能区分を設定することで機能解析結果を生成する機能解析ステップと、前記機能解析結果に含まれる前記分割差分および前記機能区分を用いて、修正前のソースコードと修正後のソースコードとの比較結果を出力する出力ステップと、を含み、前記機能解析ステップは、前記構文解析結果に含まれる前記構成要素が、過去にソースコードを比較した結果に基づいて蓄積された修正履歴に存在する場合に、当該構成要素に対応付けて前記修正履歴に設定されている前記機能区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に設定する。本発明の一側面であるソースコード比較プログラムは、上記ソースコード比較方法に含まれる各ステップをコンピュータに実行させる。本発明によれば、修正箇所と機能との対応付けを正確かつ簡易に行うことができる。以下、添付図面を参照して、本発明に係るソースコード比較装置、ソースコード比較方法およびソースコード比較プログラムの好適な実施形態について説明する。まず、図1を参照して、実施形態におけるソースコード比較装置の機能構成について説明する。ソースコード比較装置1は、機能的には、例えば、差分抽出部11と、構文解析部12と、機能解析部13と、修正履歴登録部14と、比較結果出力部15と、を有する。ここで、ソースコード比較装置1は、物理的には、例えば、CPUCentralProcessingUnitと、メモリと、入出力インターフェースとを含んで構成される。メモリには、例えば、CPUで処理されるプログラムおよびデータを記憶するROMReadOnlyMemoryやHDDHardDiskDrive、主として制御処理のための各種作業領域として使用されるRAMRandomAccessMemory等の要素が含まれる。これらの要素は、互いにバスを介して接続されている。CPUが、ROMに記憶されたプログラムを実行し、入出力インターフェースを介して受信されるソースコートやメッセージ、RAMに展開されるデータ等を処理することで、ソースコード比較装置1における各部の機能を実現することができる。差分抽出部11は、修正前のソースコードと修正後のソースコードとを比較して差分を抽出する。ソースコードを比較する手法として、一般的なテキスト比較処理を用いることができる。差分抽出部11は、ソースコードのテキスト同士を比較していくことで、修正前のソースコードと修正後のソースコードとの差分を列挙する。構文解析部12は、差分抽出部11により抽出された差分から、修正対象となった構成要素を列挙し、構文解析結果を生成する。構成要素は、ソースコードに使用可能な構成要素であり、例えば、変数、関数、構造体等が該当する。図2に、構文解析結果の一例を示す。図2の構文解析結果は、ソースコードの差分として、差分1、差分2、差分3が抽出され、差分1には構成要素として関数1が含まれ、差分2には構成要素として変数1および構造体1が含まれ、差分3には構成要素として関数2が含まれていることを示している。構文解析部12は、複数の構成要素を含む差分が存在する場合に、その差分を構成要素ごとに分割し、構文解析結果を更新する。これは、ソースコード上で隣り合って記述されている複数の構成要素が修正された場合には、複数の構成要素を含む差分が、ひとまとまりの差分として抽出されることを考慮したものであり、このような場合に、構成要素ごとに差分を分割することとしたものである。図3に、分割後の構文解析結果の一例を示す。図3の構文解析結果は、図2の差分2が複数の構成要素変数1および構造体1を含んでいるため、この差分2を、構成要素変数1に対応する差分2aと、構成要素構造体1に対応する差分2bと、に分割したことを示している。機能解析部13は、修正履歴テーブル31を参照し、構文解析結果に含まれる構成要素に対応する機能区分を決定し、機能解析結果を生成する。図4を参照して、修正履歴テーブル31のデータ構成について説明する。修正履歴テーブル31は、データ項目として、例えば、履歴番号項目と、構成要素項目と、機能区分項目とを有する。履歴番号項目は、修正前後のソースコードを比較するごとにインクリメントされる識別番号を格納する。構成要素項目は、修正対象となった構成要素を一意に特定するための識別情報を格納する。機能区分項目は、構成要素が属する機能を一意に特定するための識別情報を格納する。機能区分は、一または複数の構成要素により実現される機能を識別可能なように、ユーザが任意に設定することができる。図4の修正履歴テーブルは、あるソースコードについて、1回目の修正前後の比較では、機能区分機能1に属する構成要素関数1および変数1が修正されたことを示し、2回目の修正前後の比較では、機能区分機能2に属する構成要素構造体1が修正されたことを示す。機能解析部13は、構文解析結果に含まれる構成要素が、修正履歴テーブル31に存在する場合には、その構成要素と対応付けて修正履歴テーブル31に記憶されている機能区分を、その構成要素に対応する機能解析結果の機能区分に設定する。機能解析部13は、構文解析結果に含まれる構成要素が、修正履歴テーブル31に存在しない場合には、修正履歴に存在しないことを示す区分例えば、新規機能を、その構成要素に対応する機能解析結果の機能区分に仮設定する。機能解析部13は、機能区分に新規機能を仮設定した場合に、その時点の機能解析結果を暫定機能解析結果として出力装置4に表示させ、新規機能を仮設定した機能区分に対する入力をユーザに促す。その後、仮設定した機能区分に対する入力をユーザから受け付けた場合に、機能解析部13は、仮設定した暫定機能解析結果の機能区分を、入力された機能区分に変更することで、機能解析結果を更新する。図5に、暫定機能解析結果の一例を示す。図5の暫定機能解析結果は、図3の構文解析結果と図4の修正履歴テーブルとに基づいて生成された機能解析結果である。図3の構文解析結果の構成要素うち、関数1、変数1および構造体1については、図4の修正履歴テーブルに存在するため、修正履歴テーブルのそれぞれの構成要素に対応して記憶されている機能区分機能1、機能1および機能2が、図5の暫定機能解析結果の構成要素関数1、変数1および構造体1に対応する機能区分にそれぞれ設定されている。一方、図3の構文解析結果の構成要素うち、関数2については、図4の修正履歴テーブルに存在しないため、修正履歴に存在しないことを示す区分である新規機能が、図5の暫定機能解析結果の構成要素関数2に対応する機能区分に仮設定されている。図6に、機能解析結果の一例を示す。図6の機能解析結果は、図5の暫定機能解析結果の構成要素関数2に対応する機能区分が、ユーザにより入力された機能3に設定変更された状態を示している。修正履歴登録部14は、機能解析結果に基づいて、修正履歴テーブル31に修正履歴を登録する。図7に、更新後の修正履歴テーブルの一例を示す。図7の修正履歴テーブルは、図6の機能解析結果に基づいて図4の修正履歴テーブルを更新した後の状態である。図7の修正履歴テーブルには、図6の機能解析結果に含まれる4組の構成要素と機能区分との組が、修正履歴テーブルの履歴番号3に対応するデータとして追加登録されている。比較結果出力部15は、修正前後のソースコードを比較した結果を示す比較結果を出力装置4に表示させる。比較結果は、機能解析結果に含まれる各項目を用いて表すことができる。比較結果に表示する項目は、機能解析結果に含まれる各項目の中からユーザが任意に指定することができる。図8に、比較結果の一例を示す。図8の比較結果は、機能解析結果に含まれる分割差分と機能区分とを用いて表した例である。図8の比較結果は、機能1に関する修正として、差分1と差分2aとが抽出され、機能2に関する修正として、差分2bが抽出され、機能3に関する修正として、差分3が抽出されたことを示している。図9に、ユーザが出力対象として特定の機能を指定した場合に表示される比較結果の一例を示す。図9は、ユーザが出力対象として機能1を指定したときに表示される比較結果である。図9の比較結果には、修正された複数の機能のうち、ユーザにより指定された機能1に関する比較結果のみが表示されている。ユーザは、例えばクエリ機能を利用して出力対象を任意に指定することができる。次に、図10および図11を参照して、修正前後のソースコードを比較する際の動作について説明する。図10は、修正前後のソースコードを比較する際の動作を説明するフローチャートであり、図11は、修正前後のソースコードを比較する際のデータの遷移状態を模式的に示す図である。最初に、修正前のソースコードAと修正後のソースコードBとを入力装置2から読み込む、ソースコード読込処理を実行するステップS101。続いて、差分抽出部11は、修正前のソースコードAと修正後のソースコードBとをテキスト比較により比較して差分を抽出する、テキスト比較処理を実行するステップS102。図11では、修正前のソースコードAと修正後のソースコードBとの差分として、差分1、差分2および差分3が抽出されている。続いて、構文解析部12は、上記ステップS102で抽出された差分から修正対象となった構成要素を列挙し、差分を構成要素ごとに分割して構文解析結果を生成する、構文解析処理を実行するステップS103。図11では、差分1、差分2および差分3に含まれる構成要素として、関数1、変数1、構造体1および関数2が列挙されている。続いて、機能解析部13は、上記ステップS103で生成した構文解析結果に含まれる構成要素に対応する機能区分を、修正履歴テーブル31を参照して決定し、機能解析結果を生成する、機能解析処理を実行するステップS104。図11では、修正履歴テーブルを参照し、修正履歴テーブルに存在する機能1および機能2が、差分から列挙された構成要素に対応する機能区分として決定されている。機能解析部13は、上記ステップS103で生成した構文解析結果に含まれる全ての構成要素修正箇所が、修正履歴テーブル31に存在するか否かを判定するステップS105。この判定がYESである場合ステップS105;YESには、処理を後述するステップS108に移行する。一方、上記ステップS105の判定で構文解析結果に含まれる構成要素修正箇所のいずれかが修正履歴テーブル31に存在しないと判定された場合ステップS105;NOに、機能解析部13は、その時点の機能解析結果を暫定機能解析結果として出力装置4に表示させステップS106、新規機能を仮設定した機能区分に対する入力をユーザに促す。図11では、差分3から列挙された関数2に対応する機能区分への入力がユーザに促される。続いて、仮設定した機能区分に対する入力をユーザから受け付けた場合に、機能解析部13は、暫定機能解析結果の新規機能を仮設定した機能区分を、入力された機能区分に変更することで、機能解析結果を更新するステップS107。図11では、差分3から列挙された関数2に対応する機能区分が機能3に設定変更される。続いて、修正履歴登録部14は、上記ステップS104で生成された機能解析結果または上記ステップS107で更新された機能解析結果に基づいて、修正履歴テーブル31に修正履歴を登録する、修正履歴登録処理を実行するステップS108。図11では、修正履歴テーブルに、履歴番号3の修正履歴データが追加登録される。続いて、比較結果出力部15は、修正前後のソースコードを比較した結果を示す比較結果を出力装置4に表示させる、比較結果出力処理を実行するステップS109。上述したように、実施形態におけるソースコード比較装置1によれば、蓄積した過去の修正履歴にもとづいて、修正箇所と機能との対応付けを行うことができるため、過去の修正実績に基づいた正確な対応付けを簡易に行うことが可能となる。また、修正履歴にない新規修正箇所については、その修正箇所に対応する機能を入力するようにユーザに促し、ユーザから入力された機能を登録することができるため、新規コードや新規機能を追加した場合であっても、登録漏れを確実に防止することができる。また、修正のたびに、修正箇所と機能とを対応付けて追加登録し、対応付け情報を蓄積していくことができるため、過去の対応付け情報を参照しながら開発することが可能となり、開発時の作業効率を向上させることができる。変形例なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。例えば、上述した実施形態のソースコード比較装置1は、図1に示す各部を備えているが、さらに、妥当性検査部を備えることとしてもよい。妥当性検査部は、修正履歴テーブル31を参照して、機能区分ごとに、各構成要素が当該機能区分に属する構成要素として修正される割合修正率を算出する。妥当性検査部は、機能区分ごとに算出した各構成要素の修正率が所定の閾値以上となる構成要素が、機能解析結果の当該機能区分に対応する構成要素として設定されていない場合に、修正が妥当ではない旨をユーザに通知する。図12~図14を参照して、妥当性検査部の機能ついて具体的に説明する。図12は、妥当性検査部が修正の妥当性を検査する際の一例を模式的に示した図である。図13は、機能区分ごとに算出する各構成要素の修正率の一例を示す図である。図14は、機能区分の構成要素単位に過去の修正率と今回の修正状況との対応関係を例示した図である。妥当性検査部は、図12に示す修正履歴テーブルを参照して、図13に示す機能区分ごとの各構成要素の修正率を算出する。図12の修正履歴テーブルには、履歴番号1と履歴番号2とで識別される2回分の比較結果が修正履歴として蓄積されている。機能1は、2回とも修正対象となっており、機能2は、履歴番号1でのみ修正対象となっている。機能1を修正したときには、関数1と変数1とが2回とも修正されているため、関数1および変数1の修正率は100となり、構造体1は履歴番号2でのみ修正されているため、構造体1の修正率は50となる図13参照。機能2を修正したときには、変数1が修正されているため、変数1の修正率は100となり、関数1と構造体1とは修正されていないため、関数1および構造体1の修正率は0となる図13参照。妥当性検査部は、図13に示す機能区分ごとの各構成要素の修正率を参照して、検査対象となる機能区分において修正率が所定の閾値以上となる構成要素が、機能解析結果の当該機能区分に対応する構成要素として設定されていない場合に、修正が妥当ではない旨をユーザに通知する。図12に示すように、修正前後のソースコードA、Bを比較すると、機能解析結果には、差分1として、関数1と機能1との組み合わせが設定されることになる。図13に示す機能1の構成要素ごとの修正率と、今回の修正状況との対応関係を表したものが図14となる。仮に修正率の閾値が90に設定されているとすると、修正率が閾値以上となる構成要素は、関数1および変数1となる。今回の機能1に関する修正では、関数1のみが修正されているため、妥当性検査部は、変数1が修正漏れであると判定し、その旨をユーザに通知する。なお、ユーザに通知するのは、修正漏れであることには限定されない。例えば、過去の修正率が第2の閾値以下である構成要素が修正されている場合には、修正ミスであると判定し、その旨をユーザに通知することもできる。このような妥当性検査部を備えることで、過去の修正履歴に基づいて今回の修正の妥当性を判断することができるため、開発時の作業効率をさらに向上させることが可能となる。また、上述した実施形態では、修正履歴を修正履歴テーブル31に格納して保存しているが、修正履歴を保存する方法は、これに限定されない。例えば、図15に示すように、比較するソースコードに修正履歴を書き込んで保存することとしてもよい。図15は、Java登録商標言語のソースコードYにアノテーションとして修正履歴Xを埋め込んだ例である。ソースコードYの一部に、各機能区分に対応するアノテーションを定義する。各アノテーションは、int型の配列を持つ単一値のアノテーションとする。対応する履歴番号を設定したアノテーションを、対応する構成要素の記述箇所に挿入する。これにより、ソースコードの編集と修正履歴の参照とを、一つのソースコードで実現できるため、修正内容の確認や開発等の作業効率を向上させることが可能となる。また、上述した各実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下のように限定するものではない。付記1修正前のソースコードと修正後のソースコードとを比較して差分を抽出する差分抽出部と、前記差分抽出部により抽出された前記差分を、ソースコードに使用可能な構成要素ごとに分割し、当該分割した後の差分である分割差分と前記構成要素とを対応付けた構文解析結果を生成する構文解析部と、前記構文解析結果に含まれる前記分割差分と前記構成要素との組に対応付けて機能区分を設定することで機能解析結果を生成する機能解析部と、前記機能解析結果に含まれる前記分割差分および前記機能区分を用いて、修正前のソースコードと修正後のソースコードとの比較結果を出力する出力部と、を備え、前記機能解析部は、前記構文解析結果に含まれる前記構成要素が、過去にソースコードを比較した結果に基づいて蓄積された修正履歴に存在する場合に、当該構成要素に対応付けて前記修正履歴に設定されている前記機能区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に設定する、ことを特徴とするソースコード比較装置。付記2前記機能解析部は、前記構文解析結果に含まれる前記構成要素が前記修正履歴に存在しない場合に、前記修正履歴に存在しないことを示す区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に仮設定するとともに、前記仮設定した前記機能区分に対する入力をユーザに促す、ことを特徴とする付記1記載のソースコード比較装置。付記3前記機能解析部は、前記仮設定した前記機能区分に対する入力をユーザから受け付けた場合に、前記仮設定した前記機能区分を、入力された前記機能区分に変更することで、前記機能解析結果を更新する、ことを特徴とする付記2記載のソースコード比較装置。付記4前記修正履歴を参照し、前記機能区分ごとに、前記構成要素が当該機能区分に属する前記構成要素として修正される割合を算出し、当該割合が所定の閾値以上となる前記構成要素が、前記機能解析結果の当該機能区分に対応する前記構成要素として設定されていない場合に、修正が妥当ではない旨をユーザに通知する妥当性検査部を、さらに備えることを特徴とする付記1~3のいずれかに記載のソースコード比較装置。付記5前記機能解析部により生成される前記機能解析結果を、前記修正履歴として記憶装置に記憶させる修正履歴記憶部を、さらに備えることを特徴とする付記1~4のいずれかに記載のソースコード比較装置。付記6前記機能解析部により生成される前記機能解析結果を、前記修正履歴として修正後のソースコードに組み込む修正履歴組込部を、さらに備えることを特徴とする付記1~4のいずれかに記載のソースコード比較装置。付記7修正前のソースコードと修正後のソースコードとを比較して差分を抽出する差分抽出ステップと、前記差分抽出ステップにおいて抽出された前記差分を、ソースコードに使用可能な構成要素ごとに分割し、当該分割した後の差分である分割差分と前記構成要素とを対応付けた構文解析結果を生成する構文解析ステップと、前記構文解析結果に含まれる前記分割差分と前記構成要素との組に対応付けて機能区分を設定することで機能解析結果を生成する機能解析ステップと、前記機能解析結果に含まれる前記分割差分および前記機能区分を用いて、修正前のソースコードと修正後のソースコードとの比較結果を出力する出力ステップと、を含み、前記機能解析ステップは、前記構文解析結果に含まれる前記構成要素が、過去にソースコードを比較した結果に基づいて蓄積された修正履歴に存在する場合に、当該構成要素に対応付けて前記修正履歴に設定されている前記機能区分を、当該構成要素に対応する前記機能解析結果の前記機能区分に設定する、ことを特徴とするソースコード比較方法。付記8付記7に記載の各ステップをコンピュータに実行させるためのソースコード比較プログラム。