Simulação de Projetos
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
Conceitos
Motivação

A 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ção
Na 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ção

Simuladores 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ção

Alguns 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ção
A 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 Sistemas
Um 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 Sistemas
Todo 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 Modelos
Mentais
Explícitos
Formais
Estáticos
Informais
Dinâmicos
Discretos
Contínuos
Modelos Mentais




Representam 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ícitos
Sã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 X
Modelos 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 Informais
Possuem 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 Informais
Modelagem 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 Formais
Sã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 X
Modelos Dinâmicos

Modelos 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 Discretos
Modelos Contínuos

Modelos 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 Computacional



A 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 Discreta




O 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 Discreta
Um 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ínua
Ocorrem 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 causaefeito distantes do tempo, além de possuírem
realimentações.

Dinâmica de Sistemas
Essa 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 Sistemas

A 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 Efeito
Apresentam 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 Efeito

Devido 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 Fluxo


Os 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
Exemplo de diagrama de repositórios e fluxos
Blocos básicos dos modelos de dinâmica de sistemas
Modelagem de Processos de Software
Modelos de Eventos discretos
 Modelos Baseados em Diagramas de Estado
 Modelos Baseados em Dinâmica de Sistemas

Modelagem de Processos de Software
Modelos 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 Software
Modelos Baseados em Diagramas de Estado

Um 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 Software
Modelos 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ção
 Sistemas Fechados
 Causas e Conseqüências Distantes no Tempo
 Mapeamento de Modelos Mentais

Aplicações
Vensim

Dois tipos de diagramas
◦ Causa e efeito
◦ Estoque e fluxo
Resultados visualizados em gráficos e planilhas
 Mais de uma visão

Vensim
Vensim
Menu Principal
Barra de
Ferramentas
Simular o
Modelo
Vensim
Rate – valores
somados ou
subtraídos
Equations –
Editor de
equações
Relacionamento
entre variáveis
Variável Auxiliar
- Constante
Variável Nível Stock
Gráficos –
variáveis
afetantes
Gráfico –
variável
selecionada
Quadros –
valores das
variáveis
Vensim
IF THEN ELSE( Time<7 ,
Saldo*Taxa de juros, Saldo*Taxa de
Juros Maior)
Entrada-Retirada
Valor Inicial=1000
<Time>
Saldo
Entrada
Taxa de juros
Constante=0.15
Retirada
Taxa de Juros
Maior
Constante=100
Constante=0.20
Vensim

Variável Saldo
Vensim

Variável Entrada
Vensim

Modelo – Desenvolvimento de tarefas
Crystal Ball
Simulação de Monte Carlo
 Calcula vários casos diferentes
 Guarda as entradas e resultados de cada
cálculo em cenários individuais
 Análise dos cenários

◦ Probabilidade de ocorrer
◦ Que entradas são mais relevantes (têm mais efeito)
no modelo
Crystal Ball
Crystal Ball
Aplicações
Jogos de simulação
Jogos - SIMSE
Simulador de projetos de software
 Objetivo

◦ 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 - SIMSE

Tarefas do usuário:
◦
◦
◦
◦
◦
Alocar os funcionários
Demitir os funcionários
Criar artefatos
Monitorar o progresso das tarefas
Comprar ferramentas
Jogos - SIMSE
Jogos - SIMSE

SimSE 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 - SIMSE

O código do modelo a ser simulado não foi
implementado
◦ Gerado a partir de um construtor de modelos

Permite a criação de versões distintas com
processos diferentes:
◦ Walterfall
◦ eXtreme Programming
◦ Incremental
Jogos - SIMSE

Possui 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 Manager

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 Manager

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 Manager

Descrição do projeto e demandas de tempo,
qualidade e custo
Jogos – The Incredible Manager
Visualizar tarefas
Estimativas
acumuladas para
o plano do
projeto
Edição de
horas de trabalho
Selecionar ou demitir
desenvolvedores
Jogos – The Incredible Manager
Feedback das tarefas
desenvolvedor
Tempo e orçamento
restantes
Pause, configuração
e planejamento
Detalhes de
atividades e
tarefas
Jogos – The Incredible Manager

Sucesso de projeto
◦ Executar o projeto dentro das estimativas feitas no
planejamento

Cancelamento do projeto
◦ Não completar as tarefas do projeto e ultrapassar o
limite dos recursos (tempo e custo)
Jogos – Virtual Team

Produto 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 Team
Jogos – Virtual Team

O 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 Team

Escolha da Equipe
◦ Sete opções de capital humano
 Custo
 Perfil
 Habilidades relativas a codificação, análise e arquitetura de
software
Jogos – Virtual Team

Escolha da Equipe
Jogos – Virtual Team
Ambiente de escritório
 Cinco atores por projeto
 Controle de cronograma
 Monitoramento de atividades

Jogos – Virtual Team
Jogos – Virtual Team

Integraçã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 Team

Integração com o Project [Ara06]
Referências Eletrônicas e Bibliográ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 Bibliográ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].

DÚVIDAS
?
Thierry Araujo
[email protected]
Verlaynne Rocha
[email protected]
Simulação de Projetos
Conceitos e Aplicações
Thierry Araujo
[email protected]
Verlaynne Rocha
[email protected]
Download

simulacaoVerlaynneThierry