Module Identifier CS31310  
Academic Year 2006/2007  
Co-ordinator Mr Christopher W Loftus  
Semester Semester 1  
Other staff Mr Christopher W Loftus, Dr Frederick W Long, Dr Edel M Sherratt, Dr Lynda A Thomas  
Pre-Requisite CS21120  
Course delivery Lecture   22 Hours.  
  Seminars / Tutorials   2 Hours.  
  Practical   3 x 3 hour worksheets  
Assessment TypeAssessment Length/DetailsProportion
Semester Exam2 Hours  90%
Semester Assessment Worksheets  10%
Supplementary Assessment Supplementary examination will take the same form, under the terms of the Department's policy.  100%
Further details  

Learning outcomes

On successful completion of this module students should be able to:
demonstrate a critical appreciation of a range of software development methodologies, and their relative advantages and disadvantages.

reason about the impact of project context on choice of methodology.

demonstrate an in-depth knowledge of the practices that comprise the XP methodology.

undertake simple test-driven software development.

identify and then rectify code that requires refactoring.


Brief description

We look at development processes, techniques and technologies for constructing real operational software systems. We examine the spectrum of development methodologies available to software projects, from agile methodologies through to plan-driven methodologies. Students will learn about the advantages and disadvantages of various methodologies.


1. Introduction to module: 1 Lecture.

The lecture provides a road-map to the module, with a brief overview of main concepts and how they interrelate. Introduces the planning spectrum.

2. Overview of Extreme Programming (XP): 1 Lecture

13 practices of XP are overviewed.

3. XP project planning games: 2 Lectures, 1 Tutorial

Initial, release and iteration planning games. The eXtreme Hour Planning Game tutorial.

4. Pair programming practice: 1 Lecture

5. Test-driven development: 4 Lectures, 2 Worksheet

6. Refactoring: 3 Lectures, 1 Worksheet

De-oderising smelly code.

7. Feature-Driven Development: 2 Lectures

A more respectable agile methodology?

8. Anti-patterns: 2 Lectures

Striving not to repeat the mistakes of others.

9. Classes, Collaborations and Responsibilities (CRC) technique: 1 Lecture, 1 Tutorial

Finding classes, objects and their interactions through brain storming and role play

10. Unified Process Overview: 2 Lectures

11. Use-case diagrams: 1 Lecture

12. Agile vs plan-driven methodologies: 2 Lectures

We look at balancing agile and plan-based methodologies depending on project context.

Module Skills

Problem_solving Ability to reason about the clarity of software design and to improve such design through refactoring  
Research skills Students will be required to acquire further knowledge from journals and on-line sources  
Communication Students will practice communication skills during the tutorials and is a major concern within agile methodologies  
Improving own Learning and Performance The assessed coursework requires students to develop their understanding of issues associated with the module.  
Team work Team work is required during the tutorials and is of major concern within agile methodologies  
Information Technology The module is IT focused. Students will use computer tools to develop and run their applications  
Application of Number None, apart from simple planning estimates  
Personal Development and Career planning The module gives students a wider view of the computing industry and potential careers  
Subject Specific Skills Methodological skills, design skills, programming skills  

Reading Lists

** Recommended Text
Auer, Ken. (2002.) Extreme programming applied :playing to win /[by] Ken Auer, Roy Miller. 0201616408
** Recommended Consultation
Fowler, Martin (2000 (July 2002) Refactoring :improving the design of existing code /Martin Fowler ; with contributions by Kent Beck ... [et al.]. 0201485672
Kruchten, Philippe (Jan. 2004) The Rational Unified Process:An Introduction
Palmer, Stephen R. (2002.) A practical guide to feature-driven development /[by] Stephen R. Palmer and John M. Felsing. 0130676152
(c1998.) AntiPatterns : refactoring software, architectures, and projects in crisis /William J. Brown ... [et al.]. 0471197130
** Recommended Background
Stephens, Matt. (2003.) Extreme programming refactored :the case against XP /Matt Stephens and Doug Rosenberg. 1590590961


This module is at CQFW Level 6