UML: Diagramas de
Casos de Uso
Casos de uso são diagramas utilizados para mostrar as
principais funcionalidades do sistema. É uma boa ferramenta para identificar em
alto nível as funcionalidades do sistema. É também uma ótima fonte de
comunicação com o cliente.
Os diagramas neste artigo foram criados no StarUML.
Atores
Atores são entidades que se relacionam com o sistema.
Normalmente é um usuário qualquer, mas pode ser também outro sistema, um
dispositivo etc. Atores são representados por um ícone semelhante a um ser
humano:

Nem todos os atores precisam aparecer no sistema, aqueles
nas quais sua participação é implícita podem ser omitidos.
Casos de Uso
Um caso de uso representa uma funcionalidade do sistema. É
representado por uma elipse, contendo o nome do caso de uso internamente:

Relacionamento entre atores
Pode haver dois tipos de relacionamentos entre atores: de comunicação
ou de generalização.
No relacionamento de comunicação ocorre a troca de mensagens
entre os atores:

No relacionamento de generalização, um ator genérico é herdado
por um ator mais especifico, assim como ocorre entre as classes:

Relacionamento entre atores e casos de uso
Um ator pode se comunicar com um ou mais casos de uso, da
mesma forma um caso de uso pode se relacionar com um ou mais atores. O
relacionamento pode indicar o sentido do relacionamento:

Relacionamentos entre casos de uso
Os relacionamentos entre casos de uso podem ser do tipo
inclusão, extensão ou generalização.
No relacionamento de inclusão, o caso de uso é incluído e
passa a fazer parte de outro. As utilidades em decompor um caso de uso para ser
utilizado através de inclusão são muitas, mas entre as principais esta a
possibilidade de decompor casos de uso complexos em partes menores ou mesmo
separar partes que serão utilizadas em vários casos de uso. Veja os dois casos
nos exemplos abaixo:


O relacionamento de extensão é semelhante ao de inclusão no
sentido de que funções são incluídas em outro caso de uso. A diferença é que a
extensão em casos de uso representa uma exceção, ou seja, representa
comportamento não normal do sistema

Já o relacionamento de generalização trata de herança entre
um caso de uso mais genérico para um mais especifico:

Você pode também demonstrar no caso de uso os limites do
sistema, ou seja, indicar o que faz parte do sistema ou o que é externo a ele:
