Approaches to software development
Approaches to software development

Start this free course now. Just create an account and sign in. Enrol and complete the course for a free statement of participation or digital badge if available.

Free course

Approaches to software development

1.2 The nature of software

Software is often spoken of as being invisible or intangible, and hence is thought of as being different from physical artefacts, which can be measured, touched, broken, and so on. This invisibility can lead to unrealistic expectations concerning the capabilities of software, which in turn may contribute to some of the myths that surround software and its development, for example, that accommodating change is straightforward.

Software can, and does, contain errors. There are three important characteristics of software that affect its development and the likelihood of errors:

  • Malleability. Software is easy to change (programmers are often tempted to tweak their code). This malleability creates a constant pressure for software to be changed rather than replaced. Every change introduces the possibility of new errors.
  • Complexity. Software is often complex. Complexity can usually be recognised, but it is less easy to define. One item of software can be considered more complex than another if it requires more explanation. Part of that complexity arises from the potential variety of pathways between the components of a system. The number of errors is likely to depend on the complexity of a system.
  • Size. It is likely that there will be more errors in a large piece of software than in a small one.

You have already encountered an aspect of the intangible nature of software if you have programmed in, for example, Java. The instructions and statements that you write in Java are translated into bytecode, which you do not see.

You might think that, because it is ‘invisible’, software is inherently more difficult to develop than a physical artefact. However, various techniques can be used to model software and its behaviour – just as an industrial designer uses geometric abstractions and other tools to model a physical product before it is built.

Activity 2 Problems with software systems

Timing: Allow approximately 15 minutes.

For each of the three characteristics of software mentioned above, explain why errors might arise in a piece of developed software.


Malleability. As change is easy to make, often changes are introduced without thorough consideration of the full consequences of each new change introduced.

Complexity. The more complex a piece of software becomes, the more chances there are of a change affecting other parts of the software.

Size. The greater the number of lines of code in a piece of software, the greater the number of likely errors.


Take your learning further

Making the decision to study can be a big step, which is why you'll want a trusted University. The Open University has 50 years’ experience delivering flexible learning and 170,000 students are studying with us right now. Take a look at all Open University courses.

If you are new to University-level study, we offer two introductory routes to our qualifications. You could either choose to start with an Access module, or a module which allows you to count your previous learning towards an Open University qualification. Read our guide on Where to take your learning next for more information.

Not ready for formal University study? Then browse over 1000 free courses on OpenLearn and sign up to our newsletter to hear about new free courses as they are released.

Every year, thousands of students decide to study with The Open University. With over 120 qualifications, we’ve got the right course for you.

Request an Open University prospectus371