• Nenhum resultado encontrado

4.2 Pesquisa-A¸c˜ao

4.2.3 Caso III Desligamento Demiss˜ao e Aposentadoria

Processos Originais

Nesta se¸c˜ao temos os dois processos originais do dom´ınio de RH ( 4.14 e Figuras 4.15) que descreve os passos para um servidor ou empregado se aposentar ou ser demitido.

Figura 4.14: Processo Original - Demiss˜ao

Figura 4.15: Processo Original - Aposentadoria - Com Ponto de Variabilidade Destacado

BusinessProcessModel - Processos Comuns e Variantes

Para esse par de processos, o processo Demiss˜ao, ilustrado na Figura 4.14, desempenha o papel do processo comum, visto que o processo Aposentadoria (Figura 4.15) possui os mesmos elementos (e o mesmo fluxo) do processo Demiss˜ao mais a variablidade destacada no processo Aposentadoria, atividade “Analisar requisitos legais do processo”. Portanto, para representar essa variabilidade, a modelamos como processo do tipo advice, con- forme apresentado na Figura 4.16. Os tipos alg´ebricos do processo-base (Demiss˜ao) e do processo-advice (Adv-Aposentadoria) est˜ao em Apˆendice, na Se¸c˜ao C.3.

Configuration Knowledge

Na Figura 4.17, mostramos o CK original e, na Figura 4.18, o CK corrigido.

Configura¸c˜ao do Produto

Na Figura 4.19, resumimos as configura¸c˜oes poss´ıveis e os resultados deste caso baseado no CK original. Nessa figura inserimos um novo s´ımbolo, o “+”, que representa a execu¸c˜ao da transforma¸c˜ao evaluateAdvice(explicada no Cap´ıtulo 3, Se¸c˜ao 3.2.2). Essa fun¸c˜ao resolve a variabilidade destacada no processo Aposentadoria (Figura 4.15) e representada no processo-advice Aposentadoria(Figura 4.16). Essa transforma¸c˜ao faz a composi¸c˜ao do processo-base (processo Demiss˜ao) com o processo-advice gerando ao final um produto que tenha o processo Aposentadoria com sua variabilidade resolvida.

Neste caso tamb´em foi encontrado um problema quando as duas features eram es- colhidas no PC, conforme o “X” ilustrado na Figura 4.19 para a terceira configura¸c˜ao. Mas, para descrever esse problema detalhadamente, apresentaremos nesta se¸c˜ao o pro- duto final, de forma ilustrativa, quando as duas features Demissao e Aposentadoria forem

Figura 4.17: Caso III - Desligamento - CK Original - Problema da Ordem das Linhas

Figura 4.18: Caso III - Desligamento - CK Corrigido - Problema Corrigido Alterando a Ordem das Linhas

Figura 4.19: Caso III - Desligamento - Configura¸c˜ao do Produto - Ilustra¸c˜ao de cada PC e seu respectivo resultado - Baseado no CK Original

Figura 4.20: Caso III - Desligamento - Problema - Itera¸c˜ao 0

selecionadas no PC e utilizando o CK original 4.17 como base. Utilizaremos as ilustra¸c˜oes das Figuras 4.20, 4.21, 4.22 e 4.23, apresentadas de forma iterativa. Todas essas imagens tem em comum dois lados, o esquerdo e o direito. O lado esquerdo representa a LPN (vari´avel spl utilizada nas transforma¸c˜oes). O lado direito representa o produto(vari´avel

product presente nas transforma¸c˜oes), em fase de refinamento ou em fase final. Conforme

conceitos sobre engenharia de dom´ınio (domain engineering) e engenharia de aplica¸c˜ao (application engineering) em Czarnecki e Eisenecker (2000), a LPN faz parte dos artefatos de nossa engenharia de dom´ınio o produto da engenharia da aplica¸c˜ao.

A Figura 4.20 representa o estado do produto antes da aplica¸c˜ao de qualquer transfor- ma¸c˜ao, neste caso, temos um produto sem qualquer processo de neg´ocio em sua lista de processos. Mas ´e importante esclarecer que poderiam existir processos dentro desse pro- duto caso outras features/transforma¸c˜oes tivessem sido escolhidas se considerarmos que estar´ıamos trabalhando com um PC mais amplo (com mais features selecionadas) que o ilustrado neste caso.

