Maintainability of Technologies for Programming Software Product Lines: A Comparative Study
Abstract
In Software Product Line (SPL), the aim is a systematic and large-scale reuse. The SPL maintainability should be high, because change in a module can affect various products. Therefore, figuring out which technology/language that has greater maintainability can help software development companies, whose requires constant changes to choose the development technology. The main goal of this study is to assess the maintainability of three equivalent SPLs implemented with Feature-Oriented Programming using AHEAD, Aspect-Oriented Programming using AspectJ and Delta-Oriented Programming using DeltaJ. Six measures are used to evaluate four attributes: size; cohesion; coupling; and, complexity. As result, there is significant differences in the comparison only for one of the six measures, in which the maintainability of the SPLs developed in AspectJ and DeltaJ can be considered the same, but better than AHEAD SPL.
References
Aldekoa, G.; Trujillo, S.; Sagardui, G.; Diaz, O. (2008) Quantifying Maintainability in Feature Oriented Product Lines. In: European Confon Software Maintenance and Reengineering, pp. 243-247.
Ali, M.; Babar, M. A.; Chen, L.; Stol, K.-J. (2010) A Systematic Review of Comparative Evidence of Aspect-Oriented Programming. In: Journal Information and Software Technology, v.52, n.9, pp.871-887.
Apel, S.; Beyer, D. (2011) Feature Cohesion in Software Product Lines: An Exploratory Study. In: International Conference on Software Engineering, pp.421-430.
Bagheri, E.; Gasevic, D. (2011) Assessing the Maintainability of Software Product Line Feature Models using Structural Metrics. In: Software Quality Journal, v. 19, n. 3, pp. 579-612.
Batory, D. (2003) A Tutorial on Feature Oriented Programming and Product-Lines. In: International Conference on Software Engineering. p. 753.
Batory, D. (2004) Feature-Oriented Programming and the AHEAD Tool Suite. In: 26th International Conference on Software Engineering, pp. 702-703, 2004.
Boucher, Q.; Classen, A.; Faber, P.; Heymans, P. (2010) Introducing TVL, a Text Based Feature Modelling Language. In: International Workshop on Variability Modelling of Software-intensive Systems. pp. 159-162.
Bouwers, E.; Visser, J.; Deursen, A. (2012) Getting what you measure. Communications of the ACM, vol. 55, no. 7, pp. 54-59.
Ferreira, D. F. (2009) Estatística Básica. Ed. Ufla, 2a Ed, 664p.
Ferreira, G. ; Gaia, F. N. ; Figueiredo, Eduardo ; Maia, Marcelo. (2013) On the use of feature-oriented programming for evolving software product lines A comparative study. Science of Computer programming, v. 72, p. 1-34.
Gaia, F.; Ferreira, G.; Figueiredo, E.; Maia, M. (2014) A quantitative and qualitative assessment of aspectual feature modules for evolving software product lines. Science of Computer Programming. v. 1, p. 1-36.
ISO/IEC 25000 (2005) “Software Engineering Software Product Quality requirements and Evaluation (SQuaRE)” Guide to SQuaRE, p. 35.
Junior, C. A. de F. P. (2008) Geração de Aplicações para Linhas de Produtos Orientadas a Aspectos com Apoio da Ferramenta Captor-AO. Dissertação de Mestrado em Ciências de Computação e Matemática Computacional Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, 120p.
Kiczales, G.; Hilsdale, E.; Hugunin, J.; Kersten, M.; Palm, J.; Griswold, W. G. (2001) An Overview of Aspect. In: European Conference on Object-Oriented Programming. pp. 327-353.
Kiczales, G.; Lamping, J.; Mendhekar, A.; Maeda, C.; Lopes, C.; Loingtier, J. M.; Irwin, J. (1997) Aspect-Oriented Programming. In: ECOOP. pp. 220-242.
Northrop, L. (2002) Sei’s Software Product Line Tenets. In: IEEE Software, v. 19, n. 4, pp. 32-40.
Pohl, K.; Bockle, G.; Linden, F. J. (2005) Software Product Line Engineering: Foundations, Principles, and Techniques. Springer-Verlag, 494p., 2005.
Reis, J. N.; Vale, G.; Costa, H. (2014) Análise Comparativa de Tecnologias de programação no Contexto de Linhas de Produtos de Software. Simpósio Mineiro de Engenharia de Software, p. 167 176.
Riaz, M.; Mendes, E.; Tempero, E. (2009) A Systematic Review of Software Maintainability Prediction and Metrics. In: International Symposium Empirical Software Engineering and Measurement, p. 367-377.
Schaefer, I.; Bettini, L.; Damiani, F. (2011) Compositional Type Checking for Delta-Oriented Programming. In: International Conference on Aspect-oriented Software Development. pp. 43-56.
Schulze, S.; Apel, S.; Kastner, C. (2010) Code Clones in Feature-Oriented Software Product Lines. In: International Conference on Generative Programming, pp.103-112.
Schulze, S.; Thüm, T.; Kuhlemann, M.; Saake, G. (2012) Variant-Preserving Refactoring in Feature-Oriented Software Product Lines. In: Workshop on Variability Modeling of Software-Intensive Systems, pp.73-81.
Sommerville, I. (2011) Engenharia de Software, 9a Edição, Pearson Education.
Vale, G.; Abílio, R.; Freire, A.; Costa, H. (2015) Criteria and Guidelines to Improve Software Maintainability. In Software Product Lines. International Conference on Information Technology: New Generations.
Vale, G.; Figueiredo, E.; Abílio, R.; Costa, H. (2014) Bad Smells in Software Product Lines: A Systematic Review. In: Eighth Brazilian Symposium on Software Components, Architectures and Reuse, pp. 84-93.
