Architectural Adaptation Software Architecture Lecture 25 Copyright Richard N Taylor Nenad Medvidovic and Eric M Dashofy All rights reserv Software Architecture Foundations Theory and Practice 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 2 Software Architecture Foundations Theory and Practice 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 3 Software Architecture Foundations Theory and Practice 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 4 Software Architecture Foundations Theory and Practice 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 Merging product sub lines Rationalizing their architectures 5 Software Architecture Foundations Theory and Practice 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 6 Software Architecture Foundations Theory and Practice Stewart Brand s Shearing Layers of Change How Buildings Learn What happens after they re built examines how and why buildings change over time Categorization of types of change according to the nature and cost of making a change 7 Software Architecture Foundations Theory and Practice Shearing Layers in a Building 8 Figure adapted from How Buildings Learn Stewart Brand 1994 Stewart Brand Software Architecture Foundations Theory and Practice The Six Shearing Layers Site the geographical setting the urban location and the legally defined lot its boundaries and context outlast generations of ephemeral buildings Structure the building the foundation and load bearing elements perilous and expensive to change so people don t Skin exterior surfaces change every 20 years to keep up with fashion technology or for repair 9 Software Architecture Foundations Theory and Practice The Six Shearing Layers cont d Services working guts of a building communications wiring electrical wiring plumbing sprinkler systems etc Space Plan interior layout where walls ceilings floors and doors go Stuf chairs desks phones pictures kitchen appliances lamps hair brushes things that switch around daily to monthly 10 Software Architecture Foundations Theory and Practice To Shear or Not to Shear Pompidou Center 11 Software Architecture Foundations Theory and Practice Richard N Taylor Nenad Medvidovic and Eric M Dashofy 2008 John Wiley Sons Inc Reprinted with permission Software Architecture Foundations Theory and Practice The Six Shearing Layers Site Structure Skin Services Space Plan Stuff How do these relate to software architecture 12 Software Architecture Foundations Theory and Practice 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 13 Software Architecture Foundations Theory and Practice Change of Component Interface In many cases adaptation to meet modified functional properties entails changing a component s interface Adaptors wrappers are a popular technique to mitigate ripple effect but subsequent changes to previously unmodified methods become even more complex 14 Software Architecture Foundations Theory and Practice Connector Change Typically changes to connectors are motivated by The desire to alter non functional properties such as distribution of components faulttolerance efficiency modifiability etc increased independence of sub architectures in the face of potential failures improved performance The more powerful the connector the easier architectural change E g connectors supporting event based communication What is the downside 15 Software Architecture Foundations Theory and Practice 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 16 Software Architecture Foundations Theory and Practice Change Agents and Context 1 Change Agents Identity and Location 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 may have access to contextual information E g periodically a user of a desktop OS is notified when an OS or application upgrade is available 17 Software Architecture Foundations Theory and Practice 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 18 Software Architecture Foundations Theory and
View Full Document