SOES #65 - A systematic approach for solving the wicked problem of software release planning

Page 1

A systematic approach for solving the wicked problem of software release planning An Ngo-The · Guenther Ruhe

SOES#65 Apresentação: Altino Dantas


Introdução


Introdução ● Computação evolucionária; ● Problema de decisão sob a perspectiva evolucionária; ● Soft computing; ○ Imprecisão de modelagem. ● Fatores subjetivos; ● Problema do Planejamento de Releases.


Planejamento de Release de Software Ruhe and Ngo-The (2004)


Planejamento de Release


Porquê é difícil


Planejamento de Release como Wicked Problem ❏ Não há uma formulação definitiva; ❏ Wicked Problem não possui regra de parada; ❏ Aplicabilidade; Aceitação. ❏ Soluções: True-or-False Vs Good-or-Bad; ❏ Não há um conjunto bem descrito de potenciais soluções.


Como o Problema é abordado

1 Variáveis de Decisão. 2 Restrições. 3 Preferências. 4 Objetivos.


1 Variáveis de Decisão Dado um conjunto de N requisitos Γ = { f (1), f (2), . . . ,f (N)} Define-se um vetor x = (x(1), x(2), . . . , x(N))

x(i) = k

se feature f(i) está alocado na Release k ∈ {1, 2, . . . K }

x(i) = 0

caso contrário

Exemplo: K = {1,2,3}, Γ = { 1,2,3,...,15 } x

2

1

0

3

1

1

3

3

2

1

0

3

1

1

2


2

Restrições

x(i) = x( j) ∀ (i, j) ∈ C ⊂ Γ ∗ Γ

x(i) ≤ x( j) ∀ (i, j) ∈ WP ⊂ Γ ∗ Γ

x(i) < x( j) ∀ (i, j) ∈ SP ⊂ Γ ∗ Γ

∑ i:x(i)=k

Coupling

Precedence

Strong Precedence

r(i, t) ≤ Cap(k, t) para k = 1 . . . K e t = 1 . . . T

Resource


3 Restrições Leves (Preferências) ● Risco de Implementação;

● Balanceamento de Recursos;

● Satisfação do Cliente;

● Competitividade.


4 Objetivos

Geralmente são difíceis de formular com exatidão e variam de acordo com o projeto. Pode incluir, valor de negócio, tempo de colocação no mercado e satisfação dos clientes.

Exemplos de abordagens: Utility(i, k)

= value(i, k) * urgency(i, k)

Utility(i, k)

= µ(1) * value(i, k) + µ(2) * urgency(i, k) + µ(3) * risk(i, k)

Utility(i, k)

= Min{ value(i, k), urgency(i, k), risk(i, k), dissatisfaction(i, k) }

Utilidade Global

Utility(x) =

∑ k=1,...,K

∑ utility(i, k) i:x(i)=k


Método Evolucionário de Resolução: EVOLVE+ Ruhe and Ngo-The (2004)


Algumas Ferramentas Utilizadas

EVOLVE*

EVOLVE+

ELECTRE IS


Algumas definições 1ª Utility(x) ≥ α Utility∗ e x ∈ Xhard ●

Construção de um conjunto de α-qualified solutions;

2ª D(Y ) = i<∑j (xi, x j) ●

Y = {x1,x2,. . ., xm} ⊂ X;

Distência de Hamming δ(x,y);

δ-diversification value: mensura a diversidade de um dado conjunto;

3ª ∆(Y) = (D(Y ) / Dm∗ (X)) ●

Normalização entre a distância atual e a máxima possível entre todos os subconjuntos de tamanho m;


Fases e passos do processo do EVOLVE+


Estudo de Caso Planejamento de release para o Release Planner


Quando se aplica estudo de caso em ES Quando ocorre uma ou mais das situações abaixo

(Sim et al. 2006)

Quando não se tem controle sobre as variáveis;

Quando existem mais variáveis do que data points;

Quando não é possível separar o fenômeno do contexto;

Quando o contexto é importante;

Quando você quer saber se sua teoria se aplica a uma configuração específica do mundo real.

No nosso caso, queríamos investigar se e como o Método Evolucionário de resolução, em conjunto com a diversificação, ajuda a abordar as restrições leves no planejamento de release. -- Ruhe e Ngo-The


Dados & Configurações do Estudo de Caso


Dados & Configurações do Estudo de Caso ●

N = 50 requisitos;

Função de utilidade Utility(x) baseado no valor que cada interessado deu ao requisito; ○ Gerente, patrocinador, Especialista externo e três clientes;

k = 2 releases;

Quatro tipos de recursos: ○

Desenvolvimento, garantia de qualidade, designer de interface e designer do sistema; Restrições ○

Precedência (WP) = { f(2) wp f(3), f(9) wp f(20), f(13) wp f(12)}

Recursos

Restrições leves ○

Balanceamento de risco e recursos;

Interação entre requisitos (+/-).


Dados & Configurações do Estudo de Caso iteration q = 1 α[q] = 95%, β[q] = 15%, size[q] = 5

AUTO RISCO ○

Caching mechanism f (33), Explanation component f (50), Fine tuning optimization algorithms f (1) Migrating computation component from Java to C++ f (24)

INTERAÇÃO POSITIVA ○

Explanation component f (50), Documentation f (26), Extending reporting component f (23)


Dados & Configurações do Estudo de Caso iteration q = 2 α[q] = 95%, β[q] = 17%, size[q] = 5

Atribuição de novas restrições

x [f (33)] = x[f (24)] = 2 | Variáveis de decisão

x [f (23)] = x[f (26)] = x [f (50)] | Acoplamento

Em termos de Utility function x1,...,x5 em q = 2 foi 99.4, 99.2, 99, 98.8, 98.8% respectivamente


ELECTRE IS no Estudo de Caso

Evaluation matrix from applying ELECTR IS

Definição de um valor para cada cretério em todas as soluções;

Definição de um peso para cada creitério j (denotado por wc(j));


ELECTRE IS no Estudo de Caso

Relação Fuzzy: R(a, b) = ∑ j ∈ C(a,b) wc( j ) / ∑ j wc( j )

Outranking relation R com γ = 0.55

Limiar γ: Rγ (a, b) = 1 ⇔ R(a,b) ≥ 1

γ = 0.65


Conclus達o e trabalhos futuros


Conclusões ●

É fundamental empregar ferramentas de suporta a decisão quando o ser humano precisa decidir num ambiente complexo, incerto eu mutável;

Limitações humanas caracterizadas por restrições cognitivas, compreensão de modelos, dificuldade em lidar com grandes quantidades de informação e conhecimento e frustração devido teorias complicadas;

Além do Planejamento de Release, o método EVOLVE+ pode ser utilizado para resolução de outros problemas de decisão incertos;

Não é uma bala de prata;

Se o limiar utilizado no ELECTRE IS for muito elevado as conclusões podem ser fracas e inutilizáveis, se muito baixo, as conclusões são mais fortes, porem com menor confiança;

A interação do usuário humano com o método, aliado aos esforços computacionais ajudam na definição do problema correto.


Trabalhos futuros

● Mais estudos para definir a melhor sequência dos parâmetros para geração de soluções qualificadas; ● Implementar no Release Planner abordagem que trata as prefências;

a

parte

da


Thanks!

Optimization in Software Engineering Group www.goes.uece.br


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.