Colocando casos de uso para funcionar

Uma análise de requisitos baseada em casos de uso é uma técnica bem empregada para captura e apresentação dos requisitos de software. O sucesso desta técnica pode ser justificado pela habilidade nos dar uma visão coesa dos requisitos do sistema para todos os stakeholders.

Este artigo visa explorar as necessidades de cada um destes stakeholders e destacar as características de casos de uso bem escritos, ou seja, apresentando os seus recursos, mensagens de fluxos de erro excepcionais, dependências, pré e pós condições de processamento etc.

Existem, em particular, 4 stakeholders primários em projeto que são diretamente beneficiados com um conjunto de casos de uso bem concebidos e bem executados. São eles:

Arquitetos de software
A aplicação primária dos casos de uso é o planejamento detalhado da construção do software. Durante a revisão dos casos de uso, o arquiteto de software observa quatro grupos de elementos que interagem no sistema: as fronteiras, as interfaces, os controllers e as entidades. Para se estabelecer as fronteiras, os atores do sistema devem ser observados. Devemos estudar os fluxos básico, alternativos, e excepcionais dos casos de uso para descobrirmos onde as interfaces serão colocadas, as entidades do software (e seus relacionamentos) e ações que o sistema deve desepenhar. Uma vez que estas informações sejam levantadas, podemos criar um modelo mais detalhado utilizando os diagramas de classe e sequência.

Tanto a análise quanto o design são aprimorados com a criação dos diagramas de atividade, que são vitais para comunicar o fluxo do processo. Por fim, o arquiteto pode agora descrever com mais detalhes a operação do sistema, ou seja, especificar tipos de dados, mecanismos arquiteturais, design patterns, protocolos, mecanismos de persistência etc.

QA’s (Quality Assurance Engineers)
Casos de teste são criados para verificar que uma funcionalidade desejada foi implementada. Casos de teste são baseados em cenários, que são seleções de caminhos de execução.
Desta maneira, todos os caminhos de execução de um caso de uso são executados. Para escrevermos casos de teste devemos levar em consideração algumas premissas na criação dos casos de uso: as potenciais condições de erro devem ser detalhadas; os dados necessários para execução do fluxo devem ser destacados; as pré e pós condições de execução devem ser detalhadas.
Uma vez que casos de teste derivam de casos de uso, qualquer erro ou “gap” será propagado para o plano de teste. É importante destacar que todos os casos de uso devem ser verificáveis.

Clientes
Casos de uso são uma excelente ferramenta para gerenciar as expectativas dos clientes. Entretanto, clientes sabem muito do seu negócio, mas não sobre metodologias de software, sendo assim, você deve seguir as seguintes orientações quando for escrever casos de uso: garanta que todos os termos técnicos estão definidos no Glossário; evite detalhes de implementação; use uma linguagem não técnica; mantenha um constante nível de abstração; seja o mais completo que puder na descrição dos fluxos; revise todos os casos de uso com o cliente para garantir clareza e entendimento.
Estes são fatores importantes pois os casos de uso representam um contrato entre o time de desenvolvimento e o cliente. A revisão dos casos de uso deve se atentar com os casos excepcionais. Tenha certeza de que o cliente entendeu e concorda com o comportamento do sistema no evento de uma exceção.

Gerentes de projeto
Casos de uso, no contexto de gerenciamento de projetos, são uma ferramenta muito efitiva para o endereçamento das seguintes necessidades do projeto: gerenciamento e mitigação de riscos; criação e manutenção de cronogramas; controle de custo e mudança de escopo.
Casos de uso podem ser contados e ranqueados relativo a outros baseado em cinco critérios: risco; esforço; custo; dependência; prioridade do cliente. Neste contexto, as grandes vantagens da utilização de casos de uso são indicação de dependência entre funcionalidades, determinação do escopo do projeto, criação de cronogramas.

Conclusão
Um conjunto de requisitos bem concebidos e bem executados é fundamental para se obter sucesso em um projeto de software de escala significante. Ilustrando as multiplas aplicações para casos de uso, demonstramos que a utilização de casos de uso é extremamente flexível e uma abordagem poderosa para o gerenciamento de requisitos.

Este é um resumo do artigo “Putting use cases to work” da IBM.