University of Sheffield

Anthony J H Simons, MA PhD

Senior Lecturer in Computer Science
University Computer Science Testing Group Space Tech Europe Industry

Systems Design and Security

This is a 20-credit module delivered in one semester, so expect the work-rate to be twice that as for a 10-credit module. The teaching and learning method is based around 40 hours lectures and 20 hours team-work. Assessments are in addition to this. You will cover two topics per week, each delivered in a 2-hour lecture split into three main segments, with interactive mini-labs in between. These will involve some online polls (please bring your device to the lecture) and some pen-and-paper formative exercises that you will finish outside of the lectures, and for which solutions will appear.

This page is the main source for the lecture slides and other handouts. The content-links have campus-only access (requires sign-in). This page will eventually contain information about the group design project and the individual testing assignment.

Unified Modelling Language
Lecture Contents Handout
01: Software Engineering Software crisis, software engineering, and choosing a lifecycle model PDF
02: Information Security Security vulnerabilities, countermeasures, policies and legal obligations PDF
03: Project Management Managing customers, perceptions, risks, socio-politics and coordination PDF
04: Requirements Modelling Capturing requirements incrementally using UML use cases PDF
05: Interview Role-Play Realistic developer-customer interaction, with unexpected results PDF
06: Information Modelling Capturing and structuring information using UML class diagrams PDF
07: Database Design Data normalisation using ERM and the UML database profile PDF
08: Query Processing From Relational Algebra to SQL: query processing and indexing PDF
09: Java and MySQL Using Java Database Connectivity (JDBC) with a MySQL database PDF
10: Security and Robustness The four pillars of security and robust design strategies PDF
11: Control Flow Design Specifying control flows and data flow using UML activity diagrams PDF
12: State-Based Design Specifying states and transitions with UML state machine diagrams PDF
13: System Design Patterns Mapping system designs onto object clusters using Design Patterns PDF
14: Swing Design Patterns Building Java Swing user interfaces using Design Patterns PDF
15: Formal Systems Design Formal development approaches and the Object Constraint Language PDF
16: Verification and Testing Formal and informal methods to check for software correctness PDF
17: Specifying Code Detail Specifying detailed coding decisions and method execution in UML PDF
18: Architectural Design System architecture with UML deployment and package diagrams PDF
19: Agile Methods and JUnit From DSDM and SCRUM to Extreme Programming with JUnit testing PDF
  System Testing in week 11 - no lectures  
  Reading Week in week 12 - no lectures  

Role-Play Contents Use in Session
01: Interviewing Skills Instruction booklet for the Customer-role in the role-play exercise Monday Week 3

Assignment Description Deadline
All Project Teams A dynamically-updated list of properly-constituted teams Available now
Project Team Sign-Up A web-form allowing you to sign up as a pair for a team of four Friday Week 2
Systems Design Project The complete instructions for the group project assignment Out week 4

Resource Description Source
UML Model Tutor An automatic grader for UML diagrams of different kinds Simons, 2023
Connector/J Driver A local copy of the MySQL Connector/J Driver Oracle, 2021
Full Tutorial on OCL A slide-show systematically introducing OCL with UML ULB Brussels, 2016
Short Tutorial on OCL Another slide-show introducing OCL with UML B Beckert, 2014
Writing OCL Specifications A quick-reference guide to writing OCL specifications AJH Simons, 2006