CIn/UFPE – IN1008 - Projeto Conceitual de BD
2
IN1008 – Projeto Conceitual de BD
Diagramas UML para Modelagem de
Dados
Por:
Clarissa César Borba
[email protected]
Fabrício Cabral
[email protected]
CIn/UFPE – IN1008 - Projeto Conceitual de BD
3
Roteiro
• Motivação
• Estado da Arte
• Introdução
• Diagramas
 Diagrama de Casos de Uso
 Diagrama de Classes
• Referências
CIn/UFPE – IN1008 - Projeto Conceitual de BD
4
Motivação
• A UML foi planejada para ser uma linguagem flexível
e customizável, podendo ser utilizada para vários
propósitos, não só para a construção de aplicações
Orientada a Objetos
• Permite diferentes tipos de modelagem, incluindo
modelos para processos de negócio, fluxo de
eventos, aplicações, arquiteturas e banco de dados
• Unificação de todos os modelos do sistema
(aplicação e bando de dados) em torno de uma
única linguagem, que pode ser compartilhada por
todos os envolvidos no desenvolvimento do sistema
(analistas, programadores, DBAs, etc)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
5
Estado da Arte
• A UML está em contínuo desenvolvimento
 UML 1.1, 1.3, 1.4, 1.5, 2.0 e UML 2.1
• Novas linguagens baseadas na UML estão sendo
desenvolvidas, a fim de solucionar problemas
específicos
 SysML (Systems Modeling Language)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
6
Introdução
• Unified Modeling Language
• A UML é uma linguagem de modelagem para:





Visualização
Especificação
Construção
Documentação
Comunicação
CIn/UFPE – IN1008 - Projeto Conceitual de BD
7
Criadores da UML
• James Rumbaugh - Object Modeling Technique (OMT)
• Grady Booch - Booch Method
• Ivar Jacobson - Objectory (OOSE) Process
CIn/UFPE – IN1008 - Projeto Conceitual de BD
8
Por que os 3 autores resolveram
criar a UML?
• Cada autor adotava idéias dos métodos dos outros, então,
evoluindo juntos produziriam melhorias
• A unificação dos 3 métodos trariam estabilidade para o
mercado
CIn/UFPE – IN1008 - Projeto Conceitual de BD
9
História
Fonte: http://www.cin.ufpe.br/~if119
CIn/UFPE – IN1008 - Projeto Conceitual de BD
10
Elementos Essenciais
Elementos
Estruturais
Elementos
Comportamentais
Elementos de
Agrupamento
Elementos de
Anotação
CIn/UFPE – IN1008 - Projeto Conceitual de BD
11
Elementos Estruturais
• São as partes estáticas de um modelo, representando
elementos que são ou conceituais ou físicos.
• Exemplos:





Classe
Interface
Use Cases
Componente
Nó
CIn/UFPE – IN1008 - Projeto Conceitual de BD
12
Elementos Comportamentais
• São as partes dinâmicas dos modelos da UML.
• Exemplos:
 Interação - especifica um conjunto de mensagens trocadas entre objetos
 Máquina de Estado - especifica seqüências de estados de um objeto
CIn/UFPE – IN1008 - Projeto Conceitual de BD
13
Elementos de Agrupamento
• São as partes organizacionais dos modelos da UML.
• Exemplos:
 Pacotes - mecanismo para organização de elementos dentro de grupos
CIn/UFPE – IN1008 - Projeto Conceitual de BD
14
Elementos de Anotação
• São partes explicativas dos modelos da UML. São
comentários que você aplica para descrever, iluminar e
remarcar elementos no modelo.
• Exemplos:
 Nota - símbolo contendo restrições ou comentários que são melhor
expressadas em textos
CIn/UFPE – IN1008 - Projeto Conceitual de BD
15
Diagramas
• São representações gráficas de um conjunto de elementos.
São desenhados para visualizar um sistema de diferentes
perspectivas.
• Exemplos:
 Diagramas Estruturais
 Diagramas Comportamentais
 Diagramas de Interação
