Colégio da Imaculada Curso Técnico em Informática

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.
O Modelo E-R Definição: Características
Diagrama de Classes.
Engenharia de Software
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Análise e Projeto de Sistemas
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.
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
O Paradigma de Orientação a Objetos
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Diagrama de Classes.
Linguagem de Programação
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Análise e Projeto de Sistemas
Classes e objetos Modelagem
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
Programação I Caderno de Exercícios Nome.
Princípios de Orientação à Objetos
DIAGRAMA DE CLASSE Modelagem de Software
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Laboratório de Programação I
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Professor: Márcio Amador
Orientação a Objetos Parte I
Programação Orientada à Objetos
Análise e Projeto de Sistemas
Programação Orientada a Objetos - Java
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
SISTEMAS DISTRIBUIDOS Aula 4
Análise Orientado aos Objetos Prof. Wolley W. Silva
Banco de Dados Aplicado ao Desenvolvimento de Software
Programação Orientada à Objetos
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
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.
Laboratório de Programação
Requisitos de Software
Análise e Projeto de Sistemas
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos Professor: Cheli Mendes Costa Introdução a Programação Orientada.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Introdução a Orientação a Objetos
SISTEMAS DE INFORMAÇÃO Alexandre Campos Moretti Versão – Mar/2010.
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
Colégio da Imaculada Curso Técnico em Informática
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
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Interações entre objetos
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.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Análise e Design de Software Site:
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Análise Orientada a Objetos Por Patrícia Braga Centro Universitário Jorge Amado.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br 2º Módulo

O que é Orientação a Objetos? Orientação a Objetos, consiste em considerar tudo como sendo objeto. É um mundo onde qualquer “coisa” pode ser considerada um objeto. Provém do conceito de um novo Paradigma.

Exemplo real de OO Montagem de um computador: Composto por vários componentes: Paca mãe CPU Placa de vídeo Hd, etc. Cada componente é bastante sofisticado, mas o usuário não precisa saber como funciona internamente. Cada componente é independente dos demais Para quem está montando, interessa apenas como os componentes irão interagir entre si: A placa de vídeo se encaixa no slot? O monitor funciona com esta placa? O processador é compatível com a placa mãe?

Paradigma “Paradigma é a representação do padrão de modelos a serem seguidos. É um pressuposto filosófico matriz, ou seja, uma teoria, um conhecimento que origina o estudo de um campo científico; uma realização científica com métodos e valores que são concebidos como modelo; uma referência inicial como base de modelo para estudos e pesquisas”. Geral: Origem: Wikipédia, a enciclopédia livre. Disponível em: http://pt.wikipedia.org/wiki/Paradigma

Paradigma “Paradigma é um conjunto de regras que estabelecem fronteiras e descrevem como resolver os problemas dentro destas fronteiras. Os paradigmas influenciam nossa percepção; ajudam-nos a organizar e a coordenar a maneira como olhamos para o mundo...” Em administração: Reengenharia - Reestruturando a Empresa Daniel Morris e Joel Brandon

Paradigma “Enfoque pelo qual o ser humano enxerga o mundo, as coisas, a natureza, os outros seres e os outros homens.” No meio-ambiente: Projeto: “A Experiência do Semasa em Projetos de semi-urbanização de Favelas” Disponível em: http://www.semasa.sp.gov.br/admin/biblioteca/docs/pdf/35Assemae104.pdf

Paradigma (exemplos) Em Ciência da Computação: Paradigmas explicam como os elementos que compõem um programa são organizados e como interagem entre si. Em desenvolvimento de sistemas: Utilização da metodologia de Orientação a Objetos para se programar.

Surgimento da Orientação a Objetos Linguagem SIMULA (Anos 60): Linguagem SMALLTALK (Anos 70): C++ Java Object Pascal / ambiente de desenvolvimento Delphi

Conceito de Objeto Um objeto denota uma entidade, seja ela de natureza física, conceitual ou de software: Entidades físicas: um carro, uma pessoa, uma casa Entidade conceitual: um organograma de uma empresa Entidade de software: um botão em uma GUI

