JP2018005535A - Software development assist method and system - Google Patents
Software development assist method and system Download PDFInfo
- Publication number
- JP2018005535A JP2018005535A JP2016131093A JP2016131093A JP2018005535A JP 2018005535 A JP2018005535 A JP 2018005535A JP 2016131093 A JP2016131093 A JP 2016131093A JP 2016131093 A JP2016131093 A JP 2016131093A JP 2018005535 A JP2018005535 A JP 2018005535A
- Authority
- JP
- Japan
- Prior art keywords
- change
- information
- source code
- input
- output device
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、ソフトウェアを開発する際の作業を支援するためのソフトウェア開発支援方法及びシステムに関する。 The present invention relates to a software development support method and system for supporting work in developing software.
大規模なソフトウェアを開発するとき、母体となるソースコードを分析し、新しい機能を追加する場合が多い。このとき母体ソースコードの理解が不十分なままソースコードの追加および変更を行うと、修正すべき箇所の見逃しや、並行して実施されている他開発者との変更と衝突し、不具合を発生させることがある。この課題を解決するため、母体ソースコードの分析を行う手法が提案されている(特許文献1参照)。特許文献1では、母体ソースコード内の関数および変数間の依存関係を検索することで、母体ソースコードの分析を支援する方法が提案されている。
When developing large-scale software, the source code is often analyzed and new functions are added. At this time, if the source code is added or changed without sufficient understanding of the parent source code, it may cause problems due to oversight of parts to be corrected or conflicts with changes made by other developers in parallel. There are things to do. In order to solve this problem, a method of analyzing a parent source code has been proposed (see Patent Document 1).
特許文献1の方法は、ソースコードを変更する際に、変更影響のチェック漏れを無くすには十分ではなく、しかも、単一の開発者を想定しており、複数開発者による作業の衝突は考慮されていない。
The method of
本発明の目的は、ソースコードを変更する際に、変更影響のチェック漏れを無くすことを支援することにある。 An object of the present invention is to assist in eliminating omissions in checking for changes when changing source code.
上記課題を解決するため、本発明は、関数又は変数のうち少なくとも一方で構成される複数の要素を含むソースコードを格納する記憶装置と、情報の入出力を行う入出力装置と、前記記憶装置及び前記入出力装置を管理するコントローラを含むシステムにおけるソフトウェア開発支援方法であって、前記コントローラが、前記ソースコードに含まれる要素の変更を指示する第一の変更要求を前記入出力装置から受付けたとき、当該受付けた第一の変更要求の影響を受ける他の要素が変更されているかどうかを示す第一の変更管理情報と前記第一の変更要求の影響を受ける他の要素の変更予定の有無を示す第一の変更予定情報を前記記憶装置に格納する第1のステップと、前記入出力装置が、前記第一の変更要求で変更を指示された要素、前記第一の変更要求の影響を受ける他の要素、前記第一の変更管理情報及び、前記第一の変更予定情報を出力する第2のステップと、を有することを特徴とする。 In order to solve the above-described problems, the present invention provides a storage device that stores a source code including a plurality of elements configured by at least one of a function and a variable, an input / output device that inputs and outputs information, and the storage device And a software development support method in a system including a controller that manages the input / output device, wherein the controller receives from the input / output device a first change request that instructs to change an element included in the source code. The first change management information indicating whether or not other elements affected by the received first change request have been changed, and whether or not there are plans to change other elements affected by the first change request A first step of storing in the storage device the first change schedule information indicating the element, the input / output device is an element instructed to change in the first change request, Other factors affected by one change request, the first change management information and is characterized by having a second step of outputting the first change schedule information.
本発明によれば、ソースコードを変更する際に、変更影響のチェック漏れを無くすことができる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。 According to the present invention, it is possible to eliminate the check omission of the change effect when changing the source code. Problems, configurations, and effects other than those described above will become apparent from the description of the following examples.
以下、実施例について図面を用いて説明する。なお、図面において、同一符号は、同一または相当部分を示す。また、本発明は、図示例に限定されるものではない。 Hereinafter, embodiments will be described with reference to the drawings. In the drawings, the same reference numerals indicate the same or corresponding parts. Further, the present invention is not limited to the illustrated example.
本実施例は、母体ソースコードに機能を追加する典型的な開発フローのうち、設計工程の作業について説明する。 In the present embodiment, an operation of a design process will be described in a typical development flow for adding a function to a parent source code.
図1は、本発明の実施例1を示すシステムの全体構成図である。図1において、システム(ソフトウェア開発支援システム)は、開発マシン10と、管理サーバ12を備え、開発マシン10が管理サーバ12に接続される。開発マシン10は、ディスプレイ102と、周辺機器103と、中央処理演算装置104と、記憶装置105から構成される。ディスプレイ102は、情報を表示する表示装置あるいは情報を出力する出力装置として構成され、周辺機器103は、キーボード等を有し、情報を入力する入力装置として構成される。この際、ディスプレイ102と周辺機器103を、情報を入出力する入出力装置として構成することができる。中央処理演算装置104は、例えば、CPU(Central Processing Unit)、メモリ、入出力インタフェース等の情報処理資源を備えたコンピュータ装置として構成され、CPUによって実行されるソフトウェア14を備え、記憶装置105は、情報記憶部16を備えている。ソフトウェア14は、ユーザインタフェース表示部108と、ソース構成管理部109と、ソース依存関係解析部110と、ソースメトリクス解析部111と、フラグ管理部112から構成される。情報記憶部16は、変更中ソースコード113と、ソースコードデータベース114から構成される。この際、中央処理演算装置104は、記憶装置105を管理すると共に、入出力装置と情報の送受信を行うコントローラとして機能する。
FIG. 1 is an overall configuration diagram of a
1又は複数の開発マシン10から利用される管理サーバ12は、中央処理演算装置106と、記憶装置107から構成され、開発マシン10と情報の送受信を行って記憶装置107を管理する。記憶装置107は、情報記憶部18を備えている。中央処理演算装置106は、例えば、CPU、メモリ、入出力インタフェース等の情報処理資源を備えたコンピュータ装置として構成される。情報記憶部18は、構成管理データベース115と、チェックフラグデータベース116から構成される。この際、開発者101は、ディスプレイ102と周辺機器103を通じて開発マシン10を利用する。
The
ユーザインタフェース表示部108は、ソース構成管理部109と、ソース依存関係解析部110と、ソースメトリクス解析部111と、フラグ管理部112のうちいずれかの処理内容や処理結果などをディスプレイ102に表示するためのソフトウェア(プログラム)である。ソース構成管理部109は、ソースコードのバージョン管理をするためのソフトウェアであって、変更中ソースコード113と構成管理データベース115に接続され、複数のユーザ(開発者)がいつどのソースコードを変更したかを管理している。ソース依存関係解析部110は、ソースコードに含まれる関数および変数間の参照関係を解析するためのソフトウェアであり、変更中ソースコード113とソースコードデータベース114に接続される。基本的にソースコードの静的解析技術に基づいて処理されるが、ロジカルカップリングなどのアルゴリズムに基づいて処理される実現形態もある。ソースメトリクス解析部111は、ソースコードに属する各関数および変数に関係するメトリクス(数値情報)を計測するソフトウェアであり、変更中ソースコード113とソースコードデータベース114に接続される。なお、後に説明する実施例では他依存数のみを表示しているが、複雑度や変更頻度等のメトリクスを扱う実現形態もある。フラグ管理部112は、チェックフラグデータベース116に接続され、チェックフラグデータベース116に記録されたチェックフラグデータを管理するためのソフトウェアである。構成管理データベース115は、ソース構成管理部109と連携してソースコードの構成管理を行う。チェックフラグデータベース116は、フラグ管理部112と連携してチェックフラグデータを保存する。
The user
図2は、テーブルとデータベースの構成図であって、(a)は、要素依存関係の例を示すテーブルの構成図、(b)は、ソースコードデータベースに保存されるテーブルの構成図、(c)は、構成管理データベースの構成図、(d)は、チェックフラグデータベースに保存されるテーブルの構成図である。 2A and 2B are configuration diagrams of a table and a database, in which FIG. 2A is a configuration diagram of a table showing an example of element dependency, FIG. 2B is a configuration diagram of a table stored in a source code database, and FIG. ) Is a configuration diagram of the configuration management database, and (d) is a configuration diagram of a table stored in the check flag database.
図2(a)において、要素依存関係の例を示すテーブル201は、記憶装置105に保存されるテーブルであって、本ツールが対象とするソースコード中の関数および変数の依存関係を表わしたグラフに関する情報として、「関数:func1」、「関数:func2」、「変数:value1」、「関数:func3」から構成される。ここで、本実施例では、ソースコード中に存在する関数および変数を要素と呼ぶ。テーブル201では、「関数:func2」が「変数:value1」と「関数:func3」を参照し、「関数:func2」は「関数:func1」から参照されている依存関係であることを示している。依存関係は、矢印202で示している。
In FIG. 2A, a table 201 showing an example of element dependency is a table stored in the
図2(b)において、ソースコードデータベース114には、要素テーブル203と、変更影響テーブル204が保存される。要素テーブル203は、要素ID205と、ファイル206と、関数/変数207と、他依存数208から構成される。要素ID205には、要素を一意に識別するための識別子が格納される。ファイル206には、ファイルを特定するファイル名などの情報が格納される。関数/変数207には、関数又は変数を特定する情報(関数名、変数名)が格納される。他依存数208には、関数/変数207に記録された関数又は変数の他に、要素と依存関係を有するものが存在する数を示す情報(数値情報)が格納される。
2B, the
変更影響テーブル204は、変更元要素ID209と、変更影響要素ID210と、変更影響タイプ211から構成される。変更元要素ID209と変更影響要素ID210は、要素ID205で定義されたIDに対応するIDであって、変更元要素ID209には、要素の変更元を示す変更元要素を識別するための識別子が格納される。例えば、要素ID205のうち「要素2」が変更される場合(変更予定の場合)、変更元要素ID209には、「2」が格納される。変更影響要素ID210には、変更元要素の変更に伴って影響を受ける要素を識別するための識別子が格納される。例えば、要素ID205のうち「要素2」の変更の影響を受ける要素が「1」、「3」、「4」である場合、変更影響要素ID210には、「1」、「3」、「4」が格納される。変更影響要素ID210には、変更影響要素ID210に格納された要素が変更元要素によって呼び出されるタイプである場合、「呼出」の情報が格納され、変更影響要素ID210に格納された要素が変更元要素を呼び出すタイプである場合、「被呼出」の情報が格納される。
The change influence table 204 includes a change
図2(c)において、構成管理データベース115には、ソースコード212が保存される。ソースコード212は、複数のバージョン213によって管理されている。各バージョン213には、更新日時が保存されており、最新バージョン213のソースコード212を取出すことができる。
In FIG. 2C, the
図2(d)において、チェックフラグデータベース116には、変更フラグテーブル214が保存される。変更フラグテーブル214は、ファイル215と、関数/変数216と、ソース構成管理状態217と、変更予定状態218と、変更衝突状態219と、更新者220と、更新日時221から構成される。ファイル215には、ファイル206と同様の情報であって、ファイルを特定するファイル名などの情報が格納される。関数/変数216には、関数/変数207と同様の情報であって、関数又は変数を特定する情報(関数名、変数名)が格納される。ソース構成管理状態217には、ソース構成管理が未変更の場合、「未変更」の情報が格納され、ソース構成管理が変更済である場合、「変更済」の情報が格納される。変更予定状態218には、変更予定(要素の変更予定)が未確認の場合には、「未確認」の情報が格納され、変更予定が変更不要である場合、「変更不要」の情報が格納され、変更予定が必要である場合、「変更必要」の情報が格納される。変更衝突状態219には、衝突の有無を示す情報(要素間で衝突(重複)が生じたか否かを示す情報)が格納される。更新者220には、ソースコードを変更した更新者の名称を示す情報が格納される。更新日時221には、ソースコードが変更された更新日時を示す情報が格納される。なお、図2(d)では、変更フラグテーブル214には、テーブル201の初期状態の情報が格納されている。
In FIG. 2D, the change flag table 214 is stored in the
図3は、ソース構成管理部の処理を説明するためのフローチャートである。図3において、開発者101がソースコードの変更を行う場合には、構成管理データベース115上のソースコードではなく、記憶装置105上のローカルソースコードを変更する。この変更が完了した段階で、開発者101がソースコードの登録を指示すると、ソース構成管理部109による処理が開始される(ステップ301)。まず、ソース構成管理部109は、変更中ソースコード(変更中のソースコード)113と、構成管理データベース115中の最新のバージョン213のソースコード212とを比較し(ステップ302)、差分があるか否かを判定し(ステップ303)、差分がない場合、このルーチンでの処理を終了し、差分がある場合、構成管理データベース115に、変更中ソースコードを最新バージョンとして登録し(ステップ304)、このルーチンでの処理を終了する。この処理は一般的なソースコード構成管理ツールが持つ処理である。
FIG. 3 is a flowchart for explaining the processing of the source configuration management unit. In FIG. 3, when the
図4は、ソース依存関係解析部の処理を説明するためのフローチャートである。図4において、ソース依存関係解析部110は、後に説明する一覧画面(変更影響チェック画面)801を呼出したタイミング、もしくは、変更中ソースコード113が変更されたタイミング、もしくは、定期的なスケジュールで、ソース(ソースコード)の依存関係解析を開始する(ステップ401)。ソース依存関係解析部110は、ステップ401で処理が開始されると、変更中ソースコード113の持つすべての要素でループを行い(ステップ402)、変更中ソースコード113の各要素の依存関係を計測し(ステップ403)、計測結果を、ソースコードデータベース114の変更影響テーブル204に依存関係を示す情報として保存する(ステップ404)。ソース依存関係解析部110は、この処理をすべての要素に対して行い、このルーチンでの処理を終了する(ステップ405)。この処理は一般的なソース依存関係解析ツールが持つ処理である。
FIG. 4 is a flowchart for explaining the processing of the source dependency analysis unit. In FIG. 4, the source
図5は、ソースメトリクス解析部の処理を説明するためのフローチャートである。図5において、ソースメトリクス解析部111は、後に説明する一覧画面(変更影響チェック画面)801を呼出したタイミング、もしくは、変更中ソースコード113が変更されたタイミング、もしくは、定期的なスケジュールで、ソース(ソースコード)のメトリクス解析を開始する(ステップ501)。ソースメトリクス解析部111は、ステップ501で処理が開始されると、変更中ソースコード113の持つすべての要素でループを行い(ステップ502)、変更中ソースコード113の各要素のメトリクスを計測し(ステップ503)、計測結果を、ソースコードデータベース114の要素テーブル203に、各要素のメトリクスを示す情報として保存する(ステップ504)。ソースメトリクス解析部111は、この処理をすべての要素に対して行い、このルーチンでの処理を終了する(ステップ505)。この処理は一般的なソースメトリクス解析ツールが持つ処理である。
FIG. 5 is a flowchart for explaining processing of the source metrics analysis unit. In FIG. 5, the source metrics analysis unit 111 selects a source at a timing when a list screen (change impact check screen) 801, which will be described later, is called, when a
図6は、母体ソースコードに機能を追加する典型的な開発フローを示すフローチャートである。図6において、開発プロセスの始点601から、開発者101が処理を開始し、母体コード(ソースコード)を読込むための操作を実行すると、ユーザインタフェース表示部108が、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込み、読込んだ母体コード(ソースコード)をディスプレイ102上に表示する。この際、開発者101は、ディスプレイ102上に表示された母体コード(ソースコード)に対して、周辺機器103のキーボード等を操作して、機能の追加を設計する(ステップ602)。例えば、「func2」を変更するための設計を行う。この際、フラグ管理部112は、ステップ602にて、例えば、「func2」を変更する際の変更影響チェックを行い、チェック結果(「func2」の変更の影響を受ける関数又は変数等の情報)をチェックフラグデータベース116に登録する。
FIG. 6 is a flowchart showing a typical development flow for adding functions to the parent source code. In FIG. 6, when the
次に、開発者101は、周辺機器103のキーボード等を操作して、ステップ603にて追加された機能をソースコード上に実装する(ステップ603)。この後、開発者101が、母体コード(ソースコード)とチェックフラグを読込むための操作を実行すると、ユーザインタフェース表示部108が、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込み、フラグ管理部112を介してチェックフラグデータベース116からチェックフラグを読込み、読込んだ母体コード(ソースコード)とチェックフラグをディスプレイ102上に表示する。この際、開発者101は、ディスプレイ102上に表示された母体コード(ソースコード)とチェックフラグを参照して、機能の実装完了チェックを行う(ステップ604)。例えば、開発者101は、表示された母体ソースコードとチェックフラグとを比較し、変更影響チェックを行う。この際、開発者101は、チェック結果に問題が発生していれば、さらにソースコードの修正を行う。チェック結果が良好であれば、変更後コード(ソースコード)を構成管理データベース115に登録するための操作を実行する。これにより、開発プロセスは終点605で終了する。
Next, the
図7は、ユーザインタフェース表示部で管理されるシンボルの凡例を示す構成図である。図7において、ユーザインタフェース表示部108は、フラグ管理部112を介して、チェックフラグデータベース116の変更フラグテーブル214のうちソース構成管理状態217の情報をソース構成管理状態701の情報として、変更予定状態218の情報を変更予定状態702の情報として、変更衝突状態219の情報を変更衝突状態703の情報として管理すると共に、各情報をシンボルに対応づけて管理し、管理された情報とシンボルをディスプレイ102の画面上に表示する。ソース構成管理状態701の情報とシンボルは、未変更(レ点)と変更済(!)から構成される。変更予定状態702の情報とシンボルは、未確認(?)、変更不要(N)、変更必要(C)から構成される。変更衝突状態703の情報とシンボルは、変更衝突状態(×)から構成される。各々のカテゴリ内では同時に表示されるものは一つのシンボルに限られるが、ソース構成管理状態701、変更予定状態702、変更衝突状態703に関する情報やシンボルは、一つの要素に対して同時に表示される可能性がある。
FIG. 7 is a configuration diagram showing a legend of symbols managed by the user interface display unit. In FIG. 7, the user
図8は、関数に対して変更必要のフラグを立てたときの状態を説明するための図であって、(a)は、ディスプレイの表示例を示す構成図、(b)は、変更フラグテーブルの構成図である。図8において、開発者101が、周辺機器103を操作して、ディスプレイ102の画面上に一覧画面801を表示させ、ユーザインタフェース表示部108を通じて「func2」に対して変更必要(変更予定)のフラグ(C)を立てることを指示すると、ソース依存関係解析部110は、指示された情報を基にソースコードデータベース114を参照して、「func2」と呼出または被呼出の関係にある関数又は変数として、例えば、「value1」、「func3」、「func1」に未確認フラグ(?)を立てるための処理を実行する。この処理結果がユーザインタフェース表示部108を介してディスプレイ102に転送されると、ディスプレイ102の一覧画面801には、ソース依存関係解析部110の参照結果が表示される。この際、開発者101は、表示された一覧画面801の内容を参照することができる。
FIGS. 8A and 8B are diagrams for explaining a state when a flag that needs to be changed is set for a function, where FIG. 8A is a configuration diagram showing a display example of the display, and FIG. 8B is a change flag table. FIG. In FIG. 8, the
一覧画面801には、変更元(要素の変更元)802に関する情報として、「func2」のファイル(FileA.c)および関数/変数「func2」が表示され、変更影響803として、「func2」の変更の影響を受けるファイルおよび関数/変数であって、要素テーブル203と変更影響テーブル204に登録されたファイル名(FileA.h、FileB.c、FileC.c)および関数/変数の名称(value1、func3、func1)が表示され、変更影響タイプ804として、変更影響テーブル204に登録された「呼出」または「被呼出」が表示され、メトリクス805として、要素テーブル203の他依存数208に登録された情報(他依存数:15など)が表示される。この際、変更元802の関数/変数「func2」には、未変更を示すシンボルレ点と、変更必要(変更予定)を示すシンボル(C)がフラグ(チェックフラグ)として表示される。また、変更影響803の関数/変数(value1、func3、func1)には、未変更を示すシンボルレ点と、未確認を示すシンボル(?)がフラグ(チェックフラグ)として表示される。
The
開発者101は、この一覧画面801を参照し、自分が設計したい機能に必要な母体コード(ソースコード)の変更範囲を検討する。変更範囲の検討にあたっては、変更影響タイプ804とメトリクス805を参照して、変更影響のインパクトを参考にすることができる。ここで示した変更影響タイプ804とメトリクス805は一部の例であり、変更影響の分析に役立つ様々な項目を追加した実現形態がある。
The
また、変更フラグテーブル214のファイル215には、ファイル名(FileA.h、FileA.c、FileB.c、FileC.c)が登録され、関数/変数216には、関数又は変数の名称(value1、func2、func3、func1)が登録され、ソース構成管理状態217には、各ファイルが未変更であることを示すために、「未変更」の情報が登録され、変更予定状態218には、「func2」の欄のみ、変更必要(変更予定)であることを示すために、「変更必要」の情報が登録され、他の欄には、変更必要であるか否かは未確認であることを示すために、「未確認」の情報が登録され、更新者220には、開発者101の名称が登録され、更新日時221には、開発者101による更新日時の情報が登録される。なお、変更フラグテーブル214には、ファイル215に対応して、要素IDの情報を登録することもできる。
The file name (FileA.h, FileA.c, FileB.c, FileC.c) is registered in the
図9は、フラグ管理部の処理を説明するためのフローチャートである。この処理は、開発者101が未確認フラグ(?)を立てるための操作を実行することによって開始される(ステップ901)。フラグ管理部112は、処理が開始されると、未確認フラグ(?)を立てるための操作による情報を基に要素テーブル203を参照して、要素テーブル203のすべての要素IDでループを開始し(ステップ902)、要素テーブル203の要素IDを基に変更フラグテーブル214から、ループ処理中の要素IDに該当する行(要素IDで特定されるファイルに該当する行)を取得する(ステップ903)。
FIG. 9 is a flowchart for explaining the processing of the flag management unit. This process is started when the
次に、フラグ管理部112は、変更フラグテーブル214を参照して、要素が変更必要(変更予定)であるか否か、即ち、要素IDで特定されるファイルが変更必要(変更予定)である否かを判定し(ステップ904)、このステップで否定の判定結果を得た場合、このルーチンでの処理を終了し、このステップで肯定の判定結果を得た場合、要素テーブル203の要素IDを基に変更影響テーブル204から変更元要素IDが一致する複数行を取得し(ステップ905)、取得した複数行でループを開始する(ステップ906)。
Next, the
次に、フラグ管理部112は、ループ中の処理として、取得した複数行のうち該当行の変更影響要素IDを変更影響テーブル204から取得し(ステップ907)、取得した変更影響要素IDを基に変更フラグテーブル214のうち要素IDが一致する行(要素IDで特定されるファイルが一致する行)を取得し(ステップ908)、変更予定状態が「変更必要(C)」でないか否かを判定し(ステップ909)、このステップで肯定の判定結果を得た場合、変更予定状態を未確認(?)に変更し(ステップ910)、その後、このルーチンでの処理を終了し、ステップ909で否定の判定結果を得た場合、即ち、変更必要(変更予定)(C)である場合、何もせずループを継続し、その後、このルーチンでの処理を終了する。最終的にすべての要素テーブル203に含まれる要素IDで処理を行い、ステップ911で処理を終了する。ここで示したアルゴリズムは基本的な流れを示したため、実際には未確認(?)範囲を最小化する応用アルゴリズム等を持つ実現形態がある。
Next, the
図10は、設計が終了した時点のフラグの状態を説明するための図であって、(a)は、ディスプレイの表示例を示す構成図、(b)は、変更フラグテーブルの構成図である。図10において、開発者101が、周辺機器103を操作して、ディスプレイ102の画面上に一覧画面801を表示させ、ユーザインタフェース表示部108を通じて「func2」等を変更するための設計が完了したことを指示すると、ソース依存関係解析部110は、指示された情報を基にソースコードデータベース114を参照して、「func2」と呼出または被呼出の関係にある関数又は変数(value1、func3、func1)にシンボルを表示するための処理を実行する。この処理結果がユーザインタフェース表示部108を介してディスプレイ102に転送されると、ディスプレイ102の一覧画面801には、ソース依存関係解析部110の参照結果が表示される。この際、開発者101は、表示された一覧画面801の内容を参照することができる。
10A and 10B are diagrams for explaining the state of the flag at the time when the design is completed, in which FIG. 10A is a configuration diagram illustrating a display example of the display, and FIG. 10B is a configuration diagram of a change flag table. . In FIG. 10, the design has been completed for the
一覧画面801には、変更元802に関する情報として、「func2」のファイルの名称(FileA.c)および関数/変数の名称(func2)が表示され、変更影響803として、「func2」の変更の影響を受けるファイルおよび関数/変数であって、要素テーブル203と変更影響テーブル204に登録されたファイルの名称(FileA.h、FileB.c、FileC.c)および関数/変数の名称(value1、func3、func1)が表示され、変更影響タイプ804として、変更影響テーブル204に登録された「呼出」または「被呼出」が表示され、メトリクス805として、要素テーブル203の他依存数208に登録された情報(他依存数:15など)が表示される。この際、変更元802の関数/変数「func2」には、未変更を示すシンボルレ点と、変更必要(変更予定)を示すシンボル(C)がフラグ(チェックフラグ)として表示される。また、変更影響803の関数/変数(value1、func3、func1)には、未変更を示すシンボルレ点と、変更不要を示すシンボル(N)または変更必要を示すシンボル(C)がフラグ(チェックフラグ)として表示される。
The
この際、開発者101は、一覧画面801を見ることで、すべての未確認フラグ(?)が、変更予定フラグ(C)または変更不要フラグ(N)に付け替えられているかどうかを確認できる。そのため、未確認フラグが残っていた場合には、すべての未確認フラグ(?)は、ユーザインタフェース表示部108により強調表示(図中では白黒反転表示)される。これにより、開発者101の設計時点における変更影響の考慮漏れが抑止される。
At this time, the
また、変更フラグテーブル214のファイル215には、ファイルの名称(FileA.h、FileA.c、FileB.c、FileC.c)が登録され、関数/変数216には、関数/変数の名称(value1、func2、func3、func1)が登録され、ソース構成管理状態217には、各ファイルが未変更であることを示すために、「未変更」の情報が登録され、変更予定状態218には、「func2」と「func3」の欄のみ、変更必要(変更予定)であることを示すために、「変更必要」の情報が登録され、他の欄には、変更不要であることを示すために、「変更不要」の情報が登録され、更新者220には、開発者101の名称が登録され、更新日時221には、開発者101による更新日時の情報が登録される。変更フラグテーブル214には、一覧画面801に表示されたフラグ(チェックフラグ)に関連した情報が格納される。この際、更新者と更新日時の情報が保存されるため、誰が何時どのような判断を行ったかという設計エビデンスが保存される。
The file names (FileA.h, FileA.c, FileB.c, FileC.c) are registered in the
本実施例によれば、新しい機能を追加する開発者101が、実装前の設計工程に本システムを利用することで、抜け漏れなく(変更影響のチェック漏れなく)ソースコードを変更することを支援することができる。具体的には、設計が終了した時点で、一覧画面801には、変更元802に関する情報と変更影響803の情報が表示されるので、開発者101は、一覧画面801を参照することで、ソードコードに属する要素のうち変更元要素と変更元要素の影響を受ける要素との関連を確認することができる。また、一覧画面801には、未確認フラグ、変更予定フラグまたは変更不要フラグがシンボルとして表示されるので、開発者101は、ソードコードに属する要素を変更したか否か等を容易に確認することができる。さらに、一覧画面801には、未確認フラグが残っていた場合には、未確認フラグが強調して表示されるので、開発者101の設計時点における変更影響の考慮漏れが抑止される。また、一覧画面801のメトリクス805には、他依存数が数値情報で表示されるので、開発者101は、他依存数が設定値よりも多い要素(他依存数:15)については、変更すると影響が大きいので、変更しない方が良いと判断できる。
According to the present embodiment, the
本実施例は、母体ソースコードに機能を追加する典型的な開発フローのうち、ソースコードの変更を行う実装工程の作業の例である。 A present Example is an example of the operation | work of the mounting process which changes a source code among the typical development flows which add a function to a base source code.
図11は、設計を行った後、ソースコードの変更を実施した状態を説明するための図であって、(a)は、実施例2におけるディスプレイの表示例を示す構成図、(b)は、実施例2における変更フラグテーブルの構成図である。図11において、開発者101が、周辺機器103を操作して、ディスプレイ102の画面上に一覧画面801を表示させ、ユーザインタフェース表示部108を通じて「func2」等を変更するための設計が完了した後、ソースコードの変更を指示すると、ソース依存関係解析部110は、指示された情報を基にソースコードデータベース114を参照して、「func2」と呼出または被呼出の関係にある関数又は変数(value1、func3、func1)にシンボルを表示するための処理を実行する。この処理結果が、ユーザインタフェース表示部108を介してディスプレイ102に転送されると、ディスプレイ102の一覧画面801には、ソース依存関係解析部110の参照結果が表示される。この際、開発者101は、表示された一覧画面801の内容を参照することができる。
FIG. 11 is a diagram for explaining a state in which the source code is changed after the design is performed. FIG. 11A is a configuration diagram illustrating a display example of the display in the second embodiment, and FIG. FIG. 10 is a configuration diagram of a change flag table in the second embodiment. In FIG. 11, after the
一覧画面801には、変更元802に関する情報として、「func2」のファイル(FileA.c)および関数/変数「func2」が表示され、変更影響803として、「func2」の変更の影響を受けるファイルおよび関数/変数であって、要素テーブル203と変更影響テーブル204に登録されたファイルの名称(FileA.h、FileB.c、FileC.c)および関数/変数の名称(value1、func3、func1)が表示され、変更影響タイプ804として、変更影響テーブル204に登録された「呼出」または「被呼出」が表示され、メトリクス805として、要素テーブル203の他依存数208に登録された情報(他依存数:15など)が表示される。この際、変更元802の関数/変数「func2」には、変更済を示すシンボル(!)と、変更必要(変更予定)を示すシンボル(C)がフラグ(チェックフラグ)として表示される。また、変更影響803の関数/変数(value1、func3、func1)には、未変更を示すシンボルレ点または変更済を示すシンボル(!)、変更不要を示すシンボル(N)または変更必要を示すシンボル(C)がフラグ(チェックフラグ)として表示される。
In the
この際、開発者101は、一覧画面801を見ることで、設計通り変更されているか否かを確認することができる。例えば、要素(func2)が変更予定(C)で且つ変更済(!)の場合であって、要素(value1)が変更不要(N)で且つ未変更(レ点)の場合は、設計通り実装されている望ましい例である。一方、要素(func2)が変更予定(C)で且つ変更済(!)の場合であって、要素(func3)が、変更予定(C)にもかかわらず未変更(レ点)の場合と、要素(func2)が変更予定(C)で且つ変更済(!)の場合であって、要素(func1)が、変更不要(N)にもかかわらず変更済(!)の場合は、設計通り変更されておらず望ましくない例である。望ましくないフラグの組合せの場合、シンボルは、ユーザインタフェース表示部108により、強調表示される。ただし、望ましくない例であっても、実装の都合上変更が起きることはよくあるため、操作の制約は設けない。新たに追加された変更要素を変更予定(C)に変更し、再チェックをかけることで、変更影響の考慮漏れを抑止した上で、誤った設計を行った事実は開発者のIDとともにチェックフラグデータベース116の変更フラグテーブル214に登録される。
At this time, the
また、変更フラグテーブル214のファイル215には、ファイルの名称(FileA.h、FileA.c、FileB.c、FileC.c)が登録され、関数/変数216には、関数又は変数の名称(value1、func2、func3、func1)が登録され、ソース構成管理状態217には、「func1」のみ「変更済」の情報が登録され、それ以外は、「未変更」の情報が登録され、各ファイルが未変更であることを示すために、「未変更」の情報が登録され、変更予定状態218には、「func2」と「func3」の欄のみ、「変更必要」の情報が登録され、他の欄には、「変更不要」の情報が登録され、更新者220には、開発者101の名称が登録され、更新日時221には、開発者101による更新日時の情報が登録される。
The file name (FileA.h, FileA.c, FileB.c, FileC.c) is registered in the
本実施例によれば、新しい機能を追加する開発者101が、実装後に本システムを利用することで、抜け漏れなくソースコードを変更することを支援することができる。具体的には、設計を行った後、ソースコードの変更を実施した場合、一覧画面801には、変更元802に関する情報及び変更影響803の情報と共に、未確認フラグ、変更予定フラグまたは変更不要フラグがシンボルとして表示され、且つ、これらのシンボルのうち設計通り変更されていないフラグの組合せの場合には、シンボルが強調して表示されるので、開発者101は、ソードコードに属する要素が、設計通り変更されていないことを容易に確認することができる。
According to the present embodiment, the
本実施例は、複数の開発者が並行して機能の追加を行う場合の例である。以下、複数の開発者が並行して機能の追加を行う場合の問題と解決策について説明する。 This embodiment is an example when a plurality of developers add functions in parallel. The following describes problems and solutions when multiple developers add functions in parallel.
図12は、実施例3における処理であって、チェックフラグデータベースを参照しない場合の処理を説明するためのフローチャートである。図12において、開発プロセスの始点1201から、開発者Aが処理を開始し、開発者Aが、母体コード(ソースコード)を読込むための操作を実行すると、ユーザインタフェース表示部108が、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込み、読込んだ母体コードをディスプレイ102上に表示する。この際、開発者Aは、ディスプレイ102上に表示された母体コード(ソースコード)に対して、周辺機器103のキーボード等を操作して、機能Aの追加を設計する(ステップ1202)。例えば、「func2」を変更するための設計を行う。次に、開発者Aは、周辺機器103のキーボード等を操作して、ステップ1202にて追加された機能A(機能Aの追加)をソースコード上に実装する(ステップ1203)。この後、開発者Aは、構成管理データベース115から母体コード(ソースコード)を読込むための操作を実行し、ディスプレイ102上に表示された母体コードを参照して、機能Aの実装完了チェックを行い(ステップ1204)、チェック後、変更後コード(ソースコード)を構成管理データベース115に登録するための操作を実行する。これにより、開発プロセスは終点1205で終了する。
FIG. 12 is a flowchart for explaining the processing in the third embodiment when the check flag database is not referred to. In FIG. 12, when the developer A starts processing from the
一方、開発者Bは、開発プロセスの始点1211から処理を開始する。開発者Bが母体コード(ソースコード)を読込むための操作を実行すると、ユーザインタフェース表示部108は、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込み、読込んだ母体コードをディスプレイ102上に表示する。この際、開発者Bは、ディスプレイ102上に表示された母体コードに対して、周辺機器103のキーボード等を操作して、機能Bの追加を設計する(ステップ1212)。例えば、「func2」を変更するための設計を行う。次に、開発者Bは、周辺機器103のキーボード等を操作して、ステップ1212にて追加された機能B(機能Bの追加)をソースコード上に実装する(ステップ1213)。この後、開発者Bは、構成管理データベース115から母体コード(ソースコード)を読込むための操作を実行し、ディスプレイ102上に表示された母体コードを参照して、機能Bの実装完了チェックを行う(ステップ1214)。この際、開発プロセスを終点1215で終了する前に、修正手戻りの発生や衝突発生検知遅れが生じることがある。
On the other hand, the developer B starts processing from the
例えば、開発者Aの操作による処理が開発者Bの操作による処理よりも早く完了し、ステップ1204にて、機能Aの変更後コード登録が、ステップ1214における機能Bの実装完了チェックよりも先に実施された場合、ステップ1214における機能Bの母体コード読込みは、機能Bの追加を設計する際に実施したステップ1212における母体コード読込みとは異なるコード(ソースコード)を読込むため、機能Aが変更されたコード(ソースコード)の影響を受ける。具体的には、開発者Bに対して変更予定でないファイルが変更された場合、変更影響チェックをやり直す必要が発生する。この際、場合によっては、ソースコードの修正もやり直す必要がある。この変更影響による衝突を、ステップ1214における母体コード読込みを実施するまで検知することができず、衝突発生検知遅れとなり、機能Bの実装完了チェックの作業において、修正手戻りの発生により、開発工数が長くなってしまう。また、機能Aと機能Bが同じ内容の変更であった場合については、ステップ1213では、二重作業の実施となり、開発者Bが行った、機能Bの追加を実装する作業は無駄になってしまう。
For example, the process by the operation of developer A is completed earlier than the process by the operation of developer B. In
図13は、実施例3における処理であって、チェックフラグデータベースのデータを活用した場合の処理を説明するためのフローチャートである。図13において、開発プロセスの始点1301から、開発者Aが処理を開始し、開発者Aが母体コード(ソースコード)を読込むための操作を実行すると、操作に伴う情報を入力したユーザインタフェース表示部108は、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込み、読込んだ母体コードをディスプレイ102上に表示する。この際、開発者Aは、ディスプレイ102上に表示された母体コードに対して、周辺機器103のキーボード等を操作して、機能Aの追加を設計(例えば、「func2」を変更するための設計)し(ステップ1302)、設計後のチェックフラグをチェックフラグデータベース116に登録するための操作を実行する。
FIG. 13 is a flowchart for explaining the processing in the third embodiment when the data in the check flag database is used. In FIG. 13, when the developer A starts processing from the
次に、開発者Aは、周辺機器103のキーボード等を操作して、ステップ1302にて追加された機能A(機能Aの追加)をソースコード上に実装する(ステップ1303)。この後、開発者Aが、母体コード(ソースコード)を読込むと共に、チェックフラグを読込むための操作を実行すると、操作に伴う情報を入力したユーザインタフェース表示部108は、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込むと共に、フラグ管理部112を介してチェックフラグデータベース116からチェックフラグを読込み、読込んだ母体コードとチェックフラグをディスプレイ102上に表示する。この際、開発者Aは、ディスプレイ102上に表示された母体コードとチェックフラグを参照して、機能Aの実装完了チェックを行い(ステップ1304)、チェック後、変更後コード(ソースコード)を構成管理データベース115に登録するための操作を実行する。これにより、開発プロセスは終点1305で終了する。
Next, the developer A operates the keyboard or the like of the
この際、フラグ管理部112は、ソースコードに含まれるシンボルの変更を指示する第一の変更要求を周辺機器103から受付けたとき、当該受付けた第一の変更要求の影響を受ける他のシンボルが変更されているかどうかを示す情報(第一の変更管理情報)をソース構成管理状態217の情報としてチェックフラグデータベース116に格納すると共に、第一の変更要求の影響を受ける他のシンボルの変更予定の有無を示す情報(第一の変更予定情報)を変更予定状態218の情報としてチェックフラグデータベース116に格納する。ユーザインタフェース表示部108は、第一の変更要求で変更を指示されたシンボル、第一の変更要求の影響を受ける他のシンボル、第一の変更要求の影響を受ける他のシンボルが変更されているかどうかを示す情報(第一の変更管理情報)及び、第一の変更要求の影響を受ける他のシンボルの変更予定の有無を示す情報(第一の変更予定情報)をディスプレイ102の画面上に表示させる。
At this time, when the
一方、開発者Bは、開発プロセスの始点1311から処理を開始する。開発者Bが母体コード(ソースコード)を読込むと共に、チェックフラグを読込むための操作を実行すると、操作に伴う情報を入力したユーザインタフェース表示部108は、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込むと共に、フラグ管理部112を介してチェックフラグデータベース116からチェックフラグを読込み、読込んだ母体コードとチェックフラグをディスプレイ102上に表示する。この際、開発者Bは、ディスプレイ102上に表示された母体コードに対して、周辺機器103のキーボード等を操作して、機能Bの追加を設計する(ステップ1312)。例えば、「func2」を変更するための設計を行う。この際、フラグ管理部112が衝突(要素間の衝突)を検知した場合、ディスプレイ102上には、何れかの要素に変更衝突が生じたことが表示される。この場合、開発者Bは、開発者Aと実装内容と時期を調整するための話し合いを行う(ステップ1313)。
On the other hand, the developer B starts processing from the
この際、フラグ管理部112は、ソースコードに含まれるシンボルの変更を指示する第二の変更要求を周辺機器103から受付けたとき、当該受付けた第二の変更要求の影響を受ける他のシンボルが変更されているかどうかを示す情報(第二の変更管理情報)をソース構成管理状態217の情報として保持すると共に、第二の変更要求の影響を受ける他のシンボルの変更予定の有無を示す情報(第二の変更予定情報)を変更予定状態218の情報として保持し、チェックフラグデータベース116に格納された第一の変更管理情報及び第一の変更予定情報と、保持した第二の変更管理情報及び第二の変更予定情報とを比較し、この比較結果から、いずれかの情報間で変更衝突があるか否かを判定し、この判定結果をユーザインタフェース表示部108を介してディスプレイ102に転送する。ユーザインタフェース表示部108は、第二の変更要求で変更を指示されたシンボル、第二の変更要求の影響を受ける他のシンボル、第二の変更管理情報及び、第二の変更予定情報をディスプレイ102の画面上に表示させる。
At this time, when the
次に、開発者Bは、周辺機器103のキーボード等を操作して、ステップ1312にて追加された機能(調整後に追加された機能を含む)B(機能Bの追加)をソースコード上に実装する(ステップ1314)。この後、開発者Bが、母体コード(ソースコード)を読込むと共に、チェックフラグを読込むための操作を実行すると、操作に伴う情報を入力したユーザインタフェース表示部108は、ソース構成管理部109を介して構成管理データベース115から母体コード(ソースコード)を読込むと共に、フラグ管理部112を介してチェックフラグデータベース116からチェックフラグを読込み、読込んだ母体コードとチェックフラグをディスプレイ102上に表示する。この際、開発者Bは、ディスプレイ102上に表示された母体コードとチェックフラグを参照して、機能Bの実装完了チェックを行い(ステップ1315)、チェック後、変更後コード(ソースコード)を構成管理データベース115に登録するための操作を実行する。これにより、開発プロセスは終点1316で終了する。この際、フラグ管理部112は、いずれかの情報間で変更衝突がないと判定したことを条件に、保持した第二の変更管理情報及び第二の変更予定情報をチェックフラグデータベース116に格納する。
Next, developer B operates the keyboard or the like of
ステップ1312で、フラグ管理部112が衝突を検知した場合、早期に衝突を検知することができ、フラグを点滅表示(強調表示)することで、開発者Bに警告することができる。この際、開発者Bは、この警告を見て、開発者Aと話合いを行い、実装内容と時期を調整することができる。この話合いにより、ステップ1314で機能Bの追加を実装するときに、同じ作業を二重に行わなくて済み(二重作業の抑止)、工数が削減できる。また、ステップ1315で機能Bの実装完了チェックを行うときには、機能Aが既に登録されていることを設計で考慮済みのため、予想外の作業手戻りは発生せず(修正手戻りの抑止)、工数が削減できる。
If the
図14は、実施例3におけるシステムであって、複数の開発者を対象としたシステムの構成図である。図14において、開発者101として、複数の開発者A、Bを対象として場合、各開発者A、Bに対して開発マシン10が用意される。各開発マシン10はそれぞれ管理サーバ12に接続される。なお、各開発マシン10と管理サーバ12は、図1のものと同様に構成されているので、それらの説明は省略する。なお、図14のシステムでは、記憶装置107が、各開発マシン10で共有されているので、各開発マシン10が、記憶装置107に格納されるチェックフラグデータベース116をアクセスすることで、各開発者A、Bの変更(変更必要)に伴う要素の衝突の有無を検知できる。
FIG. 14 is a configuration diagram of a system according to the third embodiment and intended for a plurality of developers. In FIG. 14, when the
図15は、複数の開発者の変更によって衝突が起こった状態を説明するための図であって、(a)は、実施例3におけるディスプレイの表示例を示す構成図、(b)は、実施例3における変更フラグテーブルの構成図である。図15において、複数の開発者101が、それぞれ周辺機器103を操作して、ディスプレイ102の画面上に一覧画面801を表示させ、ユーザインタフェース表示部108を通じて「func2」等を変更すると、ソース依存関係解析部110は、指示された情報を基にソースコードデータベース114を参照して、「func2」と呼出または被呼出の関係にある関数又は変数(value1、func3、func1)にシンボルを表示するための処理を実行する。この処理結果がインタフェース表示部108を介してディスプレイ102に転送されると、ディスプレイ102の一覧画面801には、ソース依存関係解析部110の参照結果が表示される。この際、各開発者101は、表示された一覧画面801の内容を参照することができる。
FIG. 15 is a diagram for explaining a state in which a collision has occurred due to a change of a plurality of developers. FIG. 15A is a configuration diagram illustrating a display example of the display according to the third embodiment, and FIG. It is a block diagram of the change flag table in Example 3. In FIG. 15, when a plurality of
一覧画面801には、変更元802に関する情報として、「func2」のファイル(FileA.c)および関数/変数「func2」が表示され、変更影響803として、「func2」の変更の影響を受けるファイルおよび関数/変数であって、要素テーブル203と変更影響テーブル204に登録されたファイルの名称(FileA.h、FileB.c、FileC.c)および関数/変数の名称(value1、func3、func1)が表示され、変更影響タイプ804として、変更影響テーブル204に登録された「呼出」または「被呼出」が表示され、メトリクス805として、要素テーブル203の他依存数208に登録された情報(他依存数:15など)が表示される。この際、変更元802の関数/変数「func2」には、未変更のシンボルレ点、変更必要のシンボル(C)がフラグ(チェックフラグ)として表示される。また、変更影響803の関数/変数(value1、func3、func1)には、未変更のシンボルレ点、変更不要のシンボル(N)または変更必要のシンボル(C)、さらに変更衝突(衝突あり)を示すシンボル(×)がフラグ(チェックフラグ)として表示される。
In the
また、変更フラグテーブル214のファイル215には、ファイルの名称(FileA.h、FileA.c、FileB.c、FileC.c、FileB.c、FileC.c)が登録され、関数/変数216には、関数又は変数の名称(value1、func2、func3、func1、func3、func1)が登録され、ソース構成管理状態217には、それぞれ、「未変更」の情報が登録され、変更予定状態218には、「FileA.h」の欄に「変更不要」が登録され、「FileA.c」と「FileB.c」の欄に「変更必要」が登録され、「FileC.c」の欄に「変更不要」が登録され、「FileB.c」と「FileC.c」に「変更必要」が登録され、変更衝突状態219には、「FileB.c」、「FileC.c」、「FileB.c」、「FileC.c」の欄に「変更衝突」が登録され、更新者220には、開発者101の名称(開発者Aまたは開発者B)が登録され、更新日時221には、各開発者(開発者Aまたは開発者B)101による更新日時の情報が登録される。
The file name (FileA.h, FileA.c, FileB.c, FileC.c, FileB.c, FileC.c) is registered in the
ここで、フラグ管理部112は、変更フラグテーブル214を参照し、要素ID3の「FileB.c」に関して、ソース構成管理状態217に登録された情報と変更予定状態218に登録された情報とを比較し、いずれかの情報間に変更衝突があるか否かを判定する。この際、開発者Aの操作による情報として、ソース構成管理状態217に「未変更」が登録され、変更予定状態218に「変更必要」が登録され、開発者Bの操作による情報として、ソース構成管理状態217に「未変更」が登録され、変更予定状態218に「変更必要」が登録された場合、「変更必要」が重複しているので、フラグ管理部112は、「変更衝突」と判定し、変更衝突状態219に「変更衝突」の情報を登録する。
Here, the
また、フラグ管理部112は、変更フラグテーブル214を参照し、要素ID4の「FileC.c」に関して、ソース構成管理状態217に登録された情報と変更予定状態218に登録された情報とを比較し、いずれかの情報間に変更衝突があるか否かを判定する。この際、開発者Aの操作による情報として、ソース構成管理状態217に「未変更」が登録され、変更予定状態218に「変更不要」が登録され、開発者Bの操作による情報として、ソース構成管理状態217に「未変更」が登録され、変更予定状態218に「変更必要」が登録された場合、開発者Aが「変更必要」で、開発者Bが「変更不要」であって、両者の内容が矛盾しているので、フラグ管理部112は、「変更衝突」と判定し、変更衝突状態219に「変更衝突」の情報を登録する。
In addition, the
変更衝突状態219に、「変更衝突」の情報が記録された場合、フラグ管理部112とユーザインタフェース表示部108の処理により、一覧画面801の変更影響803には、変更衝突の生じた要素、例えば、要素ID3、4のファイル(FileB.c、FileC.c)に関して、変更衝突状態703のシンボル(×)が強調して表示される。これは、変更予定(C)が付いている要素に変更衝突(×)が付いているものが直接的に影響するが、変更不要(N)と判断しているが間接的に影響する可能性があるため、変更衝突の生じた要素については、警告を行うためである。この場合、各開発者A、Bは、一覧画面801を見ることで、要素の変更に伴って衝突が生じたことを容易に確認することができる。また、この場合、変更の具体的な内容について開発者A、B間で話合う必要がある。この話合いによって重複した内容の変更や、変更同士の衝突に起因する不具合を避けることができる。
When information of “change collision” is recorded in the
本実施例によれば、複数の開発者が並行して新しい機能を追加した場合の衝突を早期に検出し、二重作業を減らすことができる。 According to the present embodiment, it is possible to detect a collision early when a plurality of developers add a new function in parallel, and to reduce double work.
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、管理サーバ12の中央処理演算装置106が記憶装置107を管理する代わりに、開発マシン10の中央処理演算装置104が、コントローラとして、記憶装置107を管理することもできる。上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
In addition, this invention is not limited to an above-described Example, Various modifications are included. For example, instead of the
また、上記の各構成、機能等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に記録して置くことができる。 Further, each of the above-described configurations, functions, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor. Information such as programs, tables, and files that realize each function should be recorded in a recording device such as a memory, hard disk, or SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD. Can do.
10 開発マシン、12 管理サーバ、101 開発者、102 ディスプレイ、103 周辺機器、104 中央処理演算装置、105 記憶装置、106 中央処理演算装置、107 記憶装置、108 ユーザインタフェース表示部、109 ソース構成管理部、110 ソース依存関係解析部、111 ソースメトリクス解析部、112 フラグ管理部、113 変更中ソースコード、114 ソースコードデータベース、115 構成管理データベース、116 チェックフラグデータベース、203 要素テーブル、204 変更影響テーブル、212 ソースコード、214 変更フラグテーブル、701 ソース構成管理状態、702 変更予定状態、703 変更衝突状態、801 一覧画面
DESCRIPTION OF
Claims (9)
情報の入出力を行う入出力装置と、
前記記憶装置及び前記入出力装置を管理するコントローラを含むシステムにおけるソフトウェア開発支援方法であって、
前記コントローラが、前記ソースコードに含まれる要素の変更を指示する第一の変更要求を前記入出力装置から受付けたとき、当該受付けた第一の変更要求の影響を受ける他の要素が変更されているかどうかを示す第一の変更管理情報と前記第一の変更要求の影響を受ける他の要素の変更予定の有無を示す第一の変更予定情報を前記記憶装置に格納する第一のステップと、
前記入出力装置が、前記第一の変更要求で変更を指示された要素、前記第一の変更要求の影響を受ける他の要素、前記第一の変更管理情報及び、前記第一の変更予定情報を出力する第二のステップと、を有することを特徴とするソフトウェア開発支援方法。 A storage device for storing source code including a plurality of elements constituted by at least one of a function and a variable;
An input / output device for inputting / outputting information;
A software development support method in a system including a controller that manages the storage device and the input / output device,
When the controller receives from the input / output device a first change request for instructing a change in an element included in the source code, other elements affected by the received first change request are changed. A first step of storing, in the storage device, first change management information indicating whether or not and first change schedule information indicating whether or not there is a change schedule of other elements affected by the first change request;
The input / output device is an element instructed to change by the first change request, another element affected by the first change request, the first change management information, and the first change schedule information. A software development support method characterized by comprising:
前記コントローラが、前記ソースコードに含まれる要素の変更を指示する第二の変更要求を前記入出力装置から受付けたとき、当該受付けた第二の変更要求の影響を受ける他の要素が変更されているかどうかを示す第二の変更管理情報と前記第二の変更要求の影響を受ける他の要素の変更予定の有無を示す第二の変更予定情報を保持する第三のステップと、
前記入出力装置が、前記第二の変更要求で変更を指示された要素、前記第二の変更要求の影響を受ける他の要素、前記第二の変更管理情報及び、前記第二の変更予定情報を出力する第四のステップと、を有することを特徴とするソフトウェア開発支援方法。 A software development support method according to claim 1,
When the controller receives from the input / output device a second change request that instructs to change an element included in the source code, other elements affected by the received second change request are changed. A third step of holding second change management information indicating whether or not and second change schedule information indicating whether or not there is a change schedule of other elements affected by the second change request;
The input / output device is an element instructed to change by the second change request, another element affected by the second change request, the second change management information, and the second change schedule information. And a fourth step of outputting the software.
前記コントローラは、
前記第三のステップでは、前記記憶装置に格納された前記第一の変更管理情報及び前記第一の変更予定情報と、前記保持した前記第二の変更管理情報及び前記第二の変更予定情報とを比較し、当該比較結果から、前記いずれかの情報間で変更衝突があるか否かを判定し、当該判定結果を前記入出力装置に転送することを特徴とするソフトウェア開発支援方法。 A software development support method according to claim 2,
The controller is
In the third step, the first change management information and the first change schedule information stored in the storage device, the held second change management information and the second change schedule information, A software development support method comprising: determining whether there is a change conflict between any of the information from the comparison result, and transferring the determination result to the input / output device.
前記コントローラは、
前記第三のステップでは、前記いずれかの情報間で変更衝突がないと判定したことを条件に、前記保持した前記第二の変更管理情報及び前記第二の変更予定情報を前記記憶装置に格納することを特徴とするソフトウェア開発支援方法。 A software development support method according to claim 3,
The controller is
In the third step, the stored second change management information and the second change schedule information are stored in the storage device on the condition that it is determined that there is no change conflict between any one of the pieces of information. A software development support method characterized by:
前記入出力装置は、
前記コントローラから、前記いずれかの情報間で変更衝突ありの判定結果を受信した場合、前記変更衝突ありの判定結果で特定される要素を強調して出力することを特徴とするソフトウェア開発支援方法。 A software development support method according to claim 3,
The input / output device is
A software development support method comprising emphasizing and outputting an element specified by a determination result with a change collision when receiving a determination result with a change collision between any of the pieces of information from the controller.
前記入出力装置は、
前記第二のステップ又は前記第三のステップでは、前記第一の変更要求の影響を受ける他の要素の数を示す第一の数値情報又は前記第二の変更要求の影響を受ける他の要素の数を示す第二の数値情報を出力することを特徴とするソフトウェア開発支援方法。 A software development support method according to claim 1 or 2,
The input / output device is
In the second step or the third step, the first numerical information indicating the number of other elements affected by the first change request or the other elements affected by the second change request. A software development support method characterized by outputting second numerical information indicating a number.
情報の入出力を行う入出力装置と、
前記記憶装置及び前記入出力装置を管理するコントローラと、を有するソフトウェア開発支援システムであって、
前記コントローラは、
前記ソースコードに含まれる要素の変更を指示する第一の変更要求を前記入出力装置から受付けたとき、当該受付けた第一の変更要求の影響を受ける他の要素が変更されているかどうかを示す第一の変更管理情報と前記第一の変更要求の影響を受ける他の要素の変更予定の有無を示す第一の変更予定情報を前記記憶装置に格納し、
前記入出力装置は、
前記第一の変更要求で変更を指示された要素、前記第一の変更要求の影響を受ける他の要素、前記第一の変更管理情報及び、前記第一の変更予定情報を出力することを特徴とするソフトウェア開発支援システム。 A storage device for storing source code including a plurality of elements constituted by at least one of a function and a variable;
An input / output device for inputting / outputting information;
A software development support system comprising: a controller that manages the storage device and the input / output device;
The controller is
When a first change request instructing a change of an element included in the source code is received from the input / output device, it indicates whether another element affected by the received first change request has been changed. Storing first change management information and first change schedule information indicating whether or not there is a change schedule of other elements affected by the first change request in the storage device;
The input / output device is
The element instructed to change by the first change request, another element affected by the first change request, the first change management information, and the first change schedule information are output. Software development support system.
前記コントローラは、
前記ソースコードに含まれる要素の変更を指示する第二の変更要求を前記入出力装置から受付けたとき、当該受付けた第二の変更要求の影響を受ける他の要素が変更されているかどうかを示す第二の変更管理情報と前記第二の変更要求の影響を受ける他の要素の変更予定の有無を示す第二の変更予定情報を保持し、
前記入出力装置は、
前記第二の変更要求で変更を指示された要素、前記第二の変更要求の影響を受ける他の要素、前記第二の変更管理情報及び、前記第二の変更予定情報を出力することを特徴とするソフトウェア開発支援システム。 The software development support system according to claim 7,
The controller is
When a second change request for instructing a change in an element included in the source code is received from the input / output device, it indicates whether another element affected by the received second change request has been changed. Holding second change management information and second change schedule information indicating whether or not there is a change schedule of other elements affected by the second change request,
The input / output device is
The element instructed to change by the second change request, another element affected by the second change request, the second change management information, and the second change schedule information are output. Software development support system.
前記コントローラは、
前記記憶装置に格納された前記第一の変更管理情報及び前記第一の変更予定情報と、前記保持した前記第二の変更管理情報及び前記第二の変更予定情報とを比較し、当該比較結果から、前記いずれかの情報間で変更衝突があるか否かを判定し、当該判定結果を前記入出力装置に転送することを特徴とするソフトウェア開発支援システム。 The software development support system according to claim 8,
The controller is
The first change management information and the first change schedule information stored in the storage device are compared with the held second change management information and the second change schedule information, and the comparison result To determine whether or not there is a change conflict between any of the pieces of information, and transfer the determination result to the input / output device.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016131093A JP6722528B2 (en) | 2016-06-30 | 2016-06-30 | Software development support method and system |
CN201710379915.1A CN107562419B (en) | 2016-06-30 | 2017-05-25 | Software development support method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016131093A JP6722528B2 (en) | 2016-06-30 | 2016-06-30 | Software development support method and system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018005535A true JP2018005535A (en) | 2018-01-11 |
JP6722528B2 JP6722528B2 (en) | 2020-07-15 |
Family
ID=60949133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016131093A Active JP6722528B2 (en) | 2016-06-30 | 2016-06-30 | Software development support method and system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6722528B2 (en) |
CN (1) | CN107562419B (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343827A (en) * | 2018-09-12 | 2019-02-15 | 郑州云海信息技术有限公司 | A kind of demand modification control method of high multiplexing |
KR102613915B1 (en) * | 2023-06-02 | 2023-12-14 | 주식회사 코드원 | Method, apparatus and program for automatically changing names of functions and parameters |
CN118585459A (en) * | 2024-08-07 | 2024-09-03 | 宁波沃尔斯软件有限公司 | Impact analysis method and application for low-code development platform |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6996936B2 (en) * | 2017-10-25 | 2022-01-17 | 株式会社日立製作所 | Source code analyzer, source code analysis method, source code analysis program |
JP7261083B2 (en) * | 2019-05-09 | 2023-04-19 | 株式会社日立製作所 | Software analysis support system |
CN113434180B (en) * | 2021-07-13 | 2022-08-09 | 上海浦东发展银行股份有限公司 | Data processing method and device for application, server and storage medium |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8522207B1 (en) * | 2006-09-19 | 2013-08-27 | United Services Automobile Association (Usaa) | Systems and methods for automated centralized build/merge management |
JP2010198494A (en) * | 2009-02-26 | 2010-09-09 | Panasonic Corp | Software development support tool |
DE112011105489T5 (en) * | 2011-08-03 | 2014-04-24 | Hitachi, Ltd. | Image processing software development process, image processing software development device, and image processing software development program |
JP6025763B2 (en) * | 2014-02-05 | 2016-11-16 | 三菱電機株式会社 | Embedded device software development test equipment |
-
2016
- 2016-06-30 JP JP2016131093A patent/JP6722528B2/en active Active
-
2017
- 2017-05-25 CN CN201710379915.1A patent/CN107562419B/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343827A (en) * | 2018-09-12 | 2019-02-15 | 郑州云海信息技术有限公司 | A kind of demand modification control method of high multiplexing |
KR102613915B1 (en) * | 2023-06-02 | 2023-12-14 | 주식회사 코드원 | Method, apparatus and program for automatically changing names of functions and parameters |
CN118585459A (en) * | 2024-08-07 | 2024-09-03 | 宁波沃尔斯软件有限公司 | Impact analysis method and application for low-code development platform |
Also Published As
Publication number | Publication date |
---|---|
CN107562419B (en) | 2020-09-18 |
JP6722528B2 (en) | 2020-07-15 |
CN107562419A (en) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281732B2 (en) | Recommending development tool extensions based on media type | |
JP6722528B2 (en) | Software development support method and system | |
US10545855B1 (en) | Software testing assurance through inconsistent treatment detection | |
US10769250B1 (en) | Targeted security monitoring using semantic behavioral change analysis | |
US9430200B1 (en) | Cross-library framework architecture feature sets | |
US10108321B2 (en) | Interface for defining user directed partial graph execution | |
WO2020033071A1 (en) | Recommending development tool extensions based on usage context telemetry | |
US9317258B2 (en) | Dynamic validation of models using constraint targets | |
Macke et al. | Fine-grained lineage for safer notebook interactions | |
US20110185282A1 (en) | User-Interface-Integrated Asynchronous Validation for Objects | |
US20090006947A1 (en) | Model-Based Editors for Dynamic Validation | |
US20210049091A1 (en) | Software visualization apparatus, software visualization method, and computer readable medium | |
US20110231178A1 (en) | Modeling and generating computer software product line variants | |
US20100313186A1 (en) | Developer-managed debugger data records | |
US8813036B2 (en) | Visual representation of a difference between Cartesian product models | |
US8479163B2 (en) | Simplifying maintenance of large software systems | |
JP2014123249A (en) | Information processor, program, and information processing method | |
US10209965B1 (en) | In-line function synchronization | |
US11144287B2 (en) | Compile time validation of programming code | |
US11119761B2 (en) | Identifying implicit dependencies between code artifacts | |
US20140372982A1 (en) | Standardization of variable names in an integrated development environment | |
JP5789575B2 (en) | Information processing apparatus and program | |
US7752638B2 (en) | Method for defining and dynamically invoking polymorphic call flows | |
JP2009053767A (en) | Program analysis device and program analysis method | |
JP2021039394A (en) | Information processing system, information processing method, development apparatus and program of development apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191225 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200622 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6722528 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |