One of the most important skills for software engineers is to understand the relationship between alternative ways to organize software, and the impact of those decisions on different aspects of quality of service.  This course focuses on the relationship between architectural patterns, or styles, and quality of service (QoS).
By the end of the course, students will be able to:

·         Recognize major architectural styles and the QoS tradeoffs that each presents.

·         Elicit the QoS preferences of stakeholders in a systematic way.

·         Evaluate architectural alternatives with respect to a set of QoS requirements.

·         Design for, and reconcile competing QoS requirements.

·         Improve and tune application code conformant to the major architectural styles.