Description:In this module we present an engineering approach to the development of
software systems – a software engineering approach. This means we pay
particular attention to issues of software quality, in terms of both product
(what is built) and process (how we build it).
The material is organised in a distinctive way. We adopt an object-oriented
approach to software development and assume you are familiar with the basic
concepts of objects. This approach uses a fairly standard set of development
techniques. We take a broad view, and in most units of this module these
techniques are discussed fairly independently of exactly where and when they
would be used. In parallel with this, however, Units 4, 8, and 12 feature a
running case study that demonstrates how the techniques might be applied in
practice.
There has always been debate in the computing industry about just how useful
any particular development technique is. We believe that the techniques that
have been introduced over the last 30 years or so, and many others currently
being researched, are important because they address fundamental issues
concerning software quality. You are probably already familiar with some of
the techniques used in this module. Studying these techniques is more about
how to use them to address the quality issues of what you are developing and
how you are developing it rather than about how to use them in practice.
In this module you will see a precise way of applying techniques, but we will
also discuss, in parallel, a more light-weight approach to software
development. You will become familiar with the purpose of utilising these
techniques and will also develop an understanding of when their systematic
use may or may not be appropriate. With experience you will be able to make
decisions on which is the right combination of techniques for a particular
project.