Language selection

Search

Patent 2406333 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2406333
(54) English Title: SYSTEM AND METHOD FOR TRACKING SOFTWARE DEVELOPMENT
(54) French Title: SYSTEME ET METHODE DE SUIVI DE DEVELOPPEMENT DE LOGICIEL
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06Q 10/06 (2012.01)
  • G06F 17/00 (2006.01)
(72) Inventors :
  • CAMPARA, DJENANA (Canada)
  • PETROVIC, MIOMIR (Canada)
(73) Owners :
  • CAMPARA, DJENANA (Canada)
  • PETROVIC, MIOMIR (Canada)
(71) Applicants :
  • KLOCWORK SOLUTIONS CORPORATION (Canada)
(74) Agent: G. RONALD BELL & ASSOCIATES
(74) Associate agent:
(45) Issued:
(22) Filed Date: 2002-10-01
(41) Open to Public Inspection: 2004-04-01
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English 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.


Claims

Note: Claims are shown in the official language in which they were submitted.





8
THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
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.





9
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.

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02406333 2002-10-O1
1
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

CA 02406333 2002-10-O1
2
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

CA 02406333 2002-10-O1
3
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

CA 02406333 2002-10-O1
4
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
3
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

CA 02406333 2002-10-O1
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

CA 02406333 2002-10-O1
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

CA 02406333 2002-10-O1
7
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.

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(22) Filed 2002-10-01
(41) Open to Public Inspection 2004-04-01
Dead Application 2005-05-12

Abandonment History

Abandonment Date Reason Reinstatement Date
2004-05-12 FAILURE TO RESPOND TO OFFICE LETTER
2004-10-01 FAILURE TO PAY APPLICATION MAINTENANCE FEE

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $300.00 2002-10-01
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
CAMPARA, DJENANA
PETROVIC, MIOMIR
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Representative Drawing 2003-01-20 1 6
Abstract 2002-10-01 1 26
Description 2002-10-01 7 353
Claims 2002-10-01 2 76
Cover Page 2004-03-04 1 40
Drawings 2002-10-01 3 94
Correspondence 2002-11-18 1 25
Assignment 2002-10-01 2 68
Assignment 2003-12-30 5 129
Correspondence 2004-02-12 1 20