Fundamental Approaches to Software Engineering 21st International Conference, FASE 2018, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018, Thessaloniki, Greece, April 14-20, 2018, Proceedings

computer software maintenance; computer software selection and evaluation; formal logic; formal methods; formal specification; programming languages; semantics; software engineering; specifications; verification

Uloženo v:
Podrobná bibliografie
Hlavní autoři: Russo, Alessandra, Schürr, Andy
Médium: E-kniha
Jazyk:angličtina
Vydáno: Cham Springer Nature 2018
Springer Open
Springer International Publishing AG
Vydání:1
Edice:Theoretical Computer Science and General Issues
Témata:
ISBN:9783319893631, 3319893637, 3319893629, 9783319893624
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Obsah:
  • EventHandler-Based Analysis Framework for Web Apps Using Dynamically Collected States -- 1 Introduction -- 2 Analyses of Event Handlers -- 2.1 Event Handlers in Web Apps -- 2.2 Analysis of Event Handlers in Whole-Program Analyzers -- 2.3 Analysis of Event Handlers in EH-Based Analyzers -- 3 Technical Details -- 4 Implementation -- 5 Experimental Evaluation -- 5.1 Experimental Setup -- 5.2 Answers to RQs -- 6 Related Work -- 7 Conclusion and Future Work -- References -- Software Design and Verification -- Hierarchical Specification and Verification of Architectural Design Patterns -- 1 Introduction -- 2 Background -- 2.1 Interactive Theorem Proving -- 2.2 A Model of Dynamic Architectures -- 3 Specifying Architectural Design Patterns -- 3.1 Specifying Data Types -- 3.2 Specifying Interfaces -- 3.3 Specifying Component Types -- 3.4 Specifying Activation and Connection Assertions -- 3.5 Specifying Pattern Instantiations -- 3.6 Example: An Initial Pattern Hierarchy -- 4 Verifying Architectural Design Patterns -- 4.1 Semantics of Pattern Specifications -- 4.2 Mapping to Isabelle/HOL -- 4.3 Example: Pattern Hierarchy -- 5 Related Work -- 6 Conclusion -- References -- Supporting Verification-Driven Incremental Distributed Design of Components -- 1 Introduction -- 2 Overview -- 3 Preliminaries -- 4 Modeling and Refining Components -- 5 Verification Algorithms -- 6 Evaluation -- 6.1 Assessing Effectiveness -- 6.2 Assessing Scalability -- 7 Related Work -- 8 Conclusion -- References -- Summarizing Software API Usage Examples Using Clustering Techniques -- 1 Introduction -- 2 Related Work -- 2.1 Systems that Output API Call Sequences -- 2.2 Systems that Output Source Code Snippets -- 3 Methodology -- 3.1 System Overview -- 3.2 Preprocessing Module -- 3.3 Clustering Module -- 3.4 Snippet Generator -- 3.5 Snippet Selector -- 3.6 Ranker
  • 3.7 Deploying to New Languages -- 4 Evaluation -- 4.1 Evaluation Framework -- 4.2 Evaluation Results -- 5 Threats to Validity -- 6 Conclusion -- References -- Fast Computation of Arbitrary Control Dependencies -- 1 Introduction -- 2 Motivation and Running Example -- 3 Basic Concepts -- 4 Main Lemmas -- 5 Danicic's Algorithm -- 6 The Optimized Algorithm -- 7 Experiments -- 8 Related Work and Conclusion -- References -- Specification and Program Testing -- Iterative Generation of Diverse Models for Testing Specifications of DSL Tools -- 1 Introduction -- 2 Preliminaries -- 2.1 Metamodels and Instance Models -- 2.2 Well-Formedness Constraints as Logic Formulae -- 2.3 Motivation: Testing of DSL Tools -- 3 Model Diversity Metrics for Testing DSL Tools -- 3.1 Neighborhood Shapes of Graphs -- 3.2 Metrics for Model Diversity -- 4 Iterative Generation of Diverse Models -- 5 Evaluation -- 6 Related Work -- 7 Conclusion and Future Work -- References -- Optimising Spectrum Based Fault Localisation for Single Fault Programs Using Specifications -- 1 Introduction -- 2 Preliminaries -- 2.1 Probands -- 2.2 Proband Models -- 2.3 Spectrum Based Fault Localisation -- 3 A Property of Single-Fault Optimal Data -- 4 Algorithm -- 5 Implementation -- 6 Experimentation -- 6.1 Setup -- 6.2 Results and Discussion -- 7 Related Work -- 8 Conclusion -- References -- TCM: Test Case Mutation to Improve Crash Detection in Android -- 1 Introduction -- 2 Background -- 3 Android Crash Patterns and Mutation Operators -- 3.1 Android Crash Patterns -- 3.2 Mutation Operators -- 4 Test Suite Minimization and Test Case Mutation -- 5 Motivating Example -- 6 Evaluation -- 6.1 Experiments -- 6.2 Case Studies -- 7 Discussion -- 8 Related Work -- 9 Conclusion -- References -- CRETE: A Versatile Binary-Level Concolic Testing Framework -- 1 Introduction -- 2 Related Work -- 3 Overview -- 4 Design
  • 2 Background -- 2.1 Attack Trees in the Security Domain -- 2.2 Model-Driven Engineering -- 3 Metamodels for Attack Tree Analysis -- 4 Model Transformations -- 4.1 Horizontal Transformations: Unifying Dialects of Attack Trees -- 4.2 Vertical Transformations: Analyzing ATs via Timed Automata -- 4.3 Query Transformation: From Domain-Specific to Tool-Specific -- 4.4 Result Transformation: From Tool-Specific to Domain-Specific -- 5 Tool Support -- 6 Case Study -- 7 Conclusions -- References -- Distributed Program and System Analysis -- ROLA: A New Distributed Transaction Protocol and Its Formal Analysis -- 1 Introduction -- 2 Preliminaries -- 3 The ROLA Multi-Partition Transaction Algorithm -- 4 A Probabilistic Model of ROLA -- 4.1 Probabilistic Sampling -- 4.2 Data Types, Classes, and Messages -- 4.3 Formalizing ROLA's Behaviors -- 5 Correctness Analysis of ROLA -- 6 Statistical Model Checking of ROLA and Walter -- 7 Related Work -- 8 Conclusions -- References -- A Process Network Model for Reactive Streaming Software with Deterministic Task Parallelism -- 1 Introduction -- 2 Related Work -- 3 A PN Model for Streaming and Reactive Control -- 4 Zero-Delay Semantics for the FPPN Model -- 5 Real-Time Semantics for the FPPN Model -- 6 Model Transformation Framework -- 7 Case Study: Guidance, Navigation and Control Application -- 8 Conclusion -- References -- Distributed Graph Queries for Runtime Monitoring of Cyber-Physical Systems -- 1 Introduction -- 2 Overview of Distributed Runtime Monitoring -- 3 Towards Distributed Runtime Models -- 3.1 Runtime Models -- 3.2 Distributed Runtime Models -- 4 Distributed Runtime Monitoring -- 4.1 Graph Queries for Specifying Safety Monitors -- 4.2 Execution of Distributed Runtime Monitors -- 5 Evaluation -- 5.1 Measurement Setup -- 5.2 Measurement Results -- 6 Related Work -- 7 Conclusions -- References
  • 4.1 crete Architecture -- 4.2 Standardized Runtime Trace -- 4.3 Selective Binary-Level Tracing -- 4.4 Concolic Test Case Generation -- 4.5 Bug and Runtime Vulnerability Detection -- 5 Implementation -- 6 Evaluation -- 6.1 GNU Coreutils -- 6.2 TianoCore Utilities -- 7 Conclusions and Future Work -- References -- Family-Based Software Development -- Abstract Family-Based Model Checking Using Modal Featured Transition Systems: Preservation of CTL -- 1 Introduction -- 2 Background -- 3 Abstraction of FTSs -- 4 Implementation -- 5 Evaluation -- 6 Related Work and Conclusion -- References -- FPH: Efficient Non-commutativity Analysis of Feature-Based Systems -- 1 Introduction -- 2 Preliminaries -- 3 Methodology -- 3.1 Separating Feature Behavior and Composition -- 3.2 Compositional Analysis of Non-commutativity -- 4 Evaluation -- 5 Related Work -- 6 Conclusion and Future Work -- References -- Taming Multi-Variability of Software Product Line Transformations -- 1 Introduction -- 2 Running Example -- 3 Background -- 4 Multi-variability of Product Line Transformations -- 4.1 Fully Flattened Application -- 4.2 Partially Flattened Application -- 4.3 Staged Application -- 5 Algorithm -- 6 Evaluation -- 7 Related Work -- 8 Conclusion and Future Work -- References -- Author Index
  • Intro -- ETAPS Foreword -- Preface -- Organization -- Contents -- Model-Based Software Development -- A Formal Framework for Incremental Model Slicing -- 1 Introduction -- 2 Motivating Example -- 3 Formal Framework -- 3.1 Models as Graphs -- 3.2 Model Modifications -- 3.3 Model Slicing -- 3.4 Incremental Slice Update -- 4 Instantiation of the Formal Framework -- 4.1 Edit Scripts as Refinements of Model Modifications -- 4.2 Model Slicing Through Slice-Creating Edit Scripts -- 4.3 Incremental Slicing Through Slice-Updating Edit Scripts -- 4.4 Implementation -- 5 Solving the Motivating Examples -- 5.1 A State-Based Model Slicer -- 5.2 A Slicer for Extracting Editable Submodels -- 6 Related Work -- 7 Conclusion -- References -- Multiple Model Synchronization with Multiary Delta Lenses -- 1 Introduction -- 2 Example -- 2.1 A Multimodel to Play With -- 2.2 Synchronization via Update Propagation -- 2.3 Reflective Update Propagation -- 3 Multidirectional Update Propagation and Delta Lenses -- 3.1 Background: Graphs and Categories -- 3.2 Model Spaces and Correspondences -- 3.3 Update Propagation and Multiary (Delta) Lenses -- 4 Compositionality of Update Propagation: Playing Lego with Lenses -- 4.1 Star Composition -- 4.2 Assembling n-ary Lenses from Binary Lenses -- 5 Related Work -- 6 Conclusions and Future Work -- References -- Controlling the Attack Surface of Object-Oriented Refactorings -- 1 Introduction -- 2 Background and Motivation -- 3 Search-Based Program Refactorings with Attack-Surface Control -- 3.1 Program Model -- 3.2 Model-Based Program Refactorings -- 3.3 Optimization Objectives -- 3.4 Search-Based Optimization Process -- 4 Experimental Evaluation -- 4.1 Experiment Setup and Results -- 4.2 Discussion -- 5 Related Work -- 6 Conclusion -- References -- Effective Analysis of Attack Trees: A Model-Driven Approach -- 1 Introduction