It is my great pleasure to welcome you to the 40th International Conference on Software Engineering in Gothenburg, Sweden. Science and research, as well as the openness to new ideas and new people, are an important part of the Scandinavian culture. Sweden hosts many high technology companies in which software plays an essential role. The Town of Gothenburg, with its two internationally renowned universities, variety of ICT and related companies, with many cultural attractions, and beautiful natural surroundings, welcomes you!
This year's ICSE is unique in at least two respects. ICSE 2018 celebrates its 40th anniversary. During its journey, ICSE has developed to the premier conference in Software Engineering, known for its quality, excellence, attractiveness, and inspirational atmosphere. We pay tribute to the 40th anniversary with a collection of memories of previous conferences printed in a booklet, and with a celebration session gathering all previous chairs to thank them for their devoted and highly successful work. The second unique event of this conference is the celebration of the 50 years of Software Engineering, that is considered to be born at the NATO Software Engineering Conference 1968, held in Garmisch, where the term Software Engineering was established. We honor this event with keynotes which have direct impact of the Software Engineering development and a panel with some of the participants of the 1968 conference.
ICSE 2018 is, however, not only about the past. It is much about the present and the future - and in particular, about the essence of Software Engineering - collaboration between industry and academia, practitioners and researchers. ICSE 2018 hosts a one-day Industry Forum event gathering researchers and practitioners and offering talks of prominent researchers and experts from leading software and software-intensive systems companies.
Proceeding Downloads
Generative secure design, defined
In software-intensive industries, companies face the constant challenge of not having enough security experts on staff in order to validate the design of the high-complexity projects they run. Many of these companies are now realizing that increasing ...
Towards secure dynamic product lines in the cloud
Cloud-based technologies play an increasing role in software engineering because of their scalability, availability, and cost efficiency. However, due to privacy issues, developers and organizations still hesitate to host applications that handle ...
Towards forensic-ready software systems
As software becomes more ubiquitous, and the risk of cyber-crimes increases, ensuring that software systems are forensic-ready (i.e., capable of supporting potential digital investigations) is critical. However, little or no attention has been given to ...
Measure confidence of assurance cases in safety-critical domains
Evaluation of assurance cases typically requires certifiers' domain knowledge and experience, and, as such, most software certification has been conducted manually. Given the advancement in uncertainty theories and software traceability, we envision ...
A critical review of: "a practical guide to select quality indicators for assessing pareto-based search algorithms in search-based software engineering": essay on quality indicator selection for SBSE
This paper presents a critical review of the work published at ICSE'2016 on a practical guide of quality indicator selection for assessing multiobjective solution sets in search-based software engineering (SBSE). This review has two goals. First, we aim ...
Enabling real-time feedback in software engineering
Modern software projects consist of more than just code: teams follow development processes, the code runs on servers or mobile phones and produces run time logs and users talk about the software in forums like StackOverflow and Twitter and rate it on ...
Combining spreadsheet smells for improved fault prediction
Spreadsheets are commonly used in organizations as a programming tool for business-related calculations and decision making. Since faults in spreadsheets can have severe business impacts, a number of approaches from general software engineering have ...
Images of code: lossy compression for native instructions
Developers can use lossy compression on images and many other artifacts to reduce size and improve network transfer times. Native program instructions, however, are typically not considered candidates for lossy compression since arbitrary losses in ...
Hierarchical learning of cross-language mappings through distributed vector representations for code
Translating a program written in one programming language to another can be useful for software development tasks that need functionality implementations in different languages. Although past studies have considered this problem, they may be either ...
Which library should I use?: a metric-based comparison of software libraries
Software libraries ease development tasks by allowing client developers to reuse code written by third parties. To perform a specific task, there is usually a large number of libraries that offer the desired functionality. Unfortunately, selecting the ...
Unicomp: a semantics-aware model compiler for optimised predictable software
In Model-Driven Engineering, executables are generated from domain-specific modelling languages (DSMLs) through two steps: generation of program code in a third-generation programming languages (3GLs, like C++ or Java) from a model, and compilation of ...
Self-adaptive static analysis
Static code analysis is a powerful approach to detect quality deficiencies such as performance bottlenecks, safety violations or security vulnerabilities already during a software system's implementation. Yet, as current software systems continue to ...
Mining container image repositories for software configuration and beyond
This paper introduces the idea of mining container image repositories for configuration and other deployment information of software systems. Unlike traditional software repositories (e.g., source code repositories and app stores), image repositories ...
Explainable software analytics
Software analytics has been the subject of considerable recent attention but is yet to receive significant industry traction. One of the key reasons is that software practitioners are reluctant to trust predictions produced by the analytics machinery ...
Generalizing specific-instance interpolation proofs with SyGuS
Proving correctness1 of programs is a challenging task, and consequently has been the focus of a lot of research. One way to break this problem down is to look at one execution path of the program, argue for its correctness, and see if the argument ...
Efficient parametric model checking using domain-specific modelling patterns
We propose a parametric model checking (PMC) method that enables the efficient analysis of quality-of-service (QoS) properties of component-based systems. Our method builds on recent advances in PMC techniques and tools, and can handle large models by ...
Deep learning UI design patterns of mobile apps
User interface (UI) is one of the most important components of a mobile app and strongly influences users' perception of the app. However, UI design tasks are typically manual and time-consuming. This paper proposes a novel approach to (semi)-automate ...
Code review comments: language matters
Recent research provides evidence that effective communication in collaborative software development has significant impact on the software development lifecycle. Although related qualitative and quantitative studies point out textual characteristics of ...
Replication studies considered harmful
Context: There is growing interest in establishing software engineering as an evidence-based discipline. To that end, replication is often used to gain confidence in empirical findings, as opposed to reproduction where the goal is showing the ...
From craft to science: the road ahead for empirical software engineering research
Empirical software engineering (SE) research is often criticized for poorly designed and reported studies, a lack of replications to build up bodies of knowledge, and little practical relevance. In this paper, we discuss issues in empirical software ...
Towards saving money in using smart contracts
Being a new kind of software leveraging blockchain to execute real contracts, smart contracts are in great demand due to many advantages. Ethereum is the largest blockchain platform that supports smart contracts by running them in its virtual machine. ...
Understanding the impact of pair programming on the minds of developers
- Sara Busechian,
- Vladimir Ivanov,
- Alan Rogers,
- Ilyas Sirazitdinov,
- Giancarlo Succi,
- Alexander Tormasov,
- Jooyong Yi
Software is mostly, if not entirely, a knowledge artifact. Software best practices are often thought to work because they induce more productive behaviour in software developers. In this paper we deployed a new generation tool, portable multichannel EEG,...
Retrospective based on data-driven persona significance in B-to-B software development
- Yasuhiro Watanabe,
- Hironori Washizaki,
- Kiyoshi Honda,
- Yoshiaki Fukazawa,
- Masahiro Taga,
- Akira Matsuzaki,
- Takayoshi Suzuki
A Business-to-Business (B-to-B) software development company develops services to satisfy their customers' requirements. Developers should prioritize customer satisfaction because customers greatly influence on agile software development. However, it is ...
Dazed: measuring the cognitive load of solving technical interview problems at the whiteboard
Problem-solving on a whiteboard is a popular technical interview technique used in industry. However, several critics have raised concerns that whiteboard interviews can cause excessive stress and cognitive load on candidates, ultimately reinforcing ...
Deep customization of multi-tenant SaaS using intrusive microservices
Enterprise software needs to be customizable, and the customization needs from a customer are often beyond what the software vendor can predict in advance. In the on-premises era, customers do deep customizations beyond vendor's prediction by directly ...
Software ecosystem call graph for dependency management
A popular form of software reuse is the use of open source software libraries hosted on centralized code repositories, such as Maven or npm. Developers only need to declare dependencies to external libraries, and automated tools make them available to ...
An immersive future for software engineering: avenues and approaches
Software systems are increasingly becoming more intricate and complex, necessitating new ways to be able to comprehend and visualize them. At the same time, the nature of software engineering teams itself is changing with people playing more fluid roles ...
Dronology: an incubator for cyber-physical systems research
Research in the area of Cyber-Physical Systems (CPS) is hampered by the lack of available project environments in which to explore open challenges and to propose and rigorously evaluate solutions. In this "New Ideas and Emerging Results" paper we ...
Index Terms
- Proceedings of the 40th International Conference on Software Engineering: New Ideas and Emerging Results