Skip to main content
Top

2019 | Book

Software Quality: The Complexity and Challenges of Software Engineering and Software Quality in the Cloud

11th International Conference, SWQD 2019, Vienna, Austria, January 15–18, 2019, Proceedings

insite
SEARCH

About this book

This book constitutes the refereed proceedings of the 11th Software Quality Days Conference, SWQD 2019, held in Vienna, Austria, in January 2019.

The Software Quality Days (SWQD) conference started in 2009 and has grown to the biggest conferences on software quality in Europe with a strong community. The program of the SWQD conference is designed to encompass a stimulating mixture of practical presentations and new research topics in scientific presentations. The guiding conference topic of the SWQD 2019 is “The Complexity and Challenges of Software Engineering and Software Quality in the Cloud”.

The 5 full papers and 3 short papers presented in this volume were carefully reviewed and selected from 17 submissions. The volume also contains 2 invited talks. The contributions were organized in topical sections named: multi-disciplinary systems and software engineering; software quality and process improvement; software testing; knowledge engineering and machine learning; source code analysis; and software maintenance.

Table of Contents

Frontmatter

Multi-Disciplinary Systems and Software Engineering

Frontmatter
Multi-disciplinary Engineering of Production Systems – Challenges for Quality of Control Software
Abstract
Production systems and their inherent control systems are developed within an increasingly multi-disciplinary and increasingly complex engineering process which is, in addition, increasingly interlinked with the other life cycle phases of the production system. Surely this will have consequences for efficiency and correctness of the control system engineering.
Within this paper bordering conditions and challenges of this multi-disciplinary engineering process will be discussed and a centralized data logistics will be presented as one possible mean for handling the identified challenges. Thereby, requirements to the further development in the field of standardized data exchange are discussed possibly supported by software industry.
Arndt Lüder, Johanna-Lisa Pauly, Konstantin Kirchheim
Towards a Flexible and Secure Round-Trip-Engineering Process for Production Systems Engineering with Agile Practices
Abstract
In Production Systems Engineering (PSE), many projects conceptually follow the plan of traditional waterfall processes with sequential process steps and limited security activities, while engineers actually work in parallel and distributed groups following a Round-Trip-Engineering (RTE) process. Unfortunately, the applied RTE process in PSE is coarse-grained, i.e., often data are exchanged via E-Mail and integrated seldom and inefficiently as the RTE process is not well supported by methods and tools that facilitate efficient and secure data exchange. Thus, there is a need for frequent synchronization in a secure way to enable engineers building on a stable and baseline of engineering data. We build on Scrum, as an established agile engineering process, and security best practices to support flexible and secure RTE processes. In this paper, we introduce and initially evaluate an efficient and secure RTE process for PSE, augmented with agile practices, and discuss the identification and mitigation of security concerns and risks. First results show that the augmented RTE process can provide strong benefits from agile practices for the collaboration of engineers in PSE environments. Security practices can be added but need to be balanced well regarding sufficient mitigation of security risks and extra effort for engineers to ensure an overall benefit to both engineers and the management.
Dietmar Winkler, Felix Rinker, Peter Kieseberg

Software Quality and Process Improvement

