Accessibility statement

Engineering 2: Automated Software Engineering - COM00187M

« Back to module search

  • Department: Computer Science
  • Credit value: 20 credits
  • Credit level: M
  • Academic year of delivery: 2024-25
    • See module specification for other years: 2023-24

Related modules

Prerequisite knowledge: includes understanding of Object Oriented Data Structures & Algorithms. For undergraduate students this knowledge is taught in SOF2 (COM00016C). 

Module will run

Occurrence Teaching period
A Semester 2 2024-25

Module aims

This module builds on ENG1 and introduces advanced techniques for engineering large, data-intensive software systems that consist of components written in different programming languages and operating on a variety of platforms. In order to manage the complexity of engineering such data-intensive systems, ENG2 will introduce the theory, principles and practices of model-driven engineering (MDE), focusing on technical topics. These include modelling, metamodelling, model management, model transformation, model-driven traceability, workflows, model validation, and model evolution. Non-technical issues including standards, domain-specific MDE versus general-purpose MDE and MDE processes will also be considered. The discussion of concepts and technologies for engineering modern data-intensive software systems will start from a general discussion about architectural concerns, then move on to discuss their design, implementation as a collaboration of microservices, and using containers for reproducible and scalable deployment. ENG2 will discuss assurance practices around data-intensive software systems, such as testing and hardening.

Module learning outcomes

  1. Demonstrate the principles and practices of modelling and metamodelling.

  2. Implement and orchestrate domain-specific models, metamodels and model management operations.

  3. Demonstrate the design principles for data-intensive software systems, including their architecture characteristics like availability, scalability, reliability and security, and the characteristics of the organisation.

  4. Structure data-intensive systems as combinations of independently maintained microservices, and argue about their benefits and challenges in terms of complexity management, organisational scalability, and resource usage.

  5. Deploy the components of data-intensive systems in a scalable and reproducible manner, by packaging them as containers and orchestrating these containers to work with each other.

  6. Appreciate assurance practices in the development and deployment of large data-intensive systems, including testing and hardening.

  7. Articulate how Model-Driven Engineering integrates with wider system engineering processes and policies, including those of a data-intensive software system.

Indicative assessment

Task % of module mark
Essay/coursework 100

Special assessment rules

None

Indicative reassessment

Task % of module mark
Essay/coursework 100

Module feedback

Feedback is provided throughout the sessions, and after the assessment as per normal University guidelines.

Indicative reading

  • Newman, Sam. Building Microservices, O'Reilly Media, 2021.
  • Kleppmann, Martin. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, O'Reilly Media, 2017.
  • Wasowski A. Domain-Specific Languages: Effective Modeling, Automation, and Reuse. 1st ed. 2023. (Berger T, ed.). Springer International Publishing; Imprint Springer; 2023.



The information on this page is indicative of the module that is currently on offer. The University constantly explores ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary. In some instances it may be appropriate for the University to notify and consult with affected students about module changes in accordance with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.