Opentocs

EnSEmble 2018- Proceedings of the 1st ACM SIGSOFT International Workshop on Ensemble-Based Software Engineering

EnSEmble 2018- Proceedings of the 1st ACM SIGSOFT International Workshop on Ensemble-Based Software Engineering

Full Citation in the ACM Digital Library

Towards an approach for developing and testing Node-RED IoT systems

  • Diego Clerissi
  • Maurizio Leotta
  • Gianna Reggio
  • Filippo Ricca

Node-RED is a visual tool based on the flow-based programming paradigm and built on NodeJS, which is used for developing IoT systems. In Node-RED, the developer can follow her own personal flavour for wiring devices and online services together, and the same system can be developed in many different ways. Each day, the Node-RED community submits to users novel solutions, and even if there exist frameworks for testing Node-RED flows, they are not supported by a systematic testing technique. Hence, the freedom granted by Node-RED may hinder the understandability of the produced artefacts and the detection of faults.

Continue reading

EnSEmble 2019- Proceedings of the 2nd ACM SIGSOFT International Workshop on Ensemble-Based Software Engineering for Modern Computing Platforms

EnSEmble 2019- Proceedings of the 2nd ACM SIGSOFT International Workshop on Ensemble-Based Software Engineering for Modern Computing Platforms

Full Citation in the ACM Digital Library

SESSION: Papers

EnergyAware: a non-intrusive load monitoring system to improve the domestic energy consumption awareness

  • Paolo Buono
  • Fabrizio Balducci
  • Fabio Cassano
  • Antonio Piccinno

The correct use of energy can heavily impact on a family monthly bills and can also contribute to reduce the global air pollution production. Despite many available systems for domestic energy consumption, the real understanding of how domestic devices affect the total energy consumption is still a challenge. The Internet of Things (IoT) technology may contribute to the improvement of the energy habits awareness, by connecting sensors and mobile devices to provide people real-time consumption of a domestic environment. Many attempts have been done to integrate environmental sensors, mobile devices and people but this remains a challenge. This paper presents the use of a cheap and easy to apply Non-Intrusive Load Monitoring (NILM) system that show people their historical and real-time domestic energy consumption on mobile devices and sends them alerts if an energy overload is about to occur.

Continue reading

ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Invited Presentations

Programming and execution models for next generation code intelligence systems (keynote)

  • Mira Mezini

McCarthy defined Artificial Intelligence (AI) as “the science and engineering of making intelligent computer programs”. I define Code Intelligence (CI) by specializing his definition to intelligent computer programs that analyze other computer programs (PAPs for short) and use it to structure the keynote in two parts. The first part argues for more research on engineering foundations of PAPs. The second part outlooks new directions of combining rule-based intelligence of current PAPs with learning capabilities. Together, novel engineering foundations and enhanced intelligence characterize what I think will be the next generation of PAPs.

Continue reading

ESEC/FSE 2015- Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering

ESEC/FSE 2015- Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Adaptive Systems

Proactive self-adaptation under uncertainty: a probabilistic model checking approach

  • Gabriel A. Moreno
  • Javier Cámara
  • David Garlan
  • Bradley Schmerl

Automated multi-objective control for self-adaptive software design

  • Antonio Filieri
  • Henry Hoffmann
  • Martina Maggio

Detecting event anomalies in event-based systems

  • Gholamreza Safi
  • Arman Shahbazian
  • William G. J. Halfond
  • Nenad Medvidovic

SESSION: Software Quality

Suggesting accurate method and class names

  • Miltiadis Allamanis
  • Earl T. Barr
  • Christian Bird
  • Charles Sutton

Measure it? manage it? ignore it? software practitioners and technical debt

  • Neil A. Ernst
  • Stephany Bellomo
  • Ipek Ozkaya
  • Robert L. Nord
  • Ian Gorton

Automatically computing path complexity of programs

  • Lucas Bang
  • Abdulbaki Aydin
  • Tevfik Bultan

SESSION: Synthesis and Search-Based Approaches for Reactive Systems

Systematic testing of asynchronous reactive systems

  • Ankush Desai
  • Shaz Qadeer
  • Sanjit A. Seshia

Effective test suites for mixed discrete-continuous stateflow controllers

  • Reza Matinnejad
  • Shiva Nejati
  • Lionel C. Briand
  • Thomas Bruckmann

GR(1) synthesis for LTL specification patterns

  • Shahar Maoz
  • Jan Oliver Ringert

SESSION: Testing I

Modeling readability to improve unit tests

  • Ermira Daka
  • José Campos
  • Gordon Fraser
  • Jonathan Dorn
  • Westley Weimer

Improving model-based test generation by model decomposition

  • Paolo Arcaini
  • Angelo Gargantini
  • Elvinia Riccobene

Synthesizing tests for detecting atomicity violations

  • Malavika Samak
  • Murali Krishna Ramanathan

SESSION: Search-Based Approaches to Testing, Repair, and Energy Optimisation

