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

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

Professor: Leandro Chernicharo

Apresentações semelhantes


Apresentação em tema: "Professor: Leandro Chernicharo"— Transcrição da apresentação:

1 Professor: Leandro Chernicharo
Modelagem Conceitual Professor: Leandro Chernicharo

2 Relembrando…

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

4 Relembrando… 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 Modelagem conceitual

6 Modelagem conceitual objetos (Diagrama de Classes)
É 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 Modelagem conceitual Etapas do Projeto de BD: Modelagem Conceitual
Conjunto de Requisitos Modelagem Conceitual Projeto Lógico de Dados Projeto Físico de Dados BD BD BD

8 Modelagem conceitual “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 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 Modelagem conceitual

11 Um exemplo

12 Um exemplo “Quem” 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). […] alas pacientes admitidos doenças tratamento atende especialidade sexo “O que” “como”

13 Um exemplo “Quem” “O que” “como” 1 Ala Paciente 0..* sexo nome sexo
atende realiza 1 0..* 1 Tratamento Especialidade Pertence a Data_inicio Data_fim 1..* nome 1..* engloba “O que” 0..* 1..* Doenca “como” 1..* trata nome

14 Um exemplo 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 Construindo o modelo

16 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo Classes – Notação (exemplos) Nome da Classe
Lista de atributos Lista de operações Lista de atributos Lista de operações Pedido Pedido Pedido Pedido numero dataRealizacao obterValorTotal() numero dataRealizacao obterValorTotal()

24 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo Associações
São atributos possíveis de uma associação: Nome Direção de leitura Papel Multiplicidades

27 Construindo o modelo 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 Construindo o modelo Associações
Multiplicidades  representam as quantidades mínima e máxima de objetos com os quais o outro pode estar ligado. Nome Simbologia Apenas um 1..1 ou 1 Zero ou muitos 0..* ou * Um ou muitos 1..* Zero ou um 0..1 Valores definidos 2..4 | 1..6

29 Construindo o modelo 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 Conectividade Limites superiores da associação Um para Um 1 e 1 Um para Muitos 1 e * (ou um número superior a 1) Muitos para Muitos * e * (ou dois números superiores a 1)

30 Construindo o modelo 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 Construindo o modelo Associações – Notação (exemplos)
nome da associção direção de leitura 1 aloca 0..* Departamento Funcionario multiplicidades associação Conectividade: um para muitos Participação de Departamento: opcional Participação de Funcionario: mandatória

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

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

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

35 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo Associações Agregação x Composição: Exemplo Clube
Venda Agregação 0..* 1 Composição 1..* - sócio proprietário 1..* Socio ItemVenda Sempre é 1, por isso alguns autores omitem esta multiplicidade

40 Construindo o modelo 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. 1..* 1..* Capitulo Secao Paragrafo

41 Construindo o modelo 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 Construindo o modelo Associações n-árias Exemplo: Profissional Projeto
1..* * Profissional Projeto 1..* Empresa 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.

43 Construindo o modelo 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 Construindo o modelo Classe de Associação
Representada no diagrama de classes por uma linha tracejada ligando a classe à associação à qual ela se refere; Só fazem sentido se houver o par, se houver a realização da associação Emprego dtContratacao salario Pessoa Empresa nome telefone * * razaoSocial CNPJ - empregado - empregador

45 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo Generalização/Especialização Notação: ... ...
Superclasse Superclasse Subclasse1 Subclasse2 ... SubclasseN Subclasse1 Subclasse2 ... SubclasseN

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

51 Construindo o modelo Generalização/Especialização Termos comuns:
Genérico Específico Superclasse Subclasse Supertipo Subtipo Classe base Classe herdeira Ancestral Descendente Classe pai Classe filha Classe de generalização Classe de especialização

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

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

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

55 Construindo o modelo 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 Construindo o modelo Generalização/Especialização
Herança múltipla (Exemplo): VeiculoAereo VeiculoAquatico VeiculoAeroAquatico Implementa comportamentos e guarda características de ambos os tipos de veículo Hidroavião é um exemplo disso

57 Construindo o modelo 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 Construindo o modelo 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 Construindo o modelo Classes Abstratas (Exemplo) Classe abstrata
(Representada com o nome em itálico) Pagamento Dinheiro Cartao Cheque Classes concretas

60 Bibliografia


Carregar ppt "Professor: Leandro Chernicharo"

Apresentações semelhantes


Anúncios Google