Software Design


This module complements the programming modules that students take at Level 7 by introducing – in a practical rather than theoretical way – some of the fundamental ideas of software engineering, enabling students to develop and communicate designs for small and large scale software systems.


The aim of this Module is to Introduce the ideas, tools and languages of software design.

Learning Outcomes

By the end of this module the student should be able to:

1.  Communicate the ideas and languages of software design in a professional manner.

2.  Confidently break down design problems using problem-solving techniques.

3.  Develop, understand and communicate designs for software projects using object-oriented design techniques.

4.  Develop, understand and communicate designs for databases using relational database design techniques.

5.  Select appropriate modelling techniques for an application.

Indicative Content

1 Problem-solving

Capturing requirements, general problem-solving techniques, testing, the idea of a non-programming language

2 Classes and Objects:

Develop software using class definitions, methods, data, constructors and instantiation. Create basic class inheritance structures within a software solution using two classes.

3 Security

Encapsulating objects using public and private access modifiers. Constructors.

4 OO Analysis Design and Implementation:

Identify objects in a system and structure data and information in class definitions. Mapping object oriented design principles to programming constructs.

5 Abstraction:

Understand how to work with complexity by using code abstraction, code blocks and control flows

6 Class modelling:

Introduction to UML class diagrams

7 Data design – an OO approach

Modelling using object-oriented techniques, drawing informal and formal diagrams to describe information and behaviour (including UML), design patterns

8 Data design – a relational approach

Modelling using relational techniques, theoretical and practical design concerns, constructing and querying a database using basic SQL; Modelling using relational techniques, theoretical and practical design concerns, constructing and querying a database using basic SQL

Statement on Teaching, Learning and Assessment

The module is taught using a combination of lectures and practical sessions which will include tutorials. These will introduce theoretical material and put it into practice through guided lab exercises. Students demonstrate their attainment of the learning outcomes through the submission of a portfolio of completed lab exercises.

Teaching and Learning Work Loads

Total 200
Lecture 12
Tutorial/Seminar 0
Supervised Practical Activity 28
Unsupervised Practical Activity 12
Assessment 80
Independent 68

Guidance notes

Credit Value – The total value of SCQF credits for the module. 20 credits are the equivalent of 10 ECTS credits. A full-time student should normally register for 60 SCQF credits per semester.


We make every effort to ensure that the information on our website is accurate but it is possible that some changes may occur prior to the academic year of entry. The modules listed in this catalogue are offered subject to availability during academic year 2019/10 , and may be subject to change for future years.