Simulação de Projetos Simulação de Projetos Conceitos e Aplicações Thierry Araujo...

Post on 07-Apr-2016

217 views 2 download

Transcript of Simulação de Projetos Simulação de Projetos Conceitos e Aplicações Thierry Araujo...

Simulação de Simulação de ProjetosProjetos

Conceitos e Aplicações

Thierry Araujo tsa@cin.ufpe.br

Verlaynne Rocha verlaynne@gmail.com

Roteiro Conceitos

◦ Motivação◦ Simulação◦ Modelagem de sistemas

Modelos Mentais e Explícitos Modelos Informais e Formais Modelos Estáticos e Dinâmicos Modelos Discretos e Contínuos

◦ Modelagem de processos de software Eventos Discretos Simulação Baseada em Regras Modelos Baseados em Diagramas de Estados Modelos Baseados na Dinâmica de sistemas

• Aplicações– Vensim– Crystal Ball– Jogos

• SIMSE• Incredible Manager• Virtual Team

ConceitosConceitos

MotivaçãoA indústria de software está cada vez

mais interessada em diminuir os custos de produção e aumentar a qualidade dos seus produtos[Gue06].

Variáveis de Interesse conflitantes [Ins04]

MotivaçãoNa tentativa de suprir essa

necessidade vem surgindo novos modelos de desenvolvimento.

No entanto, para testar a eficiência dos modelos ou processos é necessário o amadurecimento desses na organização.

Vale a pena correr o risco?

Motivação

50% dos projetos de software custam o dobro do orçamento que foi estimado. [price waterhouse coopers 2004]

MotivaçãoSimuladores podem ajudar nesse

processo pois permitem a aplicação e teste de um processo em ambiente virtual onde os recursos envolvidos não são reais e o tempo de simulação, comparado ao tempo real, é curto.

MotivaçãoAlguns propósitos para os quais a

simulação pode ser utilizada na área de gerência de projetos [KMR99]:◦Planejamento◦Gerenciamento e controle operacional◦Melhoria de processo e inovação

tecnológica◦Entendimento de um processo◦Treinamento e aprendizado

SimulaçãoA simulação é um processo que reproduz o

comportamento de um sistema [Gue06].Uso de simuladores teve início na década

de 50.Inspirados em Jogos de Guerra que eram

utilizados na formação de oficiais das forças armadas [War07].

São bastante úteis em situações em que testar do ambiente real pode ser inviável, caro ou perigoso.

Por que simular?

Equipamento para simulação de cirurgia endoscópica desenvolvido na Alemanha em parceria com a Universidade de Karlsruhe (VEST - Virtual Endoscopic Surgery Training).

Por que simular?

Simuladores de Voo

Por que simular?

Teste com carros

Modelagem de SistemasUm sistema representa uma parte da

realidade, sendo formado por componentes que interagem entre si para realizar tarefas que não podem ser realizadas isoladamente [Bar01].

Podem ser classificados como abertos e fechados e se diferenciam, pois o primeiro possui ciclos de realimentação (feedback).

Modelagem de SistemasTodo modelo é, por sua vez, a

representação simplificada de um sistema. Seja ele um sistema ecológico, social, uma empresa, ou mesmo, um projeto de software [GUE06].

São utilizados para analisar o sistema, sem que seja necessário realizar as atividades na prática.

Classificação de ModelosMentais Explícitos

InformaisFormais

Estáticos Dinâmicos

Discretos Contínuos

Modelos MentaisRepresentam a percepção que o indivíduo forma a

respeito das interações entre os componentes de um sistema e do comportamento resultante dessas interações.

São flexíveis, podendo ser adaptados através de simplificação ou expansão.

São modelos restritos devido a incapacidade humana de lidar com um grande número de fatores distintos [Bar01].

Tratam-se portanto de modelos simples, que consideram poucos componentes e relações entre eles. Residem no conhecimento tácito de cada indivíduo, sendo difícil de compartilhar e validar.

Modelos ExplícitosSão representações dos modelos reais

em uma linguagem capaz de ser compartilhada com outros indivíduos.

Possuem um conjunto de símbolos e semânticas, e são úteis para representação, validação e difusão do conhecimento.

Podem ser classificados em Formais e Informais.

Modelos Mentais XModelos Explícitos Segundo Sterman e Forrester, os

modelos explícitos são limitados a influenciar os modelos mentais, visto que nenhuma decisão é tomada a partir deles, mas a partir dos modelos mentais [Gue06].

Modelos InformaisPossuem uma semântica pouco

esquematizada, com possíveis ambigüidades, sendo portanto pouco utilizados em simulação por computador.

No entanto, podem ser entendidos e executados por pessoas que entendam sua semântica dentro de uma organização.

Modelos informais têm sido utilizados para formalizar processos produtivos, em especial a Engenharia e Software[Gue06]

Modelos InformaisModelagem de processos de software

normalmente possuem uma linguagem gráfica. Vários tipos de diagrama foram utilizados com esse fim ao longo do tempo, por exemplo o DFD – Diagrama de Fluxo de Dados e UML .

UML tem sido utilizada tanto para modelar as várias formas de observar um sistema de software, quanto para modelagem de processos, através de mecanismos de extensão (profiles).

Modelos FormaisSão modelos que são capazes de

serem executados computacionalmente.

Possuem semântica não ambígua, podendo ser transformados em definições matemáticas passíveis de simulação.

Podem ser classificados como estáticos e dinâmicos

Modelos Estáticos XModelos DinâmicosModelos Estáticos

◦São os modelos formais nos quais as variáveis não sofrem alterações ao longo do tempo.

Modelos Dinâmicos◦Podem sofrer alterações em suas variáveis à

medida que a simulação ocorre.◦Dividem-se em discretos e contínuos de

acordo com a forma em que as mudanças de estado ocorrem.

Modelos DiscretosModelos ContínuosModelos Discretos

◦O intervalo de tempo entre as ocorrências de mudança de estado não é previamente definido.

Modelos Contínuos◦As mudanças de estado ocorrem em um

intervalo de tempo constante.

Simulação ComputacionalA simulação computacional é um processo que

reproduz o comportamento de um sistema através de operações numéricas realizadas por computador [Mar97].

A simulação pode ser utilizada para verificação do modelo, especialmente quanto o efeito das interações entre os componentes e o sistema como um todo, apresentam-se separadas no tempo e no espaço [Bar01].

As técnicas de simulação podem ser classificadas em:◦ Simulação discreta◦ Simulação Contínua

Simulação DiscretaO simulador possui uma fila de eventos ordenada

pelo tempo para a ocorrência do evento.Em cada iteração do processo de simulação, é

tratado o primeiro evento da fila, adiantando um relógio interno até o próximo instante de ocorrência de cada evento. As variáveis do modelo são atualizadas de acordo com o evento.

O tratamento de um evento pode gerar novos eventos que vão para o final da fila.

A simulação acaba de acordo com um tempo pré-determinado ou quando não há mais eventos a serem tratados.

Simulação DiscretaUm exemplo de interpretação desses

eventos poderia ser uma lista de atividades para execução de um determinado projeto.

Sistemas baseados em regras são um caso particular de simulação discreta.

Simulação ContínuaOcorrem em intervalos de tempo

infinitesimais, constantes e previamente determinados.

As variáveis são alteradas a cada iteração da simulação.

A simulação termina após o fim do número de iterações previstos para a simulação [Bar01].

Dinâmica de SistemasÉ uma disciplina criada na década de 50 por

Forrester [For61], no MIT.Apresenta um conjunto de ferramentas que

nos permite entender a estrutura e a dinâmica de um sistema de dinâmica complexa [Ste00].

Sistema de dinâmica complexa é um sistema com componentes ou atividades inter-relacionadas, cujas relações não são lineares, e possuem relação causa-efeito distantes do tempo, além de possuírem realimentações.

Dinâmica de SistemasEssa técnica pode ser aplicada para

entender e influenciar o comportamento de um sistema ao longo do tempo.

