Introdução à UML O projeto do software é um esquema visual que permite a criação do projeto antes de
sua execução ou programação. A Unified Modeling Language (UML), para Guedes
(2011) é uma linguagem visual utilizada para modelar softwares baseados no
paradigma da orientação a objetos. O autor explica ainda que a programação
orientada a objetos é um método de atribuir identidade a scripts que realizem funções
específicas e pertençam a uma parte maior de um software.
A UML é constituída de 14 diagramas com especificidades e representações para
diversas situações, como explica Guedes (2011).
Para criarmos os diagramas, vamos utilizar o NetBeans 8.0 (https://netbeans.org/),
com o plugin PLantUML (http://plugins.netbeans.org/plugin/49069/plantuml) e o
Graphviz(http://www.graphviz.org/) como gerador de imagens.
ArgoUML (http://argouml.tigris.org/)
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �12 29
Diagramas Diagrama de Casos de Uso O diagrama de Casos de Uso, comumente chamado de UC, por questões óbvias, é
normalmente o primeiro a ser desenvolvido. Isto por que ele permite a primeira visão
do sistema numa rápida conversa com o cliente e sua demonstração do uso, da
dinâmica do software, além disto ele serve como guia para o desenvolvimento deste e
é recorrentemente consultado e alterado para se adequar.
O Diagrama de Casos de Uso tem por objetivo apresentar a visão externa das
funcionalidades do sistema, isto é, a visão do usuário sobre o uso do sistema, sem se
preocupar com a implantação destas funções.
Para criar um Diagrama de Casos de Uso é preciso compô-lo de:
Scripts @startuml title Exemplos de Sintaxe de Casos de Uso
'direcionamento 'left to right direction 'top to bottom direction
(Caso de Uso) usecase (Caso de Uso Dois) as CUD :Ator 1: actor Ator2 actor :Outro Ator: as OA
'relação entre atores e casos de uso
:Ator 1: -- (Caso de Uso) 'Uma declarado como ator, chame somente o nome Ator2 -> CUD OA --> (Terceiro \nCaso de Uso) :Ator 4: ---> (Caso de Uso) : Uma mensagem simples
'extensão 'O Caso de Uso Dois leva ao Outro Ator OA <|-- CUD Ator2 --|> OA
'notas de projeto note right of :Ator 4: : Nota de projeto note "Nota em meio de caminho" as N2 CUD .. N2 N2 .. (Terceiro \nCaso de Uso)
'direções e ligações :AtorCentral: (CasoDeUso1)
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �13 29
(CasoDeUso2) (CasoDeUso3) (CasoDeUso4) :AtorCentral: -left- (CasoDeUso1) : associação :AtorCentral: -up-> (CasoDeUso2) : link ou encaminhamento :AtorCentral: .right.> (CasoDeUso3) : <<include>> inclusão :AtorCentral: <.down. (CasoDeUso4) : extensão <<extend>> @enduml
Atores Representa qualquer elemento externo que interaja com o sistema, podendo
ser um usuário, um hardware ou outro software.
@startuml :Ator: @enduml
Casos de Uso Os Casos de Uso servem para expressar o comportamento
primário ou secundário de um sistema. Quando primário ele
é associado às funções para o qual o software foi concebido
e o secundário para funções de manutenção, por exemplo.
Num sistema de cadastro de usuário, o cadastro é a função primária e a edição destes
dados é a função secundária.
@startuml (Caso de Uso) @enduml
Os atores acessam as funcionalidades de um sistema, desta forma eles representam
fracamente um descritivo destas funções, como segue:
@startuml :Usuário: --> (Cadastro de usuário) :Usuário: --> (Editar cadastro) @enduml
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �14 29
No plantUML, você pode definir o ator entre dois pontos ou especificá-lo como actor,
veja:
@startuml 'actor Ator 'ou :Ator: @enduml
O Caso de Uso possui, de forma geral, uma documentação que descreve de forma
sucinta a sequencia de ações do sistema.
Observe que no ator principal, o texto “além de todo conteúdo” foi tachado, pois não
pertence ao Caso de Uso UC 01 que descreve ações de acesso ao sistema.
A continuidade é o descritivo do fluxo de ações do sistema.
Nome do Caso de Uso Descrição
UC 01 Acesso ao sistema
Ator principal: Diretor Cadastra usuários, edita e exclui, além de todo conteúdo
Ator secundário: Gerente Cadastra usuários
Ator terciário: Funcionário Acessa o sistema
Ator quaternário: Usuário Não pode acessar
Nome do Caso de Uso Descrição
UC 01 Acesso ao sistema
1 - Ator solicita acesso por login e senha
2 - Sistema busca no Banco de Dados o login
3 - Caso o usuário seja encontrado, solicita a senha
4 - Caso a senha esteja correta, permite acesso, senão solicita o cadastro
5 - Abre a sessão
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �15 29
Associação é a relação criada entre atores e atores ou casos de uso e casos de uso dentro de um
diagrama. Exemplos:
@startuml :Cliente: -- (Cadastro de clientes) :Cliente: -- (Edita cadastro) :Suporte: -- (Edita cadastro) :Cliente: -- Suporte (Edita cadastro) -- (Cadastro de clientes) : Verifica existência \n do cadastro @enduml
Generalização ou Especialização O diagrama de Especialização
ou Generalização determina um
plano abstrato e o decompõe em
níveis mais baixos, veja:
@startuml (Usuário Diretor) -up-> (Usuário) (Usuário Gerente) -up-> (Usuário) (Usuário Funcionário) -up-> (Usuário) @enduml
Também se especifica as permissões, como segue:
@startuml :Diretor: -- (Cadastra, edita e exclui usuário) :Gerente: -- (Cadastra usuários) :Funcionário: -- (Acessa o sistema) @enduml
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �16 29
Include É utilizado quando uma função é recorrente em um sistema, assim um Caso de uso ou
ator pode chamar este processo e incluí-lo no sistema. De forma geral, o Include é
utilizado quando você deve consultar outro processo para concluir o primeiro, este
outro processo é o Include.
@startuml :Ator 1: --> (Acesso ao Sistema) (Acesso ao Sistema) ..> (Log do sistema) :Ator 2: --> (Excluir dados) (Excluir dados) ..> (Log do sistema) @enduml
O Include é representado pelo
tracejado.
Extend É indicado quando uma excessão é executada
ou uma condição específica, como um
cadastro que é feita apenas na primeira vez.
No extend, em oposição ao Include, a seta é
invertida. De maneira ampla, o Extend é
utilizado quando o processo primário não
pode concluir o serviço, então chama-se outro
extenso a ele, como uma condição.
@startuml :Usuário: --> (Acesso ao Sistema) (Acesso ao Sistema) ..> (Log do sistema)
note "Caso não tenha cadastro \n (Opicional)" as nota1
(Acesso ao Sistema) <.. nota1 nota1 .. (Cadastro de usuário) :Funcionário: --> (Excluir dados) (Excluir dados) ..> (Log do sistema)
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �17 29
note "Confirmação de motivo \n(Opcional)" as nota2
:Funcionário: <.. nota2 nota2 .. :Usuário: @enduml
Multiplicidade Um para muitos ou um para um. Um processo pode ser chamado n vezes por um ator
ou o inverso.
Estereótipos Para representar processos, utiliza-se os sinais << e >>, assim, o processo de validação
de acesso ao sistema, pode ser representado apenas como:
@startuml (<<Acesso>> \n Acesso ao sistema) @enduml
Exercício 1 Crie a UML de um sistema de login simples com validação de login e recriação e
validação de sessão (caso correto) e três páginas protegidas e uma de cadastro.
@startuml title Sistema de login simples left to right direction (Acesso ao Sistema) as AS (Valida Login) as VL (Cadastro) (Página Protegida 1) as PP1
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �18 29
(Página Protegida 2) as PP2 (Página Protegida 3) as PP3 (Valida Sessão) as VS (Menu de Acesso) as MA :master: -- AS :funcionário: -- AS AS --|> VL VL ..> (Cadastro) : <<extend>> VL --|> PP1 PP1 <.. VS : <<include>> PP1 <.. MA : <<include>> PP2 <.. VS : <<include>> PP2 <.. MA : <<include>> PP3 <.. VS : <<include>> PP3 <.. MA : <<include>> (Cadastro) <.. VS @enduml
Documentação de Casos de Uso Casos de Uso de Login Descritivo
UC 01
Ator Cliente 1 - Acessa o sistema
2 - Acessa cadastro de usuário
3 - edita dados próprios se cadastrado
4 - exclui-se do BD
Ator Master 1 - Acessa o sistema
2 - Acessa cadastro de usuário
3 - edita dados próprios se cadastrado
4 - exclui-se do BD
5 - Inclui novos usuários
6 - Exclui usuários
7 - Edita dados de usuários
7.1 - Edita o tipo de usuário como adm/usuário
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �19 29
Fluxo das Informações
Exercício 2 Crie um sistema de controle de petshop. Seus requisitos são:
• Agenda de serviços, animais e clientes;
• Tipo de serviço: Consulta veterinária ou petshop (banho)?;
• Dados par ao serviço (Doença, tosa, castração…);
• Exames a serem marcados pelo veterinário;
• A secretária é o ator agenciador entre clientes, veterinários e agenda do petshop.
Casos de uso de Login
Requisição Resposta
1 - Acessa o sistema
2 - Sistema procura do BD o email e a senha
3 - usuário entra no sistema
4 - acessa página de edição de dados
5 - sai do sistema
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �20 29
Diagrama de Casos de Uso
@startuml title <b>Casos de Uso de uma veterinária</b> :Animal: :Cliente: :Secretária:
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �21 29
:Veterinário: :Tratador: :Animal: -- :Cliente: :Cliente: -- :Secretária: :Secretária: -- (Serviço) : acessa | \nconsulta (Serviço) <-- (Serviço veterinário) (Serviço) <-- (Serviço petshop) :Secretária: -- (Agenda) : acessa | \nconsulta :Secretária: -- (Cadastro veterinário) :Secretária: -- (Cadastro tratador) :Secretária: -- (Cadastro clientes) :Secretária: -- (Cadastro animais) (Cadastro clientes) <.. (Cadastro animais) : <<include>> (Serviço) <.. (Agenda) : <<include>> (Insumos veterinários) <.. (Serviço) : <<include>> :Veterinário: -- (Insumos veterinários) : informa :Veterinário: -- (Cadastro veterinário) (Cadastro veterinário) ..> (Autocadastro) : <<extend>> (Autocadastro) <.. (Tipo função) : <<include>> :Veterinário: -- (Serviço) :Veterinário: -- (Agenda) :Veterinário: -- (Serviço veterinário) note bottom of (Serviço veterinário) : Cadastra novos serviços (Insumos petshop) <.. (Serviço) : <<include>> :Tratador: -- (Insumos petshop) : informa :Tratador: -- (Cadastro tratador) (Cadastro tratador) ..> (Autocadastro) : <<extend>> :Tratador: -- (Serviço) :Tratador: -- (Agenda) :Tratador: -- (Serviço petshop) note bottom of (Serviço petshop) : Cadastra novos serviços @enduml
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �22 29
Documentação de Casos de Uso Casos de Uso Agenda Veterinária Descritivo
UC 01 Acesso à Agenda
Ator Secretária 1 - Consulta horários, agenda novos e desmarca;
2 - Consulta serviços
3 - Cadastra, edita e exclui clientes e animais, veterinários e tratadores.
4 - Emite relatórios
Ator Veterinário 1 - Cadastra-se como veterinário (validado pelo CPF)
2 - Cadastra novos serviços de veterinária
3 - Consulta e marca novos compromissos na agenda
Ator Tratador 1 - Cadastra-se como novo Tratador (validado pelo CPF)
2 - Cadastra novos serviços de petshop
3 - Consulta e marca novos compromissos na agenda
Ator Cliente 1 - Consulta verbalmente o Ator Secretária
Ator Animal 1 - Dependente do Ator Cliente
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �23 29
Fluxo das Informações Casos de uso da Veterinária
Requisição Resposta
1 - O Cliente entra em contato com o Ator Secretária solicitando uma consulta
2 - O Ator Secretária questiona o tipo de serviço
3 - O Ator Cliente descreve o tipo de serviço: Veterinário ou petshop
4 - O Ator Secretária, consulta na Agenda o Serviço e verifica as datas e horários disponíveis por profissional Veterinário ou Tratador;
5 - O Ator Cliente concorda com a data
6 - O Ator Secretária solicita os dados do Ator Cliente, caso não exista no sistema, deve ser cadastrado e o Ator Animal cadastrado como dependente do Ator Cliente; O Ator Secretária associa o profissional ao cliente na data e horário solicitado.
Prof. Erwin Alexander Uhlmann - www.institutosiegen.com.br - Guarulhos, 2015 � de �24 29