We were delighted to have the paper "A Methodology for Collecting Valid Software Engineering Data", by Victor Basili and David Weiss (1984) considered one of the most influential papers of IEEE Transaction of Software Engineering's first decade. The paper discusses data or information on software quality and what were the most effective software development techniques. It was published in November, 1984. It was written at a time when software development was just becoming widespread practice, but it was not common to use data or information on software quality in order to learn what were the most effective software development techniques under different conditions. To try to alleviate this problem, we suggested that when people (or organizations) developed software, they should try to measure the effectiveness of their development techniques. In particular, since software is typically long-living, change data should be collected so that methods and processes could be managed.
The pervasive role played by software in virtually all industries has fostered ever-increasing development of applied research in software engineering. In this chapter, we contribute our experience in using the V-Model as a framework for teaching how to conduct applied research in empirical software engineering. The foundational idea of using the V-Model is presented, and guidance for using it to frame the research is provided. Furthermore, we show how the framework has been instantiated throughout nearly two decades of PhD theses done at the University of Kaiserslautern (RPTU Kaiserslautern) in partnership with Fraunhofer IESE, including the most frequent usage patterns, how the different empirical methods fit into the framework, and the lessons we have learned from this experience.
Industry 4.0 has come to the attention of companies as it enables to highly networked smart factories and leveraging of complex manufacturing processes. How to achieve trustworthy interoperability among several heterogeneous entities and also among companies is still a challenge; however, hence, there is a strong focus on research, standardization initiatives, and adaptation of solutions from other areas. Yet, companies interested in Industry 4.0 do not have any guidance on what solutions or concerns should be considered to architect Industry 4.0 systems that assure trustworthy interoperability. This article contributes a set of essential requirements for assuring a trustworthy interoperability in Industry 4.0. We first identified the main challenges regarding interoperability in real-case Industry 4.0 projects. Then, we designed a set of architecture drivers combining such challenges with quality aspects extracted a systematic literature review. We refined these drivers based on a rigorous survey with experts from Industry 4.0. As a result, we found seven architecture drivers: Authentication to the system, data access control, data privacy to protect sensitive information, traceability and auditability of data, availability of physical devices, availability of data, and compatibility of data and services. We recommend adopting all these drivers jointly to assure trustworthy interoperability, which is such an important factor for Industry 4.0.
Laboratory experiments have been proven as an essential means for determining the effects of software engineering technologies. We propose the use of process simulation for adding a virtual capability to a software engineering laboratory in order to create a new and advanced type of experimental laboratory. One major motivation for such an advanced software engineering laboratory is cost reduction by simulating human behavior and the environment of the local process to be examined. The article describes the benefits of such an advanced laboratory and discusses possible combinations of empirical studies and process simulation. Additionally, an ongoing project for implementing a platform for such a laboratory is introduced and open questions for future research are sketched.
Software-intensive systems-of-systems (SoS) refer to an arrangement of managerially and operationally independent systems (i.e., constituent systems), which work collaboratively toward the achievement of global missions. Because some SoS are being developed for critical domains, such as healthcare and transportation, there is an increasing need to attain higher quality levels, which often justifies the additional costs that can be incurred by adopting formal and semi-formal approaches (i.e., languages and techniques) for modeling requirements. Various approaches have been employed, but a detailed landscape is still missing, and it is not well known whether these approaches are appropriate for addressing the inherent characteristics of SoS. The main contribution of this paper is to present this landscape by reporting on the state of the art in SoS requirements modeling. This landscape was built by means of a systematic mapping and shows formal and semi-formal approaches grouped from model-based to property-oriented ones. Most of them have been tested in safety-critical domains, where formal approaches such as finite-state machines are aimed at critical system parts, whereas semi-formal approaches (e.g., unified modeling language and i*) address non-critical parts. Although formal and semi-formal modeling is an essential activity, the quality of SoS requirements does not rely solely on the formalism that is used, but also on the availability of supporting tools/mechanisms that enable, for instance, requirements verification along the SoS life cycle.
Building meaningful interoperation with external software units requires performing the conceptual interoperability analysis that starts with identifying the conceptual interoperability constraints of each software unit, then it compares the systems' constraints to detect their conceptual mismatch. We call the conceptual interoperability constraints (the COINs) that can be of different types including structure, dynamic, and quality. Missing such constraints may lead to unexpected mismatches, expensive resolution, and running-late projects. However, it is a challenging task for software architects and analysts to manually analyze the unstructured text in API documents to identify the COINs. Not only it is a tedious and time-consuming task, but also it needs knowledge about the constraint types. In this article, we present and evaluate our idea of utilizing machine learning techniques in automating the COIN identification, which is the first step of conceptual interoperability analysis, from human text in API documents. Our empirical research started with a multiple-case study to build the ground truth dataset, on which we contributed our machine learning COIN-Classification Model. We show the model's robustness through experiments using different machine learning text-classification algorithms. The experiments' results revealed that our model can achieve up to 87% accuracy in automatically identifying the COINs in text. Thus, we implemented a tool that embeds our model to demonstrate its practical value in industrial context. Then, we evaluated the practitioners' acceptance for the tool and found that they significantly agreed on its usefulness and ease of use.
Testing of Advanced Driving Assistance Systems (ADAS) with higher level of autonomy is becoming increasingly complex. A variety of situations needs to be tested to ensure a sufficient test coverage. In normal driving condition, this requires enormous amounts of driven kilometers. Our presented approach extracts scenario information from observed simulations and identifies test-cases.
Autonomous vehicles pose new challenges to their testing, which is required for safety certification. While Autonomous vehicles will use training sets as specification for machine learning algorithms, traditional validation depends on the system's requirements and design. The presented approach uses training sets which are observations of traffic situations as system specification. It aims at deriving test-cases which incorporate the continuous behavior of other traffic participants. Hence, relevant scenarios are mined by analyzing and categorizing behaviors. By using abstract descriptions of the behaviors we discuss how test-cases can be compared to each other, so that similar test-cases are avoided in the test-suite. We demonstrate our approach using a combination of an overtake assistant and an adaptive cruise control.
Software interoperability property plays a vital role in enabling interoperation in todayfis system-of-systems, cyber-physical systems, ecosystems, etc. Despite the critical role of interoperability analysis in enabling a successful and meaningful software interoperation, it is still facing challenges that impede performing it effectively and efficiently. We performed an online survey of software engineers with software integration experiences to identify the main difficulties of performing interoperability analysis. The results confirm that the state of available practical support and current input artifacts used during the analysis are significantly perceived as important difficulties. Respondents claim a lack of guidelines and best practices for applying interoperability analysis and claim insufficiency of shared information about interoperable software units. This indicates the need for providing directive and rigorous guidelines for practitioners to follow and to enrich the content of shared documents about interoperable software units.
Building successful and meaningful interoperation with external software APIs requires satisfying their conceptual interoperability constraints. These constraints, which we call the COINs, include structure, dynamic, and quality specifications that if missed they lead to costly implications of unexpected mismatches and running-late projects. However, for software architects and analysts, manual analysis of unstructured text in API documents to identify conceptual interoperability constraints is a tedious and time-consuming task that requires knowledge about constraint types. In this paper, we present our empirically-based research in addressing the aforementioned issues by utilizing machine learning techniques. We started with a multiple-case study through which we contributed a ground truth dataset. Then, we built a model for this dataset and tested its robustness through experiments using different machine learning text-classification algorithms. The results show that our model enables achieving \(70.4\,\%\) precision and \(70.2\,\%\) recall in identifying seven classes of constraints (i.e., Syntax, Semantic, Structure, Dynamic, Context, Quality, and Not-COIN). This achievement increases to \(81.9\,\%\) precision and \(82.0\,\%\) recall when identifying two classes (i.e., COIN, Not-COIN). Finally, we implemented a tool prototype to demonstrate the value of our findings for architects in a practical context.
Successfully using a software web-service/platform API requires satisfying its conceptual interoperability constraints that are stated within its shared documentation. However, manual and unguided analysis of text in API documents is a tedious and time consuming task. In this work, we present our empirical-based methodology of using machine learning techniques for automatically identifying conceptual interoperability constraints from natural language text. We also show some initial promising results of our research.
Identifying and resolving conceptual mismatches between two software systems are crucial for their successful interoperation. However, it is a tedious and time-consuming task for software architects to manually provide interoperability-relevant information about their software systems, especially in the case of large software systems. This paper demonstrates CoinsExtractor, a novel tool that aids architects in accomplishing this task effectively and efficiently. CoinsExtractor enables architects to determine the interoperable parts of their software system, to automatically extract the interoperability-relevant information about these parts from the existing UML documents of the system, and finally to document the extracted information in a standard way to be shared with third-party clients. To better support the conceptual analysis, CoinsExtractor categorizes the extracted information based on the concepts it presents.
Conducting empirical studies and transferring their results into industry in a design discipline such as software engineering is ambitious. This is due to contextual restrictions, representativeness as well as problems in aggregating results from individual studies towards guidelines for practitioners. Nevertheless, they are necessary, as scientific contributions need to be challengeable. Significant progress in areas such as measurement, controlled experiments, industrial case studies, empirical based modeling, and packaging knowledge have been made over the past 30 to 40 years. External visibility has been increased significantly by means of books, conferences & journals! Future challenges include attracting more industrial contributions to the existing body of knowledge, using quantitative & qualitative studies to create more trustful evidences, and aggregation of empirical results. These challenges require community efforts.
第1部 GQM+Strategiesアプローチ(GQM+Strategiesのポイント;フェーズ0:初期化;フェーズ1:環境の特性化;フェーズ2:目標と戦略の設定;フェーズ3:実行計画の策定;フェーズ4:計画の実行;フェーズ5:成果の分析;フェーズ6:結果のまとめ) 第2部 業界への適用と他の手法との関係(各社の適用例;他のアプローチとの関係;まとめと今後に向けた見解) 付録(GQM+Strategiesプロセスチェックリスト;GQM+Strategies評価アンケート)
Egon Börger合作论文数Dipartimento di Informatica, Universita di Pisa3