quarta-feira, maio 30, 2007

Aula 13

Nessa reunião procuramos examinar no detalhe como
os cenários evoluíram desde da Aula 10. Tivemos três versões.

Vimos como é difícil seguir, manualmente, todas as mudanças que ocorreram.

Uma das dificuldades é a definição da granularidade do que é considerado como uma mudança. Já tínhamos falado sobre isso nos comentários do artigo de Gerência de Configuração.

Além disso, creio que ficou evidente a complexidade da tarefa, em face da possibilidade de uma mudança afetar a mais de um cenário.

Vimos também que existem “padrões” no processo de evolução. É exatamente aqui que o trabalho que fizemos na reunião está relacionado aos artigos de re-fatoração e de padrão de cenários.

Na reunião que teremos hoje, onde analisaremos as cartas de conceito e problemas devemos também prestar atenção a como elas evoluíram.

Espero que hoje possamos estar prontos para empacotar a segunda versão do SimulES.

Agenda:
  • Aula 14: hoje dia 30. Como falamos acima.
  • Aula 15: dia 6. Discussão dos artigos de refatoração e padrões. Última chance para empacotar versão 2.0. Começo da aplicação dos conceitos dos artigos aos casos de evolução do SimulES.
  • Aula 16: dia 13 Uso do Jogo, de preferência com jogadores externos.
  • Aula 17: dia 20 Aplicação dos conceitos de refatoração e padrões. Identificação de novas leituras. Começo da escrita de artigo/relatório.
  • Aula 18: dia 27 Reunião sobre artigo/relatório.
  • Aula 19: dia 4 Reunião sobre relatório. Prazo final para conclusão dos “blogs” individuais.

Aula 11 -- Aula 12

A Milene fez um ótimo trabalho. Vejam aí do lado o que ela
escreveu com base nas duas reuniões de trabalho do grupo.

segunda-feira, maio 07, 2007

Aula 10

Parabéns para a equipe. Pela primeira vez esse semestre terminamos o jogo.

Corrigi os problemas iniciais da descrição das regras. Certamente ainda existem
outros. Creio que o melhor é evoluir o que está abaixo. Mãos a obra. Lembrem que
é fundamental termos o léxico também!

Título: Dinâmica do SimulES
Objetivo: Descrever as regras do SimulES
Contexto:INICIO DE JOGO.
Atores: jogador
Recursos: dado, cartas, informações do projeto
Episódios:
Jogador da vez inicia turno.
Se jogador puder empacotar o produto, então jogador SUBMETE PRODUTO.
Jogador JOGA RODADA DE AÇÕES.
Jogador JOGA RODADA DE CONCEITOS
Jogador TRATA PROBLEMAS (** é isso mesmo? – falta detalhar).

Título: Inicio de jogo
Objetivo: Descrever os preparativos para inicio do jogo
Contexto: Tabuleiro de cada jogador colocado na mesa de jogo.
Cada jogador tem uma carta de engenheiro de software
Atores: jogador
Recursos: dado, cartas, informações do projeto
Episódios:
Jogador joga dado. Restrição: Maior dado inicia jogo.
Jogador escolhe aleatoriamente do monte de carta de informações de projeto um projeto. Restrição: outros jogadores têm que concordar com carta escolhida por jogador que inicia jogo.
Cada jogador escolhe uma carta de engenheiro de software e coloca-a no tabuleiro.


Título: Joga Rodada de Ações
Objetivo: Descrever as regras da rodada de ações
Contexto: Informações do projeto no centro da mesa
Primeiro jogador já foi escolhido
Atores: jogador
Recursos: dado, cartas, informações do projeto
Episódios:
Jogador usa seus Engenheiros de Software em CONSTRÓI ARTEFATO ou INSPECIONA ARTEFATO ou CORRIGE DEFEITO.
Se jogador não usou engenheiros de software então INTEGRA ARTEFATOS EM UM MÓDULO de acordo com a habilidade de cada engenheiro de software. Restrição: Habilidades podem ser afetadas por cartas de conceito ou carta de problemas.
Jogador lança o dado.
Se dado igual a 1,ou 2 ou 3, então jogador pega 1, 2 ou 3 cartas do monte de problemas e conceitos. Restrição: jogador não pode pegar cartas do monte de engenheiros de software.
Se dado igual a 4 ou 5 ou 6, então jogador pega 3 cartas do monte de problemas e conceitos e x cartas do monte de engenheiro de software, onde x é o valor do dado menos 3.

