Fernando Amaral

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:

 

Últimos artigos relacionados:
Dicas para alta produtividade no Visual Studio
Conhecendo o Visual Studio Team System Architecture Edition
Pantanet BirthDay 2009 - Aniversário do Grupo Pantanet
ASP.NET, um Mercado Promissor: Revista TIdigial
Curso de Programando ASP.NET 3.5: Fundamentos