Práticas de Extreme Programming e Engenharia de Requisitos
Classificado em Computação
Escrito em em português com um tamanho de 5,89 KB.
1- Cite e explique brevemente duas práticas utilizadas em Extreme Programming
Planejamento Incremental:
Os requisitos são registrados em cartões de estória e as estórias que serão incluídas em um release são determinadas pelo tempo disponível e sua prioridade. Os desenvolvedores dividem essas estórias em tarefas.
Pequenos Releases:
Em primeiro lugar, desenvolve-se um conjunto mínimo de funcionalidades útil, que fornece valor ao negócio. Releases do sistema são frequentes e gradualmente adicionam funcionalidades ao primeiro release.
Projeto Simples:
Cada projeto é realizado para atender às necessidades atuais, e nada mais.
Desenvolvimento Test-First:
Um framework de testes iniciais automatizados é usado para escrever os testes para uma nova funcionalidade antes que a funcionalidade em si seja implementada.
Refatoração:
Todos os desenvolvedores devem refatorar o código continuamente assim que encontrarem melhorias de código. Isso mantém o código simples e manutenível.
Programação em Pares:
Os desenvolvedores trabalham em pares, verificando o trabalho uns dos outros e prestando apoio para um bom trabalho sempre.
Propriedade Coletiva:
Os pares de desenvolvedores trabalham em todas as áreas do sistema, de modo que não se desenvolvam ilhas de expertise. Todos os desenvolvedores assumem responsabilidade por todo o código. Qualquer um pode mudar qualquer coisa.
Integração Contínua:
Assim que o trabalho em uma tarefa é concluído, ele é integrado ao sistema como um todo. Após essa integração, todos os testes de unidade do sistema devem passar.
Ritmo Sustentável:
Grandes quantidades de horas-extra não são consideradas aceitáveis, pois o resultado final, muitas vezes, é a redução da qualidade do código e da produtividade a médio prazo.
Cliente no Local:
Um representante do usuário final do sistema (o cliente) deve estar disponível todo o tempo à equipe de XP. Em um processo de Extreme Programming, o cliente é um membro da equipe de desenvolvimento e é responsável por levar a ela os requisitos de sistema para implementação.
2- Requisitos são necessidades fundamentais que os sistemas devem suprir para atender aos seus objetivos. Explique brevemente o que são os requisitos funcionais e dê um exemplo:
Os requisitos funcionais são os requisitos que determinam as funções principais que o produto deve executar. Eles definem a funcionalidade do sistema, como ele deve reagir em condições específicas e como se comportar em determinadas situações, podendo demonstrar o que o sistema não pode fazer. Exemplo: em um site, incluir/alterar/excluir informações, geolocalização, tela de buscas, geração de relatórios, pagamento por débito e crédito, consulta de saldo ou estoque.
3- Descreva brevemente o que são os requisitos não funcionais e dê um exemplo.
São relacionados ao uso da aplicação em termos de desempenho, usabilidade, disponibilidade e segurança. Geralmente, definem características e restrições. São divididos em três partes: produto final, organizacionais e externos. Exemplo: um sistema deve ser desenvolvido em apenas uma linguagem.
4- Explique brevemente o que são os requisitos de usuários e dê um exemplo.
Os requisitos de usuários descrevem os requisitos funcionais e não funcionais de forma compreensível pelos usuários do sistema que não têm conhecimentos técnicos detalhados. Devem especificar somente o comportamento externo do sistema, evitando o quanto for possível as características do projeto de sistema. Podem ser escritos em linguagem natural, formulários e diagramas simples e intuitivos. Exemplo: um guia de como utilizar o site ou um tutorial de um jogo.
5- Cite e explique brevemente duas atividades genéricas da engenharia de requisitos.
São a verificação dos requisitos, prototipação e a geração de testes. A verificação de requisitos serve para verificar se existirão erros no futuro e para saber se um requisito foi implementado ou não. A prototipação se trata de apresentar um sistema final para as pessoas que têm mais contato com ele. A geração de testes consiste na criação de testes para verificar se o sistema está funcionando corretamente.
6- Explique qual a importância do gerenciamento de mudança de requisitos na engenharia de requisitos.
O gerenciamento de mudança de requisitos é importante para que seja possível perceber quando um requisito não funcional que está classificado como funcional precisa ser alterado, ajudando as partes interessadas a entenderem e acompanharem as mudanças.
7- Explique para que servem as entrevistas no processo de engenharia de requisitos e quais são os tipos de entrevistas possíveis:
As entrevistas servem para entender o que o cliente quer e necessita e para que o cliente saiba o que está sendo feito, garantindo que o produto final atenda às suas expectativas. Existem dois tipos de entrevistas: formal fechada e formal aberta.
Formal Fechada:
- Marcada com antecedência com um representante do cliente.
- Registros em ata.
- Tema e roteiro de perguntas definidos.
Formal Aberta:
- Marcada com antecedência com um representante do cliente.
- Registros em ata.
- Tema definido, mas com perguntas abertas e exploratórias.
8- Por que a identificação prévia de todas as regras de negócio é muito importante dentro do ciclo de desenvolvimento?
A identificação prévia de todas as regras de negócio é crucial para que todos os envolvidos no desenvolvimento saibam como o sistema deve funcionar, garantindo permissões adequadas, eficiência e qualidade no produto final.