説明

プログラム管理システム

【課題】ソフトウェア資源の再利用に要する労力を従来よりも低減することが可能なプログラム管理システムを提供する。
【解決手段】部品についての情報が詳細なレベルまで格納される部品情報101、部品のバージョン毎のソースコードが格納される構成管理リポジトリ102、及びソースコードに関するコメントが格納される仕様情報103を作製すると共にアクセスして、部品情報101と構成管理リポジトリ102に対応する情報を登録する部品情報登録部104と、部品情報101に登録されている部品についてのコメントを仕様情報103に登録する仕様情報登録部105と、部品情報101及び仕様情報103に格納された情報を参照すると共に編集する仕様情報参照編集部106と、バージョンアップに応じて部品情報101と構成管理リポジトリ102に更新の登録を行う部品情報更新部107と、を備える構成を有している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア資源の共有及び管理を支援するプログラム管理システムに関する。
【背景技術】
【0002】
ソフトウェア開発において、ソフトウェア部品(以下、単に部品という。)の再利用は、生産性を大幅に向上させるメリットがある。部品と呼ばれるものには、汎用的な共通機能を実現するレベルのものから、顧客の要求に応じたカスタマイズのベースとなるシステムレベルのパッケージ部品まで、その粒度には段階がある。また、近年は、オープンソースとして知られているように、1つの企業での再利用ではなく不特定多数の個人や企業が再利用又は修正しうるような、大規模なパッケージ部品が増加している。
【0003】
ソフトウェアの開発者は、開発時に再利用性を考慮した設計をしたり、開発終了後に再利用可能な部品を抽出したりして、再利用可能な部品を蓄積し、その後の開発での再利用性を高めている(例えば、特許文献1参照。)。一方、部品を再利用する開発者は、部品開発時に再利用者の為に作成される仕様書、マニュアル等、又は、公開されているソースコード及び関連するコメント等を理解して、必要な資料を作成する。そして、このように作成した資料を用いて、部品の機能を効果的に利用したり、所望のカスタマイズを行なったりしている。
【特許文献1】特開2002−182916号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、ソフトウェア資源の再利用に多大な労力を要する場合があるという問題を有していた。具体的には、カスタマイズした場合の影響範囲を予測するためには、公開されている外部仕様及び内部仕様や注意点などの十分に理解しなければならなかった。特にオープンソースのような大規模な部品の場合には、大きな問題となっていた。また、ソースコードが公開されるものについては、不特定多数の人によって不具合対策、改良等が行われ、アップバージョンとして再度公開されることがしばしばなされる。このような場合、個人又は企業が労力を費やして仕様を理解しノウハウを獲得したにも関わらず、再度、同様の作業を繰り返す必要があり、費用、工数等の負担を強いられていた。
【0005】
以上の現状に鑑み、本発明の目的は、ソフトウェア資源の再利用に要する労力を従来よりも低減することが可能なプログラム管理システムを提供する。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は以下の構成を提供する。
請求項1に係る発明は、複数のプログラム部品及び前記各プログラム部品の管理情報を部品情報に記憶させて登録すると共に、バージョンアップに応じてプログラム部品の更新と前記管理情報に追加の登録とを行う部品情報登録更新部と、前記部品情報内の前記各プログラム部品に関するコメントを関連する行に対応付けて仕様情報に記憶させて登録する仕様情報登録部と、前記プログラム部品毎に前記仕様情報内のコメントを関連する行と共に編集可能に参照させる仕様情報参照編集部とを備えることを特徴とする。
【0007】
請求項2に係る発明は、請求項1のプログラム管理システムにおいて、前記部品情報登録更新部が、前記プログラム部品毎に、ソースコードの各行に行IDを対応させて管理し、前記行IDに基づいて異なるバージョン間の行の変化を識別でき、前記仕様情報登録部が前記コメントを前記行IDに対応付けて仕様情報に記憶させ、前記仕様情報参照編集部が前記コメントを対応する行IDの行と共に編集可能に参照させることを特徴とする。
【0008】
請求項3に係る発明は、請求項2のプログラム管理システムにおいて、前記部品情報登録更新部が、前記バージョンアップで変更された行に一意な行IDを採播することを特徴とする。
ことを特徴とする。
【0009】
請求項4に係る発明は、請求項2又は請求項3のプログラム管理システムにおいて、前記仕様情報登録部が、前記コメントが有効なバージョン範囲を特定する有効バージョンIDをコメントに対応させて前記仕様情報に記憶させ、前記仕様情報参照編集部が、前記仕様情報に記憶させたコメントと共に対応する有効バージョンIDを編集可能に参照させることを特徴とする。
【発明の効果】
【0010】
請求項1に係る発明によれば、複数のプログラム部品及び各プログラム部品の管理情報を部品情報に記憶させて登録すると共に、バージョンアップに応じてプログラム部品の更新と管理情報に追加の登録とを行う部品情報登録更新部と、部品情報内の各プログラム部品に関するコメントを関連する行に対応付けて仕様情報に記憶させて登録する仕様情報登録部と、プログラム部品毎に仕様情報内のコメントを関連する行と共に編集可能に参照させる仕様情報参照編集部とを備えるため、プログラム部品に関するコメントを関連する行と共に編集可能に参照でき、ソフトウェア資源の再利用に要する労力を従来よりも低減することが可能なプログラム管理システムを実現することができる。
【0011】
請求項2に係る発明によれば、上記請求項1の効果に加えて、部品情報登録更新部が、プログラム部品毎に、ソースコードの各行に行IDを対応させて管理し、行IDに基づいて異なるバージョン間の行の変化を識別でき、仕様情報登録部がコメントを行IDに対応付けて仕様情報に記憶させ、仕様情報参照編集部がコメントを対応する行IDの行と共に編集可能に参照させるため、行IDに基づいてバージョン間で混同することなくコメントの変化を識別することができる。
【0012】
請求項3に係る発明によれば、上記請求項2の効果に加えて、部品情報登録更新部が、バージョンアップで変更された行に一意な行IDを採播するため、変更の有無を容易に識別することができる。
【0013】
請求項4に係る発明によれば、上記請求項2又は請求項3の効果に加えて、仕様情報登録部が、コメントが有効なバージョン範囲を特定する有効バージョンIDをコメントに対応させて仕様情報に記憶させ、仕様情報参照編集部が、仕様情報に記憶させたコメントと共に対応する有効バージョンIDを編集可能に参照させるため、コメントの有効なバージョン範囲を容易に識別することができる。
【発明を実施するための最良の形態】
【0014】
以下、実施例を示した図面を参照しつつ本発明の実施の形態について説明する。
図1は、本発明によるプログラム管理システムの一実施例を概略的に示すブロック構成図である。プログラム管理システムは、図1に示すように、部品についての情報が詳細なレベルまで格納される部品情報101、部品のバージョン毎のソースコードが格納される構成管理リポジトリ102、及びソースコードに関するコメントが格納される仕様情報103を作製すると共にアクセスして、部品情報101と構成管理リポジトリ102に対応する情報を登録する部品情報登録部104と、部品情報101に登録されている部品についてのコメントを仕様情報103に登録する仕様情報登録部105と、部品情報101及び仕様情報103に格納された情報を参照すると共に編集する仕様情報参照編集部106と、バージョンアップに応じて部品情報101と構成管理リポジトリ102に更新の登録を行う部品情報更新部107と、を備えるように構成される。
【0015】
図2は、部品情報の一実施例を概念的に示す説明図である。部品情報101は、部品を個別に識別する部品ID202、部品名203、部品バージョンID(以下、単に部品VerIDという。)204、部品に関する説明等の基本的な情報を格納する部品基本情報201と、ソースファイル、パス、ソースファイルの最大行数206等の部品の構成に関する情報を格納する部品構成情報205と、部品を構成する各ファイルのソースコードを行単位で格納する部品ソースコード情報207とを有する。部品ソースコード情報207は、各バージョンのソースコードを行単位で一意に識別する為の管理情報として行ID208を有する。すなわち、1つのバージョンで行を識別するだけならば、先頭行から連番にした行番号で識別することが可能であるが、バージョンアップによって行の追加、削除等があった場合、内容に変化がなかった行についても行番号が変わることがある。そこで、行の位置の変化に依存せずに、バージョンアップ後でも継続した行の識別を可能にする行IDを利用するものである。なお、この行IDの管理及び採播の方法については、図6と図7を用いて詳細に説明する。
【0016】
図1に示す構成管理リポジトリ102は、部品ソースコード情報207と同様に構成され、部品情報更新部107による部品の最初の更新が行われるときに生成され、更新毎に必要な部品が追加され、例えばラベルが付されて管理される。構成管理リポジトリ102は、例えば、ラベルを用いて、新旧のソースコードを比較し、特定のソースコード一式を取り出すなどの目的で利用することができる。
【0017】
図3は、仕様情報の一実施例を概念的に示す説明図である。仕様情報103は、バージョンアップによる行位置の変化に依存せずにソースコードの行と1対1に関連付ける行ID301、ソースコードに関するコメントを内容とする仕様コメント302、登録されている仕様コメント302の種類を識別する情報タイプ303、仕様コメント302が登録された部品のバージョンIDを示す登録バージョンID(以下、単に登録VerIDという。)304、及び、指定されたバージョンID以降のバージョンに仕様コメント302を継続させない為に仕様コメント302が有効な最大のバージョンIDを示す有効バージョンID(以下、単に有効VerIDという。)305等を有する。仕様コメント302を継続させない場合としては、例えば不具合を生じさせていた行が、他行を修正するバージョンアップによって不具合が回避された場合等が考えられる。このような場合では、バージョンアップによって不具合が回避されたため、バージョンアップ前の仕様コメントは誤ったものとなる。しかしながら、仕様情報103からこの仕様コメント302を削除してしまうと、バージョンアップ前のソースコードの利用者に、不具合が存在していたという情報を提供できなくなる。そこで、仕様コメント302が有効なバージョンIDの最大値を管理し、利用しているバージョンでコメント情報302が有効か否かの情報を共有できる仕掛けが必要となる。一方、バージョンアップ後に仕様コメント302が追加される場合において、該当行が追加又は変更された行であれば、仕様コメント302は以降のバージョンに引き継がれる。また、該当行がバージョンアップ前後で内容に変化が無ければ、仕様コメント302はそのまま引き継がれる。
【0018】
図4は、仕様情報参照編集部が作成する表示画面の一実施例を模式的に示す説明図である。仕様情報参照編集部は、部品情報と仕様情報を利用して、図4に示すように、参照対象の部品に仕様情報等を関連させて表示するための仕様情報参照画面401を作成する。仕様情報参照画面401は、部品情報の部品基本情報及び部品構成情報を利用して部品を特定するファイル名及びパスを表示するファイルリスト402と、ファイルリスト402中で選択されたファイルについて、仕様情報登録部を介して登録された、情報タイプに対応するアイコン及び仕様コメントの一部を表示する仕様情報リスト403と、部品ソースコード情報を利用して、選択されたファイルのソースコード及び行単位で付された仕様コメントを表示するソースビュー404と、ソースビュー404で選択されている行に関連付けられた仕様コメントを表示する仕様コメントビュー409とを有する。また、ソースビュー404は、表示されているソースコードに関連付けられた仕様コメントが存在する場合、対応する情報タイプのアイコンを表示するアイコンエリア406とソースコードを表示するソースコードエリア405との2つのエリアに分かれる。アイコンエリア406とソースコードエリア405の拡大した表示例を、符号407を用いて示す。拡大した表示例407の左側には、情報タイプに対応するアイコン408が表示され、このアイコン408を選択することによって、図4に示すように、対応する仕様コメントが仕様コメントビュー409に表示される。なお、仕様コメントの表示方法は、独立した仕様コメントビュー409に表示する以外にも、ソースコードエリア405に表示したり、別の画面を作成して表示したりするなど、表示画面を実現する実装技術、ユーザビリティ等を考慮した工夫が可能である。
【0019】
図5は、仕様情報の登録及び変更を行う場合に表示される仕様情報登録画面の一実施例を模式的に示す説明図である。以下、仕様情報の登録及び変更を単に登録変更という。仕様情報登録画面501は、図5に示すように、例えば、仕様情報を登録変更しようとする対象のファイル名及びパスからなる登録先ファイル502、登録対象の行503、対応する情報タイプ504、仕様コメントボックス505、有効VerID506、操作ボタン等を有する。仕様情報登録画面501は、例えば、登録変更対象の行又は仕様コメントを図4に示す仕様情報参照画面401中で選択し、例えばダブルクリックすることによって表示される。なお、仕様情報登録画面501及び仕様情報参照画面には、バージョンという概念はない。なぜならば、プログラム管理システムは、バージョンに依存しないように仕様コメントを行に関連付けるからであり、開発者が特定の行を指定することは、すなわちバージョンアップ依存性なしに行を識別できる行IDを指定することを示すからである。利用者は、登録する仕様コメントの種類を情報タイプ504のプルダウンメニュー等で選択し、関連付けようとする説明を仕様コメントボックス505に入力する。また、登録対象の仕様コメントが過去のバージョンに対して有効である場合は、有効VerID506のプルダウンメニュー等でバージョンを選択する。選択対象のバージョンは、対象の行IDが存在するものであり、図2に示す部品ソースコード情報207から同一行IDを検索することによって特定される。仕様情報登録画面501に入力された内容は、登録ボタン又は変更ボタンを押下することによって仕様情報に格納される。登録の場合は、仕様情報内の対象の行IDに新たはコメントバージョンIDが採播され、新らたな仕様コメントが追加される。更新の場合は、既に仕様コメントが選択されているので、新らたな仕様コメントが上書きされる。
【0020】
図6は、部品情報更新部の一実施例を模式的に示す説明図である。部品情報更新部107は、新たな部品VerIDを付して部品情報101の部品基本情報201内の対応する箇所にバージョンアップされた部品を登録する部品基本情報更新手段601と、バージョンアップされたソースコード604を構成管理リポジトリ102に登録するリポジトリ登録手段602と、構成管理リポジトリ102内に新たに登録されたバージョンのソースコードの情報と直前のバージョンのソースコードの情報とを比較して部品構成情報205と部品ソースコード情報207を更新する差分情報反映手段603とを有する。リポジトリ登録手段602は、部品ソースコード情報207と同様に部品ID、パス、部品VerID等のラベルを付してバージョン及びファイル構成を管理する。特定のバージョンのソースコードを一式取得する場合には、このラベルを指定して構成管理リポジトリ102からソースコードを取り出すことができる。
【0021】
図7は、差分情報反映手段が更新対象のファイル毎に行う処理の一実施例を示す説明図である。まず、更新対象のファイルに対応する過去のバージョンのファイルが登録されているか否か判定する(S701)。具体的には、例えば図2に示す部品構成情報205を検索し、更新対象のファイルがバージョンアップ前の旧部品中に存在するか否かで判定することもできる。ステップS701で対応するファイルが登録されていないと判定した場合は、更新対象のファイルは新しいファイルであるので、部品情報登録部が行う新しい部品の登録の処理と同様に、部品ソースコード情報に更新対象のファイルのソースコードを全ての行に亘って追加して登録し(S702)、パス及びファイル名と最大行数を部品構成情報に登録し(S703)、更新対象のファイルについての処理を終了する。次に、ステップS701で対応するファイルが既に登録されていると判定した場合は、構成管理リポジトリを参照して対象とするバージョン間でソースコードの差異の有無を判定する(S704)。ステップS704で差異がないと判定した場合は、更新対象のファイルについての処理を終了する。ステップS704で差異があると判定した場合は、登録対象のファイルについて行毎に以下の処理を行う。まず、処理対象の行に関しバージョンアップによって生じた差異の種類を判断する(S705)。具体的には、処理対象の行がバージョンアップによって、新たに追加された行、変更された行、及び変更の無い行のいずれであるかを判断する。ステップS705で処理対象の行が追加された行であると判断した場合、新たな行IDを採播すると共に部品構成情報の最大行数の値を1増加させる(S706)。ステップS705で処理対象の行が変更された行であると判断した場合は新たな行IDを採播し(S707)、同一の行であると判断した場合、対応する行IDをそのまま移動する(S708)。次に、ステップS706、S707及びS708で行IDの採播又は移動したとき、部品ソースコード情報に登録する(S709)。次に、ステップS709での登録が全ての行について完了したか否かが判定され(S710)、登録が完了していないと判定した場合は、行を1行進め(S711)、上記のステップS705〜S710までの処理を繰り返す。ステップS710で全ての行について登録が完了したと判定した場合、このファイルについての登録の処理は完了する。未登録のファイルがまだ残っている場合は、残りの各ファイルに対して上記の処理が同様に繰り返される。
【図面の簡単な説明】
【0022】
【図1】本発明によるプログラム管理システムの一実施例を概略的に示すブロック構成図である。
【図2】部品情報の一実施例を概念的に示す説明図である。
【図3】仕様情報の一実施例を概念的に示す説明図である。
【図4】仕様情報参照編集部が作成する表示画面の一実施例を模式的に示す説明図である。
【図5】仕様コメントの登録及び変更を行う場合に表示される仕様情報登録画面の一実施例を模式的に示す説明図である。
【図6】部品情報更新部の一実施例を模式的に示す説明図である。
【図7】差分情報反映手段が更新対象のファイル毎に行う処理の一実施例を示す説明図である。
【符号の説明】
【0023】
101 部品情報
102 構成管理リポジトリ
103 仕様情報
104 部品情報登録部
105 使用情報登録部
106 仕様情報参照編集部
107 部品情報更新部
201 部品基本情報
202 部品ID
203 部品名
204 部品VerID
205 部品構成情報
206 最大行数
207 部品ソースコード情報
208、301 行ID
302 仕様コメント
303、504 情報タイプ
304 登録VerID
305 有効VerID
401 仕様情報参照画面
402 ファイルリスト
403 仕様情報リスト
404 ソースビュー
405 ソースコードエリア
406 アイコンエリア
407 拡大した表示例
408 アイコン
409 仕様コメントビュー
501 仕様情報登録画面
502 登録先ファイル
503 登録対象行
505 仕様コメントボックス
506 有効バージョンID
601 部品基本情報更新手段
602 リポジトリ登録手段
603 差分情報反映手段
604 ソースコード

