Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Diagrama de Classes



Documentos relacionados
Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Diagrama de Classes

Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. ! Generalização/Especialização

Banco de Dados. Modelo Entidade Relacionamento Estendido DCC IME USP. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Modelos Conceituais de Dados

3. Numerar a coluna da direita conforme a da esquerda 1) Classe (2) :Aluno 2) Um dado objeto (3) oaluno:aluno 3) Objeto (1) Aluno

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções

Modelo Entidade Relacionamento (MER)

7. Defina encapsulamento. R.: Encapsular é ocultar. Criar uma cápsula ao redor da classe, para proteger o que está dentro dela.

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Orientação a Objetos

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

Programação Orientada a Objetos

Roteiro. Modelagem com Entidade-Relacionamento Estendido. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa.

Primeira Prova de Análise e otimização de Código - DCC888 -

Análise e Projeto de Sistemas OO

Modelando sistemas em UML - Casos de uso.

Lista de exercícios de UML

Banco de Dados I 2 Modelagem de Dados Conceitual

Herança. Prof. Leonardo Barreto Campos 1

Universidade Paulista

Inteligência Artificial Redes Neurais Artificiais

Álgebra Relacional. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução a Banco de Dados. INTRODUÇÃO

OBSERVAÇÕES: EXERCÍCIOS

Algoritmos e Programação II

Banco de Dados. Aula 4 - Prof. Bruno Moreno 02/09/2011

Exercícios de Projeto de Banco de Dados Relacional Aula 8

Bancos de Dados. O Modelo E ntidade-r elacionamento

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Campinas 26 e 27 de fevereiro de 2015

Guia para Modelagem de Casos de Uso Metodologia CELEPAR

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

Roteiro. Mapeamento dos Modelos ER e EER. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento

Bancos de Dados Aula #2 - Modelos Conceituais de Dados

6 CONCEPÇÃO BÁSICA DO SISTEMA DE APOIO À DECISÃO

Lista 4 Introdução à Programação Entregar até 07/05/2012

Linguagens e Técnicas de Programação II

Transformações de Modelos

Avaliação e Desempenho Aula 1 - Simulação

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

Modelo de Entidade-Relação (ER)

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

INE 5323 Banco de Dados I

1 Introdução. 1.1 Importância da Utilização da Amostragem

DISTRIBUIÇÃO DE FREQUÊNCIA DE VARIÁVEIS QUALITATIVAS E QUANTITATIVAS DISCRETAS (TABELAS E GRÁFICOS)

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Análise e projeto de sistemas

Mapeamento do Modelo Entidade-Relacionamento para o Modelo Relacional

PROGRAMAÇÃO ORIENTADA A OBJETO INTRODUÇÃO

Programação de Computadores I. Linguagem C Função

Retrospectiva (Aula 2) O Modelo Entidade-Relacionamento. O Modelo Entidade- Relacionamento. O Modelo Entidade- Relacionamento

Equilíbrio de um corpo rígido

Não Não Sim Não Sim Sim

Aula 2 Abordagem Entidade-Relacionamento Cleverton Hentz

Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

Introdução à UML. Prof. Jesus José de Oliveira Neto

GUIA PARA MELHORIA CURRICULAR

Projeto de Banco de Dados Relacional

M a n u a l d o P r o U n i P á g i n a 1

Casos de Uso. SSC 526: Análise e Projeto Orientados a Objetos. Profa. Dra. Elisa Yumi Nakagawa

*Deverão ser apresentados originais e cópias simples dos documentos, em tamanho A4, folhas individuais e sem recortá-los.

CARTILHA DOS PROCEDIMENTOS DA BIOMETRIA

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Modulo II Padrões GRASP

MANUAL DO USUÁRIO SIMPLEX. Prof. Erico Fagundes Anicet Lisboa, M. Sc.

UNIPAC Araguari FACAE - Faculdade de Ciências Administrativas e Exatas SISTEMAS DE INFORMAÇÃO

