Powered by
2015 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2015),
August 30 – September 4, 2015,
Bergamo, Italy
Doctoral Symposium
Tue, Sep 1, 09:00 - 10:30, Stucchi
Decentralized Self-Adaptation in Large-Scale Distributed Systems
Luca Florio
(Politecnico di Milano, Italy)
The evolution of technology is leading to a world where computational systems are made of a huge number of components spread over a logical network: these components operate in a highly dynamic and unpredictable environment, joining or leaving the system and creating connections between them at runtime. This scenario poses new challenges to software engineers that have to design and implement such complex systems. We want to address this problem, designing and developing an infrastructure, GRU, that uses self-adaptive decentralized techniques to manage large-scale distributed systems. GRU will help developers to focus on the functional part of their application instead of the needed self-adaptive infrastructure. We aim to evaluate our project with concrete case studies, providing evidence on the validity of our approach, and with the feedback provided by developers that will test our system. We believe this approach can contribute to fill the gap between the theoretical study of self-adaptive systems and their application in a production context.
@InProceedings{ESEC/FSE15p1022,
author = {Luca Florio},
title = {Decentralized Self-Adaptation in Large-Scale Distributed Systems},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {1022--1025},
doi = {},
year = {2015},
}
Vehicle Level Continuous Integration in the Automotive Industry
Sebastian Vöst
(University of Stuttgart, Germany)
Embedded systems are omnipresent in the modern world. This naturally includes the automobile industry, where electronic functions are becoming prevalent. In the automotive domain, embedded systems today are highly distributed systems and manufactured in great numbers and variance. To ensure correct functionality, systematic integration and testing on the system level is key. In software engineering, continuous integration has been used with great success. In the automotive industry though, system tests are still performed in a big-bang integration style, which makes tracing and fixing errors very expensive and time-consuming. Thus, I want to investigate whether and how continuous integration can be applied to the automotive industry on the system level. Doing so, I present an adapted process of Continuous Integration including methods for test case specification and selection. I will apply this process as a pilot project in a production environment at BMW and evaluate the effectiveness by gathering both qualitative and quantitative data. From the gained experience, I will derive possible improvements to the process for future implementations and requirements on test hardware used for Continuous Integration.
@InProceedings{ESEC/FSE15p1026,
author = {Sebastian Vöst},
title = {Vehicle Level Continuous Integration in the Automotive Industry},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {1026--1029},
doi = {},
year = {2015},
}
Quantifying Architectural Debts
Lu Xiao
(Drexel University, USA)
In our prior research, we found that problematic architectural connections can propagate errors. We also found that among multiple files, the architectural connections that violate common design principles strongly correlate with the error-proneness of files. The flawed architectural connections, if not fixed properly and timely, can become debts that accumulate high interest in terms of maintenance costs over time. In this paper, we define architectural debts as clusters of files with problematic architectural connections among them, and their connections incur high maintenance costs over time. Our goal is to 1) precisely identify which and how many files are involved in architectural debts; 2) quantify the penalties of architectural debts in terms of maintenance costs; and 3) model the growth trend of penalties---maintenance costs---that accumulate due to architectural debts. We plan to provide a quantitative model for project managers and stakeholders as a reference in making decisions of whether, when and where to invest in refactoring.
@InProceedings{ESEC/FSE15p1030,
author = {Lu Xiao},
title = {Quantifying Architectural Debts},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {1030--1033},
doi = {},
year = {2015},
}
User-Centric Security: Optimization of the Security-Usability Trade-Off
Denis Feth
(Fraunhofer IESE, Germany)
Security and usability are highly important and interdependent quality attributes of modern IT systems. However, it is often hard to fully meet both in practice. Security measures are complex by nature and often complicate work flows. Vice versa, insecure systems are typically not usable in practice. To tackle this, we aim at finding the best balance between usability and security in software engineering and administration. Our methodology is based on active involvement of large user groups and analyzes user feedback in order to optimize security mechanisms with respect to their user experience, with a focus on security awareness. It is applied during requirements elicitation and prototyping, and to dynamically adapt unsuited security policies at runtime.
@InProceedings{ESEC/FSE15p1034,
author = {Denis Feth},
title = {User-Centric Security: Optimization of the Security-Usability Trade-Off},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {1034--1037},
doi = {},
year = {2015},
}
Automated Unit Test Generation for Evolving Software
Sina Shamshiri
(University of Sheffield, UK)
As developers make changes to software programs, they want to ensure that the originally intended functionality of the software has not been affected. As a result, developers write tests and execute them after making changes. However, high quality tests are needed that can reveal unintended bugs, and not all developers have access to such tests. Moreover, since tests are written without the knowledge of future changes, sometimes new tests are needed to exercise such changes. While this problem has been well studied in the literature, the current approaches for automatically generating such tests either only attempt to reach the change and do not aim to propagate the infected state to the output, or may suffer from scalability issues, especially when a large sequence of calls is required for propagation. We propose a search-based approach that aims to automatically generate tests which can reveal functionality changes, given two versions of a program (e.g., pre-change and post-change). Developers can then use these tests to identify unintended functionality changes (i.e., bugs). Initial evaluation results show that our approach can be effective on detecting such changes, but there remain challenges in scaling up test generation and making the tests useful to developers, both of which we aim to overcome.
@InProceedings{ESEC/FSE15p1038,
author = {Sina Shamshiri},
title = {Automated Unit Test Generation for Evolving Software},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {1038--1041},
doi = {},
year = {2015},
}
proc time: 1.23