Successful design of large systems requires the ability to describe, evaluate, and create systems at an architectural level of abstraction. The course examines commonly-used software system structures, techniques for designing and implementing these structures, models and formal notations for characterizing and reasoning about architectures, tools for generating specific instances of an architecture, and case studies of actual system architectures. It provides the background and skills that students will need to evaluate the architectures of existing systems and to design new systems using well-founded architectural paradigms.


Please send your comments to Ali Arsanjani. This document was updated 2/26/2003.