Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
CommUnity, Tiles and Connectors joint work with Roberto Bruni José Luiz Fiadeiro Antónia Lopes Ugo Montanari Ivan Lanese Dipartimento di Informatica Università.
Connectors and Concurrency joint work with Ugo Montanari Roberto Bruni Dipartimento di Informatica Università di Pisa Dagstuhl Seminar #04241, September.
Architecture Representation
Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
A. Bucchiarone / Pisa/ 30 Jan 2007 Dynamic Software Architectures for Global Computing Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S.
A. Bucchiarone / Dagstuhl/ 2007 APL Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S. Ponziano, Lucca (Italy)
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Jiannong IMC Lab - Department of Computing, Hong Kong Polytechnic Univ. Slide 1 Architecture Description of Distributed Systems using UML and XML.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Introduction to Software Architecture. Software Architecture Definition  Definition. A software system’s architecture is the set of principal design.
Π-Method: A Model-Driven Formal Method for Architecture- Centric Software Engineering By Flavio Oquendo Presented by: Sajith Wickramaratne.
1 Ivan Lanese Computer Science Department University of Pisa Prof. Ugo Montanari Synchronization strategies for global computing Relator: Thesis Progress.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Software Architecture: An Introduction
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture and Software Configuration Management Bernhard Westfechtel and Reidar Conradi RWTH Aachen, Germany/ NTNU Trondheim, Norway SCM 10.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
 FOAL 2010 Modeling Aspects by Category Theory Serge P. Kovalyov Novosibirsk, Russia.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 6 Architectural Design.
CHAPTER 6 - MODELING ANH AU. BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Testing Implementation Conformance with respect to its Architectural specification Software Architectures and Testing Begin Antonia Bertolino IEI - CNR,
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Layered Systems Rahul Nabar CS 551 Fall ’02. Layered or Hierarchical Designs A layered system is organized hierarchically, each layer providing service.
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Tomás BarrosMonday, April 18, 2005FIACRE Toulouse p. 1 Behavioural Models for Hierarchical Components Tomás Barros, Ludovic Henrio and Eric Madelaine.
Basic Concepts and Definitions
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Software Architecture Lecture 3
Exploiting the hierarchical structure of
Software Architecture
Software Connectors.
Software Architecture Lecture 3
The Extensible Tool-chain for Evaluation of Architectural Models
Software Architecture Lecture 3
The Extensible Tool-chain for Evaluation of Architectural Models
Architecture Description Languages
Software Architecture Lecture 3
Software Connectors.
Software Architecture Lecture 3
Automated Analysis and Code Generation for Domain-Specific Models
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 3
Software Architecture Lecture 7
From Use Cases to Implementation
Software Architecture Lecture 6
Presentation transcript:

Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto

2 Plan Architecture & SOC (our view) ADR main features ADR as ADL (through simple examples)

3 Models of SA [Perry & Wolf’s, 92] elements form rationale [Tracz, 93]: 4 ‘C’s components connectors configurations constraints Software architectures specify the design of system at a high level of abstraction (not the implementation level): the structure of components how they are interconnected (valid) architectural configurations (aka topologies), i.e. present components interconnections their current state

4 ADR’s Key features Hierarchical/graphical design & algebraic presentation Architectures as typed designs Composed through design productions (operators) Examples

5 ADR’s Key features Rule-based approach & inductively-defined reconfigurations SOS conditional term rewriting Constraints and architectural styles via types

6 ADR “expressivity” Typed designs (graphs + interfaces) styles as design terms architectures as designs (i.e., graphs interpreting of design terms) Hierarchical design (productions as operators of a multisorted algebra of designs) refinement (top-down) bottom-up (typing and well-formed composition) Reconfiguration as conditional term rewriting over design terms (rather than over designs) style conformance can be guaranteed by construction

7 ADR as ADL Components/connectors Typed elements with interfaces Formal semantics Constraints Evolution “An ADL must provide the means for their 1 explicit specification” [Medvidovic & Taylor, 00] 1 components (with interfaces), connectors and configurations ADR meets most of the requirements of an ADL Architectural configurations Compositionality/Understandabilit y Refinement Traceability Scalability/Dynamism

8 Types&Interfaces Type Interfaces Nodes & hyperedges can be typed ADR promotes types for encoding constraints when possible, so that constraints preserving reconfigurations are given by construction

9 Semantic/Evolution Algebraic graph transformation / SOS conditional term rewriting

10 Compositionality Examples Compositionality achiedved using design productions that yield hierarchical composition (featuring also understandability)

11 Refinement Design production can be read “top-down”: a ‘pipe’ can be refined by forking two parallel ‘pipes’ Remarkably, design production can be read “bottom-up” as well: the forking ‘pipes’ are valide provided that the two inner ‘pipes’ are

12 Traceability A design (i.e. an actual architecture) are traced trough a design terms namely a “witness” of the design construction

13 Dynamism Architectural changes are expressed in ADR by conditional rewrite rules in a SOS style in order to define complex behaviours and reconfigurations. ADR yields a modular approach, so that, e.g., the addition of new components can be localised in the desired sub-architecture, without affecting the rest of the system.

14 References ADR site [Perry & Wolf’s, 92]: “Foundations for the study of software architectures”. SIGSOFT Software Eng. Notes, V. 17, No. 4, October 1992 [Tracz, 93]: “LILEANNA: A parameterized programming language”. Proc. 2nd Int. Workshop on Software Reuse and Eng. Center. July 1995 [Medvidovic & Taylor, 00]: “A classification and comparison framework for software Architecture Description language”. IEEE trans. on Soft. Eng., V. 26 N. 1, January 2000