Requisitos
UML – Casos de Uso
Modelando os casos de uso como contrato entre usuários e desenvolvedores
De que se trata o artigo:
Este artigo aborda uma das principais ferramentas da UML — o caso de uso. Será demonstrada sua utilização como técnica para compreender e descrever requisitos, bem como a estrutura do diagrama e cenários, e as seções envolvidas. Todos os tópicos trazem exemplos e apresentam boas práticas.
Para que serve:
Fornecer aos desenvolvedores ou estudantes da área de sistemas o conhecimento básico a fim de conseguir desenhar e escrever o modelo atualmente mais importante para documentação de requisitos.
Em que situação o tema é útil:
Para quem ainda não conhece como escrever um caso de uso, ou para quem já o faz há algum tempo, mas não tem conseguido o sucesso esperado.
Este artigo apresentará uma das principais ferramentas oferecidas pela UML — o caso de uso, demonstrando sua utilização como uma técnica para compreender e descrever requisitos, além de um contrato poderoso entre usuários e analistas, e entre analistas e programadores. Serão apresentadas todas as seções de um caso de uso, explicando as melhores práticas em cada uma.
O que é um caso de uso?
O caso de uso é utilizado para capturar os requisitos do sistema, ou seja, o que o software deve fazer a fim de atender as necessidades das partes interessadas pelo mesmo, partes estas que são conhecidas na área de projetos como stakeholders.
A UML apresenta o diagrama de casos de uso, que permite ao analista agrupar o comportamento esperado do sistema em rotinas de limites muito bem definidos, que farão a interação com os usuários. Contudo, além do diagrama, Ivar Jacobson, o idealizador do conceito de caso de uso (use case), nos oferece a especificação dos requisitos na forma textual. Esse formato, na UML, é chamado de descrições informais, que nada mais são do que os cenários de cada caso de uso. As práticas aconselhadas para a escrita desses cenários foram delineadas por metodologistas que vêm trabalhando para aperfeiçoar essas técnicas de escrita. Entre eles estão: Kurt Bittner, Alistair Cockburn, Gunnar Overgaard e Geri Schneider.
Os principais conceitos associados ao modelo de caso de uso são: atores e casos de uso.
Um ator (actor) representa um papel executado por um usuário ou por outro sistema que interaja com o sistema modelado. O ator não vai representar a pessoa e sim o papel que essa pessoa encena. Dessa forma, pode ser que a secretária Maria possa interagir com o sistema com dois ou mais papéis, o de secretária e o de vendedora.
Um ator é representado visualmente por um ícone conhecido como stick man (homem palito), com o nome do ator abaixo ou acima do desenho. O mais comum é modelarmos abaixo. Outra representação para um ator é mostrá-lo como uma classe estereotipada «actor». Por fim, podemos associar o ator a um ícone específico que indique o tipo do mesmo, como por exemplo a figura de um computador para representar um outro sistema que interaja com o sistema modelado. A vantagem dessa representação é separarmos a identificação visual de atores humanos dos atores não-humanos. Veja esses exemplos na Figura 1.
Figura 1. Representações visuais possíveis para um ator
Um caso de uso (use case) é a especificação de um conjunto de ações executadas por um sistema, produzindo um resultado observável por um ou mais atores, e que são representadas por um cenário principal e cenários alternativos.
O principal objetivo de um caso de uso é mostrar o comportamento oferecido por um sistema (ou parte dele), sem fazer referência a sua estrutura interna. Dessa forma, podemos deduzir que é interessante para o usuário saber que seu cadastro de clientes será atualizado (ou até mesmo gravado), mas não é objetivo do caso de uso dizer que o sistema está gravando a tabela TabClientes.
Sua representação é feita por meio de uma elipse, com os títulos dos casos de uso no seu interior, ou abaixo dele. Veja exemplos na Figura 2.