Module Identifier CS31310  
Module Title AGILE METHODOLOGIES  
Academic Year 2005/2006  
Co-ordinator Mr Christopher W Loftus  
Semester Semester 1  
Other staff Mr Christopher W Loftus, Dr Frederick W Long, Dr Lynda A Thomas  
Pre-Requisite CS21120 or equivalent  
Co-Requisite None  
Mutually Exclusive None  
Course delivery Lecture    
  Seminars / Tutorials    
  Practical   3 x 3 hour worksheets  
Assessment
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 http://www.aber.ac.uk/compsci/ModuleInfo/CS31310  

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.

Aims

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.

Content

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: 3 Lectures, 1 Worksheet

6. Refactoring: 3 Lectures, 1 Worksheet

De-oderising smelly code.

7. Feature-Driven Development: 3 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: 1 Lecture

11. Use-case diagrams: 2 Lectures, 1 Worksheet

12. Agile vs plan-driven methodologies: 3 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

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

Notes

This module is at CQFW Level 6