JP2018036792A - Data processing program and data processing method - Google Patents

Data processing program and data processing method Download PDF

Info

Publication number
JP2018036792A
JP2018036792A JP2016168393A JP2016168393A JP2018036792A JP 2018036792 A JP2018036792 A JP 2018036792A JP 2016168393 A JP2016168393 A JP 2016168393A JP 2016168393 A JP2016168393 A JP 2016168393A JP 2018036792 A JP2018036792 A JP 2018036792A
Authority
JP
Japan
Prior art keywords
data
update
ticket
time
identification 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.)
Granted
Application number
JP2016168393A
Other languages
Japanese (ja)
Other versions
JP6546569B2 (en
Inventor
忍 斎藤
Shinobu Saito
忍 斎藤
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016168393A priority Critical patent/JP6546569B2/en
Publication of JP2018036792A publication Critical patent/JP2018036792A/en
Application granted granted Critical
Publication of JP6546569B2 publication Critical patent/JP6546569B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

PROBLEM TO BE SOLVED: To make it possible to avoid that a reason for update of a source code becomes unknown.SOLUTION: With reference to a set of first data which is issued every reason for update of a software source code and includes identification information of the reason for update, a period of occurrence of the reason for update, and a task completion period in accordance with the reason for update, a set of second data which is recorded every update of the source code and includes the period of update, and regarding a part of the second data, a set where identification information of a reason for update corresponding to the update related to the second data is inputted by a user, reasons that the identification information is not inputted to the second data are classified into one of a plurality of patterns on the basis of a relation between the period of occurrence and the completion period included in the first data that includes the identification information inputted with respect to a part of the second data on the one hand and a period of update included in the second data where identification information is not inputted.SELECTED DRAWING: Figure 2

Description

本発明は、データ処理プログラム及びデータ処理方法に関する。   The present invention relates to a data processing program and a data processing method.

インターネット上でのビジネスの普及やモバイル網の普及により、さまざまなものがソフトウェアにより実現されるようになっており、商用で利用されるソフトウェアの開発品質の重要性が増している。また、ソフトウェアでは短期間での投資効果も求められるため、システム開発の開発期間も短くなっている。   With the spread of business on the Internet and the spread of mobile networks, various things are realized by software, and the importance of development quality of software used for commercial use is increasing. In addition, since the investment effect of software is required in a short period, the development period of system development is also shortened.

アジャイル開発やリーン開発に代表される短期のソフトウェア開発では、新たなタスク(機能実装又はバグ改修等)が発生すると、開発者の1つ1つのタスクに対応したチケットが起票される(起票は、ソフトウェア開発の管理者(例:スクラムマスター)、又は開発者自身が実施)。   In short-term software development represented by agile development and lean development, when a new task (functional implementation or bug repair) occurs, a ticket corresponding to each task of the developer is drafted (draft Is performed by the software development manager (eg Scrum Master) or the developer himself).

チケットが起票されると、当該チケットに対応するタスクを担う開発者がアサインされる。アサインされた開発者は、タスクの内容に基づき、ソースコードの更新(新規作成・変更・削除)を行う。   When a ticket is issued, a developer responsible for a task corresponding to the ticket is assigned. The assigned developer updates (creates / changes / deletes) the source code based on the contents of the task.

このようなソフトウェア開発のプロジェクトでは、一般的に、チケットの状態を管理する課題管理システム(ITS(Issue Tracking System))と、ソースコードの版管理をするバージョン管理システム(VMS(Version Management System))の2つが利用されている。   In such software development projects, in general, an issue management system (ITS (Issue Tracking System)) that manages ticket status and a version management system (VMS (Version Management System)) that manages source code version management. These two are used.

開発者は、ITSで起票されたチケット(に対応するタスク)の内容に基づき、ソースコードの更新(新規作成・変更・削除)を行い、VMSに更新途中のソースコードのコミットを行う。チケットに対応するタスクが完了(ソースコードの更新が完了)すると、プロジェクトで予め定められた確認作業(例:回帰試験の実施、管理者の挙動確認)が実施される。その上で、開発者は、更新が完了したソースコードをVMSにコミットする。併せて、ITSでも当該タスクに対応するチケットの状態を完了として記録される。   The developer updates (newly creates / changes / deletes) the source code based on the contents of the ticket (corresponding task) issued by the ITS, and commits the source code being updated to the VMS. When the task corresponding to the ticket is completed (source code update is completed), confirmation work predetermined in the project (for example, implementation of regression test, confirmation of administrator behavior) is performed. Then, the developer commits the updated source code to the VMS. In addition, in ITS, the status of the ticket corresponding to the task is recorded as completed.

「大競争時代のソフト生産技術革命」、[online]、インターネット<・http://itpro.nikkeibp.co.jp/article/COLUMN/20130601/481262/?rt=nocnt>"Software production technology revolution in the age of great competition", [online], the Internet <http://itpro.nikkeibp.co.jp/article/COLUMN/20130601/481262/?rt=nocnt>

しかしながら、実際のソフトウェア開発では、開発者の実装作業(ソースコードの更新と、VMSへのコミット)だけが先に進んでしまい、それらのタスクに対応するチケットが起票されていなかったり、起票されていたとしてもチケットが最新のソースコードの内容を反映していなかったりするケースが多くみられる。これにより、開発(例:イテレーション)終了後に、チケットやそれに関連する開発文書(例:要件定義書)の内容が、最新のソースコードの内容を反映せずに開発が終わってしまうこともある。   However, in actual software development, only the developer's implementation work (update of source code and commit to VMS) proceeds ahead, and tickets corresponding to those tasks have not been drafted or drafted. Even if it is done, there are many cases where the ticket does not reflect the contents of the latest source code. As a result, after development (for example, iteration), the development may end without reflecting the contents of the latest source code in the contents of the ticket and the related development document (for example, requirement definition document).

このように、チケット(および、それに関連する開発文書)の更新漏れが発生し、残存したままであると、その後何らかの問題がソフトウェアで発生して、開発時のバグ修正のソースコードへの反映状況等を確認しようとした際に、当該ソースコードに対する各更新が、バグ修正によるものであったの否かさえも確認することができなくなってしまう。また、次の開発(イテレーション)において新しいメンバが参画した際にも、ソフトウェアの実装機能の全容が把握できない、あるいは、なぜその機能を実装したのかという根拠情報(Rationale)も把握できない事態となる。   In this way, if a ticket (and development document related to it) is missed and remains, any problem will occur in the software, and the status of reflection of bug fixes during development in the source code When trying to confirm, etc., it becomes impossible to confirm whether or not each update to the source code was due to a bug fix. In addition, even when a new member participates in the next development (iteration), it is not possible to grasp the entire contents of the software implementation function or the ground information (Relational) why the function is implemented.

本発明は、上記の点に鑑みてなされたものであって、ソースコードが更新された理由が不明となるのを回避可能とすることを目的とする。   The present invention has been made in view of the above points, and an object of the present invention is to avoid the reason why the source code has been updated.

そこで上記課題を解決するため、データ処理プログラムは、ソフトウェアのソースコードの更新理由ごとに起票され、当該更新理由の識別情報と、当該更新理由の発生時期と、当該更新理由に応じた作業の完了時期とを含む第1のデータの集合と、前記ソースコードの更新ごとに記録され、当該更新の時期を含む第2のデータの集合であって、一部の前記第2のデータについては、更に、当該第2のデータに係る更新に対応する更新理由の識別情報がユーザによって入力されている集合と、を参照して、前記一部の第2のデータについて入力された前記識別情報を含む前記第1のデータに含まれる発生時期及び完了時期と、前記識別情報が入力されていない前記第2のデータに含まれる更新の時期との関係に基づいて、当該第2のデータに対して前記識別情報が入力されていない原因を複数のパターンのうちのいずれかに分類する分類部としてコンピュータを機能させる。   Therefore, in order to solve the above problems, a data processing program is issued for each reason for updating the source code of software, and the identification information of the reason for updating, the timing of occurrence of the reason for updating, A first data set including a completion time and a second data set recorded for each update of the source code and including the time of the update, and a part of the second data, And a set in which identification information of an update reason corresponding to an update related to the second data is input by a user, including the identification information input with respect to the partial second data Based on the relationship between the occurrence time and completion time included in the first data and the update time included in the second data for which the identification information is not input, the second data The identification information causes the computer to function as a classification unit for classifying the one of the plurality of patterns why not input Te.

ソースコードが更新された理由が不明となるのを回避可能とすることができる。   It is possible to avoid the reason why the source code has been updated.

本発明の実施の形態におけるデータ処理装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the data processor in embodiment of this invention. 本発明の実施の形態におけるデータ処理装置の機能構成例を示す図である。It is a figure which shows the function structural example of the data processor in embodiment of this invention. データ処理装置が実行する処理手順の一例を説明するためのフローチャートである。It is a flowchart for demonstrating an example of the process sequence which a data processor performs. チケットデータの一例を示す図である。It is a figure which shows an example of ticket data. コミットログの一例を示す図である。It is a figure which shows an example of a commit log. TCNCの一例を示す図である。It is a figure which shows an example of TCNC. 分類結果に応じた通知情報の出力例を示す図である。It is a figure which shows the example of output of the notification information according to a classification result. 分類結果に応じた修正候補のレコメンド情報の出力例を示す図である。It is a figure which shows the example of output of the recommendation information of the correction candidate according to a classification result.

以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるデータ処理装置のハードウェア構成例を示す図である。図1のデータ処理装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating a hardware configuration example of a data processing device according to an embodiment of the present invention. The data processing device 10 in FIG. 1 includes a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, a display device 106, an input device 107, and the like that are mutually connected by a bus B.

データ処理装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。   A program for realizing processing in the data processing apparatus 10 is provided by a recording medium 101 such as a CD-ROM. When the recording medium 101 storing the program is set in the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100. However, the program need not be installed from the recording medium 101 and may be downloaded from another computer via a network. The auxiliary storage device 102 stores the installed program and also stores necessary files and data.

メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってデータ処理装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。   The memory device 103 reads the program from the auxiliary storage device 102 and stores it when there is an instruction to start the program. The CPU 104 realizes functions related to the data processing device 10 according to a program stored in the memory device 103. The interface device 105 is used as an interface for connecting to a network. The display device 106 displays a GUI (Graphical User Interface) or the like by a program. The input device 107 includes a keyboard and a mouse, and is used for inputting various operation instructions.

図2は、本発明の実施の形態におけるデータ処理装置の機能構成例を示す図である。図2において、データ処理装置10は、VMS11、ITS12、TCNC生成部13、原因分類部14、及び修正候補出力部15等を有する。これらは、データ処理装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。   FIG. 2 is a diagram illustrating a functional configuration example of the data processing device according to the embodiment of the present invention. In FIG. 2, the data processing apparatus 10 includes a VMS 11, an ITS 12, a TCNC generation unit 13, a cause classification unit 14, a correction candidate output unit 15, and the like. These are realized by processing that one or more programs installed in the data processing apparatus 10 cause the CPU 104 to execute.

VMS11は、ソフトウェア(主にプログラム)のソースコードの版管理を行うバージョン管理システム(Version Management System)である。一般的な(市販されている)バージョン管理システムがVMS11として利用されてもよい。   The VMS 11 is a version management system (Version Management System) that performs version management of source codes of software (mainly programs). A general (commercially available) version control system may be used as the VMS 11.

図2において、VMS11は、コミットログ生成部111及びコミットログ記憶部112等を含む。コミットログ生成部111は、新規に作成されたソースコード、又は既存のソースコード等のコミット指示がVMS11に入力されると、当該ソースコードに関するコミットログを生成し、当該コミットログをコミットログ記憶部112に記録する。コミットとは、ソースコードの版(バージョン)を一つ上げてVMS11に登録することをいう。すなわち、コミットは、ソースコードの更新ごとに実行される。したがって、コミットログは、ソースコードの更新ごとに記録される。   2, the VMS 11 includes a commit log generation unit 111, a commit log storage unit 112, and the like. When a commit instruction such as newly created source code or existing source code is input to the VMS 11, the commit log generation unit 111 generates a commit log related to the source code, and the commit log is stored in the commit log storage unit. 112. Commit means that the version (version) of the source code is incremented by one and registered in the VMS 11. That is, the commit is executed every time the source code is updated. Therefore, the commit log is recorded every time the source code is updated.

ITS12は、ソフトウェアの開発者のタスク(作業)を割り当てたチケットデータを管理する課題管理システム(Issue Tracking System)である。一般的な(市販されている)課題管理システムが、ITS12として利用されてもよい。チケットデータとは、ソフトウェアのソースコードの更新理由の発生に応じて(すなわち、当該更新理由に応じたタスク(機能実装又はバグ改修等のソースコードの更新作業)の発生に応じて)起票されるデータをいう。   The ITS 12 is an issue management system (Issue Tracking System) that manages ticket data to which tasks (work) of software developers are assigned. A general (commercially available) problem management system may be used as the ITS 12. Ticket data is drafted according to the occurrence of the reason for updating the software source code (that is, according to the occurrence of a task corresponding to the reason for the update (source code update work such as function implementation or bug repair)). Data.

図2において、ITS12は、チケット状態更新部121及びチケットデータ記憶部122等を含む。チケット状態更新部121は、チケットデータ記憶部122に記憶されるチケットデータの状態を更新する。具体的には、チケット状態更新部121は、ユーザによって入力されるチケットデータの起票指示に応じ、チケットデータを生成し、当該チケットデータをチケットデータ記憶部122に記録する。この際、チケットデータには、起票時刻(すなわち、更新理由及びタスクの発生時刻)が記録される。したがって、チケットデータは、ソースコードの更新理由ごと(更新理由に応じたタスクごと)に記録される。また、チケット状態更新部121は、更新理由に応じたタスクの完了通知がユーザによって入力されると、当該タスクに対応するチケットデータに対して完了時刻を記録する。   In FIG. 2, the ITS 12 includes a ticket status update unit 121, a ticket data storage unit 122, and the like. The ticket status update unit 121 updates the status of ticket data stored in the ticket data storage unit 122. Specifically, the ticket status update unit 121 generates ticket data in accordance with the ticket data drafting instruction input by the user, and records the ticket data in the ticket data storage unit 122. At this time, the draft time (that is, update reason and task occurrence time) is recorded in the ticket data. Therefore, the ticket data is recorded for each source code update reason (for each task corresponding to the update reason). Further, when the task completion notification corresponding to the update reason is input by the user, the ticket status update unit 121 records the completion time for the ticket data corresponding to the task.

例えば、ソースコードの更新理由が発生すると、当該更新理由に応じたタスクを開始させるために、チケットデータが起票される。開発者は、チケットデータの内容に基づき、ソースコードの更新を行い、更新後のソースコードをVMS11にコミットする。その結果、当該更新に対応するコミットログがコミットログ記憶部112に記録される。   For example, when a source code update reason occurs, ticket data is issued to start a task corresponding to the update reason. The developer updates the source code based on the contents of the ticket data, and commits the updated source code to the VMS 11. As a result, a commit log corresponding to the update is recorded in the commit log storage unit 112.

なお、コミットログ記憶部112及びチケットデータ記憶部122は、例えば、補助記憶装置102、又はデータ処理装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。   The commit log storage unit 112 and the ticket data storage unit 122 can be realized by using, for example, a storage device that can be connected to the auxiliary storage device 102 or the data processing device 10 via a network.

TCNC生成部13、原因分類部14、及び修正候補出力部15の機能については、処理手順の説明において明らかにされる。   The functions of the TCNC generation unit 13, the cause classification unit 14, and the correction candidate output unit 15 will be clarified in the description of the processing procedure.

なお、VMS11及びITS12は、それぞれデータ処理装置10とは異なるコンピュータを用いて実現されてもよい。   Note that the VMS 11 and the ITS 12 may each be realized using a computer different from the data processing apparatus 10.

図3は、データ処理装置が実行する処理手順の一例を説明するためのフローチャートである。図3の処理手順は、例えば、ユーザによって処理の実行指示が入力されると開始される。   FIG. 3 is a flowchart for explaining an example of a processing procedure executed by the data processing apparatus. The processing procedure in FIG. 3 is started, for example, when a process execution instruction is input by the user.

ステップS101において、TCNC生成部13は、チケットデータ記憶部122からチケットデータの集合を取得する。   In step S <b> 101, the TCNC generation unit 13 acquires a set of ticket data from the ticket data storage unit 122.

図4は、チケットデータの一例を示す図である。図4において、1つの行が1つのチケットデータに相当する。各チケットデータは、チケットID、起票時刻、及び完了時刻等を含む。チケットIDは、チケットデータごと(すなわち、更新理由又はタスクごと)の識別情報である。起票時刻は、チケットデータの起票時刻である。完了時刻は、チケットデータに対応するタスクの完了時刻である。なお、チケットID及び起票時刻は、起票時にチケットデータに記録される。完了時刻は、チケットデータに対応するタスクの完了時にチケットデータに記録される。   FIG. 4 is a diagram illustrating an example of ticket data. In FIG. 4, one row corresponds to one ticket data. Each ticket data includes a ticket ID, a draft time, a completion time, and the like. The ticket ID is identification information for each ticket data (that is, for each update reason or each task). The draft time is the draft time of the ticket data. The completion time is the completion time of the task corresponding to the ticket data. The ticket ID and the draft time are recorded in the ticket data at the time of drafting. The completion time is recorded in the ticket data when the task corresponding to the ticket data is completed.

なお、一般的なチケットデータには、タスクの内容(例えば、実装されるべき機能の内容、又は修正されるべきバグの内容等)やその他の情報も含まれるが、本実施の形態では、便宜上、他の情報については省略する。   The general ticket data includes task contents (for example, contents of functions to be implemented or bug contents to be corrected) and other information, but in this embodiment, for convenience. Other information is omitted.

続いて、TCNC生成部13は、コミットログ記憶部112からコミットログの集合を取得する(S102)。   Subsequently, the TCNC generation unit 13 acquires a set of commit logs from the commit log storage unit 112 (S102).

図5は、コミットログの一例を示す図である。図5において、1つの行が1つのコミットログに相当する。各コミットログは、ソースコード名及びコミット時刻等を含む。また、一部のコミットログは、更に、チケットIDを含む。   FIG. 5 is a diagram illustrating an example of the commit log. In FIG. 5, one line corresponds to one commit log. Each commit log includes a source code name and a commit time. Some commit logs further include a ticket ID.

ソースコード名は、コミットされたソースコードの名前(例えば、ソースコードのファイル名)である。コミット時刻は、コミットが行われた時刻(すなわち、更新がVMS11に反映された時刻)である。チケットIDは、コミットログに係るソースコードの更新に対応するタスクのチケットデータのチケットIDである。   The source code name is the name of the committed source code (for example, the source code file name). The commit time is the time when the commit is performed (that is, the time when the update is reflected in the VMS 11). The ticket ID is the ticket ID of the task ticket data corresponding to the update of the source code related to the commit log.

チケットIDは、例えば、ソースコードがVMS11にコミットされる際に、ユーザ(開発者等)によってダイアログボックス等を介して入力される。すなわち、コミットログ生成部111は、コミット時にチケットIDが入力された場合、当該チケットIDをも含むコミットログを生成する。但し、チケットIDが入力されない場合も有る。チケットデータの起票や、チケットIDの入力等は、ユーザの運用に任されているためである。したがって、チケットIDを含まないコミットログが生成されうる。   For example, when the source code is committed to the VMS 11, the ticket ID is input by a user (developer or the like) via a dialog box or the like. That is, when a ticket ID is input at the time of committing, the commit log generating unit 111 generates a commit log including the ticket ID. However, the ticket ID may not be input. This is because ticket data drafting, ticket ID input, etc. are left to the user's operation. Therefore, a commit log that does not include a ticket ID can be generated.

なお、一般的なコミットログには、他にも様々な情報が記録されるが、本実施の形態では便宜上省略される。   Various other information is recorded in the general commit log, but is omitted for convenience in the present embodiment.

続いて、TCNC生成部13は、取得されたチケットデータ及びコミットログに基づいて、チケットデータの起票時刻及び完了時刻と、コミットログのコミット時刻との関係をソースコードごとに可視化するチャート(チケット−コミットネットワーク図(Ticket-Commit Network Chart))を生成する(S103)。以下、チケット−コミットネットワーク図を、「TCNC」という。   Subsequently, the TCNC generation unit 13 visualizes the relationship between the start time and completion time of the ticket data and the commit time of the commit log for each source code based on the acquired ticket data and commit log (ticket). A commit network chart (Ticket-Commit Network Chart)) is generated (S103). Hereinafter, the ticket-commit network diagram is referred to as “TCNC”.

