ENGENHARIA DE SOFTWARE
Prof. Paulo Malcher
prcmalcher@gmail.com
https://sites.google.com/site/professorpaulomalcher/
Modelo – O que é?
•
Construímos
modelos
para
compreender
melhor o sistema que estamos desenvolvendo.
•
Um
modelo
é
uma
simplificação
da
Modelo de Software – Por que?
•
Ajuda a ter uma visão geral do sistema.
•
Permite
especificar
a
estrutura
e
o
comportamento do sistema.
•
Proporciona um guia para a construção do
sistema.
Modelo de Software – Por que?
•
Modelos
de
sistemas
complexos
são
construídos porque nem sempre é possível
compreendê-los em sua totalidade.
•
Modelos auxiliam o entendimento dos sistemas
Modelo de Software – Por que?
Avião de papel Jato militar
UML – O que é?
•
Unified Modeling Language (UML)
é...
• ...uma linguagem gráfica para visualizar,
especificar, construir e documentar os artefatos de um sistema de software.
UML – O que é?
•
Unified Modeling Language (UML)
é...
• ...resultado da unificação das notações utilizadas nos métodos Booch, OMT (Object Modeling Technique) e OOSE (Object-Oriented Software Engineering).
UML – O que é?
•
Unified Modeling Language (UML)
é...
• ...adotada por grande parte da indústria de software e por fornecedores de ferramentas CASE como
UML – O que é?
•
Unified Modeling Language (UML)
é...
• …utilizada com qualquer processo de
UML – O que é?
•
Unified Modeling Language (UML)
é...
• ...uma linguagem fornece um vocabulário e as
regras para a combinação de “palavras” desse vocabulário, com o objetivo de comunicar algo.
UML - Linguagem
•
Uma linguagem fornece um vocabulário e as
regras para a combinação de
” palavras ”
desse
vocabulário,
com
o
objetivo
de
UML - Linguagem
•
O vocabulário e as regras de uma linguagem
de modelagem indicam como criar e ler
modelos bem formados, mas não apontam
quais modelos devem ser criados e nem em
que sequência.
UML - Linguagem
•
Facilita a comunicação entre membros da
A UML é uma Linguagem para...
•
...visualização,
•
especificação,
•
construção e
•
documentação...
...de artefatos de um sistema de software
http://www.uml.org/ http://www.omg.org/
A UML é uma Linguagem para...
•
...VISUALIZAÇÃO
• No processo de desenvolvimento de sistemas de software, é quase impossível a visualização de toda a estrutura de um sistema sem o uso de modelos que a represente.
• A UML fornece os símbolos gráficos para a representação de artefatos de software.
A UML é uma Linguagem para...
•
...VISUALIZAÇÃO
• Por trás de cada símbolo empregado na notação da UML, existe uma sintaxe e uma semântica bem-definidas.
• Dessa maneira, um desenvolvedor poderá usar a UML para escrever seu modelo, diminuindo a ambiguidade em sua interpretação.
A UML é uma Linguagem para...
•
...ESPECIFICAÇÃO
• No presente contexto, especificar significa construir modelos precisos, completos e sem ambiguidades.
• A UML atende a todas as decisões importantes em termos de análise, projeto e implementação, que devem ser tomadas para o desenvolvimento e implantação de sistemas complexos de software.
A UML é uma Linguagem para...
•
...CONSTRUÇÃO
• Os modelos de UML podem ser diretamente
“traduzido” para várias linguagens de programação.
• Isso significa que é possível mapear os modelos da UML para linguagens de programação tais como, Java, C++ e Visual Basic. Mapeamento para tabelas em um SGBDR ou armazenamento persistente em um SGBDOO.
A UML é uma Linguagem para...
•
...CONSTRUÇÃO
• Os modelos de UML podem ser diretamente
“traduzido” para várias linguagens de programação.
• Esse mapeamento permite a realização de uma
engenharia de produção: geração de código a partir de um modelo em UML.
• O processo inverso, a engenharia reversa, também é possível, com a reconstrução de um modelo a partir de sua implementação.
A UML é uma Linguagem para...
•
...DOCUMENTAÇÃO
• Documenta a arquitetura do sistema, requisitos, testes, planejamento do projeto e gestão de versionamento. Cada modelo criado é um artefato do software. Diagrama de Casos de Uso Diagrama de Classe GrpFile read( ) open( ) create( ) fillFile( ) rep Repository name : char * = 0 readDoc( ) readFile( ) (from Persistence) FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) fList 1 FileList add( ) delete( ) 1 File read( )
read() fill the code.. Diagrama de Seqüência user mainWnd fileMgr : FileMgr repository document : Document gFile
1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) 5: readDoc ( ) 6: fillDocument ( ) 7: readFile ( ) 8: fillFile ( ) 9: sortByName ( ) ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. È¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´Ù. Diagrama de Implantação Window95 ¹®¼°ü¸® Ŭ¶óÀ̾ðÆ®.EXE Windows NT ¹®¼°ü¸® ¿£Áø.EXE Windows NT Windows95 Solaris ÀÀ¿ë¼¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼¹ö Windows95 ¹®¼°ü¸® ¾ÖÇø´ ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼¹ö ¹× µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö Actor A Use Case 1 Use Case 2 Use Case 3 Actor B
A UML é uma Linguagem para...
•
...DOCUMENTAÇÃO
Diagrama de Seqüência : SIM : AnalisadorMatricula 2: adicionar(a,d ) 1: submeterFormulario(f) 0..* 1 autor 0..* 0..* 1 dono 0..* 1 usuario 0..* usa Us u ario Bl og -email:String +notificarExclusao:void Co nte ud o -dtCriacao:Date -texto:String -autor:UsuarioBlog +Conteudo +exibirConteudo:void Bl og -dtCriacao:Date -titulo:String -dono:UsuarioBlog -conteudos:Vector +criarNota:void +exibirConteudo:void +comentar:void +lerComentarios:Vector +removerConteudo:void +lerNotas:Vector +Blog No ta -comentarios:Vector -attribute1:int +comentar:void +lerComentarios:Vector +finalize:void C o men tari o +finalize:void Diagrama de Classes Diagrama de Casos de UsoblogSystem Criar Comentario
Ler Conteudo
Remover Conteudo Remover Nota Remover Comentario Criar Blog Ler Comentario Ler Nota Criar Nota Usuario Dono do blog <<include>> <<include>> <<include>> … …
UML - Diagramas
Diagramas de Classe Diagramas de Colaboração Diagramas de Seqüência Diagramas de Estado Diagramas de Atividade Diagramas de Objetos Diagrama de Deployment Diagramas de ComponentesDiagrama de Casos de Uso Modelos
Ponto de Vista Estático
UML Experiências de parceiros UML 1.0 (Jan. 1997) UML 1.1 (Set. 1997) UML 1.5 (Mar, 2003) UML 2.0 (2004) Outros Métodos Booch 1991 OMT - 1 OOSE Booch, 1993 OMT - 2 Feedback do público Unified Method 0.8 (OOPSLA, 1995) UML 0.9 (Jun, 1996) UML 0.91 (Out. 1996) and
UML - Histórico
UML - Histórico
1994 Método
de Booch (Rumbaugh)OMT (Jacobson) OOSE Outros métodos Unified Method 0.8 UML 1.0 UML 1.1 UML 1.4 UML 1.3 UML 0.9 UML 1.5 UML 2.0 1995 1996 1997 1999 2001 2003 2004 - 2005
UML - Histórico
Fusion Descrição de operações Numeração de mensagens Condições anteriores e posteriores Meyer Harel Diagrama de estados Wirfs-Brock Responsabilidades Embley Classes Singleton, Visão de alto nívelOdell
Classificação Ciclo de vida de objetos
Shlaer- Mellor Gamma, et.al Frameworks, padrões, notas Booch Rumbaugh Jacobson
Selic, Gullekson, Ward
ROOM (Real-Time
UML - Vantagens
•
Padrão aberto e não proprietário.
•
Extensível.
•
Independência
do
processo
de
desenvolvimento.
•
Aplicável
a
todas
as
fases
do
ciclo
de
desenvolvimento.
•
Independência
de
linguagem
de
UML - Vantagens
•
Padrão aberto e não proprietário.
•
Extensível.
•
Independência
do
processo
de
desenvolvimento.
•
Aplicável
a
todas
as
fases
do
ciclo
de
desenvolvimento.
•
Independência
de
linguagem
de
UML - Vantagens
•
A UML é independente de processo. Um
processo
beneficia
completamente
a
UML
quando ele é:
• guiado por casos de uso;
• centrado em arquitetura;
Cenário do Problema
•
Uma empresa, para a qual será construído o
sistema, atua no ramo alimentício através de
vendas de pizzas e bebidas. Possui um quadro
de três funcionários fixos e dois momentâneos.
A Figura 1 mostra os cargos de acordo com a
organização
interna
da
empresa
e
as
Cenário do Problema
•
No contexto da empresa, foi possível notar que
já existia um sistema, porém, não era utilizado
devido à falta de comunicação do computador
com a impressora multifuncional. Além disso, a
empresa não recebia nenhuma assistência
técnica em relação aos problemas existentes
no
sistema.
Quando
era
mencionado
um
encontro para resolução de problemas, o
desenvolvedor não comparecia nem justificava
o motivo da ausência. Tais circunstâncias
motivaram ao abandono do sistema.
Cenário do Problema
•
Consequentemente,
a
empresa
faz
os
processos de anotação de pedidos e entregas
manualmente, registrando cada pedido em
bloco de notas individuais, havendo riscos de
trocar informações ou até mesmo perdê-las.
Depois de anotado, o pedido é repassado ao
pizzaiolo que prepara-o seguindo apenas as
referências contidas nos blocos de notas.
Cenário do Problema
•
Por fim, cabe ao garçom identificar o destino
dos pedidos de cada cliente tomando como
base as anotações informadas por ele mesmo.
Ao fim da noite, aquelas anotações são jogadas
fora ou, pelo menos, a maioria delas, sem
possibilidade de consulta de dados, causando a
perda total dessas informações.
Cenário do Problema
•
A partir do levantamento de requisitos foram
identificados vários problemas existentes no
sistema antigo. Por exemplo, ocorrem erros na
impressão de notas, devido a problemas de
comunicação do sistema com a impressora.
Cenário do Problema
•
Quando
o
atendente
necessita
efetuar
a
impressão de um relatório ou cupom fiscal, o
sistema
exibe
uma
mensagem
de
erro,
informando que o dispositivo de saída da
impressora não é reconhecido no sistema,
ocorrendo falha na impressão. Além disso,
existem
problemas
com
identificações
de
clientes por telefone, onde o cliente deveria
aparecer no monitor com seus dados de
cadastro e histórico de informações durante
uma ligação.
Cenário do Problema
•
Quando ocorre uma ligação, o sistema não
reconhece o cliente sendo atendido. Não há
suporte nem disponibilidade do criador do
software
para
assessorar
a
empresa
em
processos de manutenção. Quando o sistema
era usado, os usuários não tinham domínio das
funcionalidades
do
sistema,
dessa
forma,
Cenário do Problema
•
Tarefa:
Desenvolver
uma
solução
para
o
problema da pizzaria de forma textual (lista de
requisitos) e realizar a modelagem do sistema
proposto sem utilizar nenhuma notação padrão.
Desenvolver modelos que sejam claros para
todos.
Cenário do Problema
•
Pontos fortes:
• Definição das funcionalidades do sistema e de seus atores
• Definição de classes e objetos do sistema (Estados e Comportamento)
• Definição do Fluxo do Sistema
• Criatividade
UML
UML - Casos de Uso
•
Introdução
– Casos de uso
•
Elementos do diagrama de casos de uso
•
Descrição de casos de uso
UML - Casos de Uso - Introdução
•
CASOS DE USO
• Descrevem como os usuários interagem com o sistema (as funcionalidades do sistema)
• Facilitam a organização dos requisitos de um sistema.
UML - Casos de Uso - Introdução
•
CASOS DE USO
• O conjunto de casos de uso deve ser capaz de comunicar a funcionalidade e o comportamento do sistema para o cliente.
• Descrevem o que o sistema faz, mas NÃO
UML - Casos de Uso - Elementos
•
ELEMENTOS DO DIAGRAMA
• Atores • Casos de uso • Relacionamentos • Associação • Generalização• Dependência: Extensão e Inclusão
UML - Casos de Uso - Elementos
•
ATORES
• Representam os papéis desempenhados por elementos externos ao sistema
• Ex: humano (usuário), dispositivo de hardware ou outro sistema (cliente).
• Elementos que interagem com o sistema
Notação:
Secretária
(from Use Case View)
Diretor
(from Use Case View)
Sistema de Relatórios
UML - Casos de Uso - Elementos
•
ATORES - EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
ATORES - EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
ATORES - EXEMPLO: LOJA DE CDS
• Identificando os atores
• E o cliente?
• Não é ator pois ele não interage com o sistema!
Gerente
(from Use Case View)
Atendente
UML - Casos de Uso - Elementos
•
CASO DE USO
• Representa uma funcionalidade do sistema (um requisito funcional)
• É iniciado por um ator ou por outro caso de uso
• Dicas:
• Nomeie os casos de uso iniciando por um verbo
UML - Casos de Uso - Elementos
•
CASOS DE USO - EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
CASOS DE USO - EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
CASOS DE USO - EXEMPLO: LOJA DE CDS
• Identificando os Casos de Uso
Administrar estoque Vender CDs
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS
• Representa a relação entre atores e casos de usos ou entre casos de usos.
• Pode ser divididos em:
• Associação
• Generalização
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• Indica que há uma interação (comunicação) entre um caso de uso e um ator.
• Um ator pode se comunicar com vários casos de uso.
Notação:
Ator
(from Use Case View)
Caso de Uso
(from Use Case Vi ew)
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
Notação:
Dicas:
NÃO use setas nas associações
Associações NÃO representam fluxo de informação
Ator
(from Use Case View)
Caso de Uso
(from Use Case Vi ew)
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
•
EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
•
EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
•
EXEMPLO: LOJA DE CDS
Atendente Gerente Vender CDs Administrar estoqueUML - Casos de Uso - Elementos
•
RELACIONAMENTOS
– GENERALIZAÇÃO
• GENERALIZAÇÃO DE ATORES
• Quando dois ou mais atores podem se comunicar com o mesmo conjunto de casos de uso
• Um filho (herdeiro) pode se comunicar com todos os casos de uso que seu pai se comunica.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• GENERALIZAÇÃO DE ATORES
Notação:
Dicas:
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
•
EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
•
EXEMPLO: LOJA DE CDS
• Uma loja de CDs possui discos para venda. Um cliente pode comprar uma quantidade ilimitada de discos para isto ele deve se dirigir à loja. A loja possui um atendente cuja função é atender os clientes durante a venda dos discos. A loja também possui um gerente cuja função é administrar o estoque para que não faltem discos. Além disso é ele quem dá folga ao atendente, ou seja, ele também atende os clientes durante a venda dos discos.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
•
EXEMPLO: LOJA DE CDS
Atendente Gerente Vender CDs Administrar estoqueUML - Casos de Uso - Elementos
•
RELACIONAMENTOS
– GENERALIZAÇÃO
• GENERALIZAÇÃO DE CASOS DE USO
• O caso de uso filho herda o comportamento e o significado do caso de uso pai
• O caso de uso filho pode incluir ou sobrescrever o comportamento do caso de uso pai
• O caso de uso filho pode substituir o caso de uso pai em qualquer lugar que ele apareça
Notação: Pai
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• GENERALIZAÇÃO DE CASOS DE USO
Notação:
Dicas:
SEMPRE deve ser aplicada quando uma condição
resulta na definição de diversos fluxos alternativos
Pai
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
Atendente Vender CDs Gerente Vender CDs à vista Vender CDs a prazo Administrar estoque
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda à vista, clientes cadastrados na loja e que compram mais de 5 CDs de uma só vez ganham um desconto de 1% para cada ano de cadastro.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda a prazo, ela pode ser parcelada em 2 pagamentos com um acréscimo de 20%. As vendas a prazo podem ser pagas no cartão ou no boleto. Para pagamento com boleto, são gerados boletos bancários que são entregues ao cliente e armazenados no sistema para lançamento posterior no caixa. Para pagamento com cartão, os clientes com mais de 10 anos de cadastro na loja ganham o mesmo desconto das compras a vista.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda a prazo, ela pode ser parcelada em 2 pagamentos com um acréscimo de 20%. As vendas a prazo podem ser pagas no cartão ou no boleto. Para pagamento com boleto, são gerados boletos bancários que são entregues ao cliente e armazenados no sistema para lançamento posterior no caixa. Para pagamento com cartão, os clientes com mais de 10 anos de cadastro na loja ganham o mesmo desconto das compras a vista.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
Atendente Vender CDs Gerente Vender CDs à vista Vender CDs a prazo Administrar estoque Vender c/ cartão Vender c/ boleto
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXTENSÃO
• Representa uma variação/extensão do
comportamento do caso de uso base.
• O caso de uso estendido só é executado sob certas circunstâncias.
• Separa partes obrigatórias de partes opcionais
• Partes obrigatórias: caso de uso base
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXTENSÃO
• Fatorar comportamentos variantes do sistema (podendo reusar este comportamento em outros casos de uso).
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda à vista, clientes cadastrados na loja e que compram mais de 5 CDs de uma só vez ganham um desconto de 1% para cada ano de cadastro.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda à vista, clientes cadastrados na loja e que compram mais de 5 CDs de uma só vez ganham um desconto de 1% para cada ano de cadastro.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda a prazo, ela pode ser parcelada em 2 pagamentos com um acréscimo de 20%. As vendas a prazo podem ser pagas no cartão ou no boleto. Para pagamento com boleto, são gerados boletos bancários que são entregues ao cliente e armazenados no sistema para lançamento posterior no caixa. Para pagamento com cartão, os clientes com mais de 10 anos de cadastro na loja ganham o mesmo desconto das compras a vista.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• As vendas podem ser à vista ou a prazo. Em ambos os casos o estoque é atualizado e uma nota fiscal, entregue ao consumidor.
• No caso de uma venda a prazo, ela pode ser parcelada em 2 pagamentos com um acréscimo de 20%. As vendas a prazo podem ser pagas no cartão ou no boleto. Para pagamento com boleto, são gerados boletos bancários que são entregues ao cliente e armazenados no sistema para lançamento posterior no caixa. Para pagamento com cartão, os clientes com mais de 10 anos de cadastro na loja ganham o mesmo desconto das compras a vista.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
Atendente Vender CDs Gerente Vender CDs à vista Vender CDs a prazo Administrar estoque Vender c/ cartão
Vender c/ boleto Calcular desconto
<<extend>>
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• INCLUSÃO
• Evita repetição ao fatorar uma atividade comum a dois ou mais casos de uso
• Um caso de uso pode incluir vários casos de uso
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• Para efetuar vendas ou administrar estoque, atendentes e
gerentes terão que validar suas respectivas senhas de acesso ao sistema.
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
• Para efetuar vendas ou administrar estoque, atendentes e
gerentes terão que validar suas respectivas senhas de acesso
UML - Casos de Uso - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
Atendente
Gerente
Vender CDs à vista Vender CDs a prazo
Vender c/ cartão
Vender c/ boleto Calcular desconto
<<extend>> <<extend>> Fazer login Vender CDs Administrar estoque <<include>> <<include>>
UML - Casos de Uso - Elementos
•
FRONTEIRA DO SISTEMA
• Elemento opcional (mas essencial para um bom entendimento).
• Serve para definir a área de atuação do sistema.
UML - Casos de Uso - Elementos
•
FRONTEIRA DO SISTEMA
• EXEMPLO: LOJA DE CDS – NOVOS REQUISITOS
Atendente
Gerente
Vender CDs à vista Vender CDs a prazo
Vender c/ cartão
Vender c/ boleto Calcular desconto
<<extend>> <<extend>> Fazer login Vender CDs Administrar estoque <<include>> <<include>>
UML - Casos de Uso – Descrição
•
A descrição é mais importante do que o
diagrama.
•
A UML não especifica padrão, pode ser:
• Informal
• Típica
UML - Casos de Uso – Descrição
•
DESCRIÇÃO INFORMAL
• Contém o nome do caso de uso e
uma descrição textual de sua funcionalidade
UML - Casos de Uso – Descrição
•
DESCRIÇÃO TÍPICA
• Contém:
• Identificação do ator que iniciou o caso de uso
• Pré-requisitos (se houver) do caso de uso
• Descrição textual do: Fluxo normal
UML - Casos de Uso – Descrição
•
DESCRIÇÃO TÍPICA
UML - Casos de Uso – Descrição
•
DESCRIÇÃO DETALHADA 1
• Contém:
• Identificação do ator que iniciou o caso de uso
• Objetivo
• Nível
• Pré-requisitos (se houver) do caso de uso
• Condições de disparo (triggers)
• Descrição textual do: Fluxo normal
UML - Casos de Uso – Descrição
•
DESCRIÇÃO DETALHADA 2
• Contém: • Nome • Descrição sucinta • Atores • Pré-condições • Pós-condições • Fluxo básico • Fluxos alternativos • Fluxos de exceção • Estruturas de dados • Regras de negócioUML - Exemplo de Casos de Uso
•
Um blog é uma ferramenta de colaboração.
•
Um blog é formado por um conjunto de
conteúdos:
• notas• comentários sobre as notas
•
Os
conteúdos
possuem
as
seguintes
UML - Exemplo de Casos de Uso
•
Os usuários de um blog podem ser:
• Usuário: pode ler conteúdos de um blog, comentar uma nota, remover comentários, e pode criar um blog.
• Dono do blog: além de todas as funcionalidades de um usuário comum, o dono do blog pode criar notas e remover notas
•
Para remover um conteúdo o usuário precisa
UML - Exemplo de Casos de Uso
blogSystem
Criar Comentario
Ler Conteudo
Remover Conteudo Remover Nota
Remover Comentario Criar Blog Ler Comentario Ler Nota Criar Nota Usuario Dono do blog <<include>> <<include>> <<include>>
UML
UML – Diagrama de Classes
•
Introdução
– Diagrama de classes
•
Elementos do diagrama de classes
UML - Diagrama de Classes - Introdução
•
Mostra
um
conjunto
de
classes
e
seus
relacionamentos.
•
É o diagrama central da modelagem orientada
a objetos.
Aluno nome: Texto matrícula: Inteiro definirNome(nome) obterNome() definirMatricula(matricula) obterMatricula Turma código: Texto sala: Texto horario: Horario estaAberta() definirProfessor(professor) incluirAluno(aluno) está-matriculado-em Professor nome: Texto titulação: Texto definirNome(nome) obterNome() definirTitulacao(titulo) obterTitulacao é-ministrada-porUML - Diagrama de Classes - Elementos
•
ELEMENTOS DO DIAGRAMA
• Classes • Relacionamentos • Associação Agregação Composição • Generalização • DependênciaUML - Diagrama de Classes - Elementos
•
CLASSES
• Graficamente, as classes são representadas por retângulos incluindo nome, atributos e métodos.
• Devem receber nomes de acordo com o vocabulário do domínio do problema.
• É comum adotar um padrão para nomeá-las
Nome_da_classe atributo1 Atributo2 ... metodo1 metodo2 metodo3 ...
Ex: todos os nomes de classes serão substantivos singulares com a primeira letra maiúscula
UML - Diagrama de Classes - Elementos
•
CLASSES - ATRIBUTOS
• Representam o conjunto de características (estado) dos objetos daquela classe.
• Visibilidade:
+ público: visível em qualquer classe de qualquer pacote.
# protegido: visível para classes do mesmo pacote.
- privado: visível somente para classe.
EXEMPLO:
UML - Diagrama de Classes - Elementos
•
CLASSES - MÉTODOS
• Representam o conjunto de operações
(comportamento) que a classe fornece.
• Visibilidade:
+ público: visível em qualquer classe de qualquer pacote
# protegido: visível para classes do mesmo pacote
- privado: visível somente para classe
EXEMPLO:
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS
•
Os relacionamentos possuem:
• Nome: descrição dada ao relacionamento (faz, tem, possui,...).
• Sentido de leitura.
• Navegabilidade: indicada por uma seta no fim do relacionamento
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS
•
Os relacionamentos possuem:
• Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7
• Tipo: associação (agregação, composição), generalização e dependência.
• Papéis: desempenhados por classes em um relacionamento.
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS
Pessoa 1..* Empresa Tipo: associação multiplicidade * trabalha para empregado papéis empregador sentido de leitura E a navegabilidade? nomeUML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS
O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence.
© LES/PUC-Rio Endereço Cliente reside 1 * navegabilidade
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• Uma associação é um relacionamento estrutural que indica que os objetos de uma classe estão vinculados a objetos de outra classe.
• Uma associação é representada por uma linha sólida conectando duas classes.
Pessoa Empresa
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• Indicadores de multiplicidade:
• 1 Exatamente um
• 1..* Um ou mais
• 0..* Zero ou mais (muitos)
• * Zero ou mais (muitos)
• 0..1 Zero ou um
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
Pessoa 1..* Empresa associação multiplicidade * trabalha paraUML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• EXEMPLO
• Um Estudante pode ser um aluno de uma Disciplina e um jogador da Equipe de Futebol.
• Cada Disciplina deve ser cursada por no mínimo 1 aluno.
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• AGREGAÇÃO
• É um tipo especial de associação.
• Utilizada para indicar “todo-parte”.
Item
Pedido
1 1..* agregação todo parteUm objeto “parte” pode fazer parte de vários objetos “todo”.
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• COMPOSIÇÃO
• É uma variante semanticamente mais “forte” da agregação.
• Os objetos “parte” só podem pertencer a um único objeto “todo” e têm o seu tempo de vida coincidente com o dele.
Teclado
Notebook 1 1 Window 1 0..* Frame
1..* 0..*
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• COMPOSIÇÃO - EXEMPLO Empresa Departamento Escritório 1 1..* 1..* 0..1 *UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
• COMPOSIÇÃO - EXEMPLO
Janela
Scroll Título Corpo
1 0..1
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - ASSOCIAÇÃO
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - GENERALIZAÇÃO
• É um relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses).
“é um” “é um tipo de” superclasse subclasse Veículo Terrestre Aéreo
UML - Diagrama de Classes - Elementos
•
RELACIONAMENTOS - DEPENDÊNCIA
• Representa que a alteração de um objeto (o objeto indepedente) pode afetar outro objeto (o objeto dependente).
cliente fornecedor
• A classe cliente depende de algum serviço da classe fornecedor. • A mudança de estado do fornecedor afeta o objeto cliente.
• A classe cliente não declara nos seus atributos um objeto do tipo fornecedor. • Fornecedor é recebido por parâmetro de método.
UML - Diagrama de Classes - Exemplo
•
CENÁRIO
• A Universidade XYZ deseja informatizar seu sistema de matrículas e foi descoberto que:
• A universidade oferece vários cursos.
• O Coordenador de um curso define as disciplinas que serão oferecidas pelo seu curso num dado semestre.
• Várias disciplinas são oferecidas em um curso.
• Várias turmas podem ser abertas para uma mesma disciplina, porém o número de estudantes inscritos deve ser entre 3 e 10.
UML - Diagrama de Classes - Exemplo
•
CENÁRIO
• A FAPAN deseja informatizar seu sistema de matrículas e foi descoberto que:
• Quando um estudante matricula-se para um semestre, o Sistema de Registro Acadêmico (SRA) é notificado.
• Após a matrícula, os estudantes podem, por um certo prazo, utilizar o sistema para adicionar ou remover disciplinas.
• Professores usam o sistema para obter a lista de alunos matriculados em suas disciplinas.
UML - Diagrama de Classes - Exemplo
UML - Diagrama de Classes - Exemplo
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CASOS DE USO - DESCRIÇÃO
• Esse caso de uso se inicia quando o Estudante de Curso inicia uma sessão no sistema e apresenta suas credenciais.
• O sistema verifica se a credencial é válida.
• O sistema solicita que o estudante realize sua matrícula, selecionando 4 disciplinas.
• O estudante preenche um formulário eletrônico de matrícula e o submete para uma análise de consistência.
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CASOS DE USO - DESCRIÇÃO
• O sistema analisa as informações contidas no formulário.
• Se as informações são consistentes, o estudante é incluído em turmas abertas de 4 disciplinas, iniciando pelas preferenciais.
• Se as informações não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja alterado.
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Identificar Classes
Professor Coordenador Estudante
Turma Universidade Disciplina FormularioMatricula Curso AnalisadorMatricula SistemaRegistroAcademico ListaAlunos
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Identificar Relacionamentos
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Identificar Relacionamentos
• Candidatos?
A é parte física ou lógica de B.
A está contido fisicamente ou logicamente em B. A é uma descrição de B.
A é membro de B.
A é subunidade organizacional de B. A usa ou gerencia B.
A se comunica/interage com B.
A está relacionado com uma transação B. A é possuído por B.
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Identificar Relacionamentos
• O formulário de matrícula é processado por um analisador de matrícula
1 0..*
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Identificar Relacionamentos
• O analisador de matrícula gerencia a disciplina.
Disciplina
FormularioMatricula é-processado-por AnalisadorMatricula
1 0..*
1
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Identificar Relacionamentos Professor Coordenador Estudante Turma Disciplina FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia 1 1 1 0..* 1 0..* 1 1..* 1 1..* 1 0..3 3..10 4UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Identificar Atributos
• Os atributos podem ser encontrados examinando-se as descrições dos casos de uso e também pelo conhecimento do domínio do problema.
Cada turma oferecida possui um código, uma sala e um horário.
Turma
- código - sala - horário
UML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
Coordenador FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia 1 1 1 0..* 1 0..* 1 1..* 1 1..* 1 0..3 3..10 4 Turma - código - sala - horário Professor - nome - titulação Estudante - nome - matricula Disciplina - nome - numCréditosUML - Diagrama de Classes - Exemplo
•
DIAGRAMA DE CLASSES
• Acrescentando Generalização
• Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral.
UML
UML – Diagrama de Sequência
•
Introdução
– Diagrama de sequência
•
Elementos do diagrama de sequência
UML - Diagrama de Sequência -Introdução
•
Mostra a interação entre os objetos.
•
Determina
a
sequência
de
eventos
que
ocorrem em um determinado processo
• Quais condições devem ser satisfeitas ...• Quais métodos devem ser disparados ...
UML - Diagrama de Sequência -Introdução
•
Baseia-se no Diagrama de Casos de Uso
• 1 Caso de Uso N Diagramas de Sequência
•
Baseia-se, também, no Diagrama de Classes
UML - Diagrama de Sequência - Elementos
•
ELEMENTOS DO DIAGRAMA
UML - Diagrama de Sequência - Elementos
•
ATORES
• Exatamente os mesmos dos Casos de Uso
• Interagem Solicitam serviços Eventos Processos
UML - Diagrama de Sequência - Elementos
•
OBJETOS
• Representam as instâncias das classes.
• Retângulos contendo um texto.
• Primeira parte, em minúsculo, o nome do objeto
• Segunda parte, em letras iniciais maiúsculas, o nome da classe
• Informações separadas por dois pontos (:)
• Linha de vida
UML - Diagrama de Sequência - Elementos
•
OBJETOS
• Apresentados na dimensão horizontal do diagrama.
• Ordem dos objetos não é considerada
• Dispô-los de forma a tornar o diagrama “mais legível”
UML - Diagrama de Sequência - Elementos
•
OBJETOS
jose Floricultor c en tral CentralFloricultura joao:Den tistafloric ul torPe trop olis Floricultor
1.1: atendeCidade("Petropolis"):boolean
1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean 1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean
UML - Diagrama de Sequência - Elementos
•
LINHAS DE VIDA
• Representa o tempo que um objeto existiu durante um processo
• Linhas finas verticais tracejadas
• Iniciam no retângulo que representa o objeto
• Interrompida por um “X” quando o objeto é destruído
UML - Diagrama de Sequência - Elementos
•
LINHAS DE VIDA
p ed ido vendedor estoque 2.2: reservarItem 3.1: confirmarPedido 2.1: verificarDisponibilidade 4: 3: confirmarPedido 2:*[*] //adicionarItem 1: Linhas de vida new()(Caixas de) Ativação
kill()
Criação
UML - Diagrama de Sequência - Elementos
•
FOCO DE CONTROLE/ATIVAÇÃO
• Indica os períodos em que um determinado objeto está participando ativamente do processo
• Executando um ou mais métodos do processo
• Representados por extensões mais grossas/largas da Linha de Vida
UML - Diagrama de Sequência - Elementos
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS
• Objetos interagem através da troca de mensagens.
• Setas sólidas que vão do objeto solicitante para o solicitado
Para o próprio objeto: auto-delegação
• Rotulados com os nomes dos estímulos mais os argumentos (ou valores dos argumentos) do estímulo
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS
• Demonstram a ocorrência de eventos que normalmente forçam a chamada de um método em algum dos objetos envolvidos no processo.
• Mensagens entre:
• Ator e Ator
• Ator e Objeto
• Objeto e Objeto
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS
• Sintaxe
• onde
• return é o nome do valor de retorno
• message é o nome da mensagem
• parameter é o nome de um parâmetro da mensagem
• parameterType é o nome do tipo desse parâmetro
• returnType é o tipo do valor de retorno
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - TIPO
• Tipos de ação que uma mensagem pode representar
• Call: Invoca uma operação sobre um objeto
• Return: Representa o retorno de um valor para o objeto que chamou a operação
• Create: Criação de um objeto
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - CALL
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - RETURN
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - CREATE
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - DESTROY
• Mensagem que dispara um método destrutor – elimina um objeto não mais necessário.
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - GUARDA
• Mensagem com Condição de Guarda
• condições em que a mensagem é enviada
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - GUARDA
:Aluno :Sistema :Impressora login() sistemaOk matricula() turmaCheia [sem vaga] matriculado imprimirRelatório() [com vaga] Matrícula
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - ITERAÇÃO
• Uma mensagem pode ser enviada repetidas vezes
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - ITERAÇÃO
* adicionarItem pedido vendedor p ed ido ven de do r e sto qu e 2.2: reservarItem 3.1: confirmarPedido 2.1: verificarDisponibilidade 4: 3: confirmarPedido 2:*[*] //adicionarItem 1:UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS - REPRESENTAÇÃO
Símbolo Significado
Mensagem síncrona Mensagem assíncrona
UML - Diagrama de Sequência - Elementos
UML - Diagrama de Sequência - Elementos
UML - Diagrama de Sequência - Elementos
•
MENSAGENS/ESTÍMULOS
mensagens Auto-delegação jose Floricultor c en tral CentralFloricultura joao:Den tistafloric ul torPe trop olis Floricultor
1.1: atendeCidade("Petropolis"):boolean
1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean 1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean
UML - Diagrama de Sequência - Elementos
Tempo (top-down) ObjetoA ObjetoB [se novo] <<create>> mensagemmensagem (auto delegação) valor de retorno <<destroy>> (caixa de)ativação condição de guarda mensagem síncrona objeto símbolo de destruição linha de vida
UML - Diagrama de Sequência - Construção
•
Escolher um caso de uso
•
Identificar os objetos que fazem parte da
interação
•
Identificar o objeto que começa a interação
•
Identificar as mensagens trocadas entre os
objetos
UML - Diagrama de Sequência - Exemplo
blogSystem
Criar Comentario
Ler Conteudo
Remover Conteudo Remover Nota Remover Comentario Criar Blog Ler Comentario Ler Nota Criar Nota Usuario Dono do blog <<include>> <<include>> <<include>>
UML - Diagrama de Sequência - Exemplo
: UsuarioBlog
: UsuarioBlog : GUIBlog : GUIBlog : ControladorBlog : ControladorBlog : Blog : Blog 1: criarBlog(titulo, usuario)
2: criarBlog(titulo, usuario)
UML - Diagrama de Sequência - Exemplo
: UsuarioBlog
: UsuarioBlog : GUIBlog : GUIBlog : ControladorBlog : ControladorBlog : Blog : Blog : Nota : Nota 1: criarNota(usuario, idBlog, comentario)
2: criarNota(usuario, idBlog, comentario) 3: consultarBlog(idBlog)
4: getDono()
UML - Diagrama de Sequência – Exemplo 2
Fluxo Principal1. O usuário solicita o cadastro de cliente.
2. O sistema apresenta o formulário para preenchimento.
3. O usuário entra com as informações necessárias do cliente no sistema e submete. 4. O sistema valida o cadastro do cliente. (FE01) (FE02)
5. O sistema armazena os dados do cliente. 6. O sistema cria uma conta em nome do cliente
7. O sistema notifica o usuário sobre o cadastro e o caso de uso termina.
Fluxos Alternativo
FA01 - Usuário cadastrado
1. Se o cliente já estiver cadastrado, uma mensagem será exibida e o caso de uso termina.
FA02 - Dados incompletos
1. Se os dados estiverem incompletos, o sistema exibe uma mensagem para que o usuário forneça as informações completas e o caso de uso retorna ao passo 3 do fluxo principal.
UML - Diagrama de Sequência – Revisão
:RegisterForCoursesForm :RegistrationController SWTSU Catalog :
CourseCatalogSystem
Objetos anônimos
Linhas de vida