Software Engineering with Objects and Components 2
Syllabus
Lecturer
Dave Robertson, dr@daied.ac.uk, room E13, 80 South Bridge,
extn 502079
Last updated December 2000
Aims and objectives
The aim of this module is to introduce you to key concepts
in the design of large scale software systems. Although
coloured by object orientation (hence the module title) many of
the ideas which we discuss are useful whatever the programming
paradigm.
Having completed the course, you should:
- Have some experience of working in a team faced with the
high-level design of a large software system.
- Understand the basics of planning software projects.
- Be aware of common threats to projects and how to address
them.
- Have a repertoire of high-level architectural
patterns.
- Be alert to the different approaches being developed for
modern software engineering.
Syllabus
The module covers the following topics (not necessarily in
chronological order):
- Controlling software design
- Design patterns
- Architectural patterns
- Refactoring
- The Unified Software Development Process
- Extreme programming
- Open source design
- Planning a software project
- Estimating size
- Configuration management and defect tracking
- Verification, validation and testing
- Project risk reduction patterns
- Software standards
- Cost versus benefit
- Design and code reviews
- Product and process focus
- Requirements engineering
- Leadership and teamwork
- Resilient (versus brittle) engineering
Activities
Eighteen hours of lectures. A group-based design practical
(split into sections) runs throughout the module.
Assessment
70% of the final mark is from an exam. 30% is from the
design practical.
Context
There are no prerequisites for this module, although
Software Engineering with Objects and Components 1 is a
worthwhile companion module.
Readings
You will be provided with copies of excerpts from relevant
papers and books.