Managed Software Evolution.
Main Author: | |
---|---|
Other Authors: | , , , , |
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.