Course coordinator
When emailing the teaching team, you should send the email from your UQ student account. We need to be able to identify you as a member of the course cohort.
Software systems are often composed of a heterogeneous network of inter-related systems. In this course you will build upon the knowledge and skills you have developed so far to learn how to design complex systems. This will include how these systems communicate and coordinate their responsibilities. You will learn design techniques to manage the complexity of large systems. You will learn how to assess and manage software risks (e.g.security, scalability, availability, resilience, robustness). You will apply these techniques to build a system composed of heterogeneous computing devices (e.g. mobile devices, servers, cloud-hosted services). You will learn how to apply systems thinking to design large-scale cyber-physical systems.
Large software systems are composed of interacting components. This is the case even if the system is only a single executable running on one computer. More sophisticated systems take advantage of the ability to distribute processing behaviour across hardware optimised for different parts of the system. In this course you will learn how to design "in the large". You will learn how to design components and their interfaces so that you can build complex systems. You will learn how to choose appropriate architectural patterns to structure systems that meet both functional and non-functional requirements of a system.
You can view this course as a capstone of your program. It integrates and extends the knowledge and skills you have developed so far.
Course Changes in Response to Previous Student Feedback
Assessment has been redesigned based on feedback and observation of student engagement with the course.
Practical work has been turned into a streamed example of building a cloud-based application.
Course material has been updated to provide better coverage of some topics.
You are assumed to have a strong background in software development. You are expected to have worked on at least one substantial software project, involving a team of members and thousands of lines of code. You should be able to design a software application consisting of several interoperating classes.
You'll need to complete the following courses before enrolling in this one:
CSSE3200 or DECO2800
When emailing the teaching team, you should send the email from your UQ student account. We need to be able to identify you as a member of the course cohort.
The timetable for this course is available on the UQ Public Timetable.
Lectures and practicals start in week 1.
The case study series starts in week 2.
Upon successful completion of this course you will be able design complex software systems. You will understand how different architectural patterns support delivery of different design goals, and how to choose a pattern that is appropriate in your system's context. You will be able to evaluate the architecture of an existing system to assess how well it achieves its design goals. You will know how to apply security principles to deliver secure systems.
After successfully completing this course you should be able to:
LO1.
Design and build a software system that delivers specified functional and non-functional requirements (e.g. security, scalability, reliability, ...) by evaluating and selecting an appropriate architectural pattern and designing the components, interfaces and communication protocols to work within the pattern's structure.
LO2.
Apply systems thinking within a team, debating and negotiating options, to design an architecturally complex software system that delivers a coherent set of functional and non-functional requirements.
LO3.
Evaluate security risks for a software system architecture and implement security principles to minimise those risks.
LO4.
Select an appropriate suite of tools to facilitate the delivery of a large, complex software system.
LO5.
Describe and critique the architecture of a software system.
| Category | Assessment task | Weight | Due date |
|---|---|---|---|
| Computer Code, Project |
Cloud Infrastructure Assignment
|
40% |
API Functionality 27/03/2026 3:00 pm Deployed to Cloud 13/04/2026 3:00 pm Scalable Application 1/05/2026 3:00 pm
Feedback is provided through automated tests. Students will be able to run the tests against their own code to obtain their feedback. |
| Presentation |
Architecture Presentation
|
30% |
25/05/2026 3:00 pm
Your team must submit the slides that you will use for your presentation to the link provided on BlackBoard by the submission deadline. Your team will be allocated a timeslot during week 13 to make your presentation. The presentations may take place during a lecture, practical, case study contact timeslot, or other specially scheduled session. You may request your team's presentation be scheduled to avoid particular sessions, to accommodate known circumstances. This request must be made to the course coordinator by the end of week 10. |
| Computer Code, Participation/ Student contribution, Product/ Design, Project |
Delivering Quality Attributes Project
|
30% |
8/06/2026 3:00 pm |
A hurdle is an assessment requirement that must be satisfied in order to receive a specific grade for the course. Check the assessment details for more information about hurdle requirements.
API Functionality 27/03/2026 3:00 pm
Deployed to Cloud 13/04/2026 3:00 pm
Scalable Application 1/05/2026 3:00 pm
Feedback is provided through automated tests. Students will be able to run the tests against their own code to obtain their feedback.
You will implement a software system to meet specified functional and non-functional requirements. The implementation will be deployed on cloud infrastructure and stress tested. You are required to design the system and select appropriate compute platforms to deliver specified requirements.
This assessment is to be delivered in three stages.
This exercise requires you to use cloud infrastructure from a specific provider. Credit will be available to complete the assignment on the provider's platform. Poor design choices may exceed your available credit. In some circumstances this may limit your maximum mark as you are not able to complete, or the teaching team is not able to assess, part of your assignment. The exercise is designed so that it can be completed well within your provided credit.
Artificial Intelligence (AI) and Machine Translation (MT)
AI and MT are emerging tools that may support you in completing this assessment task. You may appropriately use AI and/or MT in completing this assessment task. You must clearly reference any use of AI or MT in each instance.
A failure to reference generative AI or MT use may constitute student misconduct under the Student Code of Conduct . You must include with your submission a file AI.md that indicates the AI and MT tools that you used and the extent of their use. Examples of how you could cite use of AI tools include:
Submission requirements will be provided in the assignment specification.
You may be able to apply for an extension.
The maximum extension allowed is 28 days. Extensions are given in multiples of 24 hours.
A penalty of 1 grade for each 24 hour period from time submission is due will apply for up to 7 days. After 7 days you will receive a mark of 0.
25/05/2026 3:00 pm
Your team must submit the slides that you will use for your presentation to the link provided on BlackBoard by the submission deadline.
Your team will be allocated a timeslot during week 13 to make your presentation. The presentations may take place during a lecture, practical, case study contact timeslot, or other specially scheduled session. You may request your team's presentation be scheduled to avoid particular sessions, to accommodate known circumstances. This request must be made to the course coordinator by the end of week 10.
Your team will present the details of your Delivering Quality Attributes Project's software architecture. You will critique the architecture in terms of how suited it is to deliver your project's key quality attributes. You will also discuss security implications of your software architecture and design. You will describe alternative architectures that you considered and explain why they were not selected.
Each team member must present part of the team's presentation. They must answer at least one of the key questions listed in the assessment specification. Each team member will be awarded an individual grade for the presentation.
The result achieved by your presentation, before any penalty is applied, will be used to determine any cap on your final grade.
Artificial Intelligence (AI) and Machine Translation (MT)
This task has been designed to be challenging, authentic and complex. Whilst you may use AI and MT technologies, successful completion of assessment in this course will require you to critically engage in specific contexts and tasks for which AI will provide only limited support and guidance.
A failure to reference generative AI or MT use may constitute student misconduct under the Student Code of Conduct . You must indicate any text or diagrams that were produced with the assistance of AI tools. Use a footnote indicating which AI system was used.
To pass this assessment you will be required to demonstrate detailed comprehension of the content of your slides, independent of AI and MT tools.
The presentation is an identity verified assignment. You must make your presentation in-person, and you must provide evidence of your identity (i.e. valid UQ student card) at the start of your presentation session.
In accordance with UQ Assessment Policy, your presentation will be recorded.
You may be able to apply for an extension.
The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.
Extensions for groupwork are typically not available as this impacts on all members of the team.
Students with valid extension requests will be required to undertake alternative assessment.
You will receive a mark of 0 if this assessment is submitted late.
Consistent with industry practice around presentations to clients/industry partners, the 100% late penalty applies. This has been approved by the Associate Dean (Academic).
Presentations that are not made at their scheduled time will be subject to a late penalty of 100%. There is no grace period.
You are required to make your presentation during scheduled timeslots. To fit all students into the limited time available, presentations are scheduled for a fixed time. Missing your scheduled time means that rescheduling may disadvantage other students. Consequently, arriving late for your presentation timeslot will result in your presentation not being marked, and you will not be able to obtain a passing grade in the course.
8/06/2026 3:00 pm
You will design and deliver an initial, releasable version of a software system. The delivered system must demonstrates how it delivers selected quality attributes. This is the development phase of the project.
Project Development
You will be formed into teams to deliver the project described in a nominated proposal. As a team you will design and document the software architecture, implement, test and deliver the software system, and write a report describing the software architecture, and how the design delivers the specified functional and non-functional requirements.
Platform
This project does not require you to use any specific cloud infrastructure. Part of your design process is to identify appropriate computing platforms to use as the physical architecture of your system. Credit will be available to use on a nominated platform (e.g. AWS). Limitations will be applied on the services available to avoid excess costs being accrued. If you need to use a cloud-based platform, your team will need to decide how to make use of any credit that you have available between all the team members. Poor design choices may exceed your available credit. In some circumstances this may limit your maximum mark if you are not able to complete, or the teaching team is not able to assess, part of your project. In other circumstances this may lead to you paying extra commercial fees to the platform provider. Paying for extra services to boost your project's performance in some way will not improve the final result you achieve on the project.
Peer Assessment
Peer assessment of the quality and quantity of each team member's contributions to this project may be used to adjust individual results. Peer assessments will be moderated by the teaching team and their observations of individual's contributions during contact sessions will also be used if individual results are adjusted. Individual grades for the project may be increased or decreased.
Artificial Intelligence (AI) and Machine Translation (MT)
This task has been designed to be challenging, authentic and complex. Whilst you may use AI and MT technologies, successful completion of assessment in this course will require you to critically engage in specific contexts and tasks for which AI will provide only limited support and guidance.
A failure to reference generative AI or MT use may constitute student misconduct under the Student Code of Conduct . You must include with your submission a file AI.md that indicates the AI and MT tools that you used and the extent of their use. (e.g. All code was written by providing copilot with class descriptions and then revising the generated code. Classes A and B were produced by the following prompts to ChatGPT and were then adapted to work in the assignment's context.)
To pass this assessment you will be required to demonstrate detailed comprehension of your submitted project artefacts.
Submission will be via a git repository that will be provisioned for your team.
You may be able to apply for an extension.
The maximum extension allowed is 28 days. Extensions are given in multiples of 24 hours.
Extensions for groupwork are typically not available as this impacts on all members of the team.
However, if a team encounters extraordinary difficulties in meeting the submission deadline, they should contact the Course Coordinator well in advance of the due date.
Teams will be asked to meet with the Course Coordinator. Be prepared to present your work, as it stands, at that meeting.
This course uses team-based assessment of a project developed with regular formative feedback in practical classes. All work on the project is to be continuously committed and pushed to a provisioned git repository, from the start of the project. Consequently, there should always be a submittable version of the project by the submission deadline.
If an extension is granted, it may result in the grades for this course not being available at grade release time, for all team members.
A penalty of 1 grade for each 24 hour period from time submission is due will apply for up to 7 days. After 7 days you will receive a mark of 0.
By default, the last commit that is pushed to the main branch of the provisioned git repository by the submission deadline will be marked.
Teams wishing to make a late submission, must notify the teaching team by email to CSSE6400@eecs.uq.edu.au, prior to the submission deadline. This must include a PDF file that is a statement of your plan to submit late and which contains the signatures of all team members. This email must also CC every member of your team and the teaching staff of your practical class. After you commit and push your late submission, you must notify the teaching team by email to CSSE6400@eecs.uq.edu.au of the timestamp and hash code of the late submission.
Alternatively, your team may nominate an earlier commit that was pushed to the main branch of the provisioned repository, to be marked rather than the latest commit. You must notify the teaching team by email to CSSE6400@eecs.uq.edu.au of the timestamp and hash code of the earlier commit. This notification must include a PDF file that is a statement of your wish for an earlier commit to be marked, and which contains the signatures of all team members. This email must also CC every member of your team and the teaching staff of your practical class. This request to mark an earlier commit must be received within one hour of the submission deadline (i.e. by 16:00 on 08/06/2026).
If a single team member does not agree to either a late submission or marking of an earlier commit, will result in the last commit pushed to the provisioned repository by the submission deadline being marked as the team submission.
If no work is available in the repository, the team will receive a grade of X for the project, indicating no work submitted.
Full criteria for each grade is available in the Assessment Procedure.
| Grade | Description |
|---|---|
| 1 (Low Fail) |
Absence of evidence of achievement of course learning outcomes. Course grade description: To achieve a final grade of 1, the result of the formula in the Additional course grading information section is 1. |
| 2 (Fail) |
Minimal evidence of achievement of course learning outcomes. Course grade description: To achieve a final grade of 2, the result of the formula in the Additional course grading information section is 2. |
| 3 (Marginal Fail) |
Demonstrated evidence of developing achievement of course learning outcomes Course grade description: To achieve a final grade of 3, the result of the formula in the Additional course grading information section is 3, AND your Presentation Result >= 3. |
| 4 (Pass) |
Demonstrated evidence of functional achievement of course learning outcomes. Course grade description: To achieve a final grade of 4, the result of the formula in the Additional course grading information section is 4, AND your Presentation Result >= 4. |
| 5 (Credit) |
Demonstrated evidence of proficient achievement of course learning outcomes. Course grade description: To achieve a final grade of 5, the result of the formula in the Additional course grading information section is 5, AND your Presentation Result >= 5. |
| 6 (Distinction) |
Demonstrated evidence of advanced achievement of course learning outcomes. Course grade description: To achieve a final grade of 6, the result of the formula in the Additional course grading information section is 6, AND your Presentation Result >= 5. |
| 7 (High Distinction) |
Demonstrated evidence of exceptional achievement of course learning outcomes. Course grade description: To achieve a final grade of 7, the result of the formula in the Additional course grading information section is 7, AND your Presentation Result >= 5. |
This course uses a grade-based approach to evaluation. You will be awarded a grade, and not a mark, for each assessment activity. Your final grade is determined by the following formula.
Final Grade = ROUND(Cloud Infrastructure Assignment Gradeᅠ×ᅠ40% + Architecture Presentation Gradeᅠ×ᅠ30% + Delivering Quality Attributes Project Gradeᅠ×ᅠ30%)
In the formula above, your final grade is rounded to the nearest integer (e.g. 4.45 is rounded to a grade of 4, 4.5 is rounded to a grade of 5).
Note that in the formula above, each assessment component (e.g. Cloud Infrastructure Assignment Grade) is an integer grade from 1 to 7 and not a fractional mark.
The Architecture Presentation is an identity verified hurdle assessment. If your presentation result is a
A presentation result of 5 or higher will result in no caps on your final grade.
Your presentation result is the grade you obtain for the presentation, before any penalty is applied to the grade you obtain in your presentation (e.g. before a penalty applied because of late submission of slides).
The Delivering Quality Attributes Project is an identity verified hurdle assessment. If you obtain a grade of 2 or lower for this project, due to your individual contribution to the project, your final grade will be capped at a 2.
The course coordinator reserves the right to moderate results.
Supplementary assessment is not available for some items in this course.
If your final grade is a 3, and your Delivering Quality Attributes Project grade is 3 or lower, you will not be eligible for supplementary assessment. The project activity includes group collaboration, and assesses the outcome of that collaboration, which cannot be replicated in supplementary assessment.
Having Troubles?
If you are having difficulties with any aspect of the course material, you should seek help. Speak to any member of the teaching team.
If external circumstances are affecting your ability to work on the course, you should seek help as soon as possible. The University and UQ Union have organisations and staff who are able to help, for example, UQ Student Services are able to help with study and exam skills, tertiary learning skills, writing skills, financial assistance, personal issues, and disability services (among other things).
Complaints and criticisms should be directed in the first instance to the course coordinator. If you are not satisfied with the outcome, you may bring the matter to the attention of the EECS Director of Teaching and Learning.
You'll need the following resources to successfully complete the course. We've indicated below if you need a personal copy of the reading materials or your own item.
Find the required and recommended resources for this course on the UQ Library website.
Course Material
The course website contains extensive lecture notes, lecture slides, and other course material. You are expected to read the lecture notes for a topic before the lecture that week. You are also expected to read the practical worksheets and case study briefs before your practical class and case study contact session.
All resources will be accessible from links on BlackBoard.
Tools
You will be required to create architectural diagrams for some learning and assessment activities. Structurizr Lite, PlantUML, Astah, and other modelling tools may be downloaded on your own computer. We recommend using Structurizr or PlantUML, as these are textually based tools. This means that the source code for models can be committed to a repository and shared for team collaboration.
Announcements will be distributed via Blackboard. You are expected to read Blackboard notices regularly, at least once per week, and more frequently close to assessment deadlines.
The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.
Filter activity type by
| Learning period | Activity type | Topic |
|---|---|---|
Multiple weeks From Week 1 To Week 12 |
Lecture |
Lecture Series The lectures, including guest lectures, introduce the theory relevant to designing software architectures. Learning outcomes: L01, L02, L03, L04, L05 |
Practical |
Practical Computer Exercises The first part of semester will introduce technology to build complex, scalable systems. The remainder of the semester will be dedicated to project work. Learning outcomes: L01, L02, L03, L04, L05 |
|
Multiple weeks From Week 2 To Week 10 |
Case-based learning |
Case Study Series Each week we will explore software architecture options to implement different systems. Learning outcomes: L01, L02, L03, L04, L05 |
Week 13 |
Applied Class |
Architecture Presentation Your team will be allocated a timeslot during week 13 to make your presentation. The presentation may take place during a lecture, practical, case study contact timeslot, or other specially scheduled session. Learning outcomes: L01, L02, L03, L05 |
Lectures and practicals start in week 1.
Case study sessions start in week 2.
University policies and procedures apply to all aspects of student life. As a UQ student, you must comply with University-wide and program-specific requirements, including the:
Learn more about UQ policies on my.UQ and the Policy and Procedure Library.
Your school has additional guidelines you'll need to follow for this course: