CS 746 Software Architecture



Objectives

This is a project course that covers software architecture as described in the computing literature. Students present papers from the literature. They carry out a large project, usually in teams, that explore key topics in software architecture.

Schedule

Three hours of lecture per week.

Outline

Introduction (3 hrs)

Basic concepts in software architecture. Nature of student presentations. Project overview.

Architectures and Open Source (3 hrs)

Systems such a Linux, VIM and Apache. Processes for their design. Their architectures.

Foundations of Software Architecture (3 hrs)

Approaches, definitions and examples providing a basis for the field.

Extraction of Software Architecture (3 hrs)

Methods of extraction of software architecture from existing artifacts (mainly, from source code). Case studies of extractions.

Theory Underlying Software Architecture (3 hrs)

Algebraic modelling and manipulation of large graphs. Elision. Linking. Views. Specifying constraints on connectivity.

Architecture of Web-Based Systems (3 hrs)

Three and N tiered architecture. Heterogeneous implementation technologies.

Historical Perspective (1.5 hrs)

Early papers on software architecture.

Layouts of Graphs for Visualizing Architecture (3 hrs)

Standard layout algorithms: Sugiyama and spring.

Clustering (1.5 hrs)

Automatic clustering techniques to discover objects and subsystems.

Architecture of Enterprise Systems (3 hrs)

Structure of inter and intra enterprise computer systems. Underlying communications and glue systems such as Corba.

Project Presentations (6 hrs)

Each student project is presented to the class.


Campaign Waterloo

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1

Tel: 519-888-4567 x33293
Fax: 519-885-1208

Contact | Feedback: cs-webmaster@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics


Valid HTML 4.01!Valid CSS! Last modified: Friday, 01-Jun-2012 11:00:32 EDT


Menu:ShowHide