CN110928930B - Software development behavior monitoring system - Google Patents

Software development behavior monitoring system Download PDF

Info

Publication number
CN110928930B
CN110928930B CN202010083549.7A CN202010083549A CN110928930B CN 110928930 B CN110928930 B CN 110928930B CN 202010083549 A CN202010083549 A CN 202010083549A CN 110928930 B CN110928930 B CN 110928930B
Authority
CN
China
Prior art keywords
development
data
behavior
information
module
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.)
Active
Application number
CN202010083549.7A
Other languages
Chinese (zh)
Other versions
CN110928930A (en
Inventor
刘志杰
张运春
胡玉栋
章怡敏
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.)
Beijing Tongtech Co Ltd
Original Assignee
Beijing Tongtech Co Ltd
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 Beijing Tongtech Co Ltd filed Critical Beijing Tongtech Co Ltd
Priority to CN202010083549.7A priority Critical patent/CN110928930B/en
Publication of CN110928930A publication Critical patent/CN110928930A/en
Application granted granted Critical
Publication of CN110928930B publication Critical patent/CN110928930B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Abstract

The invention provides a software development behavior monitoring system, which comprises: the monitor module is used for collecting behavior data information generated by the development tool in the development process of the development tool by a developer; the data receiving module is used for receiving behavior data information; the data storage module is used for storing the received behavior data information and simultaneously providing developers for inquiring and downloading the stored behavior data information; the data reading module is used for reading the stored behavior data information; the data auditing module is used for auditing the acquired behavior data information and allowing developers to check the audited behavior data information; and the data mining module is used for acquiring a data result according to the acquired behavior data information. The behavior data generated by the development tool can be conveniently acquired, and the behavior data can be automatically acquired.

Description

