Ernst Denert Award for Software Engineering 2019 : Practice Meets Foundations.
Main Author: | |
---|---|
Other Authors: | , , , , , , |
Format: | eBook |
Language: | English |
Published: |
Cham :
Springer International Publishing AG,
2020.
|
Edition: | 1st ed. |
Subjects: | |
Online Access: | Click to View |
Table of Contents:
- Intro
- Contents
- Ernst Denert Software Engineering Awards 2019
- 1 Relevance of Software Engineering
- 2 History of the Ernst Denert Software Engineering Award
- 3 Award Submission Process
- 4 Selection Criteria
- 5 Selection Process
- 6 The Award Nominees and the Winner
- 7 Contents of the Book
- 7.1 Thanks
- Software Engineering
- 1 1968
- 2 Software Architecture
- 2.1 Application View
- 2.2 Design View
- 2.3 Program View
- 3 Software Development
- 4 Teamwork
- 5 A Final Wish
- Applications of Synchronized Pushdown Systems
- 1 Introduction
- 2 Motivating Examples
- 2.1 Null Pointer Analysis
- 2.2 Taint Analysis
- 2.3 Typestate Analysis
- 2.4 Cryptographic Misuses
- 3 Synchronized Pushdown Systems
- 3.1 Calls-Pushdown System
- 3.2 Field-Pushdown System
- 3.3 Synchronization of Call-PDS and Field-PDS
- 4 Boomerang
- 5 Typestate Analyses Based on IDEal
- 6 CogniCrypt
- 6.1 The CrySL Language
- 6.2 Compiling CrySL to a Static Analysis
- 6.3 Evaluation on Maven Central
- 7 Conclusion
- References
- Software Developers' Work Habits and Expertise: Empirical Studies on Sketching, Code Plagiarism, and Expertise Development
- 1 Introduction
- 2 Sketching: Developers' Usage of Sketches and Diagrams in Practice
- 3 Code Plagiarism: Stack Overflow Code Snippets in GitHub Projects
- 4 Expertise Development: Toward a Theory of Software Development Expertise
- 5 Methodological Insights: Issues in Sampling Software Developers
- 6 Open Data: Building and Maintaining the SOTorrent Dataset
- 7 Summary and Future Work
- References
- Applied Artifact-Based Analysis for Architecture ConsistencyChecking
- 1 Introduction
- 2 Foundations
- 2.1 UML/P
- 2.1.1 Class Diagrams
- 2.1.2 Object Diagrams
- 2.1.3 Object Constraint Language
- 2.2 MontiCore
- 2.3 Architecture Consistency Checking
- 3 Artifact-Based Analysis.
- 3.1 Create Artifact Model
- 3.2 Specify Artifact Data Analyses
- 3.3 Artifact-Based Analyses
- 3.4 Artifact-Based Analysis for Architecture Consistency Checking
- 4 Applied Analyses
- 4.1 DEx Generator
- 4.2 MontiCar Repositories
- 5 Conclusion
- References
- Same but Different: Consistently Developing and Evolving Software Architecture Models and Their Implementation
- 1 Introduction
- 2 The Explicitly Integrated Architecture Approach
- 2.1 Explicitly Integrated Architecture Process
- 2.2 Model Integration Concept
- 2.2.1 Integration Mechanisms
- 2.2.2 Operational Semantics
- 2.3 Intermediate Architecture Description Language
- 2.4 Architecture Model Transformations
- 2.4.1 Transformations Between Architecture Languages
- 2.4.2 Transformations Within the IAL
- 3 Tool Support
- 3.1 Codeling
- 3.1.1 Model/Code Transformations
- 3.1.2 Model-to-Model Transformations
- 3.1.3 Process Execution
- 3.2 Code Generation Tool
- 3.3 Execution Runtimes
- 4 Evaluation
- 4.1 Use Case JACK 3
- 4.2 Use Case CoCoME in PCM
- 4.3 Further Use Cases
- 4.4 Discussion
- 5 Related Work
- 6 Conclusions and Future Work
- References
- Actionable Program Analyses for Improving Software Performance
- 1 Introduction
- 1.1 Terminology
- 1.2 Challenges and Motivation
- 1.3 Outline
- 2 Performance Issues and Optimizations in JavaScript
- 2.1 Methodology
- 2.2 Subject Projects
- 2.3 Selection of Performance Issues
- 2.4 Main Findings
- 2.5 Practical Impact
- 3 Performance Profiling for Optimizing Orders of Evaluation
- 3.1 An Analysis for Detecting Reordering Opportunities
- 3.2 Dynamic Analysis
- 3.3 Experimental Evaluation
- 4 Cross-Language Optimizations in Big Data Systems
- 4.1 Performance Issues in SCOPE Language
- 4.2 Static Analysis to Find Method Inlining Opportunities
- 4.3 Experimental Evaluation
- 4.3.1 Case Studies.
- 5 Test Generation of Higher-Order Functions in Dynamic Languages
- 5.1 Overview of the Framework
- 5.2 Callback Generation Approaches
- 6 Conclusions
- 6.1 Summary of Contributions
- 6.2 Future Research Directions
- References.