JP2009223822A - Source code update notifying device and source code update notifying method - Google Patents

Source code update notifying device and source code update notifying method Download PDF

Info

Publication number
JP2009223822A
JP2009223822A JP2008070258A JP2008070258A JP2009223822A JP 2009223822 A JP2009223822 A JP 2009223822A JP 2008070258 A JP2008070258 A JP 2008070258A JP 2008070258 A JP2008070258 A JP 2008070258A JP 2009223822 A JP2009223822 A JP 2009223822A
Authority
JP
Japan
Prior art keywords
source code
request
developer
identification information
request information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008070258A
Other languages
Japanese (ja)
Inventor
Junichi Fukumoto
純一 福本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008070258A priority Critical patent/JP2009223822A/en
Publication of JP2009223822A publication Critical patent/JP2009223822A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To prevent a plurality of developers from simultaneously updating a plurality of source codes having dependency. <P>SOLUTION: A request registering means 23 receives request information including a source code from a client device. A dependency accessing means 16 retrieves a relevant source code corresponding to the source code among the plurality of dependency source codes with reference to a dependency graph 32 for associating the plurality of source codes with a plurality of dependency source codes. A developer map accessing means 28 retrieves relevant developer identification information corresponding to a source code file including the relevant source code from a developer identification information aggregate with reference to a developer map 34 for associating a plurality of file names with the developer identification information aggregate. A notifying means 24 notifies a developer indicated by the relevant developer identification information of the request information. In such a case, the developer can confirm whether a source code which the developer attempts to update conflicts with update by other developers. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、ソースコード更新通知装置およびソースコード更新通知方法に関し、特に、ソフトウェアの開発において複数人の並行開発をサポートするソースコード更新通知装置およびソースコード更新通知方法に関する。   The present invention relates to a source code update notification device and a source code update notification method, and more particularly to a source code update notification device and a source code update notification method that support parallel development of a plurality of people in software development.

ソフトウェアの開発において、複数人の並行開発をサポートする版管理ソフトウェアが知られている。このようなソフトウェアとしては、オープンソースの「CVS」、「Subversion」や、Microsoft社の「Visual SourceSafe」などが例示される。また、ソースコードの変更要求を管理するソフトウェアとしては、オープンソースの「Trac」が知られており、版管理ソフトウェアの「Subversion」と連携して、複数の変更要求と複数のソースコードの関連を管理することができる。   In software development, version management software that supports parallel development of multiple people is known. Examples of such software include open source “CVS” and “Subversion”, Microsoft “Visual SourceSafe”, and the like. Also, open source “Trac” is known as software for managing source code change requests, and the relationship between multiple change requests and multiple source codes is linked with the version management software “Subversion”. Can be managed.

複数人の並行開発において、特に大規模な開発になった場合において、ソースコードは、複数の開発者が同時にチェックインする場面が多くあり、互いに影響しあうソースコードを異なる開発者が更新するというような場面も想定される。このとき、あるソースコードへの変更要求に対する、他のソースコードの影響を把握するためには、変更要求の対象となっているソースコードを確認して、関数やクラス、メソッドの間の依存関係を確認しなければならず、膨大な工数がかかるという課題がある。   In the case of parallel development by multiple people, especially in the case of large-scale development, the source code is often checked in by multiple developers at the same time, and different developers update the source code that affects each other. Such a situation is also assumed. At this time, in order to understand the influence of other source code on the change request to a certain source code, check the source code that is the target of the change request, and the dependency between functions, classes, and methods. There is a problem that enormous man-hours are required.

特開2005−266976号公報には、修正の影響を受ける可能性のあるプログラムの確認状況を把握することができるプログラム保存装置が開示されている。そのプログラム保存装置は、プログラムと、そのプログラムを保存する保存者を特定する情報とを関連付けて保存し、他のプログラムを前記保存されたプログラムの修正版のプログラムとしてさらに保存することができる保存手段を有するプログラム保存装置において、他のプログラムを修正版のプログラムとして保存するときに、前記他のプログラムにより影響を受ける可能性のあるプログラムの部分を前記保存された修正前のプログラムから抽出する抽出手段と、前記抽出手段により抽出されたプログラムの部分が影響を受ける可能性のあることを前記プログラムの部分を保存した保存者に通知する表示を行う表示手段とを有し、前記表示手段は、前記保存した保存者に通知する表示を行う際に、前記他のプログラムによる影響の確認を要求する旨、および/または、影響の確認結果の通知を要求する旨を表示することを特徴としている。   Japanese Patent Laying-Open No. 2005-266976 discloses a program storage device that can grasp the confirmation status of a program that may be affected by correction. The program storage device stores a program in association with information specifying a storage person who stores the program, and can store another program as a modified version of the stored program. Extracting means for extracting a part of a program that may be affected by another program when the other program is stored as a modified version program from the stored program before modification And display means for performing a display for notifying a saver who has saved the program part that the part of the program extracted by the extraction means may be affected. Check the effect of the other program when displaying the notification to the saved user. Effect that demanded, and / or is characterized by displaying the requesting notification of the confirmation result of the impact.

このような方式では、影響を受けるソースコードを他の開発者が同時並行で更新していた場合、影響を与えるソースコードがリポジトリに登録された時点ではじめて、影響があることが通知されるため、その通知までに実施したソースコードの更新作業が無効となる可能性があるという問題がある。   In such a method, if other developers have updated the affected source code in parallel, it will be notified that the affected source code is affected only when the affected source code is registered in the repository. There is a problem that the source code update work performed before the notification may become invalid.

特開2000−20298号公報には、開発の途中で生じるパッケージ構成の変更作業を支援し、適切なパッケージを用いた設計を行うことが可能なソフトウェア開発支援装置が開示されている。そのソフトウェア開発支援装置は、モジュール化の概念をパッケージという形で取り入れたソフトウェア開発を支援するソフトウェア開発支援装置であって、ソースファイルを解析し、各パッケージを構成するクラス及びメンバの情報を登録したリポジトリデータベースと、解析の結果得られた構文解析情報を登録した構文解析情報データベースとを作成するソース解析部と、前記リポジトリデータベース中の情報を可視化してクラス及びメンバのシンボルとクラス及びメンバの参照関係を示す図形データを作成するリポジトリ可視化部と、前記作成した図形データをグラフィック端末へ表示すると共に当該ソースファイルのパッケージ構成を変更する指示を受け付ける表示制御部と、前記表示制御部を介して受けた指示に従って、リポジトリデータベース、構文解析情報データベース及びソースファイルの内容を更新し、当該ソースファイルのパッケージ構成を変更するプログラム修正部とを備えることを特徴としている。   Japanese Patent Application Laid-Open No. 2000-20298 discloses a software development support apparatus that supports a package configuration change operation that occurs during development and can perform design using an appropriate package. The software development support device is a software development support device that supports software development that incorporates the concept of modularization in the form of a package. The software development support device analyzes a source file and registers information about classes and members that constitute each package. Source analysis unit that creates a repository database and a parsing information database in which parsing information obtained as a result of analysis is registered, and information in the repository database is visualized, and symbols of classes and members, and references of classes and members A repository visualization unit that creates graphic data indicating the relationship, a display control unit that displays the generated graphic data on a graphic terminal and receives an instruction to change the package configuration of the source file, and a display control unit that receives the graphic data. Follow the instructions Database, and updates the contents of the parsed information database and the source file is characterized by comprising a program modifying unit to modify the package configuration of the source file.

特開2002−41488号公報には、コンピューティング環境のクラスタを管理するシステムが開示されている。そのシステムは、前記システムが、前記コンピューティング環境のクラスタのデータ用のグローバル・データ記憶域を提供するためのレジストリ・コンポーネントであって、前記クラスタが前記コンピューティング環境の1つまたは複数のノードを含むレジストリ・コンポーネントと、前記1つまたは複数のノードのうちの少なくとも1つのノード上にローカルにデータを維持し、前記レジストリ・コンポーネントにグローバル・データを記憶するための構成コンポーネントと、前記クラスタの1つまたは複数の通信経路の状況を提供するための活性コンポーネントであって、前記レジストリ・コンポーネントおよび前記構成コンポーネントに依存する活性コンポーネントと、前記クラスタの1つまたは複数の他のコンポーネントに1つまたは複数のサービスを提供するためのグループ・サービス・コンポーネントであって、前記レジストリ・コンポーネント、前記構成コンポーネント、および前記活性コンポーネントに依存するグループ・サービス・コンポーネントと、前記クラスタの1つまたは複数のリソース・コントローラへの通信を可能にするためのリソース管理コンポーネントであって、前記レジストリ・コンポーネント、前記構成コンポーネント、および前記グループ・サービス・コンポーネントに依存するリソース管理コンポーネントとを含んでいる。   Japanese Unexamined Patent Application Publication No. 2002-41488 discloses a system for managing clusters in a computing environment. The system is a registry component for the system to provide global data storage for data of a cluster of the computing environment, the cluster comprising one or more nodes of the computing environment. A registry component comprising: a configuration component for maintaining data locally on at least one of the one or more nodes and storing global data in the registry component; and one of the clusters An active component for providing the status of one or more communication paths, one active component depending on the registry component and the configuration component, and one on one or more other components of the cluster A group service component for providing a plurality of services, the group service component depending on the registry component, the configuration component, and the active component; and one or more resource resources of the cluster A resource management component for enabling communication to a controller, the resource component depending on the registry component, the configuration component, and the group service component.