Software development behavior monitoring system
Technical Field
The invention relates to the technical field of software development engineering, and realizes automatic monitoring of software development behaviors.
Background
How to ensure the development quality of a software project is always an important problem in the software industry, and the software project quality can be effectively improved through software process management guidelines such as software engineering and CMMI (China Mobile multimedia interface), wherein the key links are that digitization is realized in organized software project management, the stability of a software development process is realized through a digitization technology, the precision of software development management is improved, and the fluctuation of the quality of software project implementation is reduced. Wherein specific requirements are such as "collecting and statistically analyzing detailed measurements of the performance of the process", providing "data acquisition and storage tools" and "analysis tools", etc.
Secondly, software development is a human activity that requires a certain skill, just like in the fields of sports, art, etc. Developers with different proficiency skills have obvious differences in software development time, software code quality and the like. The individual behavior of the developer not only relates to the tasks born by the individual, but also has great influence on the progress, quality and cost of the whole software project, and has important significance for improving the normalization and efficiency of the individual and team of the developer. The development behaviors of developers can be researched, the behavior characteristics of advanced developers can be summarized and refined, the problems of common developers can be found, and references and help are provided for improving the development skills of the developers.
However, at present, software development behavior data cannot be collected automatically, and generally, a mode mainly including manual records such as documents and form templates is adopted, and developers need to fill in daily reports, weekly reports, monthly reports, defect reports and the like manually. There are a number of problems with this form, and more particularly:
(1) the filling-in mode of the form item is generally complicated, the form and the document need to be understood in place, the number of statistical items (derived items) is large, the filling-in is time-consuming, and the workload burden is brought.
(2) The form filling activity and the development activity cannot be carried out simultaneously, so that the development process is interfered/interrupted, and therefore, the data cannot be fragmented frequently by adopting a daily report mode, a weekly report mode and the like.
(3) The filled content often needs more subjective estimation, such as development amount, completion ratio and the like, and the estimation error is larger due to different personal experiences.
(4) The report is streamed in form, and many people deal with the report, and some report even make a fake. For example, the unit test is not performed at ordinary times, but the completion of the filling in the unit test column is completed.
Although there are some similar development behavior monitoring experiments in the field of software engineering research, such as analyzing the whole process of an individual by using a camera, or recording operation behaviors by monitoring activities of a keyboard and a mouse, the methods are mostly limited to theoretical research, a large amount of time is needed to manually classify the development behaviors, if the methods are applied to a production environment, the problem of fusion with the whole development environment and a management environment cannot be well solved, and the methods are difficult to enter into actual engineering application.
In order to solve the problems, the invention provides a software development behavior monitoring system which can automatically acquire software development behavior data and provide software development behavior analysis without any interference to developers.
Disclosure of Invention
The invention provides a software development behavior monitoring system which is used for acquiring behavior data generated by a development tool by arranging a monitor module and realizing automatic acquisition of the software development behavior data.
The embodiment of the invention provides a software development behavior monitoring system, which comprises: a development end and a service end;
the development end is provided with a monitor module, and the server end is provided with a data receiving module, a data storage module, a data reading module, a data auditing module and a data mining module;
the monitor module is used for monitoring corresponding preset monitoring events based on an event monitoring mechanism provided by a development tool and collecting behavior data information generated by the development tool in the development process of the development tool by a developer;
the data receiving module is used for receiving the behavior data information collected by the monitor module;
the data storage module is used for storing the behavior data information received by the data receiving module and simultaneously providing the related personnel for inquiring and downloading the stored behavior data information;
the data reading module is used for reading the behavior data information stored in the data storage module;
the data auditing module is used for auditing the behavior data information acquired by the data reading module and allowing related developers to check the behavior data information after auditing;
and the data mining module is used for acquiring a data result according to the behavior data information acquired by the data reading module.
In one possible way of realisation,
monitoring a corresponding preset monitoring event based on an event monitoring mechanism provided by the development tool, wherein the monitoring event comprises the following steps: compiling a listener capable of recording the preset interception event, wherein the listener needs to realize an interception interface of a specified type and register the interception interface on an interception object needing interception, and the method mainly comprises the following steps:
step 1: determining a preset monitoring event needing to be monitored, and searching a monitoring object corresponding to the preset monitoring event;
step 2: determining the monitor type required by the monitor object definition to monitor the preset monitor event according to the event type;
and step 3: and (3) compiling the listener class determined in the step (2), realizing a specified listening interface, compiling a corresponding processing method for the relevant events in the listener class, and performing data type conversion on the compiled processing method according to the preset specification of the server.
In one possible implementation manner, the method further includes:
and the event processing module is used for filtering the event information of the monitor event acquired by the monitor module according to a predefined rule, filtering irrelevant event information, reserving and recording the event information, forming a queue record of the filtered event information according to a predefined standard format, adding the queue record into a development behavior information queue, and storing the development behavior information queue in a memory cache.
In one possible implementation manner, the method further includes:
the state checking timer is used for checking the cache capacity of the memory cache;
the development end is further configured to store the cached development behavior information queue in a local hard disk file when the cache capacity checked by the state check timer is smaller than a preset capacity value.
In one possible implementation manner, the method further includes:
the time timer is used for timing the time of sending the behavior development data to the server side by the development side;
the development terminal is further configured to automatically store the development behavior information queue in the cache into a local hard disk file when the timing time of the time timer reaches a preset timing range, and simultaneously send the development behavior information in all the development behavior information queues in the local hard disk file to the server terminal.
In one possible implementation manner, the method further includes:
the judging module is used for judging whether the network connection between the development end and the service end is successful or not;
if yes, continuing to execute subsequent operations;
otherwise, performing network connection between the development end and the server for a first preset number of times, and if the network connection is not successful, performing network connection between the development end and the server again after a first preset time interval.
And if the server fails to be successfully connected with the development end, the server sends an alarm instruction to the alarm module and controls the alarm module to execute corresponding alarm operation.
In one possible way of realisation,
the development end is also used for sending data to the server end;
the judging module is further configured to judge whether the server has received the data sent by the initiating terminal;
if yes, continuing to execute subsequent operations;
otherwise, the initiating terminal sends data of a second preset number of times to the server terminal, and if the server terminal does not successfully receive the data, the initiating terminal sends the data to the server terminal again after a second preset time interval;
and if the server side does not receive the retransmitted data, the server side sends an alarm instruction to the alarm module and controls the alarm module to execute corresponding alarm operation.
In one possible implementation manner, the monitor module further includes:
the development language element change monitor is used for monitoring development language information specified by development language grammar, when the development language information changes, the development language element change monitor is triggered to carry out events, unnecessary record contents are filtered, and programming operation behaviors of developers based on development tools are tracked;
the IDE resource change monitor is used for monitoring resource change information of the development tool, triggering a resource change monitor event when the resource change information changes, filtering the resource change event, reserving required changed resource information and tracking resource operation behaviors of a developer based on the development tool;
the IDE window change monitor is used for monitoring view change information in a workbench window corresponding to the development tool, triggering a window change monitor event when the view change information contains view focus information changed by a user, positioning a preset resource required to be operated by the developer, and tracking a resource operation behavior of the developer on the preset resource based on the development tool;
the IDE document change monitor is used for dynamically monitoring the document operation behavior of a developer, binding the active document by the IDE document change monitor when the active document window of the development tool changes, triggering the active document change monitoring event when the document content edited by the developer changes, filtering the active document change event, and tracking the active document operation behavior of the developer based on the development tool.
In one possible way of realisation,
the data receiving module is also used for managing user information and project information related to the behavior data information;
the data mining module comprises:
the single-index daily analysis unit is used for performing daily analysis on the behavior data information of the project developed by the developer to obtain index data content related to the development project, and the index data content comprises: development activity time, code submission, project construction and unit test single index data of a development project;
the single index trend analysis unit is used for carrying out trend analysis on single index data in index data content related to the development project and acquiring an operation trend graph corresponding to each single index data based on a pre-established statistical period;
and the member index trend analysis unit is used for carrying out comparative analysis on the index data content of each developer in the development project group to obtain the single index trend information of each developer.
The embodiment of the invention provides a method for automatically acquiring software development behavior data, which comprises the following steps:
monitoring development language information specified by development language grammar based on a development language element change monitor, and triggering a development language element change monitor event when the development language information changes;
monitoring resource change information of a resource based on an IDE resource change monitor, and triggering a resource change monitor event when the resource change information changes;
monitoring view change information of each view in a workbench window corresponding to the development tool based on an IDE window change monitor, and triggering a window change monitor event when the view change information contains information of view focus changed by a user;
the method comprises the steps that a document operation behavior of a developer is dynamically monitored based on an IDE document change monitor, and when document content edited by the developer changes, an active document change monitoring event is triggered.
In one possible implementation manner, the method further includes:
based on the event processing module, filtering development language element change monitor events triggered by the development language element change monitor, resource change monitor events triggered by the IDE resource change monitor, window change monitor events triggered by the IDE window change monitor and document change monitor events triggered by the IDE document change monitor according to a predefined rule, filtering irrelevant event information, reserving and recording event information, forming queue records of the event information after filtering according to a predefined standard format, adding the queue records into a development behavior information queue, and storing the development behavior information queue in a memory cache.
In a possible implementation manner, after storing the development behavior information queue in a memory cache, the method further includes:
checking whether the cache capacity of the memory cache is smaller than a preset capacity value, if so, storing the cached development behavior information queue into a local hard disk file;
if not, judging whether the caching time of the development behavior information queue cached in the memory cache reaches a first preset caching timing time, and if so, sending the development behavior information queue in the memory cache to a data sending module in a server;
and judging whether the caching time of the development behavior information queue cached in the local hard disk file reaches a second preset caching timing time, if so, sending the development behavior information queue in the local hard disk file to a data sending module in a server.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.
The technical solution of the present invention is further described in detail by the accompanying drawings and embodiments.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention and not to limit the invention.
In the drawings:
FIG. 1 is a schematic structural diagram of a software development behavior monitoring system according to an embodiment of the present invention;
FIG. 2 is a schematic structural diagram of a development behavior monitoring system according to another embodiment of the present invention;
FIG. 3 is a class diagram of a write listener in an embodiment of the present invention;
fig. 4 is a flowchart of a method for automatically collecting software development behavior data according to an embodiment of the present invention.
Detailed Description
The preferred embodiments of the present invention will be described in conjunction with the accompanying drawings, and it will be understood that they are described herein for the purpose of illustration and explanation and not limitation.
An embodiment of the present invention provides a software development behavior monitoring system, as shown in fig. 1, including: a development end and a service end;
the development end is provided with a monitor module, and the server end is provided with a data receiving module, a data storage module, a data reading module, a data auditing module and a data mining module;
the monitor module is used for monitoring corresponding preset monitoring events based on an event monitoring mechanism provided by a development tool and collecting behavior data information generated by the development tool in the development process of the development tool by a developer;
the data receiving module is used for receiving the behavior data information collected by the monitor module;
the data storage module is used for storing the behavior data information received by the data receiving module and simultaneously providing the related personnel for inquiring and downloading the stored behavior data information;
the data reading module is used for reading the behavior data information stored in the data storage module;
the data auditing module is used for auditing the behavior data information acquired by the data reading module and allowing related personnel to check the behavior data information after auditing;
and the data mining module is used for acquiring a data result according to the behavior data information acquired by the data reading module.
The invention mainly develops a software development behavior monitoring tool based on an IDE software development tool aiming at software development activities, realizes the automatic capture and storage of software development behaviors and result data, and provides functions of auditing, analyzing, showing and the like of the software development behaviors.
The embodiment of the invention provides a software development behavior monitoring system, which monitors corresponding preset monitoring events based on an event monitoring mechanism provided by a detector module, and comprises the following steps: compiling a listener capable of recording the preset interception event, wherein the listener needs to realize an interception interface of a specified type and register the interception interface on an interception object needing interception, and the method mainly comprises the following steps:
step 1: determining a preset monitoring event needing to be monitored, and searching a monitoring object corresponding to the preset monitoring event;
step 2: determining a monitor class required by the monitor object definition to monitor the preset monitor event according to the event type of the IDE software development tool object;
and step 3: and (3) compiling the listener class determined in the step (2), realizing a specified listening interface, compiling a corresponding processing method for the relevant event, and performing data type conversion on the compiled processing method according to the preset specification of the server to form listener data.
The listener data is a minimum unit for recording original behavior data information of software development and is represented in an XML format;
the monitor data type is used when the monitor is specially used for collecting data, and can be used by other data collecting tools to easily determine specific type information of which data for a data analysis service.
As shown in fig. 3, for a listening requirement, for example, first, it is determined what object (audioclass) the event occurs on, and the listener operation is implemented by the addXXXListener method. In the MyXXXXListener class of its own listener, the event monitoring method of the interface requirement is implemented, and for each method, the data meeting the requirement is obtained according to the specific logic processing.
The beneficial effects of the above technical scheme are: a plurality of event listeners are compiled by using an event listener monitoring mechanism of the IDE, so that the software development behaviors are automatically collected.
The embodiment of the invention provides a software development behavior monitoring system,
and the event processing module is used for filtering the event information of the monitor event acquired by the monitor module according to a predefined rule, filtering irrelevant event information, reserving and recording the event information, forming a queue record of the filtered event information according to a predefined standard format, adding the queue record into a development behavior information queue, and storing the development behavior information queue in a memory cache.
The development behavior information queue defines a standard data format, adopts an XML mode, and comprises seven basic elements: timestamp information, run time, development tools, monitor data type, owner, resource, attribute information. Wherein the first six elements are necessary and the last attribute information is optional.
The beneficial effects of the above technical scheme are: by acquiring the filtering event information, a large amount of irrelevant and repeated information is removed, the data in the development behavior information queue is convenient to store and access by adopting the standard XML format data, the storage speed of the development behavior data can be improved by adopting a memory cache storage mode, and the influence on the development work of developers is reduced to the maximum extent.
The embodiment of the invention provides a software development behavior monitoring system, which further comprises:
the state checking timer is used for checking the cache capacity of the memory cache;
the development end is further configured to store the cached development behavior information queue in a local hard disk file when the cache capacity checked by the state check timer is smaller than a preset capacity value.
The predetermined capacity value depends on the size of the memory.
The beneficial effects of the above technical scheme are: by checking the cache capacity, the data overflow of the memory queue of the development behavior is prevented.
The embodiment of the invention provides a software development behavior monitoring system, which further comprises:
the time timer is used for timing the time of sending the behavior development data to the server side by the development side;
the development terminal is used for automatically storing the development behavior information queue in the cache into a local hard disk file when the timing time of the time timer reaches a preset timing range, and simultaneously sending the development behavior information in all the development behavior information queues in the local hard disk file to the server terminal.
The time corresponding to the preset time range is not too short to avoid interfering developers, and is not too long to ensure that the information can be transmitted to the server side in time, and the general time is preferably 5-10 minutes;
the local hard disk file may be a magnetic disk of a computer terminal.
The beneficial effects of the above technical scheme are: by adopting local hard disk storage, development lines in the memory cache can be stored locally as queue data, and the problem of data storage when network connection is interrupted is solved. By setting the preset timing range, local development behavior data can be uploaded and updated in time, a development end and a server end can be prevented from being in a working state all the time, and data transmission frequency is reduced.
The embodiment of the invention provides a software development behavior monitoring system, which further comprises:
the judging module is used for judging whether the network connection between the development end and the service end is successful or not;
if yes, continuing to execute subsequent operations;
otherwise, performing network connection between the development end and the server for a first preset number of times, and if the network connection is not successful, performing network connection between the development end and the server again after a first preset time interval.
And if the server fails to be successfully connected with the development end, the server sends an alarm instruction to the alarm module and controls the alarm module to execute corresponding alarm operation.
The first predetermined number of times may be generally implemented as 3 times;
the first preset time interval may be set manually.
The technical scheme has the beneficial effects that the first preset times and the first preset time interval are set, so that a network connection recovery mechanism of the development end and the server end can be provided when network link is interfered. The alarm module is convenient for reminding system management personnel of knowing about network fault conditions.
The embodiment of the invention provides a software development behavior monitoring system,
the development end is also used for sending data to the server end;
the judging module is further configured to judge whether the server has received the data sent by the initiating terminal;
if yes, continuing to execute subsequent operations;
otherwise, the initiating terminal sends data of a second preset number of times to the server terminal, and if the server terminal does not successfully receive the data, the initiating terminal sends the data to the server terminal again after a second preset time interval;
and if the server side does not receive the retransmitted data, the server side sends an alarm instruction to the alarm module and controls the alarm module to execute corresponding alarm operation.
The second preset number of times may be generally implemented as 3 times, and the second preset time interval may be set manually;
the beneficial effects of the above technical scheme are: the first preset times and the first preset time interval are set, a reliable data uploading mechanism is provided, and system management personnel can be reminded of knowing about system fault conditions conveniently through the alarm module.
The embodiment of the invention provides a software development behavior monitoring system, wherein the monitor module further comprises:
the development language element change monitor is used for monitoring development language information specified by development language grammar, when the development language information changes, the development language element change monitor is triggered to carry out events, unnecessary record contents are filtered, and programming operation behaviors of developers based on development tools are tracked;
the IDE resource change monitor is used for monitoring resource change information of the development tool, triggering a resource change monitor event when the resource change information changes, filtering the resource change event, reserving required changed resource information, and tracking resource operation behaviors of the developer based on the development tool;
the IDE window change monitor is used for monitoring view change information of each view in a workbench window corresponding to the development tool, triggering a window change monitor event when the view change information contains view focus information changed by a user, positioning a preset resource required to be operated by the developer, and tracking a resource operation behavior of the developer on the preset resource based on the development tool;
the IDE document change monitor is used for dynamically monitoring the document operation behavior of a developer, binding the active document by the IDE document change monitor when the active document window of the development tool changes, triggering the active document change monitoring event when the document content edited by the developer changes, filtering the active document change event, and tracking the active document operation behavior of the developer based on the development tool.
The preset resource can be a window focus, a window control, a menu item selection, a keyboard and the like;
the beneficial effects of the above technical scheme are: through the above arrangement of the development language element change monitor, the resource change monitor, the window change monitor and the document change monitor, relevant information changes can be captured conveniently and timely, and operation behaviors of developers can be acquired automatically.
The embodiment of the invention provides a software development behavior monitoring system,
the data receiving module is also used for managing user information and project information related to the behavior data information;
the data mining module comprises:
the single-index daily analysis unit is used for performing daily analysis on the behavior data information of the project developed by the developer to obtain index data content related to the development project, and the index data content comprises: development activity time, code submission, project construction and unit test single index data of a development project;
the single index trend analysis unit is used for carrying out trend analysis on single index data in index data content related to the development project and acquiring an operation trend graph corresponding to each single index data based on a pre-established statistical period;
and the member index trend analysis unit is used for carrying out comparative analysis on the index data content of each developer in the development project group to obtain the single index trend information of each developer.
The beneficial effects of the above technical scheme are: the development behavior of the developer is analyzed.
The embodiment of the invention provides a method for automatically acquiring software development behavior data, which comprises the following steps of:
monitoring development language information specified by development language grammar based on a development language element change monitor, and triggering a development language element change monitor event when the development language information changes;
monitoring resource change information of a resource based on an IDE resource change monitor, and triggering a resource change monitor event when the resource change information changes;
monitoring view change information of each view in a workbench window corresponding to the development tool based on an IDE window change monitor, and triggering a window change monitor event when the view change information contains information of view focus changed by a user;
dynamically monitoring the document operation behavior of a developer based on an IDE document change monitor, and triggering an active document change monitoring event when the document content edited by the developer changes;
preferably, based on the event processing module, filtering development language element change monitor events triggered by the development language element change monitor, resource change monitor events triggered by the IDE resource change monitor, window change monitor events triggered by the IDE window change monitor, and document change monitor events triggered by the IDE document change monitor according to a predefined rule, filtering irrelevant event information, retaining and recording event information, forming a queue record of the event information after filtering according to a predefined standard format, adding the queue record into a development behavior information queue, and storing the development behavior information queue in a memory cache;
preferably, after storing the development behavior information queue in the memory cache, the method further includes:
checking whether the cache capacity of the memory cache is smaller than a preset capacity value, if so, storing the cached development behavior information queue into a local hard disk file;
if not, judging whether the caching time of the development behavior information queue cached in the memory cache reaches a first preset caching timing time, and if so, sending the development behavior information queue in the memory cache to a data sending module of a server;
and judging whether the caching time of the development behavior information queue cached in the local hard disk file reaches a second preset caching timing time, if so, sending the development behavior information queue in the local hard disk file to a data sending module in a server.
The first preset cache timing time and the second preset cache timing time are not too short to avoid interfering developers, and are not too long to ensure that the information can be transmitted to the data receiving module in time, and the common time is preferably 5-10 minutes.
If the connection with the server fails in the process of transmitting the development behavior information queue to the data receiving module, the test is carried out for three times continuously, and if the connection fails, the reconnection is carried out after a period of time.
If the transmission of the development behavior information queue to the data receiving module fails, the server is disconnected for three times, and if the transmission of the development behavior information queue to the data receiving module fails, the server is disconnected, waits for a period of time, and is reconnected and transmitted.
If the retry number exceeds the specified number, the retry is not carried out, and the alarm information is sent out.
The beneficial effects of the above technical scheme are: the trigger event is processed according to a predefined standard format, so that a standard data format is conveniently formed for recording, and the storage and access of behavior information queue data are conveniently developed; the capacity of the memory cache is checked to prevent the development behavior memory queue data from overflowing; the data transmission is carried out based on the preset caching timing time, so that the local development behavior data can be uploaded and updated in time, the development end and the server end can be prevented from being in a working state all the time, and the data transmission frequency is reduced.
Another embodiment of the present invention provides a software development behavior monitoring system, as shown in fig. 2, which includes three subsystems, namely a development behavior and result data capturing subsystem, a development behavior and result data storing subsystem, and a development behavior and result data comprehensive service subsystem, wherein the development behavior and result data capturing subsystem is developed based on Eclipse IDE. As three different technologies, namely a client side IDE environment technology, a server side data receiving and storing technology and a data analyzing and displaying technology, are involved, in order to ensure flexible expansibility in the future, a hierarchical architecture is adopted, a loosely coupled software design method is adopted among layers, and communication among layers is in an HTTP general mode, so that the independence of software systems of all layers can be ensured, the change of one layer software system does not influence the system structures of other layers, and the system has good expansibility.
For the development behavior and results data capture subsystem, it includes: developing a behavior and result data capture mechanism;
the design idea of the development behavior and result data capture mechanism is as follows: developing a behavior data acquisition plug-in by using a mechanism that Eclipse supports plug-in development, compiling a monitor of an event to be monitored on the Eclipse plug-in, and realizing a method for acquiring the event and processing data in the monitor;
because the operation amount of a developer on input devices such as a keyboard and a mouse in the Eclipse development tool is very large, if the input devices are not distinguished for monitoring and storage, a large amount of event capture and transmission obviously affect the Eclipse development efficiency, and a large amount of information collected by a background can affect effective analysis and use due to difficult abstraction and classification. Therefore, focusing on events related to development activities provided by Eclipse itself, analyzing which development activities can be measured by Eclipse event mechanism, and analyzing the monitorable activities of Java project development by Eclipse, the results are shown in the following table:
Figure GDA0002442904980000181
Figure GDA0002442904980000191
by analyzing code development events that can be captured when Java programs are developed using Eclipse, the preliminary results are tabulated below:
Figure GDA0002442904980000192
Figure GDA0002442904980000201
through the analysis, the software development activities are connected with the behaviors of the specific operations and the results generated by the behaviors to form the effective events of the software development behaviors. The Eclipse plug-in collects the events and filters out a large amount of invalid information, so that the collected information is easier to classify, store and analyze.
When Eclipse is started, the development behavior data acquisition plug-in is started and operated at the same time, and the plug-in can distinguish various events defined in an Eclipse environment, such as a window focus event, a window control event, a menu item selection event, a keyboard event and the like, so that a method for intercepting and processing a monitor in the plug-in is executed.
In order to ensure that the development behavior and result data storage system can simultaneously process IDE development behaviors from different terminals, the event data type needs to be standardized; meanwhile, the scheme of simultaneous storage of the local terminal and the server terminal is used for preparing the loss of the transmitted data caused by the reasons of network communication interruption and the like.
For a development behavior and results data storage system, comprising: receiving a service for behavior and result data, a behavior and result database, and a behavior and result database access interface;
the behavior and result data receiving service is a server application which runs independently, a corresponding service program defines an REST interface, and the receiving and obtaining functions of developing behavior data are provided in the REST service mode;
the server application is used for receiving data which is sent by an IDE end development behavior and result data capture subsystem and accords with predefined event data specifications, a receiving interface of the server application adopts the current popular REST service or REST API mode, and the data adopts the XML mode.
The behavior and result database is responsible for storing behavior and result data captured by the IDE terminal into the database management system in a persistent manner; the database management system can select different database products according to the user team and the application scale.
And in the database management system, basic data storage model definitions such as behavior data types, behavior data, users, projects and the like can be preset.
The behavior data type is an abstract data structure definition generated on the basis of classifying various behaviors, is independent of IDE (integrated drive electronics) and is closely related to development activities. For example, in a "result" of the "unit test" type, there is always a "pass" or "fail"; because the type defined by the abstract mode is irrelevant to the concrete IDE, the analysis of the software development process is more facilitated;
its main fields are: the behavior data type name, the action description, the key fields and values (for example, the Result field and values of the test behavior can be expressed as: Result ═ Passed "|" Failed "), and the related attribute information.
The behavior data is that each behavior data instance represents an atomic behavior or a related result in the software development process of a user, and the behavior data must belong to a certain user, and only one behavior data can be stored in a time stamp of one user.
Therefore, its main fields are: the user, the user's usage tool, the behavior data type, the behavior data generation timestamp, the behavior data attribute, and which resource the behavior data is generated when operating on.
The user may refer to a role, typically a developer, that participates in software development using the IDE.
The main fields are: username/email, password, role in the system, attribute information.
The project may be a software development activity conducted by a team.
The main fields are: item name, item description, start time, end time, item owner, attribute information, and the like.
The behavior and result database access interface is used for realizing the access to the database, REST service or REST API is adopted, so that the access of an external system to behavior and result data has a loose coupling characteristic, as long as the interface form of REST is unchanged, a calling party and a service party can flexibly update according to own needs, and meanwhile, more data analysis and display modes can be conveniently developed in the later stage.
The comprehensive service system for development behavior and result data comprises: maintaining and managing a behavior and result database, auditing development behavior data, mining and analyzing the behavior data and acquiring a development configuration data interface;
the behavior and result database maintenance and management is based on a behavior and result data access interface and an interface provided by a database management system, a browser-based database management interface is developed, and management work of a daily database system is mainly provided for an administrator user.
The development behavior data audit is mainly because behavior information data is generally data of a comparison bottom layer, the information amount is very large, and certain analysis and abstraction modes are required to be performed under most conditions, so that the behavior information data can be directly provided for developers to check and use. Therefore, the B/S architecture-based individual-oriented behavior data auditing system is provided, and development managers can browse development behavior records related to individuals in a browser mode. The behavior record contents are first displayed in a list, and the main contents in the list are shown in the following table. Developers can click the daily behavior times displayed in each column to enter the detailed data audit, as shown in the following table, the first row of the following table, 7/month/5/2017, configuration management is submitted for 6 times, and by clicking the number, the detailed information submitted each time can be displayed for code data audit,
Figure GDA0002442904980000231
the behavior data mining analysis is set for realizing team behavior data reporting service based on the B/S architecture, and the team behavior data mining analysis analyzes and displays a large amount of original data in a behavior and result data storage system from a project dimension.
First, it provides a predefined analysis template on which the project owner (creator or manager) can choose the members that need the metrics, the behavior of the metrics, and the way they are exposed.
Secondly, it can execute daily project report, phase report and project summary report according to the well-defined analysis template. The content of the report varies according to the analysis method and the focus, and the common report methods are: the quality index and trend of the project code, the progress index and trend of the project, the distribution of various behavior types in the project and the like.
The interface for setting and acquiring the development configuration data is used for realizing the data of the interaction behavior of a developer and a development configuration library, and is very important for monitoring, analyzing and evaluating the development activities of the developer. The most common development configuration library currently is the SVN. The SVN development configuration data reading interface is developed, and a project manager can use the SVN development configuration data reading interface to link data related to projects in the SVN with behavior data information.
It will be apparent to those skilled in the art that various changes and modifications may be made in the present invention without departing from the spirit and scope of the invention. Thus, if such modifications and variations of the present invention fall within the scope of the claims of the present invention and their equivalents, the present invention is also intended to include such modifications and variations.

Claims (9)

1. A software development behavior monitoring system, comprising: a development end and a service end;
the development end is provided with a monitor module, and the server end is provided with a data receiving module, a data storage module, a data reading module, a data auditing module and a data mining module;
the monitor module is used for monitoring corresponding preset monitoring events based on an event monitoring mechanism provided by a development tool and collecting behavior data information generated by the development tool in the development process of the development tool by a developer;
the data receiving module is used for receiving the behavior data information collected by the monitor module;
the data storage module is used for storing the behavior data information received by the data receiving module and simultaneously providing the related personnel for inquiring and downloading the stored behavior data information;
the data reading module is used for reading the behavior data information stored in the data storage module;
the data auditing module is used for auditing the behavior data information acquired by the data reading module and allowing related personnel to check the behavior data information after auditing;
and the data mining module is used for acquiring a data result according to the behavior data information acquired by the data reading module.
2. The software development behavior monitoring system of claim 1, wherein the monitor module monitors the corresponding preset snoop event based on an event snoop mechanism provided by the development tool, comprising: compiling a listener capable of recording the preset interception event, wherein the listener needs to realize an interception interface of a specified type and register the interception interface on an interception object needing interception, and the method mainly comprises the following steps:
step 1: determining a preset monitoring event needing to be monitored, and searching a monitoring object corresponding to the preset monitoring event;
step 2: determining the defined monitor class of the monitor object for monitoring the preset monitor event according to the event type;
and step 3: and (3) compiling the listener class determined in the step (2), realizing a specified listening interface, compiling a corresponding processing method for the relevant events in the listener class, and performing data type conversion on the compiled processing method according to the preset specification of the server.
3. The software development behavior monitoring system of claim 2, further comprising:
and the event processing module is used for filtering the event information of the monitor event acquired by the monitor module according to a predefined rule, filtering irrelevant event information, reserving and recording the event information, forming a queue record of the filtered event information according to a predefined standard format, adding the queue record into a development behavior information queue, and storing the development behavior information queue in a memory cache.
4. The software development behavior monitoring system of claim 3, further comprising:
the state checking timer is used for checking the cache capacity of the memory cache;
the development end is further configured to store the cached development behavior information queue in a local hard disk file when the cache capacity checked by the state check timer is smaller than a preset capacity value.
5. The software development behavior monitoring system of claim 4, further comprising:
the time timer is used for timing the time of sending the behavior development data to the server side by the development side;
the development terminal is further configured to automatically store the development behavior information queue in the cache into a local hard disk file when the timing time of the time timer reaches a preset timing range, and simultaneously send the development behavior information in all the development behavior information queues in the local hard disk file to the server terminal.
6. The software development behavior monitoring system of claim 4, further comprising:
the judging module is used for judging whether the network connection between the development end and the service end is successful or not;
if yes, continuing to execute subsequent operations;
otherwise, performing network connection between the development end and the server for a first preset number of times, and if the network connection is not successful, performing network connection between the development end and the server again after a first preset time interval;
and if the development end is not connected with the server, the server sends an alarm instruction to the alarm module and controls the alarm module to execute corresponding alarm operation.
7. The software development behavior monitoring system of claim 6,
the development end is also used for sending data to the server end;
the judging module is further configured to judge whether the server has received the data sent by the initiating terminal;
if yes, continuing to execute subsequent operations;
otherwise, the initiating terminal sends data of a second preset number of times to the server terminal, and if the server terminal does not successfully receive the data, the initiating terminal sends the data to the server terminal again after a second preset time interval;
and if the server side does not receive the retransmitted data, the server side sends an alarm instruction to the alarm module and controls the alarm module to execute corresponding alarm operation.
8. The software development behavior monitoring system of claim 2, wherein the monitor module further comprises:
the development language element change monitor is used for monitoring development language information specified by development language grammar, when the development language information changes, the development language element change monitor is triggered to carry out events, unnecessary record contents are filtered, and programming operation behaviors of developers based on development tools are tracked;
the IDE resource change monitor is used for monitoring resource change information of the development tool, triggering a resource change monitor event when the resource change information changes, filtering the resource change event, reserving required changed resource information, and tracking resource operation behaviors of the developer based on the development tool;
the IDE window change monitor is used for monitoring view change information in a workbench window corresponding to the development tool, triggering a window change monitor event when the view change information contains view focus information changed by a user, positioning a preset resource required to be operated by the developer, and tracking a resource operation behavior of the developer on the preset resource based on the development tool;
the IDE document change monitor is used for dynamically monitoring the document operation behavior of a developer, binding the active document by the IDE document change monitor when the active document window of the development tool changes, triggering the active document change monitoring event when the document content edited by the developer changes, filtering the active document change event, and tracking the active document operation behavior of the developer based on the development tool.
9. The software development behavior monitoring system of claim 1,
the data receiving module is also used for managing user information and project information related to the behavior data information;
the data mining module comprises:
the single-index daily analysis unit is used for performing daily analysis on the behavior data information of the project developed by the developer to obtain index data content related to the development project, and the index data content comprises: development activity time, code submission, project construction and unit test single index data of a development project;
the single index trend analysis unit is used for carrying out trend analysis on single index data in index data content related to the development project and acquiring an operation trend graph corresponding to each single index data based on a pre-established statistical period;
and the member index trend analysis unit is used for carrying out comparative analysis on the index data content of each developer in the development project group to obtain the single index trend information of each developer.
CN202010083549.7A 2020-02-10 2020-02-10 Software development behavior monitoring system Active CN110928930B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010083549.7A CN110928930B (en) 2020-02-10 2020-02-10 Software development behavior monitoring system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010083549.7A CN110928930B (en) 2020-02-10 2020-02-10 Software development behavior monitoring system

Publications (2)

Publication Number Publication Date
CN110928930A CN110928930A (en) 2020-03-27
CN110928930B true CN110928930B (en) 2020-06-02

Family

ID=69854712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010083549.7A Active CN110928930B (en) 2020-02-10 2020-02-10 Software development behavior monitoring system

Country Status (1)

Country Link
CN (1) CN110928930B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778501A (en) * 2020-06-22 2021-12-10 北京沃东天骏信息技术有限公司 Code task processing method and device
CN112685458B (en) * 2021-01-18 2023-01-20 浪潮云信息技术股份公司 Method and system for realizing cloud native application controller
CN114692382B (en) * 2021-11-12 2023-03-24 国家电投集团科学技术研究院有限公司 Management method and device for nuclear power simulation model development data and computer equipment
CN114511039A (en) * 2022-02-28 2022-05-17 智汇(中山)信息技术有限公司 Software development behavior monitoring system
CN116069573B (en) * 2022-11-16 2023-09-22 北京东方通科技股份有限公司 Testing method and system based on API (application program interface) testing platform

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108574605A (en) * 2017-03-07 2018-09-25 中国移动通信有限公司研究院 A kind of acquisition method and device of user behavior data
CN110347570A (en) * 2019-07-02 2019-10-18 昆明理工大学 A kind of Code automatic build tool analysis method under IDE environment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900302B2 (en) * 2016-06-22 2018-02-20 FinancialForce.com, Inc. Seamless authentication for an application development platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108574605A (en) * 2017-03-07 2018-09-25 中国移动通信有限公司研究院 A kind of acquisition method and device of user behavior data
CN110347570A (en) * 2019-07-02 2019-10-18 昆明理工大学 A kind of Code automatic build tool analysis method under IDE environment

Also Published As

Publication number Publication date
CN110928930A (en) 2020-03-27

Similar Documents

Publication Publication Date Title
CN110928930B (en) Software development behavior monitoring system
US7966526B2 (en) Software event recording and analysis system and method of use thereof
US10810074B2 (en) Unified error monitoring, alerting, and debugging of distributed systems
US8510720B2 (en) System landscape trace
US7133908B1 (en) Metrics and status presentation system and method using persistent template-driven web objects
US11968264B2 (en) Systems and methods for operation management and monitoring of bots
US8732530B2 (en) System and method for self-diagnosis and error reporting
KR101201008B1 (en) Model-based management of computer systems and distributed applications
US7620856B2 (en) Framework for automated testing of enterprise computer systems
US7526508B2 (en) Self-managing database architecture
US7917536B2 (en) Systems, methods and computer program products for managing a plurality of remotely located data storage systems
US10116534B2 (en) Systems and methods for WebSphere MQ performance metrics analysis
US8234633B2 (en) Incident simulation support environment and business objects associated with the incident
US8731998B2 (en) Three dimensional visual representation for identifying problems in monitored model oriented business processes
US20060004830A1 (en) Agent-less systems, methods and computer program products for managing a plurality of remotely located data storage systems
US7685475B2 (en) System and method for providing performance statistics for application components
CN101202649A (en) Method for collecting and managing equipment information
EP3384391B1 (en) Real-time change data from disparate sources
CA2390697A1 (en) Systems and methods for collecting, storing, and analyzing database statistics
CN107451056B (en) Method and device for monitoring interface test result
US20080154711A1 (en) Availability Tracker
US20220138082A1 (en) Applied Computer Technology for High Efficiency and Scalable Value Stream Mapping
WO2008005334A2 (en) Availability tracker
Shah et al. RWELS: A remote web event logging system
CN114880154A (en) Method and system for regularly reminding and counting BUG (BUG killer) conditions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant