Next: Software Testing
Up: Descriptions of Courses and
Previous: Professional Issues
Contents
Subsections
Here are links to the
course home page
and
the formal TQA
description.
This course provides an introduction to the design and implementation
of software systems using object oriented techniques. The techniques
we consider are oriented to creating component based designs. The
course will review basic object oriented techniques and how they
support the creation of component based designs. We also
consider the high level modelling of systems as a means of supporting
the Software Engineering process. Here we study the Unified Modelling
Language (UML), which provides programming language independent
notations for design.
the following prerequisites are
covered in CS2: Basic knowledge of Software Engineering and
Object-Orientation concepts; Java programming.
We briefly consider how taking objects and components as a central
organising theme influences the Software Engineering process. A number
of case studies of ``classic'' software-related failures will be used
as illustrative examples throughout the course. We also briefly
consider the arguments for and against insisting upon any
specific approach to Software Engineering, and those for and against
object orientation in particular.
- SOFTWARE DEVELOPMENT PROCESS:
- Requirements analysis
- Specification
- Validation
- Static verification (ie, Testing; Formal verification is studied
in the module Functional Programming and Specification)
- Design and Implementation: including software architecture, and
software integration techniques
- Maintenance and evolution
- PROJECT MANAGEMENT AND PLANNING
Both the development process and project management and planning will be
illustrated and utilised throughout the practical work
Here we outline the main phases of an object oriented development:
analysis, design and implementation. Each of these phases is
supported by various diagrammatic notations embodied in UML. We
consider a small subset of the full collection.
- ANALYSIS: A brief introduction to the use-case diagram as a
means of analysing the external behaviour of systems from various viewpoints.
- DESIGN: Here there are various diagrams aimed at
capturing the static and dynamic structure of systems. We will study:
- Class diagrams: these describe the static structural relationship
between object classes.
- Behaviour diagrams, these include:
- state diagrams,
- activity diagrams,
- sequence diagrams,
- collaboration diagrams.
- IMPLEMENTATION: We provide a brief overview of the
implementation process, considering:
- component diagrams, and
- deployment diagrams
Exercises, reports and student presentations taken as group work in
the tutorials.
References:
*** Bennett, Skelton and Lunn UML, Schaum's Outline
Series, McGraw-Hill, London, 2001. Access to this text is a necessity.
** Sommerville Software Engineering (5th Edition),
Addison-Wesley.
** Various useful Web resources are given on the course homepage.
Next: Software Testing
Up: Descriptions of Courses and
Previous: Professional Issues
Contents
Colin Stirling
2006-01-05