CIn/UFPE – IN1008 - Projeto Conceitual de BD
16
Diagramas Estruturais
• Diagramas Estruturais
 Diagrama de Objetos
 Diagrama de Classes
 Diagrama de Componentes
 Diagrama de Instalação
 Diagrama de Pacotes
 Diagrama de Estrutura (UML2.0)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
17
Diagramas Comportamentais
• Diagramas Comportamentais
 Diagrama de Caso de Uso
 Diagrama de Transição de Estados
 Diagrama de Atividade
CIn/UFPE – IN1008 - Projeto Conceitual de BD
18
Diagramas de Interação
• Diagramas de Interação
 Diagrama de Sequência
 Diagrama de Interatividade
 Diagrama de Colaboração ou Comunicação
 Diagrama de Tempo (UML2.0)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
19
Diagramas
CIn/UFPE – IN1008 - Projeto Conceitual de BD
20
Diagramas de Use Case
• São especialmente importantes na organização e modelagem
dos comportamentos de um sistema
• Use Case é a especificação de sequências de ações que um
sistema, subsistema ou classe pode realizar, interagindo com
um dos agentes
CIn/UFPE – IN1008 - Projeto Conceitual de BD
21
Diagramas de Use Case
Solicitar
histórico
<<estende>>
Solicitar histórico do
semestre atual
<<estende>>
Solicitar histórico de
todos os semestres
Estudante
Sistema de controle
de pré-requisitos
<<inclui>>
Matricular
aluno
Verificar
dependências
Secretária
CIn/UFPE – IN1008 - Projeto Conceitual de BD
22
Diagramas de Classe
• Os diagramas de classes são os principais diagramas
estruturais da UML
• Diagramas de classe mostram classes, interfaces e seus
relacionamentos
• As classes especificam a estrutura e o comportamento dos
objetos, que são instâncias de classes
CIn/UFPE – IN1008 - Projeto Conceitual de BD
23
Diagramas de Classe
Cliente
Pedido
-nome: String
-endereco: String
-dataPrimeiraCompra: Date
-dataUltimaCompra: Date
-totalComprado: Currency
-codigo: Integer
-dataRecebido
-total: Currency
+confirmar()
+cancelar()
-calcularTotal():Currency
gerarNovoCodigo: String
itens
#creditoPermitido: Currency
#nivelCredibilidade()
*
Item de Pedido
-quantidade: Integer
-preco: Currency
-emEstoque: Boolean
Cliente pessoa-jurídica
nomeContato: String
telefones[1..10]: String
CGC: String
FAX[1..3]: String
Cliente pessoa-física
nome: String
CPF: String
numCartaoCredito
colocarListaNegra()
*
Produto
representante
de vendas
*
Empregado
IPessoa
CIn/UFPE – IN1008 - Projeto Conceitual de BD
24
Diagramas de Objetos
• Mostram objetos e seus relacionamentos
• 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
CIn/UFPE – IN1008 - Projeto Conceitual de BD
25
Diagramas de Objetos
Curso
Professor
ministra
-matrícula: String
-nome: String
[1..3]
-codDisciplina: String
[1..5] -descrição: String
-codTurma: String
Aluno
* -matrícula: String
-nome: String
[0..10]
-período: Integer
p1: Professor
p2: Professor
matricula: "205-6712-09"
nome: "Jaelson Castro"
c1: Curso
: Curso
c2: Curso
: Curso
codCurso: "IF291"
descrição: "MPS"
codTurma: I7
codCurso: "IF185"
descrição: "AER"
codTurma: I6
c3: Curso
: Aluno
: Aluno
: Aluno
: Aluno
: Aluno
:aluno
Bill
:aluno
matricula: "562746134"
nome: "John Major"
Lewinsky
matricula: "219846534"
nome: "Nelson Mandella"
: Aluno
CIn/UFPE – IN1008 - Projeto Conceitual de BD
26
Diagramas de Seqüência
• Mostram um conjunto de objetos, seus relacionamentos e as
mensagens que podem ser enviadas entre eles
CIn/UFPE – IN1008 - Projeto Conceitual de BD
27
Diagramas de Seqüência
Janela de entrada
de pedido
p: Pedido
: ItemPedido
:ItemEstoque
preparar()
* [para cada item do pedido]
preparar()
emEstoque := verificar()
[emEstoque]
remover()
estoqueBaixo :=
verificEstoqueBaixo()
[estoqueBaixo]
<<criar>>
[emEstoque]
<<criar>>
CIn/UFPE – IN1008 - Projeto Conceitual de BD
:ItemRenovEstoque
:ItemEntrega
28
Diagramas de Colaboração
• Mostram um conjunto de objetos, seus relacionamentos e as
mensagens que enfatizam a organização dos objetos que
trocam mensagens
CIn/UFPE – IN1008 - Projeto Conceitual de BD
29
Diagramas de Colaboração
Janela de entrada
de pedido
1: preparar()
p: Pedido
1.1.2.1: estoqueBaixo :=
verif icEstoqueBaixo()
1.1: *[para cada item do pedido]
preparar()
1.1.1 : emEstoque := verif icar()
1.1.2 : [emEstoque] remover()
: ItemPedido
1.1.3 : [emEstoque]
<<criar>>
:ItemEntrega
CIn/UFPE – IN1008 - Projeto Conceitual de BD
:ItemEstoque
1.1.2.2 [estoqueBaixo]
<<criar>>
:ItemRenovEstoque
30
Diagramas de Estados
• Mostram 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
CIn/UFPE – IN1008 - Projeto Conceitual de BD
31
Diagramas de Estados
cartãoInserido
Ativo
Ocios o
Validando
fazerManutenção
cancelar
M anute nção
H
[continuar]
Se le cionando
Proce s s ando
[não continuar]
e ntry / le rCartão
e xit / e je tarCartão
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Im prim indo
32
Diagramas de Atividades
• São um caso especial dos Diagramas de Estados, com a
maioria das transições resultantes do término das atividades
• Mostram o fluxo entre atividades (ações não-atômicas)
• São semelhantes aos antigos fluxogramas
• São muito usados para modelar atividades concorrentes
CIn/UFPE – IN1008 - Projeto Conceitual de BD
33
Diagramas de Atividades
Pessoa
[sem café]
H
Procurar bebida
[achou café]
Colocar café
no filtro
Adicionar água à
máquina
[sem Coca]
[achou Coca]
Pegar
xícara
Pegar lata
de Coca
Colocar filtro
na máquina
Ligar máquina
Filtrar café
Colocar café na
xícara
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Beber
H
34
Diagramas de Componentes
• Mostram componentes e os relacionamentos entre eles
• São usados para modelar o aspecto físico de um sistema
• Exemplos de componentes são documentos, executáveis e
tabelas de bancos de dados
CIn/UFPE – IN1008 - Projeto Conceitual de BD
35
Diagramas de Componentes
Cadastro.exe
<<link>>
Usuários
FormCadastro.html
Banco
<<link>>
Autenticacao.exe
Senhas
Principal.html
FormEntrada.html
CIn/UFPE – IN1008 - Projeto Conceitual de BD
36
Diagramas de Implantação
• São usados para modelar o ambiente em que o sistema será
executado
• São compostos por nós e relacionamentos de comunicação
• Um nó pode ser um computador, uma rede, um disco rígido,
um sensor, etc.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
37
Diagramas de Implantação
PC - G309
Nestscape
Communicator
5.0
Principal.html
servidorWeb
FormCadastro.html
Autenticação.exe
servidorDeArquivos
Cadastro.exe
FormEntrada.html
servidorBancoDeDados
O SGBD a ser
utilizado ainda
não foi escolhido.
SGBD
CIn/UFPE – IN1008 - Projeto Conceitual de BD
38
Ferramentas
• JUDE
 http://jude.change-vision.com
