A especificação de requisitos é o processo de escrever os requisitos de usuário e de sistema em um documento de requisitos. Idealmente, os requisitos devem ser claros, inequívocos, de fácil compreensão, completos e consistentes. Na prática, isso é difícil de conseguir, pois os clientes interpretam os requisitos de maneiras diferentes e, muitas vezes, notam-se os conflitos e inconsistências inerentes aos requisitos.
A especificação de requisitos pode ser, em muitos casos, um problema complexo, principalmente quando o analista de requisitos não tem domínio sobre o negócio do cliente. Compreender a natureza do problema pode ser muito difícil, especialmente se o sistema for novo. Em decorrência disso, surgiu a engenharia de requisitos.
Um processo de engenharia de requisitos é um conjunto estruturado de atividades a serem seguidas para criar, validar e manter um documento de requisitos. O processo de produção do documento de requisitos é constituído pelas atividades de levantamento de requisitos, registro, validação e verificação.
Os requisitos de usuário devem descrever os requisitos funcionais e não funcionais de forma que sejam compreensíveis para eles. Eles devem especificar somente o comportamento externo do sistema. Já os requisitos do sistema são versões expandidas dos requisitos do usuário e são utilizados como ponto de partida para o projeto do sistema. Eles podem ser usados como parte do contrato para a implementação do software e devem ser formados por uma especificação completa e detalhada de todo o sistema.
Um caso de uso é uma descrição narrativa de uma sequência de eventos que ocorre quando um ator (agente externo) usa um sistema para realizar uma tarefa. Assim, um caso de uso especifica um comportamento de um sistema segundo uma perspectiva externa e é uma descrição de um conjunto de sequência de ações realizadas pelo sistema para produzir um resultado de valor observável por um ator.
Para se definir o que deve ser considerado um caso de uso do sistema, alguns itens devem ser levados em consideração, tais como:
- Identificar quais são os objetivos do usuário/cliente;
- Identificar quais funcionalidades o usuário/cliente deseja que o sistema tenha;
- Identificar como o usuário/cliente recebe e inclui informações no sistema.
Identificar quais informações podem ser consultadas, cadastradas, alteradas ou excluídas;
Outro ponto importante é que analista de requisitos e cliente falem a mesma língua. Isso parece um pouco óbvio, entretanto não é. Se para o analista de requisitos um processo judicial é uma ação, para o advogado que está solicitando o sistema, ação é apenas uma ação a ser tomada dentro de um processo judicial.
Uma especificação de caso de uso é um documento funcional, ou seja, ele descreve as funcionalidades que um sistema deve ter. No caso de uso é apresentado como o sistema deve reagir ao conjunto de entradas que receber, qual o comportamento desse sistema e as saídas que serão geradas. Uma especificação de caso de uso envolve, por exemplo, cálculos que o sistema deve executar, manipulação de dados entre outras informações.
Um caso de uso deve descrever, passo a passo, da m ...