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.

28 Chapter 2 ■ The tasks of software development<br />

2.5 ● Hacking<br />

There is one notorious approach to software development, called hacking. There are<br />

actually two types of hacker:<br />

■ the malicious hacker who breaks into computer systems, often using the internet, to<br />

commit fraud, to cause damage or simply <strong>for</strong> fun<br />

■ the programmer hacker, who uses supreme skills, but no obvious method, to develop<br />

software.<br />

It is the second of these meanings that we will use in this book. Hacking is often disparaged<br />

in software development circles because it appears to be out of control.<br />

However, the display of skill also earns hackers praise. Hackers also obviously enjoy<br />

what they do and relish their skills. We will return to the subject of hacking in the chapter<br />

on open source development.<br />

Summary<br />

We have identified a list of tasks that are part of software development. All of them<br />

must be carried out somehow during development.<br />

A process model is a strategic plan <strong>for</strong> the complete process. Different process models<br />

offer alternative suggestions as to exactly how and when tasks are carried out. As<br />

we shall see, in some process models all of the stages are visible, while in other<br />

process models some of the stages vanish or become part of some other stage.<br />

A methodology is a complete (often proprietary) package of methods, tools and<br />

notations.<br />

Hacking is an approach to development that is highly skilled but ill-disciplined.<br />

• Exercises<br />

2.1 Discussion question on validation and verification: What do the following mean, what is<br />

the difference between them, and which is better?<br />

■ a program that works (but doesn’t meet the specification)<br />

■ a program that meets the specification (but doesn’t work).<br />

2.2 Discussion question on validation and verification: What do the following terms mean<br />

and how do they relate to one another (if at all):<br />

■ correctness<br />

■ working properly

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

Saved successfully!

Ooh no, something went wrong!