• Rational Rose
 http://www-306.ibm.com/software/rational
• Borland Together
 http://www.borland.com/us/products/together
• Poseidon (baseada no ArgoUML)
 http://www.gentleware.com
• MagicDraw UML
 http://www.magicdraw.com
CIn/UFPE – IN1008 - Projeto Conceitual de BD
39
Diagramas de Use Cases
CIn/UFPE – IN1008 - Projeto Conceitual de BD
40
Origem
• Ivar Jacobson
• Alistair Cockburn
CIn/UFPE – IN1008 - Projeto Conceitual de BD
41
Caso de Uso
• Caso de uso (use case) é uma técnica empregada para
especificar o comportamento que se espera do sistema.
• Casos de uso possibilitam que desenvolvedores obtenham
uma compreensão comum do sistema, junto aos usuários e
especialistas do domínio.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
42
Caso de Uso
• Cada caso de uso descreve uma funcionalidade requerida do
sistema.
• Um caso de uso é uma descrição de um conjunto de
seqüência de ações, incluindo variações, que um sistema
executa a partir da interação de coisas externas ao sistema.
• Casos de uso podem incluir seqüências alternativas, ou
sequências excepcionais (de erro)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
43
Estudo de Caso
• Uma universidade X deseja informatizar a sua biblioteca. Em
conversas com o usuário, as seguintes características foram
levantadas:
 Alunos e professores podem ter acesso ao acervo da biblioteca
 Usuários devem ser cadastrados antes que possam ter acesso ao acervo
CIn/UFPE – IN1008 - Projeto Conceitual de BD
44
Estudo de Caso
• O acervo da biblioteca é constituído por títulos e periódicos
• Apenas títulos podem ser emprestados aos usuários, sendo
os periódicos mantidos apenas para consulta
• O atraso na devolução de títulos implica na cobrança de
multa sobre cada dia de atraso
• O usuário pode também reservar títulos emprestados
CIn/UFPE – IN1008 - Projeto Conceitual de BD
45
Estudo de Caso
• Documentos para o acervo da biblioteca são adquiridos
através de compra ou de doação
• Professores podem solicitar a compra de novos títulos ou
periódicos para o acervo
• Periodicamente, auditorias são realizadas para que o extravio
de títulos possa ser averiguado.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
46
Casos de Uso
Notação
Nome do caso de uso
CIn/UFPE – IN1008 - Projeto Conceitual de BD
47
Casos de Uso
Exemplo
Realizar reserva
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Cadastrar cliente
48
Atores
• Um caso de uso envolve a interação de atores com o
sistema.
• Um ator é uma entidade externa ao sistema que, de alguma
maneira, interage com ele.
• Um ator, tipicamente, estimula o sistema com eventos de
entrada ou recebe algo dele.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
49
Atores
• Atores não são, necessariamente, pessoas.
• Atores podem ser outros sistemas ou hardware externo que
interage com o sistema.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
50
Atores
Notação
Nome do ator
CIn/UFPE – IN1008 - Projeto Conceitual de BD
51
Atores
Exemplo
Aluno
CIn/UFPE – IN1008 - Projeto Conceitual de BD
52
Atores
Exemplo
Usuário
Aluno
CIn/UFPE – IN1008 - Projeto Conceitual de BD
generalização
Professor
53
Atores
• Atores podem ser conectados a casos de uso apenas por
associação (uma linha que une o ator ao caso de uso).
• Uma associação entre um ator e um caso de uso indica que o
ator e o caso de uso comunicam-se, cada um, possivelmente,
enviando e recendo mensagens.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
54
Identificando Atores
• Para identificar atores, pergunte:







Quem usa o sistema?
Que outros sistemas usam este sistema?
Quem obtém informação deste sistema?
Quem fornece informação para o sistema?
Alguma coisa acontece automaticamente neste sistema?
Quem dá suporte e mantém o sistema?
Onde o sistema será utilizado na empresa?
CIn/UFPE – IN1008 - Projeto Conceitual de BD
55
Identificando Casos de Uso
• Para identificar casos de uso, o seguinte método pode ser
utilizado:
 Identifique os atores relacionados a um sistema
 Para cada ator, identifique os processos que eles iniciam ou dos quais eles
participam.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
56
Identificando Casos de Uso
• Para identificar casos de uso, pergunte:




