(57)【要約】【課題】  本発明は、プログラムの修正を支援する方法及びシステムに関するものであり、従来は、予防保守を目的とするような修正箇所のチェックに対し、自動で検出する方法がなく、チェック漏れが生じたり、修正方針が直接開発者に伝わらないため、修正の同期がとれないことにより、不整合を起こすことがあった。【解決手段】  ソースコード群３６、４６の管理をクライアント単位に分散化してキーワード検索などのソース管理を自動で行わせ、修正指示を出すための全体管理サーバ１と、修正指示を中継し影響範囲の結果を製品ごとにまとめる製品管理サーバ２と、修正指示に対して該当するソースコードを自動で抽出するクライアント３の構成により、修正指示のトップダウンを実現するプログラム修正支援システムにより解決する。【選択図】  図１
2005346409.tif 000002
【特許請求の範囲】
【請求項１】
自マシンの役割を示す情報、自マシンが管理するクライアントの情報等を属性情報とし
て管理する属性情報管理部と、ユーザからの修正指示を入力して修正指示メッセージを作
成する修正指示メッセージ作成部と、前記修正指示メッセージを含む本システムで発生す
るメッセージを、前記属性情報の役割に基づいて決定される送信先に送信するメッセージ
処理部と、ソースコード群を管理し、前記修正指示メッセージにより指定されたソースコ
ードを抽出した検索結果を結果メッセージとして作成するソースコード管理部を備えるこ
とを特徴とするプログラム修正支援システム。
【請求項２】
請求項１のプログラム修正支援システムにおいて、前記結果メッセージの内容をログ出
力する結果ログ出力機能と、前記結果メッセージの内容をダイアログ表示する結果表示機
能とを有する結果報告部を備えることを特徴とするプログラム修正支援システム。
【請求項３】
請求項２のプログラム修正支援システムにおいて、前記修正メッセージ作成機能に修正
方針をコメントとして入力することを可能とし、前記修正指示メッセージに前記コメント
を含めたものを修正方針付き修正指示メッセージとして送受信可能な前記メッセージ処理
部と、前記修正方針付き修正指示メッセージの前記コメントを前記結果メッセージととも
に表示する前記修正結果表示機能を有する前記結果報告部を備えることを特徴とするプロ
グラム修正支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの修正を支援する方法及びシステムに関するものである。
【背景技術】
【０００２】
従来、ライブラリ関数やその関数の使い方に問題が発見されると、プログラムの予防保
守として、プログラム開発者は、自ら、自分が開発したプログラムの、問題の関数を使用
している箇所を見つけ出し、開発者自身の方針に従って、プログラムの修正を行ってきた
。規模の大きなプログラムでは、プログラムのコード量も多く、開発者も多いため、特定
の箇所を見つけ出すために、ファイル検索等が使われ、メールなどの手段で一貫した修正
方針を開発者に伝達して、問題箇所修正の統一をはかってきた。プログラムの変更管理に
おいては、特開２００２−１８２９１６号公報にあるようにソースモジュールを一元管理
し、特定の修正の影響範囲を抽出するものがある。
【０００３】
【特許文献１】特開２００２−１８２９１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来技術は、特定のプログラム変更に関して、関係する開発従事者へ漏れなく確認
を促すだけであり、複数のプロジェクトや複数の製品において、類似の修正箇所を提示で
きるような構成にはなっていない。また、起点が、開発従事者がプログラム変更の入力で
あるため、管理者から開発者へという統制された指示系統を構築することができず、修正
方針を統一させるためには、メール等の別の伝達手段により、指示を与えなければならな
い。変更確認と修正方針が同期しないことにより、同じ修正箇所に対して、短い間隔で修
正方針が変更されるような場合には、混乱が生じてしまうという問題がある。
【０００５】
本発明の目的は、プログラムのソースコードを管理し、トップダウンで行われる修正指
示に対して、修正箇所を開発者のマシンごとに自動で抽出することで、修正の漏れをなく
し、修正方針を直接開発者に伝達することで修正時期を逸しないプログラム修正支援シス
テムを提供することを主な特徴とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、開発者のクライアント上で開発されたプログラムを同クラ
イアント上で機械的に管理し、プログラムコードのチェック機能を提供するようにしたも
のである。さらに、コード修正チェックの指示を、メッセージとして発行する管理サーバ
を有し、メッセージに従ったコード修正チェックを実行して、チェック結果をクライアン
トと管理サーバに返信する機能を備えたものである。さらに、メッセージに修正方針を入
れ、チェック結果とともに修正方針をクライアントマシン上に表示させる機能を備えたも
のである。
【発明の効果】
【０００７】
本発明によれば、開発者のクライアントマシン上で開発されたソースコードをチェック
機能により自動で機械的にチェックできるため、開発者がクライアントで作成したソース
コードにおいて、修正箇所のチェック漏れをなくすことができる利点がある。また、本発
明の他の形態では、管理サーバを別のマシンにおき、複数のクライアントに、修正チェッ
クの指示と方針を、同時に展開することができるため、修正作業のタイミングが同期でき
、同件で修正方針が変わる場合にもタイムリーに修正方針を伝達することができる利点が
ある。
【発明を実施するための最良の形態】
【０００８】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
【０００９】
図１は、本発明における一実施例であるプログラム修正支援システムを示したものであ
る。本実施例では、ネットワーク５に接続された、全体管理サーバ１、製品管理サーバ２
、クライアント３、およびソースサーバ４で実現されており、全体管理サーバ１、製品管
理サーバ２、クライアント３には、それぞれ属性情報管理部（１１、２１、３１）、修正
メッセージ作成部（１２、２２、３２）、メッセージ処理部（１３、２３、３３）、結果
報告部（１４、２４、３４）、ソースコード管理部（１５、２５、３５）がある。
【００１０】
全体管理サーバ１は、修正を管理するルートとなる管理サーバであり、１つだけ存在し
、すべての製品のソースコードを管理する。製品管理サーバ２は、企業が扱う製品の中で
特定の一製品のソースコードを管理するサーバで、複数の製品を扱う企業においては複数
個存在する。クライアント３は、製品の開発に従事している開発者が利用する端末であり
、クライアント３で開発されたソースコードを管理している。本実施例では、全体管理、
製品管理、クライアントの３階層であるが、開発規模が大きな製品においては、製品にい
くつか含まれるコンポーネントの中の、特定コンポーネントのソースコードを管理するコ
ンポーネント管理サーバを、製品管理サーバとクライアントの間に置いて、４階層とする
ことも可能である。つまり、製品管理サーバは、複数のコンポーネント管理サーバを管理
下に起き、クライアントが、コンポーネント管理サーバの管理下に置かれる構成である。
【００１１】
全体管理サーバ１では、直接開発を行わないため、ソースコード管理部１５は機能しな
い。製品管理サーバ２でも、同様に開発が行われないのであれば、ソースコード管理部２
５は機能せず、また修正チェック指示を出さないのであれば、修正指示メッセージ作成部
２２が機能しなくても良い。クライアント３では、実際の開発が行われるため、ソースコ
ードの管理が行われるが、管理するソースコード群はクライアントマシンにあっても（ソ
ースコード群３６）、別のソースサーバ４にあっても（ソースコード群４６）よく、クラ
イアントマシンから参照が可能であり、かつ、ソースコードファイルの存在が確認できる
場所（パス）にあればよい。クライアント３は、末端に位置し、別のマシンを監視しない
ので、修正指示を出すことが無く、修正指示メッセージ作成部３２は機能しない。
【００１２】
図２は、本発明において、修正指示が出されてから、修正指示の影響がどの程度あるか
を管理者が把握するまでの、流れの概要を示したものである。まず、管理者は、全体管理
サーバの修正指示メッセージ作成部より、修正指示と修正方針を入力する（１０１）。修
正指示メッセージは、メッセージ処理部で処理されるが、属性情報において、該マシンの
役割が「クライアント」でない場合には、修正指示メッセージを、管理しているクライア
ントに送信する。全体管理サーバであれば各製品管理サーバへ、製品管理サーバであれば
、各クライアントへそれぞれメッセージをそのまま転送する（１０２、１０３）。クライ
アントでは、修正指示メッセージに従い、管理しているソースコードから、修正の対象と
なるソースコード（ファイル）を探し出し（１０４）、検索結果を一覧にして、結果メッ
セージとして、新たなメッセージを作成し、メッセージ処理部に渡す（１０５）。結果メ
ッセージである場合は、結果報告部に渡され、クライアントである場合は、クライアント
のマシン上に、結果である修正箇所一覧と修正方針をポップアップ表示させ、開発者に修
正指示を出す（１０６）。また、ロールとは関係なく、結果はそれぞれのマシン上で、ロ
グ出力される（１０７、１０８、１０９）。結果ログを見ることで、製品管理サーバでは
、扱っている製品における、修正の影響範囲を把握することができ、全体管理サーバでは
、全製品での、修正の影響範囲を把握することができる。本発明の拡張として、結果報告
部を、懸案管理システムと連携させることが考えられる。修正すべき一覧を懸案化するこ
とで、修正漏れをなくすことができる。
【００１３】
図３は、本発明のプログラム修正支援システムの各構成を、更に詳細化したものである
。属性情報管理部２１０には、属性情報を設定するための属性情報設定機能２１１と、設
定された属性情報を取り出し提供する属性情報提供機能２１２が含まれている。修正指示
メッセージ作成部２２０には、修正指示メッセージを管理者が入力するための修正メッセ
ージ入力機能２２１と、修正メッセージの送信を指示する修正メッセージ送信機能２２２
が含まれている。メッセージ処理部２３０には、受け取ったメッセージを解析して、適切
な機能やマシンにメッセージを送ることを決定する受信メッセージ解析機能２３１と、メ
ッセージを他のマシンに送るメッセージ中継機能２３２と、送受信したメッセージを管理
し、適切に送受信できているかを管理する送受信チェック機能２３３が含まれている。結
果報告部２４０には、結果メッセージをログ出力するための結果ログ出力機能２４１と、
結果を修正方針とともにクライアント上でダイアログ表示するための結果表示機能２４２
が含まれている。ソースコード管理部２５０には、ソースコードを管理下におくようソー
スコードＤＢに登録するためのソースコード登録機能２５１と、管理下のソースコードを
操作し該当するものを検索してくるソースコード検索機能２５２と、検索結果を結果メッ
セージ化するための結果メッセージ作成機能２５３と、結果メッセージの送信を指示する
結果メッセージ送信機能２５４と、ソースコードの存在を監視するためのメッセージを作
成して送信するための監視メッセージ送信機能２５５と、ソースコードの情報が管理され
ているソースコードＤＢ２５６が含まれている。
【００１４】
図４は、属性情報管理部２１０の各機能の詳細を示すものである。属性情報設定機能２
１１は、ＧＵＩを持ち、属性情報設定ダイアログ３１９のような入力画面で、マシンの属
性情報を、属性情報ファイル３３０に設定する。属性情報ファイルには、３つの属性を管
理している。ロール属性３３１は、マシンの役割を示すものである。マシンの管理構成は
、全体管理サーバをルートとした木構造となっており、役割も木構造の各部に応じて、根
に相当する「サーバ」、枝分かれする節に相当する「中継」、葉に相当する「クライアン
ト」の３種類ある。いずれか少なくとも１つが設定される。スタンドアローンとして、「
サーバ」と「クライアント」の２つのロールを持つことも可能である。管理クライアント
属性３３２は、該マシンが管理しているクライアント群を示す属性であり、全体管理サー
バが管理している製品管理サーバ群や、製品管理サーバが管理しているクライアント群が
記述される（３９１、３９２）。このため、管理するマシンを持たないクライアントには
、管理クライアント属性はない（３９３）。所属サーバ属性３３３は、マシンがどのマシ
ンの管理下に置かれているかを示すための属性であり、製品管理サーバでは全体管理サー
バが、クライアントでは製品管理サーバが記述される（３９２、３９３）。いずれのマシ
ンからも管理されていない全体管理サーバには、所属サーバの属性はない（３９１）。属
性情報提供機能２１２は、属性情報の内容を示すための機能であり、メッセージ処理部が
、メッセージを送信する相手のマシン情報を得るのに使用される。
【００１５】
図５は、修正指示メッセージ作成部２２０の各機能を詳細の詳細を示すものである。修
正メッセージ入力機能２２１は、ＧＵＩを持ち、修正メッセージ作成ダイアログ４１９の
ような入力画面で、修正すべき対象ファイルを特定するための条件と、修正方針コメント
を入力し、修正指示メッセージを作成する。修正指示メッセージ送信機能２２２は、修正
メッセージ入力機能２２１で作成されたメッセージを、メッセージ処理部に送信する機能
である。
【００１６】
図６は、メッセージ処理部２３０およびシステムを特定のフォーマットで流通するメッ
セージ５４０の詳細を示すものである。受信メッセージ解析機能２３１は、受信したメッ
セージの内容を解析し、次にメッセージを送るべき機能あるいはマシンを決定する機能で
ある。メッセージ中継機能２３２は、メッセージを送受信を行う機能であり、通信する機
能のほか、ネットワークを流れるメッセージの暗号化・複合化を行う。送受信チェック機
能２３３は、他のマシンとの、メッセージ送受信をチェックする機能であり、相手先のマ
シンに送信できなかった場合に再送する機能の他、定期的に相手先のマシンと送受信記録
の突合せを行い、メッセージの欠落がないかをチェックする。
【００１７】
メッセージ５４０は、本発明の修正支援システムで流通するメッセージを示すものであ
る。指示条件５４１には、指示内容が示されており、ログ出力や検索といった処理内容の
他に検索対象ファイルを特定するための条件が記述されている。コメント５４２には、指
示を補足する内容が示されている。指示条件構文５４９は、指示条件５４１に記載される
内容のフォーマットを示したものであり、本発明の単純な例では、file、key、procの３
つの内容をそれぞれ設定する構文となっている。メッセージにはいくつかのタイプがある
。修正指示メッセージ５９１は指示条件として、「Ｃ＋＋」ファイルで、「ｆｕｎｃＸ」
というキーワードの含まれているソースコードを「検索」することが示され、コメントに
は修正方針が示されている。チェック結果メッセージ５９２は指示条件として「ログ出力
」という指示のみであり、コメントに、出力すべき「結果内容」が含まれている。メッセ
ージはユニークなメッセージＩＤを持っており、５９２にあるように、結果には必ず指示
メッセージのメッセージＩＤが含まれる。監視メッセージ５９３は、クライアントで管理
しているソースコードを監視するために、ソースコード管理部が定期的に発行するもので
あるが、指示条件には、「すべて」のファイルが「見つかる」かどうかチェックすること
が示されており、コメントには見つからなかった場合の出力コメントが示されている。
【００１８】
図７は、結果報告部２４０の各機能を詳細に示すものである。結果ログ出力機能２４１
は、チェック結果の一覧を、ログ出力６９１にようなログとして出力する。修正指示の結
果だけではなく、ファイルの存在監視もログとして出力される。結果表示機能２４２は、
ＧＵＩを持っており、結果表示ダイアログ６２９のような画面で、チェック結果をマシン
上で表示させる。チェック対象６２１にはチェック結果が示され、コメントには修正方針
等の補足コメントが表示される。修正指示のチェック結果表示６９２では、チェック対象
に、修正対象のソースコードとキーワードが含まれている行番号が一覧表示され、コメン
トには、修正方針が示されている。結果メッセージ５９２では、修正方針がコメントに含
まれていないが、修正方針は、「結果内容」に含まれる、指示メッセージのメッセージＩ
Ｄから導かれて表示される。ファイル存在監視のチェック結果表示６９３では、チェック
対象にファイルの存在が確認できなかったファイル名が一覧表示され、コメントには、確
認できなかった旨が示されている。
【００１９】
図８は、ソースコード管理部２５０の各機能を詳細に示すものである。ソースコード管
理部２５０では、登録されたソースコードをＤＢで管理し、メッセージの指示に従い、ソ
ースコードの検索等を行う。ソースコード登録機能２５１は、ソースコードをＤＢに登録
するための機能であり、ソースコード登録ダイアログ７１９のようなＧＵＩを持っており
、ソースコードが格納されている場所入力する、場所フィールド７１２の他、ソースコー
ドの言語種別（７１３）、ソースコードの作成者（７１１）、製品名（７１４）を入力す
るフィールドを持つ。登録されたソースコードの情報は、ソースコードＤＢ２５６により
管理されている。ソースコードＤＢ７６９はソースコードＤＢの例であり、テーブル７９
０のようなＤＢテーブルで管理されている。１つのレコード（７９１）は、７９９のよう
な情報を持っている。ソースコード検索機能２５２は、メッセージに従って、ソースコー
ドＤＢ２５６を走査し、該当するファイルを抽出すると、目的のキーワードがファイルに
含まれる行がどうかをチェックし、該当するものを一覧化する。よって、指示メッセージ
のファイル条件が「Ｃ＋＋」であれば、ソースコードＤＢ７６９の「言語」で「ｃｐｐ」
であるものだけをレコード抽出し（７９３）、レコードの「場所」にあるファイルの内容
を検索して、「ｆｕｎｃＸ」といったキーワードが埋め込まれた行があれば、ファイル名
と行番号を結果として残す。ソースコードＤＢの走査により抽出されたファイルは存在し
ているかどうかっも同時にチェックされる。存在しない場合には、行番号の代わりに、フ
ァイルが見つからない旨のメッセージとともに結果に残す。検索結果は、結果メッセージ
作成機能２５３によって、メッセージ化される。検索結果の他に、修正指示メッセージの
メッセージＩＤを含めるなど、メッセージとして整形する。結果メッセージ送信機能２５
４では、作成された結果メッセージをメッセージ処理部に送る。監視メッセージ送信機能
２５５は、ソースコードが存在しているかを監視するためのものであり、自動で、定期的
にメッセージが発行され、監視が行われる。
【００２０】
メッセージ処理部は処理する内容の拡張等が可能であるが、本実施例では単純な３つの
処理のみを行う。図９は、メッセージ処理部の受信メッセージ解析機能が行う、メッセー
ジの送信先を決定するときの流れを示したものである。メッセージの解析は、メッセージ
に記述された指示内容がどんな処理であるかチェックする（８１０、８２０、８３０）。
指示内容が「ログ出力」であれば、結果報告部に送り（８１１）、更にロールが「クライ
アント」であれば（８１２）、結果報告部に再度送り、結果表示機能により結果を画面表
示させる（８１３）。また、ロールが「サーバ」でなければ、上位にあたる所属サーバへ
もメッセージを送る（８１５）。指示内容が「修正指示」のための検索の場合には、ロー
ルが「クライアント」であれば（８２１）、ソースコード管理部に送り（８２２）、検索
を実施し、ロールが「サーバ」か「中継」であれば（８２３）、管理下のクライアントに
メッセージを送る（８２４）。指示内容が「ファイル監視」の場合は、ロールが「クライ
アント」であれば（８３１）、ソースコード管理部に送り（８３２）、存在がチェックさ
れる。ファイル監視は、ソースコード検索の特殊な場合であり、すべてのソースコードを
、存在しないキーワードで検索するため、ファイル自体の存在チェックは行われるが、キ
ーワード検索は行われない。存在しないキーワードとは、管理しているソースコードのサ
イズよりも大きなキーワードを想定するものであり、ソースコードが存在していても、フ
ァイルサイズがキーワード長に満たないため、キーワード検索自体が行われない。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施方法の全体構成を示した説明図である。（実施例１）
【図２】１回の修正指示のフローを示したフローチャートである。
【図３】修正支援システムが備える各コンポーネントごとの機能を説明した図である。
【図４】属性情報管理部の機能を説明した図である。
【図５】修正しメッセージ作成部の機能を説明した図である。
【図６】メッセージ処理部の機能を説明した図である。
【図７】結果報告部の機能を説明した図である。
【図８】ソースコード管理部の機能を説明した図である。
【図９】メッセージの送信先を決定するフローチャートである。
【符号の説明】
【００２２】
１…全体管理サーバ（サーバ）、２…製品管理サーバ（中継）、３…クライアント（ク
ライアント）、４…ソースサーバ、５…ネットワーク、１１…属性情報管理部（サーバ）
、１２…修正指示メッセージ作成部（サーバ）、１３…メッセージ処理部（サーバ）、１
４…結果報告部（サーバ）、１５…ソースコード管理部（サーバ）、２１…属性情報管理
部（中継）、２２…修正指示メッセージ作成部（中継）、２３…メッセージ処理部（中継
）、２４…結果報告部（中継）、２５…ソースコード官吏部（中継）、３１…属性情報管
理部（クライアント）、３２…修正指示メッセージ作成部（クライアント）、３３…メッ
セージ処理部（クライアント）、３４…結果報告部（クライアント）、３５…ソースコー
ド管理部（クライアント）、３６…ソースコード群（ローカル）、４６…ソースコード群
（別マシン）。
【図１】
2005346409.tif 000003
【図２】
2005346409.tif 000004
【図３】
2005346409.tif 000005
【図４】
2005346409.tif 000006
【図５】
2005346409.tif 000007
【図６】
2005346409.tif 000008
【図７】
2005346409.tif 000009
【図８】
2005346409.tif 000010
【図９】
2005346409.tif 000011