60
Modelagem Conceitual Professor: Leandro Chernicharo

Professor: Leandro Chernicharo. Arquitetura dividida em três níveis: Nível externo Nível interno Nível conceitual

Embed Size (px)

Citation preview

  • Slide 1
  • Professor: Leandro Chernicharo
  • Slide 2
  • Slide 3
  • Arquitetura dividida em trs nveis: Nvel externo Nvel interno Nvel conceitual
  • Slide 4
  • Nvel externo o mais prximo do usurio final: aplicaes, resultado de consultas, etc.; Nvel interno trata de como os dados sero efetivamente armazenados: tipos, algoritmos, discos, etc.; Nvel conceitual o modelo que reflete o banco de dados, abstraindo sua implementao, preocupando-se apenas com a informao em si.
  • Slide 5
  • Slide 6
  • uma das etapas do Projeto de Banco de Dados; Representa a viso dos dados a serem armazenadas abstraindo sua implementao fsica; Apresenta uma viso esttica do sistema; Pode ser baseado em entidades (MER) ou em objetos (Diagrama de Classes)
  • Slide 7
  • Etapas do Projeto de BD: Modelagem Conceitual Projeto Lgico de Dados Projeto Fsico de Dados BD Conjunto de Requisitos
  • Slide 8
  • Um modelo de classes de domnio uma representao das classes conceituais do mundo real, no dos componentes do software. Ele no um conjunto de diagramas descrevendo as classes do software ou objetos do software e suas responsabilidades [LARMAN, Craig, Utilizando UML e Padres, 2a ed.]
  • Slide 9
  • Modelagem conceitual de dados o processo de criao de um modelo conceitual de dados a partir dos requisitos extrados para um determinado artefato de software.
  • Slide 10
  • Slide 11
  • Slide 12
  • Um hospital possui um nmero de, nas quais os so, suas tratadas, e das quais so liberados aps o. Cada ala a uma e admite pacientes do feminino ou masculino (no h alas mistas). [] Quem O que como alas tratamento pacientes doenas especialidade sexo admitidos atende
  • Slide 13
  • Ala sexo Paciente nome sexo Tratamento Data_inicio Data_fim Especialidade nome Pertence a realizaatende trata 1 0..* 1 1..* 1 0..* 1..* 0..* Quem O que como Doenca nome 1..* engloba 1..*
  • Slide 14
  • Resumindo: As informaes para construo do modelo podem vir do minimundo ou das descries de caso de uso (mais comum); O modelo conceitual abstrai completamente qualquer tipo de implementao, concentrando- se apenas na representao lgica do negcio; Serve como estrutura fundamental para todo o desenvolvimento do sistema.
  • Slide 15
  • Slide 16
  • Ferramenta: Diagrama de Classes da UML Existe em trs nveis de abstrao A Projeto Implementao Estrutural Representa as classes e suas relaes Esttico No apresenta informaes de interaes entre os objetos Anlise
  • Slide 17
  • No nvel de anlise, representamos apenas as classes que tenham relao com o domnio de problema, abstraindo recursos e decises de projeto ou implementao; Por esse motivo, tambm conhecido como diagrama de classes de domnio
  • Slide 18
  • So representados no diagrama de classes de anlise: Classes; Atributos (sem os respectivos tipos de dado); Associaes; Simples / agregaes / composies Multiplicidades Adornos Generalizaes/especializaes
  • Slide 19
  • Classes So abstraes que representam objetos com as mesmas caractersticas e papis dentro do SW; Pode possuir atributos e operaes: Atributos so as caractersticas do objeto, as informaes que conhecemos a seu respeito Operaes So os comportamentos que o objeto capaz de executar
  • Slide 20
  • Classes Notao Representada por um retngulo com um a trs compartimentos: Nome da classe Atributos Operaes Os nomes de classe devem ser sempre iniciados com letras maisculas e devem estar no singular. Exemplos: Livro Pedido ItemPedido
  • Slide 21
  • Classes Notao Os atributos e operaes devem iniciar com letras minsculas e, para cada nova palavra no nome, a letra maiscula deve ser usada. Exemplos: numero dataRealizacao obterValorTotal()
  • Slide 22
  • Classes Notao As operaes sempre devem terminar com parnteses, mesmo que nao haja parmetros. Exemplos: calcularValor() somar(a : int, b : int) : int adicionarFuncionario(func : Funcionario)
  • Slide 23
  • Classes Notao (exemplos) Nome da Classe Lista de atributos Nome da Classe Lista de operaes Nome da Classe Lista de atributos Pedido numero dataRealizacao Pedido obterValorTotal() Pedido numero dataRealizacao Lista de operaes obterValorTotal()
  • Slide 24
  • Associaes Representam a relao entre objetos de duas ou mais classes; Essa ligao s se concretizar (ou no) durante a execuo do sistema; Representada no diagrama de classes por uma linha ligando os elementos envolvidos.
  • Slide 25
  • Associaes Uma Classe pode se associar com ela prpria. A esse fato damos o nome de associao reflexiva; As associaes possuem atributos que podemos utilizar para lhes dar maior significado, legibilidade e clareza; Esses atributos so colocados sobre ou sob a linha que representa a associao
  • Slide 26
  • Associaes So atributos possveis de uma associao: Nome Direo de leitura Papel Multiplicidades
  • Slide 27
  • Associaes Nome d legibilidade e significado associao; Direo de leitura indica para que lado se l o significado dado pelo nome da associao; Papel indica o papel que determinado objeto executa naquela associao. Pode ser usado em substituio do nome.
  • Slide 28
  • Associaes Multiplicidades representam as quantidades mnima e mxima de objetos com os quais o outro pode estar ligado. NomeSimbologia Apenas um1..1 ou 1 Zero ou muitos0..* ou * Um ou muitos1..* Zero ou um0..1 Valores definidos2..4 | 1..6
  • Slide 29
  • Associaes A partir das multiplicidades extramos dois novos conceitos: conectividade e participao. Conectividade define a maneira como se d a associao entre as classes. Descoberta a partir do limite superior de cada um dos pares de multiplicidade de uma determinada associao ConectividadeLimites superiores da associao Um para Um1 e 1 Um para Muitos1 e * (ou um nmero superior a 1) Muitos para Muitos* e * (ou dois nmeros superiores a 1)
  • Slide 30
  • Associaes Participao indica a obrigatoriedade ou no da existncia da ligao entre os objetos durante a execuo do sistema. Descoberta a partir do limite inferior de cada um dos pares de multiplicidade de uma determinada associao A participao de uma classe em uma associao descoberta no extremo oposto a onde ela est
  • Slide 31
  • Associaes Notao (exemplos) DepartamentoFuncionario aloca 0..*1 multiplicidades nome da associo direo de leitura associao Conectividade: um para muitos Participao de Departamento: opcional Participao de Funcionario: mandatria
  • Slide 32
  • Associaes Notao (exemplos) OrganizaoIndivduo contrata 1..* Conectividade: muitos para muitos Participao de Organizacao: mandatria Participao de Individuo: mandatria OrganizaoIndivduo - contratado 1..* - contratante o mesmo que papel
  • Slide 33
  • Associaes Notao (exerccio) CorridaCorredor participa de.. Conectividade? Participao de Corrida? Participao de Corredor? muitos para muitos opcional mandatria * * 0 1
  • Slide 34
  • Associaes Alm da associao simples (que vimos at agora), existem dois tipos especiais de associao: Agregao; Composio
  • Slide 35
  • Associaes Agregao e composio: So usadas para indicar uma semntica de todo-parte na relao entre duas classes; Podem, em qualquer caso, ser substitudas por uma associao simples; Seu uso indicado quando for necessrio enfatizar a semntica da associao; Todos os adornos de uma associao simples podem ser aplicados a elas.
  • Slide 36
  • Associaes Agregao x Composio: Agregao Neste tipo de associao, as partes podem ser criadas sem que haja o todo; Uma mesma parte pode fazer parte de diversos todos; A destruio de um no implica na destruio do outro. Ex.: Um clube esportivo e seus scios
  • Slide 37
  • Associaes Agregao x Composio: Composio Neste tipo de associao, h uma dependncia entre as classes, de tal forma que a parte no existe sem o todo; Os objetos parte so pertencentes a um nico todo; Os objetos parte so criados e destrudos pelo objeto todo. Ex.: Uma venda e seus itens
  • Slide 38
  • Associaes Agregao x Composio: Notao Agregao e composio so representados no diagrama de classes por um losango na extremidade todo; Na agregao o losango aberto; Na composio o losango fechado;
  • Slide 39
  • Associaes Agregao x Composio: Exemplo Clube Socio Venda ItemVenda Agregao Composio 1..* - scio proprietrio 0..* 1..* 1 Sempre 1, por isso alguns autores omitem esta multiplicidade
  • Slide 40
  • Associaes Agregao x Composio: IMPORTANTE Pode-se construir hierarquias de associaes desse tipo, formando hierarquias todo-parte; Esse tipo de associao transitivo. Capitulo Secao 1..* Paragrafo 1..*
  • Slide 41
  • Associaes n-rias So associaes que envolvem mais de duas classes simultaneamente (n > 2); O tipo mais comum ou menos incomum desse tipo de associao a associao ternria (n = 3); So representadas por um losango que conecta as linhas de associao de todas as classes que dela participam; Para determinar as multiplicidades de cada uma das classes, devemos analis-la no contexto da associao com as demais classes participantes, simultaneamente.
  • Slide 42
  • Associaes n-rias Exemplo: Profissional Empresa Projeto Uma empresa contrata um profissional para trabalhar em um projeto especfico. Se no houver projeto, no h a contratao; Se no houver profissionais disponveis, no possvel realizar o projeto; Os profissionais s podem trabalhar no projeto se forem contratados por uma empresa. *1..*
  • Slide 43
  • Classe de Associao Usada para armazenarmos caractersticas e operaes referentes a uma associao entre duas classes; Ou seja, a informao no pertence a uma ou a outra classe da associao, mas sim unio de ambas, ao par. Tambm conhecida como classe associativa; Pode ser usada em associaes com qualquer conectividade; Pode ser usada em uma associao ternria.
  • Slide 44
  • Classe de Associao Representada no diagrama de classes por uma linha tracejada ligando a classe associao qual ela se refere; Pessoa nome telefone Empresa razaoSocial CNPJ Emprego dtContratacao salario ** - empregado- empregador S fazem sentido se houver o par, se houver a realizao da associao
  • Slide 45
  • Generalizao/Especializao Relacionamento entre classes do domnio que representa generalidade ou especificidade entre os envolvidos; Pode-se dizer que uma classe uma especializao de outra quando ela adiciona atributos, associaes ou comportamentos a esta; Diz-se mais comumente que a classe especfica uma extenso da classe mais genrica.
  • Slide 46
  • Generalizao/Especializao Em suma, diz-se que A estende B quando A pode ser visto como um subtipo de B e lhe adiciona novas caractersticas (atributos, associaes e/ou operaes); ContaPoupanca e ContaCorrente so subtipos de ContaBancaria O nome mais comum que se d a essa relao entre classes herana; Na herana, atributos e operaes que no sejam privados na classe mais genrica so automaticamente herdados nas classes mais especficas.
  • Slide 47
  • Generalizao/Especializao Benefcio do uso de herana Reuso; Malefcio do uso de herana Acoplamento; necessrio discernimento e bom senso no uso de herana no processo de modelagem; Excesso leva a acoplamentos exagerados.
  • Slide 48
  • Generalizao/Especializao Representamos no diagrama de classes com uma seta fechada e vazada que vai do mais especfico para o mais genrico; No h limites para o nmero de classes envolvidas em um relacionamento de herana; Pode-se criar hierarquias de classes em nveis, a priori, infinitos; O relacionamento de herana : Transitivo As mais especficas herdam as caractersticas de todos os seus ascendentes diretos na hierarquia; Assimtrico Se A herda de B, B no pode herdar de A.
  • Slide 49
  • Generalizao/Especializao Notao: Superclasse Subclasse1Subclasse2... SubclasseN Subclasse1 Superclasse SubclasseNSubclasse2...
  • Slide 50
  • Generalizao/Especializao Exemplo:
  • Slide 51
  • Generalizao/Especializao Termos comuns: GenricoEspecfico SuperclasseSubclasse SupertipoSubtipo Classe baseClasse herdeira AncestralDescendente Classe paiClasse filha Classe de generalizaoClasse de especializao
  • Slide 52
  • Generalizao/Especializao possvel adicionar restries aos diversos relacionamentos de herana: Sobreposta / Disjunta Completa / Incompleta
  • Slide 53
  • Generalizao/Especializao Exemplo das restries: H ainda outras subclasses As subclasses so mutuamente exclusivas No h mais outras subclasses Um nadador pode ser tambm um corredor
  • Slide 54
  • Generalizao/Especializao importante no confundir papel de uma classe em uma associao com herana!!; ERRADO!! CORRETO!! Papel executado pela classe...
  • Slide 55
  • Generalizao/Especializao Uma classe pode ter mais de um ancestral direto ao mesmo tempo; A este fato damos o nome de herana mltipla; A maioria das linguagens OO no do suporte herana mltipla; Deve-se evitar seu uso, pois um conceito complicado de entender e implementar.
  • Slide 56
  • Generalizao/Especializao Herana mltipla (Exemplo): VeiculoAereoVeiculoAquatico VeiculoAeroAquatico Implementa comportamentos e guarda caractersticas de ambos os tipos de veculo Hidroavio um exemplo disso
  • Slide 57
  • Classes Abstratas So classes que aparecem no modelo apenas para definir uma interface comum a uma determinada hierarquia de classes; No podem ser instanciadas!! Classes abstratas podem herdar de outras classe abstrata, mas a hierarquia deve terminar em uma classe concreta; Classes concretas so aquelas que, ao contrrio das abstratas, so instanciveis; Todas as que vimos at agora
  • Slide 58
  • Classes Abstratas Usamos classes abstratas para organizar uma hierarquia de classes, concentrando nela os atributos e comportamentos comuns s demais; Em alguns casos as classes so qualificadas como abstratas simplesmente por no fazer sentido criar uma instncia sua diretamente; Polgono, por exemplo
  • Slide 59
  • Classes Abstratas (Exemplo) Pagamento DinheiroCartaoCheque Classes concretas Classe abstrata (Representada com o nome em itlico)
  • Slide 60