Assurance Case Development for Evolving Software Product Lines: A Formal Approach
In critical software engineering, structured assurance cases (ACs) are used to demonstrate how key system properties are supported by evidence (e.g., test results, proofs). Creating rigorous ACs is particularly challenging in the context of software product lines (SPLs), i.e, sets of software products with overlapping but distinct features and behaviours. Since SPLs can encompass very large numbers of products, developing a rigorous AC for each product individually is infeasible. Moreover, if the SPL evolves, e.g., by the modification or introduction of features, it can be infeasible to assess the impact of this change. Instead, the development and maintenance of ACs ought to be lifted such that a single AC can be developed for the entire SPL simultaneously, and be analyzed for regression in a variability-aware fashion. In this article, we describe a formal approach to lifted AC development and regression analysis. We formalize a language of variability-aware ACs for SPLs and study the lifting of template-based AC development. We also define a regression analysis to determine the effects of SPL evolutions on variability-aware ACs. We describe a model-based assurance management tool which implements these techniques, and illustrate our contributions by developing an AC for a product line of medical devices.
- Book Chapter
6
- 10.1007/978-3-030-58920-2_1
- Jan 1, 2020
The Structured Assurance Case Metamodel (SACM) is a standard specified by the Object Management Group (OMG) that defines a metamodel for representing structured assurance cases. It is developed to support standardisation and interoperability in assurance case development. SACM provides a richer set of features than existing assurance case frameworks. By providing a standardised metamodel for assurance cases, SACM also provides a foundation for model-based assurance case development. For example, model merging can be used to bind packages in complex assurance cases and model validation can be used to check well-formedness of assurance cases. The uptake in the use of SACM has however been slow. The lack of a visual notation for representing SACM arguments has been a major factor in this. As part of the updates for version 2.1 of the SACM standard, we developed a graphical notation that addresses this need. Additionally, there are very few publicly available examples of how SACM may be used in practice, with the SACM standard providing only very limited examples. Moreover, there exists little literature that discusses the potential benefits that using SACM can bring for assurance cases. This paper provides, for the first time, an explanation and worked examples of how to use the SACM notation. The paper also discusses the potential benefits of using SACM for assurance case development and review and the need for empirically evaluating these benefits.
- Conference Article
24
- 10.1109/ecbs.2008.14
- Mar 1, 2008
Software product family or line is a software engineering paradigm that systematizes reuse. In software product line engineering, two phases are distinguished: domain engineering which is in charge of developing a common infrastructure and assets and application engineering which makes use of those assets to generate the products. One of the key aspects of product lines is variability and its management. However, the main focus has been on functional variability and quality variability in software product lines has not received so much attention by researchers. In a product line different members of the line may require different levels of a quality requirement, for instance they could differ in terms of their availability, security, reliability, etc. Due to this variability, quality evaluation in software product lines is much more complicated that in single-systems. One alternative is to evaluate all the products of a line but it is very expensive and ways of reducing evaluation efforts are necessary. In this direction, the paper presents a method for facilitating cost-effective quality evaluation of a product line taking into consideration variability on quality attributes.
- Research Article
8
- 10.1145/2934240.2934248
- Jun 24, 2016
- ACM SIGSOFT Software Engineering Notes
Software product lines (SPL) have evolved from being a niche research topic to a well-established approach towards development of a family of software-intensive systems, promising better quality in shorter time and less cost. The hall of fame initiative of a 16 year running conference on SPL recognizes exemplary examples of successful application of SPL in practice. However, despite these advances, SPL are seen as quite effort intensive requiring huge initial investments and are not considered as mainstream software development. One of the primary reasons for this is the lack of standardized tools and methods to support development, maintenance and management of SPL. Specifically, every software product line is considered as a stand-alone project with custom tools and methods developed in most of the cases. This leads to a number of diversified, inconsistent and incompatible tools making it difficult to develop new tools or to choose from existing set of tools. It is here that the working group 4 (WG4) of the seventh subcommittee (SC7) titled "Software and Systems Engineering" of the Joint ISO/IEC Technical Committee (JTC1) of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) has proposed a set of interrelated standards in the area of software and systems product lines (SSPL). In this report, we briefly outline the stateof-the-art in software product line tools and motivate the need for standardized tools and methods. We then provide an overview of SSPL standards based on our experience in the last several years. We finally conclude by inviting the entire software engineering community and practitioners to get involved in the critical analysis and creation of SSPLstandards and propel their use in both academia and industry.
- Book Chapter
- 10.4018/978-1-87828-991-9.ch050
- Jan 1, 2009
Software product line (SPL) is a software engineering paradigm for software development. SPL is important in promoting software reuse, leading to higher productivity and quality. A software product within a product line often has specific functionalities that are not common to all other products within the product line. Those specific functionalities are termed “variant features” in a product line. SPL paradigm involves the modeling of variant features. However, little work in SPL investigates and addresses the modeling of variant features specific to UI. UML is the de facto modeling language for object-oriented software systems. It is known that UML needs better support in modeling UIs. Thus, much research developed UML extensions to improve UML support in modeling UIs. Yet little of this work is related to developing such extensions for modeling UIs for SPLs in which variant features specific to user interfaces (UI) modeling must be addressed. This research develops a UML extension, WUIML, to address these problems. WUIML defines elements for modeling variant features specific to UIs for Web-based SPLs. The model elements in WUIML extend from the metaclass and of the UML2.0 metamodel. WUIML integrates the modeling of variant features specific to UIs to UML. For example, in a Web-based patient registration SPL, member products targeting British users may use British date format in the user interface, while member products targeting United States users may use United States date format in the user interface. Thus, this is a variant feature for this product line. WUIML defines a model element, XOR, to represent such exclusive or conditions in a product line user interface model. WUIML would reduce SPL engineers’ efforts needed in UI development. To validate the WUIML research outcome, a case study was conducted. The results of this empirical study indicate that modeling UIs for Web-based SPLs using WUIML is more effective and efficient than using standard UML.
- Research Article
- 10.4018/jitwe.2006010101
- Jan 1, 2006
- International Journal of Information Technology and Web Engineering
Software product line (SPL) is a software engineering paradigm for software development. SPL is important in promoting software reuse, leading to higher productivity and quality. A software product within a product line often has specific functionalities that are not common to all other products within the product line. Those specific functionalities are termed “variant features” in a product line. SPL paradigm involves the modeling of variant features. However, little work in SPL investigates and addresses the modeling of variant features specific to UI. UML is the de facto modeling language for object-oriented software systems. It is known that UML needs better support in modeling UIs. Thus, much research developed UML extensions to improve UML support in modeling UIs. Yet little of this work is related to developing such extensions for modeling UIs for SPLs in which variant features specific to user interfaces (UI) modeling must be addressed. This research develops a UML extension, WUIML, to address these problems. WUIML defines elements for modeling variant features specific to UIs for Web-based SPLs. The model elements in WUIML extend from the metaclass and of the UML2.0 metamodel. WUIML integrates the modeling of variant features specific to UIs to UML. For example, in a Web-based patient registration SPL, member products targeting British users may use British date format in the user interface, while member products targeting United States users may use United States date format in the user interface. Thus, this is a variant feature for this product line. WUIML defines a model element, XOR, to represent such exclusive or conditions in a product line user interface model. WUIML would reduce SPL engineers’ efforts needed in UI development. To validate the WUIML research outcome, a case study was conducted. The results of this empirical study indicate that modeling UIs for Web-based SPLs using WUIML is more effective and efficient than using standard UML.
- Conference Article
13
- 10.1109/ice.2018.8436325
- Jun 1, 2018
A software product line is commonly used for the software development in large automotive organizations. A strategic reuse of software is needed to handle the increasing complexity of the development and to maintain the quality of numerous software variants. However, the development process needs to be continuously adapted at a fast pace to satisfy the changing market demands. Introducing agile software development methods promise the flexibility to react on customers' change requests and market demands to deliver high quality software. Despite this need, it is still challenging to combine agile software development and product lines. The maturity of an agile adoption is often hard to determine. Assessing the current situation regarding the combination is a first step towards a successful inclusion of agile methods into automotive software product lines. Based on an interview study with 16 participants and a literature review, we build the so-called ASPLA Model allowing self-assessments within the team to determine the current state of agile software development in combination with software product lines. The model comprises seven areas of improvement and recommends a possibility to improve the current status.
- Research Article
- 10.1108/ijwis-10-2015-0036
- Apr 18, 2016
- International Journal of Web Information Systems
Purpose This paper aims to discuss the motivation and present the evolution from a Software Product Line (SPL) in the e-Gov Web (e-Gov Web SPL) domain to a SPL in the mobile domain (e-Gov Mobile SPL). Design/methodology/approach The evolution was supported by the Product Line UML-Based Software Engineering approach and the feature model. Findings The authors were able to observe that it is feasible to evolve from a SPL for the Web platform to a SPL for the mobile platform, with the intent to port existing Web applications to mobile platforms such that users can have access to the main information and are able to interact with the most important functionalities of Web applications in a mobile device. Research limitations/implications As for the main limitations, the authors can point out the small number of instantiations performed until the moment with the support of the e-Gov Mobile SPL, what prevented the conduction of an empirical study. Practical implications Using e-Gov Mobile SPL, it is possible to reduce development time and cost. Originality/value The existing SPLs do not worry about supporting the development of mobile applications corresponding to existing Web applications, as it is desirable to have access to the information and main features of these applications in mobile devices. We obtained some e-Gov Mobile SPL instantiations corresponding to e-Gov Web SPL instantiations to attend the demands of the Brazilian Agricultural Research Corporation Unit situated at Campo Grande, MS, Brazil.
- Conference Article
1
- 10.1109/iiai-aai.2018.00159
- Jul 1, 2018
The software product line(SPL) is a method for efficiently developing software of the same group of products in order to cope with various kinds of software products. In SPL development, the relationship between elements (equal features) that characterize each product is expressed by a feature model represented using a tree diagram. In this paper, we propose a method to confirm the quality of each product from the assurance case by converting the quality characteristic of the feature model to assurance case that can be explained using GSN notation.
- Book Chapter
- 10.4018/9781878289919.ch050
- Jan 18, 2011
Software product line (SPL) is a software engineering paradigm for software development. SPL is important in promoting software reuse, leading to higher productivity and quality. A software product within a product line often has specific functionalities that are not common to all other products within the product line. Those specific functionalities are termed “variant features” in a product line. SPL paradigm involves the modeling of variant features. However, little work in SPL investigates and addresses the modeling of variant features specific to UI. UML is the de facto modeling language for object-oriented software systems. It is known that UML needs better support in modeling UIs. Thus, much research developed UML extensions to improve UML support in modeling UIs. Yet little of this work is related to developing such extensions for modeling UIs for SPLs in which variant features specific to user interfaces (UI) modeling must be addressed. This research develops a UML extension, WUIML, to address these problems. WUIML defines elements for modeling variant features specific to UIs for Web-based SPLs. The model elements in WUIML extend from the metaclass and of the UML2.0 metamodel. WUIML integrates the modeling of variant features specific to UIs to UML. For example, in a Web-based patient registration SPL, member products targeting British users may use British date format in the user interface, while member products targeting United States users may use United States date format in the user interface. Thus, this is a variant feature for this product line. WUIML defines a model element, XOR, to represent such exclusive or conditions in a product line user interface model. WUIML would reduce SPL engineers’ efforts needed in UI development. To validate the WUIML research outcome, a case study was conducted. The results of this empirical study indicate that modeling UIs for Web-based SPLs using WUIML is more effective and efficient than using standard UML.
- Book Chapter
- 10.4018/978-1-60566-418-7.ch015
- Jan 1, 2009
Software product line (SPL) is a software engineering paradigm for software development. A software product within a product line often has specific functionalities that are not common to all other products within the product line. Those specific functionalities are termed “variant features” in a product line. SPL paradigm involves the modeling of variant features. However, little work in SPL investigates and addresses the modeling of variant features specific to user interface (UI). Unified Modeling Language (UML) is the de facto modeling language for object-oriented software systems. It is known that UML needs better support in modeling UIs. Thus, much research developed UML extensions to improve UML support in modeling UIs. Yet little of this work is related to developing such extensions for modeling UIs for SPLs in which variant features specific to UI modeling must be addressed. This research develops a UML extension -Web User Interface Modeling Language (WUIML) to address these problems. WUIML defines elements for modeling variant features specific to user interfaces for Web-based SPLs. The model elements in WUIML extend from the metaclass and BasicActivity of the UML2.0 metamodel. WUIML integrates the modeling of variant features specific to user interfaces to UML. For example, in a Web-based patient registration software product line, member products targeting British users may use British date format in the user interface, while member products targeting United States users may use United States date format in the user interface. Thus, this is a variant feature for this product line. WUIML defines a model element, XOR, to represent such exclusive or conditions in a product line user interface model. WUIML would reduce SPL engineers’ efforts needed in UI development. To validate the WUIML research outcome, a case study was conducted. The results of this empirical study indicate that modeling UIs for Web-based SPLs using WUIML is more effective and efficient than using standard UML.
- Book Chapter
11
- 10.1007/978-3-642-21347-2_11
- Jan 1, 2011
A software product line (SPL) usually involves a shared set of core assets and a series of application products. To ensure consistency, the evolution of the core assets and all the application products should be coordinated and synchronized under a unified evolution process. Therefore, SPL evolution often involves cross-product propagation and synchronization besides application derivation based on core assets, presenting quite different characteristic from the evolution of individual software products. As software architectures, including the product line architecture (PLA) and application architectures, play a central role in SPL engineering and evolution, architecture-based evolution analysis is a natural way for analyzing and managing SPL evolution. In this paper, we explore common practices of architecture evolution and the rationale behind in industrial SPL development. To this end, we conduct a case study with Wingsoft examination system product line (WES-PL), an industrial product line with an evolution history of eight years and more than 10 application products. In the case study, we reviewed the evolution history of WES-PL architecture and analyzed several typical evolution cases. Based on the historical analysis, we identify some special problems in industrial SPL practice from the aspect of architecture evolution and summarize some useful experiences about SPL evolution decisions to complement classical SPL methodology. On the other hand, we also propose some possible improvements for the evolution management in WES-PL.
- Conference Article
- 10.1109/splc.2008.66
- Sep 1, 2008
Summary form only given. The current generation of software product line (SPL) engineering success stories is being driven by a new generation of methods, tools and techniques. In this article, we explore the latest in the ongoing evolution of SPL best practices that make it easier to adopt an SPL engineering approach and that make it more efficient to achieve optimal benefits over the long term.The goal of the article is to enable attendees to gain a better and simpler understanding of SPL concepts and practice, based on the latest experiences and advances in the 3-tiered SPL methodology and the unified SPL lifecycle framework. These pragmatic SPL concepts represent current advances in SPL practice and are based on observations and firsthand experiences during deployments and operation of the latest generation of successful commercial SPL practices,including Lockheed Martin and HomeAway, as well as highly acclaimed Software Product Line Hall of Fame inductees Salion and LSI Logic/Engenio. The 3-Tiered SPL Methodology and Unified SPL Lifecycle Framework have supported full scale operational transitions to software product line practice, involving hundreds of software engineers, millions of lines of source code and requirements, and billions of dollars in commercial product lines.
- Book Chapter
3
- 10.1007/978-3-031-29056-5_46
- Jan 1, 2023
Cyber-Physical Systems (CPSs) in domains such as automotive and autonomous vehicles that perform safety-critical functions require the justification and demonstration of system dependability. Assurance cases provide an explicit means for assessing confidence in system safety, security, and other properties of interest. The Structured Assurance Case Metamodel (SACM) issued by the Object Management Group (OMG) defines a standardized metamodel for representing structured assurance cases. SACM provides the foundations for model-based system assurance with great potential to be applied in emergent open and adaptive CPS domains. Thus, assurance cases are expected to be exchanged, integrated, and verified at runtime to ensure the dependability of CPSs. However, existing design-time system assurance activities are insufficient to enable dynamic safety and security assurance of CPSs at runtime. In this paper, we introduce extensions to SACM to support the specification and synthesis of executable assurance cases from design, analysis, and process models to demonstrate CPS safety and security at runtime. We evaluate the feasibility of our approach in an illustrative study in the automotive domain.
- Research Article
1
- 10.1007/s11219-012-9185-8
- Aug 15, 2012
- Software Quality Journal
Software Product Line Engineering is a paradigm that focuses on the capture and modeling of available commonalities and variabilities within the products of a target application domain and hence facilitates reuse. Given the benefits of this engineering paradigm, large software production companies have become increasingly aware of the employment of software product lines to reap its advantages in terms of optimizing time-to-market, reducing costs, improving efficiency, and achieving agility. In practice, the success of software product line theories relies on the employment of optimized processes and technologies that are both valid and useful in the context of strategic and business directives as well as software development tasks. Impressive steps have been taken in the development of supportive tools and techniques for modeling, customizing, and realizing software product lines within the areas of software composition and component-based software engineering. The product line community is in its second decade of existence with the SPL conference serving as the premium forum for product line researchers and practitioners. However, the assurance of the quality of the software being developed using this approach and the satisfaction of various process metrics is an important ongoing direction of research that has received less attention. Some existing techniques from the areas of software architecture and also software quality evaluation have been adapted to software product lines, but yet more emphasis on the significant importance of quality engineering in software product lines is needed. The importance is seen in light of the fact that lowquality software product lines can cause a ripple effect on the actual numerous products that are derived from their customization. This current special issue on Quality Engineering for Software Product Lines was produced with the purpose of depicting the state of the art and practice. We received many very high-quality submissions from leading researchers in the area and finally accepted
- Single Report
32
- 10.21236/ada403868
- Jul 1, 2002
Many organizations report dramatic benefits from the adoption of software product line practice. Organizations that have established software engineering process discipline are better poised to succeed with product lines. While we acknowledge that there are different paths to successful process discipline, in this technical note, we concentrate on approaches based on the Capability Maturity Model Integration (CMMI) models. We describe practices that are most crucial to product line success. While some of these relate directly to the CMMI models process areas, others are uniquely important to product lines. In this technical note, we first present fundamental concepts of software product lines. We then describe important product line practices as they have been documented in A Framework for Software Product Line Practice (framework). We next present an overview of the CMMI models, followed by a description of the general relationships between the framework and CMMI models. We amplify this comparison with a detailed example showing the relationship between configuration management practices in CMMI and in the framework. We conclude by describing the ways in which organizations can build upon their process improvement efforts to achieve success with product lines and realize additional benefits through the use of both technologies.