Elicitar e representar os requisitos de um produto de software são atividades críticas no processo de desenvolvimento. Se falhas forem cometidas nessa etapa, irão se propagar para o restante das fases e podem ser percebidas apenas quando já for tarde demais e o produto estiver entregue.
Erros sempre serão cometidos, pois as atividades de desenvolvimento de software são de natureza cognitiva e, portanto, dependem de pessoas, e pessoas cometem erros. Já que é possível minimizar, mas não eliminar, a introdução de erros, pode-se investir em atividades que evitem a sua propagação. Estas são as atividades de verificação.
Você está se tornando um analista de requisitos experiente, e seu gerente pediu sua ajuda para apoiar um colega que está iniciando. O colega definiu a lista de requisitos funcionais e não funcionais para um software que apoiará reuniões remotas, uma demanda que cresceu no mercado devido ao trabalho remoto originado em decorrência da COVID-19.
Foram repassados os seguintes requisitos funcionais e não funcionais:
Descrição da imagem não disponívelSeu gerente lhe pediu que conduza uma revisão por pares usando um checklist que contém três perguntas e que decida se os requisitos podem ser encaminhados para a próxima fase:
- Todos os requisitos estão livres de ambiguidade?
- Todos os requisitos são verificáveis?
- Todos os requisitos são determinísticos?
Respostas
Com base nas informações fornecidas, é possível identificar os seguintes problemas:
4 - O software deverá permitir gerar diversos convites para participantes: quantas pessoas? Tem limite máximo? Qual?
7 - O organizador poderá delegar a função de organizador: delegar para quem? Pode delegar para mais de uma pessoa simultaneamente?
14 - O software deverá interoperar com o sistema de login da universidade: qual é o padrão para essa integração?
15 - O software deverá ser fácil de aprender a usar, pois não haverá treinamento na empresa: o que é ser fácil de aprender a usar? Como será verificado depois?
16 - O software deverá se adaptar a diversos tipos de tela, porque há funcionários que não têm computador em casa: quais tipos de tela? Celular? Tablet?
17 - O software deverá ser otimizado em relação ao uso de recursos de rede, pois a Internet de alguns funcionários não é boa: o que é ser otimizado? Que limites de banda de rede deve usar? Como vai medir?
18 - O sistema deverá ter mecanismos para evitar erros de operação dos usuários, uma vez que ele pode ser acessado por pessoas menos familiarizadas com a tecnologia: que tipos de mecanismos? Como serão avaliados? Qual é o perfil desses usuários?