Modelagem Orientada a Objetos

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Análise e Projeto Orientado a Objetos
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Princípios da Orientação a Objetos e a Linguagem UML
Alcides Calsavara Orientação a Objetos Alcides Calsavara
Desenvolvimento de Sistemas Baseado na Transformação de Modelos
O Modelo E-R Definição: Características
Diagrama de Classes.
Capítulo 2 Paradigmas da Orientação a Objetos
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Análise Orientada a Objetos
1 Orientação a Objetos: Herança Alcides Calsavara.
Orientação a Objetos: Encapsulamento e Classificação
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
Mapeamento Objeto Relacional
Iniciação ao Java – Márcio F. Campos
Análise Orientada a Objetos
Template Method Intenção: definir o esqueleto de um algoritmo em uma operação, postergando (delegando) a definição de alguns passos desse algoritmo para.
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Alexandre Parra Site: Os Pilares da OO em Java Alexandre Parra Site:
Diagrama de Classes.
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
Linguagem de Programação II
Linguagem de Programação II
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Programação Orientada a Objetos
Herança e Polimorfismo
Classes e objetos P. O. O. Prof. Grace.
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
O.O.H.D.M. Modelagem Conceitual
TÉCNICAS DE PROGRAMAÇÃO II
Diagrama de Classes e Diagrama de Objetos
Herança em C#.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Herança em Java.
Programação Orientada à Objetos
Princípios de Análise e Projeto Orientados a Objetos com UML
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
Modelagem Orientada a Objeto - UML
UML Diagrama de classes.
Herança em POO Importante:
SISTEMAS DISTRIBUIDOS Aula 4
© Ricardo Pereira e Silva
Aula prática 14 Orientação a Objetos – C++ Parte 2
Projeto Orientado aos Objetos Prof. Wolley W. Silva
Análise Orientado aos Objetos Prof. Wolley W. Silva
Programação Orientada à Objetos
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem.
Generalização e herança Agregação e composição
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Classes Abstratas e Interfaces GX – Aula05 1.
Bruno Inojosa MCP .NET Framework
Introdução a Orientação a Objetos
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
Relacionamentos UML e Polimorfismo
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Diagrama de Classes Herança Dependências.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Transcrição da apresentação:

Modelagem Orientada a Objetos Conceitos Fundamentais

Conteúdo Objeto Identidade Encapsulamento Classificação/Instanciação Generalização/Especialização Herança simples e múltipla Polimorfismo Sobrecarga de operações

Objeto Um conceito, uma abstração, algo com limites e significados definidos para o problema em questão Um objeto do mundo real Um conjunto de atributos (estado) e métodos (comportamento) Uma instância de uma classe

Identidade Característica peculiar de um objeto que denota a existência em separado do objeto, mesmo que ele tenha os mesmos valores de atributos de outro objeto Uma identificação única de cada objeto

Encapsulamento Técnica de modelagem e implementação que separa os aspectos externos de um objeto dos detalhes internos de implementação do mesmo objeto Os atributos (estado) de objeto só é modificável a partir de seus métodos (interface)

Atributo Propriedade denominada de uma classe, que descreve o valor de um dado contido por cada objeto da classe Todo atributo tem um tipo e, opcionalmente, um valor default inicial Cada instância de uma classe possui todos os atributos definidos pela classe

Método (ou Operação) Função ou transformação que pode ser aplicada aos objetos de uma classe Todo método definido para uma classe pode ser aplicado a qualquer instância daquela classe Um método tem um nome, uma lista de argumentos, um tipo de retorno e uma implementação

Classe Descrição de um grupo de objetos com propriedades semelhantes, comportamento, relacionamentos e semântica comuns Instância: um objeto descrito por uma classe

Generalização Relacionamento entre uma classe e uma ou mais versões refinadas ou especializadas da classe Especialização: relacionamento inverso Superclasse: versão mais abstrata de outra classe, a subclasse Subclasse: versão mais refinada de outra classe, a superclasse

Herança Mecanismo baseado em objetos que permite que as classes compartilhem atributos e operações baseados em um relacionamento, geralmente generalização Uma subclasse herda atributos e métodos da superclasse

Polimorfismo Assume muitas formas A propriedade segundo a qual uma operação (método) pode comportar-se diferentemente em classes diferentes A subclasse redefine a implementação de um método herdado da superclasse Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe

Classes Abstratas e Concretas Classe abstrata: classe que não pode ter instâncias diretas, mas cujos descendentes sim; organizam características comuns a diversas classes; mecanismo para reutilizar código; pode definir operações abstratas (sem um correspondente método) Classe concreta: classe que pode ter instâncias diretas; não pode definir operações abstratas

Sobrecarga para extensão A nova operação é igual à operação herdada, exceto pelo fato de acrescentar alguns detalhes de comportamento, normalmente afetando novos atributos da subclasse.

Sobrecarga para restrição A nova operação restringe o protocolo (assinatura da operação), podendo reduzir os tipos de argumentos. A operação herdada fica fechada (restrita) dentro de cada subclasse específica.

Sobrecarga para otimização O novo método tem o mesmo protocolo externo e apresenta o mesmos resultados A implementação do novo método (algoritmo utilizado) pode ser completamente diferente

Sobrecarga por conveniência Emprego adhoc de herança para reutilizar classes. Uma nova classe é tornada subclasse de uma classe existente e substitui os métodos inconvenientes. Semanticamente errado e conduz a problemas de manutenção; recomenda-se criar uma terceira classe (superclasse das demais)

Herança Múltipla Uma classe possui mais de uma subclasse e herda características de todos os seus ancestrais Maior capacidade de especificação de classes Maior oportunidade de reutilização Perda em simplicidade conceitual e de implementação Surgem classes de junção

Exemplos/Exercícios Componentes de uma interface gráfica: botões, menus, barras, ... Pessoas: aluno, professor, secretária, reitor Veículos: bicicleta, veleiro, carro, caminhão, avião, planador, motocicleta, cavalo Habitações: tenda, caverna, barraco, garagem, celeiro, casa, arranha-céu