特開2006−277435号公報には、複数開発者が同一のソースファイルを同時に編集することを可能としながらソースファイルの整合性を確保し、かつ開発者がソースファイルの変更部分を容易に把握可能なバージョン管理システムが開示されている。そのソースファイルバージョン管理システムは、開発対象プログラムを構成するソースファイルを登録し、登録されたソースファイルに対する編集処理についての排他制御を行うとともに、編集されたソースファイルの変更履歴管理を行うソースファイルバージョン管理システムにおいて、前記ソースファイルのプログラム言語に応じてソースファイルを解析し、当該ソースファイルをメソッド以外の共通情報とメソッド単位とのソースコードファイルに分割したメソッドファイルを生成して、当該メソッドファイルを前記排他制御及び変更履歴管理の対象として登録するソースファイル分割登録手段を備えることを特徴としている。   Japanese Patent Application Laid-Open No. 2006-277435 ensures consistency of source files while allowing multiple developers to edit the same source file at the same time, and allows the developer to easily grasp the changed part of the source file A version control system is disclosed. The source file version management system registers the source files that make up the development target program, performs exclusive control of editing processing for the registered source files, and manages the change history of the edited source files In the management system, the source file is analyzed according to the programming language of the source file, a method file is generated by dividing the source file into source information files of common information other than methods and method units, and the method file is Source file division registration means for registering as a target of the exclusive control and change history management is provided.

特開2007−122135号公報には、開発プロセスの各段階における成果物について、修正された成果物により影響される他の成果物を通知することにより、ソフトウェアの開発を支援する開発支援装置が開示されている。その開発支援装置は、ソフトウェアの要求を記述した要求記述文書、該要求記述文書から作成される設計モデル、および、該設計モデルから作成されるプログラムコードである成果物の開発を支援する開発支援装置であって、成果物および成果物間の対応情報を格納する記憶部と、修正する成果物の入力を受け付ける修正受付部と、前記修正受付部により受け付けた成果物を起点として、前記記憶部に格納された成果物間の対応情報を辿ることにより、修正する成果物が影響する他の成果物を追跡する修正追跡部と、前記修正追跡部により追跡された成果物を通知する修正通知部と、を有することを特徴としている。   Japanese Unexamined Patent Application Publication No. 2007-122135 discloses a development support apparatus that supports software development by notifying other deliverables that are affected by the corrected deliverables for the deliverables at each stage of the development process. Has been. The development support apparatus includes a request description document describing a software request, a design model created from the request description document, and a development support apparatus that supports development of a product that is a program code created from the design model. A storage unit that stores a product and correspondence information between the product, a correction reception unit that receives an input of the product to be corrected, and a product received by the correction reception unit as a starting point. By tracking correspondence information between stored artifacts, a correction tracking unit that tracks other artifacts affected by the artifact to be corrected, a correction notification unit that notifies the artifacts tracked by the correction tracking unit, It is characterized by having.

特開2005−266976号公報JP 2005-266976 A 特開2000−20298号公報JP 2000-20298 A 特開2002−41488号公報JP 2002-41488 A 特開2006−277435号公報JP 2006-277435 A 特開2007−122135号公報JP 2007-122135 A

従来の版管理システムにおいては、同一のファイルに対して複数の開発者が同時に更新を行う危険性を回避することはできるが、チェックインを行うファイルとは異なるが関連のあるファイルが更新された場合に、関連のあるファイルの更新に当該ファイルが影響を受ける場合であっても、その更新の影響を反映することなく、当該ファイルをチェックインしてしまう状態を回避することができないことがある。   In the conventional version management system, it is possible to avoid the risk of multiple developers updating the same file at the same time, but related files that are different from the files that are checked in are updated. In some cases, even if the file is affected by the update of the related file, it may not be possible to avoid the state of checking in the file without reflecting the effect of the update. .

また、従来のバグ管理システムにおいては、プロジェクトにおいて現在行われている要求の一覧から各要求の詳細を開発者が確認することはできるが、自分が更新をしようと思っている部分に関連する要求が存在するかどうかは、要求を一つずつ手作業で確認していかなければならず、プロジェクトの規模が大きくなった場合には現実的ではないという課題がある。   Also, in the conventional bug management system, the developer can check the details of each request from the list of requests currently made in the project, but the request is related to the part that he / she wants to update. Whether or not there exists must be confirmed manually one by one, and there is a problem that it is not realistic when the scale of the project increases.

本発明の課題は、依存関係のある複数のソースコードを複数の開発者が同時に更新することを防止するソースコード更新通知装置およびソースコード更新通知方法を提供することにある。   An object of the present invention is to provide a source code update notification apparatus and a source code update notification method that prevent a plurality of developers from updating a plurality of source codes having a dependency relationship at the same time.

本発明によるソースコード更新通知装置は、要求登録手段と依存関係アクセス手段と開発者マップアクセス手段と通知手段とを備えている。その要求登録手段は、ソースコードを含む要求情報をクライアント装置から受け取る。その依存関係アクセス手段は、複数ソースコードを複数依存ソースコードに対応付ける依存関係グラフを参照して、前記複数依存ソースコードのうちの前記ソースコードに対応する該当ソースコードを検索する。その開発者マップアクセス手段は、複数ファイル名を開発者識別情報集合に対応付ける開発者マップを参照して、前記開発者識別情報集合のうちから前記該当ソースコードを含むソースコードファイルに対応する該当開発者識別情報を検索する。その通知手段は、前記該当開発者識別情報が示す開発者に前記要求情報を通知する。   The source code update notification device according to the present invention comprises request registration means, dependency relationship access means, developer map access means, and notification means. The request registration means receives request information including source code from the client device. The dependency relationship access means refers to a dependency relationship graph that associates a plurality of source codes with a plurality of dependency source codes, and searches for the corresponding source code corresponding to the source code among the plurality of dependency source codes. The developer map access means refers to a developer map that associates a plurality of file names with a developer identification information set, and corresponds to a corresponding development code corresponding to a source code file including the corresponding source code from the developer identification information set. Search for person identification information. The notification means notifies the request information to the developer indicated by the corresponding developer identification information.

本発明によるソースコード更新通知方法は、ソースコードを含む要求情報をクライアント装置から受け取るステップと、複数ソースコードを複数依存ソースコードに対応付ける依存関係グラフを参照して、前記複数依存ソースコードのうちの前記ソースコードに対応する該当ソースコードを検索するステップと、複数ファイル名を開発者識別情報集合に対応付ける開発者マップを参照して、前記開発者識別情報集合のうちから前記該当ソースコードを含むソースコードファイルに対応する該当開発者識別情報を検索するステップと、前記該当開発者識別情報が示す開発者に前記要求情報を通知するステップとを備えている。   The source code update notification method according to the present invention includes a step of receiving request information including a source code from a client device, and a dependency graph associating the plurality of source codes with the plurality of dependent source codes. A source including the corresponding source code from the developer identification information set by searching for the corresponding source code corresponding to the source code and a developer map that associates a plurality of file names with the developer identification information set; A step of retrieving corresponding developer identification information corresponding to the code file; and a step of notifying the request information to a developer indicated by the corresponding developer identification information.

本発明によるソースコード更新通知プログラムは、ソースコードを含む要求情報をクライアント装置から受け取るステップと、複数ソースコードを複数依存ソースコードに対応付ける依存関係グラフを参照して、前記複数依存ソースコードのうちの前記ソースコードに対応する該当ソースコードを検索するステップと、複数ファイル名を開発者識別情報集合に対応付ける開発者マップを参照して、前記開発者識別情報集合のうちから前記該当ソースコードを含むソースコードファイルに対応する該当開発者識別情報を検索するステップと、前記該当開発者識別情報が示す開発者に前記要求情報を通知するステップとコンピュータに実行させる。   A source code update notification program according to the present invention includes a step of receiving request information including a source code from a client device, and a dependency graph that associates a plurality of source codes with a plurality of dependent source codes, A source including the corresponding source code from the developer identification information set by searching for the corresponding source code corresponding to the source code and a developer map that associates a plurality of file names with the developer identification information set; The computer is executed to search for the corresponding developer identification information corresponding to the code file, to notify the developer of the request information indicated by the corresponding developer identification information, and to the computer.

