#9 - Modelagem Casos de Uso

Comportamento na visão do usuário

Então, vamos falar sobre a modelagem de casos de uso, onde como é descrito no subtítulo é basicamente como se comporta o sistema na visão do usuários que interagem com ele. Segundo um artigo do DevMedia (Leandro Ribeiro) o diagrama de casos de uso é:

"Esse diagrama documenta o que o sistema faz do ponto de vista do usuário. Em outras palavras, ele descreve as principais funcionalidades do sistema e a interação dessas funcionalidades com os usuários do mesmo sistema. Nesse diagrama não nos aprofundamos em detalhes técnicos que dizem como o sistema faz."

Dado essa referência, tem uma coisa muito importante que acho legal ressaltar. Esse tipo de modelagem visa as funcionalidades de maneira de o que o sistema faz e não como ele faz e isso deve ficar bem claro, pois causa muita confusão para algumas pessoas que iniciam no meio. Basicamente essa diferença pode ser explicada com uma analogia. Vamos supor que você tem um carro e tem carteira para dirigi-lo. Importa a você saber como o carro funciona quando vai utilizar ele? a maioria das pessoas dirão que não, pois elas só querem usar o carro e não saber detalhes internos ou coisas do tipo. É exatamente isso que se faz quando se faz o levantamento das principais funcionalidades na modelagem de casos de uso.

Basicamente o diagrama de casos de uso são compostos por três elementos principais:

  •  Atores: são aqueles que interagem com o sistema, ou seja, um tipo de usuário do sistema;
  • Casos de uso: representam as funcionalidades realizadas pelos atores do sistema;
  • Relacionamento/Comunicação: são basicamente linhas que ligam os atores com seus casos de uso, ou seja, interação entre esses elementos.
Dado esses elementos, abaixo está um figura que representam eles.


Figura 1 - Três elementos principais de um Diagrama de Casos de Uso.


Dado toda essa explicação vamos a um exemplo. Vamos supor que se deseja fazer um sistema de uma clínica médica que tem como principais atores paciente/cliente, médico e a atendente/secretária. Como falado anteriormente, sabemos que cada um desses atores possuem funcionalidades, chamado casos de uso, nesse sistema. Para simplificarmos logo isso vamos direto ao diagrama de casos de uso desse exemplo na figura abaixo.

Figura 2 - Exemplo de um Diagrama de Casos de Uso.


Note que de maneira bem simples foram definidos as principais funcionalidades que cada ator executa no sistema. Perceba também que há um relacionamento entre dois casos de uso (marcar consulta e consulta agenda) que é chamada de include. Basicamente existem dois tipos de relacionamento entre casos de uso: include e extend. O include define que para um caso de uso executar ele precisa que outro seja executado antes. Como na figura acima, onde para marcar consultar na agenda precisa consultar antes na agenda para verificar se o médico estará disponível ou não. Já o extend basicamente são casos de uso que podem ser escolhidos, não por necessidade e sim por escolha mesmo, antes de o caso de uso ser executado. Como por exemplo, vamos supor que um cliente vai até um material de construção e solicita o material, mas aí ele tem a escolha de comprar o material ou não. Logo são casos de uso que se estendem (extend).

Como discutido na postagem #8, vamos falar novamente sobre o sistema Bike Vitória <http://www.bikevitoria.com/> e sobre os casos de uso que podem ser levantados assim como seus atores. Um ator que é bem visível desse sistema é o cliente que aluga a bicicleta. E quais seriam os casos de uso desse autor? acabei de falar um: alugar a bicicleta, que seria um dos casos de uso do cliente. E se pensarmos que para ele utilizar a bicicleta alugada ele precisa de adquirir um passe para isso. Logo poderiamos ter uma relação de include entre esses dois casos de uso definidos. Outro caso de uso também muito importante ao sistema seria de cadastro no sistema, onde o cliente pode baixar o aplicativo e fazer seu cadastro. Algo não mencionado, mas que existem nos casos de uso é o chamado descrição dos fluxos de eventos, onde o cadastro no sistema teria uma descrição chamada CRUD (Create, Read, Update and Delete), que são ações que podem ser feitas nesse caso de uso.

Enfim, a modelagem de casos de uso assim como todas outras modelagem dentro de UML são muito importantes para planejar e definir de maneira concisa os requisitos de qualquer sistema que deseja de desenvolver. 


Comentários