Faculdade Ieducare. 5º Semestre Sistemas de Informação. Professor: Rhyan Ximenes. Banco de Dados II 1. Banco de Dados II

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Processo Seletivo Renovação de Bolsa Filantropia

Operações relacionais e Álgebra relacional

aumento de custos de armazenamento e acesso performance baixa incoerência de informações nas alterações de dados

Processo de Desenvolvimento de Software

T écnicas de Obtenção de Requisitos

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Programação Orientada a Objetos

Modelagem de Sólidos. 35T56 Sala 3E1 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102

MINISTÉRIO DA EDUCAÇÃO

Modelos de Ciclo de Vida de Software

A organização defensiva no modelo de jogo

Exercícios: comandos de repetição

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE UBERLÂNDIA Pró-Reitoria de Graduação Diretoria de Processos Seletivos ANEXO I

2. GERAÇÃO DE DISCIPLINAS PARA O PERÍODO

Bem-vindo ao tópico sobre importação de dados do cadastro do item utilizando o Data Transfer Workbench.

Unidade 2 Modelo Conceitual

Procedimento Operacional Padrão nº 07 Cadastro de Usuários no SAJ5

Banco de Dados Modelagem de Dados. Prof. Joel da Silva

Abordagem ER. Capítulo 2

Introdução à Algoritmos. Aula 11

R E S O L U Ç Ã O. Fica aprovado, conforme anexo, o Regulamento de Monitoria para os cursos de graduação das Faculdades Integradas Sévigné.

CURSO: ADMINISTRAÇÃO Prof Dra. Deiby Santos Gouveia Disciplina: Matemática Aplicada FUNÇÃO RECEITA

ELABORAÇÃO E ANÁLISE DE PROJETOS - EAP

CAPÍTULO O Método Simplex Pesquisa Operacional

INTRODUÇÃO A CONTABILIDADE

Transcrição:

! Aspectos tratados pelos Diagramas de Classe: Dados e Funções Eventos Diagrama de Classes Dados Funções Sistema! Representação dos dados manipulados e armazenados pelos programas de acordo com os conceitos de Orientação a Objetos! Notação fortemente baseada no Diagramas Entidade-Relacionamento de Peter Chen! Deve-se observar que o Diagrama de Classes privilegia a descrição segundo o paradigma OO! Notação Opcionais (fornecidos somente após um melhor entendimento do sistema) Nome da classe Atributo atributo: tipo de dado atributo: tipo de dado = valor inicial Operação Operação(lista de argumentos): tipo do resultado

! Atributos! Associações Multiplicidade da associação Nome: Str Endereço: { Logradouro: Str, Bairro: Str, Cidade: Str. } Telefones: Array of Int Obs: Atributos compostos e Multivalorados são permitidos pelo modelo de dados OO Livro escrito por 0.. 1.. Rótulo da associação! Associações Livro Título: Str ISBN: Int Editora: Str Multiplicidade da associação escrito por 0.. 1.. Rótulo da associação Nome: Str Endereço: { Logradouro: Str, Bairro: Str, Cidade: Str. } Telefones: Array of Int! Atributos e Métodos Conta Bancária saldo dataabertura criar() bloquear() desbloquear() creditar() debitar() 1 titular Papel da classe na associação Obs: recomenda-se sempre incluir o da associação ou um papel. O papel é útil p/ o código-fonte gerado por ferramentas CASE Nome: Str Endereço: { Logradouro: Str, Bairro: Str, Cidade: Str. } Telefones: Array of Int

João supervisiona! Associações entre objetos (Exemplos) Associação Unária 0..1 Supervisiona! Associações entre objetos! Navegabilidade 0.. trabalha 1 Associação Binária trabalha em João Financeiro É supervisionado por! Associações entre objetos! Navegabilidade João 0.. trabalha Financeiro! Associações entre objetos! Navegabilidade: descreve como as associações devem ser navegadas.! Unidirecional, só é possível navegar em uma direção. Por exemplo, a partir de um pode-se determinar o para o qual ele trabalha, mas o inverso não é possível.! Bidirecional, navega-se em ambas as direções. A partir determina-se o e vice-versa.

