The discipline of software engineering provides a number of techniques that aid the software developer (or development team) to construct reliable software. Testing, for example, is a technique to establish in an experimental way the reliability and robustness of software. Another way of validating a system is by means of correctness proofs, checking whether the program (design) meets its (formal) specification.

Software engineering perspectives

4

Additional keywords and phrases: testing, black-box methods, white-box methods, correctness proofs
slide: Software engineering perspectives

Another area in which the discipline of software engineering has made a contribution is in measuring the structural complexity of software. Such measures may be used as indicators, for example to estimate the time needed to develop a system or the cost involved in maintenance. In this chapter, we will explore to what extent and how these techniques may be incorporated in an object-oriented approach. Also, the outline of a formal framework for developing object-oriented software will be sketched, merging the ideas developed when studying object-oriented design and the insights coming from a software engineering perspective.