Computer Science, Prifysgol Cymru Aberystwyth University of Wales
CS22110 (1995-96 session)
The Software Development Lifecycle
Brief Description
The objectives of the lecture course are first to introduce
students to the best traditional practices for the specification,
design, implementation, testing and operation of large software
systems; and second to provide a framework for the more detailed
material on design which is taught in other courses. The practical
work is a group project.
Long thin module. No lectures in Semester 2
Aims, Objectives, Syllabus, Booklist
Further Details
- Number of lectures
- 18
- Number of seminars/tutorials
- 4
- Number of practicals
- 0
- Coordinator
- Dr. Fred Long
- Other staff involved
- Not yet known
- Pre-requisites
- Pass or exemption in Computer Science at Level 1 or CS10310 by
arrangement with the department
- Co-requisites
- None
- Incompatibilities
- None
- Assessment
- Assessed coursework - 100%
- Timing
- This module extends over both Semester 1 and Semester 2
Aims
This module aims to introduce students to the basic principles of
software engineering and to give them experience of developing
a software system in a team. Specifically, it aims to:
-
introduce students to the best traditional practices for
the specification, design, implementation, testing and operation of
large software systems;
-
provide a framework for the more detailed material on
design which is taught in other courses;
-
involve students in the development of a piece of software
which approximates as closely as possible in the university
environment the software development conditions found in
industry.
Objectives
On successful completion of this module students should:
-
understand the approach and obligations of the
professional engineer and the analogies between software and other
branches of engineering;
-
have an appreciation of the software life cycle, and the
management issues involved in software development;
-
be aware of the need for quality assurance and know how it
is applied in the software industry;
-
understand the concept of configuration management and be
able to use the UNIX tools sccs and make;
-
be able to produce the key deliverables of the software
life cycle;
-
have an appreciation of the use of CASE tools in software
engineering.
Syllabus
-
Introduction - 1 Lecture
-
The approach and the obligations of the professional engineer.
Software as an engineering artifact. Analogies between software and other
branches of engineering.
-
The Software Life Cycle - 2 Lectures
-
Description of the phases of the software life cycle and the major
deliverables and activities associated with each phase.
-
Project Management - 2 Lectures
-
Planning and cost estimation. Progress monitoring. Team structure
and team management.
-
Quality Management - 3 Lectures
-
Validation, verification and testing. Quality plans.
Walkthroughs, code inspections and other types of review.
Role of the quality assurance group. Standards (international,
national and local).
-
Configuration Management - 2 Lectures
-
Baselines. Change control procedures. Version control.
Software tools to support configuration management: `sccs' and `make'.
-
Requirements Specification - 2 Lectures
-
The IEEE standard for requirements specifications.
Validation of requirement by e.g., prototyping.
Deficiencies in the traditional approach to requirements.
-
Design - 2 Lectures
-
Outline (architectural) design and detailed design. Use of
abstraction, information hiding, functional and hierarchical
decomposition at levels higher then the individual program.
Contents of design documentation.
[Note that both
CS23110
and CS27220 contain more detailed
coverage of design methods.]
-
Implementation and Testing - 2 Lectures
-
Importance of suitable programming languages and a good support
environment. Testing strategies. Testing tools: static and
dynamic analysers, test harnesses and test data generators,
simulators. Performance testing. Regression testing.
User documentation and training. Cutover. Post-implementation reviews.
-
Tools - 2 Lectures
-
How CASE tools can aid the software engineer. Upper and lower CASE.
Meta CASE tools. The capability maturity model.
Booklist
It is considered essential to purchase the following
-
Ian Sommerville.
Software Engineering.
Addison Wesley, 4th edition, 1992.
The following should be consulted for different approaches or for further information
-
H. van Vliet.
Software Engineering: Principles and Practice.
John Wiley and Sons, 1993.
-
S.L. Pfleeger.
Software Engineering.
Macmillan, 2nd edition, 1991.
-
V. Berzins and Luqi.
Software Engineering with Abstractions.
Addison Wesley, 1991.
-
Ian Sommerville and R. Morrison.
Software Development with Ada.
Addison Wesley, 1987.
This book includes material which students will find useful in
connection with the design phase of the group project.
Version 4.2
Syllabus
John Hunt Departmental Advisor
jjh@aber.ac.uk
Dept of Computer Science, UW Aberystwyth (disclaimer)