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:
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.
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.
OpenLearn - Approaches to software development Except for third party materials and otherwise, this content is made available under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Licence, full copyright detail can be found in the acknowledgements section. Please see full copyright statement for details.