Ideally, we want to think of the software architecture phase of a product lifecycle as the phase when the non functional attributes
of the product are determined; a disciplined approach to software architecture consists in identifying the non functional attributes that we want to optimize for the product at hand, and architecting the system accordingly, perhaps at the expense of other desirable but less important attributes. Yet, most current architectural description languages offer no means to represent non functional attributes of architectural components, and (to the best of our language) none offer any means to (automatically) reason about them. In this talk, we discuss our work in defining an architectural description language as an extension of ACME, and in designing a compiler for this language that enables us to compute system-wide attributes from component-level attributes. The talk concludes with a demo of the tool on a sample software architecture.