Study abroad in Edinburgh

Course finder

Semester 2

Software Design and Modelling (INFR10064)

Subject

Informatics

College

SCE

Credits

20

Normal Year Taken

3

Delivery Session Year

2023/2024

Pre-requisites

Course Summary

This course introduces the design and modelling of software systems using object-oriented techniques. We start by exploring the use of modelling in software development. Students learn to document designs in the Unified Modeling Language, UML, with emphasis on class, sequence and state diagrams and the Object Constraint Language, OCL. We use modern model-driven development tools and discuss their strengths and weaknesses. We study criteria that make one design better than another in context and introduce design principles and patterns that capture good practice.

Course Description

The course begins by placing design and modelling in the context of the various software engineering processes in widespread use today. Via labs, lectures and self-study using readings, videos and formative exercises, it teaches students to produce (initially straightforward) designs and to document them using UML models, both on paper and with an appropriate tool. We discuss the different affordances of these modes and how models may be used (i) purely informally, (ii) as reviewed documentation for designs, and/or (iii) in model-driven development in which models are formal artefacts and code may be generated from them.The second part of the course focuses on identifying and producing good designs. What principles should a good object-oriented design follow? We learn some common design patterns and their role in development and learning. Finally we turn to practical model-driven development: how can the cost-benefit ratio of modelling be improved, now and potentially in the future? Students will learn about model transformations, both model-to-model and model-to-text (e.g., code generation) and be introduced to current tools supporting these. We discuss the role of domain specific languages and the integration of model driven development with agile processes. Throughout the course, we identify the deficiencies as well as the benefits of the fast-changing state of the art, aiming to equip students to critically evaluate tools and techniques that become available to them in future.

Assessment Information

Written Exam 50%, Coursework 50%, Practical Exam 0%

Additional Assessment Information

Coursework element is an individual timed exercise similar to work done in lab sessions. It concentrates on assessing the first 3 learning objectives (50%). The written examination concentrates on assessing the last two learning objectives, plus the "on paper" part of the second (50%).

view the timetable and further details for this course

Disclaimer

All course information obtained from this visiting student course finder should be regarded as provisional. We cannot guarantee that places will be available for any particular course. For more information, please see the visiting student disclaimer:

Visiting student disclaimer