本発明によるソースコード更新通知装置およびソースコード更新通知方法によれば、開発者は、更新しようとするソースコードが他の開発者の更新と競合するかどうかを確認することができ、依存関係のある複数のソースコードを複数の開発者が同時に更新することを防止することができる。   According to the source code update notification device and the source code update notification method according to the present invention, the developer can check whether or not the source code to be updated conflicts with the update of another developer. It is possible to prevent a plurality of developers from updating a plurality of source codes at the same time.

図面を参照して、本発明によるソースコード更新通知装置の実施の形態を記載する。そのソースコード更新通知装置は、図1に示されているように、ソースコード更新通知システム1に適用されている。ソースコード更新通知システム1は、複数のコンピュータが互いに双方向に情報を伝送することができるように接続されている。その複数の情報処理装置は、クライアント装置100とサーバ装置200とを含んでいる。クライアント装置100は、ソースコード更新通知システム1に複数が存在することもあり、このとき、クライアント装置100は、同時にサーバ装置200に処理依頼を送ることもありうる。   An embodiment of a source code update notification device according to the present invention will be described with reference to the drawings. The source code update notification device is applied to a source code update notification system 1 as shown in FIG. The source code update notification system 1 is connected so that a plurality of computers can mutually transmit information to and from each other. The plurality of information processing apparatuses include a client apparatus 100 and a server apparatus 200. There may be a plurality of client devices 100 in the source code update notification system 1, and at this time, the client device 100 may send a processing request to the server device 200 at the same time.

クライアント装置100は、処理依頼手段11とワークスペース12とを備えている。ワークスペース12は、クライアント装置100が備える2次記憶装置に確保された記憶領域であり、開発者ごとに割り当てられている。ワークスペース12は、サーバ装置200からチェックアウトしたディレクトリ構成のコピーを保持する。処理依頼手段11は、開発者から入力装置を介して入力される処理依頼を受け付け、サーバ装置200にその依頼された処理を送信する。その処理は、ソースコードの更新に関する処理であり、「チェックアウト」と「要求作成」と「チェックイン」とが含まれている。また、処理依頼手段11は、ワークスペース12にアクセスし、ソースコードファイルのパス情報をもとに該当するソースコードファイルを取得する。   The client device 100 includes a processing request unit 11 and a work space 12. The work space 12 is a storage area secured in the secondary storage device included in the client device 100, and is assigned to each developer. The workspace 12 holds a copy of the directory configuration checked out from the server device 200. The processing request unit 11 receives a processing request input from the developer via the input device, and transmits the requested processing to the server device 200. The processing is processing related to source code update, and includes “checkout”, “request creation”, and “checkin”. Further, the processing request unit 11 accesses the work space 12 and acquires the corresponding source code file based on the path information of the source code file.

サーバ装置200は、チェックアウト処理手段21とチェックイン処理手段22と要求登録手段23と通知手段24とリポジトリアクセス手段25と依存関係アクセス手段26と要求アクセス手段27と開発者マップアクセス手段28とリポジトリ31と依存関係グラフ32と要求格納庫33と開発者マップ34とを備えている。   The server apparatus 200 includes a check-out processing unit 21, a check-in processing unit 22, a request registration unit 23, a notification unit 24, a repository access unit 25, a dependency access unit 26, a request access unit 27, a developer map access unit 28, and a repository. 31, a dependency relationship graph 32, a request storage 33, and a developer map 34.

チェックアウト処理手段21は、処理依頼手段11から受け取った対象ファイルのパスをリポジトリアクセス手段25に渡して、リポジトリ31からチェックアウトしたソースコードファイルを受け取り、そのソースコードファイルをクライアント装置100に送信する。   The checkout processing unit 21 passes the path of the target file received from the processing request unit 11 to the repository access unit 25, receives the source code file checked out from the repository 31, and transmits the source code file to the client device 100. .

チェックイン処理手段22は、処理依頼手段11から受け取った対象ファイルのパスとソースコードファイルとをリポジトリアクセス手段25に渡す。チェックイン処理手段22は、リポジトリアクセス手段25から返されるチェックイン結果を処理依頼手段11に返す。チェックイン処理手段22は、また、チェックインするファイルを解析して、関数またはクラス、メソッドとその関数やメソッド内で呼び出しを行っている関数やメソッドとの関連を抽出して、依存関係アクセス手段26に渡す。その関数やクラス、メソッド間の関連の抽出に関しては、例えば特開2000−20298号公報に記述されている方法が用いられる。チェックイン処理手段22は、さらに、処理依頼手段11から受け取ったソースコードファイル名とチェックインした開発者の開発者IDを開発者マップアクセス手段28に渡す。チェックイン処理手段22は、処理依頼手段11から要求を受け取っていれば、その要求を要求アクセス手段27に渡す。チェックイン処理手段22は、最終的に処理結果を、処理依頼手段11に返すとともに、更新した要求を通知手段24に渡す。   The check-in processing unit 22 passes the path of the target file and the source code file received from the processing request unit 11 to the repository access unit 25. The check-in processing unit 22 returns the check-in result returned from the repository access unit 25 to the processing request unit 11. The check-in processing means 22 also analyzes the file to be checked in, extracts the relationship between the function or class or method, and the function or method that is called in the function or method, and determines the dependency relationship access means. 26. For extracting the relationship between the function, class, and method, for example, a method described in Japanese Patent Laid-Open No. 2000-20298 is used. The check-in processing unit 22 further passes the source code file name received from the processing request unit 11 and the developer ID of the checked-in developer to the developer map access unit 28. If the check-in processing unit 22 receives a request from the processing request unit 11, it passes the request to the request access unit 27. The check-in processing unit 22 finally returns the processing result to the processing request unit 11 and passes the updated request to the notification unit 24.

要求登録手段23は、処理依頼手段11から要求を受け取り、その要求のステータスを“open”に設定して要求アクセス手段27に渡す。要求登録手段23は、要求アクセス手段27からその要求登録の処理結果が返されたときに、その結果を処理依頼手段11に返すとともに、登録した要求を通知手段24に渡す。要求登録手段23は、また、処理依頼手段11から受け取った要求中のソースコードファイル名と開発者IDとを開発者マップアクセス手段28に渡す。   The request registration unit 23 receives the request from the processing request unit 11, sets the status of the request to “open”, and passes it to the request access unit 27. When the request registration processing result is returned from the request access unit 27, the request registration unit 23 returns the result to the processing request unit 11 and passes the registered request to the notification unit 24. The request registration unit 23 also passes the requested source code file name and developer ID received from the processing request unit 11 to the developer map access unit 28.

通知手段24は、チェックイン処理手段22または要求登録手段23から受け取った要求が示すファイル名とメソッド名とを依存関係アクセス手段26に渡す。通知手段24は、さらに、依存関係アクセス手段26から受け取ったツリーを要求アクセス手段27に渡して、そのツリー上の各メソッドに対するステータスが“open”の要求があれば、要求のリストを受け取る。通知手段24は、さらに、受け取った要求のリストを順に走査してファイル名、メソッド名、開発者を抽出して、開発者ごとに、競合フラグをtrueにして、通知のリストを作成する。通知手段24は、また、そのファイル名で開発者マップ34を検索して、開発者IDを取得し、その要求に含まれない開発者IDに対して、競合フラグをfalseにして、通知のリストを作成する。通知手段24は、また、そのメソッドが参照されているメソッドのツリーからステータスが“open”の要求がなかったメソッドに関して、ツリー上の各メソッドの属するファイル名から開発者マップアクセス手段28に、アクセスして開発者IDのリストを取得して、競合フラグをfalseにして、開発者ごとに通知を更新する。通知手段24は、さらに、更新した通知をそれぞれの開発者に対して、通知する。   The notification unit 24 passes the file name and the method name indicated by the request received from the check-in processing unit 22 or the request registration unit 23 to the dependency access unit 26. The notification unit 24 further passes the tree received from the dependency access unit 26 to the request access unit 27, and if there is a request whose status is “open” for each method on the tree, receives a list of requests. The notification unit 24 further scans the received request list in order to extract the file name, method name, and developer, and creates a notification list for each developer with the conflict flag set to true. The notification means 24 also searches the developer map 34 with the file name, acquires the developer ID, sets the conflict flag to false for the developer ID not included in the request, and lists the notifications. Create The notification unit 24 also accesses the developer map access unit 28 from the file name to which each method on the tree belongs with respect to the method for which the status is “open” from the method tree to which the method is referenced. Then, a list of developer IDs is acquired, the conflict flag is set to false, and the notification is updated for each developer. The notification unit 24 further notifies each developer of the updated notification.

