The Semantic Language of Architecture
For most of the last decade, we’ve seen a steady growth in the use of a simple “recommended practice” in the world of software architecture. Well known by it’s designation, IEEE-1471 is officially titled “Recommended Practice for Architectural Description of Software-Intensive Systems.”
The standard defines words, mostly. It answers the question: “What is Software Architecture” and does so in a simple and elegant manner using the concepts of model, view, and viewpoint. It is also written in somewhat vague language, with the meaning of some terms being assumed and others inconsistently applied. Creating a conceptual model from this document was no simpler than creating a model from a typical business document, even though it should have been.
Regardless of the relatively minor deficiencies of IEEE-1471, we find it a useful way to describe software architecture and our team in Microsoft IT has fully embraced the language and concepts of this simple and elegant approach. In addition to embracing 1471, we extended 1471 by linking in key concepts from the UML, as well as other notions like “common viewpoint types,” “architectural description methods,” and modeling languages.
A number of months ago, I created a small poster (designed to be printed in Tabloid size or larger on a color printer) that illustrates the value of this simple language. Embedded in that poster is a conceptual model that illustrates what these terms mean in relation to one another. I’m sharing the poster here, for others to benefit from.
My goal is to provide a simple way for all architects to illustrate, share, learn from, and talk about the language of software architecture. I hope that this poster finds its way into classrooms and team training sessions. Feel free to use the poster as a way to communicate and share. I did not author these concepts. I’m simply trying to explain them.
Note: the diagram uses some of the notational conventions of UML, but not many. If you understand the concepts of association, composition, and aggregation in the basic class model, you can read this diagram. The verbs on the lines between concepts are written so that a reader can read the association by following the arrow.
If you’d like the IEEE-1471 Extended diagram, without the rest of the poster, simply click the image below.