CSC 509 Standard Operating Procedures,
Volume 1
A software project directory is organized into the following subdirectories:
Subdirectory Contents -------------------------------------------------------------------------------- requirements Requirements analysis, principally in .html files specification Formal specification, principally in .rsl files prototype Prototype, in a variety of prototyping file formats design Design, in .html files generated by javadoc implementation Implementation, in .java files administration Scheduling and other administrative information, principally in .html files testing Test plans, scripts, and results, in .html, .csh, .java, .out, and .diff files documentation Assembled documentation, principally in .html and .ps files subprojects Subprojects directories, with the same structure as this directory, i.e., requirements through subprojects.
In a project librarian directory, there are four project superdirectories that organize the projects by degree of stability. The directories are:
Superdirectory Contents -------------------------------------------------------------------------------- production Projects that are stable enough for production use. Project developers may safely use and link to files in production directories. beta Moderately stable versions of projects. The difference between beta and production versions is that beta projects contain experimental functionality that may not be fully tested. Project developers may reasonably safely use and link to files in beta directories, though they may not be as stable as production projects in all cases. alpha UNstable versions of projects. Files in alpha projects are subject to frequent change and may not be fully tested. Project developers should use or link to alpha files only with direct coordination with the project owner. work Personal work-in-progress versions of projects. Files in work projects are highly unstable and may not even compile. Project developers should never use or link to files in work directories. The files, if readable, may be used for browsing purposes.
Within each of the four release-level directories are the project directories themselves. Figure 1 is a diagrammatic view of the full project directory structure.
Figure 1: Diagram of project directory structure.
In CSC 509 this quarter, we will use only two levels of projects -- work and alpha. The alpha directory will only be updated once, at the end of the quarter. The contents of the requirements, specification, testing, and administration directories will be copied from the 508 projects of last quarter. Minor updates may be made to the requirements and specification directories, in response to SCOs. The major directories used in 509 this quarter will be design, implementation, and testing. The administration directory will also be used for group administrative files, as it was used in 508. The prototype and documentation directories will not be used.
Each 509 project member, including the librarian, maintains his/her own work directory. The project librarian also maintains a projects directory for the entire group, in addition to his/her individual work directory.
All changes of any kind originate in an individual work directory. On a regular basis, the files from the individual work directories are checked in to to the overall project work directory using the CVS update command (see the handout on CVS Basics.) Team members keep their own working directories up to date by checking out the work of their partners, again using the CVS update command.