sdp – stable dependencies principles

18
Cláudio Henrique Welenn Cássio SDP Stable Dependencies Principles (Princípios das Dependências Estáveis)

Upload: engenharia-de-software-agil

Post on 03-Jul-2015

1.453 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Sdp – stable dependencies principles

Cláudio Henrique

Welenn Cássio

SDP – Stable Dependencies Principles

(Princípios das Dependências Estáveis)

Page 2: Sdp – stable dependencies principles

Conceito Geral:

As dependências entre os pacotes devem

ser no sentido da estabilidade dos pacotes.

Um pacote deve depender apenas de

pacotes que são mais estáveis do que ele.

Page 3: Sdp – stable dependencies principles

Definindo pacotes

Estável

e

Instável

Page 4: Sdp – stable dependencies principles

Estável: significa aproximadamente

"difícil de mudar“;

Instável: significa "fácil de mudar".

Page 5: Sdp – stable dependencies principles

Estabilidades de Pacotes

Precisamos de pacotes instáveis, caso

contrário, não poderemos mudar o

software facilmente.

Page 6: Sdp – stable dependencies principles

O principio

Um pacote não deve ser dependente de

um outro pacote que é mais propenso à

mudanças que este.

Page 7: Sdp – stable dependencies principles

Distribuições iguais

Se todos os pacotes têm distribuições

relativamente iguais para uma mudança,

isso é provavelmente um sinal de má

organização, e se deve ao desejo de

apoiar mudanças prováveis e ao mesmo

tempo proporcionar estabilidade.

Page 8: Sdp – stable dependencies principles

Então, qual seria a melhor forma de

definir as condições dos pacotes?

Page 9: Sdp – stable dependencies principles

Se você não sabe que tipos de mudanças são

prováveis, é melhor esperar e ver o que

acontece quando o sistema evolui.

Estabilidade

Page 10: Sdp – stable dependencies principles

Estabilidade

Uma boa prática adotada é modelar as

dependências dos pacotes de forma a

colocar os pacotes instáveis acima do

pacotes estáveis.

Page 11: Sdp – stable dependencies principles

Estabilidade

Page 12: Sdp – stable dependencies principles

Exemplo

Page 13: Sdp – stable dependencies principles

Exemplo

No exemplo, é possível verificar que o pacote Cliente é o

mais estável pois existem classes de outros pacotes que

dependem das classes de seu pacote.

O pacote Empresa Aérea é estável (no domínio do negócio),

porém, menos estável que Cliente pois, se houver uma

mudança de negócios que passe a disponibilizar o transporte

aéreo por helicóptero uma mudança em sua estrutura interna

será exigida.

O mesmo acontece com o pacote Cobrança, imaginando um

cenário onde a forma de pagamento passa a ser feita também

usando cartão de crédito.

Page 14: Sdp – stable dependencies principles

Métricas de estabilidade

Como podemos medir a estabilidade de um

pacote?

Uma maneira é contar o número de

dependências que entram e saem desse

pacote. Estas contagens nos permitirão

calcular a estabilidade posicional do pacote.

Page 15: Sdp – stable dependencies principles

Métricas de estabilidade

• Ca: Acoplamentos Aferentes: O número de classes de fora

deste pacote, que dependem de classes dentro deste pacote.

• Ce: Acoplamentos eferente: O número de classes dentro

desse pacote que depende de classes de fora deste pacote.

• I: Instabilidade: (Ce / (Ca + Ce)): Esta métrica tem no

intervalo [0,1]. I = 0 indica um ser maximamente

pacote estável. I = 1 indica um pacote máximo instável.

Page 16: Sdp – stable dependencies principles

Métricas de estabilidade

Considere o seguinte exemplo:

Page 17: Sdp – stable dependencies principles

Conclusão

Para se obter a estabilidade de pacotes é

necessário estabelecer um design que

proporcione o seguinte:

Pacotes sujeitos à mudanças devem depender

de pacotes sujeitos a menos mudanças, ou

seja, pacotes “instáveis” deve ser

dependentes de pacotes “estáveis” ou, mais

“estáveis” que o mesmo.