! Multiplicidade Multiplicidade Significado 0..1 Zero ou um 1 Somente 1 (opcional) 0.. Maior ou igual a zero Maior ou igual a zero 1.. Maior ou igual a 1 1..15 (m..n) De 1 a 15 (m a n), inclusive! Decisões de cardinalidade expõem muitas suposições, antes ocultas sobre o problema que está sendo modelado.! Exemplos: qual o correto? Professor ministra Curso Um professor pode estar indisponível? Um curso pode ter 2 professores?! Exemplos: qual o correto?! Exemplos 1 trabalha 0..1 0.. trabalha trabalha 1 gerente 0..1 0.. trabalha 1.. (adaptado de BEZ02)

! Exemplos Financeira código financia realizada por 0..1 Venda data hora Vendedor nenha nívelautorização! Classes associativas! Informação que surge a partir da associação de duas outras classes esposa 0..1 Nome Endereço: { Logradouro; Bairro; Cidade. } Sexo casamento 0..1 marido Data Regime! Classes associativas! Conceito não é uma característica de Aluno e nem uma característica de Disciplina, e sim uma propriedade do relacionamento existente entre ambos. Aluno matriculado conceito semestre Disciplina! Classes associativas! Usar quando existem atributos que não pertencem às classes comuns ou quando estas classes podem participar de associações com outras classes Financeira código financia realizada por 0..1 Venda Financiamento registroaprovação dataaprovação data hora Vendedor nenha nívelautorização

! Classes associativas! Observação importante: o conceito de Classe Associativa não é permitido em todas as linguagens de programação e sistemas de banco de dados OO! Assim, em muitos casos as classes associativas encontradas em Análise são substituídas por classes regulares em Projeto! Classes associativas! Classe associativa substituída por normal possui comissão 0..1 Função Comissionada gratificação datainício Exercício: definir a multiplicacidade para manter o mesmo significado do modelo acima?? Função Comissionada Gratificação datainício??! Classes associativas - Exercício gerencia 1. Explique o modelo abaixo. 2. Substitua as classes associativas por classes comuns. chefe grau de desempenho trabalhador Trabalha para salário título do cargo Empresa! Agregação! Associa de todo/parte! Ação realizada sobre todo atinge as partes! Tipo especial de associação 0.. 0.. Documento Parágrafo Sentença composto-por composto-por 0.. 0.. Documento Parágrafo Sentença

! Agregação! Exemplo! Agregação vs Composição! Composição é um tipo especial de agregação (por valor)! Semanticamente equivalente a um atributo composição Associação Esportiva! afiliada 0.. 0.. Equipe Jogador endereço: { logradouro; bairro; cidade. } cpf sexo sexo CPF Endereço logradouro bairro cidade validacpf: bool! Composição sexo! A remoção do todo implica na remoção das partes! O acesso às partes é restrito ao todo CPF validacpf: bool Endereço logradouro bairro cidade endereço pessoa Objeto externo cpf! Composição! Exemplo Produto código descrição ItemVenda quantidade (adaptado de [HEU00]) Uso inadequado de composição: Partes de uma composição não podem ser referenciadas por objetos externos data hora Venda

! Composição! Exemplo Produto código descrição ItemVenda quantidade data hora Venda Uso adequado de composição! Herança de propriedades! Associação do tipo é um Super-classe Cliente! Polimorfismo: não há necessidade de se criar uma associação entre Venda e subclasses de Cliente Cliente realiza Compra Física CPF RG Sexo DataNascimento Jurídica CGC RazãoSocial Sub-classes (herdeiras) Física CPF RG Sexo DataNascimento Jurídica CGC RazãoSocial

