21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

30.4 ● Selecting tools and methods<br />

30.4 Selecting tools and methods 375<br />

You are the manager of a software development project. What tools and methods would<br />

you select <strong>for</strong> use? How can you go about deciding whether a particular tool or method<br />

is worth using?<br />

Chapter 31 looks at ways of assessing techniques, but the results of studies are not<br />

generally helpful.<br />

Some development methods are inapplicable to particular domains and can there<strong>for</strong>e<br />

be disregarded. For example, prototyping is not usually of any use in developing scientific<br />

or mathematical software. Again, data structure design is only really applicable <strong>for</strong><br />

serial file processing and it would be difficult or impossible to apply it to scientific programming<br />

or to process control.<br />

The customer may demand the use of particular methods. For example, a military<br />

client may require the use of Ada in conjunction with <strong>for</strong>mal specification.<br />

Any software development organization has expertise in particular tools and methods.<br />

It also has its own standards and procedures. These are huge investments. Thus, a project<br />

manager within an organization must usually adhere to local methods and standards.<br />

If there is scope to choose the techniques, a next step is to establish a checklist of<br />

requirements and criteria. These must reflect the nature of the software to be developed,<br />

the customer and the organization developing the software. How important are<br />

such factors as cost, reliability, delivery date, ease of maintenance?<br />

When evaluating a technique, a generic checklist of criteria that can be used includes<br />

the following questions:<br />

■ what are its special features and strengths?<br />

■ what are its weaknesses?<br />

■ what is its philosophy/perspective?<br />

■ is it systematic?<br />

■ can the technique be used in this application area?<br />

■ what is the extent of tool support?<br />

■ what is the training time <strong>for</strong> the people who will use the method?<br />

■ what level of skill is required by the people using the method?<br />

■ does the method lead to maintainable software<br />

■ does the method ensure that the software will meet per<strong>for</strong>mance targets?<br />

■ what is its productivity?<br />

■ how good is the reliability of the software produced with this technique?<br />

■ is good documentation automatically produced?<br />

■ is the method enjoyable to use?<br />

If the decision is taken to introduce a new method, training ef<strong>for</strong>t and time will be<br />

needed. Training costs typically include buying training and the time that developers spend

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!