Installing manually for over a year public domain packages, we were able to observe the various steps that packages go through, from the moment that the sources are released until when the programs are delivered to the users. Based on our observations, we were able to define a ``Software Processing Model'' whose state/transition diagram is shown in Figure 3.
Figure 3: The ``Software Processing Model''
The model defines the following states: =0pt=0pt=0pt Unknown: the package is not present in the data base. RemotePackedSources: the system knows from which remote site it can get the source and where to store it. LocalPackedSources: the sources as distributed by the author(s) are stored in the repository. ExpandedSources: ASCII sources are available in the repository. ConfiguredSources: sources are ready to be compiled, generally after Makefile(s) and configuration file(s) were generated. Executable: the executable files were built. Tested: the tests provided with the sources have been run successfully. Installed: the executable files, their execution environment and the full available documentation have been transferred into the repository and are ready to be used by the ``testers''. Certified: the software is available to all users after having been validated by the ``testers''. InProduction: the software is included in the default environment of the users and officially supported. Deleted: the product is removed from the repository.
The states ConfiguredSources to InProduction, are split in as many sub-states as there are supported platforms.
Possible state transitions are also shown in Figure 3.