Uma perspectiva conceitual sobre a comparação de LPOO´s Bent Bruun Kristenser Kasper Osterbte By Lineu Antonio de Lima Santos.

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto Orientado a Objetos
Advertisements

I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Paulo Marques Hernâni Pedroso
UML – Visões Parte 1 Modelando um sistema.
(Unified Modeling Language)
Diagrama de Classes continuação.
Paradigmas de Programação
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Modelagem Orientada a Objetos
1 Orientação a Objetos: Herança Alcides Calsavara.
Modelagem Orientada a Objetos Relacionamentos. Conteúdo n Ligação entre objetos n Associação entre classes n Agregação n Multiplicidade e Papel n Atributo.
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Linguagens de Modelagem para SMA
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Introdução a diagrama de classes e UML
Análise e Projetos de Sistemas
Diagramas de Classes.
Introdução à Modelagem Conceitual 1. Conceitos Básicos
1 MAC 413/5715 – Seminário Prof. Fabio Kon Self: The Power of Simplicity David Ungar and Randall B. Smith OOPSLA 1987 Cristina Fang Eduardo Miyoshi Kasa.
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
Polimorfismo 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.
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
Conceitos de Linguagem de Programação
Caio Argolo Luiz Daud Jorge Roberto
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Programação Orientada à Objetos
Profa Simone Sawasaki Tanaka
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.
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Classification in Object-Oriented Systems Peter Wegner Carlos Eduardo da Silva César Frederico dos Santos.
Técnicas de Representação de Conhecimento Diversas.
Orientação a Objetos Parte I
Programação Orientada à Objetos
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
UML Diagrama de classes.
SISTEMAS DISTRIBUIDOS Aula 4
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
Interfaces POO Avançado.
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.
Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Jobson Ronan Padrões GoF Jobson Ronan
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
Palavras-Chaves Linguagem gráficas e utilizações de símbolos.
NFR Framework (Non-Functional Requirements)
Relacionamentos UML e Polimorfismo
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Diagrama de Classes Herança Dependências.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Análise e Design de Software Site:
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Uma perspectiva conceitual sobre a comparação de LPOO´s Bent Bruun Kristenser Kasper Osterbte By Lineu Antonio de Lima Santos

Enumerando Características LPOO´s são compreendidas, avaliadas e comparadas a partir de suas características Elas também modelam os processos baseados em LPOO’s Exemplo: OO = Objeto + Classe + Herança

Vantagens e Desvantagens Visão profunda da lingaugem Diferenças são facilmente percebidas Isso só contribui com o entendimento isolado dos vários aspectos de uma LPOO.

Perspectiva Conceitual Visão Global de aspectos de uma LPOO Perspectiva baseada em conceitos Programação conceitual : programar é um processo de modelar de um sistema de referência onde “fenômenos” e abstrações desse sistema são expressados numa LP. Abstrações dessa LP são baseadas no entendimento geral dos fenômenos e conceitos.

Conceito Denominação Extensão : Conjunto de fenômenos cobertos pelo conceito Intenção :Descrição das propriedades dos fenômenos da extensão

Conceito em LPOO’s Classes modelam os conceitos Objetos modelam o fenômeno

Framework Conceitual Relacionamento intenção/extensão Processos de Abstração Aspectos pragmáticos do processo de abstração Tipos de conceitos

Linguagens Utilizadas na Comparação

Características das Linguagens

Características Self Não existem classes, só objetos. Objeto é o protótipo para clonagem. Variáveis e métodos são unificados como Slots Delegação combina herança e instanciação

Características Objective-C Tipo de dado OBJECT Message expression Método é o corpo de uma função em C Noção de Protocolo

Características ADA Pacotes são os mecanismos de abstração que modelam objetos Pacote possui tipos locais, variáveis e procedimentos

Características das Linguagens

