Module Description

This module provides students with a working knowledge of modern software development techniques for large software systems gained through a series of lectures, a 6-week team project and hands-on laboratories.

Aims

The aim of this course is to provide students with a working knowledge of modern software development techniques for large software systems.

Learning Outcomes

Upon completion of this course students will be able to

1. Understand the issues involved in large-scale software development and how they can be managed with modern practices, techniques and tools
2. Make effective use of modern tools and techniques for the cooperative development of software including version control, ticketing systems, build tools, etc.
3. Make effective use of modern bug prevention and detection techniques as well as refactoring techniques.
4. Make use of modern practices and techniques for the effective development of software within teams

Syllabus

The course will focus on powerful technologies such as:

1. agile software development,
2. extreme programming
3. working effectively in teams,
4. revision control systems,
5. unit and acceptance testing,
6. integrated development environments,
7. build tools,
8. ticketing systems,
9. refactoring.