Generative communication in Linda
ACM Transactions on Programming Languages and Systems (TOPLAS)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Exploiting style in architectural design environments
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
A language and environment for architecture-based software development and evolution
Proceedings of the 21st international conference on Software engineering
An efficient and flexible C++ library for concurrent programming
Software—Practice & Experience
On Communicating Finite-State Machines
Journal of the ACM (JACM)
Static checking of system behaviors using derived component assumptions
ACM Transactions on Software Engineering and Methodology (TOSEM)
Design and evaluation of a wide-area event notification service
ACM Transactions on Computer Systems (TOCS)
Compatibility and inheritance in software architectures
Science of Computer Programming
Communication and Concurrency
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Invariant-based specification, synthesis, and verification of synchronization in concurrent programs
Proceedings of the 24th International Conference on Software Engineering
Architecting families of software systems with process algebras
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated Software Engineering
Specifying Distributed Software Architectures
Proceedings of the 5th European Software Engineering Conference
Specification and Refinement of Dynamic Software Architectures
WICSA1 Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1)
Formal Methods for Software Architectures: Third International School on Formal Methods for the Design of Computer, Communication, and Software Systems--Software Architectures, Sfm 2003 (Lecture Notes in Computer Science, 2804)
ACM SIGSOFT Software Engineering Notes
Modular Verification of Software Components in C
IEEE Transactions on Software Engineering
Assume-Guarantee Verification of Source Code with Design-Level Assumptions
Proceedings of the 26th International Conference on Software Engineering
Generating Well-Synchronized Multithreaded Programs from Software Architecture Descriptions
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
On the usability of process algebra: an architectural view
Theoretical Computer Science - Process algebra
Feature-based survey of model transformation approaches
IBM Systems Journal - Model-driven software development
Model Checking of Software Components: Combining Java PathFinder and Behavior Protocol Model Checker
SEW '06 Proceedings of the 30th Annual IEEE/NASA Software Engineering Workshop
Preserving architectural properties in multithreaded code generation
COORDINATION'05 Proceedings of the 7th international conference on Coordination Models and Languages
Component-oriented verification of noninterference
Journal of Systems Architecture: the EUROMICRO Journal
Hi-index | 0.02 |
Architectural description languages are a useful tool for modeling complex software systems at a high level of abstraction. If based on formal methods, they can also serve for enabling the early verification of various properties such as component coordination and for guiding the synthesis of code correct by construction. This is the case with process algebraic architectural description languages, which are process calculi enhanced with the main architectural concepts. However, the techniques with which those languages have been equipped are mainly conceived to work with synchronous communications only. The objective of this paper is threefold. On the modeling side, we show how to enhance the expressiveness of a typical process algebraic architectural description language by including the capability of representing nonsynchronous communications in such a way that the usability of the original language is preserved. On the verification side, we show how to modify techniques for analyzing the absence of coordination mismatches like the compatibility check for acyclic topologies and the interoperability check for cyclic topologies in such a way that those checks are valid also for nonsynchronous communications. On the implementation side, we show how to generate multithreaded object-oriented software in the presence of synchronous and nonsynchronous communications in such a way that the properties proved at the architectural level are preserved at the code level.