Building up a software system with given components, analyzing the constructed system, and revealing the system’s properties are tasks that are not as easy as claimed by the component and reuse communities. This paper argues that the structures of systems have to be revealed, and that patterns of component interaction have to be analyzed. This part of the paper is clear and formal. Later on, the paper makes clear that using software architectures and styles of architectures can sometimes eliminate the need for the structures of systems to be revealed, and solves the problem of analyzing the patterns of component interaction.
The paper uses the Shaw/Garlan understanding of networked architectures, and uses the Acme architecture description language of Garlan to explain architectures. A very simple system is used as an example throughout the paper.
A tree-like representation of an architecture allows for external system analyses to work better for complicated systems than attributed grammar evaluation (context-sensitive analyses), which possibly helps in analyzing the patterns of component interaction. The key to revealing structures of systems is to deal with properties of components after they are explicitly specified by a developer and are guaranteed by a certain architectural style.
There are disjoint communities corresponding to the understanding of what an architecture is and how it should be denoted. This paper points out that architecture modeling is more that just painting some diagrams.