Preview the slides

What is the case study?

The case study is about defining the architecture for a small software system, providing the opportunity to see how to take a high-level system vision through to a software design. Given a high-level vision for a software system, we ask groups to identify the non-functional requirements that they expect would need to be specified for this system and then subsequently design a solution. This includes...

  • Defining the architecture for the case study solution.
  • Deciding on the technologies that would be used to implement it.
  • Drawing up different views of the architecture to illustrate the software components and their interactions.
  • Assessing and justifying that the architecture will satisfy the functional and non-functional requirements.
Case study inputs
Photos of the whiteboards from training courses Photos of the whiteboards from training courses Photos of the whiteboards from training courses Photos of the whiteboards from training courses
Photos of the whiteboards from training courses Photos of the whiteboards from training courses Photos of the whiteboards from training courses Photos of the whiteboards from training courses
Hover over an image for a short description of it 1. This diagram sets the context for the system 2. This diagram shows the major systems that make up the architecture 3. This diagram shows the major technology choices 4. Index cards are being used here to help determine the the major system components 5. This diagram shows most of the major logical system components 6. This diagram shows most of the system components at a lower level of detail 7. This diagram shows most of the system components at a lower level of detail 8. This infrastructure diagram shows the physical hardware and infrastructure on which the software will be deployed

At the end of the exercise, we compare what each of the groups has come up with; discussing the choice of technologies, diagram notation and process used to define the architecture.

Is there any coding?

In a word, no. The purpose of the case study is to look at the bigger picture elements of the software design process so there's no focus on writing code. The case study does involve choosing technologies and frameworks though, so that you understand how you'd go about actually building the system you design.