【特許請求の範囲】
【請求項1】
複数のプログラム部品及び前記各プログラム部品の管理情報を部品情報に記憶させて登録すると共に、バージョンアップに応じてプログラム部品の更新と前記管理情報に追加の登録とを行う部品情報登録更新部と、前記部品情報内の前記各プログラム部品に関するコメントを関連する行に対応付けて仕様情報に記憶させて登録する仕様情報登録部と、前記プログラム部品毎に前記仕様情報内のコメントを関連する行と共に編集可能に参照させる仕様情報参照編集部とを備えることを特徴とするプログラム管理システム。
【請求項2】
前記部品情報登録更新部が、前記プログラム部品毎に、ソースコードの各行に行IDを対応させて管理し、前記行IDに基づいて異なるバージョン間の行の変化を識別でき、前記仕様情報登録部が前記コメントを前記行IDに対応付けて仕様情報に記憶させ、前記仕様情報参照編集部が前記コメントを対応する行IDの行と共に編集可能に参照させることを特徴とする請求項1に記載のプログラム管理システム。
【請求項3】
前記部品情報登録更新部が、前記バージョンアップで変更された行に一意な行IDを採播することを特徴とする請求項2に記載のプログラム管理システム。
【請求項4】
前記仕様情報登録部が、前記コメントが有効なバージョン範囲を特定する有効バージョンIDをコメントに対応させて前記仕様情報に記憶させ、前記仕様情報参照編集部が、前記仕様情報に記憶させたコメントと共に対応する有効バージョンIDを編集可能に参照させることを特徴とする請求項2又は請求項3に記載のプログラム管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate