Simulação de Projetos Simulação de Projetos Conceitos e Aplicações Thierry Araujo...
-
Upload
ana-julia-brezinski-galindo -
Category
Documents
-
view
217 -
download
2
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 [email protected]
Verlaynne Rocha [email protected]
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].
Simulação de Simulação de ProjetosProjetos
Conceitos e Aplicações
Thierry Araujo [email protected]
Verlaynne Rocha [email protected]