•We defined more precisely the identification of the gaps.•We also defined more precisely the incentives for further research.•In Section 4.3 we made explicit connection to the Fig. 15 and identified ...gaps.•All pointed typos were fixed.
The idea of developing software components was envisioned more than forty years ago. In the past two decades, Component-Based Software Engineering (CBSE) has emerged as a distinguishable approach in software engineering, and it has attracted the attention of many researchers, which has led to many results being published in the research literature. There is a huge amount of knowledge encapsulated in conferences and journals targeting this area, but a systematic analysis of that knowledge is missing. For this reason, we aim to investigate the state-of-the-art of the CBSE area through a detailed literature review. To do this, 1231 studies dating from 1984 to 2012 were analyzed. Using the available evidence, this paper addresses five dimensions of CBSE: main objectives, research topics, application domains, research intensity and applied research methods. The main objectives found were to increase productivity, save costs and improve quality. The most addressed application domains are homogeneously divided between commercial-off-the-shelf (COTS), distributed and embedded systems. Intensity of research showed a considerable increase in the last fourteen years. In addition to the analysis, this paper also synthesizes the available evidence, identifies open issues and points out areas that call for further research.
In the last decade, a large number of different software component models have been developed, with different aims and using different principles and technologies. This has resulted in a number of ...models which have many similarities, but also principal differences, and in many cases unclear concepts. Component-based development has not succeeded in providing standard principles, as has, for example, object-oriented development. In order to increase the understanding of the concepts and to differentiate component models more easily, this paper identifies, discusses, and characterizes fundamental principles of component models and provides a Component Model Classification Framework based on these principles. Further, the paper classifies a large number of component models using this framework.
Message from the ICSE 2018 General Chair Crnkovic, Ivica
2018 ACM/IEEE International Workshop on Software Engineering for Science, SE4Science 2018, co-located with the 40th International Conference on Software Engineering, ICSE 2018, Gothenburg, Sweden,
2018
Conference Proceeding
ICSE 40th international conference on software engineering Crnkovic, Ivica
6th ACM/IEEE International Workshop on Conducting Empirical Studies in Industry, CESI 2018, held at the 40th International Conference on Software Engineering, ICSE 2018, Gothenburg, Sweden,
2018, Volume:
Part F137721
Conference Proceeding
Context: Application of component based software engineering methods to heterogeneous computing (HC) enables different software configurations to realize the same function with different ...non–functional properties (NFP). Finding the best software configuration with respect to multiple NFPs is a non–trivial task.
Objective: We propose a Software Component Allocation Framework (SCAF) with the goal to acquire a (sub–) optimal software configuration with respect to multiple NFPs, thus providing performance prediction of a software configuration in its early design phase. We focus on the software configuration optimization for the average energy consumption and average execution time.
Method: We validated SCAF through its instantiation on a real–world demonstrator and a simulation. Firstly, we verified the correctness of our model through comparing the performance prediction of six software configurations to the actual performance, obtained through extensive measurements with a confidence interval of 95%. Secondly, to demonstrate how SCAF scales up, we performed software configuration optimization on 55 generated use–cases (with solution spaces ranging from 1030 to 3070) and benchmark the results against best performing random configurations.
Results: The performance of a configuration as predicted by our framework matched the configuration implemented and measured on a real–world platform. Furthermore, by applying the genetic algorithm and simulated annealing to the weight function given in SCAF, we obtain sub–optimal software configurations differing in performance at most 7% and 13% from the optimal configuration (respectfully).
Conclusion: SCAF is capable of correctly describing a HC platform and reliably predict the performance of software configuration in the early design phase. Automated in the form of an Eclipse plugin, SCAF allows software architects to model architectural constraints and preferences, acting as a multi–criterion software architecture decision support system. In addition to said, we also point out several interesting research directions, to further investigate and improve our approach.
Background: Developing and maintaining large scale machine learning (ML) based software systems in an industrial setting is challenging. There are no well-established development guidelines, but the ...literature contains reports on how companies develop and maintain deployed ML-based software systems.
Objective: This study aims to survey the literature related to development and maintenance of large scale ML-based systems in industrial settings in order to provide a synthesis of the challenges that practitioners face. In addition, we identify solutions used to address some of these challenges.
Method: A systematic literature review was conducted and we identified 72 papers related to development and maintenance of large scale ML-based software systems in industrial settings. The selected articles were qualitatively analyzed by extracting challenges and solutions. The challenges and solutions were thematically synthesized into four quality attributes: adaptability, scalability, safety and privacy. The analysis was done in relation to ML workflow, i.e. data acquisition, training, evaluation, and deployment.
Results: We identified a total of 23 challenges and 8 solutions related to development and maintenance of large scale ML-based software systems in industrial settings including six different domains. Challenges were most often reported in relation to adaptability and scalability. Safety and privacy challenges had the least reported solutions.
Conclusion: The development and maintenance on large-scale ML-based systems in industrial settings introduce new challenges specific for ML, and for the known challenges characteristic for these types of systems, require new methods in overcoming the challenges. The identified challenges highlight important concerns in ML system development practice and the lack of solutions point to directions for future research.
•First study on the state of the art in safety for mobile robotic systems (MRSs).•A reusable classification framework for methods and techniques for MRSs.•Classification of 58 studies w.r.t. trends, ...characteristics, and industrial adoption.•Discussion of future research challenges and implications on safety for MRSs.
Robotic research is making huge progress. However, existing solutions are facing a number of challenges preventing them from being used in our everyday tasks: (i) robots operate in unknown environments, (ii) robots collaborate with each other and even with humans, and (iii) robots shall never injure people or create damages. Researchers are targeting those challenges from various perspectives, producing a fragmented research landscape.
We aim at providing a comprehensive and replicable picture of the state of the art from a software engineering perspective on existing solutions aiming at managing safety for mobile robotic systems. We apply the systematic mapping methodology on an initial set of 1274 potentially relevant research papers, we selected 58 primary studies and analyzed them according to a systematically-defined classification framework.
This work contributes with (i) a classification framework for methods or techniques for managing safety when dealing with the software of mobile robotic systems (MSRs), (ii) a map of current software methods or techniques for software safety for MRSs, (iii) an elaboration on emerging challenges and implications for future research, and (iv) a replication package for independent replication and verification of this study. Our results confirm that generally existing solutions are not yet ready to be used in everyday life. There is the need of turn-key solutions ready to deal with all the challenges mentioned above.
Component Models for Reasoning Seceleanu, Cristina; Crnkovic, Ivica
Computer (Long Beach, Calif.),
11/2013, Volume:
46, Issue:
11
Journal Article
Peer reviewed
The world of component-based systems is as appealing as it is challenging. Components, as first-class citizens of component-based systems, serve as the main units of encapsulated functionality and ...also units of composition, with the intention to improve development efficiency and software quality through reusability, extensibility and analyzability of software. These benefits are obtained especially when the components are understood by means of a formally well-defined component model, amenable to effective reasoning on functional and extra-functional properties at unit- as well as system-level. In this article we present the basic concepts of component-based design, emphasizing the characteristics of different types of component compositions, which dictate particular trade-offs between the degree of assurance and design flexibility. We show that rich and semantically well-defined component models with encapsulated reasoning information enable prediction of the system behavior and in general the system functional and non-functional properties. In this way, the development process is significantly simplified. We illustrate the concept by giving a short overview of the ProCom component model that is designed for enabling predictability in the embedded and real-time systems domain.