Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

31.5 A single development method? 389 programming language, one approach to testing, and so on. Today the software developer has a rich set of tools and methods to choose from. The choice will, of course, depend upon the nature of the project. One of the current debates is between the heavyweight methods and lightweight approaches. Heavyweight methods are heavily prescriptive – they specify in detail the steps to be taken and the documents to be produced. Lightweight methods are more pragmatic – they use methods and tools advisedly, as and when appropriate. Do not forget, also, that there are many legacy systems, written some time ago that were developed and documented using what are now antiquated methods and tools. These systems need maintaining, and so the methods that were used in their development live on. 31.5 ● A single development method? There is a variety of methods and tools on offer. At the present time many approaches – and many combinations of methods – are considered feasible. Is there a unique combination that will ensure success? We know that we need a package of methods to: ■ establish the feasibility of the system ■ elicit and record requirements ■ design the user interface ■ design the architectural structure ■ ensure that requirements are satisfied (validation) ■ test and debug ■ maintain the system ■ organize a team ■ plan the development (a process model). In choosing a set of methods, the individual characteristics and goals and the project must be taken into account. It is likely that a unique combination will be selected. There is no single best package. It is perhaps strange that, as with designing a motor car, we do not consider using different approaches for different parts of the system. Many software systems consist of qualitatively different parts, for example: ■ the human–computer interface ■ the database ■ the network software ■ the business logic and it seems reasonable that these different components are developed using different, appropriate approaches.

390 Chapter 31 ■ Assessing methods 31.6 ● Introducing new methods Suppose that it has been decided that a new method should be introduced into an organization or into a particular project. The first, alarming, thing to be prepared for is that there will inevitably be a temporary drop in productivity while people spend time becoming familiar with the method. So the initial experiences with any method will be negative; courage and patience are needed before any benefits appear. Perhaps the most important aspect of any new method is its effect on the people in the organization. In most organizations, there is a hierarchy, with the senior and more skilled, perhaps older, people in senior positions. A new method can pose a threat to these people. First, they may fear that they will find it impossible to learn or adapt to a new method. Second, they may see a new method as a criticism of the methods they have used successfully in the past. Third, a new method will mean that everyone is a novice again, so that their status may be eroded. It is generally agreed that new methods should be introduced one at a time. If too many new approaches are adopted at once (big-bang), it is difficult to see which of them are being effective. In addition, too many of the existing skills are made redundant, threatening morale. Summary The software engineer is faced with a bewildering number of available methods, techniques and tools. Before choosing, the first task is carefully to identify the specific goals of the project. Little hard data is currently available to allow comparison of methods. This is partly because of the difficulty in mounting experiments. Software metrics hold the promise for objective comparison of methods, but at the present time, evaluation of tools and methods is extremely difficult. This book has presented a menu of techniques, and made some assessment of those techniques, but it is impossible to provide completely comprehensive guidance for selecting items from the menu. The evaluation and comparison of methods is currently the subject of research, debate and fashion. Exercises •31.1 List each of the goals of software engineering (see Chapter 1). List all the techniques of software engineering. Draw up a table, with the goals as headings across the top of the page and with the tools and techniques down the left-hand-side. Place a tick at the places where a method contributes to a goal.

390 Chapter 31 ■ Assessing methods<br />

31.6 ● Introducing new methods<br />

Suppose that it has been decided that a new method should be introduced into an<br />

organization or into a particular project. The first, alarming, thing to be prepared <strong>for</strong> is<br />

that there will inevitably be a temporary drop in productivity while people spend time<br />

becoming familiar with the method. So the initial experiences with any method will be<br />

negative; courage and patience are needed be<strong>for</strong>e any benefits appear.<br />

Perhaps the most important aspect of any new method is its effect on the people in<br />

the organization. In most organizations, there is a hierarchy, with the senior and more<br />

skilled, perhaps older, people in senior positions. A new method can pose a threat to<br />

these people. First, they may fear that they will find it impossible to learn or adapt to a<br />

new method. Second, they may see a new method as a criticism of the methods they<br />

have used successfully in the past. Third, a new method will mean that everyone is a<br />

novice again, so that their status may be eroded.<br />

It is generally agreed that new methods should be introduced one at a time. If too<br />

many new approaches are adopted at once (big-bang), it is difficult to see which of<br />

them are being effective. In addition, too many of the existing skills are made redundant,<br />

threatening morale.<br />

Summary<br />

The software engineer is faced with a bewildering number of available methods,<br />

techniques and tools. Be<strong>for</strong>e choosing, the first task is carefully to identify the specific<br />

goals of the project. Little hard data is currently available to allow comparison<br />

of methods. This is partly because of the difficulty in mounting experiments.<br />

<strong>Software</strong> metrics hold the promise <strong>for</strong> objective comparison of methods, but at the<br />

present time, evaluation of tools and methods is extremely difficult.<br />

This book has presented a menu of techniques, and made some assessment of those<br />

techniques, but it is impossible to provide completely comprehensive guidance <strong>for</strong><br />

selecting items from the menu. The evaluation and comparison of methods is currently<br />

the subject of research, debate and fashion.<br />

Exercises<br />

•31.1 List each of the goals of software engineering (see Chapter 1). List all the techniques<br />

of software engineering. Draw up a table, with the goals as headings across the top<br />

of the page and with the tools and techniques down the left-hand-side. Place a tick at<br />

the places where a method contributes to a goal.

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

Saved successfully!

Ooh no, something went wrong!