Frontmatter
Relating Verification and Validation Methods to Software Product Quality Characteristics: Results of an Expert Survey
Abstract
[Context] Employing appropriate verification and validation (V&V) methods is essential to improve software product quality. However, while several V&V methods have been documented, little is known about how these methods relate to specific product quality characteristics. [Goal] The goal of this paper is to provide an initial configuration on the suitability of selected V&V methods to address ISO 25010 software product quality characteristics. [Method] Therefore, we compiled a list of V&V methods and conducted a survey with V&V experts, asking them to evaluate how well each V&V method allows for addressing the ISO 25010 characteristics. [Results] We received 19 answers from experts of 7 different countries. Our results express the aggregated expert opinion. It is noteworthy that the experts mostly agreed in their opinions, indicating consistency in the results. [Conclusions] This work provides the first result on the relationship between V&V methods and quality characteristics. We believe that the aggregated opinion of 19 experts can serve as a starting point for further investigations by other researchers and to provide an additional understanding to practitioners.
Isela Mendoza, Marcos Kalinowski, Uéverton Souza, Michael Felderer
Listen to Your Users – Quality Improvement of Mobile Apps Through Lightweight Feedback Analyses
Abstract
Companies developing mobile apps face increasing requirements such as short time to market or high quality. Furthermore, users have more influence on apps, as they can easily provide feedback on the product. Consequently, feedback is a valuable source for product improvement. Ideally, this would be done in an automated way. However, because of the limitations of understanding of natural language by machines, this is not possible in a satisfactory way. We have created a quality assurance process that makes use of feedback by applying lightweight analyses in order to enable product managers to take decisions. Some aspects of our process are the inclusion of emojis to reveal emotions, the detection of trends, as well as the derivation of improvement suggestions. With examples from popular apps, we show the practical application of our process.
Simon André Scherr, Frank Elberzhager, Selina Meyer
Agile Software Process Improvement by Learning from Financial and Fintech Companies: LHV Bank Case Study
Abstract
A large shift towards the use of agile software development in different industrial sectors is evident nowadays. Financial institutions are not unfamiliar with this tendency since they have the need to respond faster to the changes in their business environments. This is partly due to the new generation of financial technology (fintech) companies that have shown a significant difference in time to market and in speeding up software development. To compete with fintech companies, financial institutions are looking for improving their software development processes focusing on applying agile practices in a better way. This article presents a set of proposals to improve software development in the LHV Bank. The set of proposals has been determined through a literature review and interviews conducted in two leading financial institutions and two fintech companies. The analysis done allowed us to understand the best practices that are currently being applied, how they are implemented, and which ones are suitable for application in LHV Bank.
Erki Kilu, Fredrik Milani, Ezequiel Scott, Dietmar Pfahl

Software Testing

Frontmatter
Why Software Testing Fails: Common Pitfalls Observed in a Critical Smart Metering Project
Abstract
Over the last decades a considerable share of software engineering research has been dedicated to the area of software testing. Still, however, testing often fails or causes major problems in practice. In this paper we present insights and experiences from a large project in the energy sector. The obligatory switch from analog energy meters to smart metering technology poses a big challenge for many energy providers. Apart from technical issues concerning meters and transmission technology, the adaption of the internal business processes together with the development of backend software can turn out to be more difficult than expected. The criticality, size and complexity of the analyzed project are reflected in software and system testing, where the underestimated effort, mistakes, and wrong decisions caused serious difficulties. In our work we describe the observed testing problems and the underlying causes. Subsequently, we compare the identified problems with a catalogue of commonly known testing pitfalls and anti-patterns. The results show that the majority of the observed problems are not new or specific to the studied project. Furthermore, additional candidates for extending the list of common pitfalls are identified. Besides recommendations on how to mitigate the problems in the studied project, we conclude with the general insight that there is a great potential to improve software testing practice by developing measures for early recognition, communication, and avoiding of common mistakes.
Stefan Mohacsi, Rudolf Ramler

Knowledge Engineering and Machine Learning