Objetos e Classes Um objeto é um conceito, uma abstração, algo com limites e significados nítidos em relação ao domínio de uma aplicação. Objetos facilitam a compreensão do mundo real e oferecem uma base real para implementação em computador Um objeto é algo que tem: Estado – definição das propriedades (atributos) em um dado momento Comportamento – definição dos métodos (habilidades) do objeto Identidade – identificador do objeto se comparado a outros O termo instância é freqüentemente usado para descrever um objeto em particular

Objetos e Classes

Estado de um Objeto O estado de um objeto representa uma das possíveis condições em que um objeto pode existir. O estado é representado pelos valores das propriedades de um objeto em um determinado instante O estado do objeto usualmente muda ao longo do tempo Exemplo (Aluno Ricardo): Nome: Ricardo Matricula: 969696 Semestre de Ingresso: 96.1

Comportamento de um Objeto O comportamento determina como um um objeto pode responder a interações mediante à ativação de operações decorrentes de mensagens recebidas de outros objetos Assim o Comportamento define como um objeto reage a solicitações de outros objetos O Comportamento é determinado pelo conjunto de operações que o objeto pode realizar.

Identidade de um Objeto Cada objeto tem um único identificador, mesmo que seu estado seja idêntico ao de outro objeto. Cuidados na Análise Linguagem natural é muito ambígua Vários termos podem se referir ao mesmo objeto Um termo pode se referir a mais de um objeto ß Identificar apenas objetos relevantes Cada substantivo deve ser considerado dentro do contexto do domínio do problema. Isto quer dizer que ele não deve existir por si próprio.

Identidade de um Objeto Atenção: Substantivos podem ser verbalizados e vice-versa, ou seja, os resultados dependem do estilo de escrita dos requisitos do problema Verificando os Substantivos Ricardo (objeto) Controle Acadêmico (Sistema que está sendo construído) Semestre (estado) Matrícula 969696(Propriedade de um aluno) Lista de Semestres Cursados (candidato a objeto) Semestre corrente (o mesmo que semestre)

Classes Uma classe é a descrição de um grupo de objetos com propriedades Semelhantes (atributos), mesmo comportamento (operações), mesmos relacionamentos com outros objetos (associações e agregações), e mesma semântica. Um objeto é uma instância de uma classe Uma classe representa um conjunto de objetos com características afins. Uma classe é uma abstração que: Enfatiza características relevantes Abstrai outras características Abstração: ajuda a lidar com a complexidade. É uma forma de visualizar algo sem se “apegar aos detalhes”.

Abstração Focalizar o objeto em si e ignorar propriedades complementares… Exemplo: Aeronave

Classes Exemplos de Classes Professor: Atributos: Nome, Matrícula, Data de Contratação, Titulação Operações: DefineNome(), AlteraNome(), TempoServiço(), DefineTitulação(), AlteraTitulação(), ... Turma: Atributos: Cod, Nome, Local, Créditos, Horário, Capacidade Operações: DefineCod(),AlteraCod(),DefineNome(), AlteraNome(), NrCreditos(), AdicionaAluno(), EliminaAluno(), VerificaEstado(), ...

Classes Nomeando Classes Uma classe deveria ser um substantivo singular que melhor caracteriza a abstração Dificuldades na nomeação das classes podem indicar abstrações mal definidas Nomes deveriam surgir diretamente do domínio do problema

Classes Estilo para Nomear Classes Uma proposta simples: Classes são nomeadas com um substantivo no singular O nome de uma classe inicia com a primeira letra maiúscula Não são utilizados símbolos de sublinhado (“_”) - nomes compostos de múltiplas palavras são organizados com todas as palavras juntas, onde a primeira letra de cada uma fica em maiúscula Exemplos: Aluno, Professor, ControleAcadêmico

Representando Classes e Objetos Compartimentos de uma Classe Nome da classe Atributos Propriedades compartilhadas por todos os objetos de uma mesma classe O conjunto dos valores dos atributos de um objeto, irão determinar o estado de um objeto Operações Estabelece o que os objetos de uma classe são capazes de fazer Define o comportamento dos objetos de uma classe A implementação de uma operação é chamada de “método”

