| || |
by: Tony Rollo
The COSMIC Method has been reported on in our newsletter in the past and many of our readers have some familiarity with the basic concepts. However, you may be interested in exploring the use of COSMIC based estimation in a real-time and embedded systems context.
In order to illustrate this I have chosen to use a simple embedded system, which also has a real time element. The system I will examine is a toy telephone (figure 1). This is quite a sophisticated toy in that it comes with two telephones and a small network box. This case study was published in JSP&JSD the Jackson Approach to Software Development, IEEE Computer Society Press 1989.
The toy telephone has to respond to several user-generated stimuli which include:
The telephone must also provide stimuli to, and respond to stimuli from, the telephone network such as:#
This is managed by the use of three software components, 'Telephone', 'Telephone Call' and 'Action Generator'. Essentially the telephone component communicates its state to the telephone call object, which stimulates the action generator as required. For incoming calls the action generator stimulates the telephone as appropriate. The stimuli to telephone call object are therefore a subset of the telephone stimuli, and include:
To illustrate the COSMIC size let us take a simple functional process as it affects the telephone object, which forms the HCI layer and is sized separately from the other components when we are sizing for the purpose of estimating the project size. NB it is important to remember the viewpoint, we are sizing the telephone component as a subsystem of the system NOT from the viewpoint of the user which would be a very much more abstract view.
STARTOWNCALL - lifting the handset triggers this and the telephone object communicates this fact to the telephone call object, requests a dial tone from the tone generator, which is sent directly to the handset.
The diagram above shows the entries, exits and writes involved in this functional process, which contributes 7 COSMIC functional size units or Cfsu's.
Proceeding in this manner we find that the total size of the telephone component is 67 Cfsu's.
So where does that get us?
In order to come up with an estimate we ideally require data from the same development environment that is going to construct this component. In the event that we have no such information, we must use that which we have, and accept a wider range of possible estimates than we might prefer. Remember when this component is constructed, record the actual size and effort so we can make a more precise estimate the next time.
For now, we have the data available from the COSMIC field trials so let us use that.
The COSMIC Field Trials industry data shows:
Using the data, we get as our basic estimate:
The data also shows that:
So we can predict likely phase effort of:
This is a relatively small system so we assume an average team size of 4 persons. Duration = effort/staff, so the estimates for duration will be:
Regression formula for duration given in the COSMIC Field Trials report presented at FESMA 2000 in Madrid gives a duration of 4.1 months. So by using either a regression formula or median values we obtain a very similar estimate.
I have used industry data. However, estimation can be greatly improved if you collect your own - at least the effort, duration by phase and size. You should also categorise your projects by factors which influence productivity. ISBSG suggests these factors - team size, language, project type. What you are trying to do is collect historical data, which can be matched to the project you are trying to estimate, and is both reliable and relevant. You can make good estimates with very little information if the data matches your project.
|GIFPA Ltd. 2016|