THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2021/2022

Information in the Degree Programme Tables may still be subject to change in response to Covid-19

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Software Design and Modelling (INFR10064)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 10 (Year 3 Undergraduate) AvailabilityAvailable to all students
SCQF Credits20 ECTS Credits10
SummaryThis 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.

***This course replaces INFR10056 - Software Engineering with Objects and Components.***
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.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Students MUST have passed: Informatics 1 - Object-Oriented Programming (INFR08014) OR Informatics 1 - Object Oriented Programming (INFR08029)
Students MUST have passed: Informatics 2C - Introduction to Software Engineering (INFR08019) OR Informatics 2 - Software Engineering and Professional Practice (INFR08032)
Co-requisites
Prohibited Combinations Other requirements None
Information for Visiting Students
Pre-requisitesNone
High Demand Course? Yes
Course Delivery Information
Academic year 2021/22, Available to all students (SV1) Quota:  84
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 15, Seminar/Tutorial Hours 14, Feedback/Feedforward Hours 1, Summative Assessment Hours 4, Revision Session Hours 1, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 161 )
Assessment (Further Info) Written Exam 50 %, Coursework 50 %, Practical Exam 0 %
Additional Information (Assessment) 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%).
Feedback Exercises in the weekly lab will be supported by automated feedback where possible. In 2021/2 labs will be run online. Live sessions will provide opportunities to compare answers with other students, raise questions about them, and get help from course staff.

Where appropriate the course will provide online quizzes with immediate feedback.

Students will be encouraged to interact on the Piazza or similar group, where feedback will be available on questions that need it.

Notes and explanatory videos will be provided on formative exercises, as appropriate.

The summatively assessed coursework will be marked by a combination of automated and human feedback, provided as soon as may be and certainly within two weeks. A session will be dedicated to discussion and matters arising.

As is standard in Informatics, individual feedback will not be provided on the written exam. The lecturer will produce brief notes on what was done well or badly, common errors and points to note.
Exam Information
Exam Diet Paper Name Hours & Minutes
Main Exam Diet S1 (December)2:00
Resit Exam Diet (August)2:00
Learning Outcomes
On completion of this course, the student will be able to:
  1. Design simple object-oriented systems.
  2. Create, read and modify UML diagrams documenting designs, both on paper and in an appropriate tool.
  3. Determine whether a UML model and a body of Java code are consistent; if they are inconsistent, identify the inconsistencies precisely and propose remedies.
  4. Evaluate and evolve object-oriented software designs, making use of common design patterns if appropriate.
  5. Discuss the use of modelling and model-driven development tools in software development, e.g. why and how models of software can have varying degrees of formality, capabilities and limitations of the tools.
Reading List
Recommended reading:
- Timothy Lethbridge and Robert Langaniere. Object oriented software engineering: practical software
development using UML and Java. McGraw Hill, 2002.
- Perdita Stevens with Rob Pooley. Using UML. Pearson (second edition).
-Martin Fowler and Rebecca Parsons. Domain-specific languages.
Addison-Wesley 2011.
Additional Information
Course URL http://www.inf.ed.ac.uk/teaching/courses/sdm/
Graduate Attributes and Skills Not entered
KeywordsSoftware engineering,Software Design,Software modelling,Model-driven development
Contacts
Course organiserProf Perdita Stevens
Tel: (0131 6)50 5195
Email: perdita.stevens@ed.ac.uk
Course secretaryMrs Michelle Bain
Tel: (0131 6)51 7607
Email: michelle.bain@ed.ac.uk
Navigation
Help & Information
Home
Introduction
Glossary
Search DPTs and Courses
Regulations
Regulations
Degree Programmes
Introduction
Browse DPTs
Courses
Introduction
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Prospectuses
Important Information