A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Professor: Leandro Chernicharo. Arquitetura dividida em três níveis: Nível externo Nível interno Nível conceitual."— Transcrição da apresentação:

1 Professor: Leandro Chernicharo

2

3 Arquitetura dividida em três níveis: Nível externo Nível interno Nível conceitual

4 Nível externo o mais próximo do usuário final: aplicações, resultado de consultas, etc.; Nível interno trata de como os dados serão efetivamente armazenados: tipos, algoritmos, discos, etc.; Nível conceitual é o modelo que reflete o banco de dados, abstraindo sua implementação, preocupando-se apenas com a informação em si.

5

6 É uma das etapas do Projeto de Banco de Dados; Representa a visão dos dados a serem armazenadas abstraindo sua implementação física; Apresenta uma visão estática do sistema; Pode ser baseado em entidades (MER) ou em objetos (Diagrama de Classes)

7 Etapas do Projeto de BD: Modelagem Conceitual Projeto Lógico de Dados Projeto Físico de Dados BD Conjunto de Requisitos

8 Um modelo de classes de domínio é uma representação das classes conceituais do mundo real, não dos componentes do software. Ele não é um conjunto de diagramas descrevendo as classes do software ou objetos do software e suas responsabilidades [LARMAN, Craig, Utilizando UML e Padrões, 2a ed.]

9 Modelagem conceitual de dados é o processo de criação de um modelo conceitual de dados a partir dos requisitos extraídos para um determinado artefato de software.

10

11

12 Um hospital possui um número de, nas quais os são, suas tratadas, e das quais são liberados após o. Cada ala a uma e admite pacientes do feminino ou masculino (não há alas mistas). […] Quem O que como alas tratamento pacientes doenças especialidade sexo admitidos atende

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..*

14 Resumindo: As informações para construção do modelo podem vir do minimundo ou das descrições de caso de uso (mais comum); O modelo conceitual abstrai completamente qualquer tipo de implementação, concentrando- se apenas na representação lógica do negócio; Serve como estrutura fundamental para todo o desenvolvimento do sistema.

15

16 Ferramenta: Diagrama de Classes da UML Existe em três níveis de abstração A Projeto Implementação Estrutural Representa as classes e suas relações Estático Não apresenta informações de interações entre os objetos Análise

17 No nível de análise, representamos apenas as classes que tenham relação com o domínio de problema, abstraindo recursos e decisões de projeto ou implementação; Por esse motivo, também é conhecido como diagrama de classes de domínio

18 São representados no diagrama de classes de análise: Classes; Atributos (sem os respectivos tipos de dado); Associações; Simples / agregações / composições Multiplicidades Adornos Generalizações/especializações

19 Classes São abstrações que representam objetos com as mesmas características e papéis dentro do SW; Pode possuir atributos e operações: Atributos são as características do objeto, as informações que conhecemos a seu respeito Operações São os comportamentos que o objeto é capaz de executar

20 Classes – Notação Representada por um retângulo com um a três compartimentos: Nome da classe Atributos Operações Os nomes de classe devem ser sempre iniciados com letras maiúsculas e devem estar no singular. Exemplos: Livro Pedido ItemPedido

21 Classes – Notação Os atributos e operações devem iniciar com letras minúsculas e, para cada nova palavra no nome, a letra maiúscula deve ser usada. Exemplos: numero dataRealizacao obterValorTotal()

22 Classes – Notação As operações sempre devem terminar com parênteses, mesmo que nao haja parâmetros. Exemplos: calcularValor() somar(a : int, b : int) : int adicionarFuncionario(func : Funcionario)

23 Classes – Notação (exemplos) Nome da Classe Lista de atributos Nome da Classe Lista de operações Nome da Classe Lista de atributos Pedido numero dataRealizacao Pedido obterValorTotal() Pedido numero dataRealizacao Lista de operações obterValorTotal()

24 Associações Representam a relação entre objetos de duas ou mais classes; Essa ligação só se concretizará (ou não) durante a execução do sistema; Representada no diagrama de classes por uma linha ligando os elementos envolvidos.

