ICPE '20: Proceedings of the ACM/SPEC International Conference on Performance Engineering
SESSION: Keynote Talks
Developing Effective Software Productively
It is not uncommon to hear laments about how long it takes to build software systems and how often, once built, those systems fail to meet the needs and desires of users. Given that attention has been paid to how we build large software systems for over fifty years, you might wonder why we have not figured out how to build the systems people want in a reasonable amount of time. To put the problems into perspective, fifty years is half the life-span of a Galapagos turtle and many software systems may be amongst the most complex systems ever built by humans. In that light, perhaps it is not surprising that we have not figured it all out. In this talk, I will explore what productivity means to software developers, how we might track the value that is delivered in software produced by developers and how we might begin to think about measuring the productive delivery of effective software.
ICPE '20: Companion of the ACM/SPEC International Conference on Performance Engineering
SESSION: The Eighth International Workshop on Load Testing and Benchmarking of Software Systems (LTB'20)
Migrating a Recommendation System to Cloud Using ML Workflow
Inference is the production stage of machine learning workflow in which a trained model is used to infer or predict with real world data. A recommendation system improves customer experience by displaying most relevant items based on historical behavior of a customer. Machine learning models built for recommendation systems are deployed either on-premise or migrated to a cloud for inference in real time or batch. A recommendation system should be cost effective while honoring service level agreements (SLAs). In this work we discuss on-premise implementation of our recommendation system called iPrescribe. We show a methodology to migrate on-premise implementation of recommendation system to a cloud using ML workflow. We also present our study on performance of recommendation system model when deployed on different types of virtual instances.
ICPE '21: Proceedings of the ACM/SPEC International Conference on Performance Engineering
SESSION: Session 1: Testing, Measurement and Profiling
ConfProf: White-Box Performance Profiling of Configuration Options
Modern software systems are highly customizable through configuration options. The sheer size of the configuration space makes it challenging to understand the performance influence of individual configuration options and their interactions under a specific usage scenario. Software with poor performance may lead to low system throughput and long response time. This paper presents ConfProf, a white-box performance profiling technique with a focus on configuration options. ConfProf helps developers understand how configuration options and their interactions influence the performance of a software system. The approach combines dynamic program analysis, machine learning, and feedback-directed configuration sampling to profile the program execution and analyze the performance influence of configuration options. Compared to existing approaches, ConfProf uses a white-box approach combined with machine learning to rank performance-influencing configuration options from execution traces. We evaluate the approach with 13 scenarios of four real-world, highly-configurable software systems. The results show that ConfProf ranks performance-influencing configuration options with high accuracy and outperform a state of the art technique.
ICPE '21: Companion of the ACM/SPEC International Conference on Performance Engineering
SESSION: Auto-DaSP 2021 Workshop
An Online Approach to Determine Correlation between Data Streams
Real time stream processing demands processed outcomes in minimal latency. Massive streams are generated in real time where linear relationship is determined using correlation. Existing approaches are used for correlating static data sets such as, Kandell, Pearson, Spearman etc. These approaches are insufficient to solve noise free online correlation. In this paper, we propose an online ordinal correlation approach having functionalities such as single pass, avoiding recalculation from scratch, removing outliers, and low memory requirements. In this approach, Compare Reduce Aggregate (CRA) algorithm is used for determining association between two feature vectors in real time using single scanning technique. Time and space complexities in CRA algorithm are measured as O(n) and O(1), respectively. This algorithm is used for reducing noise or error in a stream and used as a replacement of rank based correlation. It is recommended to have distinct elements and less variability in the streams for gaining maximum performance of this algorithm.
ICPE '22: Proceedings of the 2022 ACM/SPEC on International Conference on Performance Engineering
SESSION: Keynote Talks
Data Science Driven Methods for Sustainable and Failure Tolerant Edge Systems
Nowadays we experience a paradigm shift in our society, where every item around us is becoming a computer facilitating life-changing applications like self-driving cars, tele-medicine, precision agriculture or virtual reality. On one hand, for the execution of such resource demanding applications we need powerful IT facilities. On the other hand, the requirements often include latencies below 100 ms or even below 10 ms -- what is called ''tactile internet''. To facilitate low latency computation has to be placed in the vicinity of the end users by utilizing the concept of Edge Computing. In this talk we explain the challenges of Edge systems in combination with tactile internet. We discuss the recent problems of geographically distributed machine learning applications and novel approaches to balance competing priorities like the energy efficiency and the staleness of the machine learning models. Available failure resilience mechanisms designed for Cloud computing or generic distributed systems cannot be applied to Edge systems due to timeliness, hyper heterogeneity and resource scarcity. Therefore, we discuss a novel machine learning based mechanism that evaluates the failure resilience of a service deployed redundantly on the edge infrastructure. Our approach learns the spatiotemporal dependencies between edge server failures and combines them with the topological information to incorporate link failures by utilizing the concept of the Dynamic Bayesian Networks (DBNs). Eventually, we infer the probability that a certain set of servers fails or disconnects concurrently during service runtime.
ICSE 2014- Proceedings of the 36th International Conference on Software Engineering
SESSION: Perspectives on Software Engineering
Cowboys, ankle sprains, and keepers of quality: how is video game development different from software development?
Analyze this! 145 questions for data scientists in software engineering
The dimensions of software engineering success
How do professionals perceive legacy systems and software modernization?
SESSION: Testing 1
SimRT: an automated framework to support regression testing for data races
Performance regression testing target prioritization via performance risk analysis
Code coverage for suite evaluation by developers
Time pressure: a controlled experiment of test case development and requirements review
SESSION: Modeling
Verifying component and connector models against crosscutting structural views
TradeMaker: automated dynamic analysis of synthesized tradespaces
Lifting model transformations to product lines
Automated goal operationalisation based on interpolation and SAT solving
SESSION: Configuration, Variability, and Clones
Mining configuration constraints: static analyses and empirical results
Which configuration option should I change?
Detecting differences across multiple instances of code clones
Achieving accuracy and scalability simultaneously in detecting application clones on Android markets
SESSION: Social Aspects of Software Engineering
Two's company, three's a crowd: a case study of crowdsourcing software development
Does latitude hurt while longitude kills? geographical and temporal separation in a large scale software development project
Software engineering at the speed of light: how developers stay current using twitter
Building it together: synchronous development in OSS
SESSION: Repair
A critical review of "automatic patch generation learned from human-written patches": essay on the problem statement and the evaluation of automatic software repair
Data-guided repair of selection statements
The strength of random search on automated program repair
MintHint: automated synthesis of repair hints
SESSION: Formal Analysis
Mining behavior models from user-intensive web applications
Reviser: efficiently updating IDE-/IFDS-based data-flow analyses in response to incremental program changes
Automated design of self-adaptive software with control-theoretical formal guarantees
Perturbation analysis of stochastic systems with empirical distribution parameters
SESSION: Configuration Management
How do centralized and distributed version control systems impact software changes?
Transition from centralized to decentralized version control systems: a case study on reasons, barriers, and outcomes
An exploratory study of the pull-based software development model
Influence of social and technical factors for evaluating contribution in GitHub
SESSION: Software Understanding
Understanding JavaScript event-based interactions
Understanding understanding source code with functional magnetic resonance imaging
Improving automated source code summarization via an eye-tracking study of programmers
Using psycho-physiological measures to assess task difficulty in software development
SESSION: Prediction
Dictionary learning based software defect prediction
Comparing static bug finders and statistical prediction
Coverage is not strongly correlated with test suite effectiveness
How to make best use of cross-company data in software effort estimation?
SESSION: Concurrency
CARE: cache guided deterministic replay for concurrent Java programs
Inferring models of concurrent systems from logs of their behavior with CSight
Unleashing concurrency for irregular data structures
ConLock: a constraint-based approach to dynamic checking on deadlocks in multithreaded programs
SESSION: Apps and Energy
SEEDS: a software engineer's energy-optimization decision support framework
APE: an annotation language and middleware for energy-efficient mobile application development
Making web applications more energy efficient for OLED smartphones
SESSION: Testing 2
Micro execution
Unit test virtualization with VMVM
Interpolated n-grams for model based testing
An analysis of the relationship between conditional entropy and failed error propagation in software testing
SESSION: Code Contracts, Invariants, and Robustness
Trading robustness for maintainability: an empirical study of evolving c# programs
Case studies and tools for contract specifications
Using dynamic analysis to generate disjunctive invariants
Inductive verification of data model invariants for web applications
SESSION: Search and APIs
How do API documentation and static typing affect API usability?
Live API documentation
CodeHint: dynamic and interactive synthesis of code snippets
Spotting working code examples
SESSION: Adaptive Systems
Self-adaptation through incremental generative model transformations at runtime
Hope for the best, prepare for the worst: multi-tier control for adaptive systems
Brownout: building more robust cloud applications
Integrating adaptive user interface capabilities in enterprise applications
SESSION: Build and Package Management
Programmers' build errors: a case study (at google)
Understanding and improving software build teams
Towards efficient optimization in package management systems
Easing software component repository evolution
SESSION: Mining
AR-miner: mining informative reviews for developers from mobile app marketplace
Mining billions of AST nodes to study actual and potential usage of Java language features
Mining interprocedural, data-oriented usage patterns in JavaScript web applications
Mining fine-grained code changes to detect unknown change patterns
SESSION: Automated Bug Detection and Repair
Detecting memory leaks through introspective dynamic behavior modelling using machine learning
Automated memory leak detection for production use
Vejovis: suggesting fixes for JavaScript faults
Is spreadsheet ambiguity harmful? detecting and repairing spreadsheet smells due to ambiguous computation
SESSION: Requirements
Us and them: a study of privacy requirements across north america, asia, and europe
Distilling privacy requirements for mobile applications
Uncertainty, risk, and information value in software requirements and architecture
Requirements fixation
SESSION: Testing and Conformance Verification
Exploring variability-aware execution for testing plugin-based web applications
A study of equivalent and stubborn mutation operators using human analysis of equivalence
Cross-checking oracles from intrinsic software redundancy
Mind the gap: assessing the conformance of software traceability to relevant guidelines
SESSION: Modeling and Interfaces
Effects of using examples on structural model comprehension: a controlled experiment
Design rule spaces: a new form of architecture insight
Controlled modeling environment using flexibly-formatted spreadsheets
Feature maintenance with emergent interfaces
SESSION: Apps and Verification
Detecting performance anti-patterns for applications developed using object-relational mapping
Characterizing and detecting performance bugs for smartphone applications
Checking app behavior against app descriptions
AsDroid: detecting stealthy behaviors in Android applications by user interface and program behavior contradiction
SESSION: Symbolic Execution
Patch verification via multiversion interprocedural control flow graphs
Property differencing for incremental checking
Symbolic assume-guarantee reasoning through BDD learning
Enhancing symbolic execution with veritesting
SESSION: Refactoring and Reverse Engineering
Manual refactoring changes with automated refactoring validation
Alternate refactoring paths reveal usability problems
A study and toolkit for asynchronous programming in c#
Reuse-oriented reverse engineering of functional components from x86 binaries
ICSE '18- Proceedings of the 40th International Conference on Software Engineering
SESSION: Software repair I
Context-aware patch generation for better automated program repair
The effectiveness of search-based automated program repair is limited in the number of correct patches that can be successfully generated. There are two causes of such limitation. First, the search space does not contain the correct patch. Second, the search space is huge and therefore the correct patch cannot be generated (i.e., correct patches are either generated after incorrect plausible ones or not generated within the time budget).
ICSE '18- Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings
DEMONSTRATION SESSION: Mining repositories
Perceval: software project data at your will
Software development projects, in particular open source ones, heavily rely on the use of tools to support, coordinate and promote development activities. Despite their paramount value, they contribute to fragment the project data, thus challenging practitioners and researchers willing to derive insightful analytics about software projects. In this demo we present Perceval, a loyal helper able to perform automatic and incremental data gathering from almost any tool related with contributing to open source development, among others, source code management, issue tracking systems, mailing lists, forums, and social media. Perceval is an industry strong free software tool that has been widely used in Bitergia, a company devoted to offer commercial software analytics of software projects. It hides the technical complexities related to data acquisition and eases the definition of analytics. A video showcasing the main features of Perceval can be found at https://youtu.be/eH1sYF0Hdc8.
ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering
SESSION: Continuous integration
Learning-to-rank vs ranking-to-learn: strategies for regression testing in continuous integration
In Continuous Integration (CI), regression testing is constrained by the time between commits. This demands for careful selection and/or prioritization of test cases within test suites too large to be run entirely. To this aim, some Machine Learning (ML) techniques have been proposed, as an alternative to deterministic approaches. Two broad strategies for ML-based prioritization are learning-to-rank and what we call ranking-to-learn (i.e., reinforcement learning). Various ML algorithms can be applied in each strategy. In this paper we introduce ten of such algorithms for adoption in CI practices, and perform a comprehensive study comparing them against each other using subjects from the Apache Commons project. We analyze the influence of several features of the code under test and of the test process. The results allow to draw criteria to support testers in selecting and tuning the technique that best fits their context.
ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings
DEMONSTRATION SESSION: Demonstrations: Cyber-physical systems
SLEMI: finding simulink compiler bugs through equivalence modulo input (EMI)
This demo presents usage and implementation details of SLEMI. SLEMI is the first tool to automatically find compiler bugs in the widely used cyber-physical system development tool Simulink via Equivalence Modulo Input (EMI). EMI is a recent twist on differential testing that promises more efficiency. SLEMI implements several novel mutation techniques that deal with CPS language features that are not found in procedural languages. This demo also introduces a new EMI-based mutation strategy that has already found a new confirmed bug in Simulink version R2018a. To increase SLEMI's efficiency further, this paper presents parallel generation of random, valid Simulink models. A video demo of SLEMI is available at https://www.youtube.com/watch?v=oliPgOLT6eY.
Copyright (c) 2020 - 2025, SIGSOFT; all rights reserved.
Template by Bootstrapious. Ported to Hugo by DevCows.
