Designing, building and testing software systems can be a complicated process. This module aims to provide you with an understanding of software engineering concepts and a view of practical software development. It follows a disciplined approach to the development of software systems to meet specified requirements. You will become familiar with a wide range of techniques to support the dialogue between software engineers and an organisation’s stakeholders, and the work of the developers. You will also develop a good understanding of the different approaches to, and practices of, software development, including those followed by agile methods.
Comparing traditional approaches with agile processes and practices, you will learn about well-known software development processes, their phases, activities and techniques. This will help you to develop a critical understanding of the diversity of contexts of organisations, problems, and development teams, which will allow you to use your own judgement in a real situation.
By studying this module you will:
- be able to understand the business domain for a problem requiring a software solution or a change to an existing solution
- acquire the tools and knowledge to analyse and design such a solution or change
- understand how any chosen software architecture will impact on the satisfaction of all users requirements and expectations
- be able to apply and reuse design expertise from a set of design patterns
- develop the skills for testing outputs of all activities throughout the development process.
You will be equipped to apply your knowledge to the design of a wide range of software systems; from small systems in a single organisation (which still need to interact with a range of other services online) to those working in large-scale distributed environments based on coalitions of systems.
|About this course:|
|UK Credits = 30 (15 ECTS)|
|Course work includes:|
|3 Tutor-marked assignments (TMAs)|
|End of Module Exam|
|Final Grade||Taken and Pending result|