Software Architecture: Principles and Practices


28 hours

Software Architecture: Principles and Practices

Course Code: 
Course Categories: 
Outline Status: 
28 hours
Outline Source Material: 


Before registering for this course, participants should have

  • experience in the development of software-reliant systems
  • some familiarity with modern software engineering concepts

Although the term software architecture is used frequently in today's software industry, its meaning is not universally understood.

  • What is software architecture?
  • How do you use software architectures in practice?
  • What does a software architect do for an organization?
  • What value does software architecture provide?

This course introduces the essential concepts of software architecture. A software architecture is an abstract view of a software system distinct from the details of implementation, algorithms, and data representation. Architecture is, increasingly, a crucial part of a software organization's business strategy. Software architectures can

  • provide flexibility and adaptability in changing markets
  • allow for interoperability with other players in the marketplace
  • provide leverage of control in a marketplace
  • help developers focus on a niche in the marketplace
  • be used as a sales and marketing tool
  • help reduce maintenance costs and amortize development costs
  • assist in workforce organization and with project oversight and control
  • establish a common corporate vocabulary
  • shorten learning time

This course emphasizes the importance of the business (or mission) context in which systems are designed and introduces participants to software architectures in a real-world setting. "Industrial-strength" case studies and course exercises illuminate the key technical and organizational issues regarding software architectures. 

Course Outline: 


This course provides attendees with a thorough overview of software architectures. After attending this course, participants will have a better understanding of

  • what is a software architecture
  • why a software architecture is important
  • the architecture influence cycle
  • the relationships between system qualities and software architectures
  • software architectural patterns and tactics, and their relationship to system qualities
  • attribute-driven design
  • software architecture documentation
  • software architecture evaluation
  • architectural reuse via software product lines
  • architectures in Agile projects


  • definition and overview of software architecture
  • the architecture influence cycle: what influences software architects and software architecture
  • understanding and achieving quality attributes
  • architecture design using patterns and tactics
  • documenting software architecture
  • evaluating software architecture
  • architecture reuse via product lines
  • architecture in Agile projects
Overview in Category: