3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università

Slides:



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

Architecture-based Evolution of Software Systems José Luiz Fiadeiro Architecture-based Evolution of Software Systems Luís Andrade João Gouveia Georgios.
A Stepwise Modeling Approach for Individual Media Semantics Annett Mitschick, Klaus Meißner TU Dresden, Department of Computer Science, Multimedia Technology.
Towards a Practical Composition Language Oscar Nierstrasz Software Composition Group University of Bern.
Chapter 2 – Software Processes
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Architectures and Embedded Systems Nenad Medvidovic with Sam Malek and Marija Mikic-Rakic Computer Science Department University of Southern California.
1© Nokia Siemens Networks Antonio Bucchiarone Marie Curie Host Fellowships for the Transfer of Knowledge (TOK) Modelling Dynamic Software Architectures.
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)
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
Introduction To System Analysis and Design
Jiannong IMC Lab - Department of Computing, Hong Kong Polytechnic Univ. Slide 1 Architecture Description of Distributed Systems using UML and XML.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
1 SWE Introduction to Software Engineering Lecture 5.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Process Activities. Process activities Real software processes are inter-leaved sequences of technical, collaborative and managerial activities.
An Introduction to Rational Rose Real-Time
UML - Development Process 1 Software Development Process Using UML (2)
A Survey on Service Composition Languages and Models Antonio Bucchiarone Antonio Bucchiarone and Stefania Gnesi Istituto di Scienza e Tecnologie dell’Informazione.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Architecture
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Introduction To System Analysis and Design
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
A. Bucchiarone, Juan P. Galeotti / GT-VMT’08 Dynamic Software Architectures Verification using DynAlloy Antonio Bucchiarone IMT Graduate School of Lucca,
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Testing Implementation Conformance with respect to its Architectural specification Software Architectures and Testing Begin Antonia Bertolino IEI - CNR,
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
DESIGN OF SOFTWARE ARCHITECTURE
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Software Quality and Safety Pascal Mbayiha.  software engineering  large, complex systems  functionality, changing requirements  development difficult.
Basics of SOA Testing Assurance Services Unit 24 February 2016.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Architectural Design Rewriting as Architectural Description Language R. Bruni A. LLuch-Lafuente U. Montanari E. Tuosto.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Software Design Refinement Using Design Patterns
Software Process Activities.
SOFTWARE DESIGN AND ARCHITECTURE
OO Methodology OO Architecture.
Chapter 20 Object-Oriented Analysis and Design
The Vision of Autonomic Computing
Analysis models and design models
Architecture Description Languages
An Introduction to Software Architecture
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005
Software Development Process Using UML Recap
Architectural Mismatch: Why reuse is so hard?
From Use Cases to Implementation
Presentation transcript:

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università del Sannio Dynamic Software Architectures for Global Computing Antonio Bucchiarone PhD Student – IMT Graduate School Via S. Micheletto, Lucca (Italy) Collaboration with Stefania Gnesi and Antonia Bertolino ISTI-CNR of Pisa

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Agenda Global Computing Systems From SA to DSA SA view Dynamic Systems What is DSA? Why DSA? Open Issues My initial idea Future Work

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Global Computing Systems Autonomous computational entities where activity is not centrally controlled (global services) Global control is impossible or impractical The entities are created or controlled by different owners The system is open to the introduction of new computational entities, the behavior may vary over time (dynamic systems) The offer is expected to evolve from relatively simple (customer) services to global complex (business) solutions (service-oriented computing). Evolving systems (dynamicity and adaptability)

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre SW Architecture View High level system description in terms of subsystems (components) and the way they interact (connectors) Static description (Topology) Dynamic description (Behavior) Service composition domain overlaps with SE in the assembly of applications from components It provides a coarse-grained view separated from implementation details whereas concentrates more on composition requirements Non-functional properties (QoS) Composition constraints

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre An Example: OS Layer SA

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Dynamic Systems To support execution during runtime (SOA) for adapting to changes Changing Requirements Request for new functions May require to integrate new components (statically or at run-time) Changing Environments Faulty communication channels Mobility leading to a reduced bandwidth May require to replace unreachable components Key Requirement: a dynamic system should keep the application in the same state after a change Dynamic Reconfiguration

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Support for Self-Management All dynamic architectural changes have four steps Self-Managing architecture: the entire change process occurs internally

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre What is DSA? DSA models a system that reacts to certain events at runtime by supporting reconfiguration of the systems architecture (Garlan 98) Support runtime management and reconfiguration of the systems without human interference (Self-adaptive Systems) Monitoring, analyzing, implementing and validating systems changes Internally or externally to the application Reconfiguration operations Adding interfaces or components Removing interfaces or components Updating interfaces or components Changing the architecture topology by adding or removing connections between interfaces

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Why DSA? SOA is an example WSs are independent Services that are distributed in the internet Services availability or performance is difficult to be guaranteed (dynamic environments) The changeful requirements of SOA clients Stakeholders would like to extend their business models Incorporate fresh available services Replace inefficient or inconvenient services To evaluate non-functional properties (self-adaptation) } On-line updating

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Open Issues Modeling of DSA It requires support for expressing when and why the Architecture should reconfigure Currently this has limited support in existing modeling languages (ADL, UML, etc..) We have need more expressive notations Analysis Conformance of the DSA to the requirements Consistency of a DSA and an architectural style To show that the style and the application are consistent from both static and dynamic point of view Tools and Languages ArchJava, Java/A, Artemis-ARC, AGG, Fujaba, etc..

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre My initial idea A SA is represented by a typed graph G where nodes stands for components and arcs for connectors A SA is dynamic if G may evolve to GG The evolution of a DSA is a graph rewriting system Associated to each G there are associated R(G): set of reachable configurations : set of desirable configurations Example: Programmed Dynamism The change is triggered by the system and changes are defined prior to run-time. In this case D(G) = R(G)

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Future Work Modeling of DSA Graph-based approach Validation and Verification Reachability analysis by graph parsing Verify properties by Model-Checking Conformance of the DSA to the requirements Consistency of a DSA and an architectural style Testing To derive test cases from graph transformation systems Tools and Languages ArchJava, Java/A, Artemis-ARC, … A new tool?

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre Questions?