リポジトリアクセス手段25は、チェックアウト処理手段21から受け取った対象ファイルのパスをもとにリポジトリ31にアクセスして、ファイルをチェックアウトする。リポジトリアクセス手段25は、また、チェックイン処理手段22から受け取った対象ファイルのパスをもとにリポジトリ31にアクセスして、受け取ったファイルをチェックインする。リポジトリアクセス手段25は、例えば、オープンソースの「CVS」、「Subversion」を利用して実施する。   The repository access unit 25 accesses the repository 31 based on the path of the target file received from the checkout processing unit 21 and checks out the file. The repository access unit 25 also accesses the repository 31 based on the path of the target file received from the check-in processing unit 22 and checks in the received file. The repository access means 25 is implemented using, for example, open source “CVS” and “Subversion”.

依存関係アクセス手段26は、受け取ったファイル名とメソッド名からそのメソッドを参照しているメソッドのツリーを返したり、受け取った2つの、ファイル名とメソッド名の組の間の有向な関連を依存関係グラフ32に新規に追加または更新したりする。   The dependency relationship access means 26 returns a tree of methods referring to the method from the received file name and method name, or depends on the directed relationship between the two received file name and method name pairs. A new addition or update is made to the relationship graph 32.

要求アクセス手段27は、受け取ったメソッド名が含まれている要求のうちのステータスが“open”である要求を返したり、その受け取った要求を要求格納庫33に登録または更新し、処理結果を返したりする。   The request access means 27 returns a request whose status is “open” among the requests including the received method name, registers or updates the received request in the request storage 33, and returns a processing result. To do.

開発者マップアクセス手段28は、受け取ったファイル名と開発者IDの関連を開発者マップ34に追加または更新したり、受け取ったファイル名に紐づいた開発者を返したりする。   The developer map access means 28 adds or updates the relationship between the received file name and the developer ID to the developer map 34, or returns the developer associated with the received file name.

リポジトリ31は、版管理データベースであり、ファイルの時系列なデータにバージョン番号をつけてそのデータを管理する。例えば、リポジトリ31としては、オープンソースの「CVS」、「Subversion」のデータベースが利用される。   The repository 31 is a version management database, and manages data by attaching a version number to time-series data of files. For example, as the repository 31, open source “CVS” and “Subversion” databases are used.

依存関係グラフ32は、関数またはクラス、メソッド(以下「ソースコード」と略記される)の間の呼び出し関係を表現した有向グラフを格納している。すなわち、その有向グラフは、ソースコードの各々を、そのソースコードの更新の影響を受ける他のソースコードに対応付けている。その有向グラフでは、例えば、メソッド間の呼び出し関係においては、各メソッドを、ファイル名とメソッド名とにより一意に特定している。   The dependency relationship graph 32 stores a directed graph representing a call relationship between a function, a class, and a method (hereinafter abbreviated as “source code”). That is, the directed graph associates each source code with another source code that is affected by the update of the source code. In the directed graph, for example, in a call relationship between methods, each method is uniquely specified by a file name and a method name.

要求格納庫33は、要求を格納したデータベースである。開発者マップ34は、ファイル名をそのファイルを開発した開発者のリストに紐付けたマップを格納している。   The request storage 33 is a database that stores requests. The developer map 34 stores a map in which a file name is associated with a list of developers who have developed the file.

なお、リポジトリ31および依存関係グラフ32および要求格納庫33および開発者マップ34は、サーバ装置200上、またはサーバ装置200からアクセス可能な記憶領域にあればよい。   The repository 31, the dependency graph 32, the request storage 33, and the developer map 34 may be on the server device 200 or in a storage area accessible from the server device 200.

図2は、要求格納庫33に格納される要求を示している。その要求40は、要求ID41と変更理由42と開発者ID43とステータス44と複数のソースコード情報45−1〜45−Nとを備えている。要求ID41は、要求40を識別している。変更理由42は、要求40によりソースコードを変更する理由を示している。開発者ID43は、複数の開発者にそれぞれ割り当てられる複数の開発者IDの1つを示し、要求40を登録する開発者を識別している。ステータス44は、要求40により変更されるソースコードの状態を示している。その状態は、“open”、“close”を含んでいる。その“open”は、要求40により変更されるソースコードが更新中であることを示している。その“close”は、要求40により変更されるソースコードが更新完了であることを示している。その複数のソースコード情報45−1〜45−Nの各ソースコード情報45−i(i=1,2,3,…,N)は、要求40により変更されるソースコードを示し、ファイル名46とメソッド名47とを示している。ファイル名46は、要求40により変更されるソースコードを含むファイルのファイル名を示している。メソッド名47は、要求40により変更されるソースコードを含むメソッドのメソッド名を示している。   FIG. 2 shows requests stored in the request storage 33. The request 40 includes a request ID 41, a change reason 42, a developer ID 43, a status 44, and a plurality of source code information 45-1 to 45-N. The request ID 41 identifies the request 40. The change reason 42 indicates the reason for changing the source code according to the request 40. The developer ID 43 indicates one of a plurality of developer IDs respectively assigned to the plurality of developers, and identifies the developer who registers the request 40. The status 44 indicates the state of the source code that is changed by the request 40. The state includes “open” and “close”. The “open” indicates that the source code changed by the request 40 is being updated. The “close” indicates that the source code changed by the request 40 has been updated. Each source code information 45-i (i = 1, 2, 3,..., N) of the plurality of source code information 45-1 to 45-N indicates a source code to be changed by the request 40, and a file name 46 And method name 47 are shown. The file name 46 indicates the file name of the file including the source code changed by the request 40. The method name 47 indicates the method name of the method including the source code changed by the request 40.

図3は、通知手段24により開発者に通知される通知を示している。その通知50は、開発者ID51と要求52と複数のリスト53−1〜53−Nを示している。要求52は、要求格納庫33に格納される要求の1つを示している。開発者ID51は、複数の開発者にそれぞれ割り当てられる複数の開発者IDの1つを示し、要求52が示す要求を作成した開発者を識別している。複数のリスト53−1〜53−Nの各リスト53−iは、ファイル名54とメソッド名55と競合フラグ56とを示している。メソッド名55は、要求52が示す要求により特定されるメソッドを参照しているツリー(依存関係アクセス手段26から受け取ったツリー)が示す複数のメソッドのうちの1つのメソッドのメソッド名を示している。ファイル名54は、メソッド名55が示すメソッドを含むファイルのファイル名を示している。競合フラグ56は、メソッド名55が示すメソッドの更新が競合しているか否かを示し、trueかfalseのいずれかの値を示している。そのtrueは、競合していることを示している。そのfalseは、競合していないことを示している。   FIG. 3 shows a notification notified to the developer by the notification means 24. The notification 50 indicates a developer ID 51, a request 52, and a plurality of lists 53-1 to 53-N. A request 52 indicates one of the requests stored in the request storage 33. The developer ID 51 indicates one of a plurality of developer IDs respectively assigned to a plurality of developers, and identifies the developer who created the request indicated by the request 52. Each list 53-i of the plurality of lists 53-1 to 53-N indicates a file name 54, a method name 55, and a conflict flag 56. The method name 55 indicates the method name of one method among a plurality of methods indicated by a tree (a tree received from the dependency access means 26) referring to the method specified by the request indicated by the request 52. . The file name 54 indicates the file name of the file including the method indicated by the method name 55. The conflict flag 56 indicates whether or not the update of the method indicated by the method name 55 is in conflict, and indicates a value of either true or false. The true indicates that there is a conflict. The false indicates that there is no competition.

すなわち、通知50は、要求40に応答して作成されたときに、要求52が要求ID41を示している。   That is, when the notification 50 is created in response to the request 40, the request 52 indicates the request ID 41.

