13
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

Introdução à UML - institutosiegen.com.brinstitutosiegen.com.br/documentos/euhl.14265315486508.pdf · Introdução à UML O projeto do software é um esquema visual que permite

  • Upload
    vandang

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

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