! Se atributos de uma classe que foram identificados só podem ser aplicados em tipos específicos da classe, esta é uma boa indicação de que a herança deve ser utilizada [Coad, 1992].! Exemplo: classe Imóvel, atributo de quartos, num. de suítes, etc. Empregado Horista taxa horária taxa por hora extra calcular pagamento Empregado {abstrata} recebido durante o ano calcular pagamento Empregado Assalariado taxa semanal calcular pagamento Empregado Autônomo taxa mensal Classes Abstratas (não é usada para gerar objetos) calcular pagamento! Deve-se analisar as especializações para verificar quais delas estão no domínio do problema. As que não estão presentes não devem ser representadas.! Por exemplo, a modelagem de Homen e Mulher não precisa ser feita, o pagamento do salário de um funcionário não é influenciado pelo sexo do mesmo.! Desta forma, não deve-se criar as subclasses. Pode-se substituir a generalização / especialzação por uma atributo na classe Empregado que descreve o sexo do empregado e associar uma restrição: {Sexo=M ou Sexo=F}.

! Herança Múltipla Conceito pouco usado na prática: Não é suportado por todas as linguagens de programação Adiciona maior complexidade ao modelo Veículo terrestre Veículo Veículo aquático Erros comuns! Usar classes ou associações para representar consultas ou operações do sistema que não devem ser registradas! Exemplo 1 Usuário consulta Acervo Veículo anfíbio Erros Comuns! Usar classes ou associações para representar consultas ou operações do sistema que não devem ser registradas;! As associações devem refletir características permanentes entre classes, e não situações temporárias.! Exemplo 2 Erros Comuns! Identificar métodos nas classes sem ter feito a modelagem temporal Usuário faz Consulta O que é sintonizar? -Quem usa? -Quais os parâmetros?

Erros Comuns! Inserir atributos quando o ideal é criar uma classe Canal Refere-se a EstiloMusical Erros Comuns! Usar herança quando a quantidade de tipos é grande ou dinâmica EstiloMusical EstiloMusical Nome: string Pagode Rock Axé Erros Comuns! Inserir chaves-estrangeiras no diagrama de classes! As associações são suficientes Chave primária? Usar OID! codfunc coddepto trabalha Chave estrangeira? Redundante! Depto coddepto... Dicas! Não comece a projetar diretamente o diagrama de classes. Primeiro entenda o problema;! Tente manter sempre simples o modelo de objetos. Evite complicações desnecessárias;! Escolha os s cuidadosamente. Uma heurística simples é que se você não consegue escolher um bom, isto indica uma classe mal projetada;

Dicas! Não é necessário utilizar todos os conceitos da.! Evite árvores de herança muito profundas, pois elas aumentam a probabilidade de cometer erros e tornam as classes profundas mais complexas. Dicas! Tente evitar associações ternárias. A maioria delas pode ser decomposta em associações binárias usando-se atributos de ligação. Projeto Linguagem Vôo data Passageiro Poltrona! Exercício! Modelar a biblioteca do CCEN que permite alunos, professores e funcionários da UFPA emprestarem e fazerem reserva de livros.! Na primeira iteração, considere somente as classes;! Na segunda iteração, considere também os atributos das classes;! Exercícios:! Preparar um diagrama de classes mostrando relacionamentos entre as seguintes classes de objetos. Incluir associações, agregações e generalizações. Acrescentar também atributos.! Hotel, hóspede, funcionário, lavanderia, sauna, boate, restaurante, bar, piscina, reserva.! Escola, playground, diretor, conselho escolar, sala de aula, livro, aluno, professor, sala de repouso, computador, carteira, cadeira, porta, biblioteca.

