480 likes | 484 Views
This study explores the concept of adaptability in software systems and proposes a framework for generating adaptable architectures. It also discusses the advantages of adaptable software and provides examples of adaptable systems. The study introduces the Adaptable Software Architecture Framework (ASAF) and the Adaptable Software Architecture Assistant (ASAA) as tools for generating adaptable architectures. The framework includes a process-oriented metrics for evaluating architecture adaptability and automates the architecture generation process.
E N D
Semi-Automatic Generation of Adaptable Architectures Nary Subramanian, Lawrence Chung Department of Computer Science The University of Texas at Dallas June, 2003
Road Map • Adaptability • Software Architecture • Adaptable Software Architecture Framework (ASAF) • Adaptable Software Architecture Assistant (ASAA) • Validation of ASAF • Future Work Semi-Automatic Generation of Adaptable Architectures
Adaptability Adaptability is the ability of software systems to accommodate changes in their environment. Software System Environment Environment: OS, hardware platform, heat, noise, speed, number of interrupts, vibration, power, attenuation, new commands, etc. Semi-Automatic Generation of Adaptable Architectures
Adaptability Advantages of Adaptable Software • Adapts to environment changes • Easier to develop systems satisfying new requirements • Facilitates addition of new software features • Saves maintenance costs Semi-Automatic Generation of Adaptable Architectures
Adaptability Examples of Adaptable Systems • Dual-mode cell phone • Dynamic uploading of firmware • Command-processing system accepting commands of different versions • A software system operating on different OS • Performing system maintenance functions when the system is least busy • A dynamically changeable format - from 2 digit year to 4 digit year; change units of measurement • Mars Pathfinder project • eLiza project at IBM Semi-Automatic Generation of Adaptable Architectures
Road Map • Adaptability • Software Architecture • Adaptable Software Architecture Framework (ASAF) • Adaptable Software Architecture Assistant (ASAA) • Validation of ASAF • Future Work Semi-Automatic Generation of Adaptable Architectures
Software Architecture • The underlying structure of things • Description of system structures – data flow, modules, process,… • Project blue print • Description of relationships among components and connections Semi-Automatic Generation of Adaptable Architectures
Software Architecture • Objective • High level abstraction of software system • Guide detailed design • Desire to achieve particular software qualities or NFRs • Adaptability is designed-in at the architectural level itself Semi-Automatic Generation of Adaptable Architectures
Software Architecture • Architectural Constituents • Components • Connections • Patterns • Constraints • Styles • Rationale Semi-Automatic Generation of Adaptable Architectures
Software Architecture • Architecture Representation • Box-and-Line diagrams • Modeling Languages • ADL • Architecture Specification Language - DisCo (DIStributed COoperation) Semi-Automatic Generation of Adaptable Architectures
Software Architecture • DisCo Specification Semi-Automatic Generation of Adaptable Architectures
Software Architecture • Reusing Architecture • At the constituent level • At the architecture level • Architecture Repository • Stores architectural constituents • Can be stored as DisCo specifications or code • Available for reuse Semi-Automatic Generation of Adaptable Architectures
Road Map • Adaptability • Software Architecture • Adaptable Software Architecture Framework (ASAF) • Adaptable Software Architecture Assistant (ASAA) • Validation of ASAF • Future Work Semi-Automatic Generation of Adaptable Architectures
Current Adaptable System Development Method Semi-Automatic Generation of Adaptable Architectures
Problems with Current Method • No explicit traceability of solutions to requirements • No systematic way to analyze/explore alternative solutions • No systematic way to determine the degree of adaptability Semi-Automatic Generation of Adaptable Architectures
Adaptable Software Architecture Framework (ASAF) • The specialization of the NFR Framework for software architectures and for the NFR adaptability • Provides a methodology for generating adaptable software architectures • Creates an architecture repository for architecture reuse • Introduces a process-oriented metrics for evaluating architecture adaptability • Automates adaptable architecture generation process Semi-Automatic Generation of Adaptable Architectures
ASAF • Process Instituted by ASAF Semi-Automatic Generation of Adaptable Architectures
ASAF • Softgoal Interdependency Graph (SIG) Example SIG Legend Semi-Automatic Generation of Adaptable Architectures
ASAF Decompose Adaptability for the domain - NFR softgoal hierarchy • Process of SIG Creation Develop architectural alternatives - Design softgoal hierarchy Assign criticalities to various softgoals Determine extent to which design softgoals satisfice NFR softgoals - claim softgoal hierarchy Choose the design components that satisfice the relevant softgoals - assign labels and use the evaluation procedure Legend: Down arrow = go to next step; Up arrow = iterate Semi-Automatic Generation of Adaptable Architectures
ASAF • SIG Elements Semi-Automatic Generation of Adaptable Architectures
ASAF • Representing SIG Elements (Frame-like Notation) Semi-Automatic Generation of Adaptable Architectures
ASAF Semi-Automatic Generation of Adaptable Architectures
ASAF • Populating SIG Elements in a Knowledge Base (KB) • Used Telos for knowledge representation • Frame-like notations described in Telos • Automated using ASAA Semi-Automatic Generation of Adaptable Architectures
ASAF Example Telos Propositions Individual Softgoal in Class with attribute type: Topic; topic: Label; priority: Priority; author: Author; creationTime: CreationTime end Individual NFRDecompositionMethod in Method isA Class with attribute parent: NFRSoftgoal; offspring: NFRSoftgoal; contribution: Contribution end Semi-Automatic Generation of Adaptable Architectures
ASAF Semi-Automatic Generation of Adaptable Architectures
ASAF • Summarizing the ASAF Process • Generate Adaptable Architectures • Create a repository of adaptable constituents • Considers correlations with other NFRs • Evaluate architectures for adaptability • Comparatively analyze architectures Semi-Automatic Generation of Adaptable Architectures
Road Map • Adaptability • Software Architecture • Adaptable Software Architecture Framework (ASAF) • Adaptable Software Architecture Assistant (ASAA) • Validation of ASAF • Future Work Semi-Automatic Generation of Adaptable Architectures
Adaptable Software Architecture Assistant (ASAA) • Provides • automation to ASAF • knowledge base to store SIG elements • user interfaces for storing the KB • user interfaces for extracting data from KB Semi-Automatic Generation of Adaptable Architectures
ASAA • The KBMS used is ConceptBase • ASAA runs on Solaris 2.4 and above • ASAA is written in Tcl/Tk • Architecture of ASAA Semi-Automatic Generation of Adaptable Architectures
ASAA • User Interface Semi-Automatic Generation of Adaptable Architectures
ASAA • User Interfaces to Populate KB Semi-Automatic Generation of Adaptable Architectures
ASAA • User Interfaces to Populate KB(contd) Semi-Automatic Generation of Adaptable Architectures
ASAA • User Interfaces Searching KB Semi-Automatic Generation of Adaptable Architectures
ASAA • Icons for Search Outputs Semi-Automatic Generation of Adaptable Architectures
Road Map • Adaptability • Software Architecture • Adaptable Software Architecture Framework (ASAF) • Adaptable Software Architecture Assistant (ASAA) • Validation of ASAF • Future Work Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • Used ASAF in three systems - Vocabulary Evolution System - User Interface System - Adaptable Remote Maintenance System • Implemented the architectures in actual systems • Confirmed the software was adaptable • Obtained feedback from domain experts Semi-Automatic Generation of Adaptable Architectures
Validating ASAF Commands Embedded System External Controller • Vocabulary Evolution System (VES) Communication Link • Commands evolve • Change in product (as part of product line) • Change in features • Change in standard Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • User Interface System (UIS) • Permits data entry and display • Inputs include keys, knobs and remote interfaces • Outputs include LCD, remote interface Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • Adaptable Remote Maintenance System (ARMS) • web-based maintenance of embedded systems • uses software agents to execute specific actions • system is adaptable to new requirements • software agents can be adaptable as well Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • SIGs for VES Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • The current population of KB Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • Architecture Generated for VES Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • Traceability of Adaptability Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • Feedback from Domain Experts • Mr. Lenny Hoag, Senior Firmware Engineer, Anritsu Company • Mr. Srini Vaidyanathan, Program Manager, EDS, Plano • Dr. Tommi Mikkonen, Professor, Tampere Institute of Tech., ex-Engineer, Nokia • Ms. Lalitha Krishnan, ex-System Analyst, Smithkline Beecham • Mr. Doug DeMarco, Senior Firmware Engineer, Anritsu Company • Mr. John Freasier, Senior Firmware Engineer, Anritsu Company Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • Feedback from Domain Experts + Points • Adaptability is important enough to warrant a separate framework • The process instituted by ASAF is practical • ASAF helps component reuse • ASAF accepts almost any definition of adaptability • Considers correlations with other NFRs • Useful for architects, system users, system engineers, developers and process engineers Semi-Automatic Generation of Adaptable Architectures
Validating ASAF • Feedback from Domain Experts • Points • Potential users of ASAF/ASAA need to be trained • Potential users of ASAF/ASAA need to be motivated to change existing practice • Lot of effort may be required to generate and maintain the KB • Needs testing on a larger scale • Process maturity may be required in the organization Semi-Automatic Generation of Adaptable Architectures
Road Map • Adaptability • Software Architecture • Adaptable Software Architecture Framework (ASAF) • Adaptable Software Architecture Assistant (ASAA) • Validation of ASAF • Future Work Semi-Automatic Generation of Adaptable Architectures
Future Work • ASAF Improvements • Eliminate some of the drawbacks determined by experts • Apply ASAF to more applications • Consider correlations with organization factors like benefits and cost • ASAA Improvements • Add SIG development feature • Add evaluation capability • Automatically update case base upon modification of KB • Link ASAA with DisCo Animator • Integrate POMSAA with ASAA • Others • Standardization of Adaptable Architectures • Mathematical formulations for architectural adaptability Semi-Automatic Generation of Adaptable Architectures