図4は、開発者マップ34により格納される開発者マップを示している。その開発者マップ60は、ファイル名とそのソースコードファイルを開発した開発者IDを紐付けたマップであり、ファイル名集合61を開発者集合62に対応付けている。すなわち、ファイル名集合61の任意の要素は、開発者集合62の1つの要素に対応している。ファイル名集合61の要素は、ソースコードファイルを識別し、そのソースコードファイルのファイル名を示している。開発者集合62の要素は、そのソースコードファイルを開発した開発者を識別し、その開発者を識別する開発者IDを示している。開発者集合62の1つの要素は、そのソースコードファイルを開発した開発者が複数であるときに、その複数の開発者をそれぞれ識別する複数の開発者IDを示している。開発者マップ60は、チェックインや要求登録の際、または、その他任意のタイミングで、当該開発者IDと当該ファイル名の関連を追加または更新または削除することができる。   FIG. 4 shows a developer map stored by the developer map 34. The developer map 60 is a map in which a file name is associated with a developer ID that has developed the source code file, and the file name set 61 is associated with the developer set 62. That is, an arbitrary element of the file name set 61 corresponds to one element of the developer set 62. The element of the file name set 61 identifies a source code file and indicates the file name of the source code file. The element of the developer set 62 identifies a developer who has developed the source code file, and indicates a developer ID that identifies the developer. One element of the developer set 62 indicates a plurality of developer IDs that respectively identify the plurality of developers when there are a plurality of developers who have developed the source code file. The developer map 60 can add, update, or delete the association between the developer ID and the file name at the time of check-in or request registration, or at any other timing.

本発明によるソースコード更新通知方法の実施の形態は、ソースコード更新通知システム1により実行される。処理が入力されたときの動作と、チェックアウトの動作と、要求作成の動作と、チェックインの動作と、要求を受け取ったときの動作とを備えている。   The embodiment of the source code update notification method according to the present invention is executed by the source code update notification system 1. It includes an operation when a process is input, a check-out operation, a request creation operation, a check-in operation, and an operation when a request is received.

図5は、処理が入力されたときの動作を示している。開発者は、ソースコード更新通知システム1に「チェックアウト」と「要求作成」と「チェックイン」とのうちのいずれかの処理を実行させるときに、その処理に必要である情報をクライアント装置100に入力する。すなわち、開発者は、リポジトリ31上の対象ファイルをチェックアウトするときに、処理の種類として「チェックアウト」を指定し、その対象ファイルのパスをクライアント装置100に入力する。このとき、対象ファイルのパスは、複数指定したり、ディレクトリ名で指定したりすることも可能である。開発者は、要求を作成するときに、処理の種類として「要求作成」を指定し、登録する要求をクライアント装置100に入力する。開発者は、対象ファイルをチェックインするときに、処理の種類として「チェックイン」を指定して、開発者IDとのその対象ファイルのパスとをクライアント装置100に入力する。このとき、その対象ファイルは、複数指定したり、ディレクトリ名で指定したりすることも可能である。さらに、開発者は、必要に応じて、ステータスを“close”に更新した要求をクライアント装置100に入力する。   FIG. 5 shows an operation when a process is input. When the developer causes the source code update notification system 1 to execute one of the processes “check out”, “request creation”, and “check in”, the client apparatus 100 sends information necessary for the process. To enter. That is, when the developer checks out the target file on the repository 31, the developer designates “checkout” as the type of processing, and inputs the path of the target file to the client device 100. At this time, a plurality of target file paths can be specified, or a directory name can be specified. When creating a request, the developer designates “request creation” as the type of processing and inputs a request to be registered to the client apparatus 100. When the developer checks in the target file, the developer specifies “check-in” as the processing type, and inputs the developer ID and the path of the target file to the client device 100. At this time, it is possible to specify a plurality of target files or to specify them by directory names. Further, the developer inputs a request with the status updated to “close” to the client device 100 as necessary.

処理依頼手段11は、クライアント装置100に入力された情報に基づいて処理の種類を判別する(ステップa1)。処理依頼手段11は、処理の種類が「チェックアウト」であれば、受け取った対象ソースコードファイルのパスをサーバ装置200上のチェックアウト処理手段21に送る(ステップa2)。処理依頼手段11は、処理の種類が「要求作成」であれば、受け取った要求をサーバ装置200上の要求登録手段23に送る(ステップa3)。処理依頼手段11は、処理の種類が「チェックイン」であれば、受け取った対象ソースコードファイルのパスから、ワークスペース12にアクセスして該当ソースコードファイルを取得する(ステップa4)。処理依頼手段11は、次いで、受け取った開発者IDと対象ソースコードファイルのパスとソースコードファイルと、必要に応じて更新された要求をサーバ装置200上のチェックイン処理手段22に送る(ステップa5)。   The processing request unit 11 determines the type of processing based on the information input to the client device 100 (step a1). If the processing type is “checkout”, the processing request unit 11 sends the received path of the target source code file to the checkout processing unit 21 on the server device 200 (step a2). If the process type is “request creation”, the process request unit 11 sends the received request to the request registration unit 23 on the server device 200 (step a3). If the type of processing is “check-in”, the processing request unit 11 accesses the workspace 12 from the path of the received target source code file and acquires the corresponding source code file (step a4). Next, the processing request unit 11 sends the received developer ID, the path of the target source code file, the source code file, and the request updated as necessary to the check-in processing unit 22 on the server device 200 (step a5). ).

図6は、チェックアウトの動作を示している。チェックアウトの動作は、ステップa2が実行された後に開始する。チェックアウト処理手段21は、処理依頼手段11から受け取った対象ソースコードファイルのパスをリポジトリアクセス手段25に渡す(ステップb1)。リポジトリアクセス手段25は、その受け取った対象ソースコードファイルのパスをもとにリポジトリ31にアクセスして、ソースコードファイルをチェックアウトする(ステップb2)。チェックアウト処理手段21は、そのチェックアウトしたソースコードファイルをクライアント装置100上の処理依頼手段11に返す(ステップb3)。処理依頼手段11は、その受け取ったソースコードファイルでワークスペース12を更新する(ステップb4)。   FIG. 6 shows the check-out operation. The check-out operation starts after step a2 is executed. The check-out processing unit 21 passes the path of the target source code file received from the processing request unit 11 to the repository access unit 25 (step b1). The repository access unit 25 accesses the repository 31 based on the received path of the target source code file and checks out the source code file (step b2). The checkout processing means 21 returns the checked out source code file to the processing requesting means 11 on the client device 100 (step b3). The process request unit 11 updates the workspace 12 with the received source code file (step b4).

図7は、要求作成の動作を示している。要求作成の動作は、ステップa3が実行された後に開始する。要求登録手段23は、処理依頼手段11から受け取った要求のステータスを“open”に設定して、その設定された要求を要求アクセス手段27に渡す(ステップc1)。要求アクセス手段27は、受け取った要求を要求格納庫33に登録する(ステップc2)。要求登録手段23は、その要求が要求格納庫33に登録されたことを示す処理結果をクライアント装置100の処理依頼手段11に返す(ステップc3)。処理依頼手段11は、その処理結果を表示する(ステップc4)。要求登録手段23は、その登録した要求を通知手段24に渡す(ステップc5)。要求登録手段23は、その要求内のファイル名と開発者IDとを開発者マップアクセス手段28に渡す(ステップc6)。開発者マップアクセス手段28は、その受け取ったファイル名と開発者IDの関連を開発者マップ34に追加する(ステップc7)。このとき、ステップc3〜c4の処理とステップc5の処理とステップc6〜c7の処理とは、同時に並行して実行される。   FIG. 7 shows a request creation operation. The request creation operation starts after step a3 is executed. The request registration unit 23 sets the status of the request received from the processing request unit 11 to “open”, and passes the set request to the request access unit 27 (step c1). The request access unit 27 registers the received request in the request storage 33 (step c2). The request registration unit 23 returns a processing result indicating that the request is registered in the request storage 33 to the processing request unit 11 of the client device 100 (step c3). The processing request unit 11 displays the processing result (step c4). The request registration unit 23 passes the registered request to the notification unit 24 (step c5). The request registration unit 23 passes the file name and developer ID in the request to the developer map access unit 28 (step c6). The developer map access means 28 adds the relationship between the received file name and developer ID to the developer map 34 (step c7). At this time, the processes of steps c3 to c4, the process of step c5, and the processes of steps c6 to c7 are executed simultaneously in parallel.

