COMP 529 - Software Architecture

Course Content

Typical Week

1st half of the 1st class of the week

  • Technology Capsule
  • Lecture on a software architecture topic.
  • Description of the Homework.

2nd half of the 1st class

  • Each study group splits the homework.
  • Workshop or Case Study or Exercises: all will have a deliverable.

1st half of the 2nd class

  • Each student sends a small report (from 1 to 3 pages) by email before the class.
  • Technology Capsule.
  • Discussion between topic experts.
  • Discussion within study group.

2nd half of the 2nd class

  • Wrap-up: class discussion plus small summary by instructor.

Exceptions

  • First week
  • Exam week
  • Presentation weeks

Week 1 - Introduction to Software Architecture

Date: January 4th - 6th

Content:

  • Course Overview: study groups, projects, evaluation, topics.
  • Definition of Software Architecture
  • Components vs. Modules
  • Quality of a Software Architecture

Activity 1

  • Define Software Architecture

Activity 2

  • How to distinguish “good” software architecture from “bad” software architecture?

Week 2 - Connectors

Date: January 11th - 13th

Milestone 0: January 14th @ 11:30 AM

Content:

Activity 1

  • Uncle’s Bob Backup System: Create the architecture of a distributed backup system.

Week 3 - Documentation, Views, and Viewtypes

Date: January 18th - 20th

Milestone 1: January 21st @ 11:30 AM

Content:

  • Software Architecture Documentation
  • Views, Viewtypes
  • Diagrams

Activity 1

  • Components and Connectors Granularity: are these examples at the right level of abstraction?

Week 4 - Architectural Styles

Date: January 25th - 27th

Content:

  • Architectural Styles

Activity 1

  • Uncle’s Bob Backup System: Present two views from two viewtypes of the backup system.

Week 5 - Reference Architecture and Product Lines

Date: February 1st - 3rd

Content:

  • Reference Architecture
  • Product Lines

Activity 1

  • Software Architecture Challenge: Solve a circular dependency problem.

Week 6 - Performance

Date: February 8th - 10th

Milestone 2: February 11th @ 11:30 AM

Content:

  • Performance patterns
  • Cloud Computing and NoSQL

Activity 1

  • Uncle’s Bob Backup System: Create three different architectures using three architectural styles.

Week 7 - Exam

Date: February 15th - 17th

Content:

  • Class 1: Revision
  • Class 2: Exam

Week 8 - Study Week

Date: February 22nd - 24th

Week 9 - Evolution

Date: March 1st - 3rd

Content:

  • Review of the Exam and Milestone 3
  • Architectural Evolution

Week 10 - Extensibility

Date: March 8th - 10th

Content:

  • Extensibility Patterns: Facade, Pub/Sub, Plug-ins, etc.

Week 11 - NoSQL and Eclipse

Date: March 15th - 17th

Milestone 3: March 14th @ 11:30 AM

Content:

  • Impact of NoSQL on Software Architecture
  • Eclipse Platform

Week 12 - Cloud Computing and J2EE

Date: March 22nd - 24th

Content:

  • Cloud Computing
  • J2EE

Week 13 - Project Presentation

Date: March 29th - 31st

Week 14 - Project Presentation

Date: April 5th - 7th