Conforme solicitado pelo professor Julio, seguem os cenários, já modificados, de acordo com as observações levantadas em sala.
Cenários Obtidos (Quarta Versão):
Título: Dinâmica do SimulES
Objetivo: Descrever as regras do SimulES
Contexto: INICIO DE JOGO.
Atores: jogador
Recursos: dado, cartas, cartão do projeto, tabuleiro.
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.
______________________
Título: Inicio de jogo
Objetivo: Descrever os preparativos para inicio do jogo.
Contexto: Tabuleiro de cada jogador colocado na mesa de jogo.
Cartas embaralhadas sobre a mesa.
Cada jogador tem uma carta de engenheiro de software.
Atores: jogador
Recursos: dado, cartas, cartão do projeto, tabuleiro.
Episódios:
Jogador joga dado. Restrição: Jogador que tirar o maior número no dado, inicia o jogo.
Jogador escolhe aleatoriamente do monte de cartões de projeto. Restrição: Outros jogadores têm que concordar com o cartão escolhido pelo jogador que inicia o jogo.
Cada jogador compra uma carta de engenheiro de software e coloca-a no tabuleiro. Restrição: Sentido de jogo é horário.
___________________________
Título: Joga Rodada de Ações
Objetivo: Descrever as regras da rodada de ações.
Contexto: Cartão do projeto no centro da mesa.
Primeiro jogador já foi escolhido.
Atores: jogador
Recursos: dado, cartas, cartão do projeto, tabuleiro.
Episódios:
Jogador usa seus Engenheiros de Software em CONSTRÓI ARTEFATO ou INSPECIONA ARTEFATO ou CORRIGE ARTEFATO de acordo com a habilidade de cada engenheiro de software. Restrição: Habilidades e o custo dessas ações podem ser afetados por cartas de conceitos ou cartas de problemas.
Jogador lança o dado.
Se dado igual a 1, 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.
Se jogador não usou engenheiros de software e nem jogou o dado, então INTEGRA ARTEFATOS EM UM MÓDULO.
________________________________
Título: Joga Rodada de Conceitos
Objetivo: Descrever as regras da rodada de conceitos.
Contexto: Cartão 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, cartão do projeto, tabuleiro.
Episódios:
Jogador aplica conceitos caso sejam permanentes, colocando-os ao lado do tabuleiro. Restrição: Não pode exceder o orçamento do projeto.
Se jogador tem cartas de engenheiro de software, então jogador contrata engenheiro de software de acordo com o orçamento do projeto (que consta no cartão do projeto), colocando-os no tabuleiro.
Jogador descarta cartas, retornando-as aos montes apropriados.
Jogador escolhe até 3 concorrentes e pode submeter para cada um deles uma carta de problema. Restrição: Concorrente não pode ter mais de 2 cartas de problemas permanentes e mais de 3 cartas de problemas temporários.
Jogador lê em voz alta o problema que submete ao concorrente. Restrição: Quem escolhe as cartas do concorrente afetadas pelos problemas impostos é o próprio jogador.
_____________________________
Título: Trata Problemas
Objetivo: Descrever as regras do tratamento de problemas.
Contexto: Cartão do projeto no centro da mesa.
Todos os jogadores terminaram JOGA RODADA DE CONCEITOS.
Jogador recebeu cartas de concorrente.
Atores: jogador, concorrente.
Recursos: cartas, cartão do projeto, tabuleiro.
Episódios:
Jogador estuda como atender a demanda da carta de problema colocada 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. Restrição: Carta de problema pode ser contraposta por carta de conceito.
Se o problema é permanente então jogador mantém carta de problema. Restrição: Carta de problema pode ser contraposta por carta de conceito. Jogador pode demitir um engenheiro de software, descartando-o.
__________________________
Título: Submete produto
Objetivo: Descrever as regras da submissão de produto.
Contexto: Cartão do projeto no centro da mesa.
Jogador acabou de integrar seu último módulo.
Atores: jogador, concorrente.
Recursos: cartas, cartão do projeto, módulos.
Episódios:
Jogador mostra que produziu todos os módulos, de acordo com o cartão do projeto.
Concorrentes escolhem todos os artefatos de x módulos, onde x é o nível de qualidade do projeto. Restrição: Concorrentes não podem escolher módulo protegido por carta de conceito do jogador.
Concorrentes desviram artefatos escolhidos.
Concorrentes verificam artefatos desvirados.
Se artefatos verificados forem livres de defeito, então jogador ganha o jogo.
Se artefatos verificados forem defeituosos, então jogador pode corrigir um por turno de jogo.
_________________________
Título: Constrói artefato
Objetivo: Descrever as regras da construção de artefatos.
Contexto: Cartão do projeto no centro da mesa.
Atores: jogador
Recursos: cartas, cartão do projeto, tabuleiro.
Episódios:
Jogador, para cada carta de engenheiro de software, compra do monte de artefatos. Restrição: A quantidade de artefatos depende da habilidade do engenheiro de software, do tipo do artefato escolhido e da complexidade do projeto.
Se jogador compra carta branca, então o número de cartas é determinado pela complexidade do projeto e pela habilidade do engenheiro de software. Restrição: Cartas brancas custam valor da complexidade do projeto.
Se o jogador compra carta cinza, então o número de cartas é determinado pela metade da complexidade do projeto e pela habilidade do engenheiro de software. Restrição: Cartas cinzas custam metade do valor da complexidade do projeto.
Jogador coloca as cartas compradas no tabuleiro de acordo com o engenheiro de software e de acordo com o tipo de artefato produzido.
______________________________
Título: Inspeciona artefato
Objetivo: Descrever as regras da inspeção de artefatos.
Contexto: Cartão do projeto no centro da mesa.
Jogador tem artefatos no tabuleiro.
Atores: jogador
Recursos: cartas, cartão do projeto, tabuleiro.
Episódios:
Jogador escolhe artefato do tabuleiro.
Se o engenheiro de software responsável pelo artefato faz a inspeção, então o mesmo gasta um ponto de tempo.
Se outro engenheiro de software faz a inspeção, então esse gasta dois pontos de tempo.
Artefato inspecionado é desvirado no tabuleiro.
________________________
Título: Corrige artefato
Objetivo: Descrever as regras da correção de artefatos.
Contexto: Cartão do projeto no centro da mesa.
Jogador tem artefatos inspecionados com defeito (INSPECIONA ARTEFATO) no tabuleiro.
Atores: jogador
Recursos: cartas, cartão do projeto, tabuleiro.
Episódios:
Jogador escolhe artefato com defeito do tabuleiro.
Se o engenheiro de software responsável pelo artefato faz a correção, então o mesmo gasta um ponto de tempo.
Se outro engenheiro de software faz a correção, então esse gasta dois pontos de tempo.
Artefato inspecionado é substituído por artefato da mesma cor comprado do monte de artefatos.
_____________________________
Título: Integra artefatos em um módulo
Objetivo: Descrever as regras da integração de artefatos.
Contexto: Cartão do projeto no centro da mesa.
Jogador tem artefatos no tabuleiro.
Atores: jogador
Recursos: cartas, cartão do projeto, tabuleiro.
Episódios:
Jogador escolhe módulo do projeto.
Jogador seleciona artefatos do tabuleiro, independente do responsável (engenheiro de software) de acordo com o cartão do projeto.
Jogador integra o módulo juntando as cartas em um monte fora do tabuleiro.
********** Rastreabilidade **********
Em relação à rastreabilidade da Evolução do Jogo, exercitamos na aula passada, como é feito o processo de rastreabilidade. Para isso, consideramos as versões 1, 2 e 3 da construção dos cenários. Denominamos a primeira versão como A, a segunda como B e a terceira como C.
Definimos ainda que a granularidade utilizada no rastreamento seria determinada por diferenças entre sentenças. Esse foi um ponto alto da aula, onde discutimos a dificuldade de se determinar qual a granularidade a ser considerada no processo de rastreabilidade de um software. Assim, decidimos, para o nosso caso, que cada sentença dos cenários seria identificada com um código. Depois comparamos cada uma dessas sentenças, determinamos quais sentenças foram modificadas, quais permaneceram inalteradas e fizemos a associação entre elas de acordo com as versões A, B e C. O resultado foi que percebemos alguns erros na montagem dos cenários o que originou a quarta versão apresentada anteriormente nesse mesmo post.
Percebemos que é bastante complicado documentar a evolução de um software, trabalhar com diferentes versões e manter o rastro entre elas. De qualquer forma, percebemos também que é uma boa prática manter o rastro, pois já considerávamos a versão C uma versão bem completa dos cenários do Jogo SimulES e percebemos erros que nos levaram a versão 4.
********** Refatoração e Design Orientado a Objetos **********
O documento Envolving Object-Oriented Designs with Refactorings indicado para leitura pelo professor Julio também foi objeto dos meus estudos essa semana. Esse documento apresenta basicamente três tipos de design de evolução. Particularmente achei interessante considerar os padrões de projeto como forma de se aplicar soluções inteligentes em problemas comuns encontrados no desenvolvimento de softwares orientado a objetos. Alguns padrões apontados são: Command, Abstract Factory, Singleton, Composite, Decorator e Integrator.
********** Evolução das Cartas do Jogo SimulES **********
Foi solicitado também pelo professor Julio que as cartas do jogo SimulES evoluam. Tenho algumas sugestões que apresentarei em sala hoje.
Até a aula pessoal!
Read Full Post »