Melhoria da Qualidade da Estrutura Interna de Sistemas de Software por Redução do Nível de Acoplamento entre Pacotes

  • Francielli Pinto UFLA
  • Heitor Costa UFLA

Resumo


Sistemas de software devem possuir alto grau de manutenibilidade para que eles sejam facilmente evoluídos de modo a atender novas necessidades do usuário, corrigir erros ou adaptá-los a novas tecnologias. Uma das características intrínsecas a ser melhorada é a independência modular, em que o software deve apresentar baixo acoplamento e alta coesão. Com as constantes alterações no software, essa característica tende a não ser mais adequada e a estrutura interna do software deteriora-se. O que se pode fazer é realizar refatorações no código para que a estrutura interna readquira essa independência modular. Neste artigo, o objetivo é apresentar uma abordagem para reestruturar os pacotes de sistemas de software, por meio da movimentação de classes entre pacotes, de forma a melhorar a qualidade da sua estrutura interna. A abordagem foi utilizada (i) considerando e (ii) não considerando uma ordem de análise das classes. Cinco sistemas de software foram utilizados para avaliar a abordagem proposta, cujas classes com alto acoplamento e baixa coesão nos pacotes tiveram suas medidas melhoradas e, consequentemente, tiveram melhora na qualidade dos sistemas.
Palavras-chave: Estrutura, Redução, Acoplamento, Pacotes

Referências

Ahmed, M. A.; Abubakar, A.; Alghamdi, J. S. (2011) A Study on Uncertainly Inherent in Class Cohesion Measuments. In: Journal of Systems Arctecture, v. 57, pp. 474-484.

Alkhalid, A.; Alshayeb, M.; Mahmoud, S. A. (2011) Software Refactoring at the Package Level using Clustering Techniques. In: IET Software, v. 5. pp. 276-284.

Barker, R.; Tempero, E. (2007) A Large-Scale Empirical Comparison of Object-Oriented Cohesion Metrics. In: Asia-Pacific Software Engineering Conference, pp. 414-421.

Basili, V. R.; Briand, L. C.; Melo, W. L. (1996) A Validation of Object-Oriented Design Metrics as Quality Indicators. In: IEEE Transactions on Software Engineering, v. 22, pp.751-761.

Bavota, G.; De Lucia, A.; Marcus, A.; Oliveto, R. (2012) Using Structural and Semantic Measures to Improve Software Modularization. In: Empirical Software Engineering.

Benlarbi, S.; El Emam, K.; Goel, N.; Raí, S. (2000) Thresholds for Object-Oriented Measures. In: International Symposium on Software Reliability Engineering, pp. 24-38.

Briand, L. C.; Wust, J.; Lounis, H. (2001) Replicated Case Studies for Investigating Quality Factors in Object-Oriented Designs. In: Empirical Software Engineering, v.6, pp.11-58.

Bruntink, M.; van Deursen, A. (2004) Predicting Class Testability using Object-Oriented Metrics. In: IEEE International Workshop on Source Code Analysis and Manipulation, pp. 136-145.

Chidamber, S. R.; Kemerer, C. F. (1994) A Metrics Suite for Object Oriented Design. In: IEEE Transaction on Software Engineering, v. 20, n. 6, pp. 476-493.

Crosby, P. (1980) Quality Is Free: The Art of Making Quality Certain. McGraw-Hill. 270p.

Dagpinar, M.; Jahnke, J. H. (2003) Predicting Maintainability with Object-Oriented Metrics An Empirical Comparison. In: Working Conference Reverse Engineering, pp. 155-164.

El-Emam, K.; Garro, I. (2000) Estimating the Extent of Standards Use: The Case of ISO/IEC15504. In: Journal of Systems and Software. v. 53, Is. 2, pp. 137-143.

Fowler, M. (1999) Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional. 464p.

ISO/IEC 14598. (1999) Information Technology - Software Product Evaluation.

ISO/IEC 25000. (2005) Software Engineering - Software Product Quality Requirements and Evaluation (SQuaRE) - Guide to SquaRE.

ISO/IEC 9126-1. (2001) Software Engineering - Product Quality - Part 1: Quality Model.

MPS (2005) Melhoria de Processo do Software Brasileiro. Guia Geral, v. 1.

Ragab, S. R.; Ammar, H. H. (2010) Object Oriented Design Metrics and Tools a Survey. In: International Conference on Informatics and Systems, pp. 1-7.

SEI. CMMI for Development (CMMI-DEV) Version 1.3. Software Engineering Institute. Technical Report CMU/SEI-2010-TR-033. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2010.

Shah, S. M. A.; Dietrich, J.; McCartin, C. (2012) Making Smart Moves to Untangle Programs. In: European Conference on Software Maintenance and Reengineering, pp. 359-364.

Tahvildari, L.; Singh, A. (2000) Categorization of Object-Oriented Software Metrics. In: Canadian Conference on Electrical and Computer Engineering, v. 1, pp. 235-239.
Publicado
04/08/2014
PINTO, Francielli; COSTA, Heitor. Melhoria da Qualidade da Estrutura Interna de Sistemas de Software por Redução do Nível de Acoplamento entre Pacotes. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 13. , 2014, Blumenau. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2014 . p. 195-209. DOI: https://doi.org/10.5753/sbqs.2014.15253.