PA1443 Introduction to Software Design and Architecture
1 Sprints, Lectures, and Seminars
In this module the course is introduced.
Things to Read
- Read: Sprint 0 Course Introduction
- Read: Assignment Introduction
Scheduled Events
- Visit: Lecture Introduction ( J1620)
This module introduces the UML way of specifying requirements, which can then be used to provide a traceable chain all the way through your software design and down to your code.
Things to Read
- Read: Sprint Use Cases and Use Case Diagrams
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture User Stories and UML Use Cases ( J1610)
- Prepare before and Visit: Seminar Requirements, Use Cases, Project Planning (Online on Gitter )
Assignment Work
- Submit: Release Sprint 3 Week Roll Call; List of Use Cases (Deadline )
- Work on Assignment: Sprint Use Case Overview Assignment
- Work on Assignment: Sprint Implementation Plan Assignment
- Work on Assignment: Sprint Detailed Use Cases for First Iteration Assignment
This assignment “sets the stage” for your subsequent assignments by making sure you have understood the system requirements properly. In a seminar you then discuss your submitted User Stories and Use Cases.
Assignment Work
- Submit Assignment: Release Sprint: Use Cases (Feedback Deadline )
- This assignment consists of three parts:
Scheduled Events
- Visit: Discuss Assignment 1 (Online on Gitter )
There are two sides to modelling. You model the structure of a system to understand which entities you are going to work with, and you model the behaviour of these entities. In this module we focus on the structure.
Things to Read
- Read: Sprint Concepts and Events
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Modelling Structure ( J1610)
Assignment Work
- Work on Assignment: Sprint Domain Model Assignment
- Work on Assignment: Sprint System Sequence Diagrams Assignment
Testing is introduced at an early stage in the course since it is vital to understand how you intend to test your system in order to design and build the system so that you can test it as you intend.
Things to Read
- Read: Sprint Testing
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Testing ( C413A)
Assignment Work
- Work on Assignment Sprint Testing Assignment
Different ways of modelling behaviour is introduced. A particular emphasis is placed on patterns to help you identify what makes a good design.
Things to Read
- Read: Sprint State Diagrams
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
- Read: Sprint Good Interactions
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
- Read: Sprint Interactions and Structure
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Modelling Behaviour ( C413A)
Assignment Work
- Work on Assignment: Sprint Package Diagram Assignment
- Work on Assignment: Sprint Interaction Diagrams Assignment
- Work on Assignment: Sprint Class and Package Diagram Assignment
Design patterns are essentially re-usable solutions to common problems, where you can be reasonably sure that the end result will actually be a good, understandable, and extensible design.
Things to Read
- Read: Sprint Design Patterns
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Design Patterns ( J1610)
- Prepare before and Visit: Seminar Structure and Design Patterns ( J1610)
Assignment Work
- Work on Assignment: Sprint Design Patterns Assignment
In this assignment you demonstrate your ability to design a software system in terms of interaction diagrams and class and package diagrams.
Assignment Work
- Submit Assignment: Release Sprint: Object Oriented Design (Feedback Deadline )
- This assignment consists of two parts:
When constructing a larger system, it is not sufficient to just focus on the software design of classes and groups of classes. Instead you need to raise your view and look at the system as a whole, i.e. its software architecture.
Things to Read
- Read: Sprint Introduction to Software Architectures
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
- Read: Sprint Software Architecture Patterns
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture Introduction to Software Architectures ( J1610)
- Visit: Lecture Quality Attributes ( J1610)
Assignment Work
- Work on Assignment: Sprint Create Initial Architecture Assignment
- Work on Assignment: Sprint Evaluate Software Architecture Assignment
- Work on Assignment: Sprint Create Quality Attribute Scenarios Assignment
- Work on Assignment: Sprint Revise Architecture with Architecture Tactics Assignment
Connect your well-designed system with a user interface and other external systems to make a functional application. Also, an understanding of the quirks in your selected programming language will help you understand how to actually implement your design.
Things to Read
- Read: Sprint Implementation and Designing the User Interface
- Remember to look at the “Learning Material” for book chapters, screencasts, and further reading.
Scheduled Events
- Visit: Lecture From Design to Code ( J1610)
In this assignment you finalise your architecture along with your test plan and submit it.
Assignment Work
- Work on Assignment: Sprint Create System Test Plan Assignment
- Submit Assignment: Release Sprint: Architecture and Testing (Feedback Deadline )
- This assignment consists of two parts:
Scheduled Events
- Prepare before and Visit: Demo and Discuss Assignment 3 (Individually Booked Week 17, Week 18)
Prepare for the exam and tidy up after the course so you know how to continue.
Scheduled Events
- Visit: Seminar Questions and Answers ( J1610, J1504, J1504)