|Prerequisites||CS995 and CS994|
|Contact||Lectures: 20 | Tutorials: 0 | Labs: 40
Assignment: 70 | Self Study: 70
|Assessment||Lab exercises (10 x 2%) | Group Project Report (30%) | Individual Project Report (50%)|
|Resit||The resit assessment will be an individual assignment (100%)|
|Lecturer||Mr William Wallace|
This module aims to:
- Develop an understanding of the software development life-cycle;
- Develop an understanding of the tools used to develop large scale software;
- Develop an understanding of developing software in a group environment;
- Develop an understanding of how software engineers operate in industry;
- Develop an understanding of how the tools are used to control the complexity of developing large software in groups.
After completing this module participants will be able to:
- Understand the key components involved in designing, building and testing a software system;
- Gain experience of the software development processes typically used within industry;
- Be familiar with the main tools and technologies used to support the development and management of software systems;
- Understand how to work as part of a team to design, build, test and deliver a software system.
- The importance of users and capturing and communication requirements (e.g. via use cases);
- Principles of software architecture and design; key elements of UML and design patterns;
- Implementation considerations: coding practices, idioms, implementation-related design principles;
- Testing: principles and supporting frameworks (e.g. n- Unit);
- Source code control and build tools (e.g. Git, Maven…);
- Software development processes (primarily Agile development methodology).
* This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.