The concept of software architecture emerged in the eighties as an abstraction of all the design decisions pertaining to broad system structure, component coordination, system deployment, and system operation. As such, software architecture deals less with functional attributes than with operational attributes of a software system. So much so that a sound discipline of software architecture consists in identifying and prioritizing important non functional attributes that we want to optimize in the software system, and using them as a guide in making architectural decisions. We know of no architectural description language that allows us to represent and reason about non functional quality attributes such as response time, throughput, failure probability, security, availability, etc. In this paper, we present a modified version of ACME, and present a compiler of this language that allows us to analyze and reason about non functional attributes of software systems.