0
                             COCOMO
COCOMO is a system based on the COCOMO (COnstructive COst MOdel)
software cost estimation model developed by Barry Boehm of TRW.  The
model is described in detail in Boehm's book "Software Engineering
Economics" (Prentice-Hall, 1981).  

Allowable commands are listed on the next screen.  Enter commands, followed
by required parameters, on the line following the message "Enter Command".
In the help messages, commands are shown in upper case for clarity of
presentation.  In actual use, upper and lower case may be used interchangeably.
                               COMMANDS

ACAP            DELETE          ITCOST          PDCOST          STOR
AEXP            DISPLAY         LEXP            PRINT           SUBCOMPONENT
COMPONENT       DSI             LOAD            QUIT            TIME
COPY            EDSI            MODE            RELY            TOOL
CPLX            ESTIMATE        MODP            RENAME          TURN
CUTCOST         EXIT            NAME            SAVE            VEXP
DATA            GOTO            PARAMETER       SCED            VIRT
DDCOST          HELP            PCAP            SHOW            ?


The help facility provides helpful information for the use of each command.
Enter "HELP command" for a description of a command.  For further 
information regarding the system or a specific command, refer to the
system User's Manual.

Enter "QUIT" to terminate the program.
$$
1
RELY - Required Software Reliability                      Format: RELY rating
                                                                  RELY *
Rating           Effect of Software Failure
------           --------------------------
very high        Risk to human life
high             High financial loss
nominal          Moderate, recoverable losses
low              Easily recoverable losses
very low         slight inconvenience
$$
2 
DATA - Data Base Size                                      Format: DATA rating
                                                                   DATA *
Rating           Data Base Size  D = Data Base Size in Bytes
                                 P = Program Size in DSI
------           --------------
very high        1000 <= D/P
high             100  <= D/P < 1000
nominal          10   <= D/P < 100
low                      D/P < 10
$$
3
CPLX - Product Complexity                                  Format: CPLX rating
                                                                   CPLX *
Rating           Control Operations  
------           ------------------
extra high       Multiple resource scheduling, dynamic priorities. Microcode
very high        Reentrant, recursive code. Fixed priority interrupt handling
high             Highly nested, compound predicates, intermodule control
nominal          Simple nesting, some intermodule control, decision tables
low              Straight forward nesting, simple predicates
very low         Straightline code with a little nesting, simple predicates
$$
4
TIME - Execution Time Constraint                           Format: TIME rating
                                                                   TIME *
Rating           Use of Available Execution Time
------           -------------------------------
extra high                       95%
very high                        85%
high                             70%
nominal                          50% or less
$$
5
STOR - Main Storage Constraint                              Format: STOR rating
                                                                    STOR *
Rating           Use of Available Storage
------           ------------------------
extra high                95%
very high                 85%
high                      70%
nominal                   50% or less
$$
6
VIRT - Virtual Machine Volatility                          Format: VIRT rating
                                                                   VIRT *
                       Change Frequency
Rating           Major              Minor
------           ------------------------
very high        2 weeks            2 days
high             2 months           1 week
nominal          6 months           2 weeks
low              12 months          1 month
$$
7
TURN - Computer Turnaround Time                             Format: TURN rating
                                                                    TURN *
Rating           Average Response Time (in hours)
------           --------------------------------
very high        12 or more
high             4 to 12
nominal          less than 4
low              interactive
$$
8
ACAP - Analyst Capability                                   Format: ACAP rating
                                                                    ACAP *
Rating           Percentile
------           ----------
very high        90th
high             75th
nominal          55th
low              35th
very low         15th
$$
9
AEXP - Applications Experience                              Format: AEXP rating
                                                                    AEXP *
Rating           Average Experience
------           ------------------
high             6 years
nominal          3 years
low              1 year
very low         4 months or less
$$
10
PCAP - Programmer Capability                                Format: PCAP rating
                                                                    PCAP *
Rating           Percentile
------           ----------
very high        90th
high             75th
nominal          55th
low              35th
very low         15th
$$
11
VEXP - Virtual Machine Experience                           Format: VEXP rating
                                                                    VEXP *
Rating           Average Experience
------           ------------------
high             3 years or more
nominal          1 year
low              4 months
very low         1 month or less
$$
12
LEXP - Programming Language Experience                      Format: LEXP rating
                                                                    LEXP *
Rating           Average Experience
------           ------------------
high             3 years or more
nominal          1 year
low              4 months
very low         1 month or less
$$
13
MODP - Use of Modern Programming Practices                  Format: MODP rating
                                                                    MODP *
Rating           Use of Modern Programming Practices
------           -----------------------------------
very high        routine
high             reasonably experienced in most
nominal          reasonably experienced in some
low              beginning, experimental
very low         no use
$$
14
TOOL - Use of Software Tools                                Format: TOOL rating
                                                                    TOOL *
Rating           Level of Tool Support
------           ---------------------
very high        advanced maxicomputer tools
high             strong maxicomputer tools
nominal          strong minicomputer or basic maxicomputer tools
low              basic minicomputer tools
very low         basic microprocessor tools
$$
15
SCED - Schedule Constraint                                  Format: SCED rating
                                                                    SCED *
Rating           Percentage Stretch-out or Acceleration W.R.T. Nominal
------           ----------------------------------------------------
very high        severe stretch-out.     160% or more of nominal
high             moderate stretch-out.   130% of nominal
nominal                                  100% of nominal
low              moderate acceleration.   85% of nominal
very low         severe acceleration.     75% of nominal
$$
16

         PDCOST - Cost Per Man-Month for the Product Design Phase

Format: PDCOST cost
        PDCOST *

The PDCOST command updates the value of PDCOST in the current component.

'cost' should be an integer value representing dollars.
$$
17

         DDCOST - Cost Per Man-Month for the Detailed Design Phase

Format: DDCOST cost
        DDCOST *

The DDCOST command updates the value of DDCOST in the current component.

'cost' should be an integer value representing dollars.
$$
18

         CUTCOST - Cost Per Man-Month for the Code and Unit Test Phase

Format: CUTCOST cost
        CUTCOST *

The CUTCOST command updates the value of CUTCOST in the current component.

'cost' should be an integer value representing dollars.
$$
19

         ITCOST - Cost Per Man-Month for the Integration and Test Phase

Format: ITCOST cost
        ITCOST *

The ITCOST command updates the value of ITCOST in the current component.

'cost' should be an integer value representing dollars.
$$
20

Format: COMPONENT component-name

The COMPONENT command searches for an existing component with the given name.
If the search succeeds the component is made the 'current component' and its 
attributes are displayed and made available for editing.  If the search fails 
a new component with the given name is created at the same level as 'current
component'.  An attempt to create a second component at level 1 (root level)
will cause an error condition.

The relative component symbols (.c, .t, .u, .d, .p, .n) can be used with this
command to move around the hierarchy, but not to create new components.

'component-name' must be 12 characters or less in length.
$$
21
Format: COPY component-name

The COPY command copies all of the attributes of the named component, except
for its name, to the current component. If an attribute of the copied component
is inherited it is the "inherited" status which is copied, not the value 
itself.
The relative component symbols (.c, .t, .u, .d, .p, .n) can be used with this
command.

'component-name' must be 12 characters or less in length.
$$
22
Format: DELETE component-name

The DELETE command causes deletion of the named component and all of its
subcomponents.   If the named component has subcomponents, authorization for
the deletion will be requested.  There is no way to restore a deleted 
component (except by re-creating it).
The relative component symbols (.c, .t, .u, .d, .p, .n) can be used with this
command.

'component-name' must be 12 characters or less in length.
$$
23
Format: DISPLAY [report]

The DISPLAY command requests the display of the specified report.  The
available reports are:
    RESULTS  - effort, cost, and time estimates for current component
    SUMMARY  - summary of estimates for all components
    SCHEDULE - month-by-month development schedule
If no report is specified the current active report is used.  This is the
report last displayed or RESULTS if none has been.  If an ESTIMATE command
has not been given one is performed automatically.
$$
24
Format: DSI dsi                                Alias: EDSI
The DSI command updates the DSI value of the current component.  Delivered
Source Instructions are specified only for the lowest level components 
in the hierarchy.  The instruction count for higher levels is calculated by
summing the values for subcomponents.  If an instruction count is specified
for a component and one or more subcomponents are subsequently created, 
the higher level value is overridden.

