Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

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.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
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
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Self Adaptive Software
1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice
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.
Software Architecture: An Introduction
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture Lecture 3
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
What is Software Architecture?
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
An Introduction to Software Architecture
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Architecting Web Services Unit – II – PART - III.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Chapter 6 - Modeling Eduardo Felipe Zecca da Cruz.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
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.
Basic Concepts and Definitions
Chapter – 8 Software Tools.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
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.
Building Enterprise Applications Using Visual Studio®
Software Architecture Lecture 3
Software Architecture
Architecting Web Services
Architecting Web Services
Software Architecture Lecture 3
Software Architecture Lecture 2
Model-Driven Analysis Frameworks for Embedded Systems
Software Connectors – A Taxonomy Approach
Software Architecture Lecture 3
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture Lecture 3
Software Connectors.
An Introduction to Software Architecture
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor

Publication ICSE, Proceedings of the 20 th International Conference on Software Engineering, , named that conference's Most Influential Paper ten years later

Influence—citations

Citations continued Paper’s influence is felt at GMU, and is cited in works by: – Gomaa – Malek – Menascé

Introduction Continuous Availability is a critical requirement Runtime evolution can mitigate costs and risks associated with downtime OS’s, Distributed Object Technologies and Programming Languages support runtime modification, however…

Shortcomings Existing technologies do not ensure – Consistency – Correctness – Desired properties of runtime change These shortcomings still exist, according to the class text (p.540)

Change Management Principle aspect of runtime system evolution – Helps identify what must be changed – Provides context for reasoning about, specifying and implementing change – Controls change to preserve system integrity CM mitigates risks introduced by change

Architecture based approach (Following on the work of Perry & Wolf, and Shaw & Garlan) Unique elements: – Explicit architectural model, deployed with system – Preservation of explicit software connectors in system implementation – Imperative language for modifying architectures Prototype tool to support above (ArchStudio)

Aspects of Change Management Change Application Policy – Controls how change is applied to a running system. Change Scope – Extent to which change affects parts of a system Separation of Concerns – The degree to which functional issues are distinguished from change issues Level of Abstraction – Complexity of information that must be managed

Reasons for Change Changes to System Requirements (functional) Changes to Implementation (From the text, p526) Corrective Change (bug fixing) Changes to non-functional requirements (security, performance, scale, etc) Changes to operational environment

Previous Approaches to change Gupta, et al – Statement & procedure level modeling Peterson, et al – Module level modeling Gorlick, et al – Data flow based modeling (Weaves) Kramer and Magee – Structural based approach to changing system configuration (of bidirectional comm. links)

Benefits to CM at Architectural Level Engineers use the architecture as a tool to describe, reason about and understand overall system behavior OTS components can be used if component internals are unrestricted Policy & Scope decisions are naturally encapsulated within connectors Architect controls change application policy and scope

Types of Change Runtime Component Addition – Must not assume that system is in initial state – Must discover the current system state and synchronize its state with the system state. Runtime Component Removal – May be the result of recent additions (i.e. new behavior) – Requirements are application specific

Types of Change continued Runtime Component Replacement – May be the combination of an addition and removal The state of the original component must be transferred to the new component Both components must not be simultaneously active – Simplified when components lack state, or if state loss can be tolerated

Types of Change continued Runtime Reconfiguration – Structural reconfiguration – Recombining existing functionality to modify overall system behavior

Enabling Runtime Change Components Each must provide a minimal amount of functional behavior: – Dynamically loadable to support runtime addition and removal – Able to alter their connector bindings to support runtime reconfiguration Typically reusable code libraries that “wrap” the components

Enabling Runtime Change continued Connectors – Must remain discrete entities in the implementation – Must provide a mechanism for adding and modifying component bindings – Play a significant role in Change Management

ArchStudio Implements the Architecture-based approach to software evolution, with – Explicit Architectural Model, available at runtime – Runtime changes are described in terms of the architectural model Using discrete operations for adding, removing and replacing components and connectors, or changing architectural topology, Using facilities for querying the model and using the results

Conceptual Model

Model as Implemented in ArchStudio

Original Architecture

Modified Architecture

ArchShell Command example

Extension Wizard Script example

Conclusion Authors make a compelling case for an architectural approach to change, and CM Contributions – Incorporation of an explicitly deployed architectural model – Preservation of explicit software connectors in the system – Imperative language for modifying architecture

What is ArchStudio 4 ? (from website) A Software and Systems Development Environment Two Roles – As a modeling environment For modeling, visualizing and applying software and system architectures – As a meta-modeling environment Allowing stakeholders to extend the environment to better suit their own needs

ArchStudio as a Modeling Environment Documenting principal design decisions Specifying architectural type consistency Capturing architectural changes over time Architecture models are stored and manipulated in xADL (open, XML-based).

ArchStudio as a Modeling Environment Architecture Visualization – Use multiple interacting editors to develop and visualize architecture description Architecture checking and analysis – Run suites of tests to check for consistency and correctness Architecture Application – Tie architectures to implemented systems

ArchStudio for Meta-Modeling Extensible Notation (xADL) – Representation format is modular and can be extended with standard XML schemas to capture new data or more detail Extensible Visualization (Archipelago) – Visual editor has an extensible plug-in mechanism for adding editing support for new language modules.

ArchStudio for Meta-Modeling Extensible Analysis – Users can write tests in the Schematron constraint language – Users can integrate new analysis engines Extensible Application – Users can bind their architectures to the flexible Myx framework, or use their own

ArchStudio is Built in ArchStudio! The Archstudio environment is built and maintained using its own tools – ArchStudio’s architecture is modeled in ArchStudio – Each time it starts, it is parsing its own architecture description and instantiating that description – Changes to the model are reflected in the implementation