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