続いて、TCNC生成部13は、生成したTCNCを、表示装置106に表示する(S104)。   Subsequently, the TCNC generation unit 13 displays the generated TCNC on the display device 106 (S104).

図6は、TCNCの一例を示す図である。図6に示されるように、TCNCは、ソースコードごと(Soruce1〜3)に、時系列に、チケットデータの起票時刻、完了時刻、及びコミットログのコミット時刻のそれぞれのタイミングを示す。なお、図6の例では、タイミングの粒度が1日単位であるが、可視化したい時間幅に応じて、1時間単位や半日単位でタイミングが示されてもよい。   FIG. 6 is a diagram illustrating an example of a TCNC. As shown in FIG. 6, the TCNC indicates the timing of the ticket data start time, completion time, and commit log commit time in time series for each source code (Source 1 to 3). In the example of FIG. 6, the timing granularity is in units of one day, but the timing may be shown in units of one hour or half a day depending on the time width desired to be visualized.

コミットには、コミット時におけるチケットIDの入力の有無に対応して、チケットID有コミットとチケットID無コミット(図では赤マル)の2種類が存在する。図6において、チケットID有コミットは黒塗りの円で表現され、チケットID無コミットは白抜きの円で表現されている。   There are two types of commits, a commit with a ticket ID and a non-commit with a ticket ID (red circle in the figure), depending on whether a ticket ID is input at the time of commit. In FIG. 6, the commit with ticket ID is represented by a black circle, and the uncommitted ticket ID is represented by a white circle.

