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

I no longer teach this module. The materials below are archived for historic interest and may have been updated in the meantime. Please do not rely on this for up-to-date information.

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. 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