Modelagem de Sistemas
Orientada a Objeto
Com UML
Diagramas da UML
• Diagramas de casos de uso
– Diagramas, descrições e modelos de objetos.
• Diagramas de estrutura
– Diagramas de classe e de objeto.
• Diagramas de interação
– Diagramas sequenciais e de colaboração.
• Diagramas de estado
– Diagramas de mudanças de estado e de atividades.
• Diagramas de implementação
– Diagramas de pacotes, de componentes e de
desdobramento.
Relação entre os diferentes
diagramas da UML
Diagramas de estado
Pedido
enviado
Alteração
de pedido
Registrando
pedido
Pedido não pode
ser atendido no
memento
Especificação
de Requisitos
Cancelando
pedido
Pedido para
aprovação
Pedido será
cancelado
Analisando
pedido
Cenários
Cancelamento
de pedido
Alterando
pedido
Pedido para
análise
Especificação de requisitos
Pedido para
aprovação
Receber
pedido
Pedido
cancelado
Separação
Preencher
pedido
Aprovando
pedido
Enviar
fatura
Desvio/Decisão
Pedido será
atendido
Receber
pagamento
Pedido já pode
ser atendido
Entregar
urgente
Colocando
pedido
Diagramas de
implementação
Atendendo
pedido
Pedido
atendido
Entregar
normal
Intercalação
Junção
IU
Processamento
de Pedido
Fechar
pedido
IU
Mala Direta
AWT
Aplicação
Processamento
de Pedido
Pedidos
Pedido 1
Entra
Vendedor
1
Pedido
Aplicação
Mala Direta
Móveis Ltda.
Clientes
Acessa
1..*
Contabilidade
Mesa AB.
1
Cadeira Z.
Cliente_info
osu ed sosac sod oãçircseD
* Acessa
Vendedor A
Contabilidade
Pedido 2
Inclui
Loja M.
sadnev ed ametsiS
tenretnI alep
Cliente_info
complem_1
Acessa
Inventário
Cadeira Z.
1..*
oirótaleR
sadnev ed
ed ametsiS
edadilibatnoc
Mesa 15.
Cliente_info
complem_2
Item_pedido
Acessa
*
Mesa 222.
Inventário
Poltrona X.
Cobrança.
exe
rodedneV
Registro.
exe
sadnev ed oirótaleR
siaudividni
ed ametsiS
oirátnevnI
sadnev ed oirótaleR
sianoiger
Diagramas
de classe
etnereG
lanoiger
Diagrama de
caso de uso
Vendedor
Entra
1
Pedido_ID
Total_$
Entrar_ID
Preencher_Ped
Submeter_Ped
Ver_Vend_ID
Sub_Ped_Cont
Sub_Ped_Inv
Nome-Client
End_Cobran
Limit_Credit
1..*
Item
Ver_Item
Total_Ped
Uma Linha
de Pedido
Aluno.
cls
Professor.
cls
Submete
Cliente
Inclui
Um Pedido
Curso_
Oferecido.
cls
Tem
1
Janela entrada
de Pedido
Curso.
cls
Pessoa.
exe
Pedido
1..*
Nome_Vend
Vendedor_ID
Item_ID
Nome_Item
Preco_Item
Imposto
Transporte
Cartões
CRC
Curso.
dll
Ver_Credit
Atual_Status
* Acessa
Contabilidade
Cliente_info
complem_1
Cliente_info
complem_2
*
Acessa
Inventário
Janela entrada
de Pedido
prepare()
*prepare()
:Janela de Entrada de Pedido
temEstoque:=
verificar()
1:prepare()
[temEstoque]
retirar()
precisaReposição:=
precisaRepor()
[precisaReposição]
Um item de
reposição
:Pedido
2*[para todas as linhas do pedido]
:prepare()
3:temEstoque: +verificar()
4:[temEstoque]:= remover()
linhaMacau:LinhaDePedido
7:[temEstoque]:novo
[temEstoquenovo]
Um item de
entrega
:ItemDeEntrega
Sistema de Vendas
Servidor Internet
5:precisaReposição:= precisaRepor
estoqueMacau:
ItemDeEstoque
Pacote 1
Módulo
de Vendas
Cliente
6:[precisaReposição]:novo
:ItemDeReposição
Sistema de
contabilidade
Notebook
Vendedor
Várias plataformas
(Intel/Windows;
Apple/MacOS)
Pacote 2
Gestão de
Vendas
Rede corporativa Novell
Network/SQL
Pacote 3
Interface
para banco
de dados
Sistema de
inventário
SUN Solaris/UNIX
Diagramas de interação
Especificação de Requisitos
Especificação de requisitos
Cenários
• Cenários descrevem passo a
passo exemplos específicos de
uso do sistema. Os nomes e
verbos utilizados na
construção do cenário
frequentemente definem
classes e operações,
respectivamente.
• Ex.: O cliente navega no catálogo de itens e adiciona itens
desejados à sua cesta de compras. Quando o cliente deseja
pagar, descreve o endereço de entrega, fornece as informações
do cartão de crédito e confirma a venda. O sistema verifica a
autorização do cartão de crédito e confirma a venda
imediatamente e envia um e-mail logo a seguir.
Diagrama de casos de uso
• Diagrama de caso de uso define processos genéricos que o
sistema deve estar capacitado para realizar e as interações
entre os processos e sistemas externos ou pessoas (atores). As
descrições dos casos de uso definem cenários genéricos.
Descrição dos casos de uso
Sistema de vendas
pela Internet
Relatório
de vendas
Sistema de
contabilidade
Vendedor
Relatório de vendas
individuais
Gerente
regional
Relatório de vendas
regionais
Sistema de
Inventário
Cartão CRC
• Cartões de Classes, Responsabilidades e Colaboradores
proporcionam aos usuários e desenvolvedores um modo para
identificar classes, atributos e mensagens, trabalhando com
cenários.
Nome da classe
Descrição da função da classe
Atributos
Nome da classe
Super classes
Subclasses
Responsabilidades
(operações)
Colaboradores
(associações
entre classes)
Cartão CRC
Exemplos
Vendedor
Pessoa que submete pedidos de clientes.
Pedido
Documento (eletrônico) submetido por um vendedor
contendo informações sobre o cliente e os itens desejados.
Cliente
Uma empresa ou indivíduo que busca comprar algum
produto e/ou obter crédito.
Sistema de contabilidade
Fonte de informações sobre a disponibilidade de crédito de
clientes potenciais.
Inventário
Fonte de informações sobre a disponibilidade de itens dos
produtos oferecidos, prazo de entrega, ...
Modelo de Objetos Ideais
• O modelo de objetos ideais, criado por Jacobson (OOSE,
Object Oriented Software Engineering), define três tipos de
classes de acordo com a abrangência de cada uma (classes de
interface; classes de entidade, classes de controle).
Solicitação
de Extrato
Transferência
de fundos
Cliente
Depósito
Sistema
Banco
Diagramas de estrutura
Diagramas de classe (1)
• O diagrama de classe descreve as classes, suas associações
com outras classes (responsabilidades) e relacionamento de
herança.
Entra
Vendedor
1
Pedido
1..*
1
Cliente_info
* Acessa
Contabilidade
Inclui
Cliente_info
complem_1
Cliente_info
complem_2
Acessa
Inventário
1..*
Item_pedido *
Diagramas de estrutura
Diagramas de classe (2)
Vendedor
Entra
1
Pedido
1..*
Nome_Vend
Vendedor_ID
Pedido_ID
Total_$
Entrar_ID
Preencher_Ped
Submeter_Ped
Ver_Vend_ID
Sub_Ped_Cont
Sub_Ped_Inv
Tem
1
• O diagrama de classe pode
descrever de forma mais
complexa os atributos e as
operações das classes.
Cliente
Inclui
Nome-Client
End_Cobran
Limit_Credit
1..*
Item
Item_ID
Nome_Item
Preco_Item
Imposto
Transporte
Ver_Item
Total_Ped
Submete
Ver_Credit
Atual_Status
* Acessa
Contabilidade
Cliente_info
complem_1
Cliente_info
complem_2
*
Acessa
Inventário
Diagramas de estrutura
Diagramas de objetos
• O diagrama de objetos
é usado para explorar
problemas específicos
em determinadas
classes.
Pedido 1
Móveis Ltda.
Acessa
Contabilidade
Mesa AB.
Cadeira Z.
Vendedor A
Pedido 2
Loja M.
Mesa 15.
Cadeira Z.
Mesa 222.
Poltrona X.
Acessa
Inventário
Diagramas de interação
• O diagrama de interação é um modelo que descreve como
grupos de objetos colaboram em algum comportamento.
• O diagrama de interação captura o comportamento de um
único caso de uso. Exibe vários objetos e as mensagens
que são trocas entre eles em um caso de uso.
• Existem dois tipos de diagramas de interação: diagramas
de sequência e diagramas de colaboração.
Diagramas de interação
Diagrama de sequência
• O diagrama de sequência mostra o fluxo de mensagens
(eventos) entre objetos. Proporciona um modo formal para
especificar um cenário.
• Os objetos são mostrados como caixas na parte superior de
uma linha tracejada. A barra vertical é chamada de linha da
vida do objeto e representa a vida do objeto durante a
interação. Cada mensagem é representada por um vetor
entre as linhas de vida de dois objetos. A ordem na qual as
mensagens ocorrem é mostrada da parte superior à parte
inferior do diagrama. Existem ainda as autochamadas,
uma mensagem que o objeto chama para si mesmo.
Diagrama de sequência
Janela entrada
de Pedido
Um Pedido
Uma Linha
de Pedido
Janela entrada
de Pedido
prepare()
*prepare()
temEstoque:=
verificar()
[temEstoque]
retirar()
precisaReposição:=
precisaRepor()
[precisaReposição]
Um item de
reposição
[temEstoquenovo]
Um item de
entrega
Diagramas de interação
Diagrama de colaboração
• O diagrama de colaboração é uma combinação de objetos e
sequência de diagramas. Ele mostra o fluxo de eventos entre
objetos.
• Os objetos são representados por retângulos com seus nomes
(de objeto ou classe). Se apropriado, coloca-se também os
atributos associados. Linhas conectam os objetos
(mensagens), com denominações indicando as operações
(cada operação é precedida por um número sequencial para
indicar a ordem de execução. Um vetor após ou ao lado do
nome da operação indica a direção do fluxo (a operação
sempre é executada onde reside, o vetor aponta a origem da
operação).
Diagrama de colaboração
:Janela de Entrada de Pedido
1:prepare()
:Pedido
2*[para todas as linhas do pedido]
:prepare()
3:temEstoque: +verificar()
4:[temEstoque]:= remover()
linhaMacau:LinhaDePedido
7:[temEstoque]:novo
:ItemDeEntrega
5:precisaReposição:= precisaRepor
estoqueMacau:
ItemDeEstoque
6:[precisaReposição]:novo
:ItemDeReposição
Diagramas de estado
• Estado se refere a um conjunto de valores quer descrevem um
objeto num determinado instante. Em outras palavras, um
objeto é determinado pelos valores associados aos seus
atributos.
• Diagramas de estado são chamados também de diagramas de
transição de estado. Exibe em detalhes o comportamento de
um objeto.
• O diagrama de estado mostra todos os valores (estados) que o
atributo de um objeto pode assumir quando mensagens
(eventos) são processadas. Diagramas de estado são mais
úteis para classes cujas instâncias são muito dinâmicas.
Diagramas de estado (1)
Pedido
enviado
Alteração
de pedido
Registrando
pedido
Alterando
pedido
Pedido para
análise
Analisando
pedido
Pedido não pode
ser atendido no
memento
Colocando
pedido
Cancelamento
de pedido
Cancelando
pedido
Pedido para
aprovação
Pedido será
cancelado
Pedido para
aprovação
Pedido
cancelado
Aprovando
pedido
Pedido será
atendido
Pedido já pode
ser atendido
Pedido
atendido
Atendendo
pedido
Diagramas de estado (2)
Subestado simultâneo
Preparando despacho de mercadoria
Selecionando
itens de carga
Emitindo
romaneio
Itens
selecionados
Montando
carga
Carga
montada
Romaneio emitido
Subestado sequencial
Fechamento do negócio
Analisando
crédito
Crédito Ok
Analisando
itens de compra
Itens analisados
Negociando
condição
Negócio
fechado
Diagramas de atividades
• O diagrama de atividades mostra todas as atividades que
provocam mudanças de valores em um objeto. Diagramas de
atividades são usados para capturar o fluxo de trabalho
(“workflow”) ou a sequência de decisão em um processo.
• Na UML, atividades são chamadas de estados, então, o
diagrama de atividades está associado ao diagrama de estado.
• Num diagrama de atividade, os estados são normalmente
atividades limitadas no tempo. Eventos geralmente estão
associados às transições.
• Diagrama de estado focaliza os eventos que ocorrem para um
determinado objeto. Diagrama de atividades podem ser usados
para modelar todo um processo de negócio ou proporcionar
uma visão global do que está acontecendo dentro de um caso de
uso.
Diagrama de atividades
Receber
pedido
Separação
Preencher
pedido
Enviar
fatura
Desvio/Decisão
Receber
pagamento
Entregar
urgente
Entregar
normal
Intercalação
Junção
Fechar
pedido
Diagramas de implementação
• Diagramas de implementação mostram decisões sobre o
design e a arquitetura do sistema. Existem três tipos:
• Diagramas de pacotes: permitem que os desenvolvedores
mostrem como as classes podem ser subdivididas em
módulos. São diagramas lógicos e não necessariamente
implicam em uma divisão física das classes.
• Diagramas de componentes: são usados para mostrar os
módulos físicos que um desenvolvedor deve utilizar.
• Diagramas de desdobramento: permitem que os
desenvolvedores modelem a plataforma física e a rede que
será utilizadas pela aplicação.
Diagrama de pacotes
IU
Processamento
de Pedido
IU
Mala Direta
AWT
Aplicação
Processamento
de Pedido
Aplicação
Mala Direta
Pedidos
Clientes
Diagrama de componentes
Cobrança.
exe
Registro.
exe
Curso.
dll
Curso.
cls
Curso_
Oferecido.
cls
Pessoa.
exe
Aluno.
cls
Professor.
cls
Diagrama de desdobramento
Sistema de Vendas
Servidor Internet
Sistema de
contabilidade
Notebook
Vendedor
Pacote 1
Módulo
de Vendas
Cliente
Várias plataformas
(Intel/Windows;
Apple/MacOS)
Pacote 2
Gestão de
Vendas
Rede corporativa Novell
Network/SQL
Pacote 3
Interface
para banco
de dados
Sistema de
inventário
SUN Solaris/UNIX
Download

Diagramas de pacotes