Forrester criou essa técnica após observar que as dificuldades enfrentadas pelos gerentes seriam advindas não do lado da engenharia, mas do lado do gerenciamento, dado que os sistemas sociais são muito mais árduos de se entender que os sistemas físicos [Gue06].

Dinâmica de SistemasA dinâmica de sistemas disponibiliza

dois tipos de diagramas: Diagramas de Causa e Efeito e Diagramas de Repositório e Fluxo.

Diagramas de Causa e EfeitoApresentam os diversos

componentes de um sistema e os efeitos que a acumulação ou redução no volume de um componente provoca sobre os demais componentes do sistema[Bar01].

São o mecanismo mais simples para representação de modelos de dinâmica de sistemas[Bar01].

Diagramas de Causa e Efeito

Um diagrama de causas e efeitos

Diagramas de Causa e Efeito

Feadback positivo no desenvolvimento de software [Bar01]

Feadback negativo no desenvolvimento de software [Bar01]

Diagramas de Causa e EfeitoDevido a sua simplicidade diagramas

de causa e efeito são normalmente utilizados para explicar o conhecimento extraído do modelo, mas não servem para serem utilizados para análise de regras e simulações [Alb97].

Diagramas Repositório e FluxoOs diagramas de repositórios e fluxos

apresentam um nível de detalhe maior que os diagramas de causa e efeito, forçando o responsável pela modelagem a refinar sua definição da estrutura do sistema [Alb,97].

Estes diagramas são compostos por quatro blocos básicos – repositórios, fluxos, processos e conectores – e dois elementos complementares – os produtores e os consumidores infinitos.

Diagramas Repositório e Fluxo

Blocos básicos dos modelos de dinâmica de sistemas

Exemplo de diagrama de repositórios e fluxos

Modelagem de Processos de SoftwareModelos de Eventos discretosModelos Baseados em Diagramas de

EstadoModelos Baseados em Dinâmica de

Sistemas

Modelagem de Processos de SoftwareModelos de Eventos discretos

Exemplos de eventos relevantes em um projeto de desenvolvimento de software: o início da execução de uma tarefa, a conclusão de uma tarefa, a contratação de um desenvolvedor, a chegada de um recurso, etc.

Cada evento relevante para um modelo contém um procedimento associado que indica as alterações realizadas sobre os valores das variáveis do modelo e as características de novos eventos gerados em decorrência destas alterações.

Modelagem de Processos de SoftwareModelos Baseados em Diagramas de EstadoUm diagrama de estados é uma ferramenta de

modelagem que apresenta os diversos estados em que um conjunto de entidades pode se encontrar ao longo de sua existência, e as possíveis transições entre estes estados.

As transições entre estados são disparadas por eventos, cuja ocorrência é determinada por condições de guarda. Uma condição de guarda é uma expressão lógica geralmente dependente do estado do sistema e avaliada periodicamente durante uma simulação.

Modelagem de Processos de SoftwareModelos Baseados em Diagramas de Estado Os diagramas de estado podem ser decompostos

hierarquicamente.

Os estados dos componentes são representados por diagramas de estados independentes. O conjunto destes diagramas forma o diagrama de estados do sistema.

Os diagramas de estado também permitem a descrição de ciclos de realimentação através de ciclos de transição.

Modelagem de Processos de Software Modelos Baseados em Dinâmica de Sistemas

Os modelos produzidos através das técnicas da Dinâmica de Sistemas permitem a descrição de características que não são facilmente expressas em outros modelos. Estas características e sua aplicação na modelagem de processos de desenvolvimento de software são discutidas a seguir.

Comportamento Endógeno IntegraçãoSistemas FechadosCausas e Conseqüências Distantes no TempoMapeamento de Modelos Mentais

AplicaçõesAplicações

VensimVensimDois tipos de diagramas

◦Causa e efeito◦Estoque e fluxo

Resultados visualizados em gráficos e planilhas

Mais de uma visão

VensimVensim

VensimVensim

Menu Principal

Barra de Ferramentas

Simular o Modelo

VensimVensim

Variável Auxiliar -

ConstanteVariável Nível

- Stock

Relacionamento entre variáveis

Rate – valores somados ou subtraídos

Equations – Editor de equações

