Formally refining software architectures with π-ARL: a case study

π-ARL is a formal (executable) architecture refinement language providing architecture-centric refinement primitives and constructs for their compositions. When applied, refinement actions expressed in π-ARL refine architectural models described in π-ADL outputting new refined models described in π-ADL. Enabling stepwise architecture refinement is a new challenge for the formal development of complex software systems. This article presents a simple but realistic case study of the use of π-ARL for architecture refinement. It illustrates the expressiveness and usefulness of π-ARL. The case study addresses the modelling and refinement of the software architecture of a Data Acquisition System. It covers a simple, yet frequent, architecture refinement that would be problematic for most other refinement techniques. Several refinement steps are performed, each dealing with a simple refinement, in order to achieve a concrete architecture.

[1]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[2]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[3]  Flávio Oquendo,et al.  ArchWare: Architecting Evolvable Software , 2004, EWSA.

[4]  Flávio Oquendo π-ARL: an architecture refinement language for formally modelling the stepwise refinement of software architectures , 2004, SOEN.

[5]  Flávio Oquendo,et al.  Architecture-driven software engineering: Specifying, generating, and evolving component- based software systems , 2000, IEE Proc. Softw..

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

[7]  Manfred Broy,et al.  Specification and Development of Interactive Systems , 2001, Monographs in Computer Science.

[8]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

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

[10]  Bernhard Rumpe,et al.  Refinement of Pipe-and-Filter Architectures , 1999, World Congress on Formal Methods.

[11]  Flávio Oquendo,et al.  /spl pi/-SPACE: a formal architecture description language based on process algebra for evolving software systems , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[12]  Peter Gorm Larsen,et al.  Modelling Systems: Practical Tools and Techniques in Software Development , 1998 .

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

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

[15]  Alan W. Brown An Introduction to Model Driven Architecture - Part 1; MDA and Today's Systems , 2004 .

[16]  Robert A. Riemenschneider,et al.  Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies , 1997 .

[17]  Davide Sangiorgi,et al.  Expressing mobility in process algebras : first-order and higher-order paradigms , 1993 .

[18]  Manfred Broy,et al.  Specification and development of interactive systems: focus on streams, interfaces, and refinement , 2001 .

[19]  Ralph-Johan Back,et al.  Refinement Calculus, Part I: Sequential Nondeterministic Programs , 1989, REX Workshop.

[20]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[21]  Grzegorz Rozenberg,et al.  Stepwise Refinement of Distributed Systems Models, Formalisms, Correctness , 1989, Lecture Notes in Computer Science.

[22]  Flávio Oquendo,et al.  Describing Software-Intensive Process Architectures Using a UML-Based ADL , 2004, ICEIS.