Dynamism in Software Architectures. Adaptation  Change is endemic to software –perceived and actual malleability of software induces stakeholders to.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Architecture Representation
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
OASIS Reference Model for Service Oriented Architecture 1.0
Chapter 19: Network Management Business Data Communications, 4e.
Instructor: Tasneem Darwish
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
Architectural Adaptation Software Architecture Week 13, Lecture 1 Prepared by Dr. Richard Taylor Professor of Information and Computer Sciences University.
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.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Adaptation Software Architecture Lecture 25.
SE 555 – Software Requirements & Specifications Introduction
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Adaptation Software Architecture Lecture 25.
The Vision Document 1. Importance of a Vision Document  It describes the application in general terms, including descriptions of the target market, the.
Domain-Specific Software Engineering Alex Adamec.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Software Architecture for DSD The “Uses” Relation.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
What is Software Architecture?
Database Systems: Design, Implementation, and Management Ninth Edition
Chapter 1 Database Systems. Good decisions require good information derived from raw facts Data is managed most efficiently when stored in a database.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
An Introduction to Software Architecture
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Home Appliance Control System
CPSC 871 John D. McGregor Module 6 Session 3 System of Systems.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
 Three-Schema Architecture Three-Schema Architecture  Internal Level Internal Level  Conceptual Level Conceptual Level  External Level External Level.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Chapter 3: Software Project Management Metrics
CSC480 Software Engineering Lecture 10 September 25, 2002.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
CSE 303 – Software Design and Architecture
The Architecture of Systems. System Architecture Every human-made and natural system is characterized by a structure and framework that supports and/or.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Company LOGO Network Architecture By Dr. Shadi Masadeh 1.
CS223: Software Engineering Lecture 32: Software Maintenance.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
CPSC 872 John D. McGregor Session 31 This is it..
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
ARCHITECTURA L ADAPTATION TALIESIN SMITH. CONCEPTS Adaptation – Modification of a software system to satisfy new requirements and changing circumstances.
Architectural Adaptation
Software Architecture Lecture 3
Chapter 7: Modifiability
The Development Process of Web Applications
Software Architecture Lecture 3
Software Architecture Lecture 3
Software Architecture Lecture 3
An Introduction to Software Architecture
Architectural Adaptation
Software Architecture Lecture 3
Architectural Adaptation
Network Architecture By Dr. Shadi Masadeh 1.
Architectural Adaptation
Architectural Adaptation
Architectural Adaptation
Software Architecture Lecture 3
Presentation transcript:

Dynamism in Software Architectures

Adaptation  Change is endemic to software –perceived and actual malleability of software induces stakeholders to initiate changes, e.g.: Users want new features Designer wants to improve performance Application environment is changing  Adaptation: modification of a software system to satisfy new requirements and changing circumstances

Goals of This Lecture  Characterize adaptation, showing what changes, why, and who the players are  Characterize the central role software architecture plays in system adaptation  Present techniques for effectively supporting adaptation, based on an architecture-centric perspective

Sources and Motivations for Change  Corrective Changes –Bug fixes  Modification to the functional requirements –New features are needed –Existing ones modified –Perhaps some must be removed  New or changed non-functional system properties –Anticipation of future change requests  Changed operating environment  Observation and analysis

Changes Arising from Product Line Forces  Creating a new variant –Change at branch point –E.g.: Adding an integrated TV/DVD device to a TV product line  Creation of a new branch point –Identify new opportunity for product marketplace, e.g.. television products with home security systems.  Merging product (sub)lines –Rationalizing their architectures

Motivation for Online Dynamic Change  Non-stop applications –software cannot be stopped because the “application” cannot be stopped –E.g., 24/7 systems  Maintaining user or application state –stopping the software would cause the user to lose (mental) context –saving and/or recreating the software’s application state would be difficult or costly  Re-installation difficulty –applications with complex installation properties –E.g., software in an automobile

Stewart Brand’s Shearing Layers of Change  How Buildings Learn – What Happens after They’re Built examines how and why buildings change over time  Brand categorized the types of changes that can be made to a building in terms of “shearing layers”.

Shearing Layers in a Building