Optimizing energy consumption of GUIs in Android apps: a multi-objective approach

  • Mario Linares-Vásquez
  • Gabriele Bavota
  • Carlos Eduardo Bernal Cárdenas
  • Rocco Oliveto
  • Massimiliano Di Penta
  • Denys Poshyvanyk

Generating TCP/UDP network data for automated unit test generation

  • Andrea Arcuri
  • Gordon Fraser
  • Juan Pablo Galeotti

Staged program repair with condition synthesis

  • Fan Long
  • Martin Rinard

SESSION: Empirical Studies of Software Developers I

When, how, and why developers (do not) test in their IDEs

  • Moritz Beller
  • Georgios Gousios
  • Annibale Panichella
  • Andy Zaidman

How developers search for code: a case study

  • Caitlin Sadowski
  • Kathryn T. Stolee
  • Sebastian Elbaum

Tracing software developers' eyes and interactions for change tasks

  • Katja Kevic
  • Braden M. Walters
  • Timothy R. Shaffer
  • Bonita Sharif
  • David C. Shepherd
  • Thomas Fritz

SESSION: Testing II

Assertions are strongly correlated with test suite effectiveness

  • Yucheng Zhang
  • Ali Mesbah

Test report prioritization to assist crowdsourced testing

  • Yang Feng
  • Zhenyu Chen
  • James A. Jones
  • Chunrong Fang
  • Baowen Xu

Comparing and combining test-suite reduction and regression test selection

  • August Shi
  • Tifany Yung
  • Alex Gyori
  • Darko Marinov

SESSION: Security

Questions developers ask while diagnosing potential security vulnerabilities with static analysis

  • Justin Smith
  • Brittany Johnson
  • Emerson Murphy-Hill
  • Bill Chu
  • Heather Richter Lipford

Quantifying developers' adoption of security tools

  • Jim Witschey
  • Olga Zielinska
  • Allaire Welk
  • Emerson Murphy-Hill
  • Chris Mayhorn
  • Thomas Zimmermann

Auto-patching DOM-based XSS at scale

  • Inian Parameshwaran
  • Enrico Budianto
  • Shweta Shinde
  • Hung Dang
  • Atul Sadhu
  • Prateek Saxena

SESSION: Configurable Systems

Performance-influence models for highly configurable systems

  • Norbert Siegmund
  • Alexander Grebhahn
  • Sven Apel
  • Christian Kästner

Users beware: preference inconsistencies ahead

  • Farnaz Behrang
  • Myra B. Cohen
  • Alessandro Orso

Hey, you have given me too many knobs!: understanding and dealing with over-designed configuration in system software

  • Tianyin Xu
  • Long Jin
  • Xuepeng Fan
  • Yuanyuan Zhou
  • Shankar Pasupathy
  • Rukma Talwadker

SESSION: Debugging

Crowd debugging

  • Fuxiang Chen
  • Sunghun Kim

On the use of delta debugging to reduce recordings and facilitate debugging of web applications

  • Mouna Hammoudi
  • Brian Burg
  • Gigon Bae
  • Gregg Rothermel

MemInsight: platform-independent memory debugging for JavaScript

  • Simon Holm Jensen
  • Manu Sridharan
  • Koushik Sen
  • Satish Chandra

SESSION: Web Applications

JITProf: pinpointing JIT-unfriendly JavaScript code

  • Liang Gong
  • Michael Pradel
  • Koushik Sen

Cross-language program slicing for dynamic web applications

  • Hung Viet Nguyen
  • Christian Kästner
  • Tien N. Nguyen

Detecting JavaScript races that matter

  • Erdal Mutlu
  • Serdar Tasiran
  • Benjamin Livshits

SESSION: Studies of Software Engineering Research and Practice

The making of cloud applications: an empirical study on software development for the cloud

  • Jürgen Cito
  • Philipp Leitner
  • Thomas Fritz
  • Harald C. Gall

An empirical study of goto in C code from GitHub repositories

  • Meiyappan Nagappan
  • Romain Robbes
  • Yasutaka Kamei
  • Éric Tanter
  • Shane McIntosh
  • Audris Mockus
  • Ahmed E. Hassan

How practitioners perceive the relevance of software engineering research

  • David Lo
  • Nachiappan Nagappan
  • Thomas Zimmermann

SESSION: Concurrency

What change history tells us about thread synchronization

  • Rui Gu
  • Guoliang Jin
  • Linhai Song
  • Linjie Zhu
  • Shan Lu

Finding schedule-sensitive branches

  • Jeff Huang
  • Lawrence Rauchwerger

Effective and precise dynamic detection of hidden races for Java programs

  • Yan Cai
  • Lingwei Cao

SESSION: Program Analysis I

A user-guided approach to program analysis

  • Ravi Mangal
  • Xin Zhang
  • Aditya V. Nori
  • Mayur Naik

