Aula 9 Especificação de Requisitos Exercício Alessandro Garcia LES/DI/PUC-Rio Abril 2017 Exercício Faça a especificação de requisitos do programa do jogo FreeCell com base no que foi apresentado na aula passada: não somente requisitos funcionais mas também: não-funcionais (pelo menos 3) A especificação deve ser feita com seu grupo do trabalho T2 Devem ser especificados todos os requisitos que devem ser satisfeitos pelo programa até o T4 Deve ser possível jogar uma partida por completo, obedecendo a todas regras do FreeCell Não inclua requisitos que não serão implementados pela equipe Não é necessário armazenar dados ou estatísticas de partidas em arquivos nem funcionalidades adicionais como undo e verificar se jogo está travado. Alessandro Garcia LES/DI/PUC-Rio 2 /35 1
FreeCell Não deve pairar dúvidas sobre as regras de disposição inicial das cartas, movimentação das cartas individuais e em bloco, informações a serem solicitados do jogador, quando o jogo termina, etc.. 3 /35 Critérios de qualidade de especificações Especificações devem ser de boa qualidade quanto melhor a qualidade, menor será o retrabalho inútil é estimado que 70% dos defeitos de um programa são causados por especificações inexistentes, incompleta ou erradas Diferente de programas, não testamos especificações uma forma simples de fazer isso é verificar se a especificação satisfaz um conjunto de critérios 4 /36 2
Critérios de qualidade de especificações Especificações devem ser de boa qualidade quanto melhor a qualidade, menor será o retrabalho inútil é estimado que 70% dos defeitos de um programa são causados por especificações inexistentes ou erradas Diferente de programas, não testamos especificações Uma das técnicas de controle da qualidade de especificações é a leitura com intenção de encontrar defeitos uma forma simples de fazer isso é verificar se a especificação satisfaz um conjunto de critérios formas mais eficazes e bem mais complexas revisões por desenvolvedores que não produziram a especificação Ago 2008 5 /36 Critérios de qualidade de especificações Concisão a especificação é redigida com poucas palavras... mas isso não significa omitir definições de conceitos: Explicitude (explícito + -(t)ude) todos os itens da especificação estão explicitamente definidos ex.: esquecer de definir cada uma das peças de um jogo de xadrez Suficiência a especificação não omite aspectos relevantes ex.: esquecer ou omitir conscientemente detalhes de cada rodada ou mão do jogo de truco Exatidão a especificação está em conformidade observável com o mundo real ex. 1: inventar ou banir regras básicas do jogo de xadrez ex. 2: usar termos (tais como nomes de jogadas) que não são aqueles utilizados comumente por jogadores de xadrez Compreensibilidade a especificação deve ser compreensível pelos diversos leitores, em particular por leigos em computação Ago 2008 6 /36 3
Critérios de qualidade de especificações Não-ambigüidade (inequívoco) diferentes leitores entendem o item exatamente da mesma maneira ex.: usar o termo jogo, quando quer se referir a uma partida em particular Ausência de redundância Redundância ocorre quando um mesmo item é especificado em vários lugares (duplicação, repetição) Verificabilidade ou testabilidade deve ser possível determinar objetivamente a satisfação de cada item da especificação ex.: extrair raiz quadrada tem menor verificabilidade do que extrair raiz quadrada de um inteiro x com precisão double, onde x >= 0 Prioridade está claro o que é efetivamente requerido e o que é apenas desejado Ago 2008 7 /36 Critérios de qualidade de especificações Consistência a especificação não contém contradições internas, ou com outros documentos ex.: em parte da especificação, se diz que dama pode pular qualquer quantidade de casas na diagonal, mas em outra parte se diz que há um limite no máximo, até a última casa antes da primeira peça da mesma cor na diagonal Nivelamento a especificação está no nível de abstração do artefato sendo especificado ex.: para usar um programa, não interessa saber quais as estruturas de dados utilizadas Ago 2008 8 /36 4
Dicas Trabalho T2 - Não esquecer... Preencher tabela de atividades ao longo do processo. NÃO DEIXE PARA ÚLTIMA HORA, POIS VOCÊ NÃO SE LEMBRARÁ DO QUE FEZ TAL DIA, TAL HORA. Com relatórios similares a esse você aprende a planejar o seu trabalho O relatório é INDIVIDUAL Ferramentas como gmake e batches de apoio deve ser utilizados LES/DI/PU C-Rio Dicas para o Trabalho Não esqueça de rever cuidadosamente: critérios de avaliação procedimentos para entrega do trabalho Certifique-se que seu trabalho atende os seguintes pontos: estruturação: contém tanto o fonte dos módulos de implementação quanto módulos definição (interface) siga princípios de modularidade: interfaces simples e documentadas,... obediência a padrões de programação não esqueçam de produzir arquivos LEIAME.TXT e RELATOR.TXT LES/DI/PU C-Rio 5
Aula 9 Especificação de Requisitos Exercício Alessandro Garcia LES/DI/PUC-Rio Abril 2017 6