Page 1 Standard Project Directory Structure A software project directory is organized into the following sub- directories: 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, principally in C++ .h files implementation Implementation, principally in C++ .C files testing Test plans, scripts, and results, in .html, .h .C, .csh, and .out files documentation Assembled documentation, principally in .html and .ps files administration Scheduling and other administrative in- formation, principally in .html files subprojects Subprojects directories, with the same structure as this directory, i.e., re- quirements through subprojects. Further details of this structure are discussed in the documenta- tion directory in the Inferno project. In terms of UNIX directory structure, there are four project superdirectories that organize the projects by degree of stabil- ity. When navigating via a web browser, these super directories are transparent, except for the URL name that appears in the browser. The project superdirectories are the following: Superdirectory Contents Page 2 ----------------------------------------------------- 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 pro- jects. The difference between beta and production versions is that be- ta 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 pro- duction 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 pro- jects are highly unstable and may not even compile. Project develop- ers should never use or link to files in work directories. The files, if readable, may be used for browsing purposes. Within each of these four directories are the project directories themselves. A single project may have one to four separate ver- sions, depending on the stability and degree of active work for the project. For example, an established ongoing project may have versions in all four of the production, beta, alpha, and work directories. A stable project for which no work is cur- rently active may have a version only in the production direc- tory. A brand new project may have a version only in the work directory. While the directories listed above contain all pertinent project files, on UNIX platforms there are the following conventional UNIX subdirectories, which contain symbolic links to appropriate portions of the preceding subdirectories: Page 3 Directory Files ------------------------------------------------ lib .o, .a, and .so files include .h files bin executable files src .h and .C files These directories may be referenced in Makefiles, or other strictly-UNIX contexts where appropriate. Note that these UNIX- based directories contain only links, no original files.