Título: Joga Rodada de Conceitos
Objetivo: Descrever as regras da rodada de conceitos
Contexto: Informações do projeto no centro da mesa
Primeiro jogador já foi escolhido, Todos os jogadores terminaram JOGA RODADA DE AÇÕES
Atores: jogador, concorrente
Recursos: cartas, informações do projeto
Episódios:
Jogador descarta suas cartas de conceito no tabuleiro caso sejam permanentes.
Se jogador tem cartas de engenheiro de software, então jogador contrata engenheiro de software de acordo com o orçamento disponível (informado na carta de projeto) colocando-os no tabuleiro.
Jogador descarta cartas, retornando-as aos montes apropriados.
Jogador escolhe até 3 concorrentes e pode submeter para cada um uma carta de problema.
Jogador lê em voz alta o problema que submete ao concorrente.

Título: Recebe cartas
Objetivo: Descrever as regras da rodada de receber cartas
Contexto: Informações do projeto no centro da mesa
Todos os jogadores terminaram JOGA RODADA DE AÇÕES, Jogador recebeu cartas de concorrente
Atores: jogador, concorrente
Recursos: cartas, informações do projeto
Episódios:
Jogador estuda como atender a demanda d carta de problema colocado pelo concorrente.
Jogador atende a demanda da carta de problema. Restrição: carta de problema pode ser contraposta por carta de conceito.
Se o problema é temporário então jogador descarta a carta de problema.
Se o problema é permanente então jogador mantêm carta. Restrição: carta de problema pode ser contraposta por carta de conceito.

Título: Submete produto
Objetivo: Descrever as regras de submeter produto
Contexto: Informações do projeto no centro da mesa
Jogador acabou de integrar seu último modulo
Atores: jogador, concorrente
Recursos: cartas, informações do projeto, módulos
Episódios:
Jogador mostra que produziu x módulos, de acordo com as informações de projeto. Concorrente (qualquer) escolhe x artefatos (cartas) de qualquer dos módulos, onde x é o nível de qualidade do projeto.
Se artefatos escolhidos (desvirados) forem livres de defeito, então jogador ganha o jogo.

Título: Constrói artefato
Objetivo: Descrever as regras de construir artefatos
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito
Atores: jogador
Recursos: cartas, informações do projeto
Episódios:
Jogador, para cada carta de engenheiro de software, escolhe do monte de artefatos os artefatos que podem ser produzidos por aquele engenheiro de software.
Se jogador escolhe carta branca, então o número de cartas é determinado pela complexidade do projeto e pela habilidade da carta de engenheiro de software.
Se o jogador escolhe carta cinza, então o número de cartas é determinado pela metade mais um da complexidade do projeto e pela habilidade da carta engenheiro de software. estuda como atender a demanda d carta de problema colocado pelo concorrente.
Jogador coloca as cartas escolhidas no tabuleiro de acordo com o jogador e de acordo com o tipo de artefato produzido.

Título: Inspeciona artefato
Objetivo: Descrever as regras para inspecionar artefatos
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito. Jogador tem artefatos no tabuleiro
Atores: jogador
Recursos: cartas, informações do projeto, artefato
Episódios:
Jogador escolhe artefato do tabuleiro.
Se o engenheiro de software responsável pelo artefato faz a inspeção, então o projeto gasta um ponto de tempo desse engenheiro.
Se outro engenheiro de software faz a inspeção, então o projeto gasta dois pontos de tempo desse engenheiro.
Artefato inspecionado é desvirado no tabuleiro.

