CPSC 410: Advanced Software Engineering is offered by the Department of Computer Science at the University of British Columbia.
Important: this is a group-based, development-heavy course. You will be required to propose, design, build, validate, and demonstrate a large software product to the class, the TAs, and the instructor. Do not take this project lightly as it will be a huge amount of work and comprises the majority of your final grade.
Lectures are held Monday, Wednesday, and Friday 1300 to 1350 in Dempster 110. My office hours are TBD but will be held in ICCS 309. Official administrative entry.
While the course does not have a required textbook, much of the materials will be sourced from the first two texts; additional books are supplementary.
- Richard N. Taylor, Nenad Medvidovic, and Eric Dashofy. Software Architecture. Foundations, Theory, and Practice. Available in the library or for purchase (e.g., through Amazon.ca). Slides for this book are available online.
- Ian Gorton. Essential Software Architecture. Available online or for purchase (e.g., through Amazon.ca). Slides for this book are available online.
- Fred P. Brooks Jr. The Mythical Man Month. Available in the library or for purchase (e.g., through Amazon.ca).
- Fred P. Brooks Jr. The Design of Design. Unfortunately not in the library but still available through Amazon.ca.
Contact
The best way to get help is via Piazza; please prepend your questions with your TAs name to ensure you get a quick response (TAs will be assigned to project groups after they are all formed). Sign up for piazza here. You can reach me at rth.se2(at)gmail.com for questions not appropriate for Piazza.
Course Schedule
Date | Videos | Slides | In Class |
---|---|---|---|
Sept 9 | Introduction | Lecture | |
Sept 11 | Architecture intro | Kitchen Design | |
Sept 14 | Architectural views & decomposition | System Decomposition | |
Sept 16 | Non-functional properties | NFP Alternatives | |
Sept 18 | NFP Stakeholders | ||
Sept 21 | Specifications | ||
Sept 23 | Game Show | ||
Sept 25 | Game Show | ||
Sept 28 | Deliverable 1 | Project Proposals
|
|
Sept 30 | Project Proposals
|
||
Oct 2 | Project Proposals
|
||
Oct 5 | Architectural Styles Intro Architectural Styles (complete) |
|
|
Oct 7 |
|
||
Oct 9 |
|
||
Oct 12 | No Class | Thanksgiving | No Class |
Oct 14 | Architectural Style Activity | ||
Oct 16 | Midterm | ||
Oct 19 | Guest Lecture: Testing in Practice | ||
Oct 21 | Midterm postmortem | ||
Oct 23 | |||
Oct 26 | Testability | ||
Oct 28 | Testing: Coverage | ||
Oct 30 | Testing: Mutation | ||
Nov 2 | Prototype Demos |
Monday
|
|
Nov 4 | Prototype Demos |
Wednesday
|
|
Nov 6 | Prototype Demos |
Friday
|
|
Nov 9 | MVC / MVP | ||
Nov 11 | No Class | Remembrance Day | No Class |
Nov 13 | Cloud Computing | ||
Nov 16 | Guest Lecture: Understanding Artifact Provenance | ||
Nov 18 | Guest Lecture: Relating Architecture to Project Management | ||
Nov 20 | DevOps Stack | ||
Nov 23 | DevOps Deployment | ||
Nov 25 | SOLID | ||
Nov 27 | Course Recap | ||
Nov 30 | Final Demo |
Monday
|
|
Dec 2 | Final Demo | Wednesday
|
|
Dec 4 | Final Demo |
Friday
|
|
Dec 16 | 1530-1800 | Final Exam | Location: ANGU 098 |
Project
The project forms an integral part of this course. The goal of the project is to produce a significant mobile app that performs some useful function. This software must have a considered and defensible architecture. There are only three real restrictions on the app idea itself: no database management apps will be accepted (e.g., simple CRUD apps that do not make sense in a mobile context) and apps that require crowd buy-in are not acceptable (e.g., apps that would require large numbers of people to contribute content to be viably useful).
You must demo your app on a mobile device (iOS, Android, BB10, WP8, or FirefoxOS). Apps must be written in Javascript and deployed to the phone using Apache Cordova. You can use any libraries you wish (e.g., React, Web Components, etc.). After the prototype demo we will provide a 'pivot' to each group; this will consist of a new or modified requirement for your app that you will have to include for the final demo (and write about in the architecture and design deliverable).The projects will be completed in teams of four. You are free to select your own team; if you do not have a team or your team has less than four members, please talk to me and I will set you up.
Projects will have a difficulty scale applied to them by the instructor and TAs. The scale formula will be:
(project + bonus) * scale = final project gradeScale will range between 0.75 and 1.0. The components of the scaling mark will be determined by:
- 5: completeness (compared to proposal)
- 5: utility
- 5: polish
- 10: difficulty
- Best pitch
- Best prototype demo
- Best final demo
- Accepted to curated App Store (iOS, Blackberry, Windows Phone)
Assessment
Deliverable | Date | Format | Value |
---|---|---|---|
SE Impressions | Sept 9 | In Class | Pass/Fail |
D0: Project Groups | Sept 25 | - | Pass/Fail |
D1: Proposal Presentations | Sept 28/30/Oct 2 | In Class (+ online) | 5% |
Midterm (optional: final can replace) | Oct 16 | In Class | 10% |
D2: Architecture & Design | Nov 2-6 | Oral Exam (+ online) | 15% |
D3: Prototype Demonstration | Nov 2/4/6 | In Class | 5% |
D4: Project Acceptance Test | Nov 30 | Oral Exam (+ online) | 15% |
D5: Presentation + Video | Nov 30/Dec 2/4 | In Class | 10% |
Final Exam | Dec 16 | 40% |
2014 Project Videos
A selection of project videos from 2014 are included in this playlist to help you get an idea of the scope of projects suitable for the course.
You must pass the final exam and all pass/fail assignments to pass the course.
Policies
- Late submissions will not be accepted except in case of documented emergency.
- For special accommodation for the exam or midterm, contact the Access and Diversity Office.
- In order to maintain a culture of academic integrity, members of the University of British Columbia community are expected to promote honesty, trust, fairness, respect and responsibility. [See the academic integrity site for more information.]
- Everyone involved with CPSC 310 is responsible for understanding and abiding by the University's Respectful Environment Statement. [See the complete statement.]
- As this course is heavily oriented around the group project, and the groups are formed early, it is a difficult class to join late. As such, the advisors will not place new students into CPSC 410 after Sept 14.