Overview
Evaluation
Useful Links - (Software) Engineering Logs
Update your logs regularly (evey time you work On the project/module)
with precise details of what you were doing/thinking.
(A typical log entry for 1-3 hours of work would be 2-3 paragraphs.)
Session 1: Wednesday 30th April (9h-12h30) B313
1.1 Introduction
Useful Links - (Software) Engineering Logs
1.2 Design Patterns
1.3 Singleton
1.4 MVC
1.5 Proxy
Useful reading material
Useful external links
Session 2: Wednesday 30th April (14h-17h30) B313
2.1 Threads and processes for distributed system modeling and simulation
2.2 Distributed versus Centralised
Session 3: Wednesday 7th May (9h-12h30) B313
3.1 Iterator
3.2 Software Reliability
Session 4: Wednesday 7th May (14h-17h30) B313
4.1 Faulty Stacks and Queues
You should complete as many of these problems as you can, before the next session.
Session 5: Wednesday 21st May (9h-12h30) B313
5.1 Functional Requirements
Problem: Working in teams (or alone) specify the requirements of a lift/elevator system:
- say what not how
- identify and formalise the clients' and users' vocabulary
- how easy is it to validate your specification?
- how easy is it to verify a design/implementation against your specification?
Additional reading material
- Requirements engineering in the year 00: A research perspective, A van Lamsweerde, 2000
- pdf
- Requirements Engineering: A Roadmap, Bashar Nuseibeh and Steve Easterbrook, 2000
- pdf
- On Non-Functional Requirements in Software Engineering,
Lawrence Chung and Julio Cesar Sampaio do Prado Leite, 2009
- pdf
- Use cases - yesterday, today, and tomorrow,
Ivar Jacobson, 2004
- pdf
- Structuring Use Cases with Goals,
Alistair Cockburn, 1997
- pdf
- Writing effective use cases. Vol. 1,
Alistair Cockburn, 2000
- pdf
Session 6: Wednesday 21st May (14h-17h30) B313
6.1 Lift Functional Design
- From requirements to design
- pdf
Problem -Transform an agreed specificaton of lift requirements into a functional design and verify that it is
functionally correct.
Additional reading material
- On the Criteria To Be Used in Decomposing
Systems into Modules,
Parnas, 1972
- pdf
- A Rational Design Process: How and Why to Fake It,
Parnas and Clements, 1986
- pdf
- A field study of the software design process for large systems,
Curtis, B. and Krasner, H. and Iscoe, N.,1988
- pdf
- What is Software Design?,
Jack W. Reeves, 1992
- pdf
- The risks of stopping too soon,
Parnas, 2011
- pdf
Wavestone visit: Thursday 22nd May (9h-12h30) B313
Sessions 7-8: Wednesday 28th May (9h-12h30, 14h-17h30) B313
7-8.1 Wavestone Project Functional Architecture
Today you will start working on the functional architecture of your project for Wavestone.
You will need to identify the main use cases, and the data/functions that they depend on.
Then map these on to the standard IoT design structure that Wavestone provided in their presentation.
You should use UML diagrams, where appropriate, for modelling different aspects of your architectutre.
Paul will help each team to make the 'best' decisions regarding the functional architecture of their specific
project.
Session 9: Wednesday 4th June (9h-12h30) B313
9.1 Wavestone Project Functional Architecture Verification/Analysis
We must consider whether your functional architecture is 'good'.
By what criteria do we judge a functional architecture.
Which are general to all projects? Which are specific to each project?
Paul will walk through an analysis with each team.
Session 10: Wednesday 4th June (14h-17h30) B313
10.1 Wavestone Project Architecture Analysis
- Architecture Analysis
- pdf
10.2 IoT Platforms
Wavestone visit: Thursday 5th June (14h-17h30) B313
Session 11: Thursday 12th June (9h-12h30) B313
11.1 Wavestone Project Tasks to complete
- What sort of intelligence do you really need?
- Based on your choice of IoT platform, what software needs to be devloped?
- A dashboard design and ethical issues related
Session 12: Wednesday 18th June (9h-12h30) B313
Session 13: Wednesday 18th June (14h-17h30) B313
Wavestone visit: Thursday 19th June (9h-12h30) B313