62
Diagramas UML

Diagramas - profalansantos.files.wordpress.com · Diagramas UML o Os artefatos gráficos produzidos de um sistema OO são definidos através dos diagramas da UML. o A UML ... modelar

Embed Size (px)

Citation preview

Diagramas UML

© LES/PUC-Rio

Uma colagem de diagramas

UML

Diagramas

São representações gráficas de um

conjunto de elementos.

São desenhados para visualizar um

sistema de diferentes perspectivas.

São geralmente representadas como

gráficos de vértices (itens) e arcos

(relacionamentos)

Diagramas UML

o Os artefatos gráficos produzidos de um

sistema OO são definidos através dos

diagramas da UML.

o A UML possui vários diagramas, que

servem para especificar a estrutura de um

sistema.

o Os diagramas da UML estão organizados

em conjuntos ou categorias distintas, cada

categoria visando apoiar um tipo de

modelagem.

Diagramas UML

o A UML define em sua versão 2.4 catorze tipos de

diagramas, divididos em duas categorias:

diagramas estruturais ou estáticos e diagramas

comportamentais ou dinâmicos.

o “A função dos primeiros é mostrar as

características do sistema que não mudam com o

tempo e dos outros como o sistema responde às

requisições ou como evolui com o tempo” (MELO,

2004).

Para que usar os

diagramas UML?

Os diagramas UML são usados para: Ajudar a conceber as ideias, em relação ao sistema que

estivermos projetando;

Pensar antes de codificar;

Apresentar as ideias ao grupo de forma que todos

possam interagir e discutir um determinado ponto;

Aumentar a participação e envolvimento do time;

Documentar as ideias quando elas já estiverem bem

consolidadas para que novos integrantes e novos

colaboradores possam acelerar sua compreensão dos

sistemas desenvolvidos pelo grupo.

Diagrama

de

Objetos

Diagrama

de

Classes

Diagrama

de

Pacotes

Diagrama

Diagrama Comportamental Diagrama Estrutural

Diagrama

de

Componentes

Diagrama

de

Implantação

Diagrama

de Máquina

de Estados

Diagrama

de Casos

de Uso

Diagrama

de

Atividade

Diagrama de Interação

Diagrama

de

Sequência

Diagrama

de

Comunicação

Diagrama

de

Interação

Geral

Diagrama

de

Tempo

- A UML permite o uso de qualquer linguagem

para descrever restrições.

- A única regra é que deve-se usar chaves {}.

- No entanto, existe a OCL (Object Constraint

Language) baseado em cálculos de

predicados.

Diagrama

de

Perfil

Diagrama

de

Estrutura Composta

Diagramas UML

Para que tantos diagramas?

o O objetivo é fornecer múltiplas visões

do software a ser modelado.

o Cada diagrama da UML analisa o

sistema, ou parte dele, sob uma

determinada óptica.

o A utilização de diversos diagramas

permite que falhas sejam descobertas.

Diagramas estruturais

Diagrama de Classes

São os principais diagramas estruturais da

UML

Mostram as diferentes classes que fazem

um sistema e como elas se relacionam.

Mostram classes, interfaces e seus

relacionamentos

As classes especificam a estrutura e o

comportamento dos objetos, que são

instâncias de classes

Diagrama de Classes

São chamados diagramas “estáticos”

porque mostram as classes, com seus

métodos e atributos bem como os

relacionamentos estáticos entre elas:

quais classes “conhecem” ou quais

classes “são parte” de outras classes,

mas não mostram a troca de

mensagens entre elas.

Diagrama de Classes

+confirmar()

+cancelar() -calcularTotal():Currency

gerarNovoCodigo: String

-codigo: Integer

-dataRecebido

-total: Currency

Pedido

#creditoPermitido: Currency

#nivelCredibilidade()

-nome: String

-endereco: String

-dataPrimeiraCompra: Date -dataUltimaCompra: Date

-totalComprado: Currency

Cliente

-quantidade: Integer -preco: Currency

-emEstoque: Boolean

Item de Pedido

nomeContato: String

telefones[1..10]: String

CGC: String FAX[1..3]: String

Cliente pessoa-jurídica

colocarListaNegra()

nome: String

CPF: String

numCartaoCredito

Cliente pessoa-física

Empregado

Produto

* representante

de vendas *

IPessoa

itens

0..* 1 faz

Diagrama de Classes

Diagrama de Classes

Diagrama de Objetos

Descreve a estrutura estática de um

sistema em um determinado momento, ou

seja, representa uma “fotografia” do sistema

em um certo instante.

Mostra objetos e seus relacionamentos,

exibindo as ligações formadas entre objetos

conforme estes interagem e os valores dos

seus atributos.

Diagrama de Objetos

Representam instâncias estáticas de

elementos dos diagramas de classes

Os diagramas de objetos são úteis para a

modelagem de estruturas de dados

complexas

Pode ser usados para testar a precisão dos

diagramas de classe

Diagrama de Objetos

Empregado

João : Empregado

Maria : Empregado

