SlideShare a Scribd company logo
1 of 82
Download to read offline
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
UML
Ricardo Terra
rterrabh [at] gmail.com
UML 1
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
CV
UML 2
Nome: Ricardo Terra
Email: rterrabh [at] gmail.com
www: ricardoterra.com.br
Twitter: rterrabh
Lattes: lattes.cnpq.br/ 0162081093970868
Ph.D. (UFMG/UWaterloo),
Post-Ph.D. (INRIA/Université Lille 1)
Background
Acadêmico: UFLA (desde 2014), UFSJ (1 ano), FUMEC (3 anos), UNIPAC (1 ano), FAMINAS (3 anos)
Profissional: DBA Eng. (1 ano), Synos (2 anos), Stefanini (1 ano)
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Introdução
UML 3
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 4
O que é UML?
n  UML (Unified Modeling Language) é uma família de notações
gráficas, apoiada por um metamodelo único, que ajuda na
descrição e no projeto de sistemas de software, particularmente
daqueles construídos utilizando o estilo orientado a objetos (OO)
n  Esta definição é um tanto simplificada. Na verdade, para
diferentes pessoas a UML tem significados diferentes
n  As linguagens gráficas de modelagem existem há muito tempo
na indústria do software. O propulsor fundamental por trás de
todas elas é o fato das linguagens de programação não estarem
em um nível de abstração suficiente alto para facilitar discussões
sobre projeto
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 5
O que é UML?
n  A UML é um padrão relativamente aberto, controlado pelo OMG
(Object Management Group), um consórcio aberto de empresas.
O OMG foi formado para estabelecer padrões que suportassem
interoperabilidade, especificamente de sistemas orientados a
objetos. Talvez, o OMG seja mais conhecido pelo padrões
CORBA (Commom Object Request Broker Architecture)
n  A UML nasceu da unificação das muitas linguagens gráficas de
modelagem orientadas a objetos
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 6
Diagramas UML
n  A UML 2.0 descreve 13 (treze) tipos de diagramas oficiais,
indicando que 3 novos diagramas foram inseridos desde sua
última versão
n  Nosso foco na disciplina não é exatamente ver todos, mas sim,
aqueles mais comuns, são os diagramas mais utilizados:
q  Atividades
q  Classes
q  Interação
n  Sequência
n  Colaboração
q  Caso de Uso (CDU)
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 7
Diagramas UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 8
Significado da UML
n  Um dos problemas difíceis da UML é que, embora a
especificação descreva com bastante detalhe o que é UML bem-
formada, ela não tem muito a dizer a respeito do que significa
UML fora do mundo refinado dos metamodelos UML
n  Não existe nenhuma definição formal sobre como a UML é
mapeada para qualquer linguagem de programação específica,
isto é, você não vê um diagrama UML e dizer exatamente qual
seria o código equivalente
Na prática, isto é suficiente para ser útil
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 9
Onde começar com UML?
n  “Ninguém, nem mesmo seus criadores, entende ou utiliza tudo
que há na UML. A maioria das pessoas utiliza um pequeno
subconjunto da UML e trabalha com isto.” (FOWLER, 2005)
n  Podemos pensar em UML como o processo de engenharia de
software RUP. Ambos são muito grandes, todavia ninguém o
usa como um todo. As pessoas/empresas separam o que
realmente acreditam que seja útil e o utilizam
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Diagrama de Atividade
UML 10
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 11
Diagrama de Atividades
n  Os diagramas de atividades são uma técnica para descrever
lógica de procedimento, processo de negócio e fluxo de trabalho
n  Se assemelha aos fluxogramas, mas a principal diferença é o
fato dos diagramas de atividades suportarem comportamento
paralelo
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 12
Diagrama de Atividades
n  Um diagrama de atividades é normalmente composto pelos
seguintes elementos:
q  Atividade
q  Transição
q  Condição de guarda
q  Decisão
q  Ponto de merge
q  Ponto de Início
q  Ponto de Fim
q  Concorrência
n  Bifurcação
n  Sincronização
n  Veremos um pouco de cada um desses
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 13
Atividades e transições
n  Uma atividade é uma etapa em um processo, onde algum
trabalho está sendo realizado
n  A atividade é representada por um retângulo arredondado,
contendo texto em forma livre
n  Um diagrama de atividades é uma série de atividades ligadas
por transições, que são setas conectando cada atividade
n  Normalmente uma transição ocorre quando uma atividade é
concluída
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 14
Atividades e transições
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 15
Condição de Guarda
n  Em algumas situações, a transição só deve ocorrer se
determinada condição ocorra
n  Uma condição de guarda pode ser atribuída com a intenção de
restringir o uso daquela transição
n  A condição de guarda é uma condição dentro de conchetes em
proximidade a seta de transição
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 16
Decisões
n  Assim como no fluxograma, o losango do diagrama de
atividades também representa um ícone de decisão. Uma seta
sai do losango para cada valor possível da condição testada
n  A condição pode ser simples (como um booleano) ou mais
abrangente
n  Cada opção é identificada por meio de uma condição de guarda.
Cada condição de guarda precisa ser mutuamente exclusiva, de
modo que somente uma opção possa ser selecionada a partir da
decisão
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 17
Decisões
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 18
Ponto de merge
n  O ícone de losando também é usado para modelar um ponto de
merge
n  O ponto de merge é um local onde dois caminhos alternativos se
juntam e continuam como apenas 1 caminho
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 19
Ponto de Início e de Fim
n  A UML também oferece ícone para iniciar e terminar um
diagrama de atividade
q  Um ponto sólido indica o início do fluxo de atividades
q  Um “olho de boi” indica o ponto final
n  Somente deve existir um ponto de início por diagrama de
atividade
n  Podem existir vários pontos de fim. Se quiser pode apontar
todas suas transições apontando para o mesmo ponto de fim,
mas todos estes pontos de fim significam a mesma coisa: “Parar
todas as atividades do diagrama”
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 20
Ponto de Início e de Fim
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 21
Concorrência
n  A notação admite concorrência, que permite modelar os
recursos das linguagens que foram criados após a invenção do
fluxograma. Estes recursos são conhecidos como threads ou
processos concorrentes
n  Para demostrar que um processo simples inicia vários outros
processos concorrentemente, o diagrama de atividades utiliza
uma barra simples, chamada bifurcação
q  Cada transição de saída desta bifurcação é uma nova thread
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 22
Concorrência
n  Para a sincronização de diversos processos paralelos é utilizada
a mesma barra, todavia agora conhecida como barra de
sincronização
n  Nesta barra de sincronização, chega diversos processos e saí
apenas uma transição, que indica que o processamento
concorrente acabou e o diagrama de atividades continua como
uma única thread ou processo
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 23
Concorrência
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 24
Exemplo Completo
n  Ver página 119 do livro UML Essencial - 3ª edição.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 25
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Diagrama de Casos de Uso
UML 26
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 27
Casos de Uso
n  Os casos de uso são uma técnica para captar os requisitos
funcionais de um sistema. Eles servem para descrever as
interações típicas entre os usuários de um sistema e o próprio
sistema, fornecendo uma narrativa de como o sistema é utilizado
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 28
Abordagem
n  Nossa abordagem neste estudo será:
q  Diagramas de casos de uso
q  Narrativas de caso de uso
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 29
Narrativa de um caso de uso
n  Não existe nenhuma maneira padronizada para escrever o
conteúdo de um caso de uso e diferentes formatos funcionam
bem em diferentes casos
n  O slide a seguir mostra um estilo comum de uso. Você começa
escolhendo um dos cenários como sendo o cenário principal de
sucesso (CPS). Da início ao corpo do caso de uso escrevendo o
CPS como uma seqüência de passos numerados. Então, pega
os outros cenários e os escreve como extensões, descrevendo-
os em termos de variações em relação ao cenário principal de
sucesso. As extensões podem ser bem-sucedidas – o usuário
atinge o objetivo, como em 3a – ou falhas como em 6a
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 30
Narrativa de um caso de uso
Nome: Comprar produto.
Pré-condições: Cliente com acesso a internet na página inicial do comércio eletrônico.
Cenário Principal de Sucesso:
1. O cliente navega pelo catálogo e seleciona itens para comprar.
2. O cliente vai para o caixa, isto é, fecha o carrinho de compra.
3. O cliente preenche formulário de remessa (forma de pagamento; endereço da entrega; opção de entrega imediata ou em três
dias).
4. O sistema apresenta a informação completa do faturamento, incluindo a remessa.
5. O cliente autoriza a compra.
6. O sistema confirma imediatamente a venda.
7. O sistema envia uma confirmação para o cliente por e-mail.
Extensões:
3a. Cliente regular:
.1: O sistema mostra a informação atual da remessa, a informação do preço e a informação de cobrança.
.2: O cliente pode aceitar ou escrever por cima desses padrões, retornando ao CPS no passo 6.
6a. O sistema falha na autorização de compra a crédito
.1: O cliente pode inserir novamente a informação do cartão de crédito ou cancelar.
Pós-condições: Cliente finaliza sua compra.
Ver figura 9.1 da página 105 do livro UML Essencial – 3ª edição
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 31
Diagrama de Caso de Uso
n  Um diagrama de caso de uso é normalmente
composto pelos seguintes elementos:
q  Ator:
n  Um papel desempenhado por uma pessoa, sistema, dispositivo
ou mesmo uma empresa, que possui interesse na operação
bem-sucedida do sistema
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 32
Diagrama de Caso de Uso
q  Caso de Uso
n  Identifica um comportamento-chave do sistema. Sem esse
comportamento, o sistema não preencherá os requisitos do ator.
Cada caso de uso expressa um objetivo que o sistema precisa
alcançar e/ou um resultado que ele precisa produzir
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 33
Diagrama de Caso de Uso
q  Associação
n  Identifica uma relação entre atores e casos de usos. Cada
associação torna-se um diálogo que deve ser explicado em uma
narrativa de caso de uso. Cada narrativa oferece um conjunto de
cenários como já foi visto anteriormente
Ver figura 12.12 e 12.13 das páginas 320-321 do livro UML, a Bíblia.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 34
Diagrama de Caso de Uso
q  Relacionamento include (inclusão)
n  Identifica um caso de uso reutilizável, que é incorporado
incondicionalmente na execução de outro caso de uso. A
responsabilidade pela decisão sobre quando e por que usar o
caso de uso incluído encontra-se no caso de uso que o chama
Ver figura 12.14 da página 322 do livro UML, a Bíblia.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 35
Diagrama de Caso de Uso
q  Relacionamento extend (extensão)
n  Identifica um caso de uso reutilizável, que interrompe
condicionalmente a execução de outro caso de uso para
aumentar sua funcionalidade. A responsabilidade por decidir
quando o caso de uso estendendo deve ser usado encontra-se
com o caso de uso estendendo
Ver figura 12.15 da página 323 do livro UML, a Bíblia.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 36
Diagrama de Caso de Uso
«extend» X «include»
Include Extend
Aumentam o comportamento do caso de uso básico.
O caso de uso incluído sempre é
utilizado.
O caso de uso de extensão pode ser
usado.
A seta do relacionamento é desenhado do
caso de uso em execução para o caso de
uso incluído.
A seta do relacionamento indica que o
caso de uso básico direciona o caso de
uso incluído para a execução.
A seta do relacionamento é desenhada do
caso de uso de extensão para o caso de
uso em execução.
A seta indica que o caso de uso de
extensão está tomando a decisão se
deverá interromper o caso de uso em
execução.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 37
Diagrama de Caso de Uso
q  Generalização
n  Identifica um relacionamento de herança entre atores.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 38
Diagrama de Caso de Uso – Exemplo
Ver figura 12.4 da página 314 do livro UML, a Bíblia.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 39
Diagrama de Caso de Uso
n  Como construir um diagrama de Caso de Uso (PENDER):
1.  Definir o contexto do sistema:
1.  Identificar atores e suas responsabilidades.
2.  Identificar os casos de uso, os comportamentos do sistema,
em termos de objetivos específicos e/ou resultados que
precisam ser produzidos.
2.  Avaliar os atores e casos de uso para encontrar oportunidades
de refinamento, como divisão ou merge de definições.
3.  Avaliar os casos de uso para encontrar relacionamentos do tipo
«include».
4.  Avaliar os casos de uso para encontrar relacionamentos do tipo
«extend».
5.  Avaliar os atores para oportunidades de generalização
(propriedades compartilhadas)
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 40
Diagrama de Caso de Uso
n  Como construir um diagrama de Caso de Uso (FOWLER):
q  Embora o diagrama de Caso de Uso às vezes seja útil, ele não
é obrigatório. Em seu trabalho com casos de uso, não se
esmere muito no diagrama. Em vez disto, concentre-se na
narrativa (conteúdo textual) do caso de uso.
q  A melhor maneira de pensar em um diagrama de caso de uso é
como um sumário gráfico do conjunto de casos de uso. O
diagrama de casos de uso mostra os atores, os casos de uso e
os relacionamentos entre eles.
n  Quais atores realizam quais casos de uso?
n  Quais casos de uso incluem outros casos de uso?
q  A UML inclui outros relacionamentos entre os casos de uso,
além da inclusão e da extensão, mas não é necessário nos
aprofundarmos a este ponto.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Diagrama de Classe
Existe uma versão mais atualizada deste material como uma seção da
Apostila Java (também publicamente disponível)
UML 41
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Diferenciação entre classe e objeto
n  As classes formam o alicerce do diagrama de classes. Assim, para
trabalhar com diagrama de classes, você precisa ter uma noção
clara da diferença entre classes e objetos. Portanto:
q  Classe é a definição para um recurso. Ela inclui informações que
descrevem os recursos de uma entidade e como ela pode ser utilizada
q  Objetos, ao contrário, são instâncias de uma classe. Pode-se dizer que
um objeto é uma entidade identificável de forma exclusiva de acordo
com as regras definidas pela classe
42UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Diagrama de Classes
n  “Se alguém chegar perto de você em um beco escuro e disser:
“Psiu, quer ver um diagrama UML:”, esse provavelmente seria um
diagrama de classes. A maioria dos diagramas UML que vejo é
composta por diagrama de classes.” (FOWLER, 2005)
n  “O diagrama de classes provavelmente é o diagrama mais utilizado
da UML. Na verdade, o diagrama de classes é a ferramenta de
modelagem principal para descrever a própria UML.” (PENDER,
2004)
43UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Diagrama de Classes
n  Um diagrama de classes descreve os tipos de objetos presentes no
sistema e os vários tipos de relacionamento estáticos existentes
entre eles
n  Os diagramas de classe também mostram as propriedades e
operações de uma classe e as restrições que se aplicam à maneira
como os objetos estão conectados
44UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Classe
n  Uma classe é uma descrição de um conjunto de objetos que
partilham os mesmos atributos, operações, relações e semântica
n  Por exemplo, na classe Cliente, "João da Silva" pode ser
considerado um dos objetos em um sistema que pretende
manipular informação referente aos clientes de uma empresa
45UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Classe
n  Uma classe é descrita por seus aspectos estruturais através de
seus atributos e através de seus aspectos comportamentais através
de suas operações
n  Uma classe (seus atributos e operações) pode ser detalhada
através de sua visibilidade e sua multiplicidade. Uma classe é
representada como mostrado no desenho abaixo:
46UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Operações e Atributos de uma Classe
n  Uma classe é definida nos seus aspectos estruturais através de
seus atributos e nos seus aspectos comportamentais através de
suas operações
n  Uma classe não tem necessariamente que corresponder a uma
entidade humana ou, mais genericamente, a uma entidade com
representação física (por exemplo, uma fatura)
n  Pode-se representar entidades mais abstratas (por exemplo, venda)
47UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Atributos de uma Classe
n  Atributo da classe
q  São propriedades semelhantes que os objetos de uma classe possuem.
O "João da Silva" além do nome, também é caracterizado por outros
atributos, como endereço, número do contribuinte, cpf, rg, etc
q  Cada atributo permite definir um intervalo de valores que as instâncias
dessa propriedade podem apresentar
q  Meu carro é branco, o seu é preto
n  Essas propriedades de carro são descritas pelo atributo cor
48UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Atributos de uma Classe
n  Tanto nos atributos quanto nas operações de uma classe podem
ser especificados detalhes de sua visibilidade e de sua
multiplicidade
n  A sintaxe básica de um atributo é:
[visibilidade] nome-do-atributo : [tipo] { =valor-inicial }
n  Exemplos:
+ nome : String
- salario : double = 1000.00
# nota : int
49UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Operações de uma Classe
n  Operações da Classe
q  O João da Silva possui uma identidade própria, isto é, para a empresa,
ele é distinto de todos os outros clientes
q  Essa identidade não é só descrita pelos atributos. Todos os objetos de
uma classe podem fazer alguma coisa (um serviço) ou pode-se fazer
com ele alguma coisa
q  As operações são responsáveis pela efetivação dos serviços prestados
pelas classes
q  Sobre o cliente "João da Silva" pode-se efetuar várias operações como
emitir-lhe faturas, alterar seu endereço, apagá-lo da base de dados, etc
50UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Operações de uma Classe
n  A sintaxe básica de uma operação é:
[visibilidade] nome-da-operação ( [lista-de-parâmetros] ) : [tipo-retorno]
n  Exemplos:
- mostrar() : void
+ calcularTaxa( valorDolar : double ) : double
# somar (a : int , b: int ) : int
51UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Operações e Atributos Estáticos
n  Uma operação ou um atributo que não pertence a uma instância da
classe, mas à classe como um todo é chamado de operação e
atributo estático, respectivamente
n  Operações e atributos estáticos são compartilhados por todas as
instâncias da classe, mas não pertence a nenhuma instância
52UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Visibilidade
n  Os atributos e operações de uma classe podem ser especificados
para mostrar como a mesma pode ser vista e utilizada pelos outros
elementos do sistema
n  Os níveis de visibilidade para o atributo ou a operação:
q  (+) PÚBLICO:
n  Todas as classes visualizam
q  (-) PRIVADO:
n  Somente a própria classe visualiza
q  (#) PROTEGIDO:
n  Todas as classes do mesmo pacote e sub-classes visualizam
q  (~) PACOTE:
n  Todas as classes do mesmo pacote visualizam
53UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Visibilidade
n  Exemplo:
q  Somente a própria classe tem acesso direto aos atributos do veículo
q  Qualquer classe pode ligar ou desligar o veículo
q  Somente classes do mesmo pacote ou sub-classes podem acelerar ou
frear o veículo
q  Somente a própria classe pode ativar o ABS
q  Somente classes do mesmo pacote podem ver o consumo do veículo
54UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Associação
n  Outra maneira de se criar um atributo é através de uma
associação
n  Associação é uma linha cheia entre duas classes, direcionadas
da classe de origem para a classe de destino. A direção pode
ser nos dois sentidos, o que gera uma Associação Bidirecional
q  Exemplo:
q  Este exemplo indica que um objeto NotaFiscal possui pelo menos
um objeto ItemNotaFiscal.
55UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Associação
n  Ainda no exemplo:
q  Como pode ser visto não deve-se colocar uma associação como
atributo, pois a própria associação já nos diz isto
q  O código Java ficaria assim:
public class NotaFiscal { ! ! ! !!
private List<ItemNotaFiscal> itensNotaFiscal; ! !!
... ! ! ! ! ! ! !
}!
!
public class ItemNotaFiscal{!
private NotaFiscal notaFiscal;!
... !!
}
56UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Classes Associativas
n  Algumas associações de muitos para muitos exige a necessidade
da criação de uma classe associativa entre as duas classes
associadas
n  No exemplo abaixo existe a classe Paciente com seus atributos e a
classe Exame com seus atributos. Do relacionamento entre
Paciente e Exame, tem-se a data da realização e o diagnóstico
Observe:
57UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Multiplicidade
n  A multiplicidade de uma classe é o número de instâncias possíveis
que uma classe pode ter considerando uma única instância da outra
classe a qual ela é associada. Ou seja, é o número de objetos de
uma classe que pode relacionar com um único objeto de uma outra
classe
n  Multiplicidades são números simples ou intervalos de números. A
tabela abaixo exemplifica os tipos comuns de multiplicidades
0..1 Uma instância opcional.
1 Exatamente uma instância.
0..* Zero ou mais instâncias.
1..* Pelo menos uma instância.
58UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Multiplicidade
n  No exemplo abaixo, um pedido pode estar vinculado a um único
cliente, porém um cliente poderá possuir qualquer quantidade de
pedidos
n  E esses?
59UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Generalização
n  Trata-se da ação de uma classe herdar toda a estrutura de uma
outra classe
q  Uma sub-classe sempre herda de sua super-classe:
n  Atributos
n  Operações
n  Relacionamentos
q  Uma sub-classe pode:
n  Adicionar atributos e operações
n  Adicionar relacionamentos
n  Sobrepôr (override) operações herdadas
n  Sobrecarregar (overload) operações herdadas
n  Uma sub-classe sempre herda tudo de sua super-classe, isto é, não
tem como herdar somente alguns atributos ou operações
60UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Generalização
n  Exemplo:
q  ContaCorrente é um tipo de Conta
q  ContaPoupanca é um tipo de Conta
61UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Pacotes
n  Um pacote é um mecanismo de agrupamento
n  Pode ser utilizado para agrupar qualquer elemento UML (como
casos de uso, atores, classes, componentes e outros pacotes)
n  Geralmente utizada para especificar uma distribuição lógica
62UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Pacotes
n  Os pacotes em um diagrama de classes são altamente utilizados,
pois, na implementação do sistema, a organização das classes são
sempre feitas utilizando pacotes
63UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Notas e Comentários
n  Assim como todo diagrama UML pode ser inseridos notas ou
comentários
64UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Cuidado
n  Diagrama de Classes não é um modelo ER
n  O maior perigo com os diagramas de classes é que você pode
focalizar exclusivamente na estrutura e ignorar o comportamento
65UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Exercício de Fixação 01
n  A gráfica ABC trabalha com diversos autores que escrevem
os livros que ela publica. Alguns autores escreveram apenas
um livro, enquanto outros já escreveram vários. Além disso,
alguns livros foram escritos por vários autores, porém um livro
deve possuir pelo menos um autor. A gráfica ABC trabalha
também com diversas impressoras, porém um livro só pode
ser impresso em uma única impressora.
Deve ser possível buscar os livros de um autor, saber qual foi
a impressora em que o livro foi impresso, saber a quantidade
de páginas que uma impressora já imprimiu e a quantidade
de páginas que ela imprimiu de um determinado livro, entre
outros.
66UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Exercício de Fixação 01 - Solução
67UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Exercício de Fixação 02
n  Um veículo tem chassi, modelo, peso, ano de
fabricação. Um veículo não existe por si só, ele deve ser
um avião ou um carro. Todo veículo liga e desliga. Um
carro acelera e freia e um avião decola, voa e pousa.
68UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Exercício de Fixação 03
n  Um imóvel possui um endereço, área (em m2) e um proprietário. O
imóvel pode ser uma casa ou um apartamento. Caso seja casa
possuirá também o número do registro do lote e, caso seja
apartamento, possuirá o número do andar e um flag indicando se
possui ou não elevador. Um proprietário possui cpf, nome e
telefone.
Pelo menos as seguintes operações devem existir:
n  Alterar a área de um imóvel
n  Alterar o proprietário de um imóvel
n  Alterar o flag se possui ou não elevador do apartamento
n  Recuperar a quantidade de imóveis de um proprietário
n  Alterar o telefone de um proprietário
n  PS: Atenção com os parâmetros e com o tipo de retorno das operações
69UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Exercício de Fixação 04
n  Uma pessoa possui cpf e nome. Um professor é uma pessoa que também possui uma titulação e
a IES (Instituição de Ensino Superior) vinculada. Um aluno também é uma pessoa e possui a
informação de qual período se encontra e qual o seu curso (um curso possui um registro do
MEC, um nome e sua área de concentração).
Uma palestra possui um nome e um assunto e pode ser ministrada por diversos professores.
Para cada professor ministrando cada palestra, deve constar a data e a localização (rua, número,
bairro, cidade, estado e telefone) deste evento e, um aluno, pode assistir vários destes eventos.
Pelo menos as seguintes operações devem existir:
q  Alterar o nome de uma pessoa;
q  Alterar a titulação de um professor;
q  Alterar a IES de um professor;
q  Alterar o período em curso de um aluno;
q  Alterar o curso de um aluno;
q  Alterar o registro do MEC de um curso;
q  Alterar o nome de uma palestra;
q  Alterar a data de um evento;
q  Alterar a localização de um evento;
q  Alterar o telefone de uma localização.
70UML
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
Diagrama de Interação
UML 71
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 72
Diagramas de Interação
n  Os diagramas de interação mostram como os objetos interagem uns
com os outros. Permitem assim modelar os aspectos dinâmicos de
um sistema. Existem dois tipos de diagramas de interação:
q  Diagrama de Seqüência
q  Diagrama de Colaboração
n  O diagrama de colaboração pode ser usado para mostrar como os
objetos em um sistema interagem sobre múltiplos casos de uso .
n  Por outro lado, um diagrama de seqüência é tipicamente usado
para mostrar a interação de objetos em um único caso de uso.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 73
Objeto da Classe
n  Objeto de Classe é uma instância de uma classe, isto é, uma
manifestação concreta de algo abstrato.
n  No exemplo acima, existe a definição da classe Carro e dois
objetos desta classe.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 74
Mensagens
n  Uma mensagem é a remessa de um sinal ou a chamada de uma
operação de um objeto (o emissor) para um ou mais objetos (receptor).
n  A mensagem é o elemento principal do diagrama de interação.
n  Uma mensagem é representada graficamente como uma seta (do
emissor ao receptor), acima do qual pode-se colocar um nome
(geralmente o nome da operação) e um número de sequência.
n  No exemplo acima, o objeto emissor (:Motorista) invoca o método ligar
do objeto receptor (:Carro).
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 75
Mensagens
n  Existem diversos tipos de
mensagens, tais como
mensagem síncronas
( m a i s u s a d a s ) ,
assícronas, de retorno,
a u t o - r e f e r ê n c i a e
temporizada, observe a
diferença entre elas.
Seta Tipo Descrição
Síncrona Envio de mensagens síncronas.
Assíncrona É uma mensagem que não
bloqueia o emissor. Isto é, o
emissor e o receptor executam
concorrentemente.
Retorno Indica o retorno do controle
após uma nova mensagem ter
sido enviada
Auto-
referência
Usada quando um objeto
n e c e s s i t a e n v i a r u m a
mensagem para ele mesmo.
Temporizada Indica que a mensagem enviada
possui tempo de vida.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 76
Diagrama de Seqüência
n  O diagrama de seqüência, como um dos dois tipos de diagrama de
interação, mostra a interação existente num conjunto de objetos e
seus relacionamentos, dando ênfase à ordenação temporal de
mensagens.
n  Nesse diagrama, colocam-se os objetos de classes que participam de
interação no topo (eixo X), o objeto que inicia a interação é colocado
mais à esquerda e os demais vão sendo colocados à direita. As
mensagens trocadas são dispostas ao longo do eixo dos Y, de acordo
com os vínculos entre os objetos da classe, e em ordem crescente do
tempo.
n  Os diagramas de sequência diferenciam dos diagramas de
colaboração por apresentar linhas de vida e barras de ativação.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 77
Linhas de Vida
n  Linhas de vida são linhas verticais tracejadas que indicam a existência
do objeto no tempo.
q  Recomenda-se que todos os objetos a serem utilizados sejam inseridos já
no início do diagrama com sua respectiva linha de vida, observe:
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009
n  Barras de ativação representam o tempo que um objeto necessita
para completar uma tarefa. As barras mostram o tempo em que objeto
está ativo.
q  As barras de ativação são representadas graficamente por um retângulo alto
e estreito, colocado no eixo Y, sobre as linhas de vida dos objetos.
n  Observe exemplo no próximo slide.
UML 78
Barras de Ativação
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 79
Diagrama de Sequência
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 80
Diagrama de Colaboração
n  O diagrama de colaboração, como um dos dois tipos de diagrama de
interação, mostra a interação existente num conjunto de objetos e seus
relacionamentos, dando ênfase à organização estrutural dos objetos.
n  O diagrama mostra os objetos das classes que participam da
interação, mostrando os vínculos entre os mesmos, descrevendo as
mensagens que os objetos recebem e enviam.
n  Os diagramas de colaboração diferenciam-se dos diagramas de
seqüências nestes aspectos:
q  Existe um caminho que indica como o objeto está vinculado a outro.
q  Existe um número de seqüência para indicar a ordem temporal de uma
mensagem.
n  No diagrama de seqüência é altamente recomendado, mas é opcional.
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 81
Diagrama de Colaboração
Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 82
Referência Bibliográfica
n  FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman,
2005.
n  PENDER, Tom. UML, a Bíblia. 2 reimp. Rio de Janeiro:
Campus, 2004.

More Related Content

What's hot

Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Leinylson Fontinele
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane FidelixCris Fidelix
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageCloves da Rocha
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLRildo (@rildosan) Santos
 
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...Leinylson Fontinele
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAndré Constantino da Silva
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de EstadosMaikynata
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores claudioatx
 

What's hot (20)

Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Uml
UmlUml
Uml
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Padrões MVC
Padrões MVCPadrões MVC
Padrões MVC
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
Introdução à Computação - Aula Prática 3 - Banco de Dados (Conversão do model...
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de Estados
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Scrum
ScrumScrum
Scrum
 

Viewers also liked (20)

UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Uml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UMLUml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UML
 
Apostila UML
Apostila UML Apostila UML
Apostila UML
 
Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao Restaurante
 
UML
UMLUML
UML
 
Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UML
 
Análise e Modelagem com UML
Análise e Modelagem com UMLAnálise e Modelagem com UML
Análise e Modelagem com UML
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
UML
UMLUML
UML
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 
Cibersexoexpandido
CibersexoexpandidoCibersexoexpandido
Cibersexoexpandido
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Gerência de Projetos de Software - Aula 2
Gerência de Projetos de Software - Aula 2Gerência de Projetos de Software - Aula 2
Gerência de Projetos de Software - Aula 2
 
Gerência de Projetos de Software - Aula 3
Gerência de Projetos de Software - Aula 3Gerência de Projetos de Software - Aula 3
Gerência de Projetos de Software - Aula 3
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Programação Orientada a Aspectos
Programação Orientada a AspectosProgramação Orientada a Aspectos
Programação Orientada a Aspectos
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Ferramentas Livres para UML
Ferramentas Livres para UMLFerramentas Livres para UML
Ferramentas Livres para UML
 
Apostila de poo em c++
Apostila de poo em c++Apostila de poo em c++
Apostila de poo em c++
 

Similar to UML Diagramas e Casos de Uso para Sistema de Comércio Eletrônico

Aula 12 - Diagrama de Atividades.pdf
Aula 12 - Diagrama de Atividades.pdfAula 12 - Diagrama de Atividades.pdf
Aula 12 - Diagrama de Atividades.pdfIvanFontainha
 
Modelagem temporal uml diag de atividade
Modelagem temporal uml   diag de atividadeModelagem temporal uml   diag de atividade
Modelagem temporal uml diag de atividadeOsiel Marlon Negrão
 
Tema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_taTema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_taPedro A. Uamusse
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfBNBN31
 
Automação industrial em grafcet
Automação industrial em grafcetAutomação industrial em grafcet
Automação industrial em grafcetRicardo Akerman
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosgjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2Leandro Lopes
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsHelder da Rocha
 
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre..."Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...lccausp
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Uml caso de estudo
Uml   caso de estudoUml   caso de estudo
Uml caso de estudoRafael Zeen
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSIAula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSIMaria Alice Jovinski
 

Similar to UML Diagramas e Casos de Uso para Sistema de Comércio Eletrônico (20)

Aula 12 - Diagrama de Atividades.pdf
Aula 12 - Diagrama de Atividades.pdfAula 12 - Diagrama de Atividades.pdf
Aula 12 - Diagrama de Atividades.pdf
 
Aula-04-UML.pptx
Aula-04-UML.pptxAula-04-UML.pptx
Aula-04-UML.pptx
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
algoritmo construção
algoritmo construçãoalgoritmo construção
algoritmo construção
 
Modelagem temporal uml diag de atividade
Modelagem temporal uml   diag de atividadeModelagem temporal uml   diag de atividade
Modelagem temporal uml diag de atividade
 
Tema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_taTema 7 a_dicionario_de_dados_arvore_e_ta
Tema 7 a_dicionario_de_dados_arvore_e_ta
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdf
 
Automação industrial em grafcet
Automação industrial em grafcetAutomação industrial em grafcet
Automação industrial em grafcet
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
 
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre..."Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Uml caso de estudo
Uml   caso de estudoUml   caso de estudo
Uml caso de estudo
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSIAula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
 

More from Ricardo Terra

Microsserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORMMicrosserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORMRicardo Terra
 
Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Ricardo Terra
 
Análise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesAnálise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesRicardo Terra
 
Engenharia de Software: POC
Engenharia de Software: POCEngenharia de Software: POC
Engenharia de Software: POCRicardo Terra
 
Which Programming Language is the best one?
Which Programming Language is the best one?Which Programming Language is the best one?
Which Programming Language is the best one?Ricardo Terra
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática ComputacionalRicardo Terra
 
English---and LaTeX---Writing Tips
English---and LaTeX---Writing TipsEnglish---and LaTeX---Writing Tips
English---and LaTeX---Writing TipsRicardo Terra
 
Casamento de Padrões
Casamento de PadrõesCasamento de Padrões
Casamento de PadrõesRicardo Terra
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Ricardo Terra
 
Segurança da Internet
Segurança da InternetSegurança da Internet
Segurança da InternetRicardo Terra
 
Java Net: Interagindo com a Internet
Java Net: Interagindo com a InternetJava Net: Interagindo com a Internet
Java Net: Interagindo com a InternetRicardo Terra
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureRicardo Terra
 
Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)Ricardo Terra
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTRicardo Terra
 
Java JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDBJava JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDBRicardo Terra
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de CódigoRicardo Terra
 

More from Ricardo Terra (20)

Microsserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORMMicrosserviços com Spring Boot e ORM
Microsserviços com Spring Boot e ORM
 
Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)Apostila Linguagens Formais e Autômatos (LFA)
Apostila Linguagens Formais e Autômatos (LFA)
 
