UBC CPSC 410‎ > ‎

UBC CPSC 410 - Advanced Software Engineering (2016 Winter T2)


Overview


Specification, Design, Construction and Validation of Multi-Version Software Systems.

When you have completed this course, you should be able to:

  • Understand the benefits and disadvantages of various architectures for constructing large, multi-version, multi-component software systems.
  • Apply software verification and validation techniques to the analysis of such projects.
  • Demonstrate ability in building a large, complex software project using modern software engineering technologies.
  • Communicate your architectural rationale, and provide insight into requirements traceability to code.

Contact


Instructor: Thomas Fritz & Gail Murphy

Office hours before final in ICCS 335: Friday April 7th 13:00 - 14:00 and Monday April 10th 14:00 - 15:00, or email fritz at cs.ubc.ca for an appointment.

TAs:

  • Daniel Almeida
  • Arthur Marques

Contact us at: cs410@ugrad.cs.ubc.ca 


Schedule


Lecture:

Thursdays 1700-2000, DMP 301 except for Thursday Jan 12 when it is in FSC 1001

This list is a rough guide only. Readings will likely be updated even after class has completed.

 Date Topic  Materials
 Jan 5            Introduction and Specifications Slides (1up)
Slides (2up)
 Jan 12  Specifications cont. Slides (1up)
Slides (2up)
 Jan 19  Modularity & Architectural Design Intro Slides (1up)
Slides (2up)
 Jan 26  Project Presentations, (REST) APIs &
 Intro to Architectural Styles
Slides (1up)
Slides (2up) 
 Feb 2  Architectural Styles Slides (1up)
Slides (2up)
 Feb 9  Architecture to detailed OO design & SOLID  principles Slides (1up)
Slides (2up)
 Feb 16  Design Patterns & Code Metrics & Software Process Slides (1up)
Slides (2up) 
 Feb 23      Reading Break, no class  
 Mar 2  Midterm (part of lecture) and class on testability  
 Mar 9  Project Demos and Testing  Slides (1up)
 Slides (2up)
 Mar 16  MVP, Code Metrics and Non-Functional Properties  Slides (1up)
 Slides (2up)
 Mar 23 Guest Lecture: Stefan Moser (iQmetrix) 
Designing Distributed Systems
 Slides (1up)
 Slides (2up)
 Mar 30  Cloud & Deployment & Releases  Slides (1up)
 Slides (2up)
 Apr 6  Final Project Presentations  Slides


Piazza has been configured for this term. Please be mindful of the UBC Academic Misconduct Policy with respect to posting project solutions on Piazza.

TA Office Hours

Daniel Almeida: Tuesday 11am-12pm and Thursday 2pm-3pm, ICCS X339 (except for Jan 24: X139)

Arthur Marques: Monday & Wednesday, 3:10-4:10pm, ICCS X151


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 a few restrictions on the app idea itself, in particular, the app 

  • has to be a mobile app and you have to demo your app on a mobile device (iOS, Android, BB10, WP8, or FirefoxOS) 
  • has to interact with a server with a REST API that you created
  • cannot just be a database management app (e.g., simple CRUD apps that do not make sense in a mobile context)
  • cannot be an app that requires crowd buy-in before you could demo its usefulness (i.e. you need to be able to demo the usefulness of the app to us in class)

You can use any libraries you wish.

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 the instructor.

Projects will have a difficulty scale applied to them by the instructor and TAs. The scale formula will be: 

(group project + bonus) * scale + individual = final project grade

Scale 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

The individual part makes up 5% of the project and corresponds to the individual user reviews for the other apps. There will also be various sources of bonus marks during the term; each will be worth 2%:

  • Best pitch
  • Best prototype demo
  • Best final demo
  • Accepted to curated App Store (iOS, Blackberry, Windows Phone)

NOTE: The expectation is that you will work approximately 12 hours per week on this course; at least 5 of these hours should be on the project. Given that the course lasts 13 weeks, each team member is expected to work on the project at least 65 hours. You should be able to accomplish something pretty great in this time; please make the most of this opportunity. While lines of code is a terrible metric, no past project has been less than 5 KLOC and most range between 10-20 KLOC.

Project Videos


Links to the project videos for this class

Project Schedule


Overview
This table provides an overview of the due dates. See below for details on what time of day and in what format each deliverable must be provided.

Date Deliverable Project Grade %
Jan 5, end of class 0. Background Pass/Fail
Jan 12, 11:59pm 1. Group Formation Pass/Fail
Jan 25, 11:59pm 2. Project Proposal 10% (with presentation)
Jan 26, in class 2. Project Presentation see above
Jan 26, 11:59pm 2+. App Reviews 1.5% (individual)
Feb 8, 11:59pm 3. Architecture & Design (written part) 28% (with oral part)
Feb 13,14,15,16 3. Architecture & Design (oral part) (see above)
Mar 8, 11:59pm 4. Prototype Demo & Status Update
(1 page written document)
10%
Mar 9, in class 4. Prototype Demo (in class) (see above)
Mar 10, 11:59pm 4+. App Reviews 1.5% (individual)
Mar 29, 11:59pm 5. Testing & Reflection (written part) 28% (with oral part)
Apr 3,4,5,6 5. Testing & Reflection (oral part) (see above)
Apr 5, 11:59pm 6. Project Presentation
(1 page written document)
15%
Apr 6, in class 6. Project Presentation (in class)
(see above)
Apr 7, 11:59pm 6+. App Reviews 1% (individual)
Apr 5, 11:59pm 7. Project Video (60 to 90 seconds)
5%