José : Empregado

Antônio : EmpregadoAline : Empregado

Lucas : Empregado

Rafaela : Empregado

Pode ser visto como uma “instância” do

diagrama de classes

Diagrama de Objetos

p2: Professor matricula: "205-6712-09"

nome: "Jaelson Castro"

p1: Professor

codCurso: "IF291"

descrição: "MPS"

codTurma: I7

: Curso

codCurso: "IF185"

descrição: "AER"

codTurma: I6

: Curso

matricula: "219846534"

nome: "Nelson Mandella"

:aluno

matricula: "562746134"

nome: "John Major"

:aluno

: Aluno

: Aluno

: Aluno

: Aluno

c1: Curso

c2: Curso

c3: Curso

Bill

: Aluno : Aluno

Lewinsky

-matrícula: String

-nome: String

Professor

-codDisciplina: String

-descrição: String

-codTurma: String

Curso

-matrícula: String

-nome: String

-período: Integer

Aluno

[0..10]

ministra

[1..5]

*

[1..3]

Diagrama de Pacotes

Um mecanismo de agrupamento geral que pode ser utilizado para agrupar vários artefatos de um modelo.

Notação: uma pasta com uma aba.

Conteúdo, duas maneiras de representar graficamente:

exibir o conteúdo dentro do pacote;

“pendurar” os elementos agrupados no ícone do pacote.

19

Diagrama de Pacotes

Pacotes podem ser agrupados dentro de outros

pacotes, formando uma hierarquia de contenção.

Pode haver relacionamentos de dependência entre

pacotes:

Um pacote P1 é dependente de outro, P2, se houver

qualquer dependência entre quaisquer dois elementos de

P1 e P2.

É muito comum que uma interface e sua

implementação estejam em pacotes distintos

Diagrama de Pacotes

Diagrama de Pacotes

Organizam elementos do

sistema em grupos

relacionados a fim de

minimizar a dependência

entre eles

Diagrama de Implantação

É usado para modelar a arquitetura de

distribuição em que o sistema será

executado

É composto por nós e relacionamentos de

comunicação

Um nó pode ser um computador, uma rede,

um disco rígido, um sensor, etc.

Diagrama de Estrutura

Composta

É utilizado para modelar colaborações

entre interfaces, objetos ou classes.

Diagrama de Implantação

servidorWeb

Autenticação.exe

Cadastro.exe

servidorDeArquivos

FormCadastro.html

Principal.html

FormEntrada.html

servidorBancoDeDados

SGBD

O SGBD a ser utilizado ainda não foi escolhido.

PC - G309

Nestscape Communicator

5.0

Diagrama de Componentes

Descreve a

organização dos

componentes

físicos de software

Ex.: código-fonte,

código em tempo

de execução

(binário) e

executáveis

Diagrama de Componentes

Identifica os

componentes que fazem

parte de um sistema,

um subsistema ou

mesmo os componentes

ou classes internas de

um componente

individual.

Diagrama de Componentes

Mostra os componentes de hardware e

software de uma aplicação e os

relacionamentos entre eles

É usado para modelar o aspecto físico de

um sistema

Exemplos de componentes são

documentos, executáveis e tabelas de

bancos de dados

Diagrama de Componentes

FormCadastro.html

Cadastro.exe

Principal.html

FormEntrada.html

Autenticacao.exe

<<link>>

<<link>> Banco

Usuários

Senhas

Diagrama de Implantação

Descrevem os

recursos físicos em

um sistema,

incluindo nós,

componentes e

conexões

Diagrama de Implantação Enfoca a questão da organização da

arquitetura física sobre o qual o

software irá ser implantado e

executado.

Diagrama de Perfil

Profile Diagram é um diagrama auxiliar que permite definir esteriótipos e constraints. O mecanismo de Perfil foi especificado para prover um mecanismo de extensão para o padrão UML. Perfis permitem adaptar o metamodelo da UML para diferentes: Plataformas (JEE ou .NET), ou

Domínios (tempo real).

Perfil é um tipo de pacote que extends o metamodelo de

referência definindo extensões para este metamodelo por

meio de uma proposta de adaptação para plataformas ou

domínios específicos.

32

Diagrama de Perfil

Diagramas Comportamentais

Modelagem de casos de uso

Representação das funcionalidades

externamente observáveis do sistema

e dos elementos externos ao sistema

que interagem com ele.

É importante, pois direciona diversas

tarefas posteriores do processo de

desenvolvimento de um sistema de

software.

Casos de uso

Um caso de uso representa quem faz o que (interage) com o sistema, sem considerar o comportamento interno do sistema. Um conjunto de cenários, onde cada

cenário é uma sequência de passos a qual descreve uma interação entre um usuário (atores) e o sistema.

Diagrama de Casos de Uso

Modelam a

funcionalidade do

sistema através de

atores e casos de uso

Casos de uso são

serviços ou funções

fornecidas pelo

sistema aos seus

usuários

Diagrama de casos de uso

Corresponde a uma visão externa de

