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