Welcome to SE-380  
Principles of Software Architecture
This course provides an introduction to the architecture and design of complete software systems, building on components and patterns. Topics covered include architectural principles and alternatives, design documentation and the relationship between levels of abstraction. Laboratory assignments permit students to develop, evaluate and implement their designs.
Prerequisite: SE-280, SE-3821, or SE-2811
3-2-4 (class hours/week, laboratory hours/week, credits)
Required text: Software Architecture in Practice, 3rd ed. Len Bass, Paul Clements, Rick Kazman, Addison-Wesley, 2012.

Optional:
Software Systems Architecture 2nd ed. Mick Rozanski, Eoin Woods.
Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2002.
Upon successful completion of this course, the student will:
  • understand principles of software architecture and their application to the software development process
  • understand and be able to apply a variety of architectural styles
  • be able to review and evaluate software architectures
  • be able to specify a software architecture and implement a software system embodying it
  • be able to use computer-aided software engineering (CASE) tools in an architecture-driven design process
  • be able to work effectively as a member of a small team
  • be able to communicate architecture and design issues in an oral presentation