alto nível do sistema.

Representa graficamente os atores, os

casos de uso e o relacionamento entre

esses elementos.

Diagrama de Casos de Uso

São especialmente importantes na

organização e modelagem das principais

funcionalidades de um sistema

Use Case é a especificação de sequências

de ações atender a uma funcionalidade do

sistema, interagindo com seus agentes

Diagrama de Casos de Uso

Estudante

Secretária

<<estende>> Solicitar histórico do semestre atual

Solicitar histórico de todos os semestres

Solicitar histórico

<<estende>>

Verificar dependências

Matricular aluno

<<inclui>> Sistema de controle

de pré-requisitos

Casos de uso

Diagrama de Sequência

Mostra um conjunto de objetos, seus

relacionamentos e as mensagens que

podem ser enviadas entre eles

Descreve as interações entre as classes

através das trocas de mensagens ao logo

do tempo

Diagrama de Sequência Janela de entrada

de pedido p: Pedido : ItemPedido :ItemEstoque

preparar()

* [para cada item do pedido]

preparar()

emEstoque := verificar()

[emEstoque] remover() estoqueBaixo :=

verificEstoqueBaixo()

:ItemRenovEstoque

:ItemEntrega

[estoqueBaixo] <<criar>>

[emEstoque] <<criar>>

Diagrama de Sequência

Diagrama de Colaboração

Mostra um conjunto de objetos, seus

relacionamentos e as mensagens que

enfatizam a organização dos objetos que

trocam mensagens

Janela de entrada

de pedido

p: Pedido

: ItemPedido :ItemEstoque

:ItemRenovEstoque:ItemEntrega

1: preparar()

1.1: *[para cada item do pedido]

preparar()

1.1.1 : emEstoque := verif icar()

1.1.2 : [emEstoque] remover()

1.1.2.1: estoqueBaixo :=

verif icEstoqueBaixo()

1.1.2.2 [estoqueBaixo]

<<criar>>1.1.3 : [emEstoque]

<<criar>>

Diagrama de Colaboração

Representam as

interações entre

objetos em termos de

mensagens em

seqüência

Descrevem tanto a

estrutura estática como

o comportamento

dinâmico do sistema

Diagrama de Colaboração

Diagrama de Estados

Mostra uma máquina contendo estados,

transições, eventos e atividades

Estes diagramas são usados para modelar

o comportamento de objetos (com

comportamento complexo)

Nestes diagramas são modelados os

estados em que um objeto pode estar e os

eventos que fazem o objeto passar de um

estado para outro

Ocioso

Manutenção

fazerManutenção

Validando

Selecionando Processando

Imprimindo

[continuar]

[não continuar]

H

entry / lerCartão

exit / ejetarCartão

cartãoInserido

cancelar

Ativo

Diagrama de Estados

Descrevem o comportamento dinâmico do sistema em resposta a estímulos externos

São especialmente úteis para modelar objetos reativos cujos estados são disparados por eventos específicos

Diagrama de Estados

Diagrama de Atividades

Destaca a lógica de realização de uma

tarefa

Mostra o fluxo entre atividades (ações não-

atômicas)

É semelhante aos antigos fluxogramas

É usado também para modelar alternativas

de execução e atividades concorrentes

Diagrama de Atividades

Diagrama de Atividades

Procurar bebida

[achou café]

H

Pessoa

H [sem café] [sem Coca]

[achou Coca]

Pegar lata de Coca

Beber

Adicionar água à máquina

Colocar café no filtro

Colocar filtro na máquina

Ligar máquina

Filtrar café

Pegar xícara

Colocar café na xícara

Ilustram a natureza dinâmica de um sistema modelando o fluxo de controle de uma atividade para outra

Uma atividade representa uma operação em uma classe do sistema que resulta na mudança do estado do sistema

Tipicamente, são usados para modelar fluxo de trabalho ou processos de negócio e funcionamento interno

Diagrama de Atividades

Diagrama de Interação Geral

São variações de “Diagrama de atividade". Nele,

sequências formam um fluxo de atividades,

mostrando como elas trabalham em uma sequência

de eventos.

Pode ser visto como um Diagrama de Atividade em

que as atividades são substituídas por pequenos

Diagramas de Sequência ou como Diagrama de

Sequência que usam, de forma complementar, a

notação do Diagrama de Atividades para mostrar

controle de fluxo.

Diagrama de Interação Geral

São similares as Diagramas de Fluxo

de procedimentos, com a diferença de

que todas as Atividades são

claramente anexas aos Objetos.

São sempre associados a um Classe,

uma Operação ou um Caso de Uso.

O Umbrello UML Modeller mostrando um Diagrama de Atividade.

Diagrama de Interação Geral

Diagrama de Interação Geral

Diagrama de Tempo

Semelhante ao diagrama de Máquina

de estados, porém enfoca as

mudanças de estado de um objeto ao

longo do tempo, útil para modelagem

de sistemas de tempo real.

Diagrama de Tempo

Forma Concisa

Forma Robusta