Introdução ao Paradigma de Orientação a Objetos

Slides:



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

Introdução a Orientação a Objetos
Análise e Projeto Orientado a Objetos
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Princípios da Orientação a Objetos e a Linguagem UML
Engenharia de Software
Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002.
UML Modelando um sistema.
UML – Visões Parte 1 Modelando um sistema.
Engenharia de Software
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Análise Orientada a Objetos
Modelagem Orientada a Objetos
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
Projeto Arquitetural de Software Orientado a Aspectos
O Paradigma de Orientação a Objetos
Professora: Aline Vasconcelos
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
Análise e Projetos de Sistemas
Tecnologia da Informação Orientação a Aspectos
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
Princípios de Orientação à Objetos
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
Arquitetura Orientado a Serviços
Conceitos.
. 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.
Análise e Projeto de Sistemas
Métodos de Construção de Software: Orientação a Objetos
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Tipos Abstratos de Dados
Orientação a Objetos Parte I
Marcio de Carvalho Victorino
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
SISTEMAS DISTRIBUIDOS Aula 4
Objetivos Apresentar de forma breve a Metodologia de Modelagem Orientada a Objetos (OMT). A partir de um modelo de objetos de um sistema de informação.
Banco de Dados Aplicado ao Desenvolvimento de Software
PROGRAMAÇÃO ORIENTADA A OBJETOS
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.
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Introdução a Banco de Dados Aula 04
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
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Orientação a Objetos com UML
Análise e Projeto de Software
Introdução a Orientação a Objetos
Engenharia de Software Orientada a Objetos
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Engenharia de Software Orientada a Objetos
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Professora: Kelly de Paula Cunha
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Análise do Sistema Alexandre Mota
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.
Análise Orientada a Objetos Por Patrícia Braga Centro Universitário Jorge Amado.
Transcrição da apresentação:

Introdução ao Paradigma de Orientação a Objetos Prof. Leandro Buss Becker mailto:lbecker@inf.pucrs.br

'Crise do Software' prazos ultrapassados custos acima dos previstos não atendimento dos requisitos dos clientes elevado custo de manutenção

Complexidade complexidade racionalização (metodologias) engineering fonte: AEG-Alemanha (1993) hardware 1993 1982

Dados Interessantes: custos hardware vs. software (fonte: SEL-ALCATEL) 1970 = 8:2 1991 = 2:8 hoje = 1:9 custos com manutenção de software HP-Alemanha (50% engenheiros envolvidos em manutenção) VW (80%)

"Metodologia de Projeto" Codificação

"Metodologia de Projeto" Codificação Oração

Como domar esta complexidade ? encapsular informação ('information hiding') decomposição hierarquia (níveis de abstração) múltiplas visões

Modularidade Propriedade de construção de sistemas através de módulos A coesão de um módulo denota a média da inter-relação entre os seus componentes O acoplamento entre os módulos é o grau de interdependência entre eles Ideal: Alta coesão e Baixo acoplamento

Modularidade

Modularidade Arquitetura de um sistema de controle fabril Controle Interface Gráfica Sensores Máquinas Classe Máquina ... Classe Cortadora Classe Perfuratriz Classe Prensa

Encapsulamento Técnica que consiste em separar aspectos de uso dos aspectos de implementação É igualmente chamado de Ocultamento de Informação ("Information Hide") Um componente de software ("objeto") possui uma interface visível e uma parte interna invisível. O compilador se encarrega de verificar a validade de uso dos componentes de um objeto (através de regras de escopo)

Encapsulamento

Encapsulamento Implementação de uma fila Visão do cliente Estado Interno Vetor de tamanho Fixo Estático ou Vetor de tamanho Fixo Alocado dinâmicamente ou Lista de Elementos ou Abordagens Mista FILA insere remove

Hierarquia Mecanismo utilizado para manipular sistemas complexos As tres formas mais importantes de Hierarquia são: Classificação e Instanciação Generalização e Especialização Agregação e Decomposição

Hierarquia: Classificação e Instanciação Classificar significa agrupar objetos com base em estruturas e comportamentos semelhantes. Instanciar objetos significa gerar novos exemplares a partir de uma descrição abstrata de um objeto genérico Os alunos são exemplares da classe Aluno, que por sua vez é utilizada para gerar novos alunos. Aluno Classificação Instanciação Alunos Alunos Alunos Alunos Alunos Alunos