図6によれば、Source1について、チケットID有コミットが2つ(6/2と6/3)、チケットID無コミットが2つ(6/29、6/30)が存在することが分かる。これらは、コミットログの内容に基づいて抽出及び可視化される。   According to FIG. 6, it can be seen that there are two commits with ticket ID (6/2 and 6/3) and two uncommitted ticket IDs (6/29, 6/30) for Source1. These are extracted and visualized based on the contents of the commit log.

TCNCは、また、コミットログに含まれているチケットIDに基づき、当該チケットIDに対応するチケットデータの生存期間(起票時刻から完了時刻までの期間)をも示す。例えば、Source1については、チケットIDとして「TID−1」を含むコミットログが有る。そこで、TCNC生成部13は、「TID−1」のチケットIDを含むチケットデータの起票時刻(6/1)と完了時刻(6/4)を取得し、6/1から6/4までを生存期間として表示する。なお、図6において、生存期間の両端は、三角形によって示されている。   The TCNC also indicates the lifetime of the ticket data corresponding to the ticket ID (the period from the draft time to the completion time) based on the ticket ID included in the commit log. For example, for Source1, there is a commit log including “TID-1” as the ticket ID. Therefore, the TCNC generation unit 13 acquires the draft time (6/1) and completion time (6/4) of the ticket data including the ticket ID of “TID-1”, and from 6/1 to 6/4. Display as survival time. In FIG. 6, both ends of the lifetime are indicated by triangles.

