(57)【要約】【課題】ソフトウェア資源の再利用に要する労力を従来よりも低減することが可能なプログラム管理システムを提供する。【解決手段】部品についての情報が詳細なレベルまで格納される部品情報１０１、部品のバージョン毎のソースコードが格納される構成管理リポジトリ１０２、及びソースコードに関するコメントが格納される仕様情報１０３を作製すると共にアクセスして、部品情報１０１と構成管理リポジトリ１０２に対応する情報を登録する部品情報登録部１０４と、部品情報１０１に登録されている部品についてのコメントを仕様情報１０３に登録する仕様情報登録部１０５と、部品情報１０１及び仕様情報１０３に格納された情報を参照すると共に編集する仕様情報参照編集部１０６と、バージョンアップに応じて部品情報１０１と構成管理リポジトリ１０２に更新の登録を行う部品情報更新部１０７と、を備える構成を有している。【選択図】図１
2007323205.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラム部品及び前記各プログラム部品の管理情報を部品情報に記憶させて登録すると共に、バージョンアップに応じてプログラム部品の更新と前記管理情報に追加の登録とを行う部品情報登録更新部と、前記部品情報内の前記各プログラム部品に関するコメントを関連する行に対応付けて仕様情報に記憶させて登録する仕様情報登録部と、前記プログラム部品毎に前記仕様情報内のコメントを関連する行と共に編集可能に参照させる仕様情報参照編集部とを備えることを特徴とするプログラム管理システム。
【請求項２】
前記部品情報登録更新部が、前記プログラム部品毎に、ソースコードの各行に行IDを対応させて管理し、前記行IDに基づいて異なるバージョン間の行の変化を識別でき、前記仕様情報登録部が前記コメントを前記行IDに対応付けて仕様情報に記憶させ、前記仕様情報参照編集部が前記コメントを対応する行IDの行と共に編集可能に参照させることを特徴とする請求項１に記載のプログラム管理システム。
【請求項３】
前記部品情報登録更新部が、前記バージョンアップで変更された行に一意な行IDを採播することを特徴とする請求項２に記載のプログラム管理システム。
【請求項４】
前記仕様情報登録部が、前記コメントが有効なバージョン範囲を特定する有効バージョンIDをコメントに対応させて前記仕様情報に記憶させ、前記仕様情報参照編集部が、前記仕様情報に記憶させたコメントと共に対応する有効バージョンIDを編集可能に参照させることを特徴とする請求項２又は請求項３に記載のプログラム管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア資源の共有及び管理を支援するプログラム管理システムに関する。
【背景技術】
【０００２】
ソフトウェア開発において、ソフトウェア部品（以下、単に部品という。）の再利用は、生産性を大幅に向上させるメリットがある。部品と呼ばれるものには、汎用的な共通機能を実現するレベルのものから、顧客の要求に応じたカスタマイズのベースとなるシステムレベルのパッケージ部品まで、その粒度には段階がある。また、近年は、オープンソースとして知られているように、１つの企業での再利用ではなく不特定多数の個人や企業が再利用又は修正しうるような、大規模なパッケージ部品が増加している。
【０００３】
ソフトウェアの開発者は、開発時に再利用性を考慮した設計をしたり、開発終了後に再利用可能な部品を抽出したりして、再利用可能な部品を蓄積し、その後の開発での再利用性を高めている（例えば、特許文献１参照。）。一方、部品を再利用する開発者は、部品開発時に再利用者の為に作成される仕様書、マニュアル等、又は、公開されているソースコード及び関連するコメント等を理解して、必要な資料を作成する。そして、このように作成した資料を用いて、部品の機能を効果的に利用したり、所望のカスタマイズを行なったりしている。
【特許文献１】特開２００２−１８２９１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ソフトウェア資源の再利用に多大な労力を要する場合があるという問題を有していた。具体的には、カスタマイズした場合の影響範囲を予測するためには、公開されている外部仕様及び内部仕様や注意点などの十分に理解しなければならなかった。特にオープンソースのような大規模な部品の場合には、大きな問題となっていた。また、ソースコードが公開されるものについては、不特定多数の人によって不具合対策、改良等が行われ、アップバージョンとして再度公開されることがしばしばなされる。このような場合、個人又は企業が労力を費やして仕様を理解しノウハウを獲得したにも関わらず、再度、同様の作業を繰り返す必要があり、費用、工数等の負担を強いられていた。
【０００５】
以上の現状に鑑み、本発明の目的は、ソフトウェア資源の再利用に要する労力を従来よりも低減することが可能なプログラム管理システムを提供する。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は以下の構成を提供する。
請求項１に係る発明は、複数のプログラム部品及び前記各プログラム部品の管理情報を部品情報に記憶させて登録すると共に、バージョンアップに応じてプログラム部品の更新と前記管理情報に追加の登録とを行う部品情報登録更新部と、前記部品情報内の前記各プログラム部品に関するコメントを関連する行に対応付けて仕様情報に記憶させて登録する仕様情報登録部と、前記プログラム部品毎に前記仕様情報内のコメントを関連する行と共に編集可能に参照させる仕様情報参照編集部とを備えることを特徴とする。
【０００７】
請求項２に係る発明は、請求項１のプログラム管理システムにおいて、前記部品情報登録更新部が、前記プログラム部品毎に、ソースコードの各行に行IDを対応させて管理し、前記行IDに基づいて異なるバージョン間の行の変化を識別でき、前記仕様情報登録部が前記コメントを前記行IDに対応付けて仕様情報に記憶させ、前記仕様情報参照編集部が前記コメントを対応する行IDの行と共に編集可能に参照させることを特徴とする。
【０００８】
請求項３に係る発明は、請求項２のプログラム管理システムにおいて、前記部品情報登録更新部が、前記バージョンアップで変更された行に一意な行IDを採播することを特徴とする。
ことを特徴とする。
【０００９】
請求項４に係る発明は、請求項２又は請求項３のプログラム管理システムにおいて、前記仕様情報登録部が、前記コメントが有効なバージョン範囲を特定する有効バージョンIDをコメントに対応させて前記仕様情報に記憶させ、前記仕様情報参照編集部が、前記仕様情報に記憶させたコメントと共に対応する有効バージョンIDを編集可能に参照させることを特徴とする。
【発明の効果】
【００１０】
請求項１に係る発明によれば、複数のプログラム部品及び各プログラム部品の管理情報を部品情報に記憶させて登録すると共に、バージョンアップに応じてプログラム部品の更新と管理情報に追加の登録とを行う部品情報登録更新部と、部品情報内の各プログラム部品に関するコメントを関連する行に対応付けて仕様情報に記憶させて登録する仕様情報登録部と、プログラム部品毎に仕様情報内のコメントを関連する行と共に編集可能に参照させる仕様情報参照編集部とを備えるため、プログラム部品に関するコメントを関連する行と共に編集可能に参照でき、ソフトウェア資源の再利用に要する労力を従来よりも低減することが可能なプログラム管理システムを実現することができる。
【００１１】
請求項２に係る発明によれば、上記請求項１の効果に加えて、部品情報登録更新部が、プログラム部品毎に、ソースコードの各行に行IDを対応させて管理し、行IDに基づいて異なるバージョン間の行の変化を識別でき、仕様情報登録部がコメントを行IDに対応付けて仕様情報に記憶させ、仕様情報参照編集部がコメントを対応する行IDの行と共に編集可能に参照させるため、行IDに基づいてバージョン間で混同することなくコメントの変化を識別することができる。
【００１２】
請求項３に係る発明によれば、上記請求項２の効果に加えて、部品情報登録更新部が、バージョンアップで変更された行に一意な行IDを採播するため、変更の有無を容易に識別することができる。
【００１３】
請求項４に係る発明によれば、上記請求項２又は請求項３の効果に加えて、仕様情報登録部が、コメントが有効なバージョン範囲を特定する有効バージョンIDをコメントに対応させて仕様情報に記憶させ、仕様情報参照編集部が、仕様情報に記憶させたコメントと共に対応する有効バージョンIDを編集可能に参照させるため、コメントの有効なバージョン範囲を容易に識別することができる。
【発明を実施するための最良の形態】
【００１４】
以下、実施例を示した図面を参照しつつ本発明の実施の形態について説明する。
図１は、本発明によるプログラム管理システムの一実施例を概略的に示すブロック構成図である。プログラム管理システムは、図１に示すように、部品についての情報が詳細なレベルまで格納される部品情報１０１、部品のバージョン毎のソースコードが格納される構成管理リポジトリ１０２、及びソースコードに関するコメントが格納される仕様情報１０３を作製すると共にアクセスして、部品情報１０１と構成管理リポジトリ１０２に対応する情報を登録する部品情報登録部１０４と、部品情報１０１に登録されている部品についてのコメントを仕様情報１０３に登録する仕様情報登録部１０５と、部品情報１０１及び仕様情報１０３に格納された情報を参照すると共に編集する仕様情報参照編集部１０６と、バージョンアップに応じて部品情報１０１と構成管理リポジトリ１０２に更新の登録を行う部品情報更新部１０７と、を備えるように構成される。
【００１５】
図２は、部品情報の一実施例を概念的に示す説明図である。部品情報１０１は、部品を個別に識別する部品ID２０２、部品名２０３、部品バージョンID（以下、単に部品VerIDという。）２０４、部品に関する説明等の基本的な情報を格納する部品基本情報２０１と、ソースファイル、パス、ソースファイルの最大行数２０６等の部品の構成に関する情報を格納する部品構成情報２０５と、部品を構成する各ファイルのソースコードを行単位で格納する部品ソースコード情報２０７とを有する。部品ソースコード情報２０７は、各バージョンのソースコードを行単位で一意に識別する為の管理情報として行ID２０８を有する。すなわち、１つのバージョンで行を識別するだけならば、先頭行から連番にした行番号で識別することが可能であるが、バージョンアップによって行の追加、削除等があった場合、内容に変化がなかった行についても行番号が変わることがある。そこで、行の位置の変化に依存せずに、バージョンアップ後でも継続した行の識別を可能にする行IDを利用するものである。なお、この行IDの管理及び採播の方法については、図６と図７を用いて詳細に説明する。
【００１６】
図１に示す構成管理リポジトリ１０２は、部品ソースコード情報２０７と同様に構成され、部品情報更新部１０７による部品の最初の更新が行われるときに生成され、更新毎に必要な部品が追加され、例えばラベルが付されて管理される。構成管理リポジトリ１０２は、例えば、ラベルを用いて、新旧のソースコードを比較し、特定のソースコード一式を取り出すなどの目的で利用することができる。
【００１７】
図３は、仕様情報の一実施例を概念的に示す説明図である。仕様情報１０３は、バージョンアップによる行位置の変化に依存せずにソースコードの行と１対１に関連付ける行ID３０１、ソースコードに関するコメントを内容とする仕様コメント３０２、登録されている仕様コメント３０２の種類を識別する情報タイプ３０３、仕様コメント３０２が登録された部品のバージョンIDを示す登録バージョンID（以下、単に登録VerIDという。）３０４、及び、指定されたバージョンID以降のバージョンに仕様コメント３０２を継続させない為に仕様コメント３０２が有効な最大のバージョンIDを示す有効バージョンID（以下、単に有効VerIDという。）３０５等を有する。仕様コメント３０２を継続させない場合としては、例えば不具合を生じさせていた行が、他行を修正するバージョンアップによって不具合が回避された場合等が考えられる。このような場合では、バージョンアップによって不具合が回避されたため、バージョンアップ前の仕様コメントは誤ったものとなる。しかしながら、仕様情報１０３からこの仕様コメント３０２を削除してしまうと、バージョンアップ前のソースコードの利用者に、不具合が存在していたという情報を提供できなくなる。そこで、仕様コメント３０２が有効なバージョンIDの最大値を管理し、利用しているバージョンでコメント情報３０２が有効か否かの情報を共有できる仕掛けが必要となる。一方、バージョンアップ後に仕様コメント３０２が追加される場合において、該当行が追加又は変更された行であれば、仕様コメント３０２は以降のバージョンに引き継がれる。また、該当行がバージョンアップ前後で内容に変化が無ければ、仕様コメント３０２はそのまま引き継がれる。
【００１８】
図４は、仕様情報参照編集部が作成する表示画面の一実施例を模式的に示す説明図である。仕様情報参照編集部は、部品情報と仕様情報を利用して、図４に示すように、参照対象の部品に仕様情報等を関連させて表示するための仕様情報参照画面４０１を作成する。仕様情報参照画面４０１は、部品情報の部品基本情報及び部品構成情報を利用して部品を特定するファイル名及びパスを表示するファイルリスト４０２と、ファイルリスト４０２中で選択されたファイルについて、仕様情報登録部を介して登録された、情報タイプに対応するアイコン及び仕様コメントの一部を表示する仕様情報リスト４０３と、部品ソースコード情報を利用して、選択されたファイルのソースコード及び行単位で付された仕様コメントを表示するソースビュー４０４と、ソースビュー４０４で選択されている行に関連付けられた仕様コメントを表示する仕様コメントビュー４０９とを有する。また、ソースビュー４０４は、表示されているソースコードに関連付けられた仕様コメントが存在する場合、対応する情報タイプのアイコンを表示するアイコンエリア４０６とソースコードを表示するソースコードエリア４０５との２つのエリアに分かれる。アイコンエリア４０６とソースコードエリア４０５の拡大した表示例を、符号４０７を用いて示す。拡大した表示例４０７の左側には、情報タイプに対応するアイコン４０８が表示され、このアイコン４０８を選択することによって、図４に示すように、対応する仕様コメントが仕様コメントビュー４０９に表示される。なお、仕様コメントの表示方法は、独立した仕様コメントビュー４０９に表示する以外にも、ソースコードエリア４０５に表示したり、別の画面を作成して表示したりするなど、表示画面を実現する実装技術、ユーザビリティ等を考慮した工夫が可能である。
【００１９】
図５は、仕様情報の登録及び変更を行う場合に表示される仕様情報登録画面の一実施例を模式的に示す説明図である。以下、仕様情報の登録及び変更を単に登録変更という。仕様情報登録画面５０１は、図５に示すように、例えば、仕様情報を登録変更しようとする対象のファイル名及びパスからなる登録先ファイル５０２、登録対象の行５０３、対応する情報タイプ５０４、仕様コメントボックス５０５、有効VerID５０６、操作ボタン等を有する。仕様情報登録画面５０１は、例えば、登録変更対象の行又は仕様コメントを図４に示す仕様情報参照画面４０１中で選択し、例えばダブルクリックすることによって表示される。なお、仕様情報登録画面５０１及び仕様情報参照画面には、バージョンという概念はない。なぜならば、プログラム管理システムは、バージョンに依存しないように仕様コメントを行に関連付けるからであり、開発者が特定の行を指定することは、すなわちバージョンアップ依存性なしに行を識別できる行IDを指定することを示すからである。利用者は、登録する仕様コメントの種類を情報タイプ５０４のプルダウンメニュー等で選択し、関連付けようとする説明を仕様コメントボックス５０５に入力する。また、登録対象の仕様コメントが過去のバージョンに対して有効である場合は、有効VerID５０６のプルダウンメニュー等でバージョンを選択する。選択対象のバージョンは、対象の行IDが存在するものであり、図２に示す部品ソースコード情報２０７から同一行IDを検索することによって特定される。仕様情報登録画面５０１に入力された内容は、登録ボタン又は変更ボタンを押下することによって仕様情報に格納される。登録の場合は、仕様情報内の対象の行IDに新たはコメントバージョンIDが採播され、新らたな仕様コメントが追加される。更新の場合は、既に仕様コメントが選択されているので、新らたな仕様コメントが上書きされる。
【００２０】
図６は、部品情報更新部の一実施例を模式的に示す説明図である。部品情報更新部１０７は、新たな部品VerIDを付して部品情報１０１の部品基本情報２０１内の対応する箇所にバージョンアップされた部品を登録する部品基本情報更新手段６０１と、バージョンアップされたソースコード６０４を構成管理リポジトリ１０２に登録するリポジトリ登録手段６０２と、構成管理リポジトリ１０２内に新たに登録されたバージョンのソースコードの情報と直前のバージョンのソースコードの情報とを比較して部品構成情報２０５と部品ソースコード情報２０７を更新する差分情報反映手段６０３とを有する。リポジトリ登録手段６０２は、部品ソースコード情報２０７と同様に部品ID、パス、部品VerID等のラベルを付してバージョン及びファイル構成を管理する。特定のバージョンのソースコードを一式取得する場合には、このラベルを指定して構成管理リポジトリ１０２からソースコードを取り出すことができる。
【００２１】
図７は、差分情報反映手段が更新対象のファイル毎に行う処理の一実施例を示す説明図である。まず、更新対象のファイルに対応する過去のバージョンのファイルが登録されているか否か判定する（Ｓ７０１）。具体的には、例えば図２に示す部品構成情報２０５を検索し、更新対象のファイルがバージョンアップ前の旧部品中に存在するか否かで判定することもできる。ステップＳ７０１で対応するファイルが登録されていないと判定した場合は、更新対象のファイルは新しいファイルであるので、部品情報登録部が行う新しい部品の登録の処理と同様に、部品ソースコード情報に更新対象のファイルのソースコードを全ての行に亘って追加して登録し（Ｓ７０２）、パス及びファイル名と最大行数を部品構成情報に登録し（Ｓ７０３）、更新対象のファイルについての処理を終了する。次に、ステップＳ７０１で対応するファイルが既に登録されていると判定した場合は、構成管理リポジトリを参照して対象とするバージョン間でソースコードの差異の有無を判定する（Ｓ７０４）。ステップＳ７０４で差異がないと判定した場合は、更新対象のファイルについての処理を終了する。ステップＳ７０４で差異があると判定した場合は、登録対象のファイルについて行毎に以下の処理を行う。まず、処理対象の行に関しバージョンアップによって生じた差異の種類を判断する（Ｓ７０５）。具体的には、処理対象の行がバージョンアップによって、新たに追加された行、変更された行、及び変更の無い行のいずれであるかを判断する。ステップＳ７０５で処理対象の行が追加された行であると判断した場合、新たな行IDを採播すると共に部品構成情報の最大行数の値を１増加させる（Ｓ７０６）。ステップＳ７０５で処理対象の行が変更された行であると判断した場合は新たな行IDを採播し（Ｓ７０７）、同一の行であると判断した場合、対応する行IDをそのまま移動する（Ｓ７０８）。次に、ステップＳ７０６、Ｓ７０７及びＳ７０８で行IDの採播又は移動したとき、部品ソースコード情報に登録する（Ｓ７０９）。次に、ステップＳ７０９での登録が全ての行について完了したか否かが判定され（Ｓ７１０）、登録が完了していないと判定した場合は、行を１行進め（Ｓ７１１）、上記のステップＳ７０５〜Ｓ７１０までの処理を繰り返す。ステップＳ７１０で全ての行について登録が完了したと判定した場合、このファイルについての登録の処理は完了する。未登録のファイルがまだ残っている場合は、残りの各ファイルに対して上記の処理が同様に繰り返される。
【図面の簡単な説明】
【００２２】
【図１】本発明によるプログラム管理システムの一実施例を概略的に示すブロック構成図である。
【図２】部品情報の一実施例を概念的に示す説明図である。
【図３】仕様情報の一実施例を概念的に示す説明図である。
【図４】仕様情報参照編集部が作成する表示画面の一実施例を模式的に示す説明図である。
【図５】仕様コメントの登録及び変更を行う場合に表示される仕様情報登録画面の一実施例を模式的に示す説明図である。
【図６】部品情報更新部の一実施例を模式的に示す説明図である。
【図７】差分情報反映手段が更新対象のファイル毎に行う処理の一実施例を示す説明図である。
【符号の説明】
【００２３】
１０１  部品情報
１０２  構成管理リポジトリ
１０３  仕様情報
１０４  部品情報登録部
１０５  使用情報登録部
１０６  仕様情報参照編集部
１０７  部品情報更新部
２０１  部品基本情報
２０２  部品ID
２０３  部品名
２０４  部品VerID
２０５  部品構成情報
２０６  最大行数
２０７  部品ソースコード情報
２０８、３０１  行ID
３０２  仕様コメント
３０３、５０４  情報タイプ
３０４  登録VerID
３０５  有効VerID
４０１  仕様情報参照画面
４０２  ファイルリスト
４０３  仕様情報リスト
４０４  ソースビュー
４０５  ソースコードエリア
４０６  アイコンエリア
４０７  拡大した表示例
４０８  アイコン
４０９  仕様コメントビュー
５０１  仕様情報登録画面
５０２  登録先ファイル
５０３  登録対象行
５０５  仕様コメントボックス
５０６  有効バージョンID
６０１  部品基本情報更新手段
６０２  リポジトリ登録手段
６０３  差分情報反映手段
６０４  ソースコード
【図１】
2007323205.tif 000003
【図２】
2007323205.tif 000004
【図３】
2007323205.tif 000005
【図４】
2007323205.tif 000006
【図５】
2007323205.tif 000007
【図６】
2007323205.tif 000008
【図７】
2007323205.tif 000009