'dsi' must be an integer value representing the number of delivered source
instructions for the current module.
$$
25

Format: ESTIMATE

The ESTIMATE command causes the program to compute and display the effort,
cost, and time estimates for the currently entered data.  The display is
determined by the current active report (see DISPLAY command).
$$
26
Format: GOTO component-name

The GOTO command searches for a component with the given name.  If the search
is successful the component is made the 'current component', and its attributes
are displayed and made available for editing.  If the search fails no action is
taken.
The relative component symbols (.c, .t, .u, .d, .p, .n) can be used with this
command.

'component-name' must be 12 characters or less in length.
$$
27

Format: HELP command                                            Alias:  ?

The HELP command displays helpful information for the given command. 
Information for each command includes the format of the command, any aliases,
a description of the command, and valid parameters.

'command' must be a system command or alias.  A list of system commands is on
the following page.

                               COMMANDS

ACAP            DELETE          ITCOST          PDCOST          STOR
AEXP            DISPLAY         LEXP            PRINT           SUBCOMPONENT
COMPONENT       DSI             LOAD            QUIT            TIME
COPY            EDSI            MODE            RELY            TOOL
CPLX            ESTIMATE        MODP            RENAME          TURN
CUTCOST         EXIT            NAME            SAVE            VEXP
DATA            GOTO            PARAMETER       SCED            VIRT
DDCOST          HELP            PCAP            SHOW            ?
$$
28

Format: LOAD filename

The LOAD command reads a file containing definitions of components that
were recorded by the SAVE command.  If the current set of components has
been modified since it was last SAVEd then the LOAD command will query the
user to verify that the current components may be deleted.

'filename' must be 20 characters or less in length.
$$
29

Format: MODE devmode
        MODE *

The MODE command is used to set or change the development mode for the system.
The development mode can only be specified at the top level of the hierarchy.

Allowable values for 'devmode' are ORGANIC, SEMIDETACHED, and EMBEDDED.
$$
30

Format: NAME component-name                        Alias: RENAME

The NAME command renames the existing component.  Original component names
are assigned by a COMPONENT or SUBCOMPONENT command.

'component-name' can be any combination of 1 to 12 printable characters
except that the first character cannot be a period.  Component names 
must be unique.
$$
31

Format: PARAMETERS filename

The PARAMETERS command reads the file containing the model parameters;
these parameters define things such as the default development mode,
the number of hours per man-month, and the cost driver multipliers.
The model parameter file can be modified with a text editor.

'filename' must be 20 characters or less in length.
$$
32
Format: PRINT [filename]

The current active report is formatted for printing and output to the
specified file.  Results must have been previously computed by an ESTIMATE
or DISPLAY command.  See DISPLAY for a description of the reports available.  

If no file name is specified the output will be appended to the most recently
used file.  When a file is specified it is rewound before writing, so any
previous output will be lost.  A file must be specified for the first PRINT
command. 'filename' must be 20 characters or less in length.
$$
33

Format: QUIT                                                  Alias: EXIT

The QUIT command terminates the program.  If the data in the system has 
been changed since the last save command, the user is informed and asked
if it is OK to clear.  A response of "Y" will cause the program to terminate,
a response of "N" will prompt for a new command.
$$
34

Format: SAVE filename

The SAVE command writes the current definition of all components to a
disk file so that they are available for later sessions.  Files written
with the SAVE command can be read with the LOAD command.

'filename' must be 20 characters or less in length.
$$
35

Format: SHOW

This command displays a list of all current component names.  The list is
indented to show the hierarchical structure. 

$$
36

Format: SUBCOMPONENT component-name

The SUBCOMPONENT command searches for a component with the given name. If the 
search succeeds the component is made the 'current component' and its 
attributes are displayed and made available for editing.  If the search fails 
a new component with the given name is created at the level below (i.e. as a 
descendant of) the 'current component'.  An attempt to create a subcomponent
when there is no level 1 (root) component will cause an error condition.

The relative component symbols (.c, .t, .u, .d, .p, .n) can be used with this
command to move around the hierarchy, but not to create new components.

'component-name' must be 12 characters or less in length.
$$
9999
$$

