Diagramas
São representações gráficas de um
conjunto de elementos.
São desenhados para visualizar um
sistema de diferentes perspectivas.
São geralmente representadas como
gráficos de vértices (itens) e arcos
(relacionamentos)
Diagramas UML
o Os artefatos gráficos produzidos de um
sistema OO são definidos através dos
diagramas da UML.
o A UML possui vários diagramas, que
servem para especificar a estrutura de um
sistema.
o Os diagramas da UML estão organizados
em conjuntos ou categorias distintas, cada
categoria visando apoiar um tipo de
modelagem.
Diagramas UML
o A UML define em sua versão 2.4 catorze tipos de
diagramas, divididos em duas categorias:
diagramas estruturais ou estáticos e diagramas
comportamentais ou dinâmicos.
o “A função dos primeiros é mostrar as
características do sistema que não mudam com o
tempo e dos outros como o sistema responde às
requisições ou como evolui com o tempo” (MELO,
2004).
Para que usar os
diagramas UML?
Os diagramas UML são usados para: Ajudar a conceber as ideias, em relação ao sistema que
estivermos projetando;
Pensar antes de codificar;
Apresentar as ideias ao grupo de forma que todos
possam interagir e discutir um determinado ponto;
Aumentar a participação e envolvimento do time;
Documentar as ideias quando elas já estiverem bem
consolidadas para que novos integrantes e novos
colaboradores possam acelerar sua compreensão dos
sistemas desenvolvidos pelo grupo.
Diagrama
de
Objetos
Diagrama
de
Classes
Diagrama
de
Pacotes
Diagrama
Diagrama Comportamental Diagrama Estrutural
Diagrama
de
Componentes
Diagrama
de
Implantação
Diagrama
de Máquina
de Estados
Diagrama
de Casos
de Uso
Diagrama
de
Atividade
Diagrama de Interação
Diagrama
de
Sequência
Diagrama
de
Comunicação
Diagrama
de
Interação
Geral
Diagrama
de
Tempo
- A UML permite o uso de qualquer linguagem
para descrever restrições.
- A única regra é que deve-se usar chaves {}.
- No entanto, existe a OCL (Object Constraint
Language) baseado em cálculos de
predicados.
Diagrama
de
Perfil
Diagrama
de
Estrutura Composta
Diagramas UML
Para que tantos diagramas?
o O objetivo é fornecer múltiplas visões
do software a ser modelado.
o Cada diagrama da UML analisa o
sistema, ou parte dele, sob uma
determinada óptica.
o A utilização de diversos diagramas
permite que falhas sejam descobertas.
Diagrama de Classes
São os principais diagramas estruturais da
UML
Mostram as diferentes classes que fazem
um sistema e como elas se relacionam.
Mostram classes, interfaces e seus
relacionamentos
As classes especificam a estrutura e o
comportamento dos objetos, que são
instâncias de classes
Diagrama de Classes
São chamados diagramas “estáticos”
porque mostram as classes, com seus
métodos e atributos bem como os
relacionamentos estáticos entre elas:
quais classes “conhecem” ou quais
classes “são parte” de outras classes,
mas não mostram a troca de
mensagens entre elas.
Diagrama de Classes
+confirmar()
+cancelar() -calcularTotal():Currency
gerarNovoCodigo: String
-codigo: Integer
-dataRecebido
-total: Currency
Pedido
#creditoPermitido: Currency
#nivelCredibilidade()
-nome: String
-endereco: String
-dataPrimeiraCompra: Date -dataUltimaCompra: Date
-totalComprado: Currency
Cliente
-quantidade: Integer -preco: Currency
-emEstoque: Boolean
Item de Pedido
nomeContato: String
telefones[1..10]: String
CGC: String FAX[1..3]: String
Cliente pessoa-jurídica
colocarListaNegra()
nome: String
CPF: String
numCartaoCredito
Cliente pessoa-física
Empregado
Produto
* representante
de vendas *
IPessoa
itens
0..* 1 faz
Diagrama de Objetos
Descreve a estrutura estática de um
sistema em um determinado momento, ou
seja, representa uma “fotografia” do sistema
em um certo instante.
Mostra objetos e seus relacionamentos,
exibindo as ligações formadas entre objetos
conforme estes interagem e os valores dos
seus atributos.
Diagrama de Objetos
Representam instâncias estáticas de
elementos dos diagramas de classes
Os diagramas de objetos são úteis para a
modelagem de estruturas de dados
complexas
Pode ser usados para testar a precisão dos
diagramas de classe
Diagrama de Objetos
Empregado
João : Empregado
Maria : Empregado
José : Empregado
Antônio : EmpregadoAline : Empregado
Lucas : Empregado
Rafaela : Empregado
Pode ser visto como uma “instância” do
diagrama de classes
Diagrama de Objetos
p2: Professor matricula: "205-6712-09"
nome: "Jaelson Castro"
p1: Professor
codCurso: "IF291"
descrição: "MPS"
codTurma: I7
: Curso
codCurso: "IF185"
descrição: "AER"
codTurma: I6
: Curso
matricula: "219846534"
nome: "Nelson Mandella"
:aluno
matricula: "562746134"
nome: "John Major"
:aluno
: Aluno
: Aluno
: Aluno
: Aluno
c1: Curso
c2: Curso
c3: Curso
Bill
: Aluno : Aluno
Lewinsky
-matrícula: String
-nome: String
Professor
-codDisciplina: String
-descrição: String
-codTurma: String
Curso
-matrícula: String
-nome: String
-período: Integer
Aluno
[0..10]
ministra
[1..5]
*
[1..3]
Diagrama de Pacotes
Um mecanismo de agrupamento geral que pode ser utilizado para agrupar vários artefatos de um modelo.
Notação: uma pasta com uma aba.
Conteúdo, duas maneiras de representar graficamente:
exibir o conteúdo dentro do pacote;
“pendurar” os elementos agrupados no ícone do pacote.
19
Diagrama de Pacotes
Pacotes podem ser agrupados dentro de outros
pacotes, formando uma hierarquia de contenção.
Pode haver relacionamentos de dependência entre
pacotes:
Um pacote P1 é dependente de outro, P2, se houver
qualquer dependência entre quaisquer dois elementos de
P1 e P2.
É muito comum que uma interface e sua
implementação estejam em pacotes distintos
Diagrama de Pacotes
Organizam elementos do
sistema em grupos
relacionados a fim de
minimizar a dependência
entre eles
Diagrama de Implantação
É usado para modelar a arquitetura de
distribuição em que o sistema será
executado
É composto por nós e relacionamentos de
comunicação
Um nó pode ser um computador, uma rede,
um disco rígido, um sensor, etc.
Diagrama de Estrutura
Composta
É utilizado para modelar colaborações
entre interfaces, objetos ou classes.
Diagrama de Implantação
servidorWeb
Autenticação.exe
Cadastro.exe
servidorDeArquivos
FormCadastro.html
Principal.html
FormEntrada.html
servidorBancoDeDados
SGBD
O SGBD a ser utilizado ainda não foi escolhido.
PC - G309
Nestscape Communicator
5.0
Diagrama de Componentes
Descreve a
organização dos
componentes
físicos de software
Ex.: código-fonte,
código em tempo
de execução
(binário) e
executáveis
Diagrama de Componentes
Identifica os
componentes que fazem
parte de um sistema,
um subsistema ou
mesmo os componentes
ou classes internas de
um componente
individual.
Diagrama de Componentes
Mostra os componentes de hardware e
software de uma aplicação e os
relacionamentos entre eles
É usado para modelar o aspecto físico de
um sistema
Exemplos de componentes são
documentos, executáveis e tabelas de
bancos de dados
Diagrama de Componentes
FormCadastro.html
Cadastro.exe
Principal.html
FormEntrada.html
Autenticacao.exe
<<link>>
<<link>> Banco
Usuários
Senhas
Diagrama de Implantação
Descrevem os
recursos físicos em
um sistema,
incluindo nós,
componentes e
conexões
Diagrama de Implantação Enfoca a questão da organização da
arquitetura física sobre o qual o
software irá ser implantado e
executado.
Diagrama de Perfil
Profile Diagram é um diagrama auxiliar que permite definir esteriótipos e constraints. O mecanismo de Perfil foi especificado para prover um mecanismo de extensão para o padrão UML. Perfis permitem adaptar o metamodelo da UML para diferentes: Plataformas (JEE ou .NET), ou
Domínios (tempo real).
Perfil é um tipo de pacote que extends o metamodelo de
referência definindo extensões para este metamodelo por
meio de uma proposta de adaptação para plataformas ou
domínios específicos.
32
Modelagem de casos de uso
Representação das funcionalidades
externamente observáveis do sistema
e dos elementos externos ao sistema
que interagem com ele.
É importante, pois direciona diversas
tarefas posteriores do processo de
desenvolvimento de um sistema de
software.
Casos de uso
Um caso de uso representa quem faz o que (interage) com o sistema, sem considerar o comportamento interno do sistema. Um conjunto de cenários, onde cada
cenário é uma sequência de passos a qual descreve uma interação entre um usuário (atores) e o sistema.
Diagrama de Casos de Uso
Modelam a
funcionalidade do
sistema através de
atores e casos de uso
Casos de uso são
serviços ou funções
fornecidas pelo
sistema aos seus
usuários
Diagrama de casos de uso
Corresponde a uma visão externa de
alto nível do sistema.
Representa graficamente os atores, os
casos de uso e o relacionamento entre
esses elementos.
Diagrama de Casos de Uso
São especialmente importantes na
organização e modelagem das principais
funcionalidades de um sistema
Use Case é a especificação de sequências
de ações atender a uma funcionalidade do
sistema, interagindo com seus agentes
Diagrama de Casos de Uso
Estudante
Secretária
<<estende>> Solicitar histórico do semestre atual
Solicitar histórico de todos os semestres
Solicitar histórico
<<estende>>
Verificar dependências
Matricular aluno
<<inclui>> Sistema de controle
de pré-requisitos
Diagrama de Sequência
Mostra um conjunto de objetos, seus
relacionamentos e as mensagens que
podem ser enviadas entre eles
Descreve as interações entre as classes
através das trocas de mensagens ao logo
do tempo
Diagrama de Sequência Janela de entrada
de pedido p: Pedido : ItemPedido :ItemEstoque
preparar()
* [para cada item do pedido]
preparar()
emEstoque := verificar()
[emEstoque] remover() estoqueBaixo :=
verificEstoqueBaixo()
:ItemRenovEstoque
:ItemEntrega
[estoqueBaixo] <<criar>>
[emEstoque] <<criar>>
Diagrama de Colaboração
Mostra um conjunto de objetos, seus
relacionamentos e as mensagens que
enfatizam a organização dos objetos que
trocam mensagens
Janela de entrada
de pedido
p: Pedido
: ItemPedido :ItemEstoque
:ItemRenovEstoque:ItemEntrega
1: preparar()
1.1: *[para cada item do pedido]
preparar()
1.1.1 : emEstoque := verif icar()
1.1.2 : [emEstoque] remover()
1.1.2.1: estoqueBaixo :=
verif icEstoqueBaixo()
1.1.2.2 [estoqueBaixo]
<<criar>>1.1.3 : [emEstoque]
<<criar>>
Diagrama de Colaboração
Representam as
interações entre
objetos em termos de
mensagens em
seqüência
Descrevem tanto a
estrutura estática como
o comportamento
dinâmico do sistema
Diagrama de Colaboração
Diagrama de Estados
Mostra uma máquina contendo estados,
transições, eventos e atividades
Estes diagramas são usados para modelar
o comportamento de objetos (com
comportamento complexo)
Nestes diagramas são modelados os
estados em que um objeto pode estar e os
eventos que fazem o objeto passar de um
estado para outro
Ocioso
Manutenção
fazerManutenção
Validando
Selecionando Processando
Imprimindo
[continuar]
[não continuar]
H
entry / lerCartão
exit / ejetarCartão
cartãoInserido
cancelar
Ativo
Diagrama de Estados
Descrevem o comportamento dinâmico do sistema em resposta a estímulos externos
São especialmente úteis para modelar objetos reativos cujos estados são disparados por eventos específicos
Diagrama de Estados
Diagrama de Atividades
Destaca a lógica de realização de uma
tarefa
Mostra o fluxo entre atividades (ações não-
atômicas)
É semelhante aos antigos fluxogramas
É usado também para modelar alternativas
de execução e atividades concorrentes
Diagrama de Atividades
Procurar bebida
[achou café]
H
Pessoa
H [sem café] [sem Coca]
[achou Coca]
Pegar lata de Coca
Beber
Adicionar água à máquina
Colocar café no filtro
Colocar filtro na máquina
Ligar máquina
Filtrar café
Pegar xícara
Colocar café na xícara
Ilustram a natureza dinâmica de um sistema modelando o fluxo de controle de uma atividade para outra
Uma atividade representa uma operação em uma classe do sistema que resulta na mudança do estado do sistema
Tipicamente, são usados para modelar fluxo de trabalho ou processos de negócio e funcionamento interno
Diagrama de Atividades
Diagrama de Interação Geral
São variações de “Diagrama de atividade". Nele,
sequências formam um fluxo de atividades,
mostrando como elas trabalham em uma sequência
de eventos.
Pode ser visto como um Diagrama de Atividade em
que as atividades são substituídas por pequenos
Diagramas de Sequência ou como Diagrama de
Sequência que usam, de forma complementar, a
notação do Diagrama de Atividades para mostrar
controle de fluxo.
Diagrama de Interação Geral
São similares as Diagramas de Fluxo
de procedimentos, com a diferença de
que todas as Atividades são
claramente anexas aos Objetos.
São sempre associados a um Classe,
uma Operação ou um Caso de Uso.
Diagrama de Tempo
Semelhante ao diagrama de Máquina
de estados, porém enfoca as
mudanças de estado de um objeto ao
longo do tempo, útil para modelagem
de sistemas de tempo real.