Relações entre Classes e Persistência

Tamanho: px
Começar a partir da página:

Download "Relações entre Classes e Persistência"

Transcrição

1 Relações entre Classes e Persistência Prof. Cesar Augusto Tacla 1 Diagrama de classes Estrutura do sistema (classes) Representação estática da colaboração (relações) Relações associação (mais comum) agregação (um tipo de associação), generalização/especialização dependência 2 1

2 Associação Nome da associação Professor leciona Disciplina Objetos de uma classe se associam a objetos de outra 3 Multiplicidade das relações Repr Significado 1 Exatamente uma 0.. * * Zero ou mais 1.. * Uma ou mais 0..1 Zero ou uma 5..8 Faixa específica (5, 6, 7, or 8) 4..7,9 Combinação (4, 5, 6, 7, or 9) 4 2

3 Multiplicidade: exemplo Professor 1 leciona 1..* Disciplina João Matemática José Física quim Maria História 5 Multiplicidade: exercício Qual a representação em UML para o caso seguinte? Pessoa Carro João FIAT AXY8704 José FUSCA BHY9910 Maria CORCEL ATT

4 Multiplicidade: exemplo Qual a representação em UML para o caso seguinte? Faça um exemplo com instâncias que ilustre a representação. Uma pessoa participa de no máximo 3 projetos, mas pode ser que não participe de nenhum. Um projeto pode ter vários participantes e somente começa a existir quando o primeiro participante é designado. 7 Navegabilidade: unidirecional Não navegável navegável Professor leciona Disciplina 8 4

5 Navegabilidade: bidirecional navegável navegável Professor leciona Disciplina Direção de leitura 9 Navegabilidade: não especificada Não especificada Não especificada Professor leciona Disciplina 10 5

6 Papéis Empresa Trabalha ou emprega? Pessoa Qual a interpretação desejada? Trabalha pessoa trabalha para Empresa ou empresa trabalha (presta um serviço) para Pessoa; Emprega (contrata) empresa emprega Pessoa ou pessoa emprega (contrata) Empresa 11 Papéis Empresa empregador empregado Pessoa Papel de empresa Papel de pessoa Uso de papéis pode suprimir ambigüidades 12 6

7 Associações reflexiva Objetos de uma classe se relacionam com objetos da mesma classe 13 Associação reflexiva: exemplo 1 Pessoa filho 0..* pai 0..1 Filho(a) Pessoas Mário José Maria Carlos Mário é pai de Maria pai Quem é o pai de Mário? 14 7

8 Associação reflexiva: exemplo 2 Empregado 0..* subordinado gerente 1 subordinado João Maria José Mário Gerente João é gerente de Maria e José José é gerente de Mário Quem é gerente de João? 15 Classes Associativas Aluno -nome: String -matricula: int 1..* 1..* Disciplina -nome: String -código: String -cargahoraria: int Inscrição -semestre: int -ano:int -nota:float Quando uma relação associativa possui atributos próprios pode ser transformada em classe. 16 8

9 Classes associativas: características Normalmente em relações de multiplicidade *:* Não é nomeada: somente a classe associativa Classes associativas podem estar relacionadas a outras classes. 17 Exercício 1 Em relação aos relacionamentos abaixo responda: 1. Qual a representação mais correta a primeira ou a segunda relação? Por quê? 2. O que é preciso mudar na segunda relação para representar que uma casa possui diversos proprietários ao longo do tempo? class Casa Casa é propriedade Pessoa 0..* 1 Casa +propriedade +proprietário Pessoa 1..* 0..* Apostila UML, pg. 63, 18 n. 1 9

10 Exercício 2 Qual a diferença de interpretação entre as duas representações? Qual seria mais indicada para um tribunal regional eleitoral (identidade do eleitor não deve ser conhecida)? class eleições eleitor 0..* eleitor 0..* vota > Pessoa vota > Pessoa candidatopresidente 0..1 candidatopresidente 0..1 Apostila UML, pg. 63, n Exercício 4: classes associativas Modele num diagrama de classes: Uma companhia aérea oferece vôos Número do vôo Data e horário de partida Duração Passageiros tem programa de fidelidade Número do cartão de fidelidade Nome Sobrenome Passageiros recebem milhas por vôo em função da sua duração 20 10