Para que o ator usará o sistema?
O ator irá criar, armazenar, modificar, excluir ou consultar dados no sistema?
O ator necessitará informar o sistema sobre eventos externos ou mudanças?
O ator deverá ser informado sobre certas ocorrências no sistema?
CIn/UFPE – IN1008 - Projeto Conceitual de BD
57
Diagrama de Casos de Uso
• Um Diagrama de Casos de Uso exibe um conjunto de
casos de uso para um sistema, os atores e a relação
entre os atores e os casos de uso.
• A finalidade do diagrama é apresentar um tipo de
diagrama de contexto, através do qual pode-se,
rapidamente, compreender quais são os atores do
sistema e as maneiras principais segundo eles o
utilizam.
• Servem para facilitar o entendimento de um sistema
mostrando a sua “visão externa”.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
58
Diagrama de Casos de Uso
Registrar
devolução
Consultar
acervo
Cadastrar
documento
Usuário
Realizar
Reserva
Solicitar
Compra de
Documentos
Aluno
Realizar
auditoria
Bibliotecário
Cadastrar
usuário
Professor
Emprestar
título
CIn/UFPE – IN1008 - Projeto Conceitual de BD
59
Diagrama de Casos de Uso
• A seta usada nas associações indica a direção do início
da comunicação entre os elementos do diagrama.
Consultar
acervo
Usuário
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Bibliotecário
60
Um engano com Casos de Uso
• Um engano comum com casos de uso é representar como
casos de uso passos individuais, operações ou transações.
• Um caso de uso é uma descrição completa de um processo
relativamente grande, que inclui, geralmente, muitos passos
ou transações.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
61
Um engano com Casos de Uso
Exemplo
Calcular multa
Representação incorreta
de um caso de uso
CIn/UFPE – IN1008 - Projeto Conceitual de BD
62
Categorizando Casos de Uso
• Os casos de uso devem ser categorizados, de acordo com
sua importância:
 Casos de uso essenciais: representam processos comuns principais. Ex:
Realizar empréstimo
 Casos de uso desejáveis: representam processos menos importantes ou
raros. Ex: Realizar auditoria, Solicitar compra de documentos
 Casos de uso opcionais: representam processos que podem ou não ser
considerados
CIn/UFPE – IN1008 - Projeto Conceitual de BD
63
Estrutura de um Caso de Uso
• Cabeçalho




Nome
Atores
Descrição breve
Tipo
• Fluxo de eventos normal
• Fluxo de eventos alternativos
• Requisitos não funcionais
CIn/UFPE – IN1008 - Projeto Conceitual de BD
64
Cabeçalho de um Caso de Uso
• Cada descrição de caso de uso deve possuir um cabeçalho,
no seguinte formato:
Caso de uso
Atores
Visão geral
Tipo
Nome do caso de uso
Lista de atores
Descrição breve
(essencial, desejável, opcional)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
65
Descrição breve de um Caso de Uso
• A descrição breve deve conter o objetivo do caso de uso.
• Exemplos:
 Emprestar título
Possibilita o empréstimo de títulos solicitados pelo usuário.
 Cadastrar acervo
Provê facilidades para criar, modificar e apagar informações de títulos e
periódicos que fazem parte do acervo da biblioteca.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
66
Corpo de um Caso de Uso
• O corpo do caso de uso (fluxo de eventos) deve conter a
descrição detalhada dos eventos trocados entre os atores e o
sistema.
• As duas partes principais do fluxo de eventos são: fluxo de
eventos básico (normal) e fluxo de eventos excepcionais ou
alternativos.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
67
Corpo de um Caso de Uso
• O fluxo de eventos básico descreve o que acontece
normalmente quando o caso de uso é executado.
• O fluxo de eventos alternativos descreve o comportamento de
caráter opcional ou excepcional em relação ao
comportamento normal.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
68
Corpo de um Caso de Uso
• É importante descrever:




