(57)【要約】【課題】ソフトウェア部品に対する変更を本質的な部分と補助的な部分とに区分して管理し、ソフトウェア部品の利用効率を向上させるソフトウェア部品管理装置を提供する。【解決手段】本発明に係るソフトウェア部品管理装置は、本質的な部分と補助的な部分とが識別されているソフトウェア部品の管理情報が記録される部品記録部と、利用システムとソフトウェア部品とが関連付けられて記録される利用システム記録部と、ソフトウェア部品および利用システムの管理情報を登録および更新する登録更新部と、情報を利用システムに通知する情報通知部とを具備し、登録更新部は、更新しようとするソフトウェア部品の変更箇所が本質的な部分か補助的な部分かを判定した後に部品記録部および利用システム記録部の少なくとも一方を更新し、情報通知部は、変更箇所がソフトウェア部品の本質的な部分に該当する場合に利用システムに変更情報を通知することを特徴とする。【選択図】  図２
2007241610.tif 000002
【特許請求の範囲】
【請求項１】
本質的な部分と補助的な部分とが識別されて記述されているソフトウェア部品に関する情報が記録される部品記録部と、
前記ソフトウェア部品を利用している利用システムに関する情報が、利用しているソフトウェア部品の情報と関連付けられて前記利用システム毎に記録される利用システム記録部と、
前記部品記録部および前記利用システム記録部に対して、前記ソフトウェア部品の情報および前記利用システムの情報を登録および更新する登録更新部と、
各種情報を前記利用システムに通知する情報通知部と、
を具備し、
前記登録更新部は、
更新しようとする前記ソフトウェア部品の変更箇所が、本質的な部分に該当するのか補助的な部分に該当するのかを判定した後、前記部品記録部および前記利用システム記録部の少なくとも一方を更新し、
前記情報通知部は、
更新されたソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに変更情報を通知し、前記変更箇所が前記ソフトウェア部品の補助的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに対しても変更情報を通知しない、
ことを特徴とするソフトウェア部品管理装置。
【請求項２】
前記登録更新部は、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当し、かつ更新しようとするソフトウェア部品の更新者が、前記ソフトウェア部品の作成者である場合には、前記部品記録部の前記ソフトウェア部品の情報を更新し、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当し、かつ更新しようとするソフトウェア部品の更新者が、前記ソフトウェア部品の作成者ではない場合には、前記作成者に更新の可否と問い合わせ、更新の承諾が得られたときに限り、前記部品記録部の前記ソフトウェア部品の情報を更新する、
ことを特徴とする請求項１に記載のソフトウェア部品管理装置。
【請求項３】
前記登録更新部は、
前記作成者に更新の可否を問い合わせた後、更新の承諾が得られなかった場合には、前記部品記録部にそのソフトウェア部品を新たなソフトウェア部品として登録する、
ことを特徴とする請求項２に記載のソフトウェア部品管理装置。
【請求項４】
前記登録更新部は、
前記新たなソフトウェア部品が、前記利用システム記録部に登録されている利用システム以外の利用システムに利用される場合には、前記利用システム記録部に、その利用システムを新たな利用システムとして前記新たなソフトウェア部品と関連付けて登録する、
ことを特徴とする請求項３に記載のソフトウェア部品管理装置。
【請求項５】
前記登録更新部は、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の補助的な部分に該当する場合は、前記利用システム記録部に対して、前記更新しようとするソフトウェア部品が関連付けられて登録されている利用システムにおける前記ソフトウェア部品の情報を更新する、
ことを特徴とする請求項１に記載のソフトウェア部品管理装置。
【請求項６】
前記登録更新部は、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の補助的な部分に該当し、かつ前記更新しようとするソフトウェア部品が、既に登録されている利用システム以外の新たな利用システムに利用される場合には、前記利用システム記録部に、その利用システムを新たな利用システムとして前記新たなソフトウェア部品と関連付けて登録する、
ことを特徴とする請求項１に記載のソフトウェア部品管理装置。
【請求項７】
前記本質的な部分と前記補助的な部分を識別する情報は、前記ソフトウェア部品のソースコードが有するコメント文の中に記述されている、
ことを特徴とする請求項１に記載のソフトウェア部品管理装置。
【請求項８】
本質的な部分と補助的な部分とが識別されて記述されているソフトウェア部品に関する情報が記録される部品記録部と、前記ソフトウェア部品を利用している利用システムに関する情報が、利用しているソフトウェア部品の情報と関連付けられて前記利用システム毎に記録される利用システム記録部と、を具備するソフトウェア部品管理装置のソフトウェア部品管理方法において、
前記部品記録部および前記利用システム記録部に対して、前記ソフトウェア部品の情報および前記利用システムの情報を登録、および更新する登録更新ステップと、
各種情報を前記利用システムに通知する情報通知ステップと、
を備え、
前記登録更新ステップは、
更新しようとする前記ソフトウェア部品の変更箇所が、本質的な部分に該当するのか補助的な部分に該当するのかを判定した後、前記部品記録部および前記利用システム記録部の少なくとも一方を更新し、
前記情報通知ステップは、
更新されたソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに変更情報を通知し、前記変更箇所が前記ソフトウェア部品の補助的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに対しても変更情報を通知しない、
ことを特徴とするソフトウェア部品管理方法。
【請求項９】
前記登録更新ステップは、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当し、かつ更新しようとするソフトウェア部品の更新者が、前記ソフトウェア部品の作成者である場合には、前記部品記録部の前記ソフトウェア部品の情報を更新し、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当し、かつ更新しようとするソフトウェア部品の更新者が、前記ソフトウェア部品の作成者ではない場合には、前記作成者に更新の可否と問い合わせ、更新の承諾が得られたときに限り、前記部品記録部の前記ソフトウェア部品の情報を更新する、
ことを特徴とする請求項８に記載のソフトウェア部品管理方法。
【請求項１０】
前記登録更新ステップは、
前記作成者に更新の可否を問い合わせた後、更新の承諾が得られなかった場合には、前記部品記録部にそのソフトウェア部品を新たなソフトウェア部品として登録する、
ことを特徴とする請求項９に記載のソフトウェア部品管理方法。
【請求項１１】
前記登録更新ステップは、
前記新たなソフトウェア部品が、前記利用システム記録部に登録されている利用システム以外の利用システムに利用される場合には、前記利用システム記録部に、その利用システムを新たな利用システムとして前記新たなソフトウェア部品と関連付けて登録する、
ことを特徴とする請求項１０に記載のソフトウェア部品管理方法。
【請求項１２】
前記登録更新ステップは、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の補助的な部分に該当する場合は、前記利用システム記録部に対して、前記更新しようとするソフトウェア部品が関連付けられて登録されている利用システムにおける前記ソフトウェア部品の情報を更新する、
ことを特徴とする請求項８に記載のソフトウェア部品管理方法。
【請求項１３】
前記登録更新ステップは、
更新しようとするソフトウェア部品の変更箇所が前記ソフトウェア部品の補助的な部分に該当し、かつ前記更新しようとするソフトウェア部品が、既に登録されている利用システム以外の新たな利用システムに利用される場合には、前記利用システム記録部に、その利用システムを新たな利用システムとして前記新たなソフトウェア部品と関連付けて登録する、
ことを特徴とする請求項８に記載のソフトウェア部品管理方法。
【請求項１４】
前記本質的な部分と前記補助的な部分を識別する情報は、前記ソフトウェア部品のソースコードが有するコメント文の中に記述されている、
ことを特徴とする請求項８に記載のソフトウェア部品管理方法。
【請求項１５】
ソースコードで記述されているソフトウェア部品であって、
本質的部分と補助的部分とが区分され、それぞれの部分には前記本質的部分と前記補助的部分とを識別する識別情報が付加されている、
ことを特徴とするソフトウェア部品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア部品管理装置、ソフトウェア部品管理方法、およびそのソフトウェア部品に係り、特に、ソフトウェア部品を登録し、管理するソフトウェア部品管理装置、ソフトウェア部品管理方法、およびそのソフトウェア部品に関する。
【背景技術】
【０００２】
今日、ソフトウェアを用いたシステムの開発形態や運用形態として、適宜の単位で分割されたソフトウェアを部品として取り扱い（以下、この分割されたソフトウェアをソフトウェア部品という）、開発済みのソフトウェア部品を複数組み合わせることによって、新たなソフトウェアを効率良く開発し、或いは運用する形態が多く用いられている。
【０００３】
このようなソフトウェア部品の登録、管理、払い出し等を行うシステムとしてソフトウェア部品管理装置がある。
【０００４】
ソフトウェア部品を利用する側では、ソフトウェア部品管理装置から必要とする１つ又は複数のソフトウェア部品の払い出しを受け、これらのソフトウェア部品を組み合わせて、或いはさらに独自に開発したソフトウェアモジュールを組み込んで利用者側のシステム（以下、利用システムという）を構築している。
【０００５】
一般に、ソフトウェア部品は複数存在し、また、利用システムも複数存在する。このため、ソフトウェア部品管理装置では、払い出したソフトウェア部品がどの利用システムに組み込まれているのかを一元的に管理することができる機能が必要となってくる。
【０００６】
また、特定のソフトウェア部品にバグ等の不具合が発見された場合や、特定のソフトウェア部品を改修（バージョンアップ）した場合には、このソフトウェア部品を利用している利用者（利用システム）に通知することが必要となってくる。
【０００７】
このような要請に応えるため、例えば、特許文献１が開示するソフトウェア部品管理装置は、ソフトウェア部品情報と、利用システム情報と、これらを関連付けるリンク情報とを登録し、特定のソフトウェア部品を利用している利用システムを総て検索し、バグ情報等を総ての利用システムに対して漏れなく通知することができる機能を有している。
【特許文献１】特開２００１−２８２５１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
今日、ソフトウェア部品管理装置から払い出されるソフトウェア部品は、ソースコードのレベルで払い出されることが多い。このため、利用者側では、比較的容易にソフトウェア部品を変更することが可能であり、オリジナルのソフトウェア部品を自システムに適合したソフトウェア部品に改修することができる。
【０００９】
このような改修は、必ずしもソフトウェア部品の本質的な部分の改修ではなく、エラー処理や入出力データのパラメータ調整等、補助的な部分の改修であることも多い。
【００１０】
このように、各利用システムにおいては、オリジナルのソフトウェア部品とは補助的な部分が異なる「亜種」のソフトウェア部品が多数存在しうる。
【００１１】
従来、このような「亜種」のソフトウェア部品の管理（履歴管理等）は、利用システム側で行われる形態が多く、オリジナルのソフトウェア部品の払い出し元で一元的に管理する形態はあまり採られていなかった。
【００１２】
このため、利用システム側で行った改修がソフトウェア部品の本質的な部分の変更（例えば、本質的部分の機能拡張や本質的部分の不具合対策等）であった場合でも、オリジナルのソフトウェア部品の作成者以外は、その変更が他の利用システムに与える影響の有無や程度を容易に把握できないため、適切に他の利用システムに通知することが困難であった。
【００１３】
他方、ある利用システム側で行った改修の情報を、本質的な部分と補助的な部分を区別せず、総ての他の利用システム側に通知するものとすると、情報を受けた利用システム側では、自システムには不要な改修を行ってしまう可能性もあり、かえって弊害をもたらすこととなる。
【００１４】
本発明は、上記事情に鑑みてなされたものであり、ソフトウェア部品を利用システム毎に管理すると共に、ソフトウェア部品に対する変更を本質的な部分と補助的な部分とに区分して管理し、ソフトウェア部品の利用効率を向上させることができるソフトウェア部品管理装置、ソフトウェア部品管理方法、およびソフトウェア部品を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明に係るソフトウェア部品管理装置は、請求項１に記載したように本質的な部分と補助的な部分とが識別されて記述されているソフトウェア部品に関する情報が記録される部品記録部と、前記ソフトウェア部品を利用している利用システムに関する情報が、利用しているソフトウェア部品の情報と関連付けられて前記利用システム毎に記録される利用システム記録部と、前記部品記録部および前記利用システム記録部に対して、前記ソフトウェア部品の情報および前記利用システムの情報を登録、および更新する登録更新部と、各種情報を前記利用システムに通知する情報通知部と、を具備し、前記登録更新部は、更新しようとする前記ソフトウェア部品の変更箇所が、本質的な部分に該当するのか補助的な部分に該当するのかを判定した後、前記部品記録部および前記利用システム記録部の少なくとも一方を更新し、前記情報通知部は、更新されたソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに変更情報を通知し、前記変更箇所が前記ソフトウェア部品の補助的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに対しても変更情報を通知しない、ことを特徴とする。
【００１６】
また、上記課題を解決するため、本発明に係るソフトウェア部品管理方法は、請求項８に記載したように、本質的な部分と補助的な部分とが識別されて記述されているソフトウェア部品に関する情報が記録される部品記録部と、前記ソフトウェア部品を利用している利用システムに関する情報が、利用しているソフトウェア部品の情報と関連付けられて前記利用システム毎に記録される利用システム記録部と、を具備するソフトウェア部品管理装置のソフトウェア部品管理方法において、前記部品記録部および前記利用システム記録部に対して、前記ソフトウェア部品の情報および前記利用システムの情報を登録、および更新する登録更新ステップと、各種情報を前記利用システムに通知する情報通知ステップと、を備え、前記登録更新ステップは、更新しようとする前記ソフトウェア部品の変更箇所が、本質的な部分に該当するのか補助的な部分に該当するのかを判定した後、前記部品記録部および前記利用システム記録部の少なくとも一方を更新し、前記情報通知ステップは、更新されたソフトウェア部品の変更箇所が前記ソフトウェア部品の本質的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに変更情報を通知し、前記変更箇所が前記ソフトウェア部品の補助的な部分に該当する場合には、そのソフトウェア部品を利用している利用システムに対しても変更情報を通知しない、ことを特徴とする。
【００１７】
また、上記課題を解決するため、本発明に係るソフトウェア部品は、ソースコードで記述されているソフトウェア部品であって、本質的部分と補助的部分とが区分され、それぞれの部分には前記本質的部分と前記補助的部分とを識別する識別情報が付加されている、
ことを特徴とする。
【発明の効果】
【００１８】
本発明に係るソフトウェア部品管理装置、ソフトウェア部品管理方法、およびソフトウェア部品によれば、ソフトウェア部品を利用システム毎に管理すると共に、ソフトウェア部品に対する変更を本質的な部分と補助的な部分とに区分して管理し、ソフトウェア部品の利用効率を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
本発明に係るソフトウェア部品管理装置、ソフトウェア部品管理方法、およびソフトウェア部品の実施形態に付いて、添付図面を参照して説明する。
【００２０】
（１）ソフトウェア部品管理装置の構成
図１は、本実施形態に係るソフトウェア部品管理装置１の運用概念の一例を示す図である。
【００２１】
ソフトウェア部品管理装置１は、ユーザが作成したソフトウェア部品や、そのソフトウェア部品を利用するシステム（以下、単に利用システムという）を登録すると共に、他のユーザや他の利用システムに対して登録したソフトウェア部品の払い出しを行い、ソフトウェア資産の有効活用を図る装置である。
【００２２】
ソフトウェア部品管理装置１は、例えばサーバ装置の一種であり、ハードウェア構成としては、ＣＰＵ等を具備する制御装置、ＨＤＤ等を具備する記憶装置、ＬＡＮ等の電気通信回線や記録媒体を介してデータの授受を行う入出力装置等を備えて構成されるものである。
【００２３】
本実施形態に係るソフトウェア部品管理装置１では、新たに作成したソフトウェア部品の新規登録（以下、単に登録という）や払い出しの管理を行うだけではなく、ソフトウェア部品に変更が生じた場合、バージョンアップしたソフトウェア部品の更新登録（以下、単に更新という）を行い、変更履歴等も含めて管理している。
【００２４】
また、ソフトウェア部品の更新は、オリジナルのソフトウェア部品の作成者（図１の例では、利用システムＡにおけるソフトウェア部品の開発者）が行うだけでなく、後述する所定の条件の下で、作成者以外のユーザ（図１の例では、利用システムＢ、Ｃ、およびＤのソフトウェア部品利用者）も更新可能に構成されている。
【００２５】
さらに、後述するように、ソフトウェア部品の本質的な部分に変更が加えられた場合は、該当するソフトウェア部品を利用している総ての利用システム（ソフトウェア部品の利用者）に対して、ソフトウェア部品の本質部に変更が加えられた旨を通知するように構成されている。この際、利用システムＢ、Ｃ、およびＤのソフトウェア部品利用者が、本質的な部分に変更を加えようとする場合には、オリジナルのソフトウェア部品の作成者に対して変更の問い合わせをし、作成者から変更の承諾が得られた場合にだけ、該当するソフトウェア部品の更新を認めるものとしている。
【００２６】
なお、図１は、説明の便宜上、利用システムＡに係る開発者がソフトウェア部品の作成者であり、この作成者が作成したソフトウェア部品をソフトウェア部品管理装置１に登録を行った後、他の利用システムＢ、Ｃ、およびＤが、登録されたソフトウェア部品を利用する場合を例示しているが、ソフトウェア部品管理装置１にアクセス可能な利用システムは、図１に例示した数に限定されるものではなく、また、ソフトウェア部品の作成、登録も利用システムＡからだけではなく、他の利用システムＢ，Ｃ，Ｄ等からも可能である。
【００２７】
図２は、本実施形態に係るソフトウェア部品管理装置１のシステム構成例を示す図である。
【００２８】
ソフトウェア部品管理装置１は、部品記録部１０、利用システム記録部２０、登録更新部３０、および情報通知部４０を備えて構成されている。
【００２９】
部品記録部１０には、ソフトウェア部品のソースコード（図３参照）の他、該当するソフトウェア部品の管理情報、例えば、ソフトウェア部品の名称、バージョン番号、作成者等が記録される。
【００３０】
図２の例示では、作成者甲によって作成された部品（ａ）１１および部品（ｂ）１２がいずれもバージョン番号Ｖｅｒ１．０として記録されており、作成者乙によって作成された部品（ｃ）１３がＶｅｒ１．２として、また、部品（ｄ）１４がＶｅｒ１．１として記録されている。また、作成者丙によって作成された部品（ｅ）１５が、Ｖｅｒ１．３として記録されている。
【００３１】
なお、バージョン番号がＶｅｒ１．０以外の部品は、既に少なくとも１回以上の更新がされたことを例示している。
【００３２】
利用システム記録部２０には、部品記録部１０に記録されているソフトウェア部品を利用しているシステムが、利用しているソフトウェア部品と関連付けられて記録される。
【００３３】
例えば、利用システムＡでは、部品記録部１０に記録されているソフトウェア部品のうち、部品（ａ）、部品（ｂ）、および部品（ｅ）を利用しており、これに対応して、利用システムＡの記録欄２１には、該当するソフトウェア部品の管理情報（部品（ａ）２１１、部品（ｂ）２１２、および部品（ｅ）２１３）が記録される。
【００３４】
同様に、利用システムＢでは、部品記録部１０に記録されているソフトウェア部品のうち、部品（ｂ）および部品（ｃ）を利用しており、これに対応して、利用システムＢの記録欄２２には、該当するソフトウェア部品の管理情報（部品（ｂ）２２１および部品（ｃ）２２２）が記録されている。
【００３５】
また同様に、利用システムＣでは、部品記録部１０に記録されているソフトウェア部品のうち、部品（ｄ）を利用しており、これに対応して、利用システムＣの記録欄２３には、該当するソフトウェア部品の管理情報（部品（ｄ）２３１）が記録される。
【００３６】
なお、ソフトウェア部品の名称（オリジナルのソフトウェア部品に付される名称）が同じであっても、異なる利用システムにおいて異なるバージョンのソフトウェア部品が利用される場合がある。このため、利用システム毎にバージョン番号等による履歴管理が可能となるように構成している。このことを明示するため、図２においては、同じ部品名称のソフトウェア部品であっても、利用システム毎に異なる符合をソフトウェア部品に付している。また、利用システム記録部２０と部品記録部１０とでは、同じソフトウェア部品の名称であっても、異なる符合を付している。
【００３７】
登録更新部３０では、ユーザ（ソフトウェア部品の登録者や更新者）から入力されるソフトウェア部品のソースコードや管理情報を分析し、部品記録部１０と利用システム記録部２０の双方、或いは部品記録部１０と利用システム記録部２０の何れか一方にソフトウェア部品を登録、或いは更新する。登録更新部３０の動作は、本発明のポイントとなる部分であり、より詳細に後述する。
【００３８】
情報通知部４０では、部品記録部１０に記録されているソフトウェア部品の各利用者（各利用システム）に対して各種の情報を通知する。特に、更新されるソフトウェア部品の変更箇所が本質的な部分に該当すると登録更新部３０で判定された場合には、その旨を各利用システムに対して通知する。
【００３９】
図３は、本実施形態に係るソフトウェア部品管理装置１において取り扱うソフトウェア部品に係るソースコードの一例を模式的に示した図である。
【００４０】
通常、ソフトウェア部品のソースコードは、本質的な部分と補助的な部分とに区分することができる。本質的な部分とは、そのソフトウェア部品で実現する機能の核となる部分である。これに対して、補助的な部分とは、例えば、エラー処理を行っている部分、動作パラメータを作成する部分、入出力の範囲をチェックする部分、ユーザインタフェースの制御を行う部分等である。
【００４１】
図３に例示したソースコードでは、本質的な部分の開始位置の直前にコメント文（／＊＜本質部＞＊／）挿入し、本質的な部分の終了位置の直後にコメント文（／＊＜／本質部＞＊／）を挿入することで本質的な部分の範囲を明示している。同様に、補助的な部分の開始位置の直前にコメント文（／＊＜補助部＞＊／）挿入し、補助的な部分の終了位置の直後にコメント文（／＊＜／補助部＞＊／）を挿入することで補助的な部分の範囲を明示している。
【００４２】
ソフトウェア部品を複数の利用システムで利用する場合、一般に、本質的な部分は利用システム間で共通的に使用される部分であり、補助的な部分は、各利用システムに適合する形態に変更されて使用される場合が多い。
【００４３】
本質的な部分に変更が加えられた場合、総ての利用システムに影響を及ぼすため、変更に伴う影響度は甚大である。これに対して、補助的な部分に変更が加えられた場合は、その影響は一部の利用システムの範囲に止まる場合が多く、与える影響度は比較的小さい。
【００４４】
別の見方をすると、特定の利用システムにおいて、例えば、機能拡張や重大なバグの解消のために本質的な部分に加えられた改修は、他の利用システムにおいても共通的に反映する必要性が高い。一方、特定の利用システムにおいて加えられた補助的な部分の改修は、改修の行われた特定の利用システムに固有の改修であり、他の利用システムでは不要な改修である場合が多い。
【００４５】
本実施形態に係るソフトウェア部品管理装置１では、図３に例示したように、ソースコードに本質的な部分と補助的な部分とが識別されて記述されているソフトウェア部品が登録されることを前提としている。
【００４６】
ソースコードに本質的な部分と補助的な部分とを識別して記述する作業は、オリジナルのソフトウェア部品の内容を熟知している作成者が行うのが最も効率的であろうが、本発明は「誰が」記述するかを限定するものではない。
【００４７】
また、本質的な部分と補助的な部分とを識別して記述する具体的な方法も、図３に例示したコメント文による方法に限定するものではない。要は、本質的な部分と補助的な部分の範囲をソフトウェア部品管理装置１が機械的に（自動的に）読み取ることが可能であり、かつ、その記述がソフトウェア部品の実行に影響を与えない態様で記述されていればよい。
【００４８】
（２）ソフトウェア部品管理方法
上記のように構成されたソフトウェア部品管理装置１の動作（ソフトウェア部品管理方法）について説明する。
【００４９】
図４は、ソフトウェア部品管理方法の処理例を示すフローチャートである。以下、このフローチャートに沿って説明する。
【００５０】
なお、このフローチャートに係る処理は、特に言及しない限り、ソフトウェア部品管理装置１のうち登録更新部３０（図２参照）が行う処理である。
【００５１】
まず、ステップＳＴ０で、ソフトウェア部品管理装置１のユーザ（ソフトウェア部品の登録者、或いは更新者）が作成したソフトウェア部品に関するデータを入力する。入力するデータは、例えば、ソフトウェア部品の部品名称、そのソフトウェア部品を利用する利用システム名、ソフトウェア部品のソースコード、登録者名（作成者名）、更新者名等である。
【００５２】
入力形態は、特に限定するものではなく、例えば、ＬＡＮ、インターネット、専用回線等の電気通信回線を介して入力する形態でも良く、或いは光ディスク、磁気ディスク、半導体メモリ等の記録媒体を介した入力形態でもよい。
【００５３】
次に、ステップＳＴ１で、入力したソフトウェア部品が、既に部品記録部１０や利用システム記録部２０に登録されているソフトウェア部品を更新するためのソフトウェア部品であるのか、或いは部品記録部１０や利用システム記録部２０に新規に登録するための新たなソフトウェア部品であるのかを判定する。この判定は、例えばソフトウェア部品の名称等によって判定する。
【００５４】
新たなソフトウェア部品の場合には、新規登録の処理（ステップＳＴ１３）へ進む。一方、既に登録されているソフトウェア部品の更新の場合には、ステップＳＴ２へ進む。
【００５５】
ステップＳＴ２では、入力されたソフトウェア部品のソースコードと既に登録されている同じ名称のソフトウェア部品（過去バージョンのソフトウェア部品）のソースコードとを比較する。この目的は、入力されたソフトウェア部品に係る変更が、本質的な部分に対する変更なのか、補助的な部分に対する変更なのかを判定するためである。
【００５６】
図３に示したように、ソースコードには、本質的な部分と補助的な部分とが識別されて記述されている。
【００５７】
従って、入力されたソースコードと登録されているソースコードとを比較し、その相違箇所を検出することで、更新しようとするソフトウェア部品の変更が本質的な部分に対する変更なのか、或いは補助的な部分に対する変更なのかを判定することができる。
【００５８】
更新しようとするソフトウェア部品の変更箇所が補助的な部分である場合（ステップＳＴ３のＮｏ）は、ステップＳＴ７へ進む。
【００５９】
ステップＳＴ７では、更新しようとするソフトウェア部品を利用するシステムが、既に利用システム記録部２０に登録されている利用システムであるのか、或いは新たな利用システムであるのかを判定する。
【００６０】
利用システムが、利用システム記録部２０に既に登録されている場合（ステップＳＴ７のＮｏ）には、その利用システムに関連付けられているソフトウェア部品の情報のみを更新して終了する（ステップＳＴ１５）。
【００６１】
一方、更新しようとするソフトウェア部品を利用するシステムが新たな利用システムである場合（ステップＳＴ７のＹｅｓ）には、利用システム記録部２０にその新たな利用システムの記録欄を作成する（ステップＳＴ８）。そして、新たに作成した利用システムの記録欄に、更新しようとするソフトウェア部品を新規に登録する。
【００６２】
図５は、変更箇所が補助的な部分に該当するソフトウェア部品を更新するときの動作を具体例を用いて説明する図である。
【００６３】
この具体例では、利用システムＢで利用しているソフトウェア部品のうち、部品（ｂ）を更新者丁が更新しようとする場合を例示している。部品（ｂ）の補助的な部分のみを変更し、従来の部品（ｂ）のバージョン番号をＶｅｒ１．０からＶｅｒ１．１に更新しようとするものである。
【００６４】
登録更新部３０の処理は、変更箇所が補助的な部分であるため、ステップＳＴ３からステップＳＴ７へ進む。さらに利用システムＢが既に利用システム記録部２０に登録されている利用システムであるため、ステップＳＴ７からステップＳＴ１５へ進み、利用システムＢに記録欄に記録されている部品（ｂ）の管理情報のうち、バージョン番号をＶｅｒ１．０からＶｅｒ１．１に更新している。
【００６５】
このように、更新しようとするソフトウェア部品の利用システム記録部２０における更新は、そのソフトウェア部品を利用している利用システムＢに係る管理情報のみを更新し、他の利用システムに係る管理情報は更新しない。例えば、部品（ｂ）は、利用システムＡでも使用しているが、利用システムＡにおいては部品（ｂ）は変更されておらずＶｅｒ１．０のまま使用されているため、利用システムＡにおける部品（ｂ）の管理情報は変更しない。
【００６６】
また、更新しようとするソフトウェア部品の変更箇所が補助的な部分の場合には、部品記録部１０に登録されている部品（ｂ）の管理情報も変更しないものとしている。部品記録部１０に記録する管理情報は、後述するように、部品の本質的な部分に対して変更が加えられたときにのみ更新するようにしている。
【００６７】
部品記録部１０では、基幹となるソフトウェア部品（そのソフトウェア部品の親種）の管理情報を１部品に対して１管理情報として管理している。これに対して、利用システム記録部２０では、各利用システムにおいて個別に発生しうるソフトウェア部品の亜種を利用システム毎に管理することで両者の管理分担を行い、効率的な管理を可能としている。
【００６８】
さらに、更新しようとするソフトウェア部品の変更箇所が補助的な部分の場合には、情報通知部４０を介した利用システムへの通知を行わないものとしている。前述したように、補助的な部分の変更は、特定の利用システムに固有な変更である場合がほとんどである。このような補助的な部分に係る変更を総ての利用システムに対して通知するものとすると、各利用システムでは、あまり重要ではない（自システムには関係の無い）変更通知を頻繁に受けることになり、無用な混乱を招く結果ともなりかねず、利用システムの開発段階では開発効率を低下させ、利用システムの運用段階では円滑な運用を阻害することとなる。
【００６９】
従って、変更箇所が補助的な部分の場合には、他の利用システムへの通知を行わない方が、かえって開発効率を向上させ、また、円滑な運用を継続することができる。
【００７０】
図６は、ソフトウェア部品の変更箇所が補助的な部分であるものの、そのソフトウェア部品を利用する利用システムが未登録の場合の動作について、具体例を用いて説明する図である。
【００７１】
部品（ｂ）の補助的な部分のみを変更し、従来の部品（ｂ）のバージョン番号Ｖｅｒ１．０からＶｅｒ１．１に更新しようとする点については図５の例と同じであるが、更新者（更新依頼者）戊が、新たな利用システムＤに係る者である点が図５と相違している。
【００７２】
この場合、登録更新部３０は、利用システム記録部２０に新たな利用システムの欄（利用システムＤ２４）を作成し（図４のステップＳＴ８）、その後、作成した利用システムＤに部品（ｂ）の管理情報をバージョン番号Ｖｅｒ１．１として登録する。
【００７３】
次に、ソフトウェア部品の変更箇所が本質的な部分の場合の更新動作について説明する。図４のステップＳＴ３において、変更箇所が本質的な部分であると判定された場合には、さらにステップＳＴ４において、ソフトウェア部品を更新しようとする者が、そのソフトウェア部品のオリジナル作成者か否かを判定する。
【００７４】
一般に、オリジナル作成者はそのソフトウェア部品の内容を最も熟知している者であるため、この場合にはソフトウェア部品の更新を認める。また、変更箇所は本質的な部分であるため、そのソフトウェア部品の「親種」として部品記録部１０に記録されているソースコードと管理情報を更新する（ステップＳＴ５）。
【００７５】
また、ソフトウェア部品の本質的な部分の変更は、他の利用システムに対しても影響を及ぼす可能性が高い（他の利用システムにおいても同様の変更を行った方が好ましい）ため、情報通知部４０を介して、本質的な変更がなされた旨を、そのソフトウェア部品を利用している総ての利用システムに対して通知するものとしている（ステップＳＴ６）。
【００７６】
なお、ステップＳＴ７以下の処理は、本質的な変更があった場合と補助的な変更があった場合とで異なるところは無いため説明を省略する。
【００７７】
図７は、上述した本質的変更に対する登録更新部３０の動作を具体例で示す図である。部品（ｂ）の本質的な部分の変更を更新する動作であり、更新依頼者が、オリジナルの部品（ｂ）の作成者である甲の場合である。
【００７８】
この場合、登録更新部３０は、部品記録部１０に登録されている部品（ｂ）のソースコードを更新すると共に、その管理情報であるバージョン番号をＶｅｒ１．０からＶｅｒ１．１に更新する。
【００７９】
さらに、部品（ｂ）を利用している総ての利用者（利用システム）に対して、部品（ｂ）の本質的な部分が更新された旨を通知する。この通知には、実際に更新されたソースコードを添付して通知する形態としても良い。
【００８０】
本質的な部分の変更は、例えば、そのソフトウェア部品の機能拡張や重大なバグを改修するための変更であり、総ての利用システムにとって重要な（必要な）変更である可能性が高いものである。この通知を受けた利用者（利用システム）は、更新者に問い合わせる、或いは添付されたソースコードを解析する等によって変更内容を迅速に把握することが可能となり、利用システムの開発効率や運用効率を向上させることができる。
【００８１】
なお、利用システム記録部２０で行う自動的な更新は、更新依頼者に係る利用システム（この場合、利用システムＡ）に対してのみ行うものとし、他の利用システムについては、個々の利用システムにおいてその変更を採用すると判断し、個々の利用システムから更新の依頼があった後に行うものとしている。
【００８２】
ソフトウェア部品の変更箇所が本質的な部分であり、かつその更新依頼者がオリジナルのソフトウェア部品の作成者ではない場合（ステップＳＴ４のＮｏ）には、オリジナル作成者に対して更新の可否に関する判断を求めるものとしている（ステップＳＴ１０）。例えば、情報通知部４０を介してオリジナル作成者に係る利用システムに問い合わせる形態としてもよいし、別途電子メール等で問い合わせる形態でも良い。
【００８３】
問い合わせを受けたオリジナル作成者は、本質的な部分の変更の可否を判断し、その結果を、情報通知部４０を介して、或いは電子メール等で回答する。
【００８４】
登録更新部３０では、オリジナル作成者から承認が得られたか否かを判断し（ステップＳＴ１１）、承認が得られた場合には、作成者本人による更新処理と同様の処理を行う（ステップＳＴ５以降の処理）。
【００８５】
図８は上記の動作を具体例で説明する図であり、部品（ｂ）の本質的な部分の変更に関する更新依頼が、部品（ｂ）のオリジナル作成者の甲ではなく、利用システムＢに係る更新依頼者丁から出された場合の動作である。
【００８６】
登録更新部３０は、更新の可否に関する問い合わせを作成者甲に対して行い、甲から更新の許可（承認）が得られると、部品記録部１０に対して部品（ｂ）の更新を行う。この場合、本質的な部分の変更により、部品（ｂ）の実質的な作成者は甲から丁に移ったとみなすことも可能であり、図８の例では、バージョン番号をＶｅｒ１．０からＶｅｒ１．１へ更新することに加えて、作成者も甲から丁に更新している。
【００８７】
さらに、登録更新部３０は、情報通知部４０を介して、部品（ｂ）の総ての利用者（利用システム）に対して部品（ｂ）の本質的な部分が更新された旨を通知している。
【００８８】
なお、利用システム記録部２０の更新については、他の具体例と同様に、更新依頼のあった利用システム（変更したソフトウェア部品を実際に取り込んでいる利用システム）についてのみ、そのソフトウェア部品の管理情報を更新するものとしている。
【００８９】
他方、ソフトウェア部品の本質的な部分を作成者以外の者が変更し、更新の可否に関する問い合わせを作成者甲に対して行った結果、オリジナル作成者から承認が得られなかった場合（ステップＳＴ１１のＮｏ）には、そのソフトウェア部品を、更新依頼者が作成した新たなソフトウェア部品として扱うものとしている。
【００９０】
即ち、利用システム記録部２０に対しては、そのソフトウェア部品を利用している利用システムの旧管理情報（オリジナル作成者から承認の得られなかったソフトウェア部品の管理情報）を削除し（ステップＳＴ１２）、部品記録部１０に対しては、新たなソフトウェア部品として、本質的な部分を変更したソースコードと、その管理情報を新規に登録する（ステップＳＴ１３）。
【００９１】
また、削除した旧管理情報に代えて、新たなソフトウェア部品としての管理情報を利用システム記録部２０に追加登録するものとしている（ステップＳＴ１４、ステップＳＴ９）。
【００９２】
図９は、作成者から承認が得られなかった場合の動作を具体例で説明する図である。部品（ｂ）の本質的な部分の変更に関する更新依頼が、部品（ｂ）のオリジナル作成者の甲ではなく、利用システムＢに係る更新依頼者丁から出された場合であり、かつ更新の承認がオリジナル作成者の甲から得られなかった場合である。
【００９３】
この場合、部品記録部１０においては、更新しようとした部品（ｂ）に係るソースコードおよびその管理情報は、更新されずにそのままバージョン番号Ｖｅｒ１．０として維持される。
【００９４】
一方、部品（ｂ）の本質的な部分を変更したソフトウェア部品は、新たな部品（ｆ）として、部品記録部１０に登録されることになる。この場合、バージョン番号も新規にＶｅｒ１．０とされ、変更者（更新依頼者）である丁が部品（ｆ）の作成者として登録されることになる。
【００９５】
また、利用システム記録部２０においては、利用システムＢに係る旧い部品（ｂ）が削除され、新たに部品（ｆ）が登録されることになる。
【００９６】
なお、部品（ｂ）に関しては、本質的な部分も含めて、何ら変更されていないことになるため、部品（ｂ）を利用している利用者（利用システム）に対しても、通知は行われない。
【００９７】
以上に説明したように、本実施形態に係るソフトウェア部品管理装置１、およびソフトウェア部品管理方法によれば、部品記録部１０においてソフトウェア部品の「親種」に係るソースコードと管理情報を管理すると共に、利用システム記録部２０において、利用システム毎にその利用システムで使用されているソフトウェア部品の「亜種」の管理情報をも管理することができるため、漏れがなくかつ効率的なソフトウェア部品の管理が可能となる。
【００９８】
また、登録されているソフトウェア部品の更新に際しては、変更箇所がそのソフトウェア部品の本質的な部分であるのか、或いは補助的な部分であるのかを判定し、変更箇所が本質的な部分である場合に限って他の利用者に通知するように構成しているため、不必要な情報の氾濫を防止し、必要な情報だけを的確に利用者に提供することができる。この結果、利用システムの開発段階では開発効率が向上し、運用段階では円滑な運用を促進することができる。
【００９９】
さらに、本質的な部分に変更を加えたソフトウェア部品を作成者以外の者が更新しようとする場合には、作成者から更新の承認が得られた場合に限りそのソフトウェア部品の更新を行うように構成しているため、不用意な過誤改修によるソフトウェア部品の更新を未然に防止することができる。
【０１００】
なお、本発明は上記の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【０１０１】
【図１】本発明に係るソフトウェア部品管理装置の運用概念を例示する図。
【図２】本発明に係るソフトウェア部品管理装置の一実施形態のシステム構成例を示す図。
【図３】本発明に係るソフトウェア部品管理装置の一実施形態に対して入力されるソフトウェア部品のソースコードの一例を示す図。
【図４】本発明に係るソフトウェア部品管理方法の一実施形態における処理例を示すフローチャート図。
【図５】補助的な部分に変更が加えられたソフトウェア部品を更新するときの動作を説明する第１の図。
【図６】補助的な部分に変更が加えられたソフトウェア部品を更新するときの動作を説明する第２の図。
【図７】本質的な部分に変更が加えられたソフトウェア部品を更新するときの動作を説明する第１の図。
【図８】本質的な部分に変更が加えられたソフトウェア部品を更新するときの動作を説明する第２の図。
【図９】本質的な部分に変更が加えられたソフトウェア部品を更新するときの動作を説明する第３の図。
【符号の説明】
【０１０２】
１  ソフトウェア部品管理装置
１０  部品記録部
２０  利用システム記録部
３０  登録更新部
４０  情報通知部
【図１】
2007241610.tif 000003
【図２】
2007241610.tif 000004
【図３】
2007241610.tif 000005
【図４】
2007241610.tif 000006
【図５】
2007241610.tif 000007
【図６】
2007241610.tif 000008
【図７】
2007241610.tif 000009
【図８】
2007241610.tif 000010
【図９】
2007241610.tif 000011