IN1008 – Projeto Conceitual de BD
-
Upload
alec-delaney -
Category
Documents
-
view
23 -
download
3
description
Transcript of IN1008 – Projeto Conceitual de BD
CIn/UFPE – IN1008 - Projeto Conceitual de BD 1
CIn/UFPE – IN1008 - Projeto Conceitual de BD 2
IN1008 – Projeto Conceitual de BD
Diagramas UML para Modelagem de
Dados
Por:
Clarissa César [email protected]
Fabrício [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
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)
4
CIn/UFPE – IN1008 - Projeto Conceitual de BD
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)
5
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
ElementosEstruturais
ElementosComportamentais
Elementos deAgrupamento
Elementos deAnotaçã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
Estudante
Secretária
<<estende>> Solicitar histórico dosemestre atual
Solicitar histórico detodos os semestres
Solicitarhistórico
<<estende>>
Verificardependências
Matricularaluno
<<inclui>>Sistema de controlede pré-requisitos
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
+confirmar()+cancelar()-calcularTotal():CurrencygerarNovoCodigo: 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: Stringtelefones[1..10]: StringCGC: StringFAX[1..3]: String
Cliente pessoa-jurídica
colocarListaNegra()
nome: StringCPF: StringnumCartaoCredito
Cliente pessoa-física
Empregado
Produto
* representantede vendas
*
*
IPessoa
itens
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
p2: Professormatricula: "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]
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 entradade pedido p: Pedido : ItemPedido :ItemEstoque
preparar()
* [para cada item do pedido]preparar()
emEstoque := verificar()
[emEstoque]remover() estoqueBaixo :=
verificEstoqueBaixo()
:ItemRenovEstoque
:ItemEntrega
[estoqueBaixo]<<criar>>
[emEstoque]<<criar>>
CIn/UFPE – IN1008 - Projeto Conceitual de BD 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 entradade pedido
p: Pedido
: ItemPedido :ItemEs toque
:ItemRenov Es toque:ItemEntrega
1: preparar( )
1.1: *[para c ada item do pedido] preparar( )
1.1.1 : emEs toque := v erif ic ar( )1.1.2 : [emEs toque] remov er( )
1.1.2.1: es toqueBaix o := v erif ic Es toqueBaixo( )
1.1.2.2 [es toqueBaix o] <<c riar>>
1.1.3 : [emEstoque] <<c riar>>
CIn/UFPE – IN1008 - Projeto Conceitual de BD 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
Ocioso
Manutenção
fazerManutenção
Validando
Selecionando Processando
Imprimindo
[continuar]
[não continuar]
H
entry / lerCartão exit / ejetarCartão
cartãoInserido
cancelar
Ativo
Diagramas de Estados
CIn/UFPE – IN1008 - Projeto Conceitual de BD 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
Procurar bebida
[achou café]
H
Pessoa
H[sem café] [sem Coca]
[achou Coca]
Pegar latade Coca
Beber
Adicionar água àmáquina
Colocar caféno filtro
Colocar filtrona máquina
Ligar máquina
Filtrar café
Pegarxícara
Colocar café naxícara
CIn/UFPE – IN1008 - Projeto Conceitual de BD 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
FormCadastro.html
Cadastro.exe
Principal.html
FormEntrada.html
Autenticacao.exe
<<link>>
<<link>>Banco
Usuários
Senhas
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
servidorWeb
Autenticação.exe
Cadastro.exe
servidorDeArquivos
FormCadastro.html
Principal.html
FormEntrada.html
servidorBancoDeDados
SGBD
O SGBD a serutilizado aindanão foi escolhido.
PC - G309
NestscapeCommunicator
5.0
CIn/UFPE – IN1008 - Projeto Conceitual de BD
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
38
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 Cadastrar cliente
CIn/UFPE – IN1008 - Projeto Conceitual de BD 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
Aluno
Exemplo
CIn/UFPE – IN1008 - Projeto Conceitual de BD 52
Atores
Exemplo
Usuário
Aluno Professor
generalização
CIn/UFPE – IN1008 - Projeto Conceitual de BD 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
Consultaracervo
Registrardevolução
RealizarReserva
Usuário
Aluno Professor
SolicitarCompra de Documentos
Bibliotecário
Cadastrardocumento
Realizarauditoria
Cadastrarusuário
Emprestartítulo
CIn/UFPE – IN1008 - Projeto Conceitual de BD 59
Diagrama de Casos de Uso
Consultaracervo
Usuário Bibliotecário
• A seta usada nas associações indica a direção do início da comunicação entre os elementos do diagrama.
CIn/UFPE – IN1008 - Projeto Conceitual de BD 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
Calcular multa
Representação incorretade um caso de uso
Exemplo
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 Nome do caso de usoAtores Lista de atoresVisão geral Descrição breveTipo (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ítuloPossibilita o empréstimo de títulos solicitados pelo usuário.
Cadastrar acervoProvê 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
Caso de uso Realizar empréstimoAtores Usuário (iniciador), BibliotecárioVisão geral Possibilita o empréstimo de títulos
solicitados pelo clienteTipo essencial
Exemplo - Caso de uso Realizar empréstimo
CIn/UFPE – IN1008 - Projeto Conceitual de BD 70
Descrevendo Casos de Uso
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.
Exemplo - Caso de uso Realizar empréstimo
CIn/UFPE – IN1008 - Projeto Conceitual de BD 71
Descrevendo Casos de Uso
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.
Continuação do exemplo
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:
Registrardevolução
Emprestartítulo
Validarusuário
Bibliotecário
<<include>> <<include>>
CIn/UFPE – IN1008 - Projeto Conceitual de BD 76
Relacionamentos entre casos de uso
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.
Exemplo - Caso de uso Realizar Empréstimo
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:
Emprestartítulo
Cadastrarusuário
Bibliotecário <<extend>>
CIn/UFPE – IN1008 - Projeto Conceitual de BD 79
Relacionamentos entre casos de uso
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.
Exemplo - Caso de uso Realizar empréstimo
CIn/UFPE – IN1008 - Projeto Conceitual de BD 80
Relacionamentos entre casos de uso
Fluxo de eventos excepcional: 1. No passo 3, se o cliente ainda não tiver sido
cadastrado na biblioteca, estende Cadastrar Usuário.
Continuação do exemplo
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
Catalogação Aquisição de Documentos
Sistema de Controle Bibliotecário
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
Diagrama de Classes
85
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Diagramas UML para Design de BDs
86
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
Diagrama de Classes
• Mapeamento entre Modelos
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
87
UML Banco de Dados Estereótipo
Classe Tabela <<Table>>
Atributo Coluna <<Column>>, <<PK>>, <<FK>>
Tipos Tipos de Dados -
Associações Relacionamentos <<Identifying>>, <<Non-identifying>>
CIn/UFPE – IN1008 - Projeto Conceitual de BD
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
88
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Diagrama de Classes (3)
• Uma Tabela por Classe
89
<<Tabela>>Cliente
PK codigo : INTEGER
nome : VARCHAR(30)
telefone : VARCHAR(15)
tipo: CHAR(1)
<<Tabela>>ClienteFisico
PK/FK codigo : INTEGER
cpf : VARCHAR(10)
data_nasc : DATE
<<Tabela>>ClienteJurídico
PK/FK codigo : INTEGER
cnpj : VARCHAR(15)
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Diagrama de Classes (4)
• Uma Tabela por Classe Concreta
90
<<Tabela>>ClienteJurídico
PK codigo : INTEGER
nome : VARCHAR(30)
telefone : VARCHAR(15)
cnpj : VARCHAR(15)
<<Tabela>>ClienteFísico
PK codigo : INTEGER
nome : VARCHAR(30)
telefone : VARCHAR(15)
cpf : VARCHAR(10)
data_nasc : DATE
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Diagrama de Classes (5)
• Uma Tabela por Hierarquia
91
<<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
Diagrama de Classes (6)
• Tipos de Atributos
92
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
Diagrama de Classes (7)
• Elementos
93
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Diagrama de Classes (8)
• Demonstração de um Exemplo utilizando o JUDE
94
CIn/UFPE – IN1008 - Projeto Conceitual de BD
Diagrama de Classes (9)
• Demonstração de um Exemplo utilizando o JUDE
95
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
Referências
• Naiburg, E., Maksumchuk, R. UML for Database Design, Addsison Wesley, 2001
• Guedes, G. UML – Uma Abordagem Prática, Novatec, 2003
97
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 [email protected]
Fabrício [email protected]