Análise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesAnálise Estática de Código: Aplicações
Análise Estática de Código: Aplicações
 
Engenharia de Software: POC
Engenharia de Software: POCEngenharia de Software: POC
Engenharia de Software: POC
 
Which Programming Language is the best one?
Which Programming Language is the best one?Which Programming Language is the best one?
Which Programming Language is the best one?
 
Refactoring
RefactoringRefactoring
Refactoring
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática Computacional
 
English---and LaTeX---Writing Tips
English---and LaTeX---Writing TipsEnglish---and LaTeX---Writing Tips
English---and LaTeX---Writing Tips
 
Casamento de Padrões
Casamento de PadrõesCasamento de Padrões
Casamento de Padrões
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)
 
Segurança da Internet
Segurança da InternetSegurança da Internet
Segurança da Internet
 
Java Net: Interagindo com a Internet
Java Net: Interagindo com a InternetJava Net: Interagindo com a Internet
Java Net: Interagindo com a Internet
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Aula Zero
Aula ZeroAula Zero
Aula Zero
 
Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Apostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLTApostila XML, DTD, XSD e XSLT
Apostila XML, DTD, XSD e XSLT
 
Java JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDBJava JDBC: Aplicação Java que acessa um SGDB
Java JDBC: Aplicação Java que acessa um SGDB
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de Código
 

