Advanced Computer Science: Software Engineering [MSc]
Software Engineering is a well-established, central part of Computer Science, and concerned with the design and use of techniques to support humans to build software systems that are reliable, adaptable, usable, maintainable, etc, despite the fact that they are usually developed by large groups of people with different ideas, conceptualisations, or working styles, and against a tight schedule and possibly conflicting or unclear requirements. The understanding and mastering of these techniques is essential both for people who are part of this group and for those managing such a group or project.
The Software Engineering pathway combines two themes of the same name, Software Engineering 1 & 2. These themes covers both an overview of existing approaches to Software Engineering, and two particular approaches at the forefront of Software Engineering research and practice; Pattern-based and Component-based Software Development.