Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Abstractions for Software Architecture and Tools to Support Them
IEEE Transactions on Software Engineering - Special issue on software architecture
Dynamic structure in software architectures
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Logic in computer science: modelling and reasoning about systems
Logic in computer science: modelling and reasoning about systems
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Proceedings of the 24th International Conference on Software Engineering
An Event-Based Architecture Definition Language
IEEE Transactions on Software Engineering
Context Aggregation and Dissemination in Ubiquitous Computing Systems
WMCSA '02 Proceedings of the Fourth IEEE Workshop on Mobile Computing Systems and Applications
Moving architectural description from under the technology lamppost
Information and Software Technology
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
A Model-Based Framework for Statically and Dynamically Checking Component Interactions
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
Software Architecture: Foundations, Theory, and Practice
Software Architecture: Foundations, Theory, and Practice
Architecture-driven self-adaptation and self-management in robotics systems
SEAMS '09 Proceedings of the 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems
A generative programming approach to developing pervasive computing systems
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Towards the Model Driven Development of context-aware pervasive systems
Pervasive and Mobile Computing
Science of Computer Programming
Archface: a contract place where architectural design and code meet together
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
A domain-specific approach to architecturing error handling in pervasive computing
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A step-wise approach for integrating QoS throughout software development
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
DiaSuite: a paradigm-oriented software development approach
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Architecturing conflict handling of pervasive computing resources
Proceedings of the 11th IFIP WG 6.1 international conference on Distributed applications and interoperable systems
A dynamic component model for cyber physical systems
Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Design-driven development methodology for resilient computing
Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering
Bottom-up model-driven development
Proceedings of the 2013 International Conference on Software Engineering
A case for human-driven software development
Proceedings of the 2013 International Conference on Software Engineering
DiaSuite: A tool suite to develop Sense/Compute/Control applications
Science of Computer Programming
Hi-index | 0.00 |
A software architecture describes the structure of a computing system by specifying software components and their interactions. Mapping a software architecture to an implementation is a well known challenge. A key element of this mapping is the architecture's description of the data and control-flow interactions between components. The characterization of these interactions can be rather abstract or very concrete, providing more or less implementation guidance, programming support, and static verification. In this paper, we explore one point in the design space between abstract and concrete component interaction specifications. We introduce a notion of interaction contract that expresses allowed interactions between components, describing both data and control-flow constraints. This declaration is part of the architecture description, allows generation of extensive programming support, and enables various verifications. We instantiate our approach in an architecture description language for Sense/Compute/Control applications, and describe associated compilation and verification strategies