Computer Science and Software Engineering

Seattle University

CSSE 532 – Software Architecture

Spring 2007

 

Instructor

Roshanak Roshandel

 

 

Office: Engr 507

 

 

Phone: (206) 296-5512

 

 

Office Hours: Thursdays 5:00-6:00 pm or by appointment

 

 

roshanak@seattleu.edu

 

 

 

 

 

Overview

 

Over the past decade, software architecture has become a critical part of the development of large and complex software systems, and an important research area in the software engineering community. Architecture description languages and formal modeling notations have been proposed to model and analyze structural and behavioral properties of software systems in terms of components, connectors, and their interactions. Such a focus on architectural aspects of the system has shown significant return on investment in terms of improving the quality of the software system in a cost-effective way.

This course focuses on familiarizing the students with principles of software architecture, connectors, architectural description languages, architectural styles, architectural evolution and product-line software architecture, architectural analysis, and quality issues. We will also discuss architecture-level activities in the context of the broader software development life cycle.  Moreover, latest trends in software architecture practice including Service-Oriented Architectures and Model Driven Architectures will also be covered.

 

 

 

 

 

Textbook and Readings

Software Architecture: Foundations, Theory, and Practice, Taylor, Medvidovic, Dashofy, John Wiley & Sons, to appear 2007. (No purchase necessary. Course pack distributed on the first day of class)

Supplementary readings and papers provided throughout the quarter. 

 

 

 

 

 

Grading

 

·      Exam 1            20%

·      Exam 2            25%

·      Homework      15%

·      Project              30%

·      Reflections and Discussion   10%

 

 

 

 

 

Topics

·      Principles of Software Architecture

·      Origin of Software Architecture

·      Architectural Building Blocks

·      Modeling software architectures

·      From Requirements to Architecture to Implementation

·      Software Architecture and Dependability

·      Evolution

·      Product Families

·      Current Trends

 

 

 

 

 

Class Format

You are expected to read assigned materials in advance of the relevant class (papers and textbook). There will be two exams which test basic concepts, as well as your ability to apply the material in new problems. You are encouraged to participate in various class activities, ask questions,  and discuss and test your ideas. You are also highly encouraged to ask questions either during office hours or by email. There will a team project as well as several individual homework assignments.

 

 

 

 

 

Academic Integrity

Plagiarism is the unacknowledged use of the work or intellectual property of other persons, published or unpublished, presented as one’s own work. All students are expected to work on all individual assignments independently. Collaboration on individual assignments is considered cheating and will be penalized accordingly. Other examples of behavior that is not tolerated in this class include copying all or part of someone else’s work and submitting it as your own, sharing your assignment solution with other students in the class, consulting with another student during an exam, and copying text from published literature without proper attribution. If you have questions about what is allowed, please discuss it with the instructor. All students are responsible for reading and following the Seattle University Academic Honesty Policy. Students who violate University standards of academic honesty are subject to disciplinary sanctions, including failure in the course and suspension from the University.

 

 

 

 

 

Schedule

This schedule is subject to change.

 

 

 

Topics

Assignments

 

 

Week 1 -- 3/29/2007

·    Introduction and Overview

·      Origin of Software Architecture

·     Software Architecture in the Context

 

Homework 1 assigned.


Textbook: Ch 1, 2

 

 

Week 2 – 4/5/2007

·      Architectural Building Blocks

·      Basic Concepts

·      Project Discussion

 

 

Homework 1 due.


Textbook: Ch 2, 3

 F. P. Brooks, Jr. No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer, April 1987.

 D. E. Perry and A. L. Wolf. Foundations for the Study of Software Architectures. ACM SIGSOFT Software Engineering Notes, October 1992

P. Kruchten. Mommy, Where Do Software Architectures Come from? 1st International Workshop on Architectures for Software Systems, Seattle, WA, April 1995.

 

 

Week 3 – 4/12/2007

·      Case studies

·      Designing Architectures

·      Software Connectors

 

Project Proposals due Saturday 4/14/2007 midnight.

 Textbook: Chapter 4, 5, 15

 

 R. Kazman. Distributed Flight Simulation: A Challenge for Software Architecture. Technical Report,  University of Waterloo

 W. Tracz. DSSA (Domain-Specific Software Architecture) Pedagogical Example. ACM SIGSOFT Software Engineering Notes, July 1995.

 

 

 

 

Week 4 – 4/19/2007

·      The Architectural Style of the Web

·      Architectural Styles

·      Exam Review

 

 

Textbook: Chapter 6

Representational State Transfer (REST) – from Roy Fielding’s Dissertation

 

 

Week 5 – 4/26/2007

·      Architecture Description Languages

 

·      Modeling Software Architectures

 

Takehome Exam 1

UML OMG Specification

 

 

Week 6 – 5/3/2007

·      UML and Software Architectures

·            Quality and Dependability

 

 

 

 Nenad Medvidovic, Eric Dashofy, and Richard N. Taylor. Moving Architectural Description from Under the Technology Lamppost. Information and Software Technology. pp. 12-31. Vol. 49, No. 1, 2007.

Dashofy et. alAn Infrastructure for the Rapid Development of XML-based Architecture Description Languages. In Proc.  of the 24th International Conference on Software Engineering (ICSE2002.)

 

 

Week 7 – 5/10/2007

·      From Architecture to Implementation

·      Middlewares

 

Textbook: Chapter 9

 Mevdovic N. On the role of middleware in architecture-based software development. in Proceedings of the 14th international conference on Software engineering and knowledge engineering

W. Emmerich et al., The Impact of Research on Middleware Technologies, Software Engineering Notes, v. 32, N. 1, January 2007.

 

 

Week 8 – 5/17/2007

·      Evolution and Product Families

·      Domain Specific Software Architecture

 

 

 

Progress Report Due

Textbook: Chapter 15

 

S. A. Hendrickson, A. van der Hoek, Modeling Product Line Architectures through Change Sets and Relationships. In Proc. of the 29th International Conference on Software Engineering (ICSE 2007).

 

 

 

Week 9 – 5/24/2007

 

·      Guest Speaker (Alan Robins – Amazon)

·      Off  the Shelf Components

·      Service Oriented Architectures

·      People, Roles, Teams

 

 

 

Textbook: Chapter 17

D. Garlan et al. Architectural Mismatch: Why Reuse Is so Hard. IEEE Software, November 1995.

 

 

 

Week 10 – 5/31/2007

·      Team Presentations

·      Exam Review

 

 

 

 

Final Exam

Final Report and Deliverables

Thursday June 7, 6:00pm

Saturday June 9, midnight

 

Updated May 23, 2007

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This is a personal WEB site developed and maintained by an individual and not by Seattle University. The content and link(s) provided on this site do not represent or reflect the view(s) of Seattle University. The individual who authored this site is solely responsible for the site's content. This site and its author are subject to applicable University policies including the Computer Acceptable Use Policy (www.seattleu.edu/policies).