図8は、チェックインの動作を示している。チェックインの動作は、ステップa5が実行された後に開始する。チェックイン処理手段22は、処理依頼手段11から受け取った対象ソースコードファイルのパスとファイルとをリポジトリアクセス手段25に渡す(ステップd1)。リポジトリアクセス手段25は、その受け取った対象ソースコードファイルのパスをもとにリポジトリ31にアクセスして、その受け取ったソースコードファイルをチェックインする(ステップd2)。チェックイン処理手段22は、そのチェックインしたソースコードファイルを解析して、メソッドとそのメソッド内で呼び出しを行っているメソッドとの関連を抽出する(ステップd3)。チェックイン処理手段22は、その抽出した関連を依存関係アクセス手段26に渡す(ステップd4)。依存関係アクセス手段26は、その受け取った関連をもとに依存関係グラフ32を更新する(ステップd5)。チェックイン処理手段22は、そのファイル名と開発者IDとを開発者マップアクセス手段28に渡す(ステップd6)。開発者マップアクセス手段28は、その受け取ったファイル名と開発者の関連を、開発者マップ34に追加する(ステップd7)。   FIG. 8 shows the check-in operation. The check-in operation starts after step a5 is executed. The check-in processing unit 22 passes the path and file of the target source code file received from the processing request unit 11 to the repository access unit 25 (step d1). The repository access unit 25 accesses the repository 31 based on the path of the received target source code file, and checks in the received source code file (step d2). The check-in processing means 22 analyzes the checked-in source code file and extracts the relationship between the method and the method that is calling in the method (step d3). The check-in processing unit 22 passes the extracted relation to the dependency relationship access unit 26 (step d4). The dependency relationship access means 26 updates the dependency relationship graph 32 based on the received relationship (step d5). The check-in processing means 22 passes the file name and developer ID to the developer map access means 28 (step d6). The developer map access means 28 adds the received file name and the developer's association to the developer map 34 (step d7).

チェックイン処理手段22は、クライアント装置100から要求を受け取っていれば、その受け取った要求を要求アクセス手段27に渡す(ステップd8)。要求アクセス手段27は、その受け取った要求を要求格納庫33に登録する(ステップd9)。チェックイン処理手段22は、その要求を要求格納庫33に登録したことを示す処理結果をクライアント装置100の処理依頼手段11に返す(ステップd10)。処理依頼手段11は、その処理結果を表示する(ステップd11)。チェックイン処理手段22は、その登録した要求を通知手段24に渡す(ステップd12)。このとき、ステップd10〜d11の処理とステップd12の処理とは、同時に並行して実行される。   If the check-in processing unit 22 has received a request from the client device 100, the check-in processing unit 22 passes the received request to the request access unit 27 (step d8). The request access unit 27 registers the received request in the request storage 33 (step d9). The check-in processing unit 22 returns a processing result indicating that the request has been registered in the request storage 33 to the processing request unit 11 of the client device 100 (step d10). The processing request unit 11 displays the processing result (step d11). The check-in processing means 22 passes the registered request to the notification means 24 (step d12). At this time, the process of steps d10 to d11 and the process of step d12 are executed simultaneously in parallel.

図9は、要求を受け取ったときの動作を示している。要求を受け取ったときの動作は、ステップd12の後に開始し、または、ステップc5の後に開始する。通知手段24は、その要求に記述されたファイル名およびメソッド名を依存関係アクセス手段26に渡す(ステップe1)。依存関係アクセス手段26は、依存関係グラフ32にアクセスして、その受け取ったメソッドを参照しているメソッドのツリーのリストを取得する(ステップe2)。通知手段24は、要求アクセス手段27にツリーのリストを渡す(ステップe3)。要求アクセス手段27は、要求格納庫33にアクセスして、ツリーのリストに含まれるメソッドのそれぞれが含まれる要求のうちからステータスが“open”を示す要求を検索する(ステップe4)。通知手段24は、検索した要求のリストを順に走査してファイル名、メソッド名、開発者IDを抽出し、競合フラグをtrueにして、開発者単位に通知のリストを作成する(ステップe5)。通知手段24は、ステップe5で抽出したファイル名を、開発者マップアクセス手段28に渡す(ステップe6)。   FIG. 9 shows the operation when a request is received. The operation upon receipt of the request starts after step d12 or after step c5. The notification unit 24 passes the file name and method name described in the request to the dependency relationship access unit 26 (step e1). The dependency relationship access means 26 accesses the dependency relationship graph 32 and obtains a list of method trees referring to the received method (step e2). The notification unit 24 passes the list of trees to the request access unit 27 (step e3). The request access unit 27 accesses the request storage 33 and searches for a request whose status indicates “open” from among the requests including each of the methods included in the tree list (step e4). The notification unit 24 sequentially scans the retrieved request list to extract the file name, method name, and developer ID, sets the conflict flag to true, and creates a notification list for each developer (step e5). The notification unit 24 passes the file name extracted in step e5 to the developer map access unit 28 (step e6).

開発者マップアクセス手段28は、受け取ったファイル名をもとに開発者マップ34にアクセスして、開発者IDのリストを返す(ステップe7)。通知手段24は、ステップe5に含まれない開発者IDに対して、競合フラグをfalseにして、開発者ごとに通知のリストを作成する(ステップe8)。通知手段24は、開発者マップアクセス手段28に、ツリーのリストからステップe5の要求に含まれるメソッド名を除いたリストを渡す(ステップe9)。開発者マップアクセス手段28は、開発者マップ34にアクセスして、メソッドのそれぞれが含まれるソースコードファイルの開発者IDを検索する(ステップe10)。通知手段24は、検索した開発者IDをもとに、競合フラグをfalseにして、通知のリストを更新する(ステップe11)。通知手段24は、通知リストのそれぞれの開発者に対して、要求を通知する(ステップe12)。通知手段24における通知の方法は、例えば電子メールなどにより、開発者が使用する端末に送信する方法が考えられる。この場合、開発者IDは、開発者ごとに割り当てられたメールアドレスを利用する。   The developer map access means 28 accesses the developer map 34 based on the received file name and returns a list of developer IDs (step e7). The notification means 24 sets the conflict flag to false for the developer ID not included in step e5, and creates a notification list for each developer (step e8). The notification unit 24 passes the list obtained by removing the method name included in the request of step e5 from the list of trees to the developer map access unit 28 (step e9). The developer map access means 28 accesses the developer map 34 and searches for the developer ID of the source code file including each of the methods (step e10). The notification means 24 sets the conflict flag to false based on the searched developer ID and updates the notification list (step e11). The notification unit 24 notifies the request to each developer in the notification list (step e12). As a notification method in the notification unit 24, a method of transmitting to a terminal used by a developer by e-mail or the like is conceivable. In this case, the developer ID uses a mail address assigned to each developer.

本発明によるソースコード更新通知方法によれば、開発者は、ソースコードの変更を開始する際に、ソースコードの更新の開始時に、そのソースコードを示す要求をサーバ装置200に送信することにより、更新を行う関数やクラス、メソッドが影響を受ける変更がすでに行われているかどうかを、変更を始める前に確認することができる。開発者は、さらに、その更新が行われている場合、なぜ変更が行われているのかを知ることができるため、開発者は当該更新を競合することなく実施できるかどうかを、変更を始める前に判断することができる。   According to the source code update notification method of the present invention, when the developer starts changing the source code, by sending a request indicating the source code to the server device 200 at the start of the update of the source code, You can check if changes have already been made that affect the function, class, or method you are updating before you start making changes. Developers can also know why the changes are being made, if any, so that developers can determine whether they can implement the updates without conflict before starting the changes. Can be judged.

ソースコード更新通知システム1は、要求の登録の際に、当該要求により影響を受ける要求を登録してソースコードを開発している開発者に対して、競合している旨とともに当該要求通知する仕組みをもっている。このため、要求を登録してソースコードを更新中の開発者は、当該変更に対して影響を受けることになり、当該ソースコードとは別のソースコードに対する変更を他の開発者が始める際に、その変更内容を知ることができる。   The source code update notification system 1 is a mechanism for registering a request affected by the request and notifying the developer who is developing the source code with the fact that there is a conflict when registering the request. Have For this reason, developers who are registering requests and updating their source code will be affected by the change, and when other developers start a change to a source code other than the source code. , You can know the changes.

図1は、本発明によるソースコード更新通知装置の実施の形態を示すブロック図である。FIG. 1 is a block diagram showing an embodiment of a source code update notification device according to the present invention. 図2は、要求を示す図である。FIG. 2 is a diagram illustrating a request. 図3は、通知を示す図である。FIG. 3 is a diagram illustrating notification. 図4は、開発者マップを示す図である。FIG. 4 is a diagram showing a developer map. 図5は、処理が入力されたときの動作を示すフローチャートである。FIG. 5 is a flowchart showing an operation when a process is input. 図6は、チェックアウトの動作を示すフローチャートである。FIG. 6 is a flowchart showing the check-out operation. 図7は、要求作成の動作を示すフローチャートである。FIG. 7 is a flowchart showing a request creation operation. 図8Aは、チェックインの動作の前半を示すフローチャートである。FIG. 8A is a flowchart showing the first half of the check-in operation. 図8Bは、チェックインの動作の後半を示すフローチャートである。FIG. 8B is a flowchart showing the second half of the check-in operation. 図9Aは、要求を受け取ったときの動作の前半を示すフローチャートである。FIG. 9A is a flowchart showing the first half of the operation when a request is received. 図9Bは、要求を受け取ったときの動作の後半を示すフローチャートである。FIG. 9B is a flowchart showing the second half of the operation when a request is received.