Hidden truths in dead software paths

  • Michael Eichberg
  • Ben Hermann
  • Mira Mezini
  • Leonid Glanz

P3: partitioned path profiling

  • Mohammed Afraz
  • Diptikalyan Saha
  • Aditya Kanade

SESSION: Prediction and Recommendation

Heterogeneous cross-company defect prediction by unified metric representation and CCA-based transfer learning

  • Xiaoyuan Jing
  • Fei Wu
  • Xiwei Dong
  • Fumin Qi
  • Baowen Xu

Heterogeneous defect prediction

  • Jaechang Nam
  • Sunghun Kim

Clone-based and interactive recommendation for modifying pasted code

  • Yun Lin
  • Xin Peng
  • Zhenchang Xing
  • Diwen Zheng
  • Wenyun Zhao

SESSION: Program Repair

Is the cure worse than the disease? overfitting in automated program repair

  • Edward K. Smith
  • Earl T. Barr
  • Claire Le Goues
  • Yuriy Brun

Responsive designs in a snap

  • Nishant Sinha
  • Rezwana Karim

CLOTHO: saving programs from malformed strings and incorrect string-handling

  • Aritra Dhar
  • Rahul Purandare
  • Mohan Dhawan
  • Suresh Rangaswamy

SESSION: Information Retrieval

Query-based configuration of text retrieval solutions for software engineering tasks

  • Laura Moreno
  • Gabriele Bavota
  • Sonia Haiduc
  • Massimiliano Di Penta
  • Rocco Oliveto
  • Barbara Russo
  • Andrian Marcus

Information retrieval and spectrum based bug localization: better together

  • Tien-Duy B. Le
  • Richard J. Oentaryo
  • David Lo

Rule-based extraction of goal-use case models from text

  • Tuong Huan Nguyen
  • John Grundy
  • Mohamed Almorsy

SESSION: Program Analysis II

Symbolic execution of programs with heap inputs

  • Pietro Braione
  • Giovanni Denaro
  • Mauro Pezzè

Automatically deriving pointer reference expressions from binary code for memory dump analysis

  • Yangchun Fu
  • Zhiqiang Lin
  • David Brumley

SESSION: Measurement and Metric

Summarizing and measuring development activity

  • Christoph Treude
  • Fernando Figueira Filho
  • Uirá Kulesza

A method to identify and correct problematic software activity data: exploiting capacity constraints and data redundancies

  • Qimu Zheng
  • Audris Mockus
  • Minghui Zhou

SESSION: Patterns and Coding Convention

Gamification for enforcing coding conventions

  • Christian R. Prause
  • Matthias Jarke

SESSION: Mobile Applications

String analysis for Java and Android applications

  • Ding Li
  • Yingjun Lyu
  • Mian Wan
  • William G. J. Halfond

Auto-completing bug reports for Android applications

  • Kevin Moran
  • Mario Linares-Vásquez
  • Carlos Bernal-Cárdenas
  • Denys Poshyvanyk

CLAPP: characterizing loops in Android applications

  • Yanick Fratantonio
  • Aravind Machiry
  • Antonio Bianchi
  • Christopher Kruegel
  • Giovanni Vigna

SESSION: Search, Synthesis, and Verification

TLV: abstraction through testing, learning, and validation

  • Jun Sun
  • Hao Xiao
  • Yang Liu
  • Shang-Wei Lin
  • Shengchao Qin

Mimic: computing models for opaque code

  • Stefan Heule
  • Manu Sridharan
  • Satish Chandra

Witness validation and stepwise testification across software verifiers

  • Dirk Beyer
  • Matthias Dangl
  • Daniel Dietsch
  • Matthias Heizmann
  • Andreas Stahlbauer

SESSION: Java and Object-Oriented Programming

Efficient and reasonable object-oriented concurrency

  • Scott West
  • Sebastian Nanz
  • Bertrand Meyer

FlexJava: language support for safe and modular approximate programming

  • Jongse Park
  • Hadi Esmaeilzadeh
  • Xin Zhang
  • Mayur Naik
  • William Harris

Getting to know you: towards a capability model for Java

  • Ben Hermann
  • Michael Reif
  • Michael Eichberg
  • Mira Mezini

SESSION: Testing III

Efficient dependency detection for safe Java test acceleration

  • Jonathan Bell
  • Gail Kaiser
  • Eric Melski
  • Mohan Dattatreya

Turning programs against each other: high coverage fuzz-testing using binary-code mutation and dynamic slicing

  • Ulf Kargén
  • Nahid Shahmehri

Guided differential testing of certificate validation in SSL/TLS implementations

  • Yuting Chen
  • Zhendong Su

SESSION: Empirical Studies of Software Developers II

Quality and productivity outcomes relating to continuous integration in GitHub

  • Bogdan Vasilescu
  • Yue Yu
  • Huaimin Wang
  • Premkumar Devanbu
  • Vladimir Filkov

