Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
A compositional approach to superimposition
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A superimposition control construct for distributed systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Computer Systems (TOCS)
A calculus of superimpositions for distributed systems
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
"Sometime" is sometimes "not never": on the temporal logic of programs
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Architectural views of aspects
Proceedings of the 2nd international conference on Aspect-oriented software development
Introducing Reflection in Architecture Description Languages
WICSA 3 Proceedings of the IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance
Process-Algebraic Foundations of Aspect-Oriented Programming
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Coordination in a Reflective Architecture Description Language
COORDINATION '02 Proceedings of the 5th International Conference on Coordination Models and Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Aspect-oriented connectors for coordination
International workshop on Synthesis and analysis of component connectors: in conjunction with the 6th ESEC/FSE joint meeting
An aspect-oriented reference architecture for Software Engineering Environments
Journal of Systems and Software
Hi-index | 0.00 |
Modularization is a traditional consequence of the Principle of Separate of Concerns, which states that different abstractions should be dealt with in separate entities. Interactions between these entities define compositional structures, which are studied by Software Architecture. Recent research has revisited the original Principle, suggesting a different modularization strategy. Along with classic components, this approach explicitly considers additional concerns, defining modules which crosscut traditional barriers. The best known example is Aspect Orientation. This strategy defines a novel kind of interactions and compositional structures, which are of particular interest to Software Architecture. Moreover, several of those crosscutting concerns are best described at the architecture level. Coordination is an obvious example of such an architectural aspect: a higher-order interaction abstraction which could extend its influence to the whole system. In this paper, we propose a way to integrate these concepts into an existing language, using the notion of superimposition as a foundation. The chosen target is PiLar, a reflective, process-algebraic Adl. The concept of architectural fragment or chevron is introduced as an architecture-level aspect. To show the applicability of these ideas, we describe a case study consisting on the weaving of a coordination architectural aspect, encapsulating the Paxos distributed consensus algorithm, and a simple pipeline-style architecture, and obtaining a coordinated version of the initial system.