Modeling and Configuring UML-based Software Product Lines with SMartyModeling
Variability modeling in UML-based Software Product Lines (SPL) has been carried out mostly using the UML Profiling mechanism. However, there is no UML-based SPL life cycle supporting tool, which takes advantages of UML standard diagrams in a controlled environment exclusively for it. In this scenario, we developed SMartyModeling, which allows SPL modeling on UML models, use of different visualization techniques to SPL/variability information, traceability, and configuration of products. The architecture of SMartyModeling was instantiated based on VMTools-RA, a Reference Architecture for software variability tools. This paper presents the SMartyModeling in an architectural viewpoint, describes its requirements, views, and elements selected from VMTools-RA and the decisions made during the instantiation process. We also present examples of using the environment, modeling an adaptation of the Mobile Media SPL and generating a product. We also discuss lessons learned and performed evaluations.
Bashroush, R., Garba, M., Rabiser, R., Groher, I., and Botterweck, G. (2017). Case tool support for variability management in software product lines. ACM Comput. Surv., 50(1):14:1–14:45.
Capilla, R., Bosch, J., and Kang, K. C. (2013). Systems and Software Variability Management: Concepts, Tools and Experiences. Springer.
de Almeida, E. S. (2019). Software Reuse and Product Line Engineering. In Cha S.,Taylor R., K. K., editor, Handbook of Software Engineering, pages 321–348. Springer,Cham, Switzerland.
Gomaa, H. (2006). Designing software product lines with uml 2.0: From use cases to pattern-based software architectures. Springer-Verlag.
K. U., K. and Nandhini, M. (2017). Classification of Tools For Feature-Oriented Software Development A Comprehensive Review. International Journal of Computer Sciences and Engineering, 5:329–337.
Linden, F. J. V. D., Schmid, K., and Rommes, E. (2007). Software product lines in action: The best industrial practice in product line engineering, volume 20. Springer-Verlag New York, Inc.
Long, F., Amidon, P., and Rinard, M. (2017). Automatic inference of code transforms for patch generation systems. In ACM SIGSOFT FSE, pages 727–739.
Meinicke, J., Thum, T., Schroter, R., Benduhn, F., and Saake, G. (2014). An Overview on Analysis Tools for Software Product Lines. In Proceedings of the 18th International Software Product Line Conference: Companion Volume for Workshops, Demonstrations and Tools - Volume 2, pages 94–101, New York, NY, USA. Association for Computing Machinery.
Nakagawa, E. Y., Guessi, M., Maldonado, J. C., Feitosa, D., and Oquendo, F. (2014). Consolidating a process for the design, representation, and evaluation of reference architectures. In WICSA, pages 143–152, Washington, DC, USA.
OliveiraJr, E., Maldonado, J. C., and Gimenes, I. M. S. (2010). Systematic Management of Variability in UML-based Software Product Lines. Journal of Universal Computer Science (JUCS), pages 2374–2393.
SPLC (2018). Software Product Line Conference - Hall of Fame. URL: https://splc.net/fame.html.
Ziadi, T., Helouet, L., and Jezequel, J. M. (2003). Towards a uml profile for software product lines. In PFE, pages 129–139. Springer.