Architectural abstractions and language mechanisms
Bent Bruun Kristensen · 2002
When we apply the mechanisms of an object-oriented language, we form concrete architectures over some domain. Over time, we identify recurring patterns and transform the concrete architectures into more general architectural abstractions. Such abstractions are then used in combination with the language mechanisms to form other kinds of concrete architectures in diagrams and programs: we apply a combination of language mechanisms and architectural abstractions in the modeling and programming process. Our knowledge concerning the needs and possibilities in the modeling process, especially those captured in the architectural abstractions, enables us to invent new language mechanisms, typically abstraction mechanisms. Such abstraction mechanisms replace several architectural abstractions because of the generality of the mechanisms, and because of their integration with other mechanisms of the language: we invent abstraction mechanisms to replace architectural abstractions. "Software architecture" is the different styles and manners of building software in terms of the choice and combination of language mechanisms and architectural abstractions. The mutual influence between object-oriented language mechanisms and architectural abstractions is the basis for the further development both of languages and of software architecture.