符号の説明Explanation of symbols

1 :ソースコード更新通知システム
100:クライアント装置
11 :処理依頼手段
12 :ワークスペース
200:サーバ装置
21 :チェックアウト処理手段
22 :チェックイン処理手段
23 :要求登録手段
24 :通知手段
25 :リポジトリアクセス手段
26 :依存関係アクセス手段
27 :要求アクセス手段
28 :開発者マップアクセス手段
31 :リポジトリ
32 :依存関係グラフ
33 :要求格納庫
34 :開発者マップ
40 :要求
41 :要求ID
42 :変更理由
43 :開発者ID
44 :ステータス
45−1〜45−N:ソースコード情報
46 :ファイル名
47 :メソッド名
50 :通知
51 :開発者ID
52 :要求
53−1〜53−N:リスト
54 :ファイル名
55 :メソッド名
56 :競合フラグ
60 :開発者マップ
61 :ファイル名集合
62 :開発者集合
DESCRIPTION OF SYMBOLS 1: Source code update notification system 100: Client apparatus 11: Processing request means 12: Workspace 200: Server apparatus 21: Check-out processing means 22: Check-in processing means 23: Request registration means 24: Notification means 25: Repository access means 26: Dependency access means 27: Request access means 28: Developer map access means 31: Repository 32: Dependency relationship graph 33: Request storage 34: Developer map 40: Request 41: Request ID
42: Reason for change 43: Developer ID
44: Status 45-1 to 45-N: Source code information 46: File name 47: Method name 50: Notification 51: Developer ID
52: Request 53-1 to 53-N: List 54: File name 55: Method name 56: Conflict flag 60: Developer map 61: File name set 62: Developer set

Claims (15)

ソースコードを含む要求情報をクライアント装置から受け取る要求登録手段と、
複数ソースコードを複数依存ソースコードに対応付ける依存関係グラフを参照して、前記複数依存ソースコードのうちの前記ソースコードに対応する該当ソースコードを検索する依存関係アクセス手段と、
複数ファイル名を開発者識別情報集合に対応付ける開発者マップを参照して、前記開発者識別情報集合のうちから前記該当ソースコードを含むソースコードファイルに対応する該当開発者識別情報を検索する開発者マップアクセス手段と、
前記該当開発者識別情報が示す開発者に前記要求情報を通知する通知手段
とを具備するソースコード更新通知装置。
Request registration means for receiving request information including source code from a client device;
Dependency access means for searching for a corresponding source code corresponding to the source code among the multiple dependency source codes with reference to a dependency graph that associates a plurality of source codes with a plurality of dependent source codes;
A developer that searches a developer map that associates a plurality of file names with a developer identification information set, and searches for the corresponding developer identification information corresponding to a source code file including the corresponding source code from the developer identification information set. Map access means;
A source code update notification device comprising: notification means for notifying the request information to a developer indicated by the developer identification information.
請求項1において、
要求ソースコードと要求ファイル名とをそれぞれ示す複数要求情報を格納する要求格納庫と、
前記複数要求情報のうちの前記ソースコードを示す該当要求情報が示す該当ファイル名を検索する要求アクセス手段とを更に具備し、
前記開発者識別情報集合のうちから前記該当ファイル名に対応する該当開発者識別情報を検索する
ソースコード更新通知装置。
In claim 1,
A request storage for storing multiple request information respectively indicating a request source code and a request file name;
Request access means for searching for a corresponding file name indicated by the corresponding request information indicating the source code of the plurality of request information,
A source code update notification device for searching for corresponding developer identification information corresponding to the corresponding file name from the developer identification information set.
請求項2において、
前記要求情報は、前記ソースコードを示すファイルのファイル名を更に示し、
前記要求登録手段は、前記複数要求情報が前記要求情報を含むように、前記要求格納庫を更新する
ソースコード更新通知装置。
In claim 2,
The request information further indicates a file name of a file indicating the source code,
The request registration unit is a source code update notification device that updates the request storage so that the plurality of request information includes the request information.
請求項2または請求項3のいずれかにおいて、
前記複数要求情報は、それぞれ、要求開発者識別情報を更に示し、
前記通知手段は、前記該当開発者識別情報のうちの前記該当要求情報により示されない不更新開発者識別情報が示す開発者に前記ソースコードが競合していないことを更に通知する
ソースコード更新通知装置。
In either claim 2 or claim 3,
Each of the plurality of request information further indicates request developer identification information,
The notification means further notifies the developer indicated by the non-update developer identification information not indicated by the corresponding request information of the corresponding developer identification information that the source code does not conflict with the source code update notification device .
請求項2〜請求項4のいずれかにおいて、
前記複数要求情報は、それぞれ、前記要求ソースコードのステータスを更に示し、
前記要求アクセス手段は、前記該当要求情報のうちの前記要求ソースコードが更新完了である更新完了要求情報を検索し、
前記通知手段は、前記該当開発者識別情報のうちの前記更新完了要求情報により示される更新完了開発者識別情報が示す開発者に前記ソースコードが競合していないことを更に通知する
ソースコード更新通知装置。
In any one of Claims 2-4,
Each of the plurality of request information further indicates a status of the request source code,
The request access means searches for update completion request information in which the request source code of the corresponding request information is update completion,
The notification means further notifies the developer indicated by the update completion developer identification information indicated by the update completion request information of the corresponding developer identification information that the source code is not in conflict. apparatus.
ソースコードを含む要求情報をクライアント装置から受け取るステップと、
複数ソースコードを複数依存ソースコードに対応付ける依存関係グラフを参照して、前記複数依存ソースコードのうちの前記ソースコードに対応する該当ソースコードを検索するステップと、
複数ファイル名を開発者識別情報集合に対応付ける開発者マップを参照して、前記開発者識別情報集合のうちから前記該当ソースコードを含むソースコードファイルに対応する該当開発者識別情報を検索するステップと、
前記該当開発者識別情報が示す開発者に前記要求情報を通知するステップ
とを具備するソースコード更新通知方法。
Receiving request information including source code from a client device;
Searching for a corresponding source code corresponding to the source code among the plurality of dependent source codes with reference to a dependency graph that associates a plurality of source codes with a plurality of dependent source codes;
Searching for a corresponding developer identification information corresponding to a source code file including the corresponding source code from the developer identification information set with reference to a developer map that associates a plurality of file names with the developer identification information set; ,
A source code update notification method comprising: notifying the request information to a developer indicated by the developer identification information.
請求項6において、
要求ソースコードと要求ファイル名とをそれぞれ示す複数要求情報を格納する要求格納庫を参照して、前記複数要求情報のうちの前記ソースコードを示す該当要求情報が示す該当ファイル名を検索するステップと、
前記開発者識別情報集合のうちから前記該当ファイル名に対応する該当開発者識別情報を検索するステップ
とを更に具備するソースコード更新通知方法。
In claim 6,
Searching for a corresponding file name indicated by the corresponding request information indicating the source code of the plurality of request information with reference to a request storage for storing the plurality of request information indicating the request source code and the request file name, respectively;
A source code update notification method further comprising: searching for the corresponding developer identification information corresponding to the corresponding file name from the developer identification information set.
請求項7において、
前記要求情報は、前記ソースコードを示すファイルのファイル名を更に示し、
更に、
前記複数要求情報が前記要求情報を含むように、前記要求格納庫を更新する
を更に具備するソースコード更新通知方法。
In claim 7,
The request information further indicates a file name of a file indicating the source code,
Furthermore,
The source code update notification method further comprising: updating the request storage so that the multiple request information includes the request information.
請求項7または請求項8のいずれかにおいて、
前記複数要求情報は、それぞれ、要求開発者識別情報を更に示し、
更に、
前記該当開発者識別情報のうちの前記該当要求情報により示されない不更新開発者識別情報が示す開発者に前記ソースコードが競合していないことを更に通知するステップ
を更に具備するソースコード更新通知方法。
In either claim 7 or claim 8,
Each of the plurality of request information further indicates request developer identification information,
Furthermore,
The source code update notification method further comprising the step of further notifying the developer indicated by the non-updated developer identification information not indicated by the corresponding request information of the corresponding developer identification information that the source code is not in conflict. .
請求項7〜請求項9のいずれかにおいて、
前記複数要求情報は、それぞれ、前記要求ソースコードのステータスを更に示し、
更に、
前記該当要求情報のうちの前記要求ソースコードが更新完了である更新完了要求情報を検索するステップと、
前記該当開発者識別情報のうちの前記更新完了要求情報により示される更新完了開発者識別情報が示す開発者に前記ソースコードが競合していないことを更に通知するステップ
とを更に具備するソースコード更新通知方法。
In any one of Claims 7-9,
Each of the plurality of request information further indicates a status of the request source code,
Furthermore,
Searching for update completion request information in which the request source code of the corresponding request information is update completion;
And further notifying the developer indicated by the update completion developer identification information indicated by the update completion request information of the corresponding developer identification information that the source code is not in conflict. Notification method.
ソースコードを含む要求情報をクライアント装置から受け取るステップと、
複数ソースコードを複数依存ソースコードに対応付ける依存関係グラフを参照して、前記複数依存ソースコードのうちの前記ソースコードに対応する該当ソースコードを検索するステップと、
複数ファイル名を開発者識別情報集合に対応付ける開発者マップを参照して、前記開発者識別情報集合のうちから前記該当ソースコードを含むソースコードファイルに対応する該当開発者識別情報を検索するステップと、
前記該当開発者識別情報が示す開発者に前記要求情報を通知するステップ
とをコンピュータに実行させるソースコード更新通知プログラム。
Receiving request information including source code from a client device;
Searching for a corresponding source code corresponding to the source code among the plurality of dependent source codes with reference to a dependency graph that associates a plurality of source codes with a plurality of dependent source codes;
Searching for a corresponding developer identification information corresponding to a source code file including the corresponding source code from the developer identification information set with reference to a developer map that associates a plurality of file names with the developer identification information set; ,
A source code update notification program for causing a computer to execute the step of notifying the request information to a developer indicated by the developer identification information.
請求項11において、
要求ソースコードと要求ファイル名とをそれぞれ示す複数要求情報を格納する要求格納庫を参照して、前記複数要求情報のうちの前記ソースコードを示す該当要求情報が示す該当ファイル名を検索するステップと、
前記開発者識別情報集合のうちから前記該当ファイル名に対応する該当開発者識別情報を検索するステップ
とを更に前記コンピュータに実行させるソースコード更新通知プログラム。
In claim 11,
Searching for a corresponding file name indicated by the corresponding request information indicating the source code of the plurality of request information with reference to a request storage for storing the plurality of request information indicating the request source code and the request file name, respectively;
A source code update notification program for causing the computer to further execute a step of searching for corresponding developer identification information corresponding to the corresponding file name from the developer identification information set.
請求項12において、
前記要求情報は、前記ソースコードを示すファイルのファイル名を更に示し、
更に、
前記複数要求情報が前記要求情報を含むように、前記要求格納庫を更新する
を更に前記コンピュータに実行させるソースコード更新通知プログラム。
In claim 12,
The request information further indicates a file name of a file indicating the source code,
Furthermore,
A source code update notification program for causing the computer to further update the request storage so that the multiple request information includes the request information.
請求項12または請求項13のいずれかにおいて、
前記複数要求情報は、それぞれ、要求開発者識別情報を更に示し、
更に、
前記該当開発者識別情報のうちの前記該当要求情報により示されない不更新開発者識別情報が示す開発者に前記ソースコードが競合していないことを更に通知するステップ
を更に前記コンピュータに実行させるソースコード更新通知プログラム。
Either of claim 12 or claim 13,
Each of the plurality of request information further indicates request developer identification information,
Furthermore,
Source code for further causing the computer to further notify the developer indicated by the non-updated developer identification information not indicated by the corresponding request information of the corresponding developer identification information that the source code is not in conflict Update notification program.
請求項12〜請求項14のいずれかにおいて、
前記複数要求情報は、それぞれ、前記要求ソースコードのステータスを更に示し、
更に、
前記該当要求情報のうちの前記要求ソースコードが更新完了である更新完了要求情報を検索するステップと、
前記該当開発者識別情報のうちの前記更新完了要求情報により示される更新完了開発者識別情報が示す開発者に前記ソースコードが競合していないことを更に通知するステップ
とを更に前記コンピュータに実行させるソースコード更新通知プログラム。
In any one of Claims 12-14,
Each of the plurality of request information further indicates a status of the request source code,
Furthermore,
Searching for update completion request information in which the request source code of the corresponding request information is update completion;
Further causing the computer to further notify the developer indicated by the update completion developer identification information indicated by the update completion request information of the corresponding developer identification information that the source code is not in conflict. Source code update notification program.
JP2008070258A 2008-03-18 2008-03-18 Source code update notifying device and source code update notifying method Pending JP2009223822A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008070258A JP2009223822A (en) 2008-03-18 2008-03-18 Source code update notifying device and source code update notifying method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008070258A JP2009223822A (en) 2008-03-18 2008-03-18 Source code update notifying device and source code update notifying method

