Writing Larch interface language specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic structure in software architectures
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Formalizing architectural connection
ICSE '94 Proceedings of the 16th international conference on Software engineering
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Software Architecture in Practice
Software Architecture in Practice
Proceedings of the 3rd international conference on Aspect-oriented software development
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Information hiding interfaces for aspect-oriented design
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Co-evolving application code and design models by exploiting meta-data
Proceedings of the 2007 ACM symposium on Applied computing
Software Design and Architecture The once and future focus of software engineering
FOSE '07 2007 Future of Software Engineering
An aspect-oriented weaving mechanism based on component and connector architecture
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
A precise model for contextual roles: The programming language ObjectTeams/Java
Applied Ontology - Roles, an interdisciplinary perspective
Managing the evolution of aspect-oriented software with model-based pointcuts
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Proceedings of the 33rd International Conference on Software Engineering
Towards architectural information in implementation (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Architectural point mapping for design traceability
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
Proceedings of the 34th International Conference on Software Engineering
Pol: specification-driven synthesis of architectural code frameworks for platform-based applications
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Design-driven development methodology for resilient computing
Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering
Archface4COP: architectural interface for context-oriented programming
Proceedings of the 5th International Workshop on Context-Oriented Programming
DiaSuite: A tool suite to develop Sense/Compute/Control applications
Science of Computer Programming
The Journal of Supercomputing
Hi-index | 0.00 |
This paper proposes Archface, an interface mechanism for bridging the gap between architectural design and its implementation. Archface, which encapsulates design essence based on the component-and-connector architecture, is not only an ADL (Architecture Description Language) but also a programming-level interface. Archface is effective for software evolution because traceability between design and its implementation can be realized by enforcing architectural constraints on program implementation, and this traceability is bidirectional. In Archface, a component exposes program points such as method call/execution and a connector defines how to coordinate exposed program points. A collaborative architecture consisting of components can be encapsulated into a group of interfaces and separated from implementation, because dynamic program points representing control flow can be specified in the interfaces. We can characterize the notion of Archface with the phrase "predicate coordination," in which program points are exposed by a predicate and coordinated by a trait-based connector.