como e quando o caso de uso inicia e finaliza
quando o caso de uso interage com os atores
quais os objetos trocados na interação
os fluxos de eventos alternativos ou excepcionais
CIn/UFPE – IN1008 - Projeto Conceitual de BD
69
Descrevendo Casos de Uso
Exemplo - Caso de uso Realizar empréstimo
Caso de uso
Atores
Visão geral
Tipo
Realizar empréstimo
Usuário (iniciador), Bibliotecário
Possibilita o empréstimo de títulos
solicitados pelo cliente
essencial
CIn/UFPE – IN1008 - Projeto Conceitual de BD
70
Descrevendo Casos de Uso
Exemplo - Caso de uso Realizar empréstimo
Fluxo de eventos básico:
1. O caso de uso inicia quando o usuário deseja realizar o
empréstimo de um título.
2. O bibliotecário digita o código do título e a matrícula do
usuário.
3. O sistema verifica se o usuário está cadastrado.
4. O sistema verifica se não há reservas para o título.
5. O sistema realiza o empréstimo, guardando a data e a
hora em que a operação foi realizada e o caso de uso
finaliza.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
71
Descrevendo Casos de Uso
Continuação do exemplo
Fluxo de eventos excepcional:
1. No passo 3, se o usuário ainda não tiver sido
cadastrado na biblioteca, o sistema não permite que o
empréstimo seja realizado.
Requisitos não funcionais:
1. A operação de empréstimo deve retornar o resultado da
efetivação do empréstimo em, no máximo, 30
segundos.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
72
Descrevendo Casos de Uso
• Os casos de uso podem ser descritos com variáveis graus de
detalhe, bem como de comprometimentos a decisões de
projeto, ou seja, o mesmo caso de uso pode ser escrito em
diferentes formatos, com diferentes níveis de detalhes.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
73
Relacionamentos entre casos de uso
• Há dois tipos possíveis de relacionamentos entre casos de
uso: inclui e estende.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
74
Relacionamentos entre casos de uso
• O relacionamento inclui deve ser utilizado quando um
conjunto de passos do fluxo de eventos se repete para vários
casos de uso.
• O comportamento comum a vários casos de uso é colocado
em um caso de uso à parte, chamado caso de uso de
inclusão.
• O caso de uso de inclusão é, em geral, abstrato, ou seja, não
pode ser instanciado.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
75
Relacionamentos entre casos de uso
• Exemplo:
Validar
usuário
<<include>>
<<include>>
Registrar
devolução
Emprestar
título
Bibliotecário
CIn/UFPE – IN1008 - Projeto Conceitual de BD
76
Relacionamentos entre casos de uso
Exemplo - Caso de uso Realizar Empréstimo
Fluxo de eventos básico:
1. O caso de uso inicia quando o usuário deseja realizar o
empréstimo de um título.
2. O bibliotecário digita o código do título e a matrícula do
usuário.
3. Inclui Validar Usuário.
4. O sistema verifica se não há reservas para o título.
5. O sistema realiza o empréstimo, guardando a data e a
hora em que a operação foi realizada e o caso de uso
finaliza.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
77
Relacionamentos entre casos de uso
• O relacionamento estende representa comportamento que é
opcional, ou seja, que só é executado sob determinadas
condições.
• O uso do relacionamento estende permite separar
comportamento obrigatório do comportamento opcional.
• Em certos casos, o caso de uso de extensão pode ter um
comportamento independente do caso de uso base.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
78
Relacionamentos entre casos de uso
• Exemplo:
Emprestar
título
Bibliotecário
<<extend>>
Cadastrar
usuário
CIn/UFPE – IN1008 - Projeto Conceitual de BD
79
Relacionamentos entre casos de uso
Exemplo - Caso de uso Realizar empréstimo
Fluxo de eventos básico:
1. O caso de uso inicia quando o usuário deseja realizar o
empréstimo de um título.
2. O bibliotecário digita o código do título e a matrícula do
usuário.
3. O sistema verifica se o usuário está cadastrado.
4. O sistema verifica se não há reservas para o título.
5. O sistema realiza o empréstimo, guardando a data e a
hora em que a operação foi realizada e o caso de uso
finaliza.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
80
Relacionamentos entre casos de uso
Continuação do exemplo
Fluxo de eventos excepcional:
1. No passo 3, se o cliente ainda não tiver sido
cadastrado na biblioteca, estende Cadastrar
Usuário.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
81
Organização dos casos de uso em
pacotes
• Quando o caso de uso se torna muito extenso, recomenda-se
particioná-lo em pacotes.
• Um pacote é um agrupamento de elementos que têm uma
forte coesão.
• Recomenda-se manter em um mesmo pacote os casos de
uso que dizem respeito ao mesmo assunto e que têm
relacionamentos (inclui e estende).
CIn/UFPE – IN1008 - Projeto Conceitual de BD
82
Organização dos casos de uso
em pacotes
Sistema de Controle
Bibliotecário
Aquisição de
Documentos
Catalogação
Controle de
Circulação
CIn/UFPE – IN1008 - Projeto Conceitual de BD
83
Limitações
• Os casos de uso são excelentes para capturar os requisitos
funcionais de um sistema, entretanto, tem as seguintes
limitações:
 Não facilitam muito o levantamento dos requisitos não funcionais do sistema.
 A sua correta interpretação requer sempre um processo de aprendizagem e