25 Associações Uma Classe pode se associar com ela própria. A esse fato damos o nome de associação reflexiva; As associações possuem atributos que podemos utilizar para lhes dar maior significado, legibilidade e clareza; Esses atributos são colocados sobre ou sob a linha que representa a associação

26 Associações São atributos possíveis de uma associação: Nome Direção de leitura Papel Multiplicidades

27 Associações Nome dá legibilidade e significado à associação; Direção de leitura indica para que lado se lê o significado dado pelo nome da associação; Papel indica o papel que determinado objeto executa naquela associação. Pode ser usado em substituição do nome.

28 Associações Multiplicidades representam as quantidades mínima e máxima 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

29 Associações A partir das multiplicidades extraímos dois novos conceitos: conectividade e participação. Conectividade define a maneira como se dá a associação entre as classes. Descoberta a partir do limite superior de cada um dos pares de multiplicidade de uma determinada associação ConectividadeLimites superiores da associação Um para Um1 e 1 Um para Muitos1 e * (ou um número superior a 1) Muitos para Muitos* e * (ou dois números superiores a 1)

30 Associações Participação indica a obrigatoriedade ou não da existência da ligação entre os objetos durante a execução do sistema. Descoberta a partir do limite inferior de cada um dos pares de multiplicidade de uma determinada associação A participação de uma classe em uma associação é descoberta no extremo oposto a onde ela está

31 Associações – Notação (exemplos) DepartamentoFuncionario aloca 0..*1 multiplicidades nome da associção direção de leitura associação Conectividade: um para muitos Participação de Departamento: opcional Participação de Funcionario: mandatória

32 Associações – Notação (exemplos) OrganizaçãoIndivíduo contrata 1..* Conectividade: muitos para muitos Participação de Organizacao: mandatória Participação de Individuo: mandatória OrganizaçãoIndivíduo - contratado 1..* - contratante É o mesmo que papel

33 Associações – Notação (exercício) CorridaCorredor participa de.. Conectividade? Participação de Corrida? Participação de Corredor? muitos para muitos opcional mandatória * * 0 1

34 Associações Além da associação simples (que vimos até agora), existem dois tipos especiais de associação: Agregação; Composição

35 Associações Agregação e composição: São usadas para indicar uma semântica de todo-parte na relação entre duas classes; Podem, em qualquer caso, ser substituídas por uma associação simples; Seu uso é indicado quando for necessário enfatizar a semântica da associação; Todos os adornos de uma associação simples podem ser aplicados a elas.

36 Associações Agregação x Composição: Agregação Neste tipo de associação, as partes podem ser criadas sem que haja o todo; Uma mesma parte pode fazer parte de diversos todos; A destruição de um não implica na destruição do outro. Ex.: Um clube esportivo e seus sócios

37 Associações Agregação x Composição: Composição Neste tipo de associação, há uma dependência entre as classes, de tal forma que a parte não existe sem o todo; Os objetos parte são pertencentes a um único todo; Os objetos parte são criados e destruídos pelo objeto todo. Ex.: Uma venda e seus itens

38 Associações Agregação x Composição: Notação Agregação e composição são representados no diagrama de classes por um losango na extremidade todo; Na agregação o losango é aberto; Na composição o losango é fechado;

39 Associações Agregação x Composição: Exemplo Clube Socio Venda ItemVenda Agregação Composição 1..* - sócio proprietário 0..* 1..* 1 Sempre é 1, por isso alguns autores omitem esta multiplicidade

40 Associações Agregação x Composição: IMPORTANTE Pode-se construir hierarquias de associações desse tipo, formando hierarquias todo-parte; Esse tipo de associação é transitivo. Capitulo Secao 1..* Paragrafo 1..*

41 Associações n-árias São associações que envolvem mais de duas classes simultaneamente (n > 2); O tipo mais comum – ou menos incomum – desse tipo de associação é a associação ternária (n = 3); São representadas por um losango que conecta as linhas de associação de todas as classes que dela participam; Para determinar as multiplicidades de cada uma das classes, devemos analisá-la no contexto da associação com as demais classes participantes, simultaneamente.

42 Associações n-árias Exemplo: Profissional Empresa Projeto Uma empresa contrata um profissional para trabalhar em um projeto específico. Se não houver projeto, não há a contratação; Se não houver profissionais disponíveis, não é possível realizar o projeto; Os profissionais só podem trabalhar no projeto se forem contratados por uma empresa. *1..*