Developer onboarding in GitHub: the role of prior social links and language experience

  • Casey Casalnuovo
  • Bogdan Vasilescu
  • Premkumar Devanbu
  • Vladimir Filkov

Impact of developer turnover on quality in open-source software

  • Matthieu Foucault
  • Marc Palyart
  • Xavier Blanc
  • Gail C. Murphy
  • Jean-Rémy Falleri

SESSION: Symbolic Execution

MultiSE: multi-path symbolic execution using value summaries

  • Koushik Sen
  • George Necula
  • Liang Gong
  • Wontae Choi

Assertion guided symbolic execution of multithreaded programs

  • Shengjian Guo
  • Markus Kusano
  • Chao Wang
  • Zijiang Yang
  • Aarti Gupta

Iterative distribution-aware sampling for probabilistic symbolic execution

  • Mateus Borges
  • Antonio Filieri
  • Marcelo D'Amorim
  • Corina S. Păsăreanu

SESSION: Human Aspects of Software Engineering

Bespoke tools: adapted to the concepts developers know

  • Brittany Johnson
  • Rahul Pandita
  • Emerson Murphy-Hill
  • Sarah Heckman

I heart hacker news: expanding qualitative research findings by analyzing social news websites

  • Titus Barik
  • Brittany Johnson
  • Emerson Murphy-Hill

GitSonifier: using sound to portray developer conflict history

  • Kevin J. North
  • Shane Bolan
  • Anita Sarma
  • Myra B. Cohen

Automatically recommending test code examples to inexperienced developers

  • Raphael Pham
  • Yauheni Stoliar
  • Kurt Schneider

Using software theater for the demonstration of innovative ubiquitous applications

  • Han Xu
  • Stephan Krusche
  • Bernd Bruegge

SESSION: Validation, Verification, and Testing

Behavioral log analysis with statistical guarantees

  • Nimrod Busany
  • Shahar Maoz

Inner oracles: input-specific assertions on internal states

  • Yingfei Xiong
  • Dan Hao
  • Lu Zhang
  • Tao Zhu
  • Muyao Zhu
  • Tian Lan

Targeted program transformations for symbolic execution

  • Cristian Cadar

Crash reproduction via test case mutation: let existing test cases help

  • Jifeng Xuan
  • Xiaoyuan Xie
  • Martin Monperrus

RDIT: race detection from incomplete traces

  • Arun K. Rajagopalan
  • Jeff Huang

SESSION: Maintenance and Evolution

TACO: test suite augmentation for concurrent programs

  • Tingting Yu

Navigating through the archipelago of refactorings

  • Apostolos V. Zarras
  • Theofanis Vartziotis
  • Panos Vassiliadis

Detecting semantic merge conflicts with variability-aware execution

  • Hung Viet Nguyen
  • My Huu Nguyen
  • Son Cuu Dang
  • Christian Kästner
  • Tien N. Nguyen

Product lines can jeopardize their trade secrets

  • Mathieu Acher
  • Guillaume Bécan
  • Benoit Combemale
  • Benoit Baudry
  • Jean-Marc Jézéquel

SESSION: Tool Demonstrations

JSketch: sketching for Java

  • Jinseong Jeon
  • Xiaokang Qiu
  • Jeffrey S. Foster
  • Armando Solar-Lezama

Don't panic: reverse debugging of kernel drivers

  • Pavel Dovgalyuk
  • Denis Dmitriev
  • Vladimir Makarov

UMTG: a toolset to automatically generate system test cases from use case specifications

  • Chunhui Wang
  • Fabrizio Pastore
  • Arda Goknil
  • Lionel C. Briand
  • Zohaib Iqbal

DexterJS: robust testing platform for DOM-based XSS vulnerabilities

  • Inian Parameshwaran
  • Enrico Budianto
  • Shweta Shinde
  • Hung Dang
  • Atul Sadhu
  • Prateek Saxena

T3i: a tool for generating and querying test suites for Java

  • I. S. Wishnu B. Prasetya

iTrace: enabling eye tracking on software artifacts within the IDE to support software engineering tasks

  • Timothy R. Shaffer
  • Jenna L. Wise
  • Braden M. Walters
  • Sebastian C. Müller
  • Michael Falcone
  • Bonita Sharif

Nyx: a display energy optimizer for mobile web apps

  • Ding Li
  • Angelica Huyen Tran
  • William G. J. Halfond

NARCIA: an automated tool for change impact analysis in natural language requirements

  • Chetan Arora
  • Mehrdad Sabetzadeh
  • Arda Goknil
  • Lionel C. Briand
  • Frank Zimmer

Commit guru: analytics and risk prediction of software commits

  • Christoffer Rosen
  • Ben Grawi
  • Emad Shihab

OSSMETER: a software measurement platform for automatically analysing open source software projects

  • Davide Di Ruscio
  • Dimitris S. Kolovos
  • Ioannis Korkontzelos
  • Nicholas Matragkas
  • Jurgen J. Vinju