Publications (1)

Publication Number Publication Date
JP2009223822A true JP2009223822A (en) 2009-10-01

Family

ID=41240490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008070258A Pending JP2009223822A (en) 2008-03-18 2008-03-18 Source code update notifying device and source code update notifying method

Country Status (1)

Country Link
JP (1) JP2009223822A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027821A (en) * 2010-07-27 2012-02-09 Ricoh Co Ltd System, method and program for program acquisition control
JP2013109647A (en) * 2011-11-22 2013-06-06 Nec Corp Distributed type configuration management device
KR101722392B1 (en) 2015-10-06 2017-04-05 숭실대학교산학협력단 System and Method for Managing Configuration
US9891911B2 (en) 2012-12-21 2018-02-13 International Business Machines Corporation Software development work item management system
CN111078249A (en) * 2019-11-08 2020-04-28 泰康保险集团股份有限公司 Software updating method, system, device and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319674A (en) * 1994-05-26 1995-12-08 Fujitsu Ltd Method and system for supporting update of information file
JPH103417A (en) * 1996-06-18 1998-01-06 Nec Corp File change history management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319674A (en) * 1994-05-26 1995-12-08 Fujitsu Ltd Method and system for supporting update of information file
JPH103417A (en) * 1996-06-18 1998-01-06 Nec Corp File change history management system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027821A (en) * 2010-07-27 2012-02-09 Ricoh Co Ltd System, method and program for program acquisition control
JP2013109647A (en) * 2011-11-22 2013-06-06 Nec Corp Distributed type configuration management device
US9891911B2 (en) 2012-12-21 2018-02-13 International Business Machines Corporation Software development work item management system
US10768928B2 (en) 2012-12-21 2020-09-08 International Business Machines Corporation Software development work item management system
KR101722392B1 (en) 2015-10-06 2017-04-05 숭실대학교산학협력단 System and Method for Managing Configuration
CN111078249A (en) * 2019-11-08 2020-04-28 泰康保险集团股份有限公司 Software updating method, system, device and storage medium

Similar Documents

Publication Publication Date Title
US8595259B2 (en) Web data usage platform
US9754242B2 (en) Deployment mechanism for non-versioning business process artifacts
JP4845153B2 (en) System, method, server, and computer program for avoiding conflict of update work in distributed environment using multiple clients
US20050080804A1 (en) System and method for maintaining componentized content
US20040216084A1 (en) System and method of managing web content
US20060101100A1 (en) Document management of nested references
JP2011028587A (en) Information-processing device, method for controlling information-processing device, and information-processing program
JP4786998B2 (en) Software reuse parts management system
JP2009223822A (en) Source code update notifying device and source code update notifying method
JP2006048645A (en) Method and system for embedding context information in document
US8666997B2 (en) Placeholders returned for data representation items
US20110113425A1 (en) Systems And Methods For Making Software Available For Download
JP2010282241A (en) File management device, file management system, file management method, and program
JP6048957B2 (en) Information processing apparatus, program, and information processing method
JP2003208501A (en) Business process definition display method and program
JP2008243033A (en) Retrieval system, retrieval method, program and storage medium
JP2004192524A (en) Supporting method, support apparatus and computer program
JP4432698B2 (en) Attached document processing computer program and attached document processing apparatus and method
WO2015186256A1 (en) Development support system
JP2004310279A (en) Business processing system, its construction support device, program for business processing system, and program for supporting construction of business processing system
US7752638B2 (en) Method for defining and dynamically invoking polymorphic call flows
US9323425B2 (en) Deferred data post
JP4369864B2 (en) Component management system and component management program
JP7316240B2 (en) Program update management system, program update management method, and program update management program
JP2006227859A (en) System, program, and method for database management, and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120726

A131 Notification of reasons for refusal

Effective date: 20120809

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121128