Decision Support for the Software Product Line Domain Engineering Lifecycle
Total Page:16
File Type:pdf, Size:1020Kb
EB , 1{44 () ⃝c SemTech @ AU. Decision Support for the Software Product Line Domain Engineering Lifecycle EBRAHIM BAGHERI, FAEZEH ENSAN AND DRAGAN GASEVIC Abstract. Software product line engineering is a paradigm that advocates the reusability of soft- ware engineering assets and the rapid development of new applications for a target domain. These objectives are achieved by capturing the commonalities and variabilities between the applications of the target domain and through the development of comprehensive and variability-covering fea- ture models. The feature models developed within the software product line development process need to cover the relevant features and aspects of the target domain. In other words, the feature models should be elaborate representations of the feature space of that domain. Given that feature models, i.e., software product line feature models, are developed mostly by domain analysts by sifting through domain documentation, corporate records and transcribed interviews, the process is a cumbersome and error-prone one. In this paper, we propose a decision support platform that assists domain analysts throughout the domain engineering lifecycle by: 1) automatically performing natural language processing tasks over domain documents and identifying important information for the domain analysts such as the features and integrity constraints that exist in the domain documents; 2) providing a collaboration platform around the domain documents such that multiple domain analysts can collaborate with each other during the process using a Wiki; 3) formulating semantic links between domain terminology with external widely used ontologies such as WordNet in order to disambiguate the terms used in domain documents; and 4) developing traceability links between the unstructured information available in the domain documents and their formal counterparts within the formal feature model representations. Results obtained from our controlled experimentations show that the decision support platform is effective in increasing the performance of the domain analysts during the domain engineering lifecycle in terms of both the coverage and accuracy measures. Keywords: Software Product Lines, Feature Models, Domain Engineering, NLP Model Inference 1. Introduction Software product line engineering is a systematic software reusability approach that is based on the idea of explicitly capturing the commonalities and variabilities of the applications of a target domain within a unified domain representation [1]. Such an approach to domain modeling allows domain analysts to have a holistic view of the target domain and to be able to understand the similarities and differences that exist between the different applications of the same domain. One of the major advantages of product line engineering is that new products and applications can be rapidly developed by exploiting the available commonalities among them and other applications within the same family; hence, reducing time-to-market and development costs [2]. Many large industrial corporations have already successfully adopted the software product line engineering approach. For instance, Nokia was able to increase its production capacity for new cellular phone models from 5-10 to around 30 models per year by using product line engineering techniques [3, 4]. 2 BAGHERI, ENSAN AND GASEVIC The software product line engineering paradigm consists of two major develop- ment lifecycles, namely Domain Engineering and Application Engineering [5]. The development of a software product line often starts with the domain engineering phase, through which the target domain is carefully analyzed, understood, and for- mally documented. One of the main artifact developed as a result of the domain engineering phase is a formal representation of the various aspects and features of the applications of the target domain. In other words, the domain engineering phase will need to consider and capture the inherent variabilities and commonali- ties, which exist between the applications of a family of products that are available in the same target domain, within a unique formal representation. Such domain models can be viewed as the feature space of the target domain, i.e., the relevant features that can be later incorporated into domain-specific applications related to that domain should have presence in the model. The subsequent application engineering phase is undertaken with the explicit assumption that a domain model has been already developed within the domain engineering phase. The role of application engineering is to develop new domain- specific applications. For this reason, application engineers will constantly interact with end-users and stakeholders to identify their most desirable set of features to be incorporated into the final product. This set of desirable features are determined in light of the available features in the domain model. The feature space can be gradually restricted, using a process which is referred to as staged configuration [6], by selecting the necessary features and excluding the undesirable ones for the final product. The final artifact of the application engineering phase is a concrete representation of a domain-specific application built from the formal domain model. The process for developing new applications within the application engineering lifecycle shows that the completeness and suitability of the products of a software product line rely significantly on the quality and comprehensiveness of the domain models [7]. The formal domain models developed in the domain engineering life- cycle are in most cases produced from the labor-intensive process of engaging with domain experts, reading corporate documentations, conducting interviews and pro- cessing interview transcriptions. As the complexity and size of the domain grows, the number of documents that need to be processed and taken into account also radically increases. This demands more time dedication and perseverance from the domain analysts. Stenz and Ferson [8] have argued that epistemic uncertainty is an indispensable element of human judgments and that it increases as the cognitive and problem complexities grow. Therefore, as we have also observed in our controlled experi- ments, the growth of the problem domain, in terms of size and complexity, affects the quality of work and performance of the domain analysts [9]. This phenomenon has been shown to be independent of the available time at the disposal of the hu- man experts. In other words, the increase in the cognitive complexity of the task assigned to the human experts impacts their performance even if enough time is provided to them [10]. It is important that suitable support mechanisms are devel- oped that would assist the domain analysts in a way that their quality of work does not deteriorate with the increase in the complexity and size of the target domain. DECISION SUPPORT FOR THE SPL DOMAIN ENGINEERING LIFECYCLE 3 In order to achieve this goal, we have developed a decision support platform to help the analysts throughout the domain engineering lifecycle. The decision support platform is mainly an structured information extraction tool that identifies important pieces of information from domain documents and as such can also be considered as a targeted information extraction tool for domain engineering. The main reason we refer to it as decision support is that it highlights information from the text and provides additional external information such as visualization and ontological representation that helps the domain analysts to make a better decision. The objective of our work is not to take over the domain modeling process from the domain analysts, but rather to act as a support system that would allow the analysts to make more informed and justified modeling decisions. From our point of view, given size and cognitive complexities and also the involvement of multiple analysts in a domain engineering process, the main characteristics that we aimed to provide through the decision support platform are the following: • Diligence: As discussed above, the attentiveness and performance of human analysts decreases with the increase of the complexity and size of a problem. Our intention is to help the domain analysts maintain high quality standards in their work by reducing the mental burden that they have to carry during the modeling process; • Collaboration: Large domains often cross multiple disciplines and require dif- ferent domain experts to effectively communicate with each other during the domain modeling process. Previous research has shown that ad-hoc collab- oration strategies can lead to inconsistent models [11]; hence, our goal is to provide a platform that supports for easy and effective collaboration between the domain analysts; • Knowledge Transfer: Software product lines are often designed for the purpose of being used during long periods of time and for multiple generations of software applications; therefore, it is likely that the original domain analysts will no longer be available at a later stage of a project to explain and justify their modeling decisions. For this reason, the decision support platform needs to unambiguously capture the decisions of the domain modelers and efficiently document them for future reference; • Traceability: As a domain evolves, the documents that were used earlier during the domain modeling process may gradually become obsolete. It is important for the domain modelers to be able to trace back the elements of