Comprehensive service matching with MatchBox

  • Paul Börding
  • Melanie Bruns
  • Marie Christin Platenius

UEDashboard: awareness of unusual events in commit histories

  • Larissa Leite
  • Christoph Treude
  • Fernando Figueira Filho

MatrixMiner: a red pill to architect informal product descriptions in the matrix

  • Sana Ben Nasr
  • Guillaume Bécan
  • Mathieu Acher
  • João Bosco Ferreira Filho
  • Benoit Baudry
  • Nicolas Sannier
  • Jean-Marc Davril

SESSION: Quality

Predicting field reliability

  • Pete Rotella
  • Sunita Chulani
  • Devesh Goyal

REMI: defect prediction for efficient API testing

  • Mijung Kim
  • Jaechang Nam
  • Jaehyuk Yeon
  • Soonhwang Choi
  • Sunghun Kim

OnSpot system: test impact visibility during code edits in real software

  • Muhammad Umar Janjua

SESSION: Software Process

Products, developers, and milestones: how should I build my n-gram language model

  • Juliana Saraiva
  • Christian Bird
  • Thomas Zimmermann

Evaluating a formal scenario-based method for the requirements analysis in automotive software engineering

  • Joel Greenyer
  • Max Haase
  • Jörg Marhenke
  • Rene Bellmer

Barriers and enablers for shortening software development lead-time in mechatronics organizations: a case study

  • Mahshad M.Mahally
  • Miroslaw Staron
  • Jan Bosch

SESSION: Requirements and Specification

Semantic degrees for industrie 4.0 engineering: deciding on the degree of semantic formalization to select appropriate technologies

  • Chih-Hong Cheng
  • Tuncay Guelfirat
  • Christian Messinger
  • Johannes O. Schmitt
  • Matthias Schnelte
  • Peter Weber

Towards automating the security compliance value chain

  • Smita Ghaisas
  • Manish Motwani
  • Balaji Balasubramaniam
  • Anjali Gajendragadkar
  • Rahul Kelkar
  • Harrick Vin

Requirements, architecture, and quality in a mission critical system: 12 lessons learned

  • Aapo Koski
  • Tommi Mikkonen

SESSION: Doctoral Symposium

Decentralized self-adaptation in large-scale distributed systems

  • Luca Florio

Vehicle level continuous integration in the automotive industry

  • Sebastian Vöst

Quantifying architectural debts

  • Lu Xiao

User-centric security: optimization of the security-usability trade-off

  • Denis Feth

Automated unit test generation for evolving software

  • Sina Shamshiri

SESSION: Student Research Competition

Increasing the efficiency of search-based unit test generation using parameter control

  • Thomas White

Enhancing Android application bug reporting

  • Kevin Moran

Improving energy consumption in Android apps

  • Carlos Bernal-Cárdenas

Automated generation of programming language quizzes

  • Shuktika Jain

Spotting familiar code snippet structures for program comprehension

  • Venkatesh Vinayakarao

Combining eye tracking with navigation paths for identification of cross-language code dependencies

  • Martin Konopka

A textual domain specific language for requirement modelling

  • Oyindamola Olajubu

Automated attack surface approximation

  • Christopher Theisen

Pockets: a tool to support exploratory programming for novices and educators

  • Erina Makihara

Continue reading

ESEC/FSE 2017: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering

ESEC/FSE 2017: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Invited Papers

The rising tide lifts all boats: the advancement of science in cyber security (invited talk)

  • Laurie Williams

Stolen passwords, compromised medical records, taking the internet out through video cameras– cybersecurity breaches are in the news every day. Despite all this, the practice of cybersecurity today is generally reactive rather than proactive. That is, rather than improving their defenses in advance, organizations react to attacks once they have occurred by patching the individual vulnerabilities that led to those attacks. Researchers engineer solutions to the latest form of attack. What we need, instead, are scientifically founded design principles for building in security mechanisms from the beginning, giving protection against broad classes of attacks. Through scientific measurement, we can improve our ability to make decisions that are evidence-based, proactive, and long-sighted. Recognizing these needs, the US National Security Agency (NSA) devised a new framework for collaborative research, the “Lablet” structure, with the intent to more aggressively advance the science of cybersecurity. A key motivation was to catalyze a shift in relevant areas towards a more organized and cohesive scientific community. The NSA named Carnegie Mellon University, North Carolina State University, and the University of Illinois – Urbana Champaign its initial Lablets in 2011, and added the University of Maryland in 2014.

Continue reading

ESEC/FSE 2018: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

ESEC/FSE 2018: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Invited Papers

Behind every great deep learning framework is an even greater programming languages concept (keynote)

  • Erik Meijer

