Computer Science, Prifysgol Cymru Aberystwyth University of Wales
C332(h)* - Advanced Software Engineering
Brief Description
The half unit introduces students to some advanced aspects of
software engineering, specifically formal methods and software
engineering environments
Aims, Objectives, Syllabus, Booklist
Further Details
- Number of lectures
- 22
- Number of seminars/tutorials
- 4
- Number of practicals
- 0
- Coordinator
- Dr. Fred Long
- Other staff involved
- Not yet known
- Pre-requisites
- C210, C220
- Co-requisites
- None
- Incompatibilities
- None
- Assessment
- Assessed coursework - 20%
Written exam - 80%
- Timing
- This half module is offered only in Term 1
Aims
This half unit aims to introduce students to two advanced
aspects of software engineering: the use of formal methods in software
specification (with an emphasis on the ideas involved, rather than the
formality); and software engineering environments and tool support
interfaces.
Objectives
On successful completion of this course students should
understand:
-
the problems of incompleteness, inconsistency and
ambiguity arising from traditional methods of software
specification;
-
the different approaches to formal specification;
-
the stages and processes involved in the development of a
software design using VDM;
-
the deficiencies of VDM and the attempts to overcome these
in some other formal specification methods;
-
the need for database support for project management and
software development;
-
the necessity for standard tool support interfaces;
-
the basic facilities of the tool support interface
PCTE;
-
the technical problems facing tool support interface
developers;
-
the current trends in software tool integration.
Syllabus
-
The Traditional Approach to Specification - 1 Lecture
-
Problems of incompleteness, inconsistency and ambiguity.
Practical problems (volume of paperwork, etc.).
-
Formal Specifications - 1 Lecture
-
The advantages and disadvantages of formal specification.
Algebraic and operational specifications.
-
VDM as a Specification Language - 5 Lectures
-
Introduction and history. The VDM specification language.
Data types in VDM. An example specification.
-
VDM as a Formal Development Method - 4 Lectures
-
Stages and processes in the development of a software design
using VDM. Data reification and operation decomposition.
-
Outstanding Problems and Other Methods - 1 Lecture
-
Formal specification of systems with concurrency.
Modularisation of formal specifications.
Safety and reliability issues.
Other specification languages, Z and GYPSY (briefly).
ANNA and SPARK.
-
Integration of Software Tools - 2 Lectures
-
Why integration is important. The dimensions of integration.
Why traditional operating systems are not good enough.
-
Integrated Project Support Environments - 4 Lectures
-
Database support for project management and software development.
Typical tools. Use of a database as a means of integration.
Other aspects of integration (e.g., the user interface).
Structure of an IPSE; Tool Builder as an example.
-
Tool Support Interfaces - 4 Lectures
-
The need for standard tool support interfaces. The issues
which such interfaces should address. Current standards (PCTE and CAIS).
Technical problems (granularity, wide area distribution).
Booklist
It is considered essential to purchase the following
-
C.B. Jones.
Systematic Software Development Using VDM.
International Series in Computer Science. Prentice-Hall, 2nd.
edition, 1990.
The following should be consulted for different approaches or for further information
-
I. Hayes, editor.
Specification Case Studies.
International Series in Computer Science. Prentice-Hall, 2nd.
edition, 1993.
-
J.M. Spivey.
The Z Notation: A Reference Manual.
International Series in Computer Science. Prentice-Hall, 2nd.
edition, 1992.
-
A.W. Brown, A.N. Earl, and J.A McDermid.
Software Engineering Environments: Automated Support for
Software Engineering.
The McGraw-Hill International Series in Software Engineering.
McGraw-Hill, 1992.
Version 2.1
Syllabus
Nigel Hardy Departmental Advisor
nwh@aber.ac.uk
Dept of Computer Science, UW Aberystwyth (disclaimer)