DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on

10 1 1

[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

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay