Problems and Programmers



Documentos relacionados
DCC / ICEx / UFMG. O Jogo SimulES. Eduardo Figueiredo.

Motivação. O Uso de Jogos. Problems & Programmers (PnP) Visão Geral do PnP. Exemplo. Jogos para Simulação em Engenharia de Software

Objetivo do jogo 40 pontos todos os quadrados de um templo todos os quadrados amarelos todos os quadrados verdes Material do jogo 72 cartas

XADREZ: REGRAS BÁSICAS DO JOGO. Prof. Dr. Wilson da Silva

Interpretações de Qualidade de Software. Interpretações de Qualidade de Software. Aspectos Importantes das Definições de Qualidade

Gerenciamento de Integração. Prof. Anderson Valadares

Regras V1.0. Counter Strike:GO (5vs5)

SE RPG 2.0: Uma nova versão do Software Engineering- Acadêmico: Felipe Koche Ambrosio Orientadora: Fabiane Barreto Vavassori Benitti

Catálogo com truques e jogos de cartas

Polos Olímpicos de Treinamento. Aula 6. Curso de Combinatória - Nível 2. Jogos. 1. Simetria. Prof. Bruno Holanda

Agenda. O que é Testar? Por que testar? Quando testar? Processo de teste Níveis de teste Tipos de teste Classificação dos testes.

RESUMO DAS REGRAS DO BASQUETE. Regulamento (FIBA)

Bem-vindo ao tópico sobre movimentos de mercadorias em estoque.

O posicionamento inicial das peças assim como o formato do tabuleiro é como o que se mostra na figura seguinte:

ÍNDICE GIRA VOLEI REGRAS DE JOGO CAPÍTULO I FUNDAMENTOS E REGRAS DO JOGO. REGRA 1 Terreno de jogo (figs. 1 e 2) 1.1 Superfície de jogo. 1.

Objetivo. Componentes. Ficha Técnica

Curso básico de Xadrez

CARTILHA DOS PROCEDIMENTOS DA BIOMETRIA

SOLUÇÕES N item a) O maior dos quatro retângulos tem lados de medida 30 4 = 26 cm e 20 7 = 13 cm. Logo, sua área é 26 x 13= 338 cm 2.

SISTEMÁTICA DE ACOMPANHAMENTO E AVALIAÇÃO DE DESEMPENHO

Passo a passo do BPA (Boletim de Produção Ambulatorial)

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

Atividade experimental - Tema: Luz

Relatório Técnico: Descrição do algoritmo para pesquisa automática dos egressos do curso de Ciência da Computação

Prof. Me. Marcos Echevarria

Solução da prova da 2a fase OBMEP 2014 Nível 2. Questão 1. item a)

3 Informações para Coordenação da Execução de Testes

VI GINCANA NACIONAL DE ECONOMIA

Manutenção total aplicada em ferramentarias

LINHAS MESTRAS; FASES; DISCIPLINAS; PRINCÍPIOS E MELHORES PRÁTICAS.

Usando potências de 10

Welcome the programmation Linux with shell script!!! Seja bem vindo a programação Linux com shell script!!!

Programação de Computadores I. Linguagem C Função

INTRODUÇÃO. Bem Vindo a CONEXÃO HACKER e boa sorte!

Curso Superior de Tecnologia em Gestão Pública. Ciclo de vida e organização do projeto

Shopper Marketing: A Influência no Momento da Compra MANUAL DO CURSO ESPM. Rua Joaquim Távora, 1240 Vila Mariana São Paulo - SP.

SUGESTÕES PARA INTERVENÇÕES PEDAGÓGICAS ORIENTADAS PELOS DADOS DO GEEKIE TESTE APRENDA+

Modelando sistemas em UML - Casos de uso.

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

OBSERVAÇÕES: EXERCÍCIOS

Qualidade de Software Normatização

Engenharia de Software

Requisitos de Software

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ DALGLISH GOMES ESTRUTURAS CRISTALINAS E MOLECULARES NA PRÁTICA PEDAGÓGICA

Regras do jogo equipe de evolução de software /6/2006 versão 2.1

1. Manual Resumido de Gestão de Contratos

Introdução à Inteligência Artificial 2007/08

Metodologias de Programação

Circuitos Aritméticos

CONFIGURAÇÃO DE POP-UP DE ALARME SIM V5

Motivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente

alocação de custo têm que ser feita de maneira estimada e muitas vezes arbitrária (como o aluguel, a supervisão, as chefias, etc.

Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02

Orientações para inscrição aos cursos de língua inglesa ofertados pelas universidades federais parceiras do Programa IsF

Tutorial Sistema de Planejamento

MANUAL DO SISTEMA. Versão 6.00

QUESTÃO 3 ALTERNATIVA E 24 é o maior número que aparece na figura. Indicamos abaixo a sequência de operações e seu resultado

ENCERRAMENTO DE SALDOS (ZERAMENTO) DAS CONTAS DE RESULTADO

Melhorias de Processos segundo o PDCA Parte IV

Por que melhorar o processo? Melhoria do Processo de Software. De onde veio a idéia? Qualidade de Software

GUIA DE DÚVIDAS E RESPOSTAS

TOM, SEMITOM, SUSTENIDO, BEMOL.

AED Parte II Microeconomia Básica. Teoria dos Jogos

Gerenciamento de projetos (Project Management).

Processo de Desenvolvimento de Software

Variáveis Frequências Gráficos Medidas de Posição Medidas de Dispersão Medidas Complementares Inferência

0. Objectivo. 1. Erros no remate Ângulo de erro

Modelo CMMI em Fábrica de Software

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

Transferindo licenças

Seguindo a análise de pensamento Estratégico, o gerenciamento de projetos

Linguagens de Programação:

MATEMÁTICA PROVA 3º BIMESTRE

Gerência de Memória. Algoritmos de Substituição de Páginas

Sistema de Recuperação da Senha nos Sistemas Informáticos da FEUP

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

ESTATÍSTICA PARTE 1 OBJETIVO DA DISCIPLINA

FUNÇÃO DESENVOLVER PESSOAS:

REGULAMENTO DO I TORNEIO DE SUECA TERRAFLOR

Tipos de Banco de Dados - Apresentação

- Se tornar o jogador mais rico através da compra, aluguel e venda de propriedades.

REGULAMENTO INTERNO VOLEIBOL ATC

Lista de Exercícios Critérios de Divisibilidade

ELETRÔNICA DIGITAL. Parte 6 Display, Decodificadores e Codificadores. Prof.: Michael. 1 Prof. Michael

MICROSOFT OFFICE EXCEL 2007

ADAPTAÇÃO PEGA VARETAS (Números Inteiros Negativos)

Regulamento do Ranking 2016 TOTAL TENNIS TEAM PENDOTIBA - Sistema de Pirâmide

Processos de Software

Desenvolvimento guiado por testes e ferramentas xunit

CONFEDERAÇÃO BRASILEIRA DE BILHAR E SINUCA

PROGRAMAÇÃO ORIENTADA A OBJETO INTRODUÇÃO

Descrição de Cargo, Funções e Processos. Organograma de localização

Transcrição:

DCC / ICEx / UFMG Problems and Programmers Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo

Visão Geral do PnP O jogo Problems and Programmers (PnP) simula um processo de software Fase de requisitos até a entrega O jogo tira o foco do produto que é geralmente explorado em TPs O jogo prioriza conceitos gerenciais Eventos que ocorrem no jogo tem correspondência no mundo real

Regras Elementares Jogadores assumem o papel de gerentes de projetos Todos têm que implementar o mesmo projeto no menor tempo possível Quem completar o projeto primeiro ganha o jogo Jogadores devem seguir o Modelo Cascata

Disposição das Cartas

Fases do jogo PnP O jogo é dividido em seis fases 1. Definir configuração inicial 2. Fase de Requisitos 3. Fase de Projeto 4. Fase de Implementação 5. Fase de Integração 6. Entrega do Produto

Configuração Inicial

Fase 1: Configuração Inicial Uma carta de projeto é sorteada Existem vários projetos com atributos diferentes Um projeto define quatro atributos Tamanho (length) Complexidade (complexity) Qualidade (quality) Orçamento (budget)

Exemplo de Carta de Projeto

Atributos de um projeto Tamanho define quanto de código é necessário para completar o projeto Complexidade determina quanto de habilidade os programadores precisam para gerar um unidade de código Qualidade diz quanto do código precisa ser verificado ao final do projeto Orçamento limita a quantidade de programadores e cartas de conceitos

Início do Jogo Após o projeto ser sorteado, cada jogador pega 5 cartas no monte principal Existem três montes de cartas Monte principal possui cartas de problemas, conceitos e programadores Monte de documentação possui cartas de requisitos e de projeto Monte de implementação possui cartas de código

Tipos de Cartas Cartas de Conceito representam boas decisões de desenvolvimento Cartas de Programadores representam os membros da equipe Cartas de Problemas definem uma penalidade quando boas práticas não são adotadas de jogo

Exemplos de Cartas

Cartas de Problemas Cartas de problemas são jogadas para os adversários Se o jogador receber uma carta e satisfizer sua condição, ele será penalizado conforme a consequência

Estrutura das Rodadas Na sua vez em cada rodada, o jogador deve seguir os seguintes passos 1. Decidir se vai passar para a próxima fase do ciclo de desenvolvimento 2. Comprar cartas 3. Fazer ações que são permitidas para a fase que ele se encontra 4. Empregar conceitos e/ou programadores 5. Descartar cartas desnecessárias

Fase de Requisitos

Fase de Requisitos Em sua vez, o jogador na fase de requisitos pode comprar duas cartas do monte de documentação Jogadores são encorajados a especificar os requisitos antes de moverem para as fases seguintes Nenhum jogador é obrigado a trabalhar os requisitos

Requisitos Claros e Não Claros A maioria das cartas de documentação são brancas Representam requisitos claros Podem haver cartas de documentação Unclear Representam requisitos não claros Para transformar um requisito não claro em requisito claro, é necessário gastar uma das duas opções de compra

Fase de Projeto

Fase de Projeto É muito semelhante a fase de requisitos Compra-se duas cartas no mesmo monte de documentação Pode haver documentação de projeto não claro (os mesmo procedimentos são adotados) As cartas são colocadas na coluna de projeto

Fase de Implementação

Fase de Implementação Nesta fase, os programadores fazem ações referentes ao seus respectivos valores de habilidades As ações possíveis são 1. Produzir código bem estruturado 2. Produzir código espaguete 3. Inspecionar código 4. Resolver bugs

Ação de Codificar Para produzir uma carta de código estruturado, o programador gasta tempo equivalente a complexidade do projeto Para produzir uma carta de código espaguete, o programador gasta metade da complexidade do projeto

Código por Programador Cada carta de código produzido é colocada em uma coluna acima do programador que a produziu Inicialmente, a carta é colocada com a face para baixo A face da carta para baixo significa que o código não foi inspecionado Possíveis bugs no código estão ocultos

Código Não Inspecionado

Código Inspecionado

Código Estruturado x Espaguete A mesma carta é usada para código estruturado ou espaguete A carta possuir duas metades Metade escura (azul) para cima representa código estruturado Metade clara (vermelho) para cima representa código espaguete Código espaguete revela bugs mais frequentemente que código estruturado

Ação de Inspecionar Inspecionar uma carta de código requer uma unidade de tempo Unidade de tempo equivale a uma unidade de habilidade do programador Após inspecionar uma carta de código, o programador pode virar a face da carta para cima Revela a existência ou não de bug

Ação de Resolver Bug Os programadores podem usar um ponto de tempo tentar remover um bug Entretanto, o bug pode não ser removido completamente da primeira vez Para remover um bug pode ser necessário várias unidades de tempo Apenas bugs simples (Simple) podem ser trocados diretamente por uma nova carta de código usando um ponto de tempo

Normal e Nasty Bug Cada unidade de tempo gasto pelo programador move o bug uma posição para cima na coluna Troca a carta com bug pela carta imediatamente acima na coluna do programador Quando a carta com bug atingir o topo Com uma unidade de tempo, a carta com bug pode ser trocada por uma nova carta

Fase de Integração

Fase de Integração Em cada rodada de integração, o código de um programador pode ser movido para a parte de código integrado O projeto termina quando for integrada quantidade de código equivalente ao tamanho do projeto O jogador pode integrar código que não foi inspecionado (ou mesmo com bug)

Entrega do Produto

Fase de Entrega do Produto Durante a entrega do produto, é feita a verificação e validação com o cliente O cliente verifica quantidade de cartas de código equivalente a qualidade do projeto Se o cliente descobrir algum bug nessa fase, o jogador será penalizado Podendo até mesmo ser desclassificado

Penalidades por Bug na Entrega Se o cliente encontrar apenas bugs simples (Simple) ou normais (Normal) O jogador terá que criar e integrar novamente quantidade equivalente de cartas para substituir o código com bug Se o cliente encontrar algum bug grave (Nasty) O jogador será desqualificado e o jogo continua com os demais jogadores

Término do Jogo Se nenhuma das cartas reveladas pelo cliente possuírem bugs, o jogador ganha!

Bibliografia da Aula A. Baker, E. Navarro, and A. van der Hoek. An Experimental Card Game for Teaching Software Engineering Processes. Journal of Systems of Software (JSS), 2004. A. Baker, E. Navarro, A. van der Hoek. Problems and Programmers: an Educational Software Engineering Card Game. International Conference on Software Engineering (ICSE), 614-619, 2003.