Título: Corrige artefato
Objetivo: Descrever as regras para corrigir artefatos inspecionados
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito. Jogador tem artefatos inspecionados ( INSPECIONA ARTEFATO) no tabuleiro
Atores: jogador
Recursos: cartas, informações do projeto, artefato inspecionado
Episódios:
Jogador escolhe artefato do tabuleiro.
Se o engenheiro de software responsável pelo artefato faz a correção, então o projeto gasta um ponto de tempo desse engenheiro.
Se outro engenheiro de software faz a correção, então o projeto gasta dois pontos de tempo desse engenheiro.
Artefato inspecionado é substituído por artefato livre de defeito (carta branca sem defeito).

Título: Integra artefatos em um módulo
Objetivo: Descrever as regras para integrar artefatos
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito. Jogador tem artefatos no tabuleiro
Atores: jogador
Recursos: cartas, informações do projeto
Episódios:
Jogador escolhe módulo do projeto.
Jogador seleciona artefatos do tabuleiro, independente de responsável (engenheiro de software) de acordo com as informações de projeto.
Jogador integra o módulo juntando as cartas em um monte fora do tabuleiro.

quarta-feira, maio 02, 2007

Aula 9

Nessa aula jogamos mais um vez. As regras foram mudadas.
Incluiu-se a noção de rodada de dado e rodada de cartas. Acreditamos
que isso tornou o jogo mais dinâmico.

Abaixo listamos uma primeira versão das novas regras escritas na linguagem de cenários.
Vamos utiliza-las tanto para jogarmos na Aula 10 (hoje) como também para estudarmos a linguagem proposta como uma linguagem para descrição das regras do jogo.

A leitura sobre cenários deve incluir os seguintes artigos: construção de cenários, inspeção de cenários e identificação de padrões em cenários.

Além disso estaremos lendo o seguinte artigo: "Evolving Object-Oriented Designs with Refactorings" de Tokuda e Batory.

A regras, numa primeira versão, estão listadas abaixo.

Título: Inicio de jogo
Objetivo: Descrever as regras do SimulES
Contexto: Informações do projeto no centro da mesa
Primeiro jogador já foi escolhido
Atores: jogadores
Recursos: dado, cartas, informações do projeto
Episódio:
Jogador da vez inicia rodada.
Jogador JOGA DADO.
Jogador DESCARTA CARTAS.
Jogador RECEBE CARTAS
Se jogador empacotou o produto, então jogador SUBMETE PRODUTO.

Título: Joga Dado
Objetivo: Descrever as regras da rodada de jogar dados
Contexto: Informações do projeto no centro da mesa
Primeiro jogador já foi escolhido
Atores: jogadores
Recursos: dado, cartas, informações do projeto
Episódio:
Jogador
Se dado igual a 1, então jogador lança dado. Restrição: jogador só prossegue após tirar número diferente de 1.
Se dado igual a 2 ou 3, então jogador pega 2 ou 3 cartas do monte de problemas e conceitos. Restrição: jogador não pode pegar cartas do monte de engenheiros de software.
Se dado igual a 4 ou 5 ou 6, então jogador pega 3 cartas do monte de problemas e conceitos e x cartas do monte de engenheiro de software, onde x é o valor do dado menos 3.
Se jogador tem engenheiros de software, então jogador contrata engenheiro de software de acordo com o orçamento disponível (informado na carta de projeto) colocando-o(s) no tabuleiro.

Título: Descarta cartas
Objetivo: Descrever as regras da rodada de destacar cartas
Contexto: Informações do projeto no centro da mesa
Primeiro jogador já foi escolhido, Todos os jogadores terminaram JOGA DADO
Atores: jogadores, jogador, concorrente
Recursos: cartas, informações do projeto
Episódio:
Jogador descarta suas cartas de conceito no tabuleiro.
Jogador usa seus Engenheiros de Software para CONSTRÓI ARTEFATO ou INSPECIONA ARTEFATO ou CORRIGE DEFEITO OU INTEGRA ARTEFATOS EM UM MÓDULO de acordo com a habilidade de cada engenheiro de software. Restrição: Habilidades podem ser afetadas por cartas de conceito ou carta de problemas.
Jogador escolhe até 3 concorrentes e pode submeter para cada um uma carta de problema.
Jogador ler em voz alta o problema que submete ao concorrente.

