Architectural abstractions and language mechanisms

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.

[1]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[2]  Bent Bruun Kristensen,et al.  Patterns in the analysis, design and implementation of frameworks , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[3]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[4]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[5]  Bent Bruun Kristensen,et al.  Activities: Abstractions for Collective Behavior , 1996, ECOOP.

[6]  Ole-Johan Dahl,et al.  SIMULA 67 common base language, (Norwegian Computing Center. Publication) , 1968 .

[7]  Bent Bruun Kristensen Complex associations: abstractions in object-oriented modeling , 1994, OOPSLA 1994.

[8]  Kasper Østerbye,et al.  Conceptual modeling and programming languages , 1994, SIGP.

[9]  Bjarne Stroustrup,et al.  The C++ programming language (3. ed.) , 1997 .

[10]  Bent Bruun Kristensen,et al.  Roles & Patterns in Analysis, Design and Implementation , 1996, OOIS.

[11]  Roles Conceptual Abstraction Theory Practical Language Issues , 1996 .

[12]  James E. Rumbaugh,et al.  Relations as semantic constructs in an object-oriented language , 1987, OOPSLA '87.

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[15]  Edward Yourdon,et al.  Object-oriented analysis , 2012 .

[16]  Ralph E. Johnson,et al.  Patterns Generate Architectures , 1994, ECOOP.

[17]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[18]  Bent Bruun Kristensen Transverse Activities: Abstractions in Object-Oriented Programming , 1993, ISOTAS.

[19]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[20]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

[21]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[22]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[23]  Mark Mayfield,et al.  Object Models: Strategies, Patterns, and Applications , 1995 .

[24]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[25]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[26]  Bent Bruun Kristensen Object-Oriented Modelling with Roles , 1995, OOIS.

[27]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[28]  James E. Rumbaugh Relations as semantic constructs in an object-oriented language , 1987, OOPSLA 1987.

[29]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[30]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.