すなわち、TCNCでは、ソースコードごとに、当該ソースコードに関するコミットログに含まれている各チケットIDについて、当該チケットIDに係るチケットIDの生存期間を示すためにライン(実線の水平線)が描画され、当該ラインに、当該チケットデータの起票時刻及び完了時刻と、当該チケットIDを含むコミットログのコミット時刻とが配置される。   That is, in TCNC, a line (solid horizontal line) is drawn for each source code to indicate the lifetime of the ticket ID related to the ticket ID for each ticket ID included in the commit log related to the source code, In the line, the start time and completion time of the ticket data and the commit time of the commit log including the ticket ID are arranged.

一方、チケットID無コミットのコミット時刻は、チケットID有コミットのコミット時刻並びにチケットデータの起票時刻及び完了時刻とは別のラインに配置される。チケットID無コミットは、いずれのチケットデータに対応するのかが不明であるからである。例えば、Source1では、TID−1に対応するコミット時刻が配置されるライン(実線)と、チケットID無コミットが配置されるライン(破線)とが分けられている。   On the other hand, the commit time with no ticket ID commit is arranged on a line different from the commit time with ticket ID commit, the ticket issue time, and the completion time. This is because it is unknown which ticket data corresponds to the ticket ID no commit. For example, in Source 1, a line (solid line) where a commit time corresponding to TID-1 is arranged is separated from a line (dashed line) where a ticket ID uncommitted is arranged.

