A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Simulação de Projetos Conceitos e Aplicações

Apresentações semelhantes


Apresentação em tema: "Simulação de Projetos Conceitos e Aplicações"— Transcrição da apresentação:

1 Simulação de Projetos Conceitos e Aplicações
Thierry Araujo Verlaynne Rocha

2 Roteiro Conceitos Aplicações 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

3 Conceitos

4 Variáveis de Interesse conflitantes [Ins04]
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]

5 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? Hoje em dia existem diversos modelos e processos que tentam resolver a contradição entre: tempo, escopo, custo e qualidade. Para que um processo seja aplicado é necessário treinar pessoas, difundir o processo, e aplicá-lo a alguns projetos. Só então é possível a partir das métricas colhidas analisar os ganhos obtidos e analisar as oportunidades de melhoria. Isso é caro e demorado!!!

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

7 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.

8 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

9 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.

10 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).

11 Por que simular? Simuladores de Voo

12 Por que simular? Teste com carros

13 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). Pode-se entender uma empresa como um sistema , dado que atua para alcançar um objetivo, em geral lucros maiores, que pode ser a curto ou longo prazo. Seus recursos, como os funcionários, são elementos do sistema e estes mantêm inter-relações com os subsistemas. O modelo desse sistema-empresa o representaria de forma mais simples, separando um determinado conjunto componentes que se quer analisar.

14 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.

15 Classificação de Modelos
Mentais Explícitos Formais Informais Estáticos Dinâmicos Discretos Contínuos

16 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.

17 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. A representação de um modelo permite a explicitação de suas premissas e a transposição da barreira da complexidade imposta aos modelos mentais, ajudando ainda a organizar a estrutura das informações do sistema, facilitando assim o seu entendimento. A validação do modelo é importante na medida em que os resultados reais obtidos da simulação de sua execução podem diferir dos resultados esperados por suas premissas, especialmente em sistemas complexos essa divergência pode acontecer. A difusão do conhecimento é possível pois o conhecimento esta representado em locais acessíveis ao grupo, numa semântica inteligível. Os modelos mentais por encontrarem-se armazenados no indivıduo, compõem a sua experiência individual, que não pode ser comunicada. Outra característica interessante de modelos explícitos, é que por poder capturar conhecimento de sistemas reais, eles podem aproveitar o mesmo para aplicá-los a situações hipotéticas, avaliando assim quais seriam os resultados reais naquele novo cenário. [Gue06]

18 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].

19 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]

20 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).

21 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

22 Modelos Estáticos X Modelos Dinâmicos
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.

23 Modelos Discretos Modelos Contínuos
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.

24 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

25 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.

26 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.

27 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].

28 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.

29 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].

30 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.

31 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].

32 Diagramas de Causa e Efeito
Um diagrama de causas e efeitos

33 Diagramas de Causa e Efeito
Feadback positivo no desenvolvimento de software [Bar01] Feadback negativo no desenvolvimento de software [Bar01]

34 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].

35 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.

36 Diagramas Repositório e Fluxo
Exemplo de diagrama de repositórios e fluxos Blocos básicos dos modelos de dinâmica de sistemas

37 Modelagem de Processos de Software
Modelos de Eventos discretos Modelos Baseados em Diagramas de Estado Modelos Baseados em Dinâmica de Sistemas

38 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.

39 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.

40 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.

41 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

42 Aplicações

43 Vensim Dois tipos de diagramas
Causa e efeito Estoque e fluxo Resultados visualizados em gráficos e planilhas Mais de uma visão

44 Vensim

45 Vensim Menu Principal Barra de Ferramentas Simular o Modelo

46 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

47 Vensim IF THEN ELSE( Time<7 , Saldo*Taxa de juros, Saldo*Taxa de Juros Maior) Entrada-Retirada Valor Inicial=1000 Constante=100 Constante=0.15 Constante=0.20

48 Vensim Variável Saldo

49 Vensim Variável Entrada

50 Vensim Modelo – Desenvolvimento de tarefas

51 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

52 Crystal Ball

53 Crystal Ball

54 Aplicações Jogos de simulação

55 Jogos - SIMSE Simulador de projetos de software Objetivo
Criar um sistema na WEB para [Emi] Papel do usuário Gerenciar o projeto dispondo de $280,000 e ciclos [Emi]

56 Jogos - SIMSE Tarefas do usuário: Alocar os funcionários
Demitir os funcionários Criar artefatos Monitorar o progresso das tarefas Comprar ferramentas

57 Jogos - SIMSE

58 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

59 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

60 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].

61 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]

62 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

63 Jogos – The Incredible Manager
Descrição do projeto e demandas de tempo, qualidade e custo

64 Jogos – The Incredible Manager
Visualizar tarefas Estimativas acumuladas para o plano do projeto Edição de horas de trabalho Selecionar ou demitir desenvolvedores

65 Jogos – The Incredible Manager
Feedback das tarefas desenvolvedor Tempo e orçamento restantes Pause, configuração e planejamento Detalhes de atividades e tarefas

66 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)

67 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]

68 Jogos – Virtual Team

69 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

70 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

71 Jogos – Virtual Team Escolha da Equipe

72 Jogos – Virtual Team Ambiente de escritório Cinco atores por projeto
Controle de cronograma Monitoramento de atividades

73 Jogos – Virtual Team

74

75 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

76 Jogos – Virtual Team Integração com o Project [Ara06]

77 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 [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.

78 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 [acessado em 04/10/2007]. [War07] WarGaming. Disponível em [Acessado em 10/09/2007]. [Mcar07] Wikipedia. Método de Monte Carlo. Disponível em [acessado em 05/10/2007]. [Ven07] Tutorial do Vensim. Disponível em [acessado em 04/10/2007].

79 ? DÚVIDAS Thierry Araujo tsa@cin.ufpe.br Verlaynne Rocha

80 Simulação de Projetos Conceitos e Aplicações
Thierry Araujo Verlaynne Rocha


Carregar ppt "Simulação de Projetos Conceitos e Aplicações"

Apresentações semelhantes


Anúncios Google