Relação Intenção/Extensão de um conceito Determinar se um fenômeno é ou não coberto por um conceito Perspectiva Aristotélica : intensão define a extensão Perspectiva Prototipal : comparação Propriedade mandatária : descrita explicitamente no conceito Propriedade característica : implícita

Relação Intensão/Extensão

Processos de Abstração Quais são e quais suas propriedades? Classificação, Exemplificação, Especialização, Generalização, Agregação e Decomposição

Classificação Vai do fenômeno para o conceito Um objeto é classificado pela classe da qual é instanciado

Exemplificação Vai do conceito para o fenômeno A partir de classes instanciamos objetos A partir de classes podemos “pegar” um objeto

Especialização Cria um conceito especial a partir de um mais geral {extensão conceito especializado} está contida {extensão do conceito geral}

conceito geral X conceito especializado Herança : as propriedades do geral são as mesmas do especializado Modificação : uma prop. é mais elaborada num especializado Adicional : Propriedades aparecem no conceito especializado

Generalização Contrário da Especialização Só é suportada se isso for feito de forma explicita

Agregação Combinar vários conceitos num novo conceito É usualmente suportada por meio de variáveis de instancia

Agregado X Partes Aparição : propriedade é nova em relação às partes Propriedade da parte torna-se propriedade do agregado Cancealed : propriedade de uma das partes não torna-se propriedade do agregado

Decomposição Contrário da Agregação Esse processo só é considerado se for avaliado de forma explicita

Processos de Abstração

Processo de Abstração

Exemplificação suportada por instanciações Uso de valores iniciais : inicialização dos valores de um objeto Inicialização é feita através de parametrização Parametrização de valores é diferente de Generecidade

Agregação : características adicionais Linguagem somente suporta referencia a objetos somente? Referencia a objetos constituintes é suportada? Action Part Constituents

Especialização : características adicionais Linguagem suporta a extensibilidade de todos os tipos de propriedades? Referencia Action Part

Processo de Abstração: características adicionais

Modificação de propriedades Overriding : re-declaração do método Extensão : forçada ou não Combinação : uso de “super” ou “inner”

Propriedades : Características adicionais

Aspectos pragmáticos dos processos de abstração Caracteriza tais processos Time : O tempo de uso do processo(Estático ou Dinâmico) Order : Ordem dos produtos de um processo(Simples, Múltiplo)

Aspectos Pragmáticos Classificação por tempo : quando é feita a amarração objeto-classe Exemplificação simples : somente um fenômeno pode ser criado a partir de um conceito Especialização simples : conceito com uma única especialização

Aspectos Pragmáticos Especialização Múltipla : o mesmo conceito é especializado para vários conceitos Agregação múltipla : o mesmo conceito pode ser usado para formar vários conceitos agregados diferntes

Aspectos Pragmáticos

Classificação Implícita Tipagem estática ou dinâmica Uma referência “r” é dita qualificada pela classe C quando r pode ser associado com objetos de C r também é qualificada para subclasses de C

Referencias(r) e classes(C) Referencias de um tipo : C é usada apenas como uma descrição comum de objetos instanciados Referencia sem qualificação : protocolo não é explicitamente definido por alguma declaração

Especialização Simultânea Suporte para essa abstração através de herança múltipla Duplicação : superclasse comum nas superclasses herdadas Conflitos : mesmo nome herdado de varias superclasses

Aspectos pragmáticos : caracterização adicional

Os tipos de Conceitos Descrevem coisas -> Classes Descrevem ações -> Métodos Ação depende da coisa ou coisa depende da ação?

Tipos de Conceitos

Formas de execução de programas Ação - Combinação : como combinar as ações sequencial quasi-paralela concorrente

O conceito “conceito” Denominação : conceito Intenção : denominação + extensão + intensão Extensão : todos os conceitos Isso garante o suporte do framework ao nível de metaclasse

Tipos de Conceitos : Caracterização adicional

Resultado como diferenças relativas entre as lings em %