Formal Rules for Reliable Component-Based Architecture Evolution

Software architectures are the blueprint of software systems construction and evolution. During the overall software lifecycle, several changes of its architecture may be considered (e.g. including new software requirements, correcting bugs, enhancing software performance). To ensure a valid and reliable evolution, software architecture changes must be captured, verified and validated at an early stage of the software evolution process. In this paper, we address this issue by proposing a set of evolution rules for software architectures in a manner that preserves consistency and coherence between abstraction levels. The rules are specified in the B formal language and applied to a three-level Adl that covers the three steps of software development: specification, implementation and deployment. To validate our rules, the approach is tested on a running example of Home Automation Software.

[1]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[2]  Marianne Huchard,et al.  Towards Automating the Coherence Verification of Multi-Level Architecture Descriptions , 2014, ICSEA 2014.

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

[4]  Mary Shaw,et al.  Software architecture: the next step for object technology (panel) , 1993, OOPSLA '93.

[5]  Michael J. Butler,et al.  ProB: an automated analysis toolset for the B method , 2008, International Journal on Software Tools for Technology Transfer.

[6]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[7]  Marianne Huchard,et al.  Fostering component reuse: automating the coherence verification of multi-level architecture descriptions , 2014, ICSEA 2014.

[8]  ROBIN MILNER,et al.  Edinburgh Research Explorer A Calculus of Mobile Processes, I , 2003 .

[9]  Jan van Leeuwen,et al.  Computer Science Today , 1995, Lecture Notes in Computer Science.

[10]  Flávio Oquendo π-ADL: an Architecture Description Language based on the higher-order typed π-calculus for specifying dynamic and mobile software architectures , 2004, SOEN.

[11]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[12]  Bradley R. Schmerl,et al.  Evolution styles: foundations and models for software architecture evolution , 2012, Software & Systems Modeling.

[13]  E. Burton Swanson,et al.  Characteristics of application software maintenance , 1978, CACM.

[14]  Christelle Urtado,et al.  Architecture-Centric Component-Based Development Needs a Three-Level ADL , 2010, ECSA.

[15]  Dharini Balasubramaniam,et al.  Controlling software architecture erosion: A survey , 2012, J. Syst. Softw..

[16]  Thaís Vasconcelos Batista,et al.  Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[17]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[18]  Nenad Medvidovic ADLs and dynamic architecture changes , 1996, ISAW '96.

[19]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[20]  Lei Zhang,et al.  A three-level component model in component based software development , 2012, GPCE '12.

[21]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[22]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[23]  Flávio Oquendo Formally refining software architectures with π-ARL: a case study , 2004, SOEN.

[24]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[25]  Mary Shaw,et al.  Formulations and Formalisms in Software Architecture , 1995, Computer Science Today.

[26]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.