Gráficos – variáveis afetantes Gráfico –

variável selecionada

Quadros – valores das variáveis

VensimVensim

SaldoEntrada Retirada

Taxa de juros Taxa de JurosMaior

<Time>

Entrada-RetiradaValor Inicial=1000

Constante=100

IF THEN ELSE( Time<7 , Saldo*Taxa de juros,

Saldo*Taxa de Juros Maior)

Constante=0.20Constante=0.15

VensimVensimVariável Saldo

VensimVensimVariável Entrada

VensimVensimModelo – Desenvolvimento de tarefas

Crystal BallCrystal BallSimulação de Monte CarloCalcula vários casos diferentesGuarda as entradas e resultados de

cada cálculo em cenários individuaisAnálise dos cenários

◦Probabilidade de ocorrer◦Que entradas são mais relevantes (têm

mais efeito) no modelo

Crystal BallCrystal Ball

Crystal BallCrystal Ball

AplicaçõesAplicaçõesJogos de simulação

Jogos - SIMSEJogos - SIMSESimulador de projetos de softwareObjetivo

◦Criar um sistema na WEB para Groceries@Home [Emi]

Papel do usuário◦Gerenciar o projeto dispondo de

$280,000 e 1350 ciclos [Emi]

Jogos - SIMSEJogos - SIMSETarefas do usuário:

◦Alocar os funcionários◦Demitir os funcionários◦Criar artefatos◦Monitorar o progresso das tarefas◦Comprar ferramentas

Jogos - SIMSEJogos - SIMSE

Jogos - SIMSEJogos - SIMSESimSE deve:

◦Ilustrar lições específicas e práticas dos processos de software

◦Apoiar o instrutor em especificar as lições que ele deseja ensinar

◦Fornecer ao estudante feedback claro em relação às suas decisões

◦Ser fácil de aprender, agradável e comparativamente rápido

Jogos - SIMSEJogos - SIMSEO código do modelo a ser simulado

não foi implementado◦Gerado a partir de um construtor de

modelosPermite a criação de versões

distintas com processos diferentes:◦Walterfall◦eXtreme Programming◦Incremental

Jogos - SIMSEJogos - SIMSEPossui 3 principais componentes:

◦Modelo de simulação ◦Interface gráfica com usuário (GUI) ◦Engine de simulação

Arquitetura do SIMSE [Emi].

Jogos – The Incredible Jogos – The Incredible ManagerManager

Objetivos◦Jogador assume o papel de um gerente

de projetos de software de uma companhia e tem um novo projeto para executar [GUE06]

◦O projeto é o desenvolvimento de um sistema acadêmico para uma grande universidade [GUE06]

Jogos – The Incredible Jogos – The Incredible ManagerManager

Atividades do gerente [GUE06] :◦Criar um time a partir de

desenvolvedores possíveis◦Estimar duração de tarefas◦Atribuir tarefas apropriadas a cada tipo

de desenvolvedor◦Negociar o plano de projetos com os

stakeholders◦Controlar o projeto

Jogos – The Incredible Jogos – The Incredible ManagerManager

Descrição do projeto e demandas de tempo, qualidade e custo

Jogos – The Incredible Jogos – The Incredible ManagerManager

Estimativas acumuladas para o plano do projeto

Visualizar tarefas

Selecionar ou demitir desenvolvedores

Edição de horas de trabalho

Jogos – The Incredible Jogos – The Incredible ManagerManager

Feedback das tarefas

desenvolvedor

Tempo e orçamento restantes

Detalhes de atividades e tarefas

Pause, configuraçãoe planejamento

Jogos – The Incredible Jogos – The Incredible ManagerManager

Sucesso de projeto◦Executar o projeto dentro das estimativas

feitas no planejamentoCancelamento do projeto

◦Não completar as tarefas do projeto e ultrapassar o limite dos recursos (tempo e custo)

Jogos – Virtual TeamJogos – Virtual TeamProduto do projeto Smartsim

◦Framework para o desenvolvimento de jogos sérios baseados em máquinas de simulação e utilização de atores sintéticos [Smart06]

Idealizado para treinamento de gerentes de projeto [Smart06]