The Six Shearing Layers 1. Site –the geographical setting, the urban location, and the legally defined lot –its boundaries and context outlast generations of ephemeral buildings. 2. Structure (“the building”) –the foundation and load-bearing elements –perilous and expensive to change, so people don’t 3. Skin –exterior surfaces –change every ~20 years, to keep up with fashion, technology, or for repair 4. Services –working guts of a building: communications wiring, electrical wiring, plumbing, sprinkler systems, etc. 5. Space Plan –interior layout – where walls, ceilings, floors, and doors go 6. Stuff –chairs, desks, phones, pictures, kitchen appliances, lamps, hair brushes –things that switch around daily to monthly

To Shear or Not to Shear – Pompidou Center in Paris

The Six Shearing Layers 1. Site –the geographical setting, the urban location, and the legally defined lot –its boundaries and context outlast generations of ephemeral buildings. 2. Structure (“the building”) –the foundation and load-bearing elements –perilous and expensive to change, so people don’t 3. Skin –exterior surfaces –change every ~20 years, to keep up with fashion, technology, or for repair 4. Services –working guts of a building: communications wiring, electrical wiring, plumbing, sprinkler systems, etc. 5. Space Plan –interior layout – where walls, ceilings, floors, and doors go 6. Stuff –chairs, desks, phones, pictures, kitchen appliances, lamps, hair brushes –things that switch around daily to monthly  How do these relate to software architecture?

Changing Component Interiors  A component’s performance may be improved by a change to the algorithm that it uses internally  Capabilities that facilitate component adaptation –Knowledge of self and exposure of this knowledge to external entities –Knowledge of the component’s role in the larger architecture –Pro-active engagement of other elements of a system in order to adapt

Change of Component Interface  In many cases adaptation to meet modified functional properties requires changing a component’s interface  Adaptors/wrappers are a popular technique to mitigate “ripple effect”

Connector Change  Typically changes to connectors are motivated by –The desire to alter non-functional properties such as distribution of components increased independence of sub-architectures in the face of potential failures improved performance  The more powerful the connector the easier architectural change

Change in the Configuration  Changes to the configuration of components and connectors represents fundamental change to a system’s architecture  Effectively supporting such a modification requires working from an explicit model of the architecture  Many dependencies between components will exist, and the architectural model is the basis for managing and preserving such relationships

 Techniques for effecting change are also determined by character of agents.  Important attributes of agents: –Location of agent with respect to system being changed –Knowledge of system possessed by the agent – complete or partial –Degree of freedom possessed by the agent Change Agents and Context

Change Agents and Context (1)  Change Agents –The processes that carry out adaptation may be performed by human automated agents a combination thereof –If an adaptation agent is part of a deployed application from the outset, the potential is present for an effective adaptation process –Agent acts differently in individual deployment –E.g., periodically a user of a desktop OS is notified when an OS or application upgrade is available

Change Agents and Context (2)  Knowledge –Agent might need knowledge to mitigate adaptation risk –Agent has to know the constraints that must be retained in the modified system –If the system’s architectural design decisions have been violated, architectural recovery will be required  Degree of Freedom –Freedom that the engineer has in designing the changes –Greater freedom  large solution space –By learning the constraints of the system, the coherence of the architecture can be retained

Time of Change

Architecture: Central Adaptation  In the absence of explicit architecture the engineer is left to reason about adaptation –from memory –from source code  Architecture can serve as the primary focus of reasoning about potential adaptations –So long as the implementation is faithful to the architecture

Conceptual Architecture for Adaptation

Activities, Agents, and Entities in Architecture-based Adaptation  Adaptation management and evolution management can be separated into three types of activities 1. Strategic refers to determining what to do 2. Tactical refers to developing detailed plans for achieving the strategic goals 3. Operations refers to the nuts-and-bolts of carrying out the detailed plans

In Other Words

Categories of Techniques for Supporting Architecture-Centric Change  Observing and collecting state  Analyzing data and planning change  Describing change descriptions  Deploying change descriptions  Effecting the change

Architectures/Styles that Support Adaptation  Explicit models  First-class connectors  Adaptable connectors  Message-based communication – event mechanism provides message facility

Summary  Adaptation happens when there is a request of change to the software system.  Example of changes are new requirements in the functional or non-functional properties, new operating environment, and by observation and analysis.  Architecture can serve as the primary focus of reasoning about potential adaptations.