Classificação

Hierarquia: Generalização e Especialização Generalizar significa remover restrições para obter abstrações mais genéricas Especializar significa buscar características que diferenciem abstrações afins Estrutura de dados Generalização Especialização Fila Matriz

Hierarquia: Agregação e Decomposição Agregar significa combinar abstrações para obter estruturas e comportamentos mais complexos Decompor significa detalhar uma abstração dividindo-a nos seus elementos constituintes Linha de Montagem Agregação Decomposição Esteira Cortadora Perfuratriz

Abstração Abstrair é concentrar-se no que é realmente relevante e ignorar detalhes Observar as coisas por suas características mais gerais e deixar de lado particularidades

Abstração

Conceitos Básicos: Objeto encapsula dados (atributos) e funções (membros) => um objeto é uma abstração de dados e uma abstração de operações em uma mesma estrutura possui uma interface de acesso bem definida (atributos e métodos internos são invisíveis ao meio externo “information hidding principle”) um objeto possui estado, comportamento e identidade

Objetos

Objeto Estado de um objeto: conjunto de valores associados às propriedades do objeto. Tais propriedades representam características, atributos ou qualidades associadas à entidade representada pelo objeto O Comportamento de um Objeto descreve como se processam as mudanças de seu estado em função de sua interação com o mundo externo. Tais mudanças são efetuadas através de operações realizadas pelo objeto

Exemplo de Objeto: Empregado Um empregado de uma firma pode ser representado por um objeto. Todo empregado tem um nome, carteira de identidade, CIC, endereco, seção na qual trabalha, salário, etc. Pode-se alterar o salário de um empregado, imprimir seu endereço, etc.

Objetos Abstratos: Lista Dentro de um programa, uma lista pode ser representada como um objeto. O número de elementos é uma informação sobre o estado atual da lista. Elementos podem ser inseridos e removidos.

Objetos 'Industriais' em especial, componentes de sistemas de automação podem ser facilmente modelados com objetos: sensores, tanques, máquinas, etc. ex: uma fresa em uma linha de produção pode ser modelada como um objeto. Cada fresa tem sua especificação, rotação nominal, tensão, etc. Controla-se a fresa através de comandos para mudar a posição, ligar/desligar, abaixar/levantar, etc..

Conceitos Básicos: Classes Classe: objeto visto como um tipo abstrato, do qual pode-se gerar diversas cópias. Uma classe define, em um único local, propriedades comuns a todos as instâncias desta classe. Instância: a partir de uma classe pode-se gerar diversas instâncias (objetos)

Classes

Classes e Objetos Mundo Real veículo classe instâncias Marca Placa Ferrari IDN8810 veículo Marca Placa classe instâncias ler_placa Fiat Uno IAS3333

Objetos e Classes O estado de um objeto é representado pelo conjunto de valores associados às suas características esses valores são armazenados nas variáveis de instância do objeto. Tais variáveis são definidas na classe que gera o objeto

Objetos e Classes Uma classe define o comportamento de suas instâncias Este comportamento é o conjunto de operações que podem ser realizadas pelos objetos

Classes X Instâncias X Objetos Objetos são gerados a partir de classes Uma classe define as propriedades e o comportamento dos objetos gerados por ela Todo objeto é uma instância de uma classe

Exemplo Objetos Funcionário Pedro Silva, CI 2819283399, Rua Silva Só, 88 - Porto Alegre salário R$ 1000,00 Funcionária Marta Andrade, CI 1234567891, Rua Siqueira Campos, 29 - Carazinho salário R$ 600,00 Classe Funcionário Nome, CI, Endereco, Salário

Leitura Recomendada BECKER, L.B.; PEREIRA, C.E. SIMOO-RT - An Object-oriented Framework for the development of real-time industrial automation systems. Ieee Transactions On Robots Automation, v. 18, n. 4, p. 421-430, 2002. KIM, Kane. APIs for real-time distributed object programming. IEEE Computer (special issue on OO RT Distributed Computing), p. 72-80, June 2000.

Referências Bibliográficas Rumbaugh, J. et al. “Modelagem e Projetos Baseados em Objetos“. Ed. Campus, 1994.