Frontmatter
Mixed Reality Applications in Industry: Challenges and Research Areas
Abstract
Mixed reality (both virtual reality and augmented reality) technologies and applications have become increasingly important in recent years. However, from a technical, organizational and psychological point of view, there are still some challenges for industrial use in real operation - this is also proven by the well-known hype cycle of Gartner, who currently sees the technology in the ‘valley of disappointment’. The currently available products in the field of mixed reality are to be considered as individual solutions throughout and also suitable for a wide application under industrial conditions only conditionally. In addition, pre-projects with production companies and plant manufacturers show that the technologies and the associated operational opportunities are still largely unexploited for SMEs. This paper summarizes the challenges and potential research fields in the areas of interaction and usability, immersion and storytelling, and international business processes and stakeholder acceptance.
Thomas Moser, Markus Hohlagschwandtner, Gerhard Kormann-Hainzl, Sabine Pölzlbauer, Josef Wolfartsberger
Improving Defect Localization by Classifying the Affected Asset Using Machine Learning
Abstract
A vital part of a defect’s resolution is the task of defect localization. Defect localization is the task of finding the exact location of the defect in the system. The defect report, in particular, the asset attribute, helps the person assigned to handle the problem to limit the search space when investigating the exact location of the defect. However, research has shown that oftentimes reporters initially assign values to these attributes that provide incorrect information. In this paper, we propose and evaluate the way of automatically identifying the location of a defect using machine learning to classify the source asset. By training an Support-Vector-Machine (SVM) classifier with features constructed from both categorical and textual attributes of the defect reports we achieved an accuracy of 58.52% predicting the source asset. However, when we trained an SVM to provide a list of recommendations rather than a single prediction, the recall increased to up to 92.34%. Given these results, we conclude that software development teams can use these algorithms to predict up to ten potential locations, but already with three predicted locations, the teams can get useful results with the accuracy of over 70%.
Sam Halali, Miroslaw Staron, Miroslaw Ochodek, Wilhelm Meding

Source Code Analysis

Frontmatter
Benefits and Drawbacks of Representing and Analyzing Source Code and Software Engineering Artifacts with Graph Databases
Abstract
Source code and related artifacts of software systems encode valuable expert knowledge accumulated over many person-years of development. Analyzing software systems and extracting this knowledge requires processing the source code and reconstructing structure and dependency information. In analysis projects over the last years, we have created tools and services using graph databases for representing and analyzing source code and other software engineering artifacts as well as their dependencies. Graph databases such as Neo4j are optimized for storing, traversing, and manipulating data in the form of nodes and relationships. They are scalable, extendable, and can quickly be adapted for different application scenarios. In this paper, we share our insights and experience from five different cases where graph databases have been used as a common solution concept for analyzing source code and related artifacts. They cover a broad spectrum of use cases from industry and research, ranging from lightweight dependency analysis to analyzing the architecture of a large-scale software system with 44 million lines of code. We discuss the benefits and drawbacks of using graph databases in the reported cases. The benefits are related to representing dependencies between source code elements and other artifacts, the support for rapid prototyping of analysis solutions, and the power and flexibility of the graph query language. The drawbacks concern the generic frontends of graph databases and the lack of support for time series data. A summary of application scenarios for using graph databases concludes the paper.
Rudolf Ramler, Georg Buchgeher, Claus Klammer, Michael Pfeiffer, Christian Salomon, Hannes Thaller, Lukas Linsbauer

Software Maintenance

Frontmatter
Evaluating Maintainability Prejudices with a Large-Scale Study of Open-Source Projects
Abstract
In software engineering, relying on experience can render maintainability expertise into prejudice over time. For example, based on their own experience, some consider JavaScript as inelegant language and hence of lowest maintainability. Such prejudice should not guide decisions without prior empirical validation.
Hence, we formulated 10 hypotheses about maintainability based on prejudices and test them in a large set of open-source projects (6,897 GitHub repositories, 402 million lines, 5 programming languages). We operationalize maintainability with five static analysis metrics.
We found that JavaScript code is not worse than other code, Java code shows higher maintainability than C# code and C code has longer methods than other code. The quality of interface documentation is better in Java code than in other code. Code developed by teams is not of higher and large code bases not of lower maintainability. Projects with high maintainability are not more popular or more often forked. Overall, most hypotheses are not supported by open-source data.
Tobias Roehm, Daniel Veihelmann, Stefan Wagner, Elmar Juergens
Backmatter
Metadata
Title
Software Quality: The Complexity and Challenges of Software Engineering and Software Quality in the Cloud
Editors
Dietmar Winkler
Stefan Biffl
Johannes Bergsmann
Copyright Year
2019
Electronic ISBN
978-3-030-05767-1
Print ISBN
978-3-030-05766-4
DOI
https://doi.org/10.1007/978-3-030-05767-1

Premium Partner