Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste artigo, você aprenderá sobre uma das métricas projetadas especificamente para análise orientada a objetos: Profundidade da herança. A profundidade da herança, também chamada de profundidade da árvore de herança (DIT), é definida como "o comprimento máximo do nó até a raiz da árvore" CK. Você pode ver isso com um exemplo simples. Crie um novo projeto de Biblioteca de Classes e, antes de escrever qualquer código, calcule as métricas de código escolhendo Analisar > Calcular Métricas de Código para Solução.
Como todas as classes herdam de System.Object, a profundidade é 1 atualmente. Se você herdar dessa classe e examinar a nova classe, poderá ver o resultado:
Note que quanto mais abaixo está o nó na árvore (Class2 neste caso), maior é a profundidade da herança. Você pode continuar a criar filhos e fazer com que a profundidade aumente o quanto quiser.
Assumptions
A profundidade da herança baseia-se em três pressupostos fundamentais CK:
Quanto mais profunda uma classe na hierarquia, maior o número de métodos que ela provavelmente herdará, o que torna mais difícil prever seu comportamento.
Árvores mais profundas envolvem maior complexidade de projeto, uma vez que mais classes e métodos estão envolvidos.
Classes mais profundas na árvore têm um maior potencial para reutilizar métodos herdados.
As suposições 1 e 2 dizem que ter um número maior para profundidade é ruim. Se fosse aí que terminasse, estaria numa boa posição; Contudo, a suposição 3 indica que uma maior profundidade é benéfica para a possível reutilização do código.
Analysis
Veja como você lê a métrica de profundidade:
Número baixo para profundidade
Um número baixo para profundidade implica menos complexidade, mas também a possibilidade de menos reutilização de código através de herança.
Número elevado para profundidade
Um número elevado de profundidade implica mais potencial de reutilização de código através de herança, mas também maior complexidade com uma maior probabilidade de erros no código.
Análise de código
A análise de código inclui uma categoria de regras de manutenabilidade. Para obter mais informações, consulte Regras de manutenção. Ao usar a análise de código herdado, o conjunto de regras do Extended Design Guideline contém uma área de manutenção:
Dentro da área de manutenibilidade há uma regra para herança:
Esta regra emite um aviso quando a profundidade da herança atinge 6 ou mais, por isso é uma boa regra para ajudar a evitar a herança excessiva. Para saber mais sobre a regra, consulte CA1501.
Juntando tudo
Valores altos para DIT significam que o potencial de erros também é alto, valores baixos reduzem o potencial de erros. Valores altos para DIT indicam um maior potencial de reutilização de código por meio de herança, valores baixos sugerem menos reutilização de código por herança a ser usada. Devido à falta de dados suficientes, não existe atualmente uma norma aceite para os valores DIT. Mesmo estudos feitos recentemente não encontraram dados suficientes para determinar um número viável que pudesse ser usado como um número padrão para esta métrica de Shatnawi. Embora não haja evidência empírica para apoiá-lo, vários recursos sugerem que um DIT em torno de 5 ou 6 deve ser um limite superior. Por exemplo, veja https://www.devx.com/architecture-zone/45611/.
Citações
CK
Chidamber, S. R. & Kemerer, C. F. (1994). A Metrics Suite for Object Oriented Design (IEEE Transactions on Software Engineering, Vol. 20, No. 6). Consultado em 14 de maio de 2011 do site da Universidade de Pittsburgh: http://www.pitt.edu/~ckemerer/CK%20research%20papers/MetricForOOD_ChidamberKemerer94.pdf
Krishnan
Subramanyam, R. & Krishnan, M. S. (2003). Análise Empírica de Métricas CK para Complexidade de Projeto Orientado a Objetos: Implicações para Defeitos de Software (IEEE Transactions on Software Engineering, Vol. 29, No. 4). Consultado em 14 de maio de 2011, originalmente obtido do site da Universidade de Massachusetts Dartmouth https://ieeexplore.ieee.org/abstract/document/1191795
Shatnawi
Shatnawi, R. (2010). Uma Investigação Quantitativa dos Níveis de Risco Aceitáveis das Métricas orientadas a objetos em sistemas open-source (IEEE Transactions on Software Engineering, Vol. 36, No. 2).