11 Solução exercício Vôo -num: int -data: Date -duração: int 0..* 0..* Passageiro -nome: String -sobrenome: String -numcartao: int CréditoMilha quantidade: int 21 Levantamento das associações Examinar Regras do negócio, Modelo do domínio Requisitos funcionais Casos de uso Diagramas de interação 22 11

12 Levantamento de associações Exemplo: regras do negócio de uma biblioteca um aluno pode emprestar no máximo quatro obras Aluno 0..1 Empresta 0..4 Livro 23 Levantamento das associações sd análise casos de uso :meteorologista :IUConv ersao :CtrlConv ersao :Historico :Conv ersaocf solicitar valor Celsius valor Celsius? c c converter valor c guardar conversao mostrar valor convertido valor Fahrenheit valor Fahrenheit 24 12

13 Implementação de associações unidirecional 1:1 Professor 1 Leciona 1 Disciplina class Professor { private Disciplina disc = new Disciplina( FP2 ); // disciplina pode ser instanciado em outro local // outros atributos // métodos } E se fosse bidirecional? 25 Implementação bidirecional 1:1 1. class Professor { 2. private Disciplina disc; 3. public associar (Disciplina disc) { 4. this.disc = disc; 5. } 6. // métodos 7. } 8. class Disciplina { 9. private Professor prof; 10. public associar (Professor prof) { 11. this.prof = prof; 12. } 13. // métodos 14. } 26 13

14 Unidirecional 0..1 : 0..5 class Professor Professor leciona Disciplina Unidirecional 0..1 : 0..5 Implementação 1 1.class Professor { 2. private Disciplina[] disciplinas = { 3. new Disciplina(), 4. new Disciplina(), 5. new Disciplina(), 6. new Disciplina(), 7. New Disciplina(), 8. }; 9.} A instanciação pode ocorrer em outros pontos da classe class Professor Professor leciona Disciplina

15 Unidirecional 0..1 : 0..5 Implementação 2 1.class Professor { 2. private Disciplina[] disciplinas; public void associar(disciplina[] disc) { if (disc.length > 5) 7. return; 8. disciplinas = disc; 9. } 10.} class Professor Professor 0..1 leciona 0..5 Disciplina 29 Multiplicidade 1:* class classes Professor Disciplina 1 * 1.class Professor { 2. private Vector<Disciplina> disciplinas = 3. new Vector<Disciplina>(5, 3); 4. public void adicionardisciplinas(disciplina[] disc){ 5. for (int i=0; i < disc.length; i++) 6. disciplinas.add(disc[i]); } 9.} 30 15

16 Bidirecional multiplicidade *:* class muitos para muitos Projeto +emprega +participa Pessoa 0..* 0..* 1.public class Projeto { 2. public Vector<Pessoa> emprega; } 5.public class Pessoa { 6. public Vector<Projeto> participa; } 31 Associações reflexivas class associação reflexiv a Professor +temcomoprereq +temprerequisito 0..* Disciplina +ehprereqde +prerequisito 0..* 1 * 1.public class Disciplina { 2. public Vector<Disciplina> temcomoprereq; 3. public Vector<Disciplina> ehprereqde; } 32 16

17 Exercício Implementar as relações da transparência anterior de acordo com a grade do curso Disciplina Professor Tem pré-requisitos é pré-requisito de FP2 APOO ED FÍSICA TACLA FP1 APOO ED Solução JAssociaoReflexPrePosRequisitos 33 Classes Associativas Diagrama de classes na atividade de Análise class classe associativa Projeto +emprega +participa Pessoa 0..* 0..* Participacao - cargahoraria: int - dataentrada: Date - datasaida: Date Equivale à

18 Classes Associativas (2) Diagrama de classes na atividade de Projeto class classe associativa (proj) Projeto 1 possui Participacao participa - cargahoraria: int 0..* - dataentrada: Date 0..* 1 - datasaida: Date Pessoa Implementação >>>> 35 Classes Associativas (3) 1.public class Projeto { 2.public Vector<Participacao> m_participacao; } 5.public class Pessoa { 6. public Vector<Participacao> m_participacao; } 9.public class Participacao { 10. private int cargahoraria; 11. private Date dataentrada; 12. private Date datasaida; 13. public Projeto projeto;// se relação for bidirecional 14. Public Pessoa pessoa; // se relação for bidirecional } 36 18

19 AGREGAÇÃO Composição/pertinência associação Parte Todo Propagação class Classe Janela Exercício: desenhe uma instância possível da classe janela Botão ComboBox ScrollBar 37 Agregação: adornos class Classe Time Jogador * * Qual a interpretação? 38 19

20 Tipos de agregação class Classe Composição Janela Botão ComboBox ScrollBar Associação class Classe Time Jogador * * 39 Agregação por composição Relação forte Destruição do todo se propaga para as partes Tempo de vida do todo = das partes 40 20

21 Exemplo: agregação por composição Linha 1 2 Ponto class Linha { public String id; private Ponto pt1 = new Ponto(10, 20); private Ponto pt2 = new Ponto(15, 30); class Ponto { } } 41 Agregação por associação Relação mais fraca que anterior Tempos de vida diferentes 42 21

22 Agregação: diferença 43 Levantamento de agregações Decomposição dividir classe complexa Composição Coleção de objetos reunidos barra de rolagem + menu + text area = janela Partes comuns classes com subconjunto de atributos semelhantes 44 22

23 Exercício 1 Qual a diferença de interpretação entre os relacionamentos livro-sobrecapa e livro-páginas? Apostila UML, pg. 64, n Exercício 2 Todo aluno matriculado em trabalho de diplomação será orientado por um professor. Alguns professores orientam vários alunos e outros, nenhum. Qual dos diagramas melhor representa esta relação? Apostila UML, pg. 64, n

24 Agregação por composição class agregação por composição HistoricoPagsWeb URLVisitada 1 0..* - URL: String Implementação >>> 47 Agregação por composição (2) 1.class URLVisitada { 2. private String url; URLVisitada (String url) { 5. this.url = url; 6. } 7.} 8.class Historico { 9. // cria três objetos da classe URLVisitada 10. private URLVisitada[] historico = { // ou coleção 11. new URLVisitada(" 12. new URLVisitada(" 13. new URLVisitada(" 14. }; } Implementação >>> 48 24

25 Agregação por composição (3) 1.class Historico { 2. private class URLVisitada { 3. private String url; 4. private Date data; 5. private int freq; 6. URLVisitada (String umaurl) { 7. url = umaurl; 8. } } 11. private Vector<URLVisitada> historico = 12. new Vector<URLVisitada>(4, 2); } Classe aninhada como private, a URLVisitada só pode ser instanciada dentro do escopo do todo 49 Agregação por associação Idêntica à implementação de associação 50 25

26 GENERALIZAÇÃO Classes compartilham atributos e comportamentos Relação de generalização É um tipo de Herda atributos e métodos 51 GENERALIZAÇÃO Sobreposição do método calcularipva 52 26

27 Taxonomia: hierarquia de classes Atributos e operações comuns Atributos e operações específicas 53 Qualidade de uma hierarquia Estável: critérios de classificação não mudam ao longo do tempo. Extensível: é fácil incluir novas classes derivadas na hierarquia Dica: respeitar o princípio da substituição 54 27

28 Princípio da substituição Qualquer instância de uma classe derivada pode ser tratada como se fosse uma instância de uma classe base sem alterar a semântica de um programa escrito para a classe base. 55 Exemplo Círculo e polígonos podem ser tratados como FormaGeométrica 56 28

29 Exemplo: taxonomia mal feita Livro LivroEmprestado LivroDisponível Não construir hierarquias em função de estados das classes 57 Herança múltipla ObjetoVoador Animal Avião Helicóptero Pássaro 58 29

30 Dependência Variável local Parâmetro de operação (método) Instanciação Atributos indicam associação 59 Dependência: exemplos class Dependência ClasseA ClasseB + operacao(classec) : void «local» «parameter» «instantiate» ClasseC ClasseD 60 30

31 Exercício Desenhe o diagrama de classes para as relações das classes marcadas em vermelho public class Aluno { public Curso curso; public int CEP; } public void setcep(endereco end) { CEP = end.cep; } public int calcularidade() { // retorna idade em meses Date d = getcurrentdate();... } 61 Exercício (solução) Multiplicidade no lado aluno não foi colocada pois não temos informação indefinida - Aluno matriculado 1 Curso <<local>> <<parâmetro>> Date Endereço 62 31

32 Realização «interface» Serializable e» 1.public interface Serializable { } 1 4.public class Histórico implements Serializable { } «entity» Historico + adicionar(conversaocf) : void - writeobject() : void 63 Exercício (enunciado) Programa cliente para envio de s O programa deve permitir ao usuário: 1. enviar s a um ou mais destinatários selecionados de uma agenda composta por contatos no formato (nome, endereço ). A agenda pode ser definida no próprio código, mas deve ser mostrada para que o usuário possa selecionar os destinatários. 2. consultar todos os s enviados a um determinado destinatário. Ao clicar em uma entrada da agenda, o programa deve mostrar todos os s enviados ao destinatário selecionado sem ter que percorrer toda a lista de s enviados. Detalhes Um é composto pelos três campos a seguir: remetente, destinatários, assunto e corpo

33 Exercício (cont.) Para enviar s Utilizar a API JavaMail (há várias implementações desta API) Uma delas (e suas diferentes versões) são encontradas em Baixar o.zip Extrair o mail.jar Colocar na pasta de projeto No NetBeans, importar biblioteca alternativa ao JavaMail JAVARepositorio\JMailClient: solução que envia . Tem um frame, mas ainda não funciona. 65 Exercício (tarefas) Tarefa 1 No enunciado dado, marque todos os substantivos candidatos a classes (entregar o texto marcado) Refletir sobre quais classes são necessárias e como elas conversam para que o programa realize sua função. Construir um diagrama de classes em um editor qualquer de UML. Não esquecer dos relacionamentos, multiplicidade e nome nas associações 66 33

34 Exercício (instruções) Instruções gerais: Pode ser feito em <x> Valor <v> Data de entrega/apresentação: <dd/mm> Apresentar Enunciado com os substantivos candidatos a classes marcados (impresso) diagrama de classes preliminar (impresso) diagrama de classes final (impresso) código fonte e funcionamento (em sala) 67 Exercício (exemplo de envio) Ao enviar , o usuário seleciona os destinatários da agenda Agenda João Maria José [email protected] [email protected] [email protected] De: Destinatários: Assunto: nonono nono nono on João e José, Favor comparecer com urgência na sala B109. []s Tereza 68 34

35 Exercício (exemplo de consulta) Supor que o João foi selecionado na agenda. O programa mostra todos os s que lhe foram enviados (pode haver outros destinatários). Agenda João Maria José [email protected] [email protected] [email protected] s enviados ao João Destinatários data assunto João, José 14/4/2007 nono non onon ono João, Maria 14/4/2007 bla blalba 69 PERSISTÊNCIA Consiste em salvar os objetos de uma sessão para tê-los disponíveis nas sessões seguintes de uso do programa

36 FORMAS E PERSISTÊNCIA Banco de dados: relacional ou objetos Arquivo: vários formatos (txt); aqui nos interessa a forma serializable que permite salvar um objeto tal qual ele está na memória. 71 SERIALIZABLE Exemplo em JAVARepositorio\SerializableExemplo Observar Que os métodos writeobject e readobject são opcionais. É interessante utilizá-los quando quer-se modificar algo no objeto no momento da escrita ou da leitura (fugir dos defaults) Que é possível salvar mais de um objeto no mesmo arquivo

37 Exercício cliente (cont.) Tarefa 2 Implementar e testar o programa Persistir a agenda e as mensagens 73 37

Diagrama de Classes (Análise de casos de uso)

Diagrama de Classes (Análise de casos de uso) Diagrama de Classes (Análise de casos de uso) Prof. Cesar Augusto Tacla Diagrama de classes Estrutura do sistema (classes) Representação estática da colaboração (relações) Relações associação (mais comum)

Leia mais

Diagrama de Classes (Análise de casos de uso) Prof. Cesar Augusto Tacla

Diagrama de Classes (Análise de casos de uso) Prof. Cesar Augusto Tacla Diagrama de Classes (Análise de casos de uso) Prof. Cesar Augusto Tacla Diagrama de classes Estrutura do sistema (classes) Representação estática da colaboração (relações) Relações associação (mais comum)

Leia mais

ESTUDO DE CASO: CONVERSOR CELSIUS-FAHRENHEIT

ESTUDO DE CASO: CONVERSOR CELSIUS-FAHRENHEIT PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ESTUDO DE CASO: CONVERSOR CELSIUS-FAHRENHEIT Cesar Augusto Tacla Departamento Acadêmico de Informática http://www.dainf.cefetpr.br/~tacla O uso e reprodução

Leia mais

Diagrama de Classes de Projeto

Diagrama de Classes de Projeto Plano Diagrama de Classes de Prof. Cesar Augusto Tala Posição no método APOO Diagrama de seqüênia (refinamento) Diagrama de lasse (refinamento) Visão geral do método Posição da atividade Análise de requisitos

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/poo

Leia mais

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos [email protected] Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.

Leia mais

PROGRAMAÇÃO ORIENTADA A

PROGRAMAÇÃO ORIENTADA A PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, MS M.Sc. [email protected] ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes O diagrama de classe é a essência de qualquer modelagem orientada a objeto. Ele tem por objetivo descrever, segundo uma visão estática, o escopo

Leia mais

Programação Orientada a Objetos Relacionamentos entre classes

Programação Orientada a Objetos Relacionamentos entre classes Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO

Leia mais

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42 Diagrama de Classes Régis Patrick Silva Simão Régis Simão Diagrama de Classes 1/42 Agenda Introdução Objetos Classes Atributos Operações & Métodos Relacionamentos Relacionamento: Associação Nome de Relacionamento

Leia mais

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer BANCO DE DADOS I Prof. Luiz Antônio Vivacqua C. Meyer Projeto de Banco de Dados Etapas do Desenvolvimento de um Projeto de Sistemas: 1. Levantamento de Requisitos a. Requisitos Funcionais b. Requisitos

Leia mais

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

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago Diagramas de Classes Conceitos Básicos O caso de uso fornece uma perspectiva do sistema de um ponto de vista externo (do ator) Internamente os objetos colaboram para atender às funcionalidades do sistema

Leia mais

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição Diagrama de Classes Diagrama de Classes Classes Atributos Métodos Relacionamentos Associação Agregação Composição Generalização Dependência Realização Sobre Classes São o elemento mais importante de qualquer

Leia mais

Linguagem de Modelagem Unificada UML

Linguagem de Modelagem Unificada UML Linguagem de Modelagem Unificada UML Parte 1 Rosemary Silveira Filgueiras Melo [email protected] 1 Tópicos abordados Paradigma Orientado a Objetos Linguagem UML e seus principais diagramas Diagramas

Leia mais

MODELAGEM DE SISTEMAS Unidade 4 Modelo de Classes de Projeto. Luiz Leão

MODELAGEM DE SISTEMAS Unidade 4 Modelo de Classes de Projeto. Luiz Leão Unidade 4 Modelo de Classes de Projeto Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático Definição da Visibilidade entre Objetos Adição de Operações às Classes de Projeto Adição

Leia mais

Modelagem Orientada a Objeto

Modelagem Orientada a Objeto UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Modelagem Orientada a Objeto Engenharia de Software 2o. Semestre de

Leia mais

Requisitos de sistemas

Requisitos de sistemas Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento

Leia mais

12/03/16. Generalização. Associação. Agregação UML Relações. entre Classes. Composição. Prof.Dr. Enzo Seraphim. Dependência

12/03/16. Generalização. Associação. Agregação UML Relações. entre Classes. Composição. Prof.Dr. Enzo Seraphim. Dependência 12/03/16 Generalização Associação Agregação UML Relações Composição entre Classes Dependência Prof.Dr. Enzo Seraphim 12/03/16 Generalização Associação Agregação UML Relações Composição entre Classes Dependência

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/poo

Leia mais

Linguagem de Programação. Diagrama de classes

Linguagem de Programação. Diagrama de classes Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um

Leia mais

Análise de Sistemas 4º Bimestre (material 3)

Análise de Sistemas 4º Bimestre (material 3) Análise de Sistemas 4º Bimestre (material 3) Permite a visualização das classes que irão compor o sistema com seus respectivos atributos e métodos, bem como demonstrar como elas se relacionam, complementam

Leia mais

Unified Modeling Language (UML)

Unified Modeling Language (UML) SCC0504 Programação Orientada a Objetos Unified Modeling Language (UML) Luiz Eduardo Virgilio da Silva ICMC, USP Material baseado nos slides dos professores: José Fernando Rodrigues Jr (ICMC/USP) 1 Sumário

Leia mais

Relacionamentos entre objetos

Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes [email protected] Objetos

Leia mais

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

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros Modelagem de Classes Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros [email protected] Resumo Introdução Conceitos em Orientação a Objetos Diagrama

Leia mais

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança

Leia mais

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc. Orientação a Objetos Revisão Conceitos CLASSE CLASSIFICAÇÃO GENERALIZAÇÃO ESPECIALIZAÇÃO HERANÇA INTERFACES POLIMORFISMO SOBRECARGA ENCAPSULAMENTO ABSTRAÇÃO MODULARIZAÇÃO 9 CLASSE Classe é um agrupamento

Leia mais

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES. MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES [email protected] Externamente ao sistema, os atores visualizam resultados de cálculos, relatórios produzidos, confirmações de requisições solicitadas,

Leia mais

Seções de aula (Seminários)

Seções de aula (Seminários) Seções de aula (Seminários) É possível criar uma aula com seções no Turnitin, caso seções de uma aula sejam ministradas por outros professores ou por professores assistentes. Uma aula magna de nível máximo

Leia mais

Trabalho Campeonato de Futebol Programação Orientada a Objetos (SCC204) Prof. Moacir Pereira Ponti Junior 26 de abril de 2011

Trabalho Campeonato de Futebol Programação Orientada a Objetos (SCC204) Prof. Moacir Pereira Ponti Junior 26 de abril de 2011 Trabalho Campeonato de Futebol Programação Orientada a Objetos (SCC204) Prof. Moacir Pereira Ponti Junior 26 de abril de 2011 Trabalho Prático - Parte 2 Tarefas O Trabalho 2 envolve o uso de interface

Leia mais

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite Modelo Conceitual Análise e Projeto de Sistemas Avançados Aula 5 Allan Rodrigo Leite Modelo Conceitual Oferece uma visão das informações que são gerenciadas pelo sistema Representação e transformação da

Leia mais

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Modelagem de dados usando o modelo Entidade- Relacionamento (ER) Modelagem de dados usando o modelo Entidade- Relacionamento (ER) slide 1 Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Tópicos Usando modelo de dados conceituais de alto nível

Leia mais

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO Análise e Projeto de Sistemas OO s Representam os tipos de objetos existentes no modelo Descritas a partir de seus atributos, operações e restrições Podem ser organizadas segundo uma estrutura de generalização/especialização

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE Nickerson Fonseca Ferreira [email protected] O que é?? 2 A UML

Leia mais

Projeto Banco de Dados

Projeto Banco de Dados Projeto Banco de Dados Principais Fases do Processo Projeto Conceitual Projeto Lógico Projeto Físico 32 Projeto Banco de Dados Projeto Conceitual Modelagem de dados em alto nível Foco no domínio do problema

Leia mais

ASSOCIAÇÃO ENTRE CLASSES

ASSOCIAÇÃO ENTRE CLASSES Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 5 ASSOCIAÇÃO ENTRE CLASSES O objetivo deste texto é rever, um pouco mais detidamente, o relacionamento

Leia mais

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

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes Aula 15 Modelagem de Classes de Análise Análise de Sistemas Prof. Filipe Arantes Fernandes [email protected] Outline O paradigma da OO Classes e objetos Mensagens O papel da abstração Encapsulamento

Leia mais

Atividade 07 - Tutorial sobre o Astah Community

Atividade 07 - Tutorial sobre o Astah Community Atividade 07 - Tutorial sobre o Astah Community 1. Introdução Astah Community é uma poderosa ferramenta que ajuda você a modelar seus diagramas em UML. Nesse tutorial nós vamos guiar você na criação de

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo PARTE II: Java e OO Interface Herança Herança e polimorfismo Classes e métodos abstratos : muitas formas de implementação de uma operação Permite esconder diferentes implementações atrás da mesma interface

Leia mais

Diagrama de Casos de Uso

Diagrama de Casos de Uso Diagrama de Casos de Uso Régis Patrick Silva Simão Régis Simão Diagrama de Casos de Uso 1/29 Agenda Introdução Casos de Uso Atores Relacionamento entre Atores e Casos de Uso Relacionamento entre Casos

Leia mais

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML. ESPECIALIZAÇÃO EM GESTÃO DE TECNOLOGIAS DA INFORMAÇÃO Análise Orientada a Objetos AULA 03 Análise Orientada a Objetos; O Paradigma de Objetos; A UML. Prof. Sandrerley R. Pires Goiânia, agosto de 2003 Conceitos

Leia mais

UML. Adriano J. Holanda 21/3/

UML. Adriano J. Holanda 21/3/ UML Adriano J. Holanda 21/3/2016 UML Introdução UML - Unified Modeling Language Linguagem Unificada de Modelagem. Adquiriu maturidade na segunda década de 1990 pela fusão dos métodos e diagramas de Grady

Leia mais

Linguagem de Programação II Relacionamento entre classes

Linguagem de Programação II Relacionamento entre classes Linguagem de Programação II Relacionamento entre classes Prof. Alessandro Borges 2 Tópicos Relacionamento entre Classes Associação Definição Cardinalidade / Multiplicidade Conectividade Tipos de Associação

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS I -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO ORIENTADA A OBJETOS I -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS I -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Técnicas de Orientação a Objetos Classes e objetos Métodos Subscritos Métodos Sobrecarregados

Leia mais

DIAGRAMAS DE CLASSE UML

DIAGRAMAS DE CLASSE UML DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar

Leia mais

Panorama da notação UML

Panorama da notação UML Panorama da notação UML A notação UML (Unified Modeling Language linguagem de modelagem unificada) evoluiu desde que foi adotada a primeira vez como um padrão em 1997. Uma revisão maior para o padrão foi

Leia mais

PCS3413 Engenharia de Software e Banco de Dados

PCS3413 Engenharia de Software e Banco de Dados PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1 Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos [email protected] 80 Por que a Orientação a Objetos? As abstrações podem corresponder às "coisas" do domínio do problema, facilitando o entendimento Esta

Leia mais

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula 1 Mostra um conjunto de classes e seus relacionamentos. É o diagrama central da modelagem orientada a objetos.

Leia mais

Análise e Projeto de Sistemas

Análise e Projeto de Sistemas Análise e Projeto de Sistemas Prof. Dr. Ronaldo C. de Oliveira [email protected] www.facom.ufu.br/~ronaldooliveira FACOM - 2017 Objeto É uma entidade real ou abstrata, com características específicas

Leia mais

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Interfaces e Classes Abstratas

Interfaces e Classes Abstratas Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos

Leia mais

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas Herança e Polimorfismo Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Revisando -Herança Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas

Leia mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) g BREVE HISTÓRICO g CARACTERÍSTICAS g CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS g MODELAGEM DE ANÁLISE E DE PROJETO 1 I. BREVE HISTÓRICO Em fins dos anos

Leia mais

Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe de Projeto

Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe de Projeto UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe

Leia mais

Manual do Usuário Webmail SoftSul

Manual do Usuário Webmail SoftSul Manual do Usuário Webmail SoftSul 2 Índice Interface Geral do Webmail 03 Caixa de entrada 04 Opções de apresentação e filtro 05 Os e-mails nos seus estados 06 Marcar um e-mail 07 Acesso a Configurações

Leia mais

UML. Diagrama de Classes

UML. Diagrama de Classes UML Diagrama de Classes Introdução A modelagem de objetos incorpora a estrutura estática de um sistema mostrando: os objetos pertencentes ao sistema os relacionamentos entre esses objetos os atributos

Leia mais

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo DCC / ICEx / UFMG Primeiro Diagrama de Classes Diagrama de Classes Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Professor Aluno matricula Outro Diagrama de Classes Diagrama de Classes Serve de

Leia mais

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para

Leia mais

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Relacionamentos Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Dependência Generalização Associação Realização Relacionamentos - Dependência

Leia mais

Programação Orientada a Objetos Introdução a POO

Programação Orientada a Objetos Introdução a POO Introdução a POO Implementação Técnico em Informática, M.Sc. Objetos 12/04/2012 20:17 Redes de Computadores 2 Domínio e Aplicação Domínio Composto pelas entidades, informações e processos relacionados

Leia mais

UML. Modelando um sistema

UML. Modelando um sistema UML Modelando um sistema Fases do desenvolvimento de Software Análise de requisitos Análise Projeto Programação Análise de Requisitos Esta fase captura as intenções e necessidades dos usuários do sistema

Leia mais

UML. Diagrama de Classe

UML. Diagrama de Classe UML Diagrama de Classe Em UML as classes são representadas por um retângulo dividido em três compartimentos: o compartimento de nome, que conterá apenas o nome da classe modelada, o de atributos, que possuirá

Leia mais

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans Roteiro Introdução Conceitos de Oientação a Objetos A Linguagem Java NetBeans (www.netbeans.org) Fernando Vieira Paulovich [email protected]

Leia mais

Linguagem de Programação IV Introdução

Linguagem de Programação IV Introdução Linguagem de Programação IV Introdução Prof. Alessandro Borges 2 Tópicos Orientação a objetos Classe Objeto Abstração Encapsulamento Herança Polimorfismo Plataforma Java 3 4 POO é um paradigma de programação

Leia mais

Lista Diagrama de Casos de Uso

Lista Diagrama de Casos de Uso Lista Diagrama de Casos de Uso 1. Qual é a notação da UML para um caso de uso? Qual é a notação da UML para um ator? Qual a notação utilizada na UML para o relacionamento de generalização? 2. Defina o

Leia mais

POO29004 Programação Orientada a Objetos

POO29004 Programação Orientada a Objetos POO29004 Programação Orientada a Objetos Herança Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/poo 11 de setembro

Leia mais

Aula 7 Visibilidade entre objetos e Diagramas de Classes

Aula 7 Visibilidade entre objetos e Diagramas de Classes Departamento de Sistemas de Computação Universidade de São Paulo SSC 124 Análise e Projeto Orientados a Objetos Aula 7 Visibilidade entre objetos e Diagramas de Classes Responsável Prof. Seiji Isotani

Leia mais

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,

Leia mais

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira Engenharia de Software Aula 10 Representação dos Conceitos de Orientação a Objetos Prof. Me. Rogério Ferreira 2 Roteiro Representação dos Conceitos OO Mensagens Navegabilidade Pacotes Encapsulamento Herança

Leia mais

DCC004 - Algoritmos e Estruturas de Dados II

DCC004 - Algoritmos e Estruturas de Dados II Conceito de especificação de software Renato Martins Email: [email protected] https://www.dcc.ufmg.br/~renato.martins/courses/dcc004 Material adaptado de PDS2 - Douglas Macharet e Flávio Figueiredo

Leia mais

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como

Leia mais

Java para Desktop. Programação Orientada à Objetos 2 JSE

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

Daniel Wildt

Daniel Wildt Orientação a Objetos 1 Daniel Wildt http://danielwildt.blogspot.com Agenda 2 Orientação a Objetos Classe x Objeto Representação classe Atributos / operações Construtores e Destrutores Liberando memória

Leia mais

Banco de Dados Modelagem Conceitual de Dados. Prof. Edjandir Corrêa Costa

Banco de Dados Modelagem Conceitual de Dados. Prof. Edjandir Corrêa Costa Banco de Dados Modelagem Conceitual de Dados Prof. Edjandir Corrêa Costa [email protected] Introdução Modelagem conceitual de dados É a etapa inicial do projeto de banco de dados É uma descrição

Leia mais

Modelagem de Sistemas

Modelagem de Sistemas Lista de Exercícios AV1 Luiz Leão [email protected] http://www.luizleao.com Questão 1 Que evento influenciou no surgimento da Engenharia de Software e qual a sua finalidade? Questão 1 Resposta Que evento

Leia mais

Diagrama de Classes. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas

Diagrama de Classes. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas Diagrama de Classes ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas [email protected] 1 Diagrama de Classes Tópicos Introdução a Orientação de Objetos Notação do Diagrama de Classes Relacionamentos

Leia mais

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,

Leia mais

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES] DMS - DOCUMENTO DE MODELAGEM DE SISTEMA Este documento foi criado seguindo as recomendações e orientações do livro UML na Prática Do Problema ao Sistema e do modelo PRISM do MPDS (Modelo Prático para Desenvolvimento

Leia mais

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que

Leia mais