Towards a Rewriting Semantics for a Software Architecture Description Language

Abstract Software architecture description languages (ADL) allow a software designer to focus on high- level aspects of an application by abstracting from the details of the components that compose an architecture. It is precisely this abstraction that makes ADLs suitable for verification using model checking techniques. ADLs are, in a way, domain-specific languages for aspects such as coordination, distribution and quality-of-service. The CBabel ADL defines the concept of contracts that precisely captures these architecture-level aspects. In this paper we propose a rewriting semantics for CBabel, that is, a formal semantics for CBabel specified in rewriting logic, a unifying formalism for concurrency models that has interesting properties as a logic and semantic framework due to its unified view of computation and proof. Using the Maude system, a high-performance implementation of rewriting logic, we formally verify the producer-consumer-buffer problem using model checking and state search.

[1]  Stephan Merz,et al.  Model Checking , 2000 .

[2]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[3]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[4]  Yi Deng,et al.  Model checking software architecture specifications in SAM , 2002, SEKE '02.

[5]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[6]  Steve Vestal,et al.  An Overview of the SAE Architecture Analysis & Design Language (AADL) Standard: A Basis for Model-Based Architecture-Driven Embedded Systems Engineering , 2004, IFIP-WADL.

[7]  David Garlan,et al.  Beyond Definition/Use: Architectural Interconnection , 1994, Workshop on Interface Definition Languages.

[8]  J. Meseguer,et al.  Rewriting Logic as a Logical and Semantic Framework , 1996 .

[9]  Romulo Cerqueira,et al.  Deploying Non-Functional Aspects by Contract , 2003, Middleware Workshops.

[10]  José Meseguer,et al.  A logical theory of concurrent objects , 1990, OOPSLA/ECOOP '90.

[11]  Marcelo Fagundes Felix AnáLISE Formal de Modelos de Software Orientada por Abstrações Arquiteturais , 2004 .

[12]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[13]  Satoshi Matsuoka,et al.  Analysis of inheritance anomaly in object-oriented concurrent programming languages , 1993 .

[14]  José Meseguer,et al.  A logical theory of concurrent objects and its realization in the Maude language , 1993 .

[15]  J. Meseguer Rewriting as a unified model of concurrency , 1990, OOPSLA/ECOOP '90.

[16]  Francisco Durán,et al.  An extensible module algebra for Maude , 1998, WRLA.

[17]  Roberto Bruni,et al.  Generalized Rewrite Theories , 2003, ICALP.

[18]  Valérie Issarny,et al.  SPIN-ning software architectures: a method for exploring complex systems , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[19]  Svend Frølund,et al.  Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages , 1992, ECOOP.

[20]  Alexandre Sztajnberg,et al.  Customizing Component-Based Architectures by Contract , 2004, Component Deployment.

[21]  James R. Cordy,et al.  A Syntactic Theory of Software Architecture , 1995, IEEE Trans. Software Eng..

[22]  Eila Niemelä,et al.  A Survey on Software Architecture Analysis Methods , 2002, IEEE Trans. Software Eng..

[23]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[24]  José Meseguer,et al.  The Maude LTL Model Checker , 2004, WRLA.

[25]  Nenad Medvidovic,et al.  Modeling software architectures in the Unified Modeling Language , 2002, TSEM.

[26]  Jean-Marc Jézéquel,et al.  Making Components Contract Aware , 1999, Computer.

[27]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

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

[29]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[30]  Richard N. Taylor,et al.  A framework for classifying and comparing architecture description languages , 1997, ESEC '97/FSE-5.

[31]  Mordechai Ben-Ari,et al.  Principles of concurrent and distributed programming , 2005, PHI Series in computer science.

[32]  M. Clavel Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications , 2000 .

[33]  José Meseguer,et al.  Membership algebra as a logical framework for equational specification , 1997, WADT.

[34]  Klaus-Peter Löhr Concurrency annotations for reusable software , 1993, CACM.

[35]  J. Meseguer,et al.  Semantic Models for Distributed Object Reflection , 2002, ECOOP.

[36]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[37]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..