A procedural codeoriented approach

The previous approach would be useful at the design stage of a project and where a procedural programming language is not the primary vehicle for development. However how could you estimate the effort to develop an individual software module using a procedural language? An approach might be based on the following steps.

/. Envisage the number and type of programs in the fined system This is easiest where the system is of a conventional and well understood nature. Most information systems are built from a small set of system operations, such as insert, amend, update, display, delete, print. The same principle should equally apply to embedded systems, albeit with a different set of primitive functions.

2. Estimate the SIjOC of each identified program

'Hie estimator must have a particular implementation language in mind for this step.

One way tojudge ihe number of instructions likely to be in a program is to draw up a program structure diagram and to visualize how many instructions would be needed to implement each identified procedure. The estimator might look at existing programs that have a similar functional description to help in this process.

Where programs for an information system are similar (for instance*, they are data validation programs) then the number of data item types processed by each program is likely to be the major influence on size.

J. Estimate the work content, taking into account complexity and technical difficulty

The practice is to multiply the SLOC estimate by a factor for complexity and technical difficulty. This factor will depend largely on the subjective judgement of the estimator. For example, the requirement to meet particular highly constrained performance targets can greatly increase programming effort.

A weighting can be given when there is uncertainty, for example about a new technique used in particular module, but this should not be excessive. Where there is a large amount of uncertainty then specific measures should be taken to reduce this by such means as the use of exploratory prototypes.

4. Calculate the work-days effort

Historical data can be used to provide ratios to convert weighted SLOC to effort. These conversion factors are often based on the productivity of a 'standard programmer* of about 15-18 months of experience. In installations where the rale of turnover is lower and the average programmer experience is higher this might be reflected in the conversion rate employed.

Note that the steps above can be used to derive an estimate of lines of code that can be used as an input to one of the COCOMO models, which are now about to be described.

Function point analysis Mark II is also based on the »dea that the number of data item types processed influences program size.

See Chapter 4 for a discussion of prototypes.

Draw up an outline program structure diagram for a program to do the processing Exercise 5.8 described in Exercise 5.7, which sets up customer records, l or each box on your diagram, estimate the number of lines of code needed to implement the routine in a third generation language such as Cobol.

Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook


Post a comment