43 Classe de Associação Usada para armazenarmos características e operações referentes a uma associação entre duas classes; Ou seja, a informação não pertence a uma ou a outra classe da associação, mas sim à união de ambas, ao par. Também conhecida como classe associativa; Pode ser usada em associações com qualquer conectividade; Pode ser usada em uma associação ternária.

44 Classe de Associação Representada no diagrama de classes por uma linha tracejada ligando a classe à associação à 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 realização da associação

45 Generalização/Especialização Relacionamento entre classes do domínio que representa generalidade ou especificidade entre os envolvidos; Pode-se dizer que uma classe é uma especialização de outra quando ela adiciona atributos, associações ou comportamentos a esta; Diz-se mais comumente que a classe específica é uma extensão da classe mais genérica.

46 Generalização/Especialização Em suma, diz-se que A estende B quando A pode ser visto como um subtipo de B e lhe adiciona novas características (atributos, associações e/ou operações); ContaPoupanca e ContaCorrente são subtipos de ContaBancaria O nome mais comum que se dá a essa relação entre classes é herança; Na herança, atributos e operações que não sejam privados na classe mais genérica são automaticamente herdados nas classes mais específicas.

47 Generalização/Especialização Benefício do uso de herança Reuso; Malefício do uso de herança Acoplamento; É necessário discernimento e bom senso no uso de herança no processo de modelagem; Excesso leva a acoplamentos exagerados.

48 Generalização/Especialização Representamos no diagrama de classes com uma seta fechada e vazada que vai do mais específico para o mais genérico; Não há limites para o número de classes envolvidas em um relacionamento de herança; Pode-se criar hierarquias de classes em níveis, a priori, infinitos; O relacionamento de herança é: Transitivo As mais específicas herdam as características de todos os seus ascendentes diretos na hierarquia; Assimétrico Se A herda de B, B não pode herdar de A.

49 Generalização/Especialização Notação: Superclasse Subclasse1Subclasse2... SubclasseN Subclasse1 Superclasse SubclasseNSubclasse2...

50 Generalização/Especialização Exemplo:

51 Generalização/Especialização Termos comuns: GenéricoEspecífico SuperclasseSubclasse SupertipoSubtipo Classe baseClasse herdeira AncestralDescendente Classe paiClasse filha Classe de generalizaçãoClasse de especialização

52 Generalização/Especialização É possível adicionar restrições aos diversos relacionamentos de herança: Sobreposta / Disjunta Completa / Incompleta

53 Generalização/Especialização Exemplo das restrições: Há ainda outras subclasses As subclasses são mutuamente exclusivas Não há mais outras subclasses Um nadador pode ser também um corredor

54 Generalização/Especialização É importante não confundir papel de uma classe em uma associação com herança!!; ERRADO!! CORRETO!! Papel executado pela classe...

55 Generalização/Especialização Uma classe pode ter mais de um ancestral direto ao mesmo tempo; A este fato damos o nome de herança múltipla; A maioria das linguagens OO não dão suporte à herança múltipla; Deve-se evitar seu uso, pois é um conceito complicado de entender e implementar.

56 Generalização/Especialização Herança múltipla (Exemplo): VeiculoAereoVeiculoAquatico VeiculoAeroAquatico Implementa comportamentos e guarda características de ambos os tipos de veículo Hidroavião é um exemplo disso

57 Classes Abstratas São classes que aparecem no modelo apenas para definir uma interface comum a uma determinada hierarquia de classes; Não podem ser instanciadas!! Classes abstratas podem herdar de outras classe abstrata, mas a hierarquia deve terminar em uma classe concreta; Classes concretas são aquelas que, ao contrário das abstratas, são instanciáveis; Todas as que vimos até agora

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 são qualificadas como abstratas simplesmente por não fazer sentido criar uma instância sua diretamente; Polígono, por exemplo

59 Classes Abstratas (Exemplo) Pagamento DinheiroCartaoCheque Classes concretas Classe abstrata (Representada com o nome em itálico)

60


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

Apresentações semelhantes


Anúncios Google