Architectural AdaptationAdaptationGoals of this LectureSources and Motivations for ChangeChanges Arising from Product Line ForcesMotivation for Online Dynamic ChangeStewart Brand’s Shearing Layers of ChangeShearing Layers in a BuildingThe Six Shearing LayersThe Six Shearing Layers (cont’d)To Shear or Not to Shear – Pompidou CenterSlide 12Changing Component InteriorsChange of Component InterfaceConnector ChangeChange in the ConfigurationChange Agents and Context (1)Change Agents and Context (2)Time of ChangeArchitecture-Centric AdaptationConceptual Architecture for AdaptationActivities, Agents, and EntitiesStrategy, Tactics, and OperationsCategories of TechniquesArchitectures/Styles that Support AdaptationArchitectures/Styles Supporting AdaptationAPI-Based ExtensionPlug-In Based ExtensionComponent-Object ApproachScripting-Based ExtensionEvent-Based ExtensionThe Special Problems of On-the-fly ChangeCopyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.Architectural AdaptationSoftware ArchitectureLecture 252Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureAdaptationChange is endemic to softwareperceived and actual malleability of software induces stakeholders to initiate changes, e.g.:Users want new featuresDesigner wants to improve performanceApplication environment is changingAdaptation: modification of a software system to satisfy new requirements and changing circumstances3Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureGoals of this LectureCharacterize 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 perspective4Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureSources and Motivations for ChangeCorrective ChangesBug fixesModification to the functional requirements New features are neededExisting ones modifiedPerhaps some must be removedNew or changed non-functional system propertiesAnticipation of future change requests Changed operating environmentObservation and analysis5Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureChanges Arising from Product Line ForcesCreating a new variantChange at branch pointE.g.: Adding an integrated TV/DVD device to a TV product line Creation of a new branch point Merging product (sub)linesRationalizing their architectures6Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureMotivation for Online Dynamic ChangeNon-stop applicationssoftware cannot be stopped because the “application” cannot be stoppedE.g., 24/7 systems Maintaining user or application statestopping the software would cause the user to lose (mental) context saving and/or recreating the software’s application state would be difficult or costlyRe-installation difficultyapplications with complex installation propertiesE.g., software in an automobile7Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureStewart Brand’s Shearing Layers of Change “How Buildings Learn – What happens after they’re built” examines how and why buildings change over timeCategorization of types of change according to the nature and cost of making a change8Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureShearing Layers in a BuildingFigure adapted from “How Buildings Learn”; Stewart Brand, © 1994 Stewart Brand.9Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureThe Six Shearing LayersSite: the geographical setting, the urban location, and the legally defined lotits 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’tSkin: exterior surfaces change every ~20 years, to keep up with fashion, technology, or for repair10Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureThe 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 goStuf: chairs, desks, phones, pictures, kitchen appliances, lamps, hair brushesthings that switch around daily to monthly11Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureTo Shear or Not to Shear – Pompidou CenterSoftware Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.12Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureThe Six Shearing LayersSiteStructureSkinServicesSpace PlanStuff How do these relate to software architecture?13Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureChanging Component Interiors A component’s performance may be improved by a change to the algorithm that it uses internallyCapabilities that facilitate component adaptation Knowledge of self and exposure of this knowledge to external entitiesKnowledge of the component’s role in the larger architecture Pro-active engagement of other elements of a system in order to adapt14Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureChange of Component InterfaceIn many cases adaptation to meet modified functional properties entails changing a component’s interfaceAdaptors/wrappers are a popular technique to mitigate “ripple effect” but, subsequent changes to previously unmodified methods become even more complex15Foundations, Theory, and PracticeSoftware ArchitectureSoftware ArchitectureConnector ChangeTypically changes to connectors are motivated by The desire to alter non-functional propertiessuch as distribution of components, fault-tolerance, efficiency, modifiability, etc.increased independence of sub-architectures in the face of potential failuresimproved performanceThe more powerful the connector the easier architectural change E.g., connectors supporting event-based communicationWhat is the downside?16Foundations, Theory, and
View Full Document