Skip to main content

Reengineering UML Class Diagram Variants into a Product Line Architecture

  • Chapter
  • First Online:
UML-Based Software Product Line Engineering with SMarty

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 69.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 119.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Extracting variability-safe feature models from source code dependencies in system variants. In: Genetic and Evolutionary Computation Conference (GECCO), pp. 1303–1310. ACM, New York (2015). https://doi.org/10.1145/2739480.2754720

  2. Assunção, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Reengineering legacy applications into software product lines: a systematic mapping. Empir. Softw. Eng. 1–45 (2017). https://doi.org/10.1007/s10664-017-9499-z

  3. Assunção, W.K.G., Vergilio, S.R., Lopez-Herrejon, R.E.: Discovering software architectures with search-based merge of UML model variants. In: Botterweck, G., Werner, C. (eds.) Mastering Scale and Complexity in Software Reuse, pp. 95–111. Springer International Publishing, Berlin (2017)

    Chapter  Google Scholar 

  4. Berger, T., Steghöfer, J.P., Ziadi, T., Robin, J., Martinez, J., et al.: The state of adoption and the challenges of systematic variability management in industry. Empir. Softw. Eng., 1755–1797 (2020)

    Google Scholar 

  5. Dobrica, L., Niemela, E.: A survey on software architecture analysis methods. IEEE Trans. Softw. Eng. 28(7), 638–653 (2002). https://doi.org/10.1109/TSE.2002.1019479

    Article  MATH  Google Scholar 

  6. Durillo, J.J., Nebro, A.J.: jmetal: a Java framework for multi-objective optimization. Adv. Eng. Softw. 42, 760–771 (2011). https://doi.org/10.1016/j.advengsoft.2011.05.014. http://jmetal.sourceforge.net/

  7. Faust, D., Verhoef, C.: Software product line migration and deployment. Softw. Pract. Exp. 33(10), 933–955 (2003)

    Article  Google Scholar 

  8. Garcia, J., Ivkovic, I., Medvidovic, N.: A comparative analysis of software architecture recovery techniques. In: International Conference on Automated Software Engineering (ASE), pp. 486–496. IEEE, Piscataway (2013)

    Google Scholar 

  9. Goldberg, D.E., Deb, K., Clark, J.H.: Genetic algorithms, noise, and the sizing of populations. Complex Syst. 6, 333–362 (1992)

    MATH  Google Scholar 

  10. Holmes, R., Walker, R.J.: Systematizing pragmatic software reuse. ACM Trans. Softw. Eng. Methodol. 21(4), 1–44 (2013). https://doi.org/10.1145/2377656.2377657

    Article  Google Scholar 

  11. Hussain, I., Khanum, A., Abbasi, A.Q., Javed, M.Y.: A novel approach for software architecture recovery using particle swarm optimization. Int. Arab J. Inf. Technol. 12(1), 32–41 (2015)

    Google Scholar 

  12. Jeet, K., Dhir, R.: Software architecture recovery using genetic black hole algorithm. ACM SIGSOFT Softw. Eng. Not. 40(1), 1–5 (2015)

    Article  Google Scholar 

  13. Krueger, C.W.: Software reuse. ACM Comput. Surv. 24(2), 131–183 (1992). https://doi.org/10.1145/130844.130856

    Article  Google Scholar 

  14. Kulkarni, N., Varma, V.: Perils of opportunistically reusing software module. Softw. Pract. Exp. 47(7), 971–984 (2017). https://doi.org/10.1002/spe.2439

    Article  Google Scholar 

  15. Laguna, M.A., Crespo, Y.: A systematic mapping study on software product line evolution: from legacy system reengineering to product line refactoring. Sci. Comput. Program. 78(8), 1010–1034 (2013). https://doi.org/10.1016/j.scico.2012.05.003

    Article  Google Scholar 

  16. Linsbauer, L., Lopez-Herrejon, E.R., Egyed, A.: Recovering traceability between features and code in product variants. In: 17th International Software Product Line Conference, SPLC’13, pp. 131–140. ACM, New York (2013). https://doi.org/10.1145/2491627.2491630

  17. Marcolino, A.S., OliveiraJr, E.: Comparing SMarty and plus for variability identification and representation at product-line uml class level: a controlled quasi-experiment. J. Comput. Sci. 13(11), 617–632 (2017). https://doi.org/10.3844/jcssp.2017.617.632

    Article  Google Scholar 

  18. Martinez, J., Ziadi, T., Klein, J., Traon, Y.L.: Identifying and visualising commonality and variability in model variants. In: 10th European Conference Modelling Foundations and Applications (ECMFA), pp. 117–131 (2014). https://doi.org/10.1007/978-3-319-09195-2_8

  19. Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., l. Traon, Y.: Automating the extraction of model-based software product lines from model variants. In: International Conference on Automated Software Engineering (ASE), pp. 396–406 (2015)

    Google Scholar 

  20. OliveiraJr, E., Gimenes, I.M.S., Maldonado, J.C.: Systematic management of variability in uml-based software product lines. J. Univ. Comput. Sci., 2374–2393 (2010). https://doi.org/10.3217/jucs-016-17-2374

  21. Pohl, K., Böckle, G., van Der Linden, F.J.: Software Product Line Engineering: Foundations, Principles And Techniques. Springer Science & Business Media, Berlin (2005)

    Google Scholar 

  22. Steinberg, D., Budinsky, F., Merks, E., Paternostro, M.: EMF: eclipse modeling framework. Pearson Education, London (2008)

    Google Scholar 

Download references

Acknowledgements

The work is supported by the Brazilian funding agencies CAPES and CNPq (Grant 305968/2018), by the Carlos Chagas Filho Foundation for Supporting Research in the State of Rio de Janeiro (FAPERJ), under the PDR-10 program, grant 202073/2020, and by the Natural Sciences and Engineering Research Council of Canada (NSERC) grant RGPIN-2017-05421.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wesley Klewerton Guez Assunção .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Assunção, W.G., Vergilio, S.R., Lopez-Herrejon, R.E. (2023). Reengineering UML Class Diagram Variants into a Product Line Architecture. In: OliveiraJr, E. (eds) UML-Based Software Product Line Engineering with SMarty. Springer, Cham. https://doi.org/10.1007/978-3-031-18556-4_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-18556-4_18

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-18555-7

  • Online ISBN: 978-3-031-18556-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics