|Delivery Type||Delivery length / details|
|Seminars / Tutorials||Up to 2 hours.|
|Practical||Up to 4 x 3 hour worksheets|
|Assessment Type||Assessment length / details||Proportion|
|Semester Exam||2 Hours Written Exam||90%|
|Supplementary Assessment||Supplementary examination will take the same form, under the terms of the Department's policy.||100%|
On successful completion of this module students should be able to:
1. demonstrate a critical appreciation of a range of software development methodologies, and their relative advantages and disadvantages.
2. reason about the impact of project context on choice of methodology.
3. demonstrate an in-depth knowledge of the practices that comprise the several agile methodologies.
4. undertake simple test-driven software development.
5. identify and then rectify code that requires refactoring.
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.
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
12 core and two supplementary 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, 2 Worksheets
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. Unified Process Overview: 1 Lecture
10. Model Based Architecture Overview: 2 Lectures
12. Agile vs plan-driven methodologies: 2 Lectures
We look at balancing agile and plan-based methodologies depending on project context.
|Skills Type||Skills details|
|Application of Number||None, apart from simple planning estimates|
|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.|
|Information Technology||The module is IT focused. Students will use computer tools to develop and run their applications|
|Personal Development and Career planning||The module gives students a wider view of the computing industry and potential careers|
|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|
|Subject Specific Skills||Methodological skills, design skills, programming skills|
|Team work||Team work is required during the tutorials and is of major concern within agile methodologies|
Reading ListRecommended Text
Auer, Ken. (2002.) Extreme programming applied :playing to win /[by] Ken Auer, Roy Miller. Primo search Recommended Consultation
(c1998.) AntiPatterns : refactoring software, architectures, and projects in crisis /William J. Brown ... [et al.]. Primo search Fowler, Martin (2000 (July 2002) Refactoring :improving the design of existing code /Martin Fowler ; with contributions by Kent Beck ... [et al.]. Primo search Kruchten, Philippe (Jan. 2004) The Rational Unified Process:An Introduction Primo search Palmer, Stephen R. (2002.) A practical guide to feature-driven development /[by] Stephen R. Palmer and John M. Felsing. Primo search Reference Text
Cohn, Mike (c2006.) Agile estimating and planning /Mike Cohn. http://www.loc.gov/catdir/toc/ecip0517/2005023257.html Prentice Hall Professional Technical Reference Recommended Background
Stephens, Matt. (2003.) Extreme programming refactored :the case against XP /Matt Stephens and Doug Rosenberg. Primo search
This module is at CQFW Level 6