Com ênfase no gerenciamento de projeto de software e gestão de pessoas [Smart06]

Jogos – Virtual TeamJogos – Virtual Team

Jogos – Virtual TeamJogos – Virtual TeamO Jogador:

◦Assume o papel do gerente de projetos◦Monta a equipe◦Atribui tarefas◦Avalia eficiência, satisfação e vitalidade

dos atores◦Trocar componentes da equipe◦Dar gratificação e feedback sobre o

trabalho realizado◦Avalia satisfação do cliente e da equipe

Jogos – Virtual TeamJogos – Virtual TeamEscolha da Equipe

◦Sete opções de capital humano Custo Perfil Habilidades relativas a codificação, análise e

arquitetura de software

Jogos – Virtual TeamJogos – Virtual TeamEscolha da Equipe

Jogos – Virtual TeamJogos – Virtual TeamAmbiente de escritórioCinco atores por projetoControle de cronogramaMonitoramento de atividades

Jogos – Virtual TeamJogos – Virtual Team

Jogos – Virtual TeamJogos – Virtual TeamIntegração com o Project [Ara06]

◦ Add-in para o Microsoft Project 2003◦ Possibilitando a captação de dados reais

para simulação◦ Funciona como um wizard

Jogos – Virtual TeamJogos – Virtual TeamIntegração com o Project [Ara06]

Referências Eletrônicas e Referências Eletrônicas e BibliográficasBibliográficas [GUE06] GUEDES, MARCELO SANTIAGO. Um Modelo Integrado para

Construção de Jogos de Computador Aplicada à Capacitação em Gestão de Projetos. Dissertação de mestrado, CIn – UFPE, Recife, 2006.

[Ara06] Araujo, Thierry da S. Um Plug-in que Integra um Simulador de Projetos a uma Ferramenta de Gerenciamento de Projetos. 2006, Trabalho de Graduação, UFPE, Recife.

[Smart06] Projeto Smartsim. Disponível em http://www.cin.ufpe.br/~smartsim [acessado em 06/10/2007]

[Bar01] M. Barros. Gerenciamento de Projetos Baseados em Cen´arios. PhD thesis, UFRJ, December 2001.

[Ins04] Project Management Institute, editor. A guide to the Project Management body of knowledge: PMBOK Guide. Project mamagement Institute, Inc, third edition, 2004.

[KMR99] M.I. Kellner, R.J. Madachy, and D.M Raffo. Software process simulation: Why? what? how? Journal of Systems and Software, 46(2/3), 1999.

[Mar97] L. A. Martin. The first step. Technical report, MIT System Dynamics Group, Cambridge, MA, December 1997.

[Ste00] J. Sterman. Business Dynamics: System Thinking and Modeling for a Complex World. McGraw-Hill Higher Education, 2000.

Referências Eletrônicas e Referências Eletrônicas e BibliográficasBibliográficas◦ [Alb97] S., 1997, Building an System Dynamics Model Part 1:

Conceptualization, IN: Relatório Técnico D-4597, MIT System Dynamics Group, Cambridge, MA [Emi] Emily Oh Navarro e André van der Hoek. SimSE: an

Interactive Simulation Game for Software Engineering Education. Disponível em http://www.ics.uci.edu/~emilyo/papers/CATE2004.pdf [acessado em 04/10/2007].

[War07] WarGaming. Disponível em http://en.wikipedia.org/wiki/War_games [Acessado em 10/09/2007].

[Mcar07] Wikipedia. Método de Monte Carlo. Disponível em http://pt.wikipedia.org/wiki/M%C3%A9todo_de_Monte_Carlo [acessado em 05/10/2007].

[Ven07] Tutorial do Vensim. Disponível em http://www.vensim.com [acessado em 04/10/2007].

??Thierry Araujo tsa@cin.ufpe.br

Verlaynne Rocha verlaynne@gmail.com

DÚVIDAS

Simulação de Simulação de ProjetosProjetos

Conceitos e Aplicações

Thierry Araujo tsa@cin.ufpe.br

Verlaynne Rocha verlaynne@gmail.com