Professional Documents
Culture Documents
Engenharia da Computação
Engenharia de Software
Email: danilasilva@gmail.com
UML
• Linguagem de Modelagem Unificada:
– Notação flexível
– Conceitos relacionados com OO
– Metodologia
– Proposta por Grady Booch, James
Rumbaugh, e Ivar Jacobson
UML
• Objetivos:
• A modelagem de sistemas (não apenas de
software) priorizando os conceitos da
orientação a objetos;
• Estabelecer uma união fazendo com que
métodos conceituais sejam também
executáveis;
• Criar uma linguagem de modelagem usável
tanto pelo homem quanto pela máquina.
Visões
• As Visões mostram diferentes aspectos do sistema
que está sendo modelado. A visão não é um
gráfico, mas uma abstração consistindo em uma
série de diagramas. Definindo um número de
visões, cada uma mostrará aspectos particulares
do sistema, dando enfoque a ângulos e níveis de
abstrações diferentes.
Diagramas
Criar() Operações
Destruir()
Objeto
Criar()
Operações
Destruir()
Criar()
Operações
Destruir()
Pacotes
<nome do
Pacote>
Componentes
Cliente.java Gráficos.dll
Relacionamentos
• Os relacionamentos ligam as
classes/objetos entre si criando relações
lógicas entre estas entidades
– Associação (conexão entre classes)
– Generalização (conexão entre elemento mais
geral e outro mais específico )
– Dependência e Refinamentos (conexão
entre um independente e outro dependente )
Associação
• Ex Associação Simples.:
– Associação das classes CLIENTE E
CONTA CORRENTE.
• Ex Associação Recursiva.:
– Associação da classe PESSOA.
Pessoa
Esposa
Marido
é casado com
Associação
• Associação Ternária:
– Uma classe pode ser associada a uma
outra associação.
– Ex.:
– Associação das classes CONTRATO, CLIENTE
E REGRAS.
1..*
Regras Contratuais
Associações de Agregação
– Agregação compartilhada
Time * * Pessoa
Membros
– Agregação de composição
Text
*
* ListBox
Janela
* Botão
*
Menu
Generalização
– Relacionamento entre um elemento
geral e um outro mais específico;
– O elemento mais específico possui todas
as características do elemento geral e
contém ainda mais particularidades.
Transação Poupança
Bancária
Ornamentos
– Customizações gráficas associadas aos
elementos.
– Ex.:
• Quando um elemento representa um tipo,
seu nome é mostrado em negrito.
• Quando o mesmo elemento representa a
instância de um tipo, seu nome é escrito
sublinhado.
Notas
– Informações adicionais.
Interface do
Usuário
Objetos do Utilidades
Sistema NOTAS
Banco de Dados
A classe
Cliente
Cliente manterá um
vetor com
todos os
clientes do
banco
Diagramas UML
Diagrama de Casos de
•
Uso
A modelagem de um diagrama caso
de uso é uma técnica usada para
descrever e definir os requisitos
funcionais de um sistema .
Caso de Uso – O que é?
• Um caso de uso é uma descrição narrativa de uma seqüência de eventos
que ocorre quando um ator (agente externo) usa um sistema para
realizar uma tarefa [Jacobson 92]
• Um caso de uso é a descrição de um conjunto de ações, incluindo
variantes, que o sistema realiza para chegar a um resultado de valor
observável para um ator [Booch, Rumbaugh, Jacobson 99]
• Casos de uso descrevem os requisitos externos do sistema. São usados
na fase de análise de requisitos. Possibilitam elaboração de casos de
teste e manuais de usuário [Schneider 98]
Definição do Sistema
• Atores
– Agentes externos ao sistema
– Papéis de usuário ou sistema
• Relacionamentos
– Relaciona atores com casos de uso
– Relaciona casos de uso
Atores
• Atores
– Cliente – pessoa que compra produtos
– Funcionário – pessoa que realiza operações específicas na loja e
atendimento ao cliente
– Transportador – empresa que entrega o produto
– Sistema de pagamento – sistema que debita o valor da conta de
cartão de crédito do usuário
– Sistema de estoque – sistema que controla o estoque de
produtos na loja
Casos de Uso
• Quais serviços os atores querem do sistema?
• O sistema armazena informações?
• Quais atores criam, lêem, atualizam ou eliminam
estas informações?
• O sistema necessita notificar algum ator sobre
mudanças no seu estado interno?
• Existe algum evento externo que o sistema deva
saber?
• Qual ator informa ao sistema sobre estes eventos.
Exemplo
Abrir Cadastrar Cliente Remover ou
Conta corrente Atualizar Cliente
Cadastra
Dependente
Fechar
Conta corrente
Cadastrar Operação
(Histórico)
Administração do
Banco
Abrir Poupança
Remover ou Atualizar
Operação (Histórico)
Fechar
Poupança Cadastrar Agência Remover ou Atualizar
Agência
Exemplo
Exemplo
• Demonstra o comportamento de um
elemento através de um conjunto de
transições de estado.
• Pode ser utilizado para modelar o
comportamento de um componente,
um objeto ou até mesmo do sistema
como um todo.
Máquina de Estados
Esperando
solicitação
Máquina de Estados
Pessoa solicita
elevador
Esperando Elevador
solicitação processando
Máquina de Estados
Energia
Elevador
interrompida
ligado
Pessoa solicita
elevador
Esperando Elevador
solicitação processando
Máquina de Estados
• Barra de Sincronização
Elevador
ligado
Iniciando
Operação
Otimizando Checando
energia Itens segurança
Máquina de Estados
• Atividade Prática
• Modele a seguinte situação problema
com máquina de estados:
– Operação do elevador da POS.
• chamar elevador
• verificar capacidade
• entrar no elevador
• sair do elevador
Diagrama de
Atividades
Diagramas de Classes de
UML
Orientações de Uso
• Classes
- Nome das classes são substantivos
- Primeiro caractere maiúsculo (Cliente, Cad_Clientes)
• Atributo:
- substantivo, aparece como maiúsculo o primeiro caractere
de cada palavra existente no nome do atributo, exceto
a primeira letra: nomeProfessor
• Operação (Método)
- verbo ou locução verbal, aparece como maiúsculo o
primeiro caractere de cada palavra existente no nome
da operação, exceto a primeira letra: isEmpty
Classe
• Nome da classe podem ser simples ou pode ser precedido pelo nome do
pacote em que a classe está contida (Exceções::ClienteCadastrado)
• Representação
Curso
Identificador - Nome (obrigatório)
nome
Atributos (opcional)
créditos
abrir()
Operações (opcional)
incluir()
Atributos
Parede
altura : real
largura : real
espessura : real
viga : boolean = false
Operações/Métodos
– Operação é algo que é executado em um objeto
(procedimento de chamada)
– Método é o corpo do procedimento
• Descreve o comportamento da classe
• Visibilidade
– público
– protegido
– privado
Relacionamentos
• 3 Tipos:
– Associações
• Agregação
• Composição
– Generalização (herança)
– Dependências
Associação
Herança Agregação
Dependência Composição
Relacionamentos
• Nome
– descrever a natureza do relacionamento
• Papel
– função específica a executar nesse relacionamento
• Multiplicidade
– quantidade de objetos que podem ser conectados
no relacionamento
– 1, zero ou um (0..1), muitos (0..*), um ou mais
(1..*)
– 0..1, 3..4, 6..* = o que significa?
Associação
Empresa Pessoa
Trabalha em
1..*
Dependência
Cliente Servidor
Generalização
• Generalização:
Gerente
Funcionário
Caixa
• Agregação
1..*
Time Jogadores
do tipo “TEM”
diamante na posição de maior força
Agregação
1 1..*
Pedido itemPedido
É composto por
Composição
1 0..1
Endereço Complemento
Tem
▼
Computador
Janela
• Representação Gráfica
Servidor
Da aplicação
Repositório
das Mídias
Diagramas de Instalação ou
implantação
Diagramas de Instalação ou
implantação
Diagramas de Pacote
• Atores
– Idênticos aos do diagrama de casos de
uso.
– Adição de uma linha de vida
:Usuario Web
Diagrama de Seqüência
• Objetos
– Representam as instâncias das classes
envolvidas no processo.
Inicio:
paginaHTML
Diagrama de Seqüência
• Linha de Vida
– Representa o tempo em que um objeto
existe durante um processo.
Representada por uma linha tracejada e
pode ser interrompida com um “X”
quando o objeto é destruído.
Inicio:
paginaHTML
Diagrama de Seqüência
• Mensagens (estímulos)
– Representam a ocorrência de eventos
que normalmente forçam a chamada de
um método em um dos objetos
envolvidos. Podem ser numeradas.
Inicio: anuncio:
paginaHTML popup
1: Chamar anuncio ()
Diagrama de Seqüência
anuncio:
popup
1: Chamar anuncio ()
2: Executar banner ()
Diagrama de Seqüência
• Condições
– Estabelecem regras que regem o disparo
das mensagens
anuncio:
popup
1: Chamar anuncio ()
2: Executar banner ()
[ pagina acionada ]
3: Chama pagina anunciante ()
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
Diagrama de Seqüência
EXEMPLO
p : cliente s1 : tela_abertura s2 : cadastro
SelecionaEntdados ( )
MostrarForm01 ( )
DigitaDados ( )
SubmeteDados ( )
EnviaDados ( )
GravaDados ( )
EnviaMSGResult ( )
EnviaMSGCliente ( )
Diagrama de Comunicação
“Ex-diagrama de interação de
colaboração”
Diagrama de Comunicação
• Semelhante e equivalente ao
diagrama de sequência
• Não possui linha de vida
• Foco nas mensagens e sua
ordenação.
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
Diagrama de Comunicação
• Ex:
2: ch
amar 3: Executar banner (
Inicio: anun
cio ()
paginaHTML anuncio:
t rar ()
n popup
1: e
an n er ()
b
a gi r com [ pagina acionada ]
er
4: int 5: Chama pagina anunciante ()
:Usuario Web
anunciante:
paginaHTML
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
Diagrama de Comunicação
• Ex:
Inicio:
paginaHTML anuncio:
popup
:Usuario Web
anunciante:
paginaHTML
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
Diagrama de Comunicação
• Ex:
Inicio:
paginaHTML anuncio:
t rar ()
n popup
1: e
:Usuario Web
anunciante:
paginaHTML
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
Diagrama de Comunicação
• Ex:
2: ch
amar
Inicio: anun
cio ()
paginaHTML anuncio:
t rar ()
n popup
1: e
:Usuario Web
anunciante:
paginaHTML
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
Diagrama de Comunicação
• Ex:
2: ch
amar 3: Executar banner (
Inicio: anun
cio ()
paginaHTML anuncio:
t rar ()
n popup
1: e
:Usuario Web
anunciante:
paginaHTML
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
Diagrama de Comunicação
• Ex:
2: ch
amar 3: Executar banner (
Inicio: anun
cio ()
paginaHTML anuncio:
t rar ()
n popup
1: e
an n er ()
b
a gi r com
er
4: int
:Usuario Web
anunciante:
paginaHTML
Diagrama de Comunicação
• Ex:
2: ch
amar 3: Executar banner (
Inicio: anun
cio ()
paginaHTML anuncio:
t rar ()
n popup
1: e
an n er ()
b
a gi r com [ pagina acionada ]
er
4: int 5: Chama pagina anunciante ()
:Usuario Web
anunciante:
paginaHTML
Diagrama de Seqüência
• Ex:
:Usuario Web
1: entrar ()
2: chamar anuncio ()
3: Executar banner ()
[ pagina acionada ]
4: interagir com banner () 5: Chama pagina anunciante ()
6: destroy ()
Diagrama de Comunicação
• Ex:
2: ch
amar 3: Executar banner (
Inicio: anun
cio ()
paginaHTML anuncio:
t rar ()
n popup
1: e
an n er ()
b
a gi r com [ pagina acionada ] 6: destroy ()
er
4: int 5: Chama pagina anunciante ()
:Usuario Web
anunciante:
paginaHTML
Diagrama de Comunicação
• Ex:
2: ch
amar 3: Executar banner (
Inicio: anun
cio ()
paginaHTML anuncio:
t rar ()
n popup
1: e
an n er () [ pagina acionada ]
b
a gi r com
er 5: Chama pagina anunciante ()
4: int
:Usuario Web 6: destroy ()
anunciante:
paginaHTML
Diagramas de Interação
Geral
Interação Geral
• Elementos:
– Quadros (no lugar de nós de
ação/atividades)
– Nós de decisão (condicional)
– Nós de inicio e fim
Interação Geral
• Ex:
[usuario não
Realizar cadastrado] Exibir página
Login de
[usuario
login
cadastrado]
anuncio: anunciante:
popup paginaHTML
3: Executar banner ()
[ pagina acionada ]
5: Chama pagina anunciante ()
Diagrama de
Componentes
Diagrama de Componentes
• O que é um componente?
– Um unidade autônoma dentro do
sistema.
– Pode representar:
• Componente lógico (componente de negócio)
• Componente físico (código-fonte, bibliotecas,
arquivos de ajuda)
Diagrama de Componentes
1.x 2.0
Pagina
Pagina
HTML
HTML
Diagrama de Componentes
• Interfaces (conectores)
– Interfaces fornecidas: serviços
oferecidos aos “clientes”.
• Ex.:
Pagina Servidor
HTML HTTP
Diagrama de Componentes
Página HTML
Info_princ
main
Info_portal
Atividade
Faça os diagramas necessários para o seu projeto de
software.
ESCOLHER UM PROJETO E FAZER UM Projeto de
software , NO SLIDE EXISTE UM PROJETO DE BANCO
QUE PODE SER USADO COMO BASE PARA O
DESENVOLVIMENTO. Escolhe um entre.
Projeto de software ( diagrama caso de uso, diagrama
de atividade, classe,componentes, implantação)
Alguma dúvida?