Advanced Software Architecture
Architectural design of complex software systems. Techniques for designing, evaluating and implementing software system structures, models and formal notations for characterizing and reasoning about architectures, tools and generating specific instances of an architecture, and case studies of actual system architectures. Role of Standards. Students must complete a project that involves substantial software design. Students work in teams. Progress is determined through a preliminary design review; presentation; demonstration of the design; and final report.