DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on

[Conceito] - Índice de Instabilidade de Software

Conteúdo original em https://twitter.com/zanfranceschi/status/1822399151998636165


Estou elaborando um material que menciono o Índice de Instabilidade de software que é:

Ce / (Ce + Ca)

Onde:
Ce = Acoplamento Eferente
Ca = Acoplamento Aferente

O resultado vai de 0 a 1 e quanto mais próximo de 0, mais estável e vice-versa. Mas você entende o por quê disso?

Quote de https://twitter.com/zanfranceschi/status/1543662061095227392


A gente nota que com essa fórmula, quanto maior o número de dependências (acoplamentos) eferentes em relação às eferentes, mais instável o resultado é (próximo de 1). E o inverso também é verdadeiro.


Isso acontece por dois motivos:

- Quanto maior o número de dependências que nosso componente tem de outros (eferentes), mais suscetível à falhas; e

- Quanto maior o número de outros componentes que dependem da gente (aferentes) mais estável a gente precisa ser.


Pelo que sei, esse índice foi criado pelo Robert C. Martin (?). Mas o conheci por um texto do
@elemarjr.

Esse índice pode ser aplicado a muitas coisas (de classes a serviços e além), tem algumas limitações e acho válido falarmos sobre elas também.

https://arquiteturadesoftware.online/volume-1/nunca-ignore-o-acoplamento-capitulo-4-v1-03/


Por exemplo, um componente com 0 dependências aferentes, e 1 ou 1000 eferentes vai ter o mesmo índice máximo de instabilidade, mas na prática um componente com 1000 dependências é muito mais frágil do que um com 1.

Então se decidir aplicá-lo, tenha isso em mente!

/fim

Top comments (0)