Software Engineering - COM00144M
Module summary
This module focuses on designing and building software systems.
Related modules
Module will run
Occurrence | Teaching period |
---|---|
A | Online Teaching Period 4 2024-25 |
Module aims
This module focuses on designing and building software systems, which these days are often large, complex and long-lived. They are worked on by teams of engineers, and changed constantly over their lifetimes. We will look at principles and patterns of software design, where to apply them, and how they may inform our design choices. We will also look at techniques for ensuring that systems you build behave correctly. We show how the application of these makes it possible to evolve systems effectively in a rigorous way.
Module learning outcomes
Be able to:
-
Investigate and analyse a problem, write a software requirement specification and design blueprint expressed in UML which provides a basis for code generation,
-
Apply a range of design patterns and principles to solve particular design problems,
-
Apply a range of refactoring techniques to improve code quality
-
Critically evaluate and apply a range of tools and techniques for automated software testing, including test-driven development,
-
Manage risk in making changes to an existing software system through rigorous engineering practices,
-
Critically evaluate the appropriateness of different software engineering techniques/tools in different circumstances, and on the quality of the design of an application.
Module content
Topics:
-
Software development process
-
Requirement capture and modelling
-
Requirement analysis and specification
-
High-level and Lower level design
-
Design patterns and state machines
-
Refactoring and software testing
-
Software risk and quality management
Indicative assessment
Task | % of module mark |
---|---|
Open Examination | 100 |
Special assessment rules
None
Indicative reassessment
Task | % of module mark |
---|---|
Open Examination | 100 |
Module feedback
In line with university policy.
Indicative reading
Bennett, Simon; McRobb, Steve; Farmer, Ray, Object-Oriented System Analysis and Design, 4th Ed, McGraw Hill, 2010.
Sommerville I., Software Engineering, 9th edition, Addison Wesley, 2015.