Distributed software development management system having subsystem information file for storing information indicating a correspondence between subsystems and specifications

A distributed software development system includes an apparatus for managing subsystem development in at least one development device. The management apparatus includes a system information file for storing information indicative of a correspondence between a plurality of subsystems and a plurality of specifications. The contents of the specifications are stored in a specification information file. When a subsystem is revised, a subsystem extracting device extracts from these files information regarding the subsystem to be revised. The extracted information is sent to the development device. After being revised by the development device, the extracted information is sent back to the management apparatus. An updating device receives the information and updates the subsystem information file and the specification information file according to the information received.

BACKGROUND OF THE INVENTION 
The present invention relates to an apparatus for managing distributed 
software development, and more particularly to an apparatus for managing a 
plurality of versions of a software system. 
In distributed software development, a software system is divided into 
subsystems and the subsystems are developed separately. 
The function of each subsystem is stated in a document called a program 
specification (hereinafter referred to as a "specification"). The 
specification is described in a format that is easy to understand such as 
a tabular format. Programmers produce source programs in accordance with 
the specifications. The source programs are compiled and linked together 
to produce an object program. 
The specifications are saved after the system is released and referred to 
for debugging or upgrading of the system. 
Typically, software manufacturers revise a software system frequently and 
produce many versions of the systems. Many versions of the specification 
are also produced to describe the function of the corresponding version of 
the system. 
When the difference between first and second versions of a system is 
examined, the specification of the first version is compared with that of 
the second version. Therefore, it is essential to keep records of the 
correspondence between a specific version of the system and the 
specifications describing this system. 
However, in a distributed development system, it is difficult to keep such 
a record because the subsystems are revised often separately at different 
times by different programmers. 
SUMMARY OF THE INVENTION 
In view of the aforementioned problem of the conventional distributed 
software development system, one object of the present invention is to 
keep a record of the correspondence between a software system and the 
specifications describing the software system. 
Another object of the present invention is to easily examine the difference 
between two versions of a software system. 
According to the present invention, an apparatus manages development of a 
software system including a plurality of subsystems. The subsystems are 
developed in at least one development device. 
The apparatus includes a system information file, a specification 
information file, subsystem extraction means, and updating means. 
The subsystem information file stores information indicative of a 
correspondence between each of the plurality of subsystems and a plurality 
of specifications related to the plurality of subsystems. 
The specification information file stores contents of the plurality of 
specifications. 
The subsystem extracting means is activated when one of the subsystems is 
revised. The subsystem extracting means extracts first information 
regarding the subsystem to be revised from the subsystem information file 
and the specification information file. Thereafter, the subsystem 
extracting means sends the first information to the development device. 
The development device produces second information by revising the first 
information. 
The updating means receives the second information from the development 
device and updates the subsystem information file and the specification 
information file according to the second information. 
The apparatus may includes difference output means. The difference output 
means examines a difference between two subsystems. 
The apparatus may send first and second information to different 
development devices. The first and second information are revised 
separately.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
Referring to FIG. 1, according to the present invention, a distributed 
software development system includes a management computer 1, a 
development computer 2 and a communication channel 3. The management 
computer 1 sends information to and receives information from the 
development computer 2 through the communication channel 3 connected 
therebetween. The development system may include a plurality of the 
development computers 2. 
The management computer 1 includes a system information file 40, a 
subsystem information file 50 and specification information file 60. The 
contents of the files 40, 50 and 60 are described below. The contents of 
the files 40, 50 and 60 are set or updated by system information input 
means 10, subsystem information input means 20 and specification 
information input means 30, respectively. 
Referring to FIG. 2, the system information file 40 stores system 
information showing a group of subsystems forming a software system. The 
system and subsystem are identified by identifiers (e.g., a combination of 
a system name and a version number). In this exemplary embodiment, the 
system information file 40 has a system name area 111, a system version 
area 112, a subsystem name area 113 and a subsystem version area 114. 
The system name area 111 and the system version area 112 store the name and 
the version number of a software system, respectively. The information 
stored in the areas 111 and 112 identifies one version of a software 
system. 
The subsystem name area 113 and the subsystem version area 114 store the 
name and the version number of subsystems forming the software system 
identified by the information in the areas 111 and 112, respectively. 
Hereinafter "subsystem configuration data" refers to the combination of a 
subsystem identifier (i.e., a subsystem name and a version number) and 
identifiers (i.e., a specification name and a version number) of 
subsystems forming the identified subsystem. 
Referring to FIG. 3, the subsystem information file 50 stores subsystem 
information showing a group of specifications describing the function of a 
subsystem. The subsystem information file 50 includes a subsystem name 
area 211, a subsystem version area 212, a specification name area 213 and 
a specification version area 214. 
The subsystem name area 211 and subsystem version area 212 store the name 
and the version number of a subsystem. The specification name area 213 and 
the specification version area 214 store the name and version numbers of 
the specifications describing the function of the subsystem identified by 
the information in the areas 211 and 212, respectively. 
In this exemplary embodiment, not only the latest version of each subsystem 
but also all versions of the subsystems are registered in the subsystem 
information file 50. 
Referring to FIG. 4, the specification information file 60 stores 
specification information including the contents of the specifications. 
The specification information file 60 includes a specification name area 
311, a specification version area 312 and a specification contents area 
313. 
The specification name area 311 and the specification version area 312 
store the name and the version number of the specification, respectively. 
The specification contents area 313 stores the contents of the 
specification identified by the information in the areas 311 and 312. 
Referring to FIGS. 5 to 9 showing examples of the specification, the 
contents of the specification are a document which describes the function 
of a subsystem in a man-readable format (e.g., comprehensible to human 
operators.) The specification should be distinguished from a source 
program. 
FIG. 5 shows an example of a program specification describing the operation 
of a program. The program specification may include a data flow diagram. 
FIG. 6 shows an example of an action definition specification defining the 
operation of each action, "action" being a command executed in a system in 
which a source program is produced from a specification. 
FIG. 7 shows another example of the program specification describing the 
correspondence between items in a file and items in output data. 
FIG. 8 shows an example of a file specification describing the format of 
records in files. 
FIG. 9 shows an example of a screen specification describing the format of 
a displayed image. 
Referring again to FIG. 1, the management computer 1 further includes 
difference output means 70, subsystem extraction means 80 and update means 
90. 
The subsystem extraction means 80, which is one feature of the present 
invention, receives an identifier of a subsystem (e.g., a combination of a 
subsystem name and a version number) and extracts subsystem information 
regarding the identified subsystem from the subsystem information file 50. 
The subsystem extraction means 80 also extracts specification information 
regarding the specifications describing the function of the identified 
subsystem from the specification information file 60. Thereafter, the 
subsystem extraction means 80 sends the extracted information to the 
development computer 2 through the communication channel 3. The subsystem 
information and the specification information sent to the development 
computer 2 are revised by the development computer 2. 
An exemplary operation of the subsystem extraction means 80 is described 
below. 
The update means 90 receives the specification information and the 
specification information revised by the development computer 2 through 
the communication channel 3. Thereafter, the update means 90 updates the 
contents of the subsystem information file 50 and the specification 
information file 60 according to the information revised by the 
development computer 2. 
The difference output means 70 examines the difference between subsystems 
or between specifications and outputs the difference to a device (e.g., a 
display such as a cathode ray tube (CRT) display, a hard copy printer, or 
the like). 
Next is described the detailed operation of the difference output means 70 
when outputting the difference between subsystems. 
Referring to FIG. 10(a), in steps 1 and 2, the difference output means 70 
receives (e.g., has input thereto) names and version numbers of the first 
and second subsystems. 
In step 3, the difference output means 70 reads out of the subsystem 
information file 50 the subsystem configuration data of the first and 
second subsystems. 
In step 4, a variable i is set to 1. 
In step 5, the difference output means 70 reads the name and the version 
number of the i-th specification of the first subsystem out of the 
subsystem configuration data of the first subsystem. Thereafter, the 
difference output means 70 determines whether or not the name of the i-th 
specification of the first subsystem exists in the subsystem configuration 
data of the second subsystem. 
If the name of the i-th specification exists, the difference output means 
70 branches to step 6. This means that the i-th specification is included 
in both the first and second subsystems irrespective of the version 
number. If the name of the i-th specification does not exist, the 
difference output means 70 branches to step 10 shown in FIG. 10(b). This 
means that the i-th specification is included in the first subsystem but 
not in the second subsystem. 
Referring to FIG. 10(b), in step 10, the difference output means 70 prints 
"Added" and the name and the version number of the i-th specification. 
Referring again to FIG. 10(a), in step 6, the difference output means 70 
determines whether or not the i-th specification of the second subsystem 
has the same version number as that of the i-th specification of the first 
subsystem. 
If they have the same version number, the difference output means 70 
branches to step 7. Otherwise, the difference output means 70 branches to 
step 11 shown in FIG. 10(b). 
Referring again to FIG. 10(b), in step 11, the difference output means 70 
prints "Modified" and the name of the i-th specification. Furthermore, the 
difference output means 70 prints the version numbers of the i-th 
specification of the first and second subsystems. 
Referring again to FIG. 10(a), in step 7, the variable i is set to i+1. 
In step 8, the difference output means 70 determines whether or not the 
i-th specification exists in the subsystem configuration data of the first 
subsystem. 
If it exists, the difference output means 70 branches to step 5. Otherwise, 
the difference output means 70 branches to step 9. 
In step 9, the difference output means 70 prints "deleted", and the names 
and the version numbers of the specifications included only in the 
subsystem configuration data of the second subsystem and not in that of 
the first subsystem. 
Through the aforementioned steps, the difference (i.e., "added", 
"modified", and "deleted") between subsystems is output. 
Referring again to FIG. 1, the development computer 2 includes a subsystem 
information file 150 and a specification information file 160. The files 
150 and 160 store the information sent from the management computer 1 via 
the communication channel 3. 
Specifically, the subsystem information file 150 stores a portion of the 
information stored in the subsystem information file 50 in the management 
computer 1. The specification information file 160 stores a portion of the 
information stored in the specification information file 60 in the 
management computer 1. 
The system information file 150 and the specification information file 160 
are revised by revision means 120 and 130, respectively. The revision 
means 120 and 130 are connected to an input device (e.g., a keyboard, a 
"mouse", a pointer, a joystick or the like). The operator revises the 
files 150 and 160 via the input device and the revision means 120 and 130. 
Next is described the operation of the development system referring to an 
exemplary operation. 
Referring to FIG. 11, in this exemplary operation, "delivery service system 
R 2.1" includes "Cargo collection subsystem R 1.1", "Delivery subsystem R 
1.3" and "Charge subsystem R 2.1". The numeral following "R" indicates the 
version number of the system or subsystem. 
The function of the "Cargo collection subsystem R 1.1" is described by "Car 
allocation specification R 1.7", "Personnel management specification R 
1.2" and "Cargo collection specification R 1.5". 
The function of the "Delivery subsystem R 1.3" is described by "Car 
Allocation specification R 1.7", "Personnel management specification R 
1.3" and "Delivery supervising specification R 1.5". 
The function of the "Cargo subsystem R 2.1" is described by "Cargo 
collection charge specification R 1.5" and "Delivery charge specification 
R 2.1". 
Referring to FIGS. 12 and 13, in the case of this delivery service system, 
the system information file 40 and the subsystem information file 50 store 
the information shown in FIGS. 12 and 13, respectively. 
Referring to FIG. 14, the specification information file 60 stores the 
contents of the specifications referred to in the subsystem information 
file 50. 
Referring to FIG. 15, in step 1, when the need for modification of the 
software system arises, the subsystem extraction means 80 keeps an area in 
the subsystem information file 50 for storing information about the 
revised subsystems. Thereafter, the subsystem extraction means 80 extracts 
from the subsystem information file 50 the subsystem configuration data of 
the subsystems to be revised. The subsystem extraction means 80 also 
extracts from the specification information file 60 the contents of the 
specifications of the subsystems to be revised. 
Referring to FIG. 16, in this exemplary operation, the cargo collection 
subsystem R 1.1 is revised to produce cargo collection subsystem R 1.2. 
Therefore, the subsystem extraction means 80 keeps the area in the 
subsystem information file 50 for cargo collection subsystem R 1.2. The 
subsystem extraction means 80 extracts subsystem configuration data 100 of 
the cargo collection subsystem R 1.2. 
Referring to FIGS. 14 and 16, the subsystem extraction means 80 extracts 
the contents of the car allocation specification R 1.7, the personnel 
management specification R 1.2 and the cargo collection specification R 
1.5. 
Referring again to FIG. 15, in step 2, the subsystem extraction means 80 
sends the extracted information to the development computer 2 through the 
communication channel 3. 
The subsystem configuration data 100 is stored in the subsystem information 
file 150. The contents of the specifications are stored in the 
specification information file 160. 
In step 3, the operator (e.g., programmer) revises the information sent 
from the management computer 1 in accordance with the modification of the 
system. Specifically, when the contents of a specification is modified, 
the operator increments the version number of the specification in the 
subsystem configuration data sent from the management computer 1. 
Referring to FIGS. 17(a) and 17(b), in this exemplary operation, the cargo 
collection specification R 1.5 is revised to produce the cargo collection 
specification R 1.6. The version number of the cargo collection 
specification in the subsystem configuration data 100 is incremented to 
1.6 
Referring again to FIG. 15, in step 4, the development computer 2 sends the 
subsystem configuration data 100 and the contents of the cargo collection 
specification R 1.6 to the management computer 1 through the communication 
channel 3. 
In step 5, the update means 90 receives this information and updates the 
subsystem information file 50 and the specification information file 60 
according to the information received. Thereafter, the system information 
file 40 is updated by the operator through the system information input 
means 10. 
Referring to FIG. 17(b), the subsystem configuration data 100 revised by 
the development computer 2 is registered in the subsystem information file 
50. The contents of the cargo collection specification R 1.6 are 
registered in the specification information file 60. 
Referring to FIG. 18, as a result of the revision of the cargo collection 
specification, "Delivery service system R 2.2" is produced. The operator 
registers data about the delivery service system R 2.2 in the system 
information file 40. 
Referring again to FIG. 15, in step 6, when the difference between 
subsystems or between specifications is examined, the difference output 
means 70 is activated. 
Referring to FIG. 19(a), when the difference between the cargo collection 
subsystem R 1.1 and the cargo collection subsystem R 1.2 is examined, the 
difference output means 70 receives the subsystem names and version 
numbers of the subsystem as "comparison objects". 
Thereafter, the difference output means 70 examines the difference between 
the cargo collection subsystem R 1.1 and the 10 cargo collection subsystem 
R 1.2 by following the steps shown in FIGS. 10(a) and 10(b). 
In this exemplary case, the difference is in the version of the cargo 
collection specification. That is, as shown in FIG. 17(a), the cargo 
collection subsystem R 1.1 includes cargo collection specification R 1.5 
whereas in FIG. 17(b) the cargo collection subsystem R 1.2 includes the 
cargo collection subsystem R 1.6. Therefore, the difference output means 
70 displays "Modified", "Cargo Collection 1.5" and "Cargo Collection 1.6", 
for indicating the difference in version numbers. 
Referring to FIG. 19(b), when the difference on the level of the 
specification is examined, the operator inputs the specification names and 
version numbers of the specification to be examined. The difference output 
means 70 examines and outputs the difference between the specified 
specifications. 
In this exemplary operation, the difference between the cargo collection 
specifications R 1.5 and R 1.6 is examined. The difference is in the 
collection area. That is, the collection area of the cargo collection 
specification R 1.5 is the "Kanto", area whereas that of the cargo 
collection specification R 1.6 is the whole country. Therefore, the 
difference output means 70 displays this difference. 
Next is described a modification of the present invention. 
Step 6 in FIG. 15 may be executed after step 4 in the same figure. In this 
case, examining the output of the difference output means 70, the operator 
interactively determines whether or not the revision made a significant 
change to a system. If the system is revised significantly (e.g., as 
determined by the amount of specification changes, by the changed scope of 
any single specification parameter, and/or by the changed version numbers, 
rising above a predetermined level or threshold set by the operator or 
designer's requirements and constraints) and the system information file 
40 needs to be updated, the operator updates the system information file 
40 through the system information input means 10. 
Only one subsystem is revised in the aforementioned exemplary operation. 
However, more than one subsystem (e.g., the cargo collection subsystem and 
the delivery subsystem) may be revised simultaneously. 
In this case, the subsystem extraction means may extract information of 
each of the subsystems to be revised and thereafter send the information 
to different development computers 2. The subsystems are simultaneously 
revised in different development computers 2. After the revision, the 
development computers 2 separately send the revised information to the 
management computer 1. The management computer 1 receives the information 
and updates the subsystem information file 50 and the specification 
information file 60 according to the information sent. 
The present embodiments are therefore, to be considered in all respects as 
illustrative and not restrictive, the scope of the invention being 
indicated by the appended claims rather than by the foregoing description 
and all changes which come within the meanings and range of equivalency of 
the claims are therefore intended to the embraced therein.