Module Identifier CI22120  
Module Title THE SOFTWARE DEVELOPMENT LIFE CYCLE  
Academic Year 2004/2005  
Co-ordinator Mr Rhys Parry  
Semester Semester 2 (Taught over 2 semesters)  
Other staff Professor Christopher J Price, Mr Rhys Parry  
Pre-Requisite Pass or exemption in Computer Science at Level 1, Available only to students following Internet Computing degree schemes.  
Course delivery Lecture   18 lectures  
  Seminars / Tutorials   Tutorial. Up to 24  
Assessment
Assessment TypeAssessment Length/DetailsProportion
Semester Exam2 Hours A2 Examination at end of Semester 1  25%
Semester Assessment A1 Course Work: Group project There is no External Resit available for the project part of the module.75%
Supplementary Exam2 Hours  25%
Further details http://www.aber.ac.uk/compsci/ModuleInfo/CI22120  

Learning outcomes

The major learning outcome of this module is that the student should:
1. be able to participate in an industrial scale project. (A1)

In addition, on successful completion of this module, students should be able to:
2. apply the elements of the software life cycles, contrast a range of life cycle models and choose appropriate models for a range of typical projects; (A2)
3. be able to apply software quality procedures and convince others of their value; (A1, A2)
4. be able to use version and configuration management and convince others of their value; (A1, A2)
5. produce the key deliverables in software life cycles. (A1)


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.

All students taking this module will be registered for Internet Computing degree schemes.

Long thin module. No lectures in Semester 2

The pastoral and general tutorial system for Year 2 Internet Computing students is administered through this module.

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:

Content

1. 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.

2. The Software Life Cycle - 3 Lectures
Description of the phases of a range of software life cycles (including the Waterfall, Prototyping, Extreme Programming and Spiral models) and the major deliverables and activities associated with each phase. Software process improvement.

3. Project Management - 2 Lectures
Planning and cost estimation. Progress monitoring. Team structure and team management.

4. Quality Management - 2 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).

5. Configuration Management - 2 Lectures
Baselines. Change control procedures. Version control. Software tools to support configuration management.

6. Requirements Engineering - 2 Lectures
The IEEE standard for requirements specifications. Validation of requirement by e.g., prototyping. Deficiencies in the traditional approach to requirements. Introduction to UML Use cases

7. Design - 3 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. State diagrams. Relevant UML notations: packages, sequence and activity diagrams, active objects.

8. Implementation and maintenance - 2 Lectures
Choice of language. Cutover. Types of maintenance. Maintenance process. Refactoring.

9. Testing - 1 Lecture
Testing strategies. Testing tools: static and dynamic analysers, test harnesses and test data generators, simulators. Performance testing. Regression testing. User documentation and training.

10. Tutorials
A weekly tutorial will be associated with this course. The tutorial will be used to organise group project activities and to discuss software engineering issues.

Reading Lists

Books
** Recommended Text
Ian Sommerville (2001) Software Engineering 6th Ed.. Addison Wesley ISBN 020139815-X
Roger S. Pressman (2000) Software Engineering: A practitioner's approach 5th Ed.. McGraw-Hill ISBN 0077096770

Notes

This module is at CQFW Level 5