Applying Feature-Oriented Software Development in SaaS Systems: Real Experience, Measurements, and Findings
Keywords:feature oriented software development, feature oriented domain analysis, variability management, software as a service, feature model metrics
Distributing software as a service (SaaS) has become a major trend for web-based systems. However, this software distribution model poses many challenges. One of them is feature variability, that is, some features of the system may be required by some users, but not by all of them. In addition, variability is more complex than just including or excluding a feature, since different types of relationships may exist between features. The implementation of this variability, and the parametrization and configuration of the system can be complex in this context, so the development process of a SaaS system must adequately address variability management. In this paper we present an experience applying feature oriented software development (FOSD) in the context of SaaS web-based systems development. We present a real experience in the development of a web-based system for managing home care services for dependent people. The article describes the problem of variability management in this domain, and the feature model of the system. Finally, we present an empirical evaluation of the feature model of the system based on data obtained from its real deployment after two years of use. The empirical evaluation was based on state-of-the-art measures for variability management, and revealed relevant insights for software development in this context.
Ramon Abilio, Gustavo Vale, Eduardo Figueiredo, and Heitor Costa. Metrics for feature-oriented programming. In Proceedings of the 7th International Workshop on Emerging Trends in Software Metrics, WETSoM ’16, pages 36–42, New York, NY, USA, 2016. ACM.
Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. Feature-oriented software product lines: Concepts and implementation. Springer, 2013.
Sven Apel and Christian Kästner. An overview of feature-oriented software development. Journal of Object Technology, 8(4):1–36, 2009.
Ebrahim Bagheri and Dragan Gasevic. Assessing the maintainability of software product line feature models using structural metrics. Software Quality Journal, 19:579–612, 09 2011.
David Benavides, Sergio Segura, and Antonio Ruiz-Corts. Automated analysis of feature models 20 years later: A literature review. Information Systems, 35(6):615–636, 2010.
T. Berger, S. She, R. Lotufo, A. Wasowski, and K. Czarnecki. A study of variability models and languages in the systems software domain. IEEE Transactions on Software Engineering, 39(12):1611–1640, Dec 2013.
Thorsten Berger and Jianmei Guo. Towards system analysis with variability model metrics. In Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems, VaMoS ’14, pages 23:1–23:8, New York, NY, USA, 2013. ACM.
Carla I. M. Bezerra, Rossana M. C. Andrade, José M. S. Monteiro, and Davi Cedraz. Aggregating measures using fuzzy logic for evaluating feature models. In Proceedings of the 12th International Workshop on Variability Modelling of Software-Intensive Systems, VAMOS 2018, pages 35–42, New York, NY, USA, 2018. ACM.
Carla I. M. Bezerra, Rossana M. C. Andrade, and José Maria S. Monteiro. Measures for quality evaluation of feature models. In Ina Schaefer and Ioannis Stamelos, editors, Software Reuse for Dynamic Systems in the Cloud and Beyond, pages 282–297, Cham, 2014. Springer International Publishing.
Paul Clements and Linda Northrop. Software product lines. Addison-Wesley, 2015.
Krystof Czarnecki and Ulrich Eisenecker. Generative programming: methods, tools, and applications. Addison-Wesley, 2000.
Krzysztof Czarnecki, Simon Helsen, and Ulrich Eise` necker. Formalizing cardinality based feature models and their specialization. Software process: improvement and practice, 10(1):7–29, 2005.
Sascha El-Sharkawy, Nozomi Yamagishi-Eichler, and Klaus Schmid. Metrics for analyzing variability and its implementation in software product lines: A systematic literature review. Information and Software Technology, 106:1–30, 2019.
Matthias Galster, Uwe Zdun, Danny Weyns, Rick Rabiser, Bo Zhang, Michael Goedicke, and Gilles Perrouin. Variability and complexity in software design: Towards a research agenda. SIGSOFT Softw. Eng. Notes, 41(6):27–30, Jan. 2017.
Kyo C. Kang, Sajoong Kim, Jaejoon Lee, Kijoo Kim, Euiseob Shin, and Moonhang Huh. Form: A feature-oriented reuse method with domain-;specific reference architectures. Annals of Software Engineering, 5(1):143, Jan. 1998.
C. Lizhen, W. Haiyang, J. Lin, and H. Pu. Customization modeling based on metagraph for multi-tenant applications. In 5th International Conference on Pervasive Computing and Applications, pages 255–260, Dec. 2010.
Stefan Mann and Georg Rock. Control variant-rich models by variability measures. In Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems, VaMoS ’11, pages 29–38, New York, NY, USA, 2011. ACM.
Ralph Mietzner, Andreas Metzger, Frank Leymann, and Klaus Pohl. Variability modeling to support customization and deployment of multi-tenant-aware software as a service applications. In Proceedings of the 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems, PESOS ’09, pages 18–25, Washington, DC, USA, 2009. IEEE Computer Society.
H. Moens, E. Truyen, S. Walraven, W. Joosen, B. Dhoedt, and F. De Turck. Developing and managing customizable software as a service using feature model conversion. In 2012 IEEE Network Operations and Management Symposium, pages 1295–1302, April 2012.
Sonia Montagud, Silvia Abrahão, and Emilio Insfran. A systematic review of quality attributes and measures for software product lines. Software Quality Journal, 20(3):425–486, 2012.
Leonardo Passos, Marko Novakovic, Yingfei Xiong, Thorsten Berger, Krzysztof Czarnecki, and Andrzej Wasowski. A study of non-boolean constraints in variability models of an embedded operating system. In Proceedings of the 15th International Software Product Line Conference, Volume 2, page 2. ACM, 2011.
Klaus Pohl and Günter Böckle. Software product line engineering: Foundations, principles and techniques. Springer.
Salvador Trujillo, Don Batory, and Oscar Diaz. Feature oriented model driven development: A case study for portlets. In Proceedings of the 29th International Conference on Software Engineering, ICSE ’07, pages 44–53, Washington, DC, USA, 2007. IEEE Computer Society.
M. Turner, D. Budgen, and P. Brereton. Turning software into a service. Computer, 36(10):38–44, Oct. 2003.
Eray Tn, Bedir Tekinerdogan, Mert Emin Kalender, and Semih Bilgen. Empirical evaluation of a decision support model for adopting software product line engineering. Information and Software Technology, 60:77–101, 2015.
Dave Zubrow and Gary Chastek. Measures for software product lines. Technical note, Software Engineering Institute (SEI) – Carnegie Mellon University.