続いて、原因分類部14は、各チケットID無コミットについて、チケットIDが入力されていない原因(又は理由)を、複数のパターンのうちのいずれかのパターンに分類する(S105)。   Subsequently, the cause classifying unit 14 classifies the cause (or reason) for which the ticket ID is not input into any of a plurality of patterns for each ticket ID uncommitted (S105).

本実施の形態において、チケットIDが入力されていない原因のパターンは、以下の二つである。
パターン1:コミットに対応するチケットデータの更新(起票・修正)が漏れている。
パターン2:コミットに対応するチケットデータは存在しているが、単に開発者がコミット時にチケットIDを入力し忘れてしまった。
In the present embodiment, there are the following two patterns that cause no ticket ID to be input.
Pattern 1: The ticket data update (draft / correction) corresponding to the commit is missing.
Pattern 2: Ticket data corresponding to the commit exists, but the developer simply forgot to enter the ticket ID at the time of commit.

例えば、Source1やSource3では、チケットID有コミットに対応するチケット(TID−1やTID−3)の生存期間外で、チケットID無コミットが発生している。このようなチケットID無コミットについては、チケットの新規起票や、既存チケットの内容の更新が漏れている可能性が高い。そこで、原因分類部14は、コミット時刻が当該生存期間に含まれないチケットID無コミットを、パターン1に分類する。   For example, in Source 1 and Source 3, a ticket ID no commit occurs outside the lifetime of a ticket (TID-1 or TID-3) corresponding to a commit with a ticket ID. With regard to such uncommitted ticket ID, there is a high possibility that a new ticket is issued or the content of an existing ticket is not updated. Therefore, the cause classification unit 14 classifies the ticket ID uncommitted with the commit time not included in the lifetime as the pattern 1.

一方、Source2では、チケットID有コミットに対応するチケット(TID−2)の生存期間内でチケットID無コミットが発生している。このようなチケットID無コミットについては、単に開発者がコミット時にTID−2の入力をし忘れている可能性が高い。そこで、原因分類部14は、コミット時刻が当該生存期間に含まれるチケットID無コミットを、パターン2に分類する。   On the other hand, in Source 2, no ticket ID commit occurs within the lifetime of the ticket (TID-2) corresponding to the commit with ticket ID. With regard to such a ticket ID uncommitted, there is a high possibility that the developer simply forgot to input TID-2 at the time of committing. Therefore, the cause classification unit 14 classifies the ticket ID uncommitted with the commit time included in the lifetime as the pattern 2.

続いて、原因分類部14は、各チケットID無コミットについて、分類結果に応じた通知情報を、表示装置106に表示されているTCNCに出力する(S106)。   Subsequently, the cause classification unit 14 outputs notification information corresponding to the classification result for each ticket ID uncommitted to the TCNC displayed on the display device 106 (S106).

図7は、分類結果に応じた通知情報の出力例を示す図である。図7に示されるように、パターン1に分類された、Source1又はSource3のチケットID無コミットについては、通知情報n1及びn3のように、チケットの更新漏れの可能性が有ることを示すメッセージが表示される。   FIG. 7 is a diagram illustrating an output example of the notification information according to the classification result. As shown in FIG. 7, a message indicating that there is a possibility of omission of ticket update is displayed for the source ID or source 3 ticket ID uncommitted classified as pattern 1 as in the notification information n1 and n3. Is done.

一方、パターン2に分類された、Source2のチケットID無コミットについては、通知情報n2のように、コミット時にチケットIDの付与漏れの可能性が有ることを示すメッセージが表示される。   On the other hand, for the source 2 ticket ID uncommitted classified as pattern 2, a message indicating that there is a possibility that a ticket ID may not be provided at the time of commit is displayed as in the notification information n2.

ユーザは、通知情報を参照して、チケットID無コミットに対応するコミットログにチケットIDを入力したり、チケットID無コミットに対応するチケットデータの起票若しくは修正を行ったりすることができる。   The user can refer to the notification information and input a ticket ID to a commit log corresponding to no ticket ID uncommitted, or issue or modify ticket data corresponding to ticket ID uncommitted.

続いて、修正候補出力部15は、各チケットID無コミットについて、分類結果に応じた修正候補のレコメンド情報を、表示装置106に表示されているTCNCに出力する(S107)。   Subsequently, the correction candidate output unit 15 outputs recommendation information of correction candidates corresponding to the classification result to each TCNC displayed on the display device 106 for each ticket ID uncommitted (S107).

図8は、分類結果に応じた修正候補のレコメンド情報の出力例を示す図である。図8に示されるように、パターン1に分類されたチケットID無コミットに対しては、レコメンド情報r1又はレコメンド情報r3のように、当該チケットID無コミットに係るソースコードに対するチケットデータが修正候補として提示される。   FIG. 8 is a diagram illustrating an output example of recommendation information for correction candidates according to the classification result. As shown in FIG. 8, for ticket ID uncommitted that is classified as pattern 1, the ticket data for the source code related to the ticket ID uncommitted is used as a correction candidate, as in recommendation information r1 or recommendation information r3. Presented.

例えば、Soruce1であれば、チケットID無コミットの前に起票及び完了しているTID−1のチケットデータが修正候補として提示される。また、当該チケットデータとは別のチケットデータが起票されなければならない可能性もあるため、その旨も提示される。同様に、Source3であれば、チケットID無コミットの後に起票されたTID−3のチケットデータが修正候補として提示される。なお、チケットデータの修正とは、例えば、起票時刻又は完了時刻の修正である。   For example, in the case of Source1, the ticket data of TID-1 that has been drafted and completed before the ticket ID is not committed is presented as a correction candidate. Further, since there is a possibility that ticket data different from the ticket data may have to be issued, this is also indicated. Similarly, in the case of Source 3, the ticket data of TID-3 issued after ticket ID uncommitted is presented as a correction candidate. Note that the correction of the ticket data is, for example, correction of the draft time or completion time.

一方、パターン2に分類されたチケットID無コミットに対しては、レコメンド情報r2のように、同一期間でコミットされたチケットID有コミットに対応するチケットIDが修正候補として提示される。例えば、Soruce2について、チケットID無コミットに対応するコミットログに対して、「TID−2」が入力候補として提示される。   On the other hand, for ticket ID no commits classified as pattern 2, ticket IDs corresponding to commits with ticket IDs committed in the same period are presented as correction candidates, as in recommendation information r2. For example, for Source2, “TID-2” is presented as an input candidate for the commit log corresponding to ticket ID no commit.

なお、ステップS106及びS107のいずれか一方のみが実行されてもよい。また、図7に示されるTCNCにおいて、ユーザによって選択されたチケットID無コミットについて、ステップS107が実行されてもよい。   Only one of steps S106 and S107 may be executed. Further, in the TCNC shown in FIG. 7, step S107 may be executed for the uncommitted ticket ID selected by the user.

