Manutenibilidade de Tecnologias para Programação de Linhas de Produtos de Software: Um Estudo Comparativo

  • José Natanael Reis UFLA
  • Gustavo Vale UFMG
  • Heitor Costa UFMG

Resumo


No contexto de Linha de Produtos de Software (LPS), é visado o reúso sistemático e em larga escala. A manutenibilidade da LPS deve ser elevada, pois a mudança em um módulo pode impactar em vários produtos. Dessa forma, descobrir qual tecnologia/linguagem possui maior manutenibilidade, pode ajudar empresas desenvolvedoras de software, que necessitam de constantes alterações, a escolher a tecnologia de desenvolvimento. Neste trabalho, o objetivo é avaliar a manutenibilidade de três LPSs equivalentes implementadas com Programação Orientada a Características utilizando AHEAD, Programação Orientada a Aspectos utilizando AspectJ e com Programação Orientada a Delta utilizando DeltaJ. Um conjunto de seis medidas capazes de avaliar quatro atributos (tamanho,coesão, acoplamento e complexidade) foi utilizado na avaliação. Como resultados, houve diferença significativa na comparação, apenas para uma das seis medidas utilizadas no qual a manutenibilidade das LPSs desenvolvidas com AspectJ e DeltaJ são consideradas a mesma, no entanto, melhores que a LPS em AHEAD.

Palavras-chave: Manutenibilidade, Programação, Produtos de Software

Referências

Abílio, R.; Teles, P.; Costa, H.; Figueiredo, E. (2012) A Systematic Review of Contemporary Metrics for Software Maintainability. In: Brazilian Symposium on Software Components, Architecture and Reuse, pp.130-139.

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.
Publicado
17/08/2015
REIS, José Natanael; VALE, Gustavo; COSTA, Heitor. Manutenibilidade de Tecnologias para Programação de Linhas de Produtos de Software: Um Estudo Comparativo. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 14. , 2015, Manaus. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2015 . p. 64-78. DOI: https://doi.org/10.5753/sbqs.2015.15214.