In many areas, such as image recognition, natural language processing, search, recommendation, autonomous cars, systems software and infrastructure, and even Software Engineering tools themselves, Software 2.0 (= programming using learned models) is quickly swallowing Software 1.0 (= programming using handcrafted algorithms). Where the Software 1.0 Engineer formally specifies their problem, carefully designs algorithms, composes systems out of subsystems or decomposes complex systems into smaller components, the Software 2.0 Engineer amasses training data and simply feeds it into an ML algorithm that will synthesize an approximation of the function whose partial extensional definition is that training data. Instead of code as the artifact of interest, in Software 2.0 it is all about the data where compilation of source code is replaced by training models with data. This new style of programming has far-reaching consequences for traditional software engineering practices. Everything we have learned about life cycle models, project planning and estimation, requirements analysis, program design, construction, debugging, testing, maintenance and implementation, … runs the danger of becoming obsolete.

Continue reading

ESEC/FSE 2019: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

ESEC/FSE 2019: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Keynotes

Living with feature interactions (keynote)

  • Joanne M. Atlee

Feature-oriented software development enables rapid software creation and evolution, through incremental and parallel feature development or through product line engineering. However, in practice, features are often not separate concerns. They behave differently in the presence of other features, and they sometimes interfere with each other in surprising ways.

Continue reading

ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Analysis

A behavioral notion of robustness for software systems

  • Changjian Zhang
  • David Garlan
  • Eunsuk Kang

Software systems are designed and implemented with assumptions about the environment. However, once the system is deployed, the actual environment may deviate from its expected behavior, possibly undermining desired properties of the system. To enable systematic design of systems that are robust against potential environmental deviations, we propose a rigorous notion of robustness for software systems. In particular, the robustness of a system is defined as the largest set of deviating environmental behaviors under which the system is capable of guaranteeing a desired property. We describe a new set of design analysis problems based on our notion of robustness, and a technique for automatically computing robustness of a system given its behavior description. We demonstrate potential applications of our robustness notion on two case studies involving network protocols and safety-critical interfaces.

Continue reading

ESEM '21: Proceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)

ESEM '21: Proceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)

Full Citation in the ACM Digital Library

SESSION: Keynote Papers

How Empirical Research Supports Tool Development: A Retrospective Analysis and new Horizons

  • Massimiliano Di Penta

Empirical research provides two-fold support to the development of approaches and tools aimed at supporting software engineers. On the one hand, empirical studies help to understand a phenomenon or context of interest. On the other hand, studies compare approaches and evaluate how software engineers could benefit from them. Over the past decades, there has been a tangible evolution in how empirical evaluation is conducted in software engineering. This is due to multiple reasons. First, the research community has matured a lot thanks also to guidelines developed by several researchers. Second, the large availability of data and artifacts, mainly from the open-source, has made it possible to conduct larger evaluations, and in some cases to reach study participants. This keynote will first overview how empirical research has been used over the past decades to evaluate tools, and how this is changing over the years. Then, we will focus on the importance of combining quantitative and qualitative evaluations, and how sometimes "depth" turns out to be more useful than just "breadth". We will also emphasize how research is not a straightforward path, and negative results are often an essential component for future advances. Last, but not least, we will discuss how the role of empirical evaluation is changing with the pervasiveness of artificial intelligence methods in software engineering research.

Continue reading

ESEM '14- Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement

ESEM '14- Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement

Full Citation in the ACM Digital Library

SESSION: Testing

What do game developers test in their products?

  • Jussi Kasurinen
  • Kari Smolander

The impact of test ownership and team structure on the reliability and effectiveness of quality test runs

  • Kim Herzig
  • Nachiappan Nagappan

A systematic mapping study on testing technique experiments: has the situation changed since 2000?

  • Jorge E. González
  • Natalia Juristo
  • Sira Vegas

Evaluating the TESTAR tool in an industrial case study

  • Sebastian Bauersfeld
  • Tanja E. J. Vos
  • Nelly Condori-Fernandez
  • Alessandra Bagnato
  • Etienne Brosse

SESSION: Defects

How is exploratory testing used?: a state-of-the-practice survey

  • Dietmar Pfahl
  • Huishi Yin
  • Mika V. Mäntylä
  • Jürgen Münch

The effect of evolutionary coupling on software defects: an industrial case study on a legacy system

  • Serkan Kirbas
  • Alper Sen
  • Bora Caglayan
  • Ayse Bener
  • Rasim Mahmutogullari

Empirical and face validity of software maintenance defect models used at the jet propulsion laboratory

  • William Taber
  • Dan Port

A replicated study on duplicate detection: using apache lucene to search among Android defects

  • Markus Borg
  • Per Runeson
  • Jens Johansson
  • Mika V. Mäntylä

Evaluating capture and replay and model-based performance testing tools: an empirical comparison

  • Elder M. Rodrigues
  • Rodrigo S. Saad
  • Flavio M. Oliveira
  • Leandro T. Costa
  • Maicon Bernardino
  • Avelino F. Zorzo

SESSION: Agile methods

Impact of process conformance on the effects of test-driven development

  • Davide Fucci
  • Burak Turhan
  • Markku Oivo

On knowledge transfer skill in pair programming

  • Franz Zieris
  • Lutz Prechelt