上述したように、本実施の形態によれば、チケットID無コミットに係るコミットログの存在をユーザに通知することができ、コミットログの修正又はチケットデータの起票・修正をユーザに促すことができる。したがって、チケットID無コミットの解消を促進することができ、ソースコードが更新された理由が不明となるのを回避可能とすることができる。   As described above, according to the present embodiment, it is possible to notify the user of the existence of a commit log related to uncommitted ticket ID, and to prompt the user to modify the commit log or issue / modify ticket data. it can. Accordingly, it is possible to promote the cancellation of the uncommitted ticket ID, and it is possible to avoid the reason why the source code has been updated.

すなわち、本実施の形態によれば、開発終了後に、ソフトウェアの開発過程におけるチケットデータの起票が充実化されることにより、開発時のバグ修正のソースコードへの反映状況等を確認しようとした際に、当該ソースコードに対する各更新が、バグ修正によるものであったか否かが確認出来なくなるような状況を回避することができる。また、次の開発者(又は更新の要求者)が実装機能の全容が把握できなくなることや、実装機能の根拠が把握できないようなことを回避できる。その結果、ソフトウェア開発における保守作業の品質を向上させることができる。   In other words, according to the present embodiment, after the development is completed, an attempt is made to confirm the reflection status of the bug correction at the time of development to the source code by enhancing the draft of the ticket data in the software development process. At this time, it is possible to avoid a situation in which it is impossible to confirm whether or not each update to the source code is due to a bug correction. Further, it is possible to avoid that the next developer (or the requester of update) cannot grasp the entire contents of the implemented function or cannot understand the basis of the implemented function. As a result, the quality of maintenance work in software development can be improved.

なお、本実施の形態において、チケットデータは、第1のデータの一例である。コミットログは、第2のデータの一例である。チケットデータの起票時刻、完了時刻は、それぞれ、更新理由の発生時期、当該更新理由に応じた作業の完了時期の一例である。コミットログのコミット時刻は、更新の時期の一例である。原因分類部14は、分類部の一例である。修正候補出力部15は、出力部の一例である。   In the present embodiment, ticket data is an example of first data. The commit log is an example of second data. The issue time and completion time of the ticket data are examples of the generation timing of the update reason and the completion timing of the work corresponding to the update reason, respectively. The commit time in the commit log is an example of the update time. The cause classification unit 14 is an example of a classification unit. The correction candidate output unit 15 is an example of an output unit.

以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to such specific embodiment, In the range of the summary of this invention described in the claim, various deformation | transformation・ Change is possible.

10 データ処理装置
11 VMS
12 ITS
13 TCNC生成部
14 原因分類部
15 修正候補出力部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
111 コミットログ生成部
112 コミットログ記憶部
121 チケット状態更新部
122 チケットデータ記憶部
B バス
10 Data processor 11 VMS
12 ITS
13 TCNC generation unit 14 cause classification unit 15 correction candidate output unit 100 drive device 101 recording medium 102 auxiliary storage device 103 memory device 104 CPU
105 Interface Device 106 Display Device 107 Input Device 111 Commit Log Generation Unit 112 Commit Log Storage Unit 121 Ticket Status Update Unit 122 Ticket Data Storage Unit B Bus

Claims (5)

