Skip to main navigation Skip to search Skip to main content

Reengineering UML class diagram variants into a product line architecture

  • Johannes Kepler University Linz
  • Pontifícia Universidade Católica do Rio de Janeiro
  • Universidade Federal do Paraná

Research output: Contribution to Book/Report typesBook Chapterpeer-review

2 Citations (Scopus)

Abstract

Software reuse is a way to reduce costs and improve the quality of products. In practice, software reuse is commonly done by opportunistic strategies. In these strategies, the artifacts are simply copied/cloned and modified/adapted to fulfill existing needs. Opportunistic reuse leads to a set of system variants developed independently, generating technical debts. The maintenance and evolution of these independent variants are a costly and difficult task since most of the times the practitioners do not have a global view of such variants nor a clear understanding of the actual structure of the system. In such a case, a systematic reuse approach is paramount. Software product line engineering (SPLE) is a well-established approach to deal with a set of product variants in a specific domain, including systematic reuse in the software development process. One of the main design assets generated during the SPLE is the product line architecture (PLA), which describes how commonalities and variabilities are implemented in an SPL. Designing a PLA from scratch is challenging, since it must contemplate a detailed description of a whole family of products. PLAs can be obtained from existing product variants, requiring less effort and time from practitioners. Commonly, UML class diagrams of system products are available or can be reverse engineered easily. These UML class diagrams are a rich source of information to support PLA creation. In this chapter, we describe our method of reengineering UML class diagram of variants into an initial version of a PLA. Our method relies on a search-based technique to merge a set of UML model variants and insert annotations in model elements to describe the system features they belong to. The output of our method is an annotated UML class diagram that shows the whole structure of product variants that allows practitioners to reason better about the adoption of SPLE, aiding communication among stakeholders, supporting SPLE planning, and helping estimate maintenance, evolution, and testing activities.

Original languageEnglish
Title of host publicationUML-Based Software Product Line Engineering with SMarty
PublisherSpringer International Publishing
Pages393-414
Number of pages22
ISBN (Electronic)9783031185564
ISBN (Print)9783031185557
DOIs
Publication statusPublished - 6 Feb 2023

Fingerprint

Dive into the research topics of 'Reengineering UML class diagram variants into a product line architecture'. These topics are generated from the title and abstract of the publication. Together, they form a unique fingerprint.

Cite this