Dr Rami Bahsoon

Senior Lecturer in Software Engineering, School of Computer Science

The University of Birmingham






Home   Profile   Research   Publications   Teaching   ArchOptions  


2018/2019 Spring Semester

MSc Level. Fundamentals of Software Engineering

- An effort has been made to make sure that the below units are self-contained. You are encouraged to consult the listed references for further reading.

- Slides/Units will be posted prior to the delivery.

Unit Number


Supporting Material/Content


Unit 0

Section Introduction

Module introduction and assessment


Unit 1

Introduction to Software Engineering, Processes and Software Lifecycle


Why software Engineering, by Ian Sommerville

Fundamentals activities in Software Engineering, By Ian Sommerville

Link to Scrum in 10 minutes

Scrum in Practice Microsoft Labs Seattle

Ian sommerville Software Engineering book

Unit 2

Light Introduction to Engineering Requirements

Videos with Credit to Alex Orso, GeorgiaTech, USA

Requirements Engineering Process

User and System Requirements: Distinction

Functional and non-functional requirements

Problems in elicitation

Modelling Requirements

Analysis of Requirements

Requirements Specification document

User stories for eliciting requirements - video by Ian Sommerville

More about structuring requirements documents - Video


Unit 3

Engineering OO Software with Unified Modelling Language (UML)



Overview/review of UML notions for Engineering OO and CBS Software

-      Introduction

-      Use case modelling

-      Scenarios

-      Activity diagrams

-      Class analysis and object diagrams

-      Interaction diagrams

-      State diagrams

-      Component and deployment

Extra Videos- Credits to Alex Orso

Use Case modelling

Role of Use Cases

Example: use case modelling

Class Diagram

Relationships in class diagrams

Generalisation in class diagrams

Class Diagram Analysis - Attributes

Class Diagram: Operations

Sequence Diagram

State Diagram

State Transition Diagram: Example

Component Diagram

Deployment Diagram

UML Distilled: A Brief Guide to the Standard Object Modeling Language, Martin Fowler

Using UML: Software Engineering With Objects and Components, Perdita Stevens, Rob Pooley


Theme: Software Engineering for Data Science Applications, Case of BIFOR

 Useful Videos


Sample Dataset


Tree Tweets


Links to BIFOR




Group of 4


Coursework released on: 29/01/2019


Deadline: 25/03/209


Early submission is encouraged to ease face-to-face design walkthrough feedback


Walkthrough face-to-face Feedback before submission


Sara Hassan

Early submission is strongly encouraged

Sample Solution for UML Exercises

UML Sample 1

UML Sample 2

Sample from students submission of previous years. Extra care need to be taken as they are not entirely free from mistakes



. Please do not use my e-mail account.




The University of Birmingham, Edgbaston, Birmingham, B15 2TT, UK
copyright of The University of Birmingham