CA2406333A1 - System and method for tracking software development - Google Patents

System and method for tracking software development Download PDF

Info

Publication number
CA2406333A1
CA2406333A1 CA 2406333 CA2406333A CA2406333A1 CA 2406333 A1 CA2406333 A1 CA 2406333A1 CA 2406333 CA2406333 CA 2406333 CA 2406333 A CA2406333 A CA 2406333A CA 2406333 A1 CA2406333 A1 CA 2406333A1
Authority
CA
Canada
Prior art keywords
software
project
reverse
software development
given time
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.)
Abandoned
Application number
CA 2406333
Other languages
French (fr)
Inventor
Djenana Campara
Miomir Petrovic
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.)
Klocwork Solutions Corp
Original Assignee
Klocwork Solutions 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 Klocwork Solutions Corp filed Critical Klocwork Solutions Corp
Priority to CA 2406333 priority Critical patent/CA2406333A1/en
Publication of CA2406333A1 publication Critical patent/CA2406333A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Computer Security & Cryptography (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

A system and method for tracking software development, in particular, using a reverse engineering tool in conjunction with a resource management system.
Initially, an application design of the software to be developed is prepared and stored in the library. By employing the reverse engineering tool on the software program at any given time during the development process, a reverse-engineered design is produced. The application design is then compared with the reverse engineered design in order to determine the state of the software development project at that time. In addition, the quality of development, e.g. the number of faults in the software program and the amount of progress made by each developer, can be monitored and displayed graphically on a computer screen.
This information is processed and updated within the resource management system to reflect the changes in the state of the project, determined by the software development tracking system.

Description

System and Method for Tracking Software Development Field of the Invention The present invention relates to the tracking of a software development project, in particular, using information obtained by a reverse engineering tool at any given time, in conjunction with a resource management system, to compute the status of the project.
Background of the Invention Conventionally, a resource management system and a database where all the data relating to human and other type of resources is stored and is used in order to administer and manage a software development project. The resource management system and the database are constantly updated and adjusted manually based upon the information provided by the participants such as programmers and software developers. The manual entries required are not only time consuming, they are susceptible to errors pertaining to data entry as well as mis-information from the participants.
Typically, such information may be provided during meetings between management and staff, in the form of verbal discussion, written reports or electronically via e-mail.
However, the accuracy of determining the status of a project depends upon the timely receipt of reliable information from all participants. For example, if one or more persons are late in reporting their progress, the overall assessment of the status of the software development project may be delayed or any lack of reporting may be reflected into resource re-allocation and evaluation.
In addition, since there is no convenient and reliable way of verifying the information provided by the participants, the information provided by them must be taken as accurate. This means that errors resulting from factors, such as an inaccurate recollection or subjective estimation by the developers of the amount of progress achieved, may be propagated to the resource management system, resulting in ineffective management decisions and inefficient allocation of resources.
If the software development project deals with only a few modules and three or four developers, it is not difficult to allocate, reallocate or re-schedule the work among the staff. The problem arises when the project is rather large dealing with hundreds and thousands of modules and large amounts of human resources.
Summary of the Invention Accordingly, it is an object of the present invention to provide a method of tracking a software development project directed at overcoming these difficulties.
According to an aspect of the present invention, there is provided a method for tracking the progress of a software development project at a given time, comprising the steps of:
creating an application design and storing it in a library residing in a computer-readable memory;
reverse engineering a software program at a given time during a development process and converting the software program into a reverse-engineered design at said given time; comparing the reverse-engineered design with the application design stored in the library; and determining a status of the software development project or a component or entity thereof from results of the comparison; wherein the status of the software development project indicates the degree of completion of work completed and the quality of development. According to a second aspect of the present invention, there is provided a system for tracking the progress of a software development project at a given time, comprising: a resource management system for managing resources for a software development project; a database containing resource data stored in a computer-readable memory; means for creating an application design for the software to be developed and storing it in the computer-readable memory; a reverse engineering tool for creating a reverse-engineered design at any given time by converting a software program; configuration managsr to store the 'software program at a given time during a development process; comparison means for comparing the reverse-engineered design with the application design stored in a library residing in the computer-readable memory and computing the status of the software development project from results of the comparison; means for processing and inputting the results into a database of the resource management system; wherein the status of the software development project can be graphically displayed on a display means connected to said database.
Thus, an advantage afforded by the present invention is that, it is possible to obtain a reliable and realistic indication of the progress of the development of the software project, which is substantially free of human error and significantly more efficient than prior art solutions.
A further advantage afforded by the present invention is that the indication of progress is reliable and based on an objective assessment of progress. A still further advantage is that a current indication of progress can be obtained at any time during the development process, at fixed intervals of time or on an ad hoc basis, without waiting for the ~ responses from the software developers. In addition, the time and effort previously needed to transfer the desired information to the resource management database is substantially reduced or even eliminated.
Brief Description of the Drawings The present invention will now be further described with reference to the following drawings:
Figure 1 shows a block diagram of a software project application design with two modules;
Figure 2 shows a table illustrating the work allocations among human resources;
Figure 3 shows a table illustrating percentage of work completed within a project at a given time T1;
Figure 4 shows a table.illustrating percentage of work completed within a project at a given time T2;
Figure 5 shows a table showing results after comparing the reverse engineered design with application design; and Figure 6 shows a flow diagram showing the steps of the process of tracking the software development project.
Detailed Description of the Preferred Embodiment With reference to the drawings, according to an embodiment of the present invention, a method and system for tracking the development of a software project will now be described.
The method and system of the present invention relate to the interconnection of a resource management system, a database and a reverse engineering tool.
Initially, in any software development project, the requirements must be defined, timelines must be established and tasks must be assigned. Usually the information relating to human resources is saved in a' database linked with the resource management system. In addition to the names of the available staff, their area of expertise, work assigned to them and percentage of work completed are also stored.
As the development project progresses, the information in the database has to be updated dynamically. This may be done manually or with the use of an appropriate software tool in such a way, that the information can be graphically displayed on a computer-screen and can be viewed, updated as well as graphically manipulated.
A configuration manager manages attributes of the entities within the software, as well as the relationships between the entities during the progress of the software development. The configuration manager can also be seen as the code repository. An entity is defined as any constituent part of a piece of software, such as a module, procedure, process, function, etc. Attributes of entities include information such as the developer and the version number or release of the software. At any given time during the development, a static analysis may be performed on a snapshot of the software as it currently stands. This is achieved using a reverse engineering tool which reads the code and produces a reverse-engineered design of the software.
Generally, the number of modules contained in a software project and the number of procedures contained in each module are decided at the initial stage, so that the work can be distributed among the human resources available. This is called application design. Application design is an important component of a software development project, where the different modules and the various procedures and functions within a module are defined and are saved in a computer, called a library.
20 The way the work is distributed among the available staff is explained with reference to Figures 1 and 2. Figure 1 shows a simplified application design of a software development project that contains two modules: MODULE 1 and MODULE 2.
MODULE 1 contains two procedures: PROC_1 and PROC 2; MODULE 2 contains three procedures, PROC 3, PROC 4 and PROC_5.
The assignment or the distribution of work among the available staff, for example, Ann, Bob and Peter is explained with reference to Figure 2. From Figure 2, it is evident that the procedures named PROC_1 and PROC_2 will be completed exclusively by Ann. Procedures PROC_3 and PROC 4 will be completed by Bob and procedure PROC_5 will be completed by Peter.
Figure 3 shows the actual scenario, i.e., a snapshot 1 at time T1 in the development project. From Figure 3, it is understood that work on procedures PROC_1, PROC

and PROC_5 have not started. Procedure PROC 2 has been completed by Ann and procedure PROC 4 has been completed 50% by Bob.
A few days later in the software development process, another actual scenario or snapshot 2 at time T2 is shown in Figure 4. From Figure 4, it is understood that at this time, work on procedure PROC_1 is only 50% completed by Ann. Work on procedure PROC_3 and PROC 4 are each 50% completed by Bob. Peter has not done any work during this time period.
In one embodiment of the present invention with the help of a reverse engineering tool, the code which has been developed so far is reverse engineered and converted into design consisting of modules and procedures. Then it is compared with the original application design stored in the library and the difference between the two is calculated in terms of work completed in percentage indicating the status of the project. For example, if the code available at snapshot 2 shown in Figure 4 is reverse-engineered and compared with the original application design that is stored in a library, the result will show the status of the project. This is showri in the table of Figure 5.
Figure 6 describes the flow of operation in the system for tracking a software development project. Initially, the application design of the software program to be developed is created and is stored in the library. Any time during the process of the development, when the status of the development is to be determined, the software program developed so far residing in the configuration manager is reverse-engineered by using a reverse engineering tool. Thus, a reverse-engineered design is generated.
Now the reverse-engineered design is compared with the application design stored in the library and from the difference, the amount of work completed is calculated. The result is processed and the resource management system and the database are updated by the system.
The system in the present invention effects additional computations to present the information in a desired format such as a bar graph or a pie chart. For example, if the information that the procedure PROC_1 has 10 components is saved in the library, the system is able to determine that the 5 functions completed by Ann represent completion of 50% of the work required.
The resource management system could, for example, identify the developers working on the software project as well as the tasks to which they have been assigned and other factors relating to the quality and progress of the software project. In the resource management system, it may be desirable to convert the number of completed procedures or components contained therein, into percentage s values or other suitable representations derived from the present method.
Subsequently, data in the resource management database may be graphically represented using conventional representations such as bar graphs o~ pie charts.
Furthermore, it is possible to calculate the percentage of the total project completed.
In addition to calculating the amount of work completed within the project, the quality of the development can also be determined. This is achieved by counting the number of faults within the development and by tracking the amount of progress made by each developer.
The result of the comparison is inputted into the resource management system and the database, and can be viewed on the computer screen graphically by a bar graph or a pie chart. Now, by looking at the chart, the project manager will know at a glance the status of the project and assign human resources accordingly. Many additional aspects of the software project may be captured in the static analysis.
This, of course, is dependent upon the information available to the reverse engineering tool and in particular, the information, which is stored in the configuration manager.
According to the present embodiment, the invention is implemented as two complementary procedures that access a common storage means. The first procedure could be run on a regular schedule. For example, the reverse engineering tool could extract the required information from the configuration manager e.g., on a weekly basis. The reverse engineering tool may, of course, perform other functions 25 relating to assessing the efficiency of the software, relationships between different entities and other matters. The information obtained by the first procedure could then be processed to be in a specified format and then be written to a suitable storage means such as a random access file or a hard disk, which is accessible by the resource management system.
The complementary second procedure could form part of the resource management system and could be event driven. In particular, upon receiving a suitable trigger e.g., a message received from the first procedure, the second procedure is executed so as to read the information from the common storage means and update the parameters which define the status of the project. During subsequent use of the resource management system, the status and the progress of the software project will be reflected in the graphical representations, e.g., any chart or report generated by the resource management system.
Numerous modifications, variations and adaptations to the present invention are possible without departing from the teachings above and as defined by the scope of the claims appended hereto.

Claims (8)

1. A method for tracking the progress of a software development project at a given time, comprising the steps of:
- creating an application design and storing it in a library residing in a computer-readable memory;
- reverse engineering a software program at a given time during a development process and converting the software program into a reverse-engineered design at said given time;
- comparing the reverse-engineered design with the application design stored in the library; and - determining a status of the software development project or a component or entity thereof from results of the comparison;
wherein the status of the software development project indicates the degree of completion of work completed and the quality of development.
2. A method as claimed in claim 1, further comprising the step of:
inputting results indicating the status of the software development project into a resource management database, thereby updating the data contained therein;
wherein the status of the software project can be displayed graphically on a display device connected to said database.
3. A method as claimed in claim 2, wherein the display device is a computer screen.
4. A method as claimed in any one of claims 1 to 3, wherein the entity is selected from the group consisting of module, procedure, process and function.
5. A method as claimed in any one of claims 1 to 4, wherein the software program at a given time during the development is stored in a configuration manager, residing in said computer-readable memory.
6. A system for tracking the progress of a software development project at a given time, comprising:
a resource management system for managing resources for a software development project;
a database containing resource data stored in a computer-readable memory;
means for creating an application design for the software to be developed and storing it in the computer-readable memory;
a reverse engineering tool for creating a reverse-engineered design at any given time by converting a software program;
configuration manager to store the software program at a given time during a development process;
comparison means for comparing the reverse-engineered design with the application design stored in a library residing in the computer-readable memory and computing the status of the software development project from results of the comparison;
means for processing and inputting the results into a database of the resource management system;
wherein the status of the software development project can be graphically displayed on a display means connected to said database.
7. A system as claimed in claim 6, wherein the display device is a computer screen.
8. A system as claim in claim 6 or 7, wherein the entity is selected from the group consisting of module, procedure, process and function.
CA 2406333 2002-10-01 2002-10-01 System and method for tracking software development Abandoned CA2406333A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA 2406333 CA2406333A1 (en) 2002-10-01 2002-10-01 System and method for tracking software development

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA 2406333 CA2406333A1 (en) 2002-10-01 2002-10-01 System and method for tracking software development

Publications (1)

Publication Number Publication Date
CA2406333A1 true CA2406333A1 (en) 2004-04-01

Family

ID=32181904

Family Applications (1)

Application Number Title Priority Date Filing Date
CA 2406333 Abandoned CA2406333A1 (en) 2002-10-01 2002-10-01 System and method for tracking software development

Country Status (1)

Country Link
CA (1) CA2406333A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008009629A2 (en) * 2006-07-18 2008-01-24 Robert Bosch Gmbh Method for producing a consistent state of a program component quantity of a computer program
CN103870932B (en) * 2014-03-17 2018-04-10 娲石水泥集团武汉万世科技有限公司 A kind of intelligent official seal and use management system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008009629A2 (en) * 2006-07-18 2008-01-24 Robert Bosch Gmbh Method for producing a consistent state of a program component quantity of a computer program
WO2008009629A3 (en) * 2006-07-18 2008-03-20 Bosch Gmbh Robert Method for producing a consistent state of a program component quantity of a computer program
CN103870932B (en) * 2014-03-17 2018-04-10 娲石水泥集团武汉万世科技有限公司 A kind of intelligent official seal and use management system

Similar Documents

Publication Publication Date Title
US11836487B2 (en) Computer-implemented methods and systems for measuring, estimating, and managing economic outcomes and technical debt in software systems and projects
Bass et al. Architecture-based development
US20030033586A1 (en) Automated system and method for software application quantification
US9569737B2 (en) Methods and tools for creating and evaluating system blueprints
US20120174057A1 (en) Intelligent timesheet assistance
US20080034347A1 (en) System and method for software lifecycle management
EP1617362A2 (en) System for measuring, controlling, and validating software development projects
US20110302090A1 (en) Determining a Critical Path in Statistical Project Management
US20050210442A1 (en) Method and system for planning and control/estimation of software size driven by standard representation of software structure
CN114037311B (en) Information system engineering supervision project risk assessment method
US7743369B1 (en) Enhanced function point analysis
CN111563703B (en) Project management system, project management method, computer device, and computer-readable storage medium
US20150242782A1 (en) Interactive Planning Method And Tool
CN111695877A (en) Computer-implemented project resource management method, system, device and readable medium
US7827533B2 (en) Analytical server, program analysis network system, and program analysis method
CN113656174A (en) Resource allocation method, system, computer device and storage medium
US20050278301A1 (en) System and method for determining an optimized process configuration
JP2006235872A (en) Project management apparatus
US20040024673A1 (en) Method for optimizing the allocation of resources based on market and technology considerations
CN111723004A (en) Measuring method for agile software development, measuring data output method and device
US20100145748A1 (en) Information technology planning based on enterprise architecture
CA2406333A1 (en) System and method for tracking software development
US9600783B2 (en) Evaluating total cost of ownership
CN114490590A (en) Data warehouse quality evaluation method and device, electronic equipment and storage medium
Heijstek et al. Effort distribution in model-based development

Legal Events

Date Code Title Description
FZDE Dead