Architectural Design Rewriting (ADR) is a proposal for the design of reconfigurable software systems, conceived in the spirit of conciliating software architectures and process calculi by means of graphical methods. ADR offers a formal setting where design development, run-time execution and reconfiguration are defined on the same foot.

The key features of ADR are:

  • hierarchical and graphical design;
  • rule-based approach;
  • algebraic presentation;
  • inductively-defined reconfigurations.

Architectures are modelled by typed designs: a kind of interfaced graphs whose inner items represent the architectural units and their interconnections and whose interface expresses the overall type and its connection capabilites. Architectures are designed hierarchically by a set of composition operators called design productions which enable:

  • top-down refinement, like replacing an abstract component with a possibly partial realisation;
  • bottom-up typing, like deducting the type of an actual architecture;
  • well-formed composition, like composing some well-typed actual architectures together so to guarantee that the result is still well-typed.

Domains of valid architectures, i.e. those compliant to styles, patterns or constraints, are defined in a declarative way by means of design productions. Such productions have both a functional reading as valid architectural compositions and a grammar reading as providing an inductive definition of valid architectures. In the functional reading, the set of productions defines an algebra of design terms, each encoding the structure of the architecture and providing a proof of style conformance. The interpretation of a design term is a design, i.e. the actual architecture. Reconfiguration and behaviour are given as term rewrite rules acting over design terms rather than over designs. This has many advantages:

  • terms compactly and conveniently encode the hierarchical structure of the architecture;
  • ordinary term rewriting techniques allow to specify complex reconfigurations and computations that can exploit the hierarchical structure encoded in terms;
  • preserving properties such as style-conformance during reconfiguration can be ensured by construction.

ADR has been validated over heterogeneous models such as network topologies, architectural styles and modelling languages.

Publications

Constraint Design Rewriting
Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari
Science of Computer Programming
draft

On Recovering from Run-time Misbehaviour in ADR
Kyriakos Poyias, Emilio Tuosto
Interaction and Concurrency Experience (ICE’13)
draft

A Design-by-Contract Approach to Recover the Architectural Style from Run-time Misbehaviour
Kyriakos Poyias, Emilio Tuosto
Science of Computer Programming
draft

Enforcing architectural styles in presence of unexpected distributed reconfigurations
Kyriakos Poyias, Emilio Tuosto
Interaction and Concurrency Experience (ICE’12)
draft

Evaluating the performance of model transformations styles in Maude
Roberto Bruni, Alberto Lluch Lafuente
International Symposium on Formal Aspects of Component Software (FACS’11)
draft

Structured Model-Driven Transformations
Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari
Festschrift in honour of Manfred Broy’s 60th birthday, special issue of the International Journal of Software and Informatics (IJSI), Volume 2, Number 1-2.
abstract draft pdf

An algebra of hierarchical graphs and its application to structural encoding
Roberto Bruni, Fabio Gadducci, Alberto Lluch Lafuente
Scientific Annals in Computer Science
abstract pdf bib draft

Exploiting the hierarchical structure of rule-based specifi cations for decision planning
Artur Boronat, Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari, Generoso Paolillo
International Conference on Formal Techniques for Distributed Systems (FMOODS/FORTE’10)
abstract pdf draft slides bib

An Algebra of Hierarchical Graphs
Roberto Bruni, Fabio Gadducci, Alberto Lluch Lafuente
5th Symposium on Trustworthy Global Computing (TGC’10)
abstract pdf bib

Hierarchical models for service-oriented systems
Roberto Bruni, Fabio Gadducci, Andrea Corradini, Alberto Lluch Lafuente, Ugo Montanari
Rigorous Software Engineering for Service-Oriented Systems – Results of the SENSORIA project on Software Engineering for Service-Oriented Computing
abstract pdf draft bib

A formal support to business and architectural design for service-oriented systems
Roberto Bruni, Howard Foster, Alberto Lluch Lafuente, Ugo Montanari, Emilio Tuosto
Rigorous Software Engineering for Service-Oriented Systems – Results of the SENSORIA project on Software Engineering for Service-Oriented Computing
abstract pdf draft bib

Ten virtues of structured graphs
Roberto Bruni, Alberto Lluch Lafuente, ECEASST
abstract pdf bib

Formalisation of service-oriented a UML profile.
A service-oriented UML profile with formal support
Martin Wirsing, Ugo Montanari, Roberto Bruni, Matthias Hölzl, Nora Koch, Alberto Lluch Lafuente, Philip Mayer, and Andreas Schroeder
7th International joint Conference on Service Oriented Computing ICSOC/ServiceWave 2009
abstract draft bib slides