Seguindo ent˜ao a execu¸c˜ao das transforma¸c˜oes do CK original, Figura 4.17, a partir da primeira linha - feature Demissao, na Figura 4.21, vemos a aplica¸c˜ao da ´unica trans- forma¸c˜ao da feature Demissao. Essa transforma¸c˜ao, selectBusinessProcess “bpDemissao”

spl product, seleciona o processo de neg´ocio “bpDemissao” da LPN (lado esquerdo da fi-

gura) e o carrega na lista de processos do produto (lado direito). Como n˜ao h´a qualquer outra transforma¸c˜ao vinculada `a feature Demissao, isso indica que esse produto nessa fase cont´em o processo que reflete o processo Demiss˜ao em sua fase final.

Agora, a partir da segunda linha do CK original, Figura 4.17, na Figura 4.22, vemos a transforma¸c˜ao selectBusinessProcess “bpDemissao” spl Product sendo aplicada novamente j´a que ´e a primeira transforma¸c˜ao vinculada `a feature Aposentadoria. Essa opera¸c˜ao produz o mesmo resultado descrito na itera¸c˜ao anterior.

Figura 4.21: Caso III - Desligamento - Problema - Itera¸c˜ao 1

Figura 4.23: Caso III - Desligamento - Problema - Itera¸c˜ao 3

Em seguida, executando a segunda transforma¸c˜ao vinculada `a feature Aposentadoria, ainda na segunda linha do CK da Figura 4.17, podemos constatar o problema ilustrado na Figura 4.23. Vemos que, ao se aplicar a fun¸c˜ao evaluateAdvice “advAposentadoria” spl

product, como seu comportamento ´e realizar a composi¸c˜ao do processo-advice informado,

“advAposentadoria” - Figura 4.15, com todos os processos do produto, isso insere um erro no estado do produto final, visto que o primeiro processo do produto, processo Demiss˜ao, n˜ao deveria ser transformado (atividade inserida inadequadamente marcada com “X” nessa ´

ultima itera¸c˜ao).

Para solucionar esse problema, foi alterada a ordem das linhas do CK original, Fi- gura 4.17, surgindo ent˜ao o CK ajustado, Figura 4.18. Para ilustrarmos a corre¸c˜ao do problema, apresentamos, nas ilustra¸c˜oes das Figuras 4.24, 4.25 e 4.26, a execu¸c˜ao itera- tiva do CK ajustado, mostrando, por fim, na ´ultima itera¸c˜ao, itera¸c˜ao 3, Figura 4.26, que os processos do produto final refletem as features selecionadas no PC e s˜ao iguais aos processos originais, apresentados nas Figuras 4.14 e 4.15. Ressaltamos que a Figura 4.20 ´e comum a essas duas explica¸c˜oes iterativas - a que narra o problema e esta referente `a solu¸c˜ao.

Em Apˆendice, na Se¸c˜ao D.3.3, listamos os tipos alg´ebricos que refletem o produto final da Figura 4.23. Na Se¸c˜ao D.3.4, listamos os tipos alg´ebricos que refletem o produto final da Figura 4.26. Por fim, na Figura 4.27, resumimos as configura¸c˜oes poss´ıveis e os resultados deste caso baseado no CK corrigido. Os tipos alg´ebricos instanciados de cada produto final deste caso est˜ao em Apˆendice, na Se¸c˜ao D.3.

Figura 4.24: Caso III - Desligamento - Solu¸c˜ao - Itera¸c˜ao 1

Figura 4.26: Caso III - Desligamento - Problema - Itera¸c˜ao 3

Figura 4.27: Caso III - Desligamento - Configura¸c˜ao do Produto - Ilustra¸c˜ao de cada PC e seu respectivo resultado - Baseado no CK Corrigido

Figura 4.28: Processo Original - Elogio

Figura 4.29: Processo Original - Reclama¸c˜ao

An´alise do Resultado

O problema foi resolvido com o reordenamento das linhas do CK. Este tipo de problema ocorre quando um dos processos desempenha o papel de processo-base, neste caso, o processo Demiss˜ao, que deve ficar na ´ultima linha do CK.

Documentos relacionados