Representando Classes e Objetos Mensagens Uma mensagem é uma solicitação feita por um objeto A a um objeto B Como resultado desta solicitação, o objeto B irá modificar seu estado ou irá retornar algum valor O conceito de mensagem está diretamente associado ao conceito de operação A interação entre os objetos é feita através da troca de mensagens.

Representando Classes e Objetos Principais Relacionamentos Associação: conexão entre classes, quando um objeto está apto a se comunicar com outro Agregação: especialização de uma associação onde um todo é relacionado com suas partes (relacionamento “parte-de” ou “contenção” Herança: um dos princípios da OO, permite a reutilização, uma nova classe pode ser definida a partir de outra já existente OBS.: Uma associação é usualmente um relacionamento bidirecional Dado uma instância de Aluno, há um objeto Disciplina associado Dado uma instância de Disciplina, há um objeto Aluno associado

Representando Classes e Objetos Principais Relacionamentos Encapsulamento: consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom). Polimorfismo: permite que uma referência de um tipo de uma super-classe tenha seu comportamento alterado de acordo com a instância da classe filha a ela associada. O polimorfismo permite a criação de super-classes abstratas, ou seja, com métodos definidos (declarados) e não implementados, onde a implementação ocorre somente nas sub-classes não abstratas.

Tipos de Associações Nomeando uma Associação Uma associação precisa ser nomeada O nome é representado como um “rótulo” colocado ao longo da linha de associação Um nome de associação é usualmente um verbo ou uma frase verbal Por exemplo: Uma pessoa usa um telefone. A tecla "1" é parte de um telefone.

Exercícios Título da apresentação (nome, assunto…) Monte uma apresentação em Power Point mostrando: Título da apresentação (nome, assunto…) O que você entendeu por Orientação a Objetos? Exemplos (3 de cada) de: Classes Objetos Atributos O que você entendeu por associação? O que significa Instanciar uma classe? Como fazer isso? Pesquisar na Internet um exemplo de paradigma aplicado a qualquer área. Procure na Internet e inclua na apresentação 5 exemplos de Linguagens de Programação (atuais) que utilizam Orientação a Objetos? Pesquisar na Internet 5 (cinco) linguagens de programação que utilizam o conceito de Orientação a Objetos. (1 slide) (1 slide) (de 1 a 3 slides) (1 slide) (1 slide) (1 slide) (1 slide) (1 slide)

Encapsulamento Num dado objeto somente interessa ao cliente as funções que ele executa e não a implementação da mesma. Se precisarmos mudar o valor de alguma variável de instância de um objeto, devemos enviar uma mensagem que recebe um valor como argumento e faz a alteração. As palavras encapsular e esconder são termos técnicos da definição de linguagens orientadas a objeto. Um bom exemplo de encapsulamento seria um disco rígido. A interface do disco rígido deixa acessível ao computador (cliente) suas funções de leitura e escrita, os dispositivos mecânicos e eletromagnéticos que o HD utiliza para realizar tais operações não fica acessível ao seu cliente estando assim encapsulados. “Caixa preta” – não é necessário saber como funciona internamente, mas apenas como saber utilizar.

Herança A herança é a principal característica da programação orientada a objetos pois é através desse mecanismo que a classe mais especializada herda todos os métodos e atributos da classe mais geral. Permite que uma nova classe seja descrita a partir de uma outra classe já existente (reutilização); Herança é um mecanismo que permite que características comuns a diversas classes sejam fatoradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for definido de particularidade para ela.

Polimorfismo De forma genérica, polimorfismo significa "várias formas". É a capacidade de objetos diferentes reagirem segundo a sua função a uma ordem padrão. Por exemplo: O comando "abre", por exemplo, faz um objeto entrar em ação, seja ele uma janela, uma porta ou uma tampa de garrafa.

Referências Bibliográficas Leendert Ammeraal, "Programas e Estruturas de Dados em C", Editora Presença, 1994 Programming Languages: Concepts and Constructs, Addison-Wesley, 1996. Ciência da Computação: uma visão abrangente, J. Glenn Brookshear, 2005. B. Kernighan, R. Pike, The Practice of Programming, Addison Wesley, 1999 Wikipedia – enciclopedia online. Disponível em: http://pt.wikipedia.org/wiki/Paradigma. Acesso em Janeiro/2006.