Managed Software Evolution.

Bibliographic Details
Main Author: Reussner, Ralf.
Other Authors: Goedicke, Michael., Hasselbring, Wilhelm., Vogel-Heuser, Birgit., Keim, Jan., Màˆrtin, Lukas.
Format: eBook
Language:English
Published: Cham : Springer International Publishing AG, 2019.
Edition:1st ed.
Subjects:
Online Access:Click to View
Table of Contents:
  • Intro
  • Foreword
  • Contents
  • Contributors
  • International Board of Reviewers
  • Acronyms
  • Part I Introduction
  • 1 Introducing Managed Software Evolution
  • 2 The Nature of Software Evolution
  • 2.1 Introduction
  • 2.2 Software Systems
  • 2.2.1 Application Domains
  • 2.2.2 Scopes and Environments of Software Systems
  • 2.2.3 Software Artefacts
  • 2.2.4 Software Variants
  • 2.3 Software Quality
  • 2.3.1 Consistency
  • 2.3.2 Correctness
  • 2.3.3 Dependability
  • 2.3.4 Performance
  • 2.3.5 Usability
  • 2.3.6 Maintainability
  • 2.4 Software Evolution
  • 2.4.1 Kinds of Software Change
  • 2.4.2 Evolution Processes
  • 2.4.3 Configuration Management
  • 3 Addressed Challenges
  • 3.1 Tacit Knowledge
  • 3.2 Design Decisions
  • 3.3 Software Product Line Round-Trip Engineering
  • 3.4 Maintaining Performance
  • 3.5 Maintaining Security
  • 3.6 Learning from Evolution for Evolution
  • 3.7 Maintaining Correctness
  • 4 Introduction to Case Studies
  • 4.1 Evolution of Long-Living Systems to an Industry 4.0 Case Study
  • 4.2 Introduction of the CoCoME Case Study
  • 4.2.1 Platform Migration
  • 4.2.2 Adding a Pick-Up Shop
  • 4.2.3 Database Migration
  • 4.2.4 Adding a Mobile App Client
  • 4.2.5 Microservice Architecture
  • 4.2.6 Container Virtualization
  • 4.2.7 Adding Payment Methods
  • 4.3 Introduction of the PPU and xPPU Case Studies
  • 4.3.1 Evolution Scenarios of the PPU
  • 4.3.2 Incremental Evolution Scenarios
  • 4.3.3 Evolution Scenarios of the xPPU
  • 4.4 Industry 4.0 Case Study
  • 4.4.1 Industry 4.0 Interface of the xPPU
  • 4.4.2 Integration of CoCoME and xPPUto Form an Industry 4.0 Case Study
  • Part II Knowledge Carrying Software
  • 5 Tacit Knowledge in Software Evolution
  • 5.1 Toward Identification and Extraction of Tacit Knowledge
  • 5.2 Foundations
  • 5.3 Tacit Knowledge During Design Time
  • 5.3.1 Security in Requirement Documents.
  • 5.3.2 Modelling of Security Knowledge
  • Security Ontology
  • Representation of Knowledge
  • 5.3.3 Identification and Extraction of Tacit Security Knowledge
  • Classification of Words
  • Measurement of Similarity Between Security Abstraction Models
  • (Semi)-Automatic Acquisition of Tacit Knowledge
  • 5.3.4 Tacit Security Knowledge Examples
  • 5.4 Tacit Knowledge During Run Time
  • 5.4.1 Usage Knowledge in Software Evolution
  • 5.4.2 Modelling of Knowledge
  • 5.4.3 Identification and Extraction of Tacit Usage Knowledge
  • Runtime Personas
  • Extraction of Tacit Usage Knowledge
  • 5.4.4 Tacit Usage Knowledge Examples
  • 5.5 Related Work
  • 5.6 Conclusion
  • 5.6.1 Summary
  • 5.6.2 Outlook
  • 5.6.3 Further Reading
  • 6 Continuous Design Decision Support
  • 6.1 Introduction
  • 6.1.1 Challenges for a Continuous Design Decision Support
  • 6.1.2 Solution Approaches for Design Decision Challenges
  • 6.1.3 Structure of This Chapter
  • 6.2 Foundations
  • 6.3 Using a Design Pattern Catalogue to Make Design Decisions
  • 6.3.1 Motivation for Using a Pattern Catalogue
  • 6.3.2 Decision-Making Process Using a Pattern Catalogue
  • 6.3.3 Application to the Case Study
  • 6.4 Integrating Design Decision Models with Program Code
  • 6.4.1 Integrating Architecture Models with Code
  • 6.4.2 Design Decisions, Rationale, and Patterns in the IAL
  • 6.4.3 Application to the Case Study
  • 6.5 Continuous Management of Decision Knowledge
  • 6.5.1 Integrating Design Decisions into CSE
  • 6.5.2 Decision Knowledge Triggers
  • Making Tacit Decisions Explicit
  • Packaging Distributed Decision Knowledge
  • Considering Consistency Between Decisions
  • 6.5.3 Application to the Case Study
  • Scenario for the Explicit Documentation of Decision Knowledge
  • Scenario for Making Tacit Decisions Explicit
  • Scenario for Packaging Distributed Decision Knowledge.
  • Scenario for Considering Consistency Between Decisions
  • 6.6 Related Work
  • 6.6.1 Documentation Consistent with External Decision Knowledge
  • 6.6.2 Documentation of Decision Knowledge Consistent with Architecture and Code
  • 6.6.3 Non-intrusive Documentation of Decision Knowledge
  • 6.7 Conclusion
  • 6.8 Further Reading
  • 7 Model-Based Round-Trip Engineering and Testing of Evolving Software Product Lines
  • 7.1 Foundations
  • 7.1.1 Model-Based Software Development and Testing
  • 7.1.2 Model-Based Product-Line Engineering and Testing
  • 7.1.3 Product-Line Round-Trip Engineering and Artefact Co-evolution
  • 7.2 Evolution
  • 7.2.1 Evolution of Software Variants
  • 7.2.2 Evolution of Software Product Lines
  • 7.2.3 Evolution of Model-Based Testing Artefacts
  • 7.3 Co-evolution
  • 7.3.1 Co-evolution of Software Product Lines and Product Variants
  • 7.3.2 Co-evolution of Software Product Lines and Model-Based Testing Artefacts
  • 7.3.3 Co-evolution of Product Variants and Test Artefacts
  • 7.4 Conclusion
  • 7.5 Further Reading
  • 8 Performance Analysis Strategies for Software Variants and Versions
  • 8.1 Analysis Strategies for Software Variants
  • 8.1.1 Sample-Based Analysis of Software Variants
  • 8.1.2 Family-Based Test-Suite Generation for Software Variants
  • 8.1.3 Family-Based Analysis of Software Variants
  • 8.2 Analysis Strategies for Software Versions
  • 8.2.1 Declarative Analysis Strategies for Evolving Software
  • 8.2.2 Align Development-Level Evolution and Operation-Level Adaptation
  • 8.2.3 Co-evolution of Architecture and Analysis Models
  • Sequence Diagram to Layered Queueing Network
  • State Charts to Continuous Time Markov Chains
  • Analysis of LQN and CTMC Models with Model Solvers
  • 8.3 Conclusion and Road Map
  • 9 Maintaining Security in Software Evolution
  • 9.1 Foundations.
  • 9.2 Design Time: Leveraging Knowledge from Natural Language for Design-Time System Adaptation
  • 9.2.1 Overview
  • 9.2.2 Capturing Security Requirements Using Natural-Language Processing
  • 9.2.3 Representing Security Knowledge Using Ontologies
  • 9.2.4 Rule-Based Model Co-evolution
  • 9.2.5 Related Work
  • 9.2.6 Leveraging Security Knowledge to Infer Adequate Reaction to Context Changes
  • 9.2.7 Summary
  • 9.3 Integrating Model-Based Security Constraints with Program Code
  • 9.3.1 Codeling: Integrating Architecture Model Information with Program Code
  • 9.3.2 Application: Security Evolution Scenario
  • 9.3.3 Security Aspects in the Intermediate Architecture Language
  • 9.3.4 Integrating Security-Architectures with Code Using the Model Integration Concept
  • 9.3.5 Related Work
  • 9.3.6 Summary
  • 9.4 Contextual Security Patterns
  • 9.4.1 Security Challenges in Software Evolution
  • 9.4.2 Contextual Security
  • 9.4.3 From Design Patterns to Security Patterns
  • 9.4.4 Security Patterns as a Means for Contextual Software Security
  • 9.4.5 Related Work
  • 9.4.6 Summary
  • 9.5 Self-adaptive Security Maintenance at Run Time by Identifying Suspicious Behaviour
  • 9.5.1 Overview
  • Application: Running Example
  • 9.5.2 Capturing Context for Security Adaption
  • 9.5.3 Leveraging Run-Time Information to Support Design-Time Security Adaption
  • 9.5.4 Heuristics-Based Run-Time Assessment to Detect Security Requirement Violations
  • 9.5.5 Adaption During Run Time
  • 9.5.6 Related Work
  • 9.5.7 Summary
  • 9.6 Anomaly Detection for Evolving Software Controlled Production Systems at Run Time
  • 9.6.1 Overview
  • 9.6.2 Detection Model: Machine State Petri Net
  • 9.6.3 Anomaly Detection Mechanism
  • 9.6.4 Example: Using the PPU Case Study
  • 9.6.5 Related Work: Finding Behaviour Anomalies
  • 9.6.6 Summary
  • 9.7 Conclusion
  • 9.8 Further Reading.
  • 10 Learning from Evolution for Evolution
  • 10.1 Detailed Analysis of Past Evolutions of Models
  • 10.1.1 Analysing Linear Evolution of Monolithic Models
  • Motivation and Goals
  • Overview of the Approach
  • Example Applications
  • 10.1.2 Analysing Co-evolution of Coupled Models
  • A Generic Framework for Analysing Model Co-evolution
  • Case Study on Architecture and Fault Tree Co-evolution
  • 10.1.3 Related Work
  • 10.1.4 Conclusion
  • 10.1.5 Further Reading
  • 10.2 Formal Analysis of Planned Changes
  • 10.2.1 Using Model-Based Verification of Interdisciplinary Models
  • 10.2.2 Using Regression Verification for Small Evolution Steps in PLC-Code
  • 10.2.3 Conclusion and Outlook
  • 10.3 Analyse Non-functional Aspects of the System
  • 10.3.1 Learning and Analysing the Machine States and Material Flow of Evolving ManufacturingSystems
  • Three-Phase Evolution Support Process
  • Application on xPPU Case Study
  • 10.3.2 Learning and Analysing DTMCs for Reliability Evaluation
  • Related Work
  • Further Reading
  • 10.3.3 Conclusion and Outlook
  • 10.4 Recommend and Assess Future Changes Basedon Past Changes
  • 10.4.1 Supporting Model Editing with Automatic Recommendations
  • Foundation
  • Analysis of Change Histories
  • Inferring Blueprints
  • Evaluation
  • Related Work
  • Conclusion
  • 10.4.2 Recommending Evolution Steps Within a Knowledge Carrying Network
  • Express Evolution Steps of a System
  • Application on xPPU Case Study
  • Related Work
  • Further Reading
  • 10.4.3 Learning Maintainability Estimation for Enabling an ``Economical Effort Recommender''
  • Challenges for Maintainability Estimation: Information Systems vs. Automated Production Systems
  • Karlsruhe Architectural Maintainability Prediction for Automated Production Systems: An Architecture-Based Change Impact Analysis Method for aPS
  • 10.4.4 Conclusion and Outlook
  • 10.5 Conclusion.
  • 11 Formal Verification of Evolutionary Changes.