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