ambientação, por parte tanto dos utilizadores quanto dos programadores.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
84
Um exemplo do mundo real
• Empresa: TRE/PE
• Sistema: Sistema de Monitoramento do Plano de Ação
• Objetivo: facilitar o gerenciamento e o acompanhamento das
informações relativas ao Plano de Ações das Unidades,
observando as vinculações orçamentárias e os prazos
programados.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
85
Diagrama de Classes
CIn/UFPE – IN1008 - Projeto Conceitual de BD
86
Diagramas UML para Design de BDs
Diagrama
Descrição
Casos de Uso
É um modelo das funcionalidades do sistema e o ambiente que suporta os
processos do negócio. Este modelo serve como um contrato entre o cliente e os
desenvolvedores.
Interação
Os Diagramas de Interação correspondem aos Diagramas de Seqüência e
Colaboração, que mostram a interação dos objetos com o sistema. Eles podem
ser usados para entender consultas que irão afetar o banco de dados e também
ajudam a construir indíces baseados na informação modelada.
Atividade
Mostram o fluxo de um processo. Eles podem ser usados para mostrar alguma
visão de alto nível do negócio e como ele funciona.
Gráfico de Estados
Captura o comportamento dinâmico do sistema ou objetos dentro do sistema.
Classe
São modelos lógicos que mostram a estrutura básica do sistema.
Banco de Dados
Descreve a estrutura do banco de dados, incluindo tabelas, colunas, constraints
e etc.
Componente
Mostra o armazenamento físico do banco de dados, incluindo o SGBD,
tablespaces e partições. Eles também podem incluir aplicações e as interfaces
usadas por elas para acessar o banco de dados.
Deployment
Mostra a configuração do hardware que está sendo usado pelo banco de dados
e aplicações.
CIn/UFPE – IN1008 - Projeto Conceitual de BD
87
Diagrama de Classes
• Mapeamento entre Modelos
UML
Banco de Dados
Estereótipo
Classe
Tabela
<<Table>>
Atributo
Coluna
<<Column>>, <<PK>>, <<FK>>
Tipos
Tipos de Dados
-
Associações Relacionamentos
<<Identifying>>, <<Non-identifying>>
 Utilização de estereótipos para identificar os elementos
 Apenas classes e atributos persistentes serão mapeados
 Ex.: Um atributo chamado valor_do_pedido, que é um
campo calculado (somatório do valor de todos os produtos
de um pedido) não seria necessário ser armazenado no
banco de dados
CIn/UFPE – IN1008 - Projeto Conceitual de BD
88
Diagramas de Classes (2)
• Mapeamento de Classes para Tabelas
 1:1, 1:N e N:N
 Associações N:N devem ser quebradas em
relacionamentos 1:N, através de uma tabela de associação
 Mapeamento entre subtipos de classes