Título: Recebe cartas
Objetivo: Descrever as regras da rodada de receber cartas
Contexto: Informações do projeto no centro da mesa
Todos os jogadores terminaram JOGA DADO, Jogador recebeu cartas de concorrente
Atores: jogadores, jogador, concorrente
Recursos: cartas, informações do projeto
Episódio:
Jogador estuda como atender a demanda d carta de problema colocado pelo concorrente.
Jogador atende a demanda da carta de problema. Restrição: carta de problema pode ser contraposta por carta de conceito.
Se o problema é temporário então jogador descarta a carta de problema.
Se o problema é permanente então jogador mantêm carta. Restrição: carta de problema pode ser contraposta por carta de conceito.

Título: Submete produto
Objetivo: Descrever as regras de submeter produto
Contexto: Informações do projeto no centro da mesa
Jogador acabou de integrar seu último modulo
Atores: jogadores, jogador, concorrente
Recursos: cartas, informações do projeto, módulos
Episódio:
Jogador mostra que produziu x módulos, de acordo com as informações de projeto. Concorrente (qualquer) escolhe x artefatos (cartas) de qualquer dos módulos, onde x é o nível de qualidade do projeto.
Se artefatos escolhidos (desvirados) forem livres de defeito, então jogador ganha o jogo.

Título: Constrói artefato
Objetivo: Descrever as regras de construir artefatos
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito
Atores: jogadores, jogador,
Recursos: cartas, informações do projeto
Episódio:
Jogador, para cada carta de engenheiro de software, escolhe do monte de artefatos os artefatos que podem ser produzidos por aquele engenheiro de software.
Se jogador escolhe carta branca, então o número de cartas é determinado pela complexidade do projeto e pela habilidade da carta de engenheiro de software.
Se o jogador escolhe carta cinza, então o número de cartas é determinado pela metade mais um da complexidade do projeto e pela habilidade da carta engenheiro de software. estuda como atender a demanda d carta de problema colocado pelo concorrente.
Jogador coloca as cartas escolhidas no tabuleiro de acordo com o jogador e de acordo com o tipo de artefato produzido.

Título: Inspeciona artefato
Objetivo: Descrever as regras para inspecionar artefatos
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito. Jogador tem artefatos no tabuleiro
Atores: jogadores, jogador
Recursos: cartas, informações do projeto, artefato
Episódio:
Jogador escolhe artefato do tabuleiro.
Se o engenheiro de software responsável pelo artefato faz a inspeção, então o projeto gasta um ponto de tempo desse engenheiro.
Se outro engenheiro de software faz a inspeção, então o projeto gasta dois pontos de tempo desse engenheiro.
Artefato inspecionado é desvirado no tabuleiro.

Título: Corrige artefato
Objetivo: Descrever as regras para corrigir artefatos inspecionados
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito. Jogador tem artefatos inspecionados ( INSPECIONA ARTEFATO) no tabuleiro
Atores: jogadores, jogador
Recursos: cartas, informações do projeto, artefato inspecionado
Episódio:
Jogador escolhe artefato do tabuleiro.
Se o engenheiro de software responsável pelo artefato faz a correção, então o projeto gasta um ponto de tempo desse engenheiro.
Se outro engenheiro de software faz a correção, então o projeto gasta dois pontos de tempo desse engenheiro.
Artefato inspecionado é substituído por artefato livre de defeito (carta branca sem defeito).

Título: Integra artefatos em um módulo
Objetivo: Descrever as regras para integrar artefatos
Contexto: Informações do projeto no centro da mesa
Jogador já descartou cartas de conceito. Jogador tem artefatos no tabuleiro
Atores: jogadores, jogador
Recursos: cartas, informações do projeto
Episódio:
Jogador escolhe módulo do projeto.
Jogador seleciona artefatos do tabuleiro, independente de responsável (engenheiro de software) de acordo com as informações de projeto.
Jogador integra o módulo juntando as cartas em um monte fora do tabuleiro.