Recently uploaded

Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfangelicass1
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...Martin M Flynn
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbyasminlarissa371
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxacaciocarmo1
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira partecoletivoddois
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfNoções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfdottoor
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfpaulafernandes540558
 

Recently uploaded (20)

Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Mapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdfMapas Mentais - Português - Principais Tópicos.pdf
Mapas Mentais - Português - Principais Tópicos.pdf
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
 
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbv19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
v19n2s3a25.pdfgcbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptx
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parte
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdfNoções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
Slides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdfSlides criatividade 01042024 finalpdf Portugues.pdf
Slides criatividade 01042024 finalpdf Portugues.pdf
 

UML Diagramas e Casos de Uso para Sistema de Comércio Eletrônico

  • 1. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 UML Ricardo Terra rterrabh [at] gmail.com UML 1
  • 2. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 CV UML 2 Nome: Ricardo Terra Email: rterrabh [at] gmail.com www: ricardoterra.com.br Twitter: rterrabh Lattes: lattes.cnpq.br/ 0162081093970868 Ph.D. (UFMG/UWaterloo), Post-Ph.D. (INRIA/Université Lille 1) Background Acadêmico: UFLA (desde 2014), UFSJ (1 ano), FUMEC (3 anos), UNIPAC (1 ano), FAMINAS (3 anos) Profissional: DBA Eng. (1 ano), Synos (2 anos), Stefanini (1 ano)
  • 3. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Introdução UML 3
  • 4. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 4 O que é UML? n  UML (Unified Modeling Language) é uma família de notações gráficas, apoiada por um metamodelo único, que ajuda na descrição e no projeto de sistemas de software, particularmente daqueles construídos utilizando o estilo orientado a objetos (OO) n  Esta definição é um tanto simplificada. Na verdade, para diferentes pessoas a UML tem significados diferentes n  As linguagens gráficas de modelagem existem há muito tempo na indústria do software. O propulsor fundamental por trás de todas elas é o fato das linguagens de programação não estarem em um nível de abstração suficiente alto para facilitar discussões sobre projeto
  • 5. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 5 O que é UML? n  A UML é um padrão relativamente aberto, controlado pelo OMG (Object Management Group), um consórcio aberto de empresas. O OMG foi formado para estabelecer padrões que suportassem interoperabilidade, especificamente de sistemas orientados a objetos. Talvez, o OMG seja mais conhecido pelo padrões CORBA (Commom Object Request Broker Architecture) n  A UML nasceu da unificação das muitas linguagens gráficas de modelagem orientadas a objetos
  • 6. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 6 Diagramas UML n  A UML 2.0 descreve 13 (treze) tipos de diagramas oficiais, indicando que 3 novos diagramas foram inseridos desde sua última versão n  Nosso foco na disciplina não é exatamente ver todos, mas sim, aqueles mais comuns, são os diagramas mais utilizados: q  Atividades q  Classes q  Interação n  Sequência n  Colaboração q  Caso de Uso (CDU)
  • 7. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 7 Diagramas UML
  • 8. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 8 Significado da UML n  Um dos problemas difíceis da UML é que, embora a especificação descreva com bastante detalhe o que é UML bem- formada, ela não tem muito a dizer a respeito do que significa UML fora do mundo refinado dos metamodelos UML n  Não existe nenhuma definição formal sobre como a UML é mapeada para qualquer linguagem de programação específica, isto é, você não vê um diagrama UML e dizer exatamente qual seria o código equivalente Na prática, isto é suficiente para ser útil
  • 9. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 9 Onde começar com UML? n  “Ninguém, nem mesmo seus criadores, entende ou utiliza tudo que há na UML. A maioria das pessoas utiliza um pequeno subconjunto da UML e trabalha com isto.” (FOWLER, 2005) n  Podemos pensar em UML como o processo de engenharia de software RUP. Ambos são muito grandes, todavia ninguém o usa como um todo. As pessoas/empresas separam o que realmente acreditam que seja útil e o utilizam
  • 10. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Diagrama de Atividade UML 10
  • 11. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 11 Diagrama de Atividades n  Os diagramas de atividades são uma técnica para descrever lógica de procedimento, processo de negócio e fluxo de trabalho n  Se assemelha aos fluxogramas, mas a principal diferença é o fato dos diagramas de atividades suportarem comportamento paralelo
  • 12. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 12 Diagrama de Atividades n  Um diagrama de atividades é normalmente composto pelos seguintes elementos: q  Atividade q  Transição q  Condição de guarda q  Decisão q  Ponto de merge q  Ponto de Início q  Ponto de Fim q  Concorrência n  Bifurcação n  Sincronização n  Veremos um pouco de cada um desses
  • 13. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 13 Atividades e transições n  Uma atividade é uma etapa em um processo, onde algum trabalho está sendo realizado n  A atividade é representada por um retângulo arredondado, contendo texto em forma livre n  Um diagrama de atividades é uma série de atividades ligadas por transições, que são setas conectando cada atividade n  Normalmente uma transição ocorre quando uma atividade é concluída
  • 14. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 14 Atividades e transições
  • 15. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 15 Condição de Guarda n  Em algumas situações, a transição só deve ocorrer se determinada condição ocorra n  Uma condição de guarda pode ser atribuída com a intenção de restringir o uso daquela transição n  A condição de guarda é uma condição dentro de conchetes em proximidade a seta de transição
  • 16. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 16 Decisões n  Assim como no fluxograma, o losango do diagrama de atividades também representa um ícone de decisão. Uma seta sai do losango para cada valor possível da condição testada n  A condição pode ser simples (como um booleano) ou mais abrangente n  Cada opção é identificada por meio de uma condição de guarda. Cada condição de guarda precisa ser mutuamente exclusiva, de modo que somente uma opção possa ser selecionada a partir da decisão
  • 17. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 17 Decisões
  • 18. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 18 Ponto de merge n  O ícone de losando também é usado para modelar um ponto de merge n  O ponto de merge é um local onde dois caminhos alternativos se juntam e continuam como apenas 1 caminho
  • 19. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 19 Ponto de Início e de Fim n  A UML também oferece ícone para iniciar e terminar um diagrama de atividade q  Um ponto sólido indica o início do fluxo de atividades q  Um “olho de boi” indica o ponto final n  Somente deve existir um ponto de início por diagrama de atividade n  Podem existir vários pontos de fim. Se quiser pode apontar todas suas transições apontando para o mesmo ponto de fim, mas todos estes pontos de fim significam a mesma coisa: “Parar todas as atividades do diagrama”
  • 20. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 20 Ponto de Início e de Fim
  • 21. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 21 Concorrência n  A notação admite concorrência, que permite modelar os recursos das linguagens que foram criados após a invenção do fluxograma. Estes recursos são conhecidos como threads ou processos concorrentes n  Para demostrar que um processo simples inicia vários outros processos concorrentemente, o diagrama de atividades utiliza uma barra simples, chamada bifurcação q  Cada transição de saída desta bifurcação é uma nova thread
  • 22. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 22 Concorrência n  Para a sincronização de diversos processos paralelos é utilizada a mesma barra, todavia agora conhecida como barra de sincronização n  Nesta barra de sincronização, chega diversos processos e saí apenas uma transição, que indica que o processamento concorrente acabou e o diagrama de atividades continua como uma única thread ou processo
  • 23. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 23 Concorrência
  • 24. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 24 Exemplo Completo n  Ver página 119 do livro UML Essencial - 3ª edição.
  • 25. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 25
  • 26. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Diagrama de Casos de Uso UML 26
  • 27. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 27 Casos de Uso n  Os casos de uso são uma técnica para captar os requisitos funcionais de um sistema. Eles servem para descrever as interações típicas entre os usuários de um sistema e o próprio sistema, fornecendo uma narrativa de como o sistema é utilizado
  • 28. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 28 Abordagem n  Nossa abordagem neste estudo será: q  Diagramas de casos de uso q  Narrativas de caso de uso
  • 29. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 29 Narrativa de um caso de uso n  Não existe nenhuma maneira padronizada para escrever o conteúdo de um caso de uso e diferentes formatos funcionam bem em diferentes casos n  O slide a seguir mostra um estilo comum de uso. Você começa escolhendo um dos cenários como sendo o cenário principal de sucesso (CPS). Da início ao corpo do caso de uso escrevendo o CPS como uma seqüência de passos numerados. Então, pega os outros cenários e os escreve como extensões, descrevendo- os em termos de variações em relação ao cenário principal de sucesso. As extensões podem ser bem-sucedidas – o usuário atinge o objetivo, como em 3a – ou falhas como em 6a
  • 30. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 30 Narrativa de um caso de uso Nome: Comprar produto. Pré-condições: Cliente com acesso a internet na página inicial do comércio eletrônico. Cenário Principal de Sucesso: 1. O cliente navega pelo catálogo e seleciona itens para comprar. 2. O cliente vai para o caixa, isto é, fecha o carrinho de compra. 3. O cliente preenche formulário de remessa (forma de pagamento; endereço da entrega; opção de entrega imediata ou em três dias). 4. O sistema apresenta a informação completa do faturamento, incluindo a remessa. 5. O cliente autoriza a compra. 6. O sistema confirma imediatamente a venda. 7. O sistema envia uma confirmação para o cliente por e-mail. Extensões: 3a. Cliente regular: .1: O sistema mostra a informação atual da remessa, a informação do preço e a informação de cobrança. .2: O cliente pode aceitar ou escrever por cima desses padrões, retornando ao CPS no passo 6. 6a. O sistema falha na autorização de compra a crédito .1: O cliente pode inserir novamente a informação do cartão de crédito ou cancelar. Pós-condições: Cliente finaliza sua compra. Ver figura 9.1 da página 105 do livro UML Essencial – 3ª edição
  • 31. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 31 Diagrama de Caso de Uso n  Um diagrama de caso de uso é normalmente composto pelos seguintes elementos: q  Ator: n  Um papel desempenhado por uma pessoa, sistema, dispositivo ou mesmo uma empresa, que possui interesse na operação bem-sucedida do sistema
  • 32. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 32 Diagrama de Caso de Uso q  Caso de Uso n  Identifica um comportamento-chave do sistema. Sem esse comportamento, o sistema não preencherá os requisitos do ator. Cada caso de uso expressa um objetivo que o sistema precisa alcançar e/ou um resultado que ele precisa produzir
  • 33. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 33 Diagrama de Caso de Uso q  Associação n  Identifica uma relação entre atores e casos de usos. Cada associação torna-se um diálogo que deve ser explicado em uma narrativa de caso de uso. Cada narrativa oferece um conjunto de cenários como já foi visto anteriormente Ver figura 12.12 e 12.13 das páginas 320-321 do livro UML, a Bíblia.
  • 34. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 34 Diagrama de Caso de Uso q  Relacionamento include (inclusão) n  Identifica um caso de uso reutilizável, que é incorporado incondicionalmente na execução de outro caso de uso. A responsabilidade pela decisão sobre quando e por que usar o caso de uso incluído encontra-se no caso de uso que o chama Ver figura 12.14 da página 322 do livro UML, a Bíblia.
  • 35. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 35 Diagrama de Caso de Uso q  Relacionamento extend (extensão) n  Identifica um caso de uso reutilizável, que interrompe condicionalmente a execução de outro caso de uso para aumentar sua funcionalidade. A responsabilidade por decidir quando o caso de uso estendendo deve ser usado encontra-se com o caso de uso estendendo Ver figura 12.15 da página 323 do livro UML, a Bíblia.
  • 36. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 36 Diagrama de Caso de Uso «extend» X «include» Include Extend Aumentam o comportamento do caso de uso básico. O caso de uso incluído sempre é utilizado. O caso de uso de extensão pode ser usado. A seta do relacionamento é desenhado do caso de uso em execução para o caso de uso incluído. A seta do relacionamento indica que o caso de uso básico direciona o caso de uso incluído para a execução. A seta do relacionamento é desenhada do caso de uso de extensão para o caso de uso em execução. A seta indica que o caso de uso de extensão está tomando a decisão se deverá interromper o caso de uso em execução.
  • 37. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 37 Diagrama de Caso de Uso q  Generalização n  Identifica um relacionamento de herança entre atores.
  • 38. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 38 Diagrama de Caso de Uso – Exemplo Ver figura 12.4 da página 314 do livro UML, a Bíblia.
  • 39. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 39 Diagrama de Caso de Uso n  Como construir um diagrama de Caso de Uso (PENDER): 1.  Definir o contexto do sistema: 1.  Identificar atores e suas responsabilidades. 2.  Identificar os casos de uso, os comportamentos do sistema, em termos de objetivos específicos e/ou resultados que precisam ser produzidos. 2.  Avaliar os atores e casos de uso para encontrar oportunidades de refinamento, como divisão ou merge de definições. 3.  Avaliar os casos de uso para encontrar relacionamentos do tipo «include». 4.  Avaliar os casos de uso para encontrar relacionamentos do tipo «extend». 5.  Avaliar os atores para oportunidades de generalização (propriedades compartilhadas)
  • 40. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 40 Diagrama de Caso de Uso n  Como construir um diagrama de Caso de Uso (FOWLER): q  Embora o diagrama de Caso de Uso às vezes seja útil, ele não é obrigatório. Em seu trabalho com casos de uso, não se esmere muito no diagrama. Em vez disto, concentre-se na narrativa (conteúdo textual) do caso de uso. q  A melhor maneira de pensar em um diagrama de caso de uso é como um sumário gráfico do conjunto de casos de uso. O diagrama de casos de uso mostra os atores, os casos de uso e os relacionamentos entre eles. n  Quais atores realizam quais casos de uso? n  Quais casos de uso incluem outros casos de uso? q  A UML inclui outros relacionamentos entre os casos de uso, além da inclusão e da extensão, mas não é necessário nos aprofundarmos a este ponto.
  • 41. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Diagrama de Classe Existe uma versão mais atualizada deste material como uma seção da Apostila Java (também publicamente disponível) UML 41
  • 42. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Diferenciação entre classe e objeto n  As classes formam o alicerce do diagrama de classes. Assim, para trabalhar com diagrama de classes, você precisa ter uma noção clara da diferença entre classes e objetos. Portanto: q  Classe é a definição para um recurso. Ela inclui informações que descrevem os recursos de uma entidade e como ela pode ser utilizada q  Objetos, ao contrário, são instâncias de uma classe. Pode-se dizer que um objeto é uma entidade identificável de forma exclusiva de acordo com as regras definidas pela classe 42UML
  • 43. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Diagrama de Classes n  “Se alguém chegar perto de você em um beco escuro e disser: “Psiu, quer ver um diagrama UML:”, esse provavelmente seria um diagrama de classes. A maioria dos diagramas UML que vejo é composta por diagrama de classes.” (FOWLER, 2005) n  “O diagrama de classes provavelmente é o diagrama mais utilizado da UML. Na verdade, o diagrama de classes é a ferramenta de modelagem principal para descrever a própria UML.” (PENDER, 2004) 43UML
  • 44. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Diagrama de Classes n  Um diagrama de classes descreve os tipos de objetos presentes no sistema e os vários tipos de relacionamento estáticos existentes entre eles n  Os diagramas de classe também mostram as propriedades e operações de uma classe e as restrições que se aplicam à maneira como os objetos estão conectados 44UML
  • 45. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Classe n  Uma classe é uma descrição de um conjunto de objetos que partilham os mesmos atributos, operações, relações e semântica n  Por exemplo, na classe Cliente, "João da Silva" pode ser considerado um dos objetos em um sistema que pretende manipular informação referente aos clientes de uma empresa 45UML
  • 46. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Classe n  Uma classe é descrita por seus aspectos estruturais através de seus atributos e através de seus aspectos comportamentais através de suas operações n  Uma classe (seus atributos e operações) pode ser detalhada através de sua visibilidade e sua multiplicidade. Uma classe é representada como mostrado no desenho abaixo: 46UML
  • 47. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Operações e Atributos de uma Classe n  Uma classe é definida nos seus aspectos estruturais através de seus atributos e nos seus aspectos comportamentais através de suas operações n  Uma classe não tem necessariamente que corresponder a uma entidade humana ou, mais genericamente, a uma entidade com representação física (por exemplo, uma fatura) n  Pode-se representar entidades mais abstratas (por exemplo, venda) 47UML
  • 48. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Atributos de uma Classe n  Atributo da classe q  São propriedades semelhantes que os objetos de uma classe possuem. O "João da Silva" além do nome, também é caracterizado por outros atributos, como endereço, número do contribuinte, cpf, rg, etc q  Cada atributo permite definir um intervalo de valores que as instâncias dessa propriedade podem apresentar q  Meu carro é branco, o seu é preto n  Essas propriedades de carro são descritas pelo atributo cor 48UML
  • 49. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Atributos de uma Classe n  Tanto nos atributos quanto nas operações de uma classe podem ser especificados detalhes de sua visibilidade e de sua multiplicidade n  A sintaxe básica de um atributo é: [visibilidade] nome-do-atributo : [tipo] { =valor-inicial } n  Exemplos: + nome : String - salario : double = 1000.00 # nota : int 49UML
  • 50. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Operações de uma Classe n  Operações da Classe q  O João da Silva possui uma identidade própria, isto é, para a empresa, ele é distinto de todos os outros clientes q  Essa identidade não é só descrita pelos atributos. Todos os objetos de uma classe podem fazer alguma coisa (um serviço) ou pode-se fazer com ele alguma coisa q  As operações são responsáveis pela efetivação dos serviços prestados pelas classes q  Sobre o cliente "João da Silva" pode-se efetuar várias operações como emitir-lhe faturas, alterar seu endereço, apagá-lo da base de dados, etc 50UML
  • 51. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Operações de uma Classe n  A sintaxe básica de uma operação é: [visibilidade] nome-da-operação ( [lista-de-parâmetros] ) : [tipo-retorno] n  Exemplos: - mostrar() : void + calcularTaxa( valorDolar : double ) : double # somar (a : int , b: int ) : int 51UML
  • 52. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Operações e Atributos Estáticos n  Uma operação ou um atributo que não pertence a uma instância da classe, mas à classe como um todo é chamado de operação e atributo estático, respectivamente n  Operações e atributos estáticos são compartilhados por todas as instâncias da classe, mas não pertence a nenhuma instância 52UML
  • 53. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Visibilidade n  Os atributos e operações de uma classe podem ser especificados para mostrar como a mesma pode ser vista e utilizada pelos outros elementos do sistema n  Os níveis de visibilidade para o atributo ou a operação: q  (+) PÚBLICO: n  Todas as classes visualizam q  (-) PRIVADO: n  Somente a própria classe visualiza q  (#) PROTEGIDO: n  Todas as classes do mesmo pacote e sub-classes visualizam q  (~) PACOTE: n  Todas as classes do mesmo pacote visualizam 53UML
  • 54. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Visibilidade n  Exemplo: q  Somente a própria classe tem acesso direto aos atributos do veículo q  Qualquer classe pode ligar ou desligar o veículo q  Somente classes do mesmo pacote ou sub-classes podem acelerar ou frear o veículo q  Somente a própria classe pode ativar o ABS q  Somente classes do mesmo pacote podem ver o consumo do veículo 54UML
  • 55. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Associação n  Outra maneira de se criar um atributo é através de uma associação n  Associação é uma linha cheia entre duas classes, direcionadas da classe de origem para a classe de destino. A direção pode ser nos dois sentidos, o que gera uma Associação Bidirecional q  Exemplo: q  Este exemplo indica que um objeto NotaFiscal possui pelo menos um objeto ItemNotaFiscal. 55UML
  • 56. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Associação n  Ainda no exemplo: q  Como pode ser visto não deve-se colocar uma associação como atributo, pois a própria associação já nos diz isto q  O código Java ficaria assim: public class NotaFiscal { ! ! ! !! private List<ItemNotaFiscal> itensNotaFiscal; ! !! ... ! ! ! ! ! ! ! }! ! public class ItemNotaFiscal{! private NotaFiscal notaFiscal;! ... !! } 56UML
  • 57. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Classes Associativas n  Algumas associações de muitos para muitos exige a necessidade da criação de uma classe associativa entre as duas classes associadas n  No exemplo abaixo existe a classe Paciente com seus atributos e a classe Exame com seus atributos. Do relacionamento entre Paciente e Exame, tem-se a data da realização e o diagnóstico Observe: 57UML
  • 58. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Multiplicidade n  A multiplicidade de uma classe é o número de instâncias possíveis que uma classe pode ter considerando uma única instância da outra classe a qual ela é associada. Ou seja, é o número de objetos de uma classe que pode relacionar com um único objeto de uma outra classe n  Multiplicidades são números simples ou intervalos de números. A tabela abaixo exemplifica os tipos comuns de multiplicidades 0..1 Uma instância opcional. 1 Exatamente uma instância. 0..* Zero ou mais instâncias. 1..* Pelo menos uma instância. 58UML
  • 59. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Multiplicidade n  No exemplo abaixo, um pedido pode estar vinculado a um único cliente, porém um cliente poderá possuir qualquer quantidade de pedidos n  E esses? 59UML
  • 60. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Generalização n  Trata-se da ação de uma classe herdar toda a estrutura de uma outra classe q  Uma sub-classe sempre herda de sua super-classe: n  Atributos n  Operações n  Relacionamentos q  Uma sub-classe pode: n  Adicionar atributos e operações n  Adicionar relacionamentos n  Sobrepôr (override) operações herdadas n  Sobrecarregar (overload) operações herdadas n  Uma sub-classe sempre herda tudo de sua super-classe, isto é, não tem como herdar somente alguns atributos ou operações 60UML
  • 61. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Generalização n  Exemplo: q  ContaCorrente é um tipo de Conta q  ContaPoupanca é um tipo de Conta 61UML
  • 62. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Pacotes n  Um pacote é um mecanismo de agrupamento n  Pode ser utilizado para agrupar qualquer elemento UML (como casos de uso, atores, classes, componentes e outros pacotes) n  Geralmente utizada para especificar uma distribuição lógica 62UML
  • 63. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Pacotes n  Os pacotes em um diagrama de classes são altamente utilizados, pois, na implementação do sistema, a organização das classes são sempre feitas utilizando pacotes 63UML
  • 64. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Notas e Comentários n  Assim como todo diagrama UML pode ser inseridos notas ou comentários 64UML
  • 65. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Cuidado n  Diagrama de Classes não é um modelo ER n  O maior perigo com os diagramas de classes é que você pode focalizar exclusivamente na estrutura e ignorar o comportamento 65UML
  • 66. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Exercício de Fixação 01 n  A gráfica ABC trabalha com diversos autores que escrevem os livros que ela publica. Alguns autores escreveram apenas um livro, enquanto outros já escreveram vários. Além disso, alguns livros foram escritos por vários autores, porém um livro deve possuir pelo menos um autor. A gráfica ABC trabalha também com diversas impressoras, porém um livro só pode ser impresso em uma única impressora. Deve ser possível buscar os livros de um autor, saber qual foi a impressora em que o livro foi impresso, saber a quantidade de páginas que uma impressora já imprimiu e a quantidade de páginas que ela imprimiu de um determinado livro, entre outros. 66UML
  • 67. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Exercício de Fixação 01 - Solução 67UML
  • 68. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Exercício de Fixação 02 n  Um veículo tem chassi, modelo, peso, ano de fabricação. Um veículo não existe por si só, ele deve ser um avião ou um carro. Todo veículo liga e desliga. Um carro acelera e freia e um avião decola, voa e pousa. 68UML
  • 69. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Exercício de Fixação 03 n  Um imóvel possui um endereço, área (em m2) e um proprietário. O imóvel pode ser uma casa ou um apartamento. Caso seja casa possuirá também o número do registro do lote e, caso seja apartamento, possuirá o número do andar e um flag indicando se possui ou não elevador. Um proprietário possui cpf, nome e telefone. Pelo menos as seguintes operações devem existir: n  Alterar a área de um imóvel n  Alterar o proprietário de um imóvel n  Alterar o flag se possui ou não elevador do apartamento n  Recuperar a quantidade de imóveis de um proprietário n  Alterar o telefone de um proprietário n  PS: Atenção com os parâmetros e com o tipo de retorno das operações 69UML
  • 70. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Exercício de Fixação 04 n  Uma pessoa possui cpf e nome. Um professor é uma pessoa que também possui uma titulação e a IES (Instituição de Ensino Superior) vinculada. Um aluno também é uma pessoa e possui a informação de qual período se encontra e qual o seu curso (um curso possui um registro do MEC, um nome e sua área de concentração). Uma palestra possui um nome e um assunto e pode ser ministrada por diversos professores. Para cada professor ministrando cada palestra, deve constar a data e a localização (rua, número, bairro, cidade, estado e telefone) deste evento e, um aluno, pode assistir vários destes eventos. Pelo menos as seguintes operações devem existir: q  Alterar o nome de uma pessoa; q  Alterar a titulação de um professor; q  Alterar a IES de um professor; q  Alterar o período em curso de um aluno; q  Alterar o curso de um aluno; q  Alterar o registro do MEC de um curso; q  Alterar o nome de uma palestra; q  Alterar a data de um evento; q  Alterar a localização de um evento; q  Alterar o telefone de uma localização. 70UML
  • 71. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 Diagrama de Interação UML 71
  • 72. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 72 Diagramas de Interação n  Os diagramas de interação mostram como os objetos interagem uns com os outros. Permitem assim modelar os aspectos dinâmicos de um sistema. Existem dois tipos de diagramas de interação: q  Diagrama de Seqüência q  Diagrama de Colaboração n  O diagrama de colaboração pode ser usado para mostrar como os objetos em um sistema interagem sobre múltiplos casos de uso . n  Por outro lado, um diagrama de seqüência é tipicamente usado para mostrar a interação de objetos em um único caso de uso.
  • 73. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 73 Objeto da Classe n  Objeto de Classe é uma instância de uma classe, isto é, uma manifestação concreta de algo abstrato. n  No exemplo acima, existe a definição da classe Carro e dois objetos desta classe.
  • 74. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 74 Mensagens n  Uma mensagem é a remessa de um sinal ou a chamada de uma operação de um objeto (o emissor) para um ou mais objetos (receptor). n  A mensagem é o elemento principal do diagrama de interação. n  Uma mensagem é representada graficamente como uma seta (do emissor ao receptor), acima do qual pode-se colocar um nome (geralmente o nome da operação) e um número de sequência. n  No exemplo acima, o objeto emissor (:Motorista) invoca o método ligar do objeto receptor (:Carro).
  • 75. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 75 Mensagens n  Existem diversos tipos de mensagens, tais como mensagem síncronas ( m a i s u s a d a s ) , assícronas, de retorno, a u t o - r e f e r ê n c i a e temporizada, observe a diferença entre elas. Seta Tipo Descrição Síncrona Envio de mensagens síncronas. Assíncrona É uma mensagem que não bloqueia o emissor. Isto é, o emissor e o receptor executam concorrentemente. Retorno Indica o retorno do controle após uma nova mensagem ter sido enviada Auto- referência Usada quando um objeto n e c e s s i t a e n v i a r u m a mensagem para ele mesmo. Temporizada Indica que a mensagem enviada possui tempo de vida.
  • 76. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 76 Diagrama de Seqüência n  O diagrama de seqüência, como um dos dois tipos de diagrama de interação, mostra a interação existente num conjunto de objetos e seus relacionamentos, dando ênfase à ordenação temporal de mensagens. n  Nesse diagrama, colocam-se os objetos de classes que participam de interação no topo (eixo X), o objeto que inicia a interação é colocado mais à esquerda e os demais vão sendo colocados à direita. As mensagens trocadas são dispostas ao longo do eixo dos Y, de acordo com os vínculos entre os objetos da classe, e em ordem crescente do tempo. n  Os diagramas de sequência diferenciam dos diagramas de colaboração por apresentar linhas de vida e barras de ativação.
  • 77. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 77 Linhas de Vida n  Linhas de vida são linhas verticais tracejadas que indicam a existência do objeto no tempo. q  Recomenda-se que todos os objetos a serem utilizados sejam inseridos já no início do diagrama com sua respectiva linha de vida, observe:
  • 78. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009 n  Barras de ativação representam o tempo que um objeto necessita para completar uma tarefa. As barras mostram o tempo em que objeto está ativo. q  As barras de ativação são representadas graficamente por um retângulo alto e estreito, colocado no eixo Y, sobre as linhas de vida dos objetos. n  Observe exemplo no próximo slide. UML 78 Barras de Ativação
  • 79. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 79 Diagrama de Sequência
  • 80. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 80 Diagrama de Colaboração n  O diagrama de colaboração, como um dos dois tipos de diagrama de interação, mostra a interação existente num conjunto de objetos e seus relacionamentos, dando ênfase à organização estrutural dos objetos. n  O diagrama mostra os objetos das classes que participam da interação, mostrando os vínculos entre os mesmos, descrevendo as mensagens que os objetos recebem e enviam. n  Os diagramas de colaboração diferenciam-se dos diagramas de seqüências nestes aspectos: q  Existe um caminho que indica como o objeto está vinculado a outro. q  Existe um número de seqüência para indicar a ordem temporal de uma mensagem. n  No diagrama de seqüência é altamente recomendado, mas é opcional.
  • 81. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 81 Diagrama de Colaboração
  • 82. Ricardo Terra (rterrabh [at] gmail.com) Julho, 2009UML 82 Referência Bibliográfica n  FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005. n  PENDER, Tom. UML, a Bíblia. 2 reimp. Rio de Janeiro: Campus, 2004.