Networking in a large-scale distributed agile project

  • Nils Brede Moe
  • Darja Šmite
  • Aivars Šāblis
  • Anne-Lie Börjesson
  • Pia Andréasson

Sampling improvement in software engineering surveys

  • Rafael Maiani de Mello
  • Pedro Correa da Silva
  • Guilherme Horta Travassos

SESSION: Modeling

Comparing and contrasting model-driven engineering at three large companies

  • Håkan Burden
  • Rogardt Heldal
  • Jon Whittle

Productivity for proof engineering

  • Mark Staples
  • Ross Jeffery
  • June Andronick
  • Toby Murray
  • Gerwin Klein
  • Rafal Kolanski

An UML-based approach to software development cost estimation

  • Antonio Girasella
  • Filippo Pagin

A controlled experiment to evaluate the effects of mindfulness in software engineering

  • Beatriz Bernárdez
  • Amador Durán
  • José A. Parejo
  • Antonio Ruiz--Cortés

SESSION: Requirements

Improving requirements glossary construction via clustering: approach and industrial case studies

  • Chetan Arora
  • Mehrdad Sabetzadeh
  • Lionel Briand
  • Frank Zimmer

Engineering of quality requirements as perceived by near-shore development centers' architects in eastern Europe: the hole in the whole

  • Maya Daneva
  • Sabrina Marczak
  • Andrea Herrmann

Evaluation in practice: artifact-based requirements engineering and scenarios in smart mobility domains

  • Constanza Lampasona
  • Philipp Diebold
  • Jonas Eckhardt
  • Rolf Schneider

On the impact of passive voice requirements on domain modelling

  • Henning Femmer
  • Jan Kučera
  • Antonio Vetrò

SESSION: Security

Using templates to elicit implied security requirements from functional requirements - a controlled experiment

  • Maria Riaz
  • John Slankas
  • Jason King
  • Laurie Williams

Discovering buffer overflow vulnerabilities in the wild: an empirical study

  • Ming Fang
  • Munawar Hafiz

Security triage: an industrial case study on the effectiveness of a lean methodology to identify security requirements

  • Matteo Giacalone
  • Federica Paci
  • Rocco Mammoliti
  • Rodolfo Perugino
  • Fabio Massacci
  • Claudio Selli

SESSION: Maintenance

FixerCache: unsupervised caching active developers for diverse bug triage

  • Song Wang
  • Wen Zhang
  • Qing Wang

What's in a bug report?

  • Steven Davies
  • Marc Roper

Effect of temporal collaboration network, maintenance activity, and experience on defect exposure

  • Andriy Miranskyy
  • Bora Caglayan
  • Ayse Bener
  • Enzo Cialini

SESSION: Evolution

Debsources: live and historical views on macro-level software evolution

  • Matthieu Caneill
  • Stefano Zacchiroli

A qualitative analysis of software build system changes and build ownership styles

  • Mini Shridhar
  • Bram Adams
  • Foutse Khomh

Patterns of folder use and project popularity: a case study of github repositories

  • Jiaxin Zhu
  • Minghui Zhou
  • Audris Mockus

A replication case study to measure the architectural quality of a commercial system

  • Derek Reimanis
  • Clemente Izurieta
  • Rachael Luhr
  • Lu Xiao
  • Yuanfang Cai
  • Gabe Rudy

SESSION: Social/human aspects

Motivated software engineers are engaged and focused, while satisfied ones are happy

  • César França
  • Helen Sharp
  • Fabio Q. B. da Silva

Impact of developer reputation on code review outcomes in OSS projects: an empirical investigation

  • Amiangshu Bosu
  • Jeffrey C. Carver

Software population pyramids: the current and the future of OSS development communities

  • Saya Onoue
  • Hideaki Hata
  • Kenichi Matsumoto

Estimation of student's programming expertise

  • Eduard Kuric
  • Mária Bieliková

SESSION: Patterns

How do code refactorings affect energy usage?

  • Cagri Sahin
  • Lori Pollock
  • James Clause

Impacts of design pattern decay on system quality

  • Melissa R. Dale
  • Clemente Izurieta

Evolution of design patterns: a replication study

  • Bruno Rossi
  • Barbara Russo

Design pattern decay: the case for class grime

  • Isaac Griffith
  • Clemente Izurieta

Mining energy traces to aid in software development: an empirical case study

  • Ashish Gupta
  • Thomas Zimmermann
  • Christian Bird
  • Nachiappan Nagappan
  • Thirumalesh Bhat
  • Syed Emran

SESSION: Measurement

Measuring shared understanding in software project teams using pathfinder networks

  • Brandt Braunschweig
  • Carolyn Seaman

ISBSG variables most frequently used for software effort estimation: a mapping review

  • Fernando González-Ladrón-de-Guevara
  • Marta Fernández-Diego

Simple empirical software effort estimation model

  • Wilson Rosa
  • Ray Madachy
  • Barry Boehm
  • Brad Clark

