Module Descriptor School of Computer Science and Statistics
|Module Name||Software Engineering|
|Module Short Title||N/a|
|Semester Taught||First Semester|
Lecture hours: 3
Total hours: 3
|Module Personnel||Dr Stephen Barrett|
This course provides students with a solid grounding in various aspects related to building large software systems.
The overall aim of this course is for students to learn the fundamental skills for building large, software systems. This entails (i) to recognise the general software lifecycle and its stages from domain analysis to maintenance, (ii) to analyse software in the problem domain, (iii) to identify the fundamental approaches to managing software projects and teams, (iv) to distinguish the roles of stakeholders in a software project in general and in software teams in particular, (v) to recognise architectures for building large-scale distributed software systems.
This course covers various aspects related to building software systems ranging from the use of software lifecycle models, to project management, to large-scale software architectures. Specifically, software lifecycle models, including variations of the waterfall and spiral models as well as extreme programming and agile, are introduced along with concepts that are relevant to the specific model stages. These concepts include O-O software design, and domain analysis, requirements and specification analysis, testing and debugging, and version control. Moreover, strategies for managing large software projects and their contracts as well as project teams are presented and contrasted.
When students have successfully completed this module they will be able to:
|Recommended Reading List|
|Academic Year of Data||2017/18|