In this article we show how knowledge representation techniques can be applied to software architecture. We define a representation model for software architecture concepts. The model is based on MY model (meta modeling in Y), which is a knowledge engineering methodology. It represents software architecture concepts using three branches: component, connector, and architecture. The component branch represents concepts that are related to computations, the connector branch represents concepts that are related to interactions, and the architecture branch represents concepts that are related to the structure and the topology of the system described. We think that such a representation of architecture concepts aids in improving reusability not only at the implementation level, but also at the description level. The model assigns a hierarchical library for the four software architecture conceptual levels (meta-meta architecture level, meta architecture level, architecture level, application level).