An approach for effort estimation in incremental software development using cosmic function points

  • Freddy Paz
  • Claudia Zapata
  • José Antonio Pow-Sang

SESSION: Empirical methods

Evaluating strategies for study selection in systematic literature studies

  • Nauman Bin Ali
  • Kai Petersen

Writing for synthesis of evidence in empirical software engineering

  • Claes Wohlin

Using qualitative metasummary to synthesize empirical findings in literature reviews

  • Danilo Monteiro Ribeiro
  • Marcos Cardoso
  • Fabio Q. B. da Silva
  • César França

Towards a framework to support large scale sampling in software engineering surveys

  • Rafael Maiani de Mello
  • Pedro Correa da Silva
  • Per Runeson
  • Guilherme Horta Travassos

Towards a semantic knowledge base on threats to validity and control actions in controlled experiments

  • Stefan Biffl
  • Marcos Kalinowski
  • Fajar Ekaputra
  • Amadeu Anderlin Neto
  • Tayana Conte
  • Dietmar Winkler

Support mechanisms to conduct empirical studies in software engineering

  • Alex Borges
  • Waldemar Ferreira
  • Emanoel Barreiros
  • Adauto Almeida
  • Liliane Fonseca
  • Eudis Teixeira
  • Diogo Silva
  • Aline Alencar
  • Sergio Soares

SESSION: SE in practice

Tracing back the history of commits in low-tech reviewing environments: a case study of the Linux kernel

  • Yujuan Jiang
  • Bram Adams
  • Foutse Khomh
  • Daniel M. German

Bridging the gap: SE technology transfer into practice: study design and preliminary results

  • Philipp Diebold
  • Antonio Vetrò

The use of systematic reviews in evidence based software engineering: a systematic mapping study

  • Ronnie E. S. Santos
  • Cleyton V. C. de Magalhães
  • Fabio Q. B. da Silva

What we have learned about the value of software assurance

  • Dan Port
  • Tung Bui
  • Joel Wilf
  • Yuki Kobayashi
  • Yuko Miyamoto

SESSION: Distributed development

The role of mentoring and project characteristics for onboarding in open source software projects

  • Fabian Fagerholm
  • Alejandro S. Guinea
  • Jürgen Münch
  • Jay Borenstein

An empirical simulation-based study of real-time speech translation for multilingual global project teams

  • Fabio Calefato
  • Filippo Lanubile
  • Rafael Prikladnicki
  • João Henrique S. Pinto

Process mining can be applied to software too!

  • Vladimir A. Rubin
  • Alexey A. Mitsyuk
  • Irina A. Lomazova
  • Wil M. P. van der Aalst

Where do we stand in requirements engineering improvement today?: first results from a mapping study

  • Daniel Méndez Fernández
  • Saahil Ognawala
  • Stefan Wagner
  • Maya Daneva

SESSION: Releases

Forking and coordination in multi-platform development: a case study

  • Anh Nguyen Duc
  • Audris Mockus
  • Randy Hackbarth
  • John Palframan

Monitoring bottlenecks in achieving release readiness: a retrospective case study across ten OSS projects

  • S. M. Didar Al Alam
  • S. M. Shahnewaz
  • Dietmar Pfahl
  • Guenther Ruhe

Factors impacting rapid releases: an industrial case study

  • Noureddine Kerzazi
  • Foutse Khomh

Industrial evaluation of the impact of quality-driven release planning

  • Michael Felderer
  • Armin Beer
  • Jason Ho
  • Guenther Ruhe

POSTER SESSION: Posters

Empirical analysis of comments and fault-proneness in methods: can comments point to faulty methods?

  • Hirohisa Aman
  • Takashi Sasaki
  • Sousuke Amasaki
  • Minoru Kawahara

Studying abbreviated vs. full-word identifier names when dealing with faults: an external replication

  • Porfirio Tramontana
  • Michele Risi
  • Giuseppe Scanniello

Classification of project team patterns for benchmarking

  • Yasutaka Shirai
  • William Nichols

Function point structure and applicability validation using the ISBSG dataset: a replicated study

  • Christian Quesada-López
  • Marcelo Jenkins

Enriching source code by empirical metadata

  • Karol Rástočný
  • Mária Bieliková

Tracking line changes in source code repositories

  • Francesca Arcelli Fontana
  • Marco Zanoni

Cooperation between information system development and operations: a literature review

  • Floris Erich
  • Chintan Amrit
  • Maya Daneva

VCS-analyzer for software evolution empirical analysis

  • Francesca Arcelli
  • Matteo Rolla
  • Marco Zanoni

Reviewing technical approaches for sharing and preservation of experimental data

  • Efraín R. Fonseca C.
  • Oscar Dieste
  • Natalia Juristo
  • Estefanía Serral
  • Stefan Biffl

Process simulation for software engineering education

  • Shu Jiang
  • He Zhang
  • Chao Gao

Continue reading