EECE 417 – Software Architecture
(Spring’10)

 

Instructor: Matei Ripeanu

TA: Lauro Beltrao Costa  

 

Announcements

[14/04]   Project demos: 15/04@3:30pm or 26/05@1pm – see email for submission details.

[14/04]    Final exam: April 20th @ 12pm in MCLD214

[25/03]   Guidelines for high-level design document added.  Deadline: April 7th, 11:59pm. Submission: send your document to Lauro.

[03/03]   An early project prototype (by group8).

[01/03]   Project phase II published. Deadline: March 16, 11:59pm.

[03/02]   Project phase I published. Deadline: February 18, 11:59pm.

[03/02]   Guidelines for your requirements document added.   Deadline for submitting requirements document: February 11th, 11:59pm. Submission: send your document to Lauro.

[22/01]   Project -- MyPlay.com initial product requirements published. 

[19/01]   Form project groups of up to 3 students by 26/01. Email your project group to Lauro at lauroc@ece.ubc....

[12/01]    Mailing list now working! Subscribe to the class mailing list either by emailing sympa@lists.ece.ubc.ca with “subscribe eece417@lists.ece.ubc.ca” in the body of the message or by visiting https://lists.ece.ubc.ca/

 

Logistics

·         Class: Tu/Th 15:30 to 17:00 in MCLD228

·        Office hours: 17:00 to 17:30 after each class in my office (KAIS 4033). Other times by appointment.

 

Lecture schedule (tentative)

 

 

Date

Topic

Required

Reading

Slides

Recommended material.

Project

(programming) Design pattern

W1

01/05

Overview. The ‘big idea’.

Gorton chapter 1

Bass chapters 1 and 2

[s01]

[s02]

Taylor chapters 1 and 2.

 

 

W2

01/12

Architecture in context.

Review of OO modeling & UML

 

[s03]

[s04]

Taylor chapters 1 and 2.

UML Distilled: A Brief Guide to the Standard Object Modeling Language, M. Fowler, Addison Wesley, 2003.

 

 

W3

01/19

Review of OO modeling & UML

Basic concepts.

Architectural patterns.

 

[s05]

[s06]

 

Form project groups by 26/01

Customer requirements document published

Observer

Factory

W4

01/26

Tree tier web- applications – cloud computing Google AppEngine

 

[s07-08]

 

Customer ‘interview’ 01/26

 

W5

02/02

Google AppEngine Architectural styles.

 

Taylor chapter 4

[s09]

[s10]

AppEngine: main site, blog, talks

Servlets and JSP tutorial

D. Garlan, M. Shaw, An Introduction to Software Architecture

Requirements documentation. Guidelines

[due: 11/02]

Singleton

W6

09/02

Styles and greenfield design.

MapReduce

Taylor chapter 4

 

[s11-12]

[MapReduce]

ClusterComputing and MapReduce video series

MapReduce: Simplified Data Processing on Large Clusters, Jeffrey Dean, Sanjay Ghemawat, OSDI’04

Implementation step I

[due 18/02]

Command

[slides]

[another take][]

Reading break

 

 

W7

02/03

Software connectors.

[Quiz: March 4th]

 

 

 

Implementation step II

[due 16/03]

Adapter, Proxy, Iterator, Template method [slides]

W8

09/03

Software connectors.

 

Taylor chapter 6

[s13]

[GoogleFS]

The Google File System: [paper][video][interview]

Towards a taxonomy of software connectors, N. Mehta, N. Medvidovic, S. Padhke, 2000

 

Composite, builder, mediator [slides]

Prototype, façade [slides]

W9

16/03

Software connectors.

 

Quality Attributes.

Taylor chapter 6

 

Bass chapters 4 and 5

[s13]

[s14-15]

Taylor chapter 12

 

 

Strategy, decorator [slides]

W10

23/03

Designing for security.

 

Achieving qualities

Bass chapters 4 and 5

[s14-15]

[s16]

Taylor chapter 12, 13

 

High-level design document

[due: 07/04]

 

W11

30/03

More quality attributes.

 

Case study: The eBay architecture

 

[slides]

An interview with R. Shoup – eBay Distinguished Architect

 

 

W12

06/04

Modeling.

 

Architecture evaluation.

 

Taylor chapter 6

 

Bass chapter 11

[slides]

Bass chapter 9

 

 

Taylor chapter 8

 

 

 

W13

13/04

Wrap-up

 

Project presentations

 

 

[slides]

 

Project demos

* 15/04@3:30pm

* 26/05@1pm 

 

 

Discussion list

Subscribe to the class mailing list either by emailing sympa@lists.ece.ubc.ca with “subscribe eece417@lists.ece.ubc.ca” in the body of the message or by visiting https://lists.ece.ubc.ca/

 

Textbooks

* [Required] Essential Software Architecture, Ian Gorton, Springer, 2006. ISBN: 978-3540287131

* [Recommended] Software Architecture: Foundations, Theory, and Practice, Richard N. Taylor, Nenad Medvidovic, Eric Dashofy, Wiley Eds., 2009. ISBN: 978-0470167748

* [Recommended] Software Architecture in Practice, 2nd edition, Len Bass, Paul Clemens, Rick Kazman, Addison Wesley 2008, ISBN: 978-0321154958

 

 

Grading

* Assignments + Mini-Project: 40%

* Quizzes: 15%

* Final exam: 45% (no midterm).

* Class and mailing list participation: 3% (bonus)

 

Attendance

Class attendance is mandatory, though attendance won't be taken. Most of the course material, including assignments and lecture notes, will be posted on the class web pages. However, some topics may get covered in class and not reflected in the online notes. You're responsible for all material covered in class, whether or not it appeared on the Web site - I suggest you ask a fellow student, the TA, or the professor to fill in any material you may have missed.