Standard Project Directory Structure
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 information, principally in .html files
subprojects
Subprojects directories, with the same structure as this directory, i.e.,
requirements through subprojects.
Further details of this structure are discussed in the documentation directory in the Inferno project.
In terms of UNIX directory structure, there are four project superdirectories that organize the projects by degree of stability. 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
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 these four directories are the project directories themselves. A single project may have one to four separate versions, 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 currently active may have a version only in the production directory. 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:
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.