Representation of SOC Calculi
A Graph Syntax for Processes and Services
Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari, Emilio Tuosto
9th International Workshop on Web Services and Formal Methods
abstract draft bib slides

Presentation in ADL terms
Architectural Design Rewriting as an Architecture Description Language
Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari, Emilio Tuosto
Position paper at the The Rise and Rise of the Declarative Datacentre research meeting, Microsoft Research Cambridge.
abstract pdf bib slides1 slides2 talk

Comparison with an Alloy based architectural design methodology
Graph-Based Design and Analysis of Dynamic Software Architectures
Roberto Bruni, Antonio Bucchiarone, Stefania Gnesi, Dan Hirsch, Alberto Lluch Lafuente
Concurrency, Graphs and Models. Essays Dedicated to Ugo Montanari on the Occasion of His 65th Birthday, Springer LNCS 6065.
abstract pdf bib

Prototypical implementation, extension to hierarchical graphs, system specifications and verification
Hierarchical Design Rewriting with Maude
Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari.
7th International Workshop on Rewriting Logic and its Applications (WRLA’08), To appear in Electronic Notes in Theoretical Computer Science, Elsevier.
abstract pdf (draft) bib slides

Formalisation of design and reconfiguration aspects of a service modelling language
Service Oriented Architectural Design
Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari, Emilio Tuosto, 3rd International Symposium on Trustworthy Global Computing (TGC’07), Lecture Notes in Computer Science, Springer Verlag.
abstract pdf bib slides1 slides2

Original presentation
Style-Based Architectural Reconfigurations
Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari, Emilio Tuosto,Bulletin of the EATCS, Number 94, February 2008.
abstract pdf bib

Drafts

Further non published documents are:

  • A formalisation of run-time behavioural aspects of a service oriented modelling language.
    From Architectural to Behavioural Specifications
    Laura Bocchi, Jose Luiz Fiadeiro, Alessandro Lapadula, Alberto Lluch Lafuente, Rosario Pugliesem Francesco Tiezzi, Sensoria Deliverable Th01.b, 2007
    abstract pdf bib
  • ADR extension with QoS constraints.
    Style-Based Reconfigurations of Software Architectures with QoS Constraints
    Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari, Emilio Tuosto
    Draft
    abstract pdf bib
  • Primitive Algebra
    An Algebra of Hierarchical Graphs
    Roberto Bruni, Fabio Gadducci, Alberto Lluch Lafuente
    Submitted
    abstract pdf bib

Talks

Apart from the papers above, ADR has been presented in other events:

  • 1st presentation
    Architectural Design Rewriting
    Sensoria General Meeting, Leicester, June 2007 (slides)
  • ADR for SOA
    Service Oriented Architectural Design
    Web Engineering Day, Athens, September 3 2007 (slides)
  • ADR for Software Architects
    Architectural Design Rewriting
    CWI-DIPisa Workshop on Coordination, Coalgebras and Constraint, Pisa, Jannuary 2008 (slides)
  • ADR Status
    ADR at work (part I)
    Sensoria Workshop, Munich, March 2008 (slides)
  • ADR encoding Software Modes
    ADR at work (part II)
    Sensoria Workshop, Munich, March 2008 (slides)
  • ADR for UML and SRML
    Advances in ADR
    Sensoria General Meeting, Pisa, June 2008 (slides)
  • Primitive algebra for ADR to model process calculi graphically
    An algebra of hierarchical graphs
    Sensoria Workshop, Munich, February 2009 (slides), IMT Job Market Seminar, June 2009 (slides)
  • Why structured graphs can be better than flat ones
    Ten virtues of structured graphs
    International Workshop on Graph Transformation and Visual Modeling Techniques, Munich, March 2009 (slides)
  • Analysis of models based on Hierarchical Graphs
    Specification and Analysis with Hierarchical Graphs
    Dagstuhl Seminar on Graph Search Engineering, Schloss Dagstuhl, December 2009 (slides abstract bib)
  • Enforcing architectural styles
    Enforcing architectural styles in presence of unexpected distributed reconfigurations
    ICE 2012 (slides)
  • Repairing from misbehaviours
    On Recovering from Run-time Misbehaviour in ADR
    ICE 2013 (slides)

Implementation

A simple snapshot of the implementation is available here as a simple visualiser of term-like specifications including:

  • terms of an algebra of hierarchical graphs;
  • finite pi-calculus agents;
  • finite process of CaSPiS, a service-oriented calculus.