! Exercício! Usar classes e associações para definir o glossário do sistema Jogo de Futebol descrito de seguida: O jogo de futebol é realizado por duas equipes de jogadores. Cada equipe é composta por 11 jogadores, com diferentes funções: o goleiro, zagueiros, médios, atacantes, e pontas de lança. O ponta de lança é um atacante especial por ter especiais características de goleador... O jogo é realizado num campo com medidas regulamentares (em comprimento e largura), tem duas balizas, cada qual em extremos opostos do campo. Ganha o jogo a equipe que marcar mais gols (i.e., colocar a bola) na baliza do adversário. No jogo apenas existe uma única bola, que apresenta características (peso, diâmetro, ) regulamentares... O jogo de futebol é mediado por uma equipe de 3 árbitros, em que um é o árbitro principal, e os outros dois são árbitros auxiliares. Cliente ContaBancária dataabertura HistóricoTransações saldo ContaCorrente limitesaque debitar(quantia) creditar(quantia) ContaPoupança dataaniversário rendimento! Padrão Evento Lembrado [Coad 1992]:! Todo evento que precisa ser registrado e lembrado pelo sistema pode ser considerado um potencial candidato a classe.! Idéia: Existe algum instante ou evento histórico que precisa ser observado e armazenado pelo sistema?! Em um sistema de registros de carros tem que lembrar quando alguém comprou o carro;! Lembrar quando alguém reservou/alugou uma fita;! Matrícula de um aluno; e! Pagamento de documentos, etc.

! Restrições! Restrição {ou} implica na seleção exclusiva entre duas ou mais associações existentes em uma classe Conta corrente 0.. 0.. {ou} cliente 0..1 Indivíduo cliente Organização 0..1! Restrição! Observação: possível mapeamento para uso de restrição {ou} com multiplicidade máxima 1. Conta corrente 0.. cliente Indivíduo 0..1 Cliente Organização! Restrições! Restrições 0..1 chefe Companhia de Seguros 1 0.. Contrato de Seguro 0.. 0.. {ou} 1.. Indivíduo 1 Empresa empregador empregado {.empregador =.chefe.empregador } 1.. Empresa 0.. Membro-de {subconjunto} Presidente-de 0.. 0.. Comitê

! Restrições 1.. Empregado salário {Empregado.salário < Empregado.chefe.salário} Janela Janela comprimento largura {0,8<=comprimento/largura<=1,5} 1 chefe {ordenado} Visível em Tela Cargo prioridade {prioridade nunca cresce}! Restrições 0..1 casamento {pessoa.sexo=feminino} esposa Nome Endereço: { Logradouro; Bairro; Cidade. } Sexo Data Regime 0..1 marido {pessoa.sexo=masculino}! Restrições! Exemplos! Restrições mora {subconjunto} síndico Condomínio Conta Bancária saldo dataabertura criar() bloquear() desbloquear() creditar() debitar() {subconjunto} titular 1.. correntista Nome: Str Endereço: { Logradouro: Str, Bairro: Str, Cidade: Str. } Telefones: Array of Int

! Atributo derivado Atributo derivado {idade = data_atual data_nascimento} Atributo derivado {lucro = valor_venda valor_compra}! Complementar o modelo de controle acadêmico.! Acrescentar o monitor (aluno): o aluno pode exercer o papel de monitor durante um período! Permitir que uma pessoa exerça simultaneamente o papel de Professor e Aluno da Universidade Discussão! Monitor, Professor, Aluno: herança Professor Aluno Monitor

Discussão! Monitor, Professor, Aluno: herança! Problemas! Acomodação inábil de objetos que mudam de classes! Transmutação ou Metamorfose Professor Aluno Discussão! Monitor, Professor, Aluno: herança! Solução 0. criação! Combinar herança e associação cpf datanascimento exerce Professor Papel {abstrata} Aluno Monitor matrícula matrícula Monitor 4. Início: 01/01/próximo ano 1. Início: 01/02 3. Fim: 31/12 2. Início: 01/11 Fim: 31/12 Transmutação Perguntas?! Exercício! Em uma IFES, o plano de carreira para professores é dividido em quatro etapas:! Auxiliar, Assistente, Adjunto e Titular! Construa um modelo de classes que preserve o histórico de um professor durante a sua vida profissional! Em particular, é importante manter o registro do início e término do desempenho em uma das etapas