ソフトウェアのソースコードの更新理由ごとに起票され、当該更新理由の識別情報と、当該更新理由の発生時期と、当該更新理由に応じた作業の完了時期とを含む第1のデータの集合と、前記ソースコードの更新ごとに記録され、当該更新の時期を含む第2のデータの集合であって、一部の前記第2のデータについては、更に、当該第2のデータに係る更新に対応する更新理由の識別情報がユーザによって入力されている集合と、を参照して、
前記一部の第2のデータについて入力された前記識別情報を含む前記第1のデータに含まれる発生時期及び完了時期と、前記識別情報が入力されていない前記第2のデータに含まれる更新の時期との関係に基づいて、当該第2のデータに対して前記識別情報が入力されていない原因を複数のパターンのうちのいずれかに分類する分類部としてコンピュータを機能させることを特徴とするデータ処理プログラム。
A set of first data that is drafted for each reason for updating the source code of the software, and includes identification information of the reason for updating, an occurrence time of the reason for updating, and a completion time of work according to the reason for updating A set of second data that is recorded every time the source code is updated and includes the timing of the update, and a part of the second data further corresponds to an update related to the second data. With reference to the set of update reason identification information entered by the user,
The generation time and completion time included in the first data including the identification information input for the partial second data, and the update included in the second data for which the identification information is not input. Data that causes a computer to function as a classification unit that classifies a cause that the identification information is not input to the second data into any one of a plurality of patterns based on the relationship with the time Processing program.
前記分類部は、更新の時期が、前記一部の第2のデータについて入力された前記識別情報を含む前記第1のデータに含まれる発生時期及び完了時期の間に含まれる前記第2のデータと、更新の時期が、当該発生時期及び当該完了時期の間に含まれない前記第2のデータとに関する前記原因を、異なるパターンに分類する、
ことを特徴とする請求項1記載のデータ処理プログラム。
The classification unit includes the second data whose update time is included between the generation time and the completion time included in the first data including the identification information input with respect to the partial second data. And the cause of the update is classified into different patterns with respect to the second data that is not included between the occurrence time and the completion time,
The data processing program according to claim 1.
前記分類部は、更新の時期が、前記一部の第2のデータについて入力された前記識別情報を含む前記第1のデータに含まれる発生時期及び完了時期の間に含まれる前記第2のデータについては、当該更新に対応する更新理由に係る前記第1のデータが有るにも関わらず、前記識別情報の入力がされていないことが原因とするパターンに分類する、
ことを特徴とする請求項1又は2記載のデータ処理プログラム。
The classification unit includes the second data whose update time is included between the generation time and the completion time included in the first data including the identification information input with respect to the partial second data. Is classified into a pattern caused by the fact that the identification information is not input despite the presence of the first data relating to the update reason corresponding to the update,
The data processing program according to claim 1 or 2, characterized by the above-mentioned.
前記一部の第2のデータについて入力された前記識別情報を、前記識別情報が入力されていない前記第2のデータに対する入力候補として出力する出力部、
としてコンピュータを機能させることを特徴とする請求項1乃至3いずれか一項記載のデータ処理プログラム。
An output unit that outputs the identification information input with respect to the partial second data as an input candidate for the second data for which the identification information is not input;
A data processing program according to any one of claims 1 to 3, wherein a computer is caused to function.
ソフトウェアのソースコードの更新理由ごとに起票され、当該更新理由の識別情報と、当該更新理由の発生時期と、当該更新理由に応じた作業の完了時期とを含む第1のデータの集合と、前記ソースコードの更新ごとに記録され、当該更新の時期を含む第2のデータの集合であって、一部の前記第2のデータについては、更に、当該第2のデータに係る更新に対応する更新理由の識別情報がユーザによって入力されている集合と、を参照して、
前記一部の第2のデータについて入力された前記識別情報を含む前記第1のデータに含まれる発生時期及び完了時期と、前記識別情報が入力されていない前記第2のデータに含まれる更新の時期との関係に基づいて、当該第2のデータに対して前記識別情報が入力されていない原因を複数のパターンのうちのいずれかに分類する分類手順をコンピュータが実行することを特徴とするデータ処理方法。
A set of first data that is drafted for each reason for updating the source code of the software, and includes identification information of the reason for updating, an occurrence time of the reason for updating, and a completion time of work according to the reason for updating A set of second data that is recorded every time the source code is updated and includes the timing of the update, and a part of the second data further corresponds to an update related to the second data. With reference to the set of update reason identification information entered by the user,
The generation time and completion time included in the first data including the identification information input for the partial second data, and the update included in the second data for which the identification information is not input. Data in which the computer executes a classification procedure for classifying the cause of the fact that the identification information is not input to the second data into one of a plurality of patterns based on the relationship with the time Processing method.
JP2016168393A 2016-08-30 2016-08-30 Data processing program and data processing method Active JP6546569B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016168393A JP6546569B2 (en) 2016-08-30 2016-08-30 Data processing program and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016168393A JP6546569B2 (en) 2016-08-30 2016-08-30 Data processing program and data processing method

Publications (2)

Publication Number Publication Date
JP2018036792A true JP2018036792A (en) 2018-03-08
JP6546569B2 JP6546569B2 (en) 2019-07-17

Family

ID=61565960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016168393A Active JP6546569B2 (en) 2016-08-30 2016-08-30 Data processing program and data processing method

Country Status (1)

Country Link
JP (1) JP6546569B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021105866A (en) * 2019-12-26 2021-07-26 株式会社日立製作所 Program development support system and program development support method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021105866A (en) * 2019-12-26 2021-07-26 株式会社日立製作所 Program development support system and program development support method
JP7246301B2 (en) 2019-12-26 2023-03-27 株式会社日立製作所 Program development support system and program development support method

Also Published As

Publication number Publication date
JP6546569B2 (en) 2019-07-17

Similar Documents

Publication Publication Date Title
JP6636009B2 (en) Management of system information
US20120159434A1 (en) Code clone notification and architectural change visualization
US10175975B2 (en) Self-mending software builder
Zampetti et al. A study on the interplay between pull request review and continuous integration builds
US9767002B2 (en) Verification of product release requirements
US20130179863A1 (en) Bug variant detection using program analysis and pattern identification
CN112771505A (en) Software test assurance by inconsistent disposition detection
Muşlu et al. Preventing data errors with continuous testing
US10223185B2 (en) Automated defect diagnosis from machine diagnostic data
US20200133658A1 (en) Change governance using blockchain
US10922291B2 (en) Data pipeline branching
JP6536326B2 (en) Method of generating software test code and computer readable storage medium
US20120291014A1 (en) System and method for testing the development and updates in a test system using production/live data
JP7187894B2 (en) Program, information processing system and information processing method
US20130185105A1 (en) Generation of sales leads using customer problem reports
TWI727084B (en) Automated continuous integration method under microservice software development infrastructure
US20050010597A1 (en) System and method of determining impact of model changes
JP6546569B2 (en) Data processing program and data processing method
Wang et al. Reef: A framework for collecting real-world vulnerabilities and fixes
JP6336919B2 (en) Source code review method and system
JPWO2009011057A1 (en) Application analysis program, application analysis method, and application analysis apparatus
WO2017088547A1 (en) Data upgrading method and apparatus
US11119761B2 (en) Identifying implicit dependencies between code artifacts
Ramkisoen et al. PaReco: patched clones and missed patches among the divergent variants of a software family
US20230208744A1 (en) Consensus driven service promotion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190530

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: 20190618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190621

R150 Certificate of patent or registration of utility model

Ref document number: 6546569

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150