Details
0. Background (Due Jan 5, end of class)
    Please complete this form and hand it in at the end of class.

1. Group Formation (Due Jan 12, 11:59pm by email)
    Use the class portal at: http://skaha.cs.ubc.ca:11410/ to enter your group information. There must be 4 members in your group unless you have spoken to the instructor.

2. Project Proposal & Presentation (Proposal & slides due Jan 25, 11:59pm by email; presentation in class)
2+ App Reviews (Due Jan 26, 11:59pm, online)

3. Architecture & Design (written part due Feb 8, 11:59pm by email; oral assessment during the team meeting slots)

4. Prototype Demo (written part due Mar 8, 11:59pm by email; presentation in class)
4+ App Reviews (Due Mar 9, 11:59pm, online)

5. Testing & Reflection (written part due Mar 29, 11:59pm by email; oral assessment during the team meeting slots)

6. Project Presentation (written part due Apr 5, 11:59pm by email; presentation in class)
6+ App Reviews (Due Apr 7, 11:59pm, online)

7. Project Video (URL and metadata due Apr 5, 11:59pm by email)

Grading



% of Final Grade Component
50% Project
10% Midterm
40% Final Exam

To pass the course and receive credit you must achieve a passing grade on each of the project and the final exam. You must also pass all pass/fall parts of the project. Sample midterm and final exams will not be available. 

Policies


Waitlist

There is extremely high demand for this course this term. If you are on the waitlist and wish to join the class, please come to the front after EVERY class to sign in. Those students who have signed into the first class will be forwarded to the advisors who will insert students into available spots by the group formation deadline (Jan 11/12). This does not guarantee you will be admitted, but without signing in you will not be eligible. Students on the waitlist should not form groups with students who are already enrolled in case your whole group does not make it into the course this term. Unfortunately, the instructor is not able to override class seat assignments or the waitlist itself.

Late Submissions

All project deliverables must be submitted on time. Late submissions cannot be accepted.

Accommodation

If you are sick and unable to write the midterm, please contact the instructor as soon as possible -- provide medical documentation. Students who miss the final exam due to illness should consult the Faculty of Science Policy on missed exams. Note that students who do not have sufficient standing during the term may not qualify for academic concession if they miss the final. Students who require dispensation based on their unique circumstances should refer to the UBC policy on Academic Concessions. Cell phones, calculators, translators, and all other electronic devices are prohibited on desks during exams. They must be turned off and placed in your bag or on the ground. Students who need exam accommodation must make an official request to the Access and Diversity Office. 

Academic Conduct

Each student is responsible for understanding and abiding by the University and Departmental policies on academic conduct. Specifically:

Respectful Environment

Everyone involved with CPSC 410 is responsible for understanding and abiding by the University's Respectful Environment Statement.

The Statement of Principle of UBC's Respectful Environment Statement is "The best possible environment for working, learning and living is one in which respect, civility, diversity, opportunity and inclusion are valued. Everyone at the University of British Columbia is expected to conduct themselves in a manner that upholds these principles in all communications and interactions with fellow UBC community members and the public in all University-related settings."


Ċ
Gail Murphy,
Jan 9, 2017, 8:29 PM
Ċ
Thomas Fritz,
Jan 4, 2017, 3:00 PM
Ċ
Gail Murphy,
Jan 16, 2017, 8:22 PM
Ċ
Gail Murphy,
Jan 16, 2017, 8:55 PM
Ċ
Thomas Fritz,
Feb 2, 2017, 3:53 PM
Ċ
Thomas Fritz,
Feb 2, 2017, 3:54 PM
Ċ
Thomas Fritz,
Feb 2, 2017, 3:45 PM
Ċ
Thomas Fritz,
Feb 2, 2017, 3:45 PM
Ċ
Thomas Fritz,
Feb 9, 2017, 5:34 AM
Ċ
Thomas Fritz,
Feb 9, 2017, 5:34 AM
Ċ
Thomas Fritz,
Feb 24, 2017, 4:53 AM
Ċ
Thomas Fritz,
Feb 24, 2017, 4:53 AM
Ċ
Thomas Fritz,
Mar 9, 2017, 4:32 PM
Ċ
Thomas Fritz,
Mar 9, 2017, 4:32 PM
Ċ
Thomas Fritz,
Apr 12, 2017, 12:41 AM
Ċ
Thomas Fritz,
Apr 12, 2017, 12:42 AM
Ċ
Thomas Fritz,
Mar 22, 2017, 6:27 PM
Ċ
Thomas Fritz,
Mar 22, 2017, 6:27 PM
Ċ
Thomas Fritz,
Mar 31, 2017, 4:32 PM
Ċ
Thomas Fritz,
Mar 31, 2017, 4:32 PM
Ċ
Thomas Fritz,
Apr 6, 2017, 12:08 PM
Ċ
Thomas Fritz,
Jan 13, 2017, 7:13 PM
Ċ
Thomas Fritz,
Jan 13, 2017, 7:06 PM
Ċ
Thomas Fritz,
Jan 16, 2017, 8:16 PM
Ċ
Thomas Fritz,
Feb 16, 2017, 12:44 PM
Ċ
Thomas Fritz,
Feb 16, 2017, 12:44 PM
Ċ
Thomas Fritz,
Mar 14, 2017, 6:57 PM
Ċ
Thomas Fritz,
Mar 17, 2017, 3:47 PM
Ċ
Thomas Fritz,
Mar 17, 2017, 3:47 PM
Ċ
Thomas Fritz,
Mar 14, 2017, 7:13 PM