(57)【要約】      （修正有）【課題】ソースファイルを改変することなくコメントを変更する。ユーザ毎に表示するコメントを変更する。【解決手段】コメント無しソーステーブル４３に対して、行番号３３の持つ値の行の直前に、行ＩＤ・コメント結合テーブル３１において対応するコメント３７を挿入することにより、コメント有りソーステーブル４４を作成することができる。例えば、行ＩＤ・コメント結合テーブル３１において行番号３５の持つ値が“１”のソースの行番号１及び２（ＡＲ３、４）の直前に対応するコメント１を挿入（ＡＲ１）し、行番号３５の持つ値が“２”のソースの行番号３及び４（ＡＲ５、６）の直前に対応するコメント２を挿入（ＡＲ２）することで、コメント有りソーステーブル４４を作成することができる。【選択図】図４
2010055513.tif 000002
【特許請求の範囲】
【請求項１】
プログラムのソースコードとコメントとを含むコメント入りソースファイルを管理するソース・コメント管理システムであって、
前記コメント入りソースファイルに基づいて、
該ソースファイルのソース名と、該ソースファイルのソースコード行だけを計上した場合の行番号と、の組に対して行ＩＤを割り当てたソース行ＩＤ管理テーブルと、前記行ＩＤとユーザＩＤとの組に対してコメントを割り当てたコメント管理テーブルと、前記ソースファイルからソースコードのみを抽出したコメント無しのソーステーブルと、を作成するソース・コメント分離処理部と、
該ソース・コメント分離処理部により作成された前記ソース行ＩＤ管理テーブルを格納するソース行ＩＤ管理データベースと、
前記行ＩＤとユーザＩＤとの組に対してコメントを管理するコメント管理テーブルを格納するコメント管理データベースと、
前記コメント無しのソーステーブルを格納するコメント無しソースファイル管理データベースと
を有することを特徴とするソース・コメント管理システム。
【請求項２】
さらに、前記ソース行ＩＤ管理テーブルと、前記コメント管理テーブルと、に基づいて作成される行ＩＤ・コメント結合テーブルと、前記コメント無しのソーステーブルとを結合してコメント有りソーステーブルを作成するソース・コメント結合処理部を有することを特徴とする請求項１に記載のソース・コメント管理システム。
【請求項３】
前記ソース・コメント結合処理部は、
指定されたソース名に一致する行ＩＤを前記ソース行ＩＤ管理データベースから取り出し、前記コメント管理データベースから、行ＩＤが一致し、かつ、ユーザＩＤが指定されたユーザ名である行を取り出した行ＩＤと行番号とコメントとを組とする行ＩＤ・コメント結合テーブルを作成し、
該行ＩＤ・コメント結合テーブルと、前記コメント無しソースファイル管理データベースに格納されているコメント無しのソーステーブルと、を結合し、コメント付きのソースファイルを作成する処理であって、
前記コメント無しソーステーブルに対して、前記行番号の持つ値の行の直前に、前記行ＩＤ・コメント結合テーブルにおいて対応するコメントを挿入することにより、コメント有りソーステーブルを作成する処理を行うことを特徴とする請求項２に記載のソース・コメント管理システム。
【請求項４】
請求項１から３までのいずれか１項に記載のソース・コメント管理システムにおける処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム開発おけるソースコードとコメントを分離して管理するソース・コメント管理技術に関し、より詳細には、ソースファイル自身を改変することなくコメントを変更し、また、同一ソースファイルに対してコメントを切り替えることが可能なソースとコメントとの管理技術に関するものである。
【背景技術】
【０００２】
プログラムの開発過程において、ソースファイルに対して適切なコメントを挿入することが一般的に行われている。コメントを挿入することにより、プログラムの理解を助けることができるなど、コメントは、ソースファイルを保守していく上で重要な要素の１つである。
【０００３】
従来、ソースコード（プログラム言語で書かれた実コード）とコメントとは、１つのファイルとして扱われていた。そのため、コメントの修正はソースファイルの修正を意味している。従って、例えば公開済みのプログラムのコメントを修正するとプログラムとソースファイルが不一致になってしまうため、行なれわないのが一般的であった。
【０００４】
ソースファイルにはコメントが静的に組み込まれており、近年のエディタ等を用いると、一部のコメントを隠して表示するということはできるものの、コメントを変更したり追加したりするためには、ソースファイルを変更しなければならない。
【０００５】
また、ある開発者にとっては有益なコメントであっても、他の開発者にとっては自明すぎるなど不要なコメントである場合などファイルの見通しを悪くさせる要因となっている場合もある。しかしながら、静的にコメントが組み込まれている同一のソースファイルを扱う必要がある場合には、これらの点は避けられないものであった。
【０００６】
本発明に関連する公知技術文献としては、出願人の出願に係るプログラム管理システムに関する発明として下記特許文献１が挙げられる。
【０００７】
【特許文献１】特開２００７−３２３２０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述のように、プログラムのソースファイルにおけるコメントは、プログラムの内容の理解を助ける上で重要な要素である。しかしながら、公開したプログラムのソースファイルに対してコメントの修正を行なうことは、論理上のソースコードは変わらないが物理的な電子データとしては異なるファイルになってしまい、それぞれを別のファイルとして管理する必要が生じるため、プログラムの保守が難しくなるという問題がある。
【０００９】
加えて、プログラムの開発は、複数の人がグループを作って行なう場合が多いが、グループの構成員のプログラミングスキルが異なることが多い。また、あるプログラムに長期間関わっている人と、短期間しか関わっていない人のプログラムへの理解度も異なる。すなわち、プログラムの理解度によって、つまり開発者に依存して必要なコメントは異なるものとなる。
【００１０】
本発明の目的は、コメントの追加・削除・変更を、プログラムのソースファイルは変更せずに行なえるようにことを目的とする。また、利用者によって表示するコメントを変更できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一観点によれば、プログラムのソースコードとコメントとを含むコメント入りソースファイルを管理するソース・コメント管理システムであって、前記コメント入りソースファイルに基づいて、該ソースファイルのソース名と、該ソースファイルのソースコード行だけを計上した場合の行番号と、の組に対して行ＩＤを割り当てたソース行ＩＤ管理テーブルと、前記行ＩＤとユーザＩＤとの組に対してコメントを割り当てたコメント管理テーブルと、前記ソースファイルからソースコードのみを抽出したコメント無しのソーステーブルと、を作成するソース・コメント分離処理部と、該ソース・コメント分離処理部により作成された前記ソース行ＩＤ管理テーブルを格納するソース行ＩＤ管理データベースと、前記行ＩＤとユーザＩＤとの組に対してコメントを管理するコメント管理テーブルを格納するコメント管理データベースと、前記コメント無しのソーステーブルを格納するコメント無しソースファイル管理データベースと、を有することを特徴とするソース・コメント管理システムが提供される。これにより、ソースとコメントとを、独立して管理する仕組みを構築することができる。
【００１２】
さらに、前記ソース行ＩＤ管理テーブルと、前記コメント管理テーブルと、に基づいて作成される行ＩＤ・コメント結合テーブルと、前記コメント無しのソーステーブルとを結合してコメント有りソーステーブルを作成するソース・コメント結合処理部を有することが好ましい。
【００１３】
また、前記ソース・コメント結合処理部は、指定されたソース名に一致する行ＩＤを前記ソース行ＩＤ管理データベースから取り出し、前記コメント管理データベースから、行ＩＤが一致し、かつ、ユーザＩＤが指定されたユーザ名である行を取り出した行ＩＤと行番号とコメントとを組とする行ＩＤ・コメント結合テーブルを作成し、該行ＩＤ・コメント結合テーブルと、前記コメント無しソースファイル管理データベースに格納されているコメント無しのソーステーブルと、を結合し、コメント付きのソースファイルを作成する処理であって、前記コメント無しソーステーブルに対して、前記行番号の持つ値の行の直前に、前記行ＩＤ・コメント結合テーブルにおいて対応するコメントを挿入することにより、コメント有りソーステーブルを作成する処理を行うことが好ましい。これにより、あるユーザからコメントの追加・変更などがあった場合に、ソース名に基づいて、コメント有りソーステーブルを更新することができる。
【００１４】
本発明は、上記に記載のソース・コメント管理システムにおける処理方法、該処理方法をコンピュータにより実行させるためのプログラムであっても良く、該プログラムをコンピュータに実行させるためのコンピュータ読みとり可能な記録媒体であっても良い。
【００１５】
このように、ソースコードとコメントを分けて管理し、ソースファイルを改変することなくコメントの変更ができる。また、コメントとユーザ名を関連付けることで、ユーザ毎にコメントを分けて管理することができ、ユーザ毎にコメントを切り替えて表示する等の処理が可能となる。
【発明の効果】
【００１６】
本発明によれば、以下のような効果がある。
まず、ソースファイルを改変することなく、コメントを追加・修正・削除することが可能となる。その結果、プログラム公開後にも、ソースファイルを変更しなくても、コメントの追加、コメントの修正、コメントの削除等が簡単に可能となる。
【００１７】
従って、プログラムに対するソースは常に１つとすることができ、コメントの変更によるバージョンの増加による保守性の劣化を防止することができる。
【００１８】
また、ユーザ毎に表示するコメントを変えることで、ユーザのスキルに応じて適したコメントの質・量を調整して管理することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を一実施の形態によるソース／コメント管理システムについて図面を参照しながら説明を行う。図１は、本発明の実施の形態によるソース・コメント管理システムの一構成例を示す機能ブロック図である。本実施の形態によるソース・コメント管理システム１は、破線で囲まれた部分に相当し、処理部（ＣＰＵ）３と、記憶部５と、この処理部３と通信インターフェイス７ａを介して接続されるデータベース１１〜１３と、を含んでいる。このソース・コメント管理システム１は、通信インターフェイス７ｂを介してユーザ端末Ａ、ユーザ端末Ｂ、Ｃ…、と接続され、コメント入りソースファイル１６のやり取りを行うことができるように構成されている。ユーザ端末８は、例えば、プログラム開発者がコメント入りソースファイルを表示したり編集を行うことができるようにする表示部８ａと、コメント等の入力を行うキーボードやマウスなどの入力部８ｂと、システムとの間でコメント入りソースファイルのやり取りを行うための通信部８ｃと、を備えている。処理部３と、通信インターフェイス７ａを介して接続されたデータベース１１〜１３は、コメントが一切ないソースコードのみのソースファイルを格納するコメント無しソースファイル管理データベースＤＢ１１と、コメント無しソースファイル管理データベースＤＢ１１において管理されているソースファイルの各行に割り振った行ＩＤを管理する行ＩＤ管理データベースＤＢ１２と、ソースに挿入すべきコメントを管理するコメント管理データベースＤＢ１３と、を含む。記憶部は、コメント無しソースファイル管理データベースＤＢ１１とコメント管理データベースＤＢ１３を結合してコメント入りのソースファイルを作成するソース・コメント結合プログラム５ａと、コメント入りソースファイルを解析してコードとコメントに分離した上でＤＢ１１に含まれるものとの差分を調べて追加行に行ＩＤを割りあてるソース・コメント分離プログラム５ｂと、を有している。処理部３と、プログラム５ａ・５ｂとが協働して、コメント入りのソースファイル１６を作成する処理と、差分を調べて追加行に行ＩＤを割りあてる処理と、を行う。
【００２０】
図２は、図１に示すソース行ＩＤ管理ＤＢ１２とコメント管理ＤＢ１３とに格納されているテーブルの一構成例をそれぞれ示した図である。図２（ａ）に示すように、ソース行ＩＤ管理ＤＢ１２は、ソース名２１、行番号２２、行ＩＤ２３の列からなるテーブルを格納する。ソース名２１は、ソースファイルの名称であり、行番号２２は、そのソースファイルのソースコード行だけを計上した場合の行番号であり、行ＩＤ２３は、ソース・コメント分離プログラム５ｂにより割り当てられたＩＤであり互いに重複しない値を持つ。図２（ｂ）に示すように、コメント管理ＤＢ１３は、行ＩＤ２４、ユーザＩＤ２５、コメント２６の列からなるテーブルを格納している。
【００２１】
図９は、ソース・コメント分離プログラム５ｂにおけるソース・コメント分離処理によりデータベースで管理するための処理の流れを示すフローチャート図である。まず、ソースファイル中のソースとコメントとを分ける（ステップＳ１）。次いで、ソースファイル名毎に、ソース名と行番号との組に行ＩＤを付与したソース行ＩＤ管理データ（テーブル）を作成する（ステップＳ２）。次いで、ソース行ＩＤ管理データを、ソース行ＩＤ管理データベースに格納する（ステップＳ３）。さらに、ソース行毎に、ユーザＩＤとコメントとを付したコメントデータを作成する（ステップＳ４）。このコメントデータを、コメント管理ＤＢに格納し（ステップＳ５）、処理を終了する。
【００２２】
図１０は、ソース・コメント結合処理の流れを示すフローチャート図である。まず、入力により指定されたソース名に一致する行番号ＩＤをソース行ＩＤ管理ＤＢ１２から取り出す（ステップＳ１１）。次いで、コメント管理ＤＢから、行ＩＤが一致し、かつ、ユーザＩＤが指定されたユーザである行を取り出しテーブルを作成する（ステップＳ１２）。
【００２３】
図３は、図２（ａ）に示すソース行ＩＤ管理ＤＢ１２から、例えば、主キー（組み合わせ）において、ソース名２１がabc.c に一致する行番号２２と行ＩＤ２３とを取り出し、図２（ｂ）のコメント管理ＤＢ１３から行ＩＤ２４が一致し、かつ、ユーザＩＤ２５がuserAである行を取り出して結合したテーブル３１である。すなわち、図２（ａ）に示すように、ソース名２１がabc.cである行は３行存在するが、図２（ｂ）に示すように、３行のうちユーザＩＤがｕｓｅｒＡのものだけをコメントとともに選択すると、図３に示すように、行ＩＤ３３と行番号３５とコメント３７とを結合した行ＩＤ・コメント結合テーブル３１を作成することができる。
【００２４】
図４は、図３に示す行ＩＤ・コメント結合テーブル３１とコメント無しソースファイル管理データベースＤＢ１１に格納されているコメントなしのソーステーブル４３とを取得して両者を結合し、ソース・コメント結合プログラム８ａの処理によりコメント付きのソースファイルを作成する処理の概要を示す図である。図４に示すように、コメント無しソーステーブル４３に対して、行番号３５の持つ値の行の直前に、行ＩＤ・コメント結合テーブル３１において対応するコメント３７を挿入することにより、コメント有りソーステーブル４４を作成することができる。例えば、行ＩＤ・コメント結合テーブル３１において行番号３５の持つ値が“１”のソースの行番号１及び２（ＡＲ３、４）の直前に対応するコメント１を挿入（ＡＲ１）し、行番号３５の持つ値が“２”のソースの行番号３及び４（ＡＲ５、６）の直前に対応するコメント２を挿入（ＡＲ２）することで、コメントありソーステーブルを作成することができる（ステップＳ１３）。
【００２５】
このようにして作成したコメント有りソーステーブル４４を、ソースを表示部８ａに表示し、入力部８ｂを利用して編集するユーザ端末８に通信インターフェイス７ｂを介して送信し提示することができる。ユーザ端末８において編集された結果は、通信インターフェイス７ｂを介してシステム側に送信される。
【００２６】
次に、ユーザ端末８における編集処理に基づくシステム側の処理について説明する。
図５は、ソース行ＩＤ管理ＤＢ１２内に格納されるテーブルについて編集処理に基づいてソースの２行目にコードが追加された場合の更新結果を示す図である。図１０も合わせて参照する。ステップＳ１４で、コードの追加が検出されると（Ｙｅｓ）、ソース・コメント分離プログラム５ｂは、まず初めに、ソースとコメントを分ける（ステップＳ１５）。次いで、分離したソースを前バージョンのソースと比較することにより、追加されたソースコードが２行目であることを特定することができる（ステップＳ１６）。行番号２には、新たな行ＩＤを割りあてて符号５１のようにテーブルに挿入する。ソース名が同じであり行番号が２以上の行５２、５３の行番号は、＋１をして行番号を更新し、ソース行ＩＤ管理ＤＢ１２に格納する（ステップＳ１７、ステップＳ１８）。
【００２７】
図６は、図５に示すようにコードを追加した後に、例えば、さらにuserAが３行目にコメント５を追加した場合を例にして処理時のコメント管理ＤＢ１３の更新結果例を示す図である。図５に示すソース行ＩＤ管理ＤＢ１２から、abc.cの３行目の行IDがABC0002であることが求まる。その後、ABC0002とuserAとの組をキーとして、コメント５をレコードとしてコメント管理ＤＢ１３に行６１を追加する。
【００２８】
図７は、図３で説明したケースと同様に、ソース名がabc.cであり、かつ、ユーザＩＤがuserA（ユーザＡ）である項目を取り出す処理を、図５及び図６のテーブルを使って行なった結果を示す図である。図３と比べるとわかるように、コメント５の行７１が追加されていることがわかる。すなわち、userAが３行目にコメントを追加したことで、テーブルが更新されている。
【００２９】
図８は、図２（ａ）、（ｂ）の２つのテーブルを、userB（ユーザｂ）のソースabc.cについてデータＩＤで結合した結果を示す図である。その結果は、図８に示すように、図５、図６のテーブルで同じ処理をした場合と同じ内容となる。このことは、userAがコメントを追加してもuserBのコメントには影響を与えないことを意味している。
【００３０】
このように、ユーザ毎に、コメントに関する独立した管理ができることがわかる。また、上記の実施の形態において、添付図面に図示されている構成等については、これらに限定されるものではなく、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
【００３１】
また、本実施の形態で説明した機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。尚、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００３２】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００３３】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また前記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００３４】
（まとめ）
本発明の実施の形態による管理システムによれば、ソースファイルを改変することなく、コメントを追加・修正・削除等することが可能となる。従って、プログラムが公開された後においても、ソースファイルには一切の変更をしなくても、不足しているコメントを新たに追加したり、誤ったコメントを修正したり、過剰なコメントを削除したりすることが自由にできる。従って、公開プログラムに対するソースは常に１つとすることができ、コメントの変更によるバージョン数の増加を抑制し、プログラムの保守性を良好にすることができる。
【００３５】
また、ユーザ毎に表示するコメントの管理が行われ、コメントをユーザ毎に独立して変更等することができるため、ユーザのプログラムの理解度の違いを反映させてコメントを変えるようなことも可能であり、ユーザに適したコメント内容・コメント量の表示を行わせることが可能となる。
【産業上の利用可能性】
【００３６】
本発明は、プログラムのソース・コメント管理システムとして利用することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施の形態によるソース・コメント管理システムの一構成例を示す機能ブロック図である。
【図２】本実施の形態によるソース・コメント管理システムのソース行ＩＤ管理ＤＢ（図２（ａ））と、コメント管理ＤＢ（図２（ｂ））内のテーブルの内容の一例を示す図である。
【図３】図２の２つのテーブル（ａ）、（ｂ）から、行IDが一致するレコードを結合し、ソース名がabc.c、ユーザIDがuserAであるレコードを抽出した結果として作成されたテーブルを示す図である。
【図４】図３のテーブルと、コメント無しのソースファイルから、コメント有りのソースファイルを作成する様子を示す図である。
【図５】ソースファイルにソースコードを挿入した時の、更新後のソース行ＩＤ管理ＤＢ内のテーブルの内容を示す図である。
【図６】ソースファイルにコメントを挿入した時の、更新後のコメントＤＢ内のテーブルの内容を示す図である。
【図７】図５と図６のテーブルから、行IDが一致するレコードを結合し、ソース名がabc.c、ユーザIDがuserAであるレコードを抽出したテーブルの内容を示す図である。
【図８】userBのソースabc.cについてのコメント行のテーブルの内容を示す図である。
【図９】ソース・コメント分離プログラムにおけるソース・コメント分離処理によりデータベースで管理するための処理の流れを示すフローチャート図である。
【図１０】ソース・コメント結合処理の流れを示すフローチャート図である。
【符号の説明】
【００３８】
１…ソース・コメント管理システム、３…処理部（ＣＰＵ）、５ａ…ソース・コメント結合プログラム、５ｂ…ソース・コメント分離プログラム、１１・・・コメント無しソースファイル管理データベース、８…ユーザ端末、１２・・・ソースＩＤ管理ＤＢ、１３・・・コメント管理ＤＢ、１６・・・ユーザに対して表示するコメント入りソースファイル。
【図１】
2010055513.tif 000003
【図２】
2010055513.tif 000004
【図３】
2010055513.tif 000005
【図４】
2010055513.tif 000006
【図５】
2010055513.tif 000007
【図６】
2010055513.tif 000008
【図７】
2010055513.tif 000009
【図８】
2010055513.tif 000010
【図９】
2010055513.tif 000011
【図１０】
2010055513.tif 000012