What you will study
You will study state-of-the-art concepts in software engineering and will focus on the fundamental concepts and principles of systems analysis, design, implementation and testing. The course focuses on the cost-effective development of high-quality software. You will also have an opportunity to improve your practical skills so that you can plan and conduct complex systems development projects to meet customer needs and integrate software solutions into an evolving business environment.
The Software Engineering course can be combined with Management Studies enabling you to set your technical knowledge in a management context and enable you to work effectively with business managers to develop systems for business advantage. An understanding of the business and management context is a key skill employers look for and essential for those aiming to set up their own business.
The full MSc course consists of an induction programme, four taught modules, and project dissertation. Please note that this is an indicative list of modules and is not intended as a definitive list.
For a student to go on placement they are required to pass every module first time with no reassessments. It is the responsibility of individual students to find a suitable paid placement. Students will be supported by our dedicated placement team in securing this opportunity.
Software Engineering MSc modules
Core modules
Agile Project Development
30 credits
This core module focuses on various approaches to agile development and deals with agile project and risk management, techniques, documentation and testing.
On successful completion of the module, you will be able to:
- Critically analyse and explain the concepts, strengths, limitations and suitability of agile development techniques.
- Develop appropriate use of project management qualitative techniques within an agile framework, such as feasibility study, planning, control and estimating, risk management and configuration management and quantitative techniques such as PERT and CPN.
- Apply management and team-building techniques to appropriately managing an information systems development project.
- Select and apply object oriented development techniques within an agile development environment.
- Critically discuss social and professional issues associated with information systems project and risk management.
- Manage the development of a system by applying an agile framework.
Software Architectures and Programming Models
30 credits
This core module aims to provide a strong theoretical and practical skills and techniques necessary to build high quality software architecture and system models. This module includes concept of software architecture as part of software design and reuse which can be viewed as components and interfaces. Practical aspects of service-oriented and component-based technologies, and the corresponding programming models and paradigms will be covered.
On successful completion of the module, you will be able to:
- Critically analyse architectural styles of software systems and evaluate the role of software architecture in the design and evolution of software.
- Apply the principles of software architecture construction, particularly using component- and service-oriented programming.
- Evaluate the benefits of software architectures and their corresponding programming paradigms in terms of software quality factors such as reusability, maintenance and extendibility.
- Apply technical proficiency in the component and service oriented analysis and design.
- Evaluate the strengths and weaknesses of service-oriented and component technologies.
- Build a complex business application that satisfies in architectural design using a service-oriented component technology.
Project Dissertation
60 credits
This module constitutes the major individual piece of work of the Masters Programme where the student carries out a project involving independent critical research, design and implementation (where applicable).
On successful completion of the module, students will be able to:
- Select, justify and use effectively the research methods and techniques appropriate for particular cases in order to carry out a literature search and an independent work of research
- Critically identify the need to position their research in the wider academic or business context and structure the dissertation format to agreed conventions
- Plan, manage and critically evaluate the project using the techniques and tools needed in order to bring it in successfully on time and within resourcing limits
- Identify and critically analyse real-world problems or knowledge gaps to which academic concepts and methods can be realistically applied to improve or resolve the problem situation
- Apply skills to show an ability to engage in academic and professional communication with others in their field through report and presentation
- Present critical awareness in applying appropriate legal, social or ethical obligations and when required, respond to the financial and other constraints of a corresponding business environment.
Software Quality Engineering
30 credits
Software Quality Engineering
This module aims to provide a systematic view of principles in software quality engineering and the formal theories and practical techniques involved in software quality assurance and software testing. The module will cover what software quality means and to how to achieve high quality in software developments.
On successful completion of the module, you will be able to:
- Describe the concepts and terms defined in software quality assurance, and the metrics together with related industrial standards for software evaluation.
- Explain the functions and importance of software quality assurance in the context of software development lifecycle management.
- Analyse the benefits and pitfalls of applying software quality assurance and testing plans in different software development contexts.
- Compare, evaluate and select appropriate tools for different software processes to achieve high quality software developments.
- Develop software quality assurance and testing strategies and plans for given projects.
Optional modules
User Experience Design (Systems)
30 credits
This module focuses upon the usability testing, detailed design and prototyping of single-user interaction with data-intensive, web services and applications via the desk-top, particularly for information seeking and shopping. The emphasis is upon quantitative measurement for optimisation and efficiency, effectiveness and satisfaction.
- Coursework: usability test report, prototype, presentation
- Schedule: allow approximately one day per week during the first semester
- Staff: Dr Martin Colbert
Applied Data Programming
30 credits
This module emphasises a practical and applied approach to programming and software skills for data scientists which differs from typical software engineering approaches in that the emphasis is on the use and manipulation of data using languages and platforms designed for use in real-life, data-driven problems. The languages and platforms are considered only as far as their use for data manipulation are needed with limited exploration of underlying theory or data structures. This prioritises practical implementation including locating, accessing, loading, manipulating, securing, storing and describing data, and enables the introduction of aspects of data analysis, data-mining and machine learning provided by the chosen languages and platforms.