Tutorial
Preface
I have attempted to make the tutorial as easy to follow as possible.
After completion of the tutorial you will by no means be an
expert in the use of USC COCOMO. The tutorial is an attempt to give
the user knowledge on how to use the basic tool functions and provoke
interest by the user to "play around" with the tool and see what all
it can do. Good luck!
Note
When the tool is started up from your galaxy account a series of
warning messages flash in the window. These are to be ignored but there
are a few minor bugs with the interface of the tool. I will try to
explain what they are when they arise in order to not confuse the user.
Starting up the tool
In order to use the tool on the HP700's you have to telnet into your
galaxy account and cd into ~dbutler/bin From here you type
the command run-cocomo & This will run the tool in
the background and the tool window will appear on your screen. For those
of you who need more information on how to start up the tool here are
the steps:
- In an hpterm window type
xhost + galaxy
- In an hpterm window type
xterm
- In this newly formed xterm window type
telnet galaxy and
proceed to login.
- Once in your galaxy account type
setenv DISPLAY (machine
name):0.0. The machine name is the name of the machine
your are stationed
at. Example: setenv DISPLAY Adder:0.0
- Now type
cd ~dbutler/bin
- Finally type
run-cocomo &
Starting the tutorial
Load a sample project out of my directory. Here are the steps:
- Pull down the File menu at the top of the tool and select Load
Project.(A pop up window will appear)
- In the Directories section of this window change directories to the
cocomo2 directory of dbutler's account.
- Here are the steps of tasks to perform in the Directories section of the
pop up window.
- Double click on ..
- Double click on .../dbutler/www
- Double click on .../dbutler/www/tutorials
- Double click on .../www/tutorials/winter96
- Double click on .../tutorials/witner96/cocomo2
- Now double click on the title
tutorial.test.est
in the files field
of the window.
This will load three modules that I have inputted and changed some of the
default values on. This tool looks at the modules in a project and
the attributes of those modules in order to give a cost estimation.
First I want you to delete the module delete me.
- Click in the far left box on the line of the module
delete
me. An "X" will appear signifying that the module was selected.
- Now click on the Delete Module button.(This will remove the
module from the project.)
Now it is time for you to add a module.
- Click on the Add Module button.(This will add a module with default
values)
- Change the name of the module. This is done by double clicking
on the name field.(where (none) currently appears) Here is where
one of those interface problems occures. In order to write over the
current name in the field you must drag over the name when you double
click. This can be done by clicking once in the field, then clicking
a second time in the far right of the field and holding and dragging
over the entire field(from left to right). When you type the name in
this field(now highlighted white) the characters do not appear on the
screen until you press return, then the name will appear. If you have
done this wrong the name that you tried to change to will most likely
be appended to whatever the name originally was in the field.(If
this happens try to follow this procedure again).
Now try changing some of the fields in this module. The only editable
fields are Rate($/M), AAF(Adaptation Adjusting Factor), EAF(Effort
Adjustment Factor), and EDSI/ADSI(Adapted/Equivalent Delivered
Source Instructions this field can be changed from the AAF field).
- Change the Rate($/M) field:
- Double click using the double clicking technique used in the name
module.
- Type in the monthly rate the developer working on that particular
module would be paid per month. This rate has to be between $0 and
$999,999. Example
$4000
- Change the AAF(Adaptation Adjusting Factor)
- Click in the AAF column on the module you want to change.
- Change some of the values in the pop-up window.
ADSI must be in a range of 2000 - 999,999 (ex. 4000 (this represents
lines of code))
% Design, % Code, and % Integration Modified represent the percent
of the code that has to be changed. This is used when you are going
to reuse modules from other projects. Note that if you make these fields
0 that means that the module will be reused and unchanged so the cost would
be $0.
- Change the EAF(Effort Adjustment Factor
These factors deal with the different attributes of the project and
are used as adjustment factors. They are:
- Required software reliability(RELY)
- This is a measure of how reliable the software has to be.
- Database size(DATA)
- This is a measure of how large the database has to be.
- Product complexity(CPLX)
- This is a measure of the complexity of the project.
- Execution time constraint(TIME)
- This is a measure of the constraints of processing time.
- Main storage constraint(STOR)
- This is a measure of any storage constraints.
- Virtual machine volatility(VIRT)
- This is a measure of how volatile the machine is.
- Computer turnaround time(TURN)
- This is a measure of the turn around time of the machine.
- Analyst capabilities(ACAP)
- This is a measure of the programmer's analyst capabilities.
- Applications experience(AEXP)
- This is a measure of the programmer's experience with the applications.
- Programmer capabilities(PCAP)
- This is a measure of the programmer's capabilities.
- Virtual machine experience(VEXP)
- This is a measure of the programmer's experience on the machine.
- Programming language experience(LEXP)
- This is a measure of the programmer's experience with the language
to be used for the program.
- Modern programming practices(MODP)
- This measures the flexability of the programming practices.
- Use of software tools(TOOL)
- This is a measure of the amount of software tools available to the
programmer.
- Required development schedule(SCED)
- This is a measure of the constraints placed on the programmer by the
developement schedule.
Just change some of these attributes using the +/- sections by the amounts
this will change the multiplication factors changing the results of the
cost equations.
- Note: The Fields of the Cost Drivers used in the EAF can be changed
in the Calibrate pull down window.
Look at the computed values on the module that you have created. The
fields are:
- Nominal Person-Month Development(NOM PM DEV)
- This column holds the calculated schedule estimate without
incorporating the adjusting factors.
- Actual Person-Month Development(ACT PM DEV)
- This column holds the calculated schedule estimate including
the adjusting factors.
- Productivity(PROD)
- This column contains the calculated result of the individual EDSI
divided by the calculated acutual scedule estimate in person-months.
This gives the estimated number of lines of code per person-month.
- Cost Column(Cost)
- This column contains the calculated extimate of the development
cost for a particular module.
- Instruction Cost Column(Inst Cost)
- This column contains the cost of each instruction. This figure is
calculated from the EDSI/Cost * Number of modules.
- Full-time Software Personnel(FSWP)
- This column houses the calculated estimate for the number of full-time
developers that would be needed to complete a module in the estimated
development time.
Also look at the totals of these columns that are displayed at
the bottom of the tool.
Now try looking at the Phase Distribution
Pull down the Phase Distribution window and look at the stats for a
module and for the project. These are broken down into columns for
displaying
percentages and totals for man months(MM). Notice that these stats
are broken up for the project and for each individual module. When
looking at a particular module you will be asked which module it is
that you would like the information on.
Here is where the formal tutorial ends. To exit the tool pull down the
file menu and choose exit. Warning messages will be displayed telling
you that you have not saved your data. Change directories to your account
(the same way you changed to load the information from my account)
then same or don't
save your work. Note that if you do save your work using the
save as command... When you go to the field at the bottom of the
pop-up window and click in it to insert the name of your project
no cursor appears. If you are not saving your work
just exit and have a nice day.
If you would like to find out
more about the USC COCOMO tool you should take the time out to look
at the other sections of it that were overlooked for time's sake. Here
are some things to do.
- Add more modules and try to map out the PCM.
- Take a Snapshot(off of the edit window) then change some of the
information in the
modules. Then compare it to the information in the snapshot.(An option
in snapshot)
- Change the Development Mode (Default is Organic) other settings are
Semi-detached and Embedded.
- Look at the Maintenance menu. This allows you to figure out the
cost of maintenance on the project for up to five years.
If you would like to download the software or find out more information
on the tool straight from the "horse's mouth" look at the
Cocomo site.