Software Engineering
AIMS
The course is intended to develop an understanding of the problems
associated with the development of significant computing systems
(that is, systems that are too large to be designed and developed
by a single person, and are designed to be used by many users) and
to appreciate the techniques and tools necessary to develop such
systems efficiently, in a cost-effective manner.
LEARNING OUTCOMES
At the end of the course, the student is expected to realise the
problems involved in designing and building significant computer
systems; understand the need to design systems that fully meet the
requirements of the intended users; appreciate the need to ensure
that the implementation of a design is adequately tested to ensure
that the completed system meets the specifications; be fully aware
of the principles and practice of an O-O approach to the design
and development of computer systems; be able to apply these
principles in practice.
OUTLINE SYLLABUS
Part 1: The Software Lifecycle (3 weeks)
- Overview: what is Software Engineering; why is it needed?
Software Life Cycle.
- Requirements Analysis and specification; functional and
non-functional requirements etc.
- Design methods - properties of desirable design methods.
- Validation and testing.
- Software project management.
Part 2: Formal Speciification (4 weeks)
- Intro to formal methods - advantages and disadvantages.
- Sets, functions, relations, sequences, and bags.
- Z schemas.
- Case studies.
Part 3: UML (3 weeks)
- Intro to UML; Object Oriented Analysis and Design Methods;
- Use cases;
- Object diagrams;
- Collaboration diagrams etc.
COURSEWORK
Deadline: Monday 4 December 2000.
A description of the assessment is available in
postscript or
pdf format.
EXERCISE SHEETS
A number of exercise sheets have been prepared in order to help you
understand the course. You should ensure that you are able to
successfully carry out all these:
WWW RESOURCES
Z:
UML:
RECOMMENDED TEXTS
The recommended course text is:
- Ian Sommerville. Software Engineering (6th Edition) .
Addison Wesley.
If you plan a career as a programmer of software developer, then this
text is worth its weight in gold! Another good general text on
software engineering is:
- R. S. Pressman. Software Engineering: A Practitioner's Approach.
McGraw-Hill.
For the Z part of the course, the best general text is:
- A. Diller. Z: An Introduction to Formal Methods.
Wiley.
For the UML part of the course, the best general text is:
- G. Booch, J. Rumbaugh, and I. Jacobson.
The Unified Modelling Language User Guide.
Addison Wesley, 1999.
If you plan to take up object-oriented development se4riously, then
this book is well worth having.
ASSESSMENT WEIGHTINGS
- 25% continuous assessment
- 75% written examination
LECTURE SLIDES
Lecture slides are provided in two formats: PDF and PostScript, with
PDDF listed first, then PostScript.
PDF Format (for Adobe Acrobat)
PostScript Format