• Nenhum resultado encontrado

CAPÍTULO 3. A CONSTRUÇÃO DE MODELOS PARA SIMULAÇÃO DE

3.5. A Captura do Conhecimento a ser Incorporado nos Modelos

RAFFO (1999) elenca um conjunto de benefícios quando organizações de software de baixa maturidade empreendem em simulação de processos de software. O autor cita que, ao tentar construir os modelos de simulação, a organização reflete sobre o seu processo de desenvolvimento e começa a identificar a necessidade de incluir novas medidas.

Os modelos de simulação construídos pelos gerentes de projetos representam seus modelos mentais. Modelos mentais pobres, ou seja, incapazes de inferir sobre as possibilidades que o projeto poderá assumir, implicarão modelos de simulação pobres.

Os modelos de simulação disponíveis foram construídos para atender cenários específicos. Em geral, os relacionamentos entre as variáveis que compõem os modelos são oriundos da literatura, da base de medidas da organização, da opinião de especialistas no domínio ou da combinação destes. Contudo, a diversidade e a complexidade inerente às características sociotécnicas dos processos de desenvolvimento de software (LINDVALL e RUS, 2000) (DONZELLI, 2006), sugerem que os fatores que exercem influência em determinado contexto organizacional podem não ser representativos em outro cenário. Por exemplo, no estudo conduzido por MELO et al. (2011), a percepção de produtividade e dos fatores que a influenciam difere dos fatores identificados em (SCACCHI, 1989), (TRENDOWICZ et al., 2009) e (RODRÍGUEZ et al., 2011). Neste caso, uma das possíveis explicações para esta diferença pode estar no método de desenvolvimento, pois em (MELO et al., 2011) as organizações utilizam métodos ágeis.

Assim, considerando o conhecimento dos gerentes de projeto na construção do modelo de simulação, há chances de melhor representar os fatores que exercem influência nos projetos da própria organização. Esta ideia está alinhada com os resultados obtidos em (KITCHENHAM et al., 2007b), que observou que os modelos desenvolvidos pelas próprias organizações tendem a apresentar um resultado melhor do que aqueles construídos com dados de múltiplas organizações.

45

3.6. Considerações Finais

A simulação de processos de software tem sido aplicada a diversas classes de problema (ZHANG et al., 2008a), que vão desde o apoio ao planejamento de projetos (RAFFO e VANDEVILLE, 2006; KIRK e MACDONELL, 2009) à investigação da volatilidade de requisitos (PFAHL e LEBSANFT, 2000b). Contudo, observa-se que a disseminação da simulação de processos de software como instrumento de competitividade ainda não tem sido amplamente utilizado pela indústria.

Iniciativas têm sido desenvolvidas para facilitar o uso e a disseminação da simulação na indústria. RUIZ et al. (2001) desenvolveram um modelo de simulação reduzido a partir do trabalho de ABDEL-HAMID e MADNICK (1991), utilizando a simplificação de modelos proposta por EBERLEIN (1989). AHMED et al. (2005a; 2005b) propuseram um método de simulação iterativo e incremental para apoiar profissionais inexperientes em simulação. Com o objetivo de diminuir o custo da construção de modelos de simulação, RAFFO et al.(2005) construíram blocos genéricos que podem ser usados para, rapidamente, criar modelos de simulação de processos genéricos. DICKMANN et al. (2007) apresentam uma abordagem sistemática para desenvolver e configurar um modelo de simulação de processos que combina um mapeamento flexível de variáveis normalizadas e uma interface de configuração baseada em planilhas. KHOSROVIAN et al. (2008) propuseram uma estrutura baseada em macro padrões, adaptável para processos específicos das organizações, que propicia facilidade para calibração dos parâmetros com dados da própria organização.

Essas iniciativas apresentam aspectos comuns: (i) requerem a participação de profissionais especializados na construção dos modelos; (ii) dependem do conhecimento sobre o problema que se deseja simular e/ou na técnica de simulação a ser aplicada para replicar a proposta; e (iii) proveem estruturas (modelos) genéricas e adaptáveis para minimizar o esforço de construção dos modelos.

O estímulo à componentização e ao reuso no âmbito da simulação de processos de software vem sendo abordado por alguns autores. Acredita-se que a reutilização de componentes de modelos de simulação pode contribuir para a diminuição do esforço para construção de modelos. RAFFO et. al. (2005), propuseram o uso de blocos de construção para composição de modelos de simulação. Cada bloco de construção, denominado Generalized Simulation Process Simulation Model (GPSM), pode representar um elemento geral do

46

modelo (por exemplo, o pool de recursos), uma atividade do processo (ex.: desenvolvimento, inspeção) ou um modelo de processo de software como um todo. No GENSIM 2.0 (KHOSROVIAN et al., 2008), a ênfase dada pelos autores é em macropadrões customizáveis. Cada componente de simulação instanciado a partir do GENSIM representa um componente do modelo de processo que pode ser constituído por uma ou mais atividades. Um exemplo de aplicação desta proposta pode ser obtido em (BIRKHÖLZER et al., 2010b), que representa um ciclo genérico work-test-rework para simulação de processos de software. BIRKHOLZER et. al. (2010a) propuseram a adoção de uma biblioteca de componentes de simulação de processos de software reutilizáveis. A ideia é facilitar o intercâmbio entre componentes de simulação que possam ser combinados para compor diferentes modelos de simulação.

No entanto, para potencializar o reuso destes componentes de simulação, é necessário dotá-los da capacidade de representar acuradamente a execução de um componente de processo real. Além dos fatores e características inerentes aos processos de software que ditam o seu comportamento, há eventos que podem exercer uma grande influência durante a execução (DONZELLI, 2006). Não considerá-los pode implicar na perda de acurácia do modelo e, consequentemente, no baixo interesse pela reutilização.

Sob a perspectiva da Gerência Quantitativa, STODDARD-II e GOLDENSON (2010) apresentam vários modelos baseados em simulação que atendem a todos os critérios desejáveis para modelos de desempenho. Percebe-se que as iniciativas relatadas foram aplicadas em organizações de grande porte (NASA, por exemplo), com disponibilidade de recursos, com especialistas em simulação e no domínio de Engenharia de Software, além de contar com um conjunto significativo de projetos, de forma a facilitar a construção de modelos acurados. Este contexto é bem diferente da realidade das empresas brasileiras que ainda estão nos estágios iniciais de maturidade (TRAVASSOS e KALINOWSKI, 2012). Sendo assim, a ausência de conhecimento no domínio de Engenharia de Software e em simulação, a escassez de dados e a variabilidade do processo são obstáculos que precisam ser superados para viabilizar a adoção de simulação em empresas que ainda estão buscando maturidade em seus processos.

O capítulo seguinte apresenta o instrumento proposto nesta tese, que propõe a tratar estes obstáculos para possibilitar a avaliação do desempenho potencial de projetos de software em organizações que estão em estágios iniciais de maturidade.

47