• Uma tabela por classe
• Uma tabela por classe concreta
• Uma tabela por hierarquia
CIn/UFPE – IN1008 - Projeto Conceitual de BD
89
Diagrama de Classes (3)
• Uma Tabela por Classe
<<Tabela>>
Cliente
PK
codigo : INTEGER
nome : VARCHAR(30)
telefone : VARCHAR(15)
tipo: CHAR(1)
<<Tabela>>
ClienteFisico
PK/FK
codigo : INTEGER
cpf : VARCHAR(10)
<<Tabela>>
ClienteJurídico
PK/FK
codigo : INTEGER
cnpj : VARCHAR(15)
data_nasc : DATE
CIn/UFPE – IN1008 - Projeto Conceitual de BD
90
Diagrama de Classes (4)
• Uma Tabela por Classe Concreta
<<Tabela>>
ClienteFísico
PK
codigo : INTEGER
nome : VARCHAR(30)
telefone : VARCHAR(15)
cpf : VARCHAR(10)
data_nasc : DATE
<<Tabela>>
ClienteJurídico
PK
codigo : INTEGER
nome : VARCHAR(30)
telefone : VARCHAR(15)
cnpj : VARCHAR(15)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
91
Diagrama de Classes (5)
• Uma Tabela por Hierarquia
<<Tabela>>
Cliente
PK
codigo : INTEGER
nome : VARCHAR(30)
telefone : VARCHAR(15)
cpf : VARCHAR(10)
cnpj : VARCHAR(15)
data_nasc : DATE
tipo: CHAR(1)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
92
Diagrama de Classes (6)
• Tipos de Atributos
Tipo Genérico
Tipo de Dados Padrão ANSI SQL 92
Descrição
Boolean
Bit
Verdadeiro (T) ou Falso (F)
Currency
Decimal
Números reais com até 15
dígitos do lado esquerdo do
ponto decimal e 4 dígitos do lado
direito
Date
Date
Data e Hora
Double
Double Precision
Números reais com 15-16 dígitos
de precisão
Integer
Decimal
Números inteiros acimda de 4
dígitos de precisão
Long
Decimal
Números inteiros acima de 10
dígitos de precisão
Single
Decimal
Números reais acima de 7
dígitos de precisão
String
Varchar / Char
Ilimitado número de caracteres
CIn/UFPE – IN1008 - Projeto Conceitual de BD
93
Diagrama de Classes (7)
• Elementos
CIn/UFPE – IN1008 - Projeto Conceitual de BD
94
Diagrama de Classes (8)
• Demonstração de um Exemplo utilizando o JUDE
CIn/UFPE – IN1008 - Projeto Conceitual de BD
95
Diagrama de Classes (9)
• Demonstração de um Exemplo utilizando o JUDE
CIn/UFPE – IN1008 - Projeto Conceitual de BD
96
Referências
• The Unified Modelling Language User Guide (Grady Booch)
• The Unified Modelling Language Reference Manual (James
Rumbaugh)
• The Unified Software Development Process (Ivar Jacobson)
• UML Distilled (Martin Fowler)
• http://pt.wikipedia.org/wiki/UML
• http://pt.wikipedia.org/wiki/Casos_de_Uso
• Database Design for Smarties (Robert J. Muller)
• Apostila da Qualiti Software Processes
CIn/UFPE – IN1008 - Projeto Conceitual de BD
97
Referências
• Naiburg, E., Maksumchuk, R. UML for Database
Design, Addsison Wesley, 2001
• Guedes, G. UML – Uma Abordagem Prática,
Novatec, 2003
CIn/UFPE – IN1008 - Projeto Conceitual de BD
98
Dúvidas?
CIn/UFPE – IN1008 - Projeto Conceitual de BD
99
IN1008 – Projeto Conceitual de BD
Diagramas UML para Modelagem de
Dados
Por:
Clarissa César Borba
[email protected]
Fabrício Cabral
[email protected]
CIn/UFPE – IN1008 - Projeto Conceitual de BD
100
Download

Diagramas UML para modelagem de dados