Programação Web Orientada a Objetos Professor: Charles Jefferson.

35
Programação Web Orientada a Objetos Professor: Charles Jefferson

Transcript of Programação Web Orientada a Objetos Professor: Charles Jefferson.

Page 1: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Programação Web Orientada a Objetos

Professor: Charles Jefferson

Page 2: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Plano de Ensino

Unidade Curricular: Programação Web Orientada a Objeto

Carga Horária: 120 Horas

Curso: Informática para Internet

Modalidade: Técnico Subsequente

PROFESSOR: Charles Jefferson R. Alves e Alves

Page 3: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Objetivo

Capacitar o aluno, de forma que seja capaz de compreender e implementar os fundamentos da Programação Orientada a Objetos, bem como interpretar artefatos de projeto, mapeando-os através da implementação no computador.

Analisar e projetar Sistemas Web baseado em objetos.

Implementar pequenas aplicações com interface gráfica utilizando objetos já definidos no ambiente de desenvolvimento.

Page 4: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Habilidades

Aplicar os conceitos básicos de Orientação a Objetos.

Identificar as propriedades e as responsabilidades dos objetos.

Desenvolver sistemas Web, utilizando Orientação a Objetos baseados em componentes.

Realizar a conexão com interface e base de dados;

Avaliar resultados de testes dos programas desenvolvidos;

Interpretar e analisar o resultado da modelagem de dados;

Estruturar algoritmos de permitam a representar regras de negócios;

Desenvolver aplicações Web em camadas.

Page 5: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Conteúdo Programático

Conceitos de Programação Orientada a Objetos: Classe, Objeto, Herança, Polimorfismo, Abstração,Generalizações, Superclasse e Subclasse.

Construtores e Destrutores.

Aplicações dos conceitos utilizando uma linguagem de programação orientada a objetos.

Confecção e interpretação de diagramas UML.

Conceitos de Padrões de Projetos e Utilização do padrão MVC.

Funções avançadas.

Desevolvimento de um sistema web comercial

Page 6: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Metodologia

Aulas expositivas dialogadas e interativas

Pesquisas e debates informais

Trabalho em grupo e individual

Aula prática no laboratório

Page 7: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Avaliação

Presença e participação nas atividades em sala de aula – 1,0 pontos.

Apresentação de trabalhos – 3,0 pontos

Prova individual – 6,0 pontos.

Page 8: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Pré-requisitos

Lógica de Programação

Contrução de Algorítmos

HTML

Linguagem Orientada a Objetos: JAVA, C++, C#, VB.NET, PHP5

Page 9: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Programação Orientada a Objetos

É um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software.

A POO foi criada para tentar aproximar o mundo real do mundo virtual: a idéia é simular o mundo real dentro do computador.

O mundo real é extremamente complexo. A orientação a objetos tenta gerenciar a complexidade inerente aos problemas do mundo real abstraindo o conhecimento relevante e encapsulando-o dentro de objetos.

Na POO o programador é responsável por moldar o mundo dos objetos, e explicar para estes objetos como eles devem interagir entre si.

Os objetos "conversam" através do envio de mensagens, e é o programador que especifica quais serão as mensagens que cada objeto pode receber, e a ação que deve realizar ao receber aquela mensagem em específico.

Page 10: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Programação Orientada a Objetos

Na visão da orientação a objetos, o mundo é composto por diversos objetos que possuem um conjunto de características e um comportamento bem definido.

Quando programamos seguindo o paradigma de orientação a objetos, definimos abstrações dos objetos reais existentes.

Todo objeto possui as seguintes características:

Estado: conjunto de propriedades de um objeto (valores dos atributos).

Comportamento: conjunto de ações possíveis sobre o objeto (métodos da classe).

Unicidade: todo objeto é único (possui um endereço de memória).

Page 11: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Histórico

Com os problemas gerados pela crise de softares, surge a Engenharia de Sofware (60).

Porém, as várias técnicas desenvolvidas nos anos 70 e 80 não resolveram o problema de produtividade e qualidade nos softwares.

Lições da década de 80 Requisitos do usuário são mais importantes

Funções e dados tem grande importância, porém não podem estar separados

Page 12: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Histórico

Realidade atual

Sistemas de alta complexidade

Ferramentas de desenvolvimento drasticamente diferentes de 20 anos atrás.

Sistemas maiores, mais complexos e mais voláteis.

A mudança para alcançar a qualidade e produtividade está na reutilização.

Page 13: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Técnicas de Programação

Programação Não-Estruturada Programação Procedimental (ou Procedural) Programação Estruturada (ou Modular) Programação Orientada à Objetos

Page 14: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Programação Não-Estruturada

Programas simples e pequenos consistindo de apenas um programa principal.

– Ex. Cartão

“Programa” é uma seqüência de comandos ou instruções que modificam dados “globais” durante toda a sua execução.

Como melhorar este modelo de programação ?

– Extração de seqüências (procedures)

Page 15: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Programação Procedimental (Procedural)

Um programa é visto como uma seqüência de procedimentos que se “comunicam” através de dados locais, denominados parâmetros.

O fluxo destes dados pode ser ilustrado como um grafo hierárquico ou uma árvore.

Desta forma, temos um único programa que é dividido em pequenas partes, chamadas “procedures”. Para permitir o uso de procedimentos genéricos ou grupo de procedimentos em outros programas, precisamos separá-los e disponibilizá-los.

Page 16: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Programação Estruturada (Modular)

Um programa não consiste mais de uma única parte em um único arquivo. É agora dividido em várias pequenas partes chamados módulos, que interagem, através de chamadas aos procedimentos, formando o programa.

Cada módulo pode ter seus próprios dados. Isto permite que cada módulo gerencie estruturas de dados internas, que são modificadas pelas chamadas aos procedimentos.

Entretanto, só existe um estrutura por módulo e cada módulo só pode existir uma única vez no programa.

Problema: E para se manipular mais de uma lista ?!?

Page 17: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Programação Orientada a Objetos

Na Orientação a Objetos, a estrutura é organizada pelos dados. Escolhe-se a representação dos dados que melhor se adequam aos requisitos do problema.

Consequentemente, os programas ficam estruturados pelos dados e não mais pelas operações.

Isto significa que os dados apenas especificarão operações válidas. Agora os módulos serão agrupados por dados e suas representações, denominadas classes.

Page 18: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Programação Orientada a Objetos

Cada objeto “implementa”seus próprios módulos e dados, permitindo que várias estruturas coexistam.

Cada objeto é responsável por inicializar e destruir os seus dados. Consequentemente, não existe mais a necessidade de explicitar uma chamada aos procedimentos de criação e destruição.

Page 19: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Objetivos

Produção de software mais confiável

proteção aos dados: encapsulamento

Aumento da produtividade de software

reutilização de código: classes

extensão da biblioteca de classes:

definição de subclasses (herança)

implementação de novos métodos

redefinição de métodos (polimorfismo)

Page 20: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO – Regras de Desenvolvimento

DecomposiçãoA partir de um problema geral, definir um conjunto de subproblemas independentes que podem ser tratados em separado.

IndependênciaA alteração de um módulo não incorre na modificação de outros módulos.

ReutilizaçãoQuanto mais um módulo for independente, maior a chance dele poder ser reutilizado em outra aplicação.

Auto documentado

Todo módulo deve ser compreensível sem a necessidade de verificar seu relacionamento com os outros módulos.

Page 21: Programação Web Orientada a Objetos Professor: Charles Jefferson.

POO

A orientação a objetos pode ser resumido como um estilo de desenvolvimento baseado no conceito de objetos.

Em uma linguagem puramente orientada a objetos todas as representações são realizadas por objetos.

Os objetos combinam dados e funções.

A orientação a objetos pode ser aplicada: Análise; Projeto; Implementação de um sistema.

Page 22: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Atributos

Os atributos são as características ou propriedades de uma classe.

Basicamente a estrutura de dados que vai representar a classe.  

Exemplos: Funcionário: nome, endereço, telefone, CPF

Page 23: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Métodos

Um determinado método define um comportamento do objeto.

Tipos básicos de métodos:

Construtor (constrói estados)

Destruidor (destrói estados)

Page 24: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Mensagem

É uma chamada a um objecto para invocar um de seus métodos, activando um comportamento descrito por sua classe.

Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método estático)

Page 25: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Classe

Uma classe define estado e comportamentos de um objeto, implementando métodos e atributos.

Os objetos de certo tipo ou classificação compartilham os mesmos comportamentos e atributos.

As classes são usadas para criar ou instanciar objetos.

Page 26: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Classe

Exemplos de Classes: Entidades do Negócio da Aplicação(pessoa, conta, cliente,

fornecedor)

Entidades de Interface(janela, botão, painel, frame, barra)

Entidades Diversas(conexão com o banco de dados, um arquivo-texto, um arquivo XML, uma conexão SSH, uma conexão FTP, um Web Service)

Page 27: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Classe

Uma classe Pessoa, poderá ter como propriedades: Nome Altura Idade Nascimento Escolaridade Salário

Poderá ter como métodos: Crescer() Formar() Envelhecer()

Page 28: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Classe

Representação gráfica da classe pessoa de acordo com o padrão UML:

Pessoa+Codigo: integer+Nome: string+Altura: integer+Idade: integer+Nascimento: date+Escolaridade: string+Salario: float

+Crescer(centimetros:integer)+Formar(titulo:string)+Envelhecer(anos:integer)

Page 29: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Objeto

Objeto é uma estrutura dinâmica originada com base em uma classe.

O objeto é uma instância de uma classe.

O objeto existe durante um dado instante de tempo – da sua criação até a sua destruição.

São objetos da classe Pessoa: Carlos, Maria, João, José.

Page 30: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Objeto

Representação gráfica dos objetos da classe pessoa de acordo com o padrão UML:

Pessoa+Codigo = 10+Nome = Carlos da Silva+Altura = 1,85+Idade = 25+Nascimento = 10/04/1976+Escolaridade = Ensino Médio+Salario = R$ 700,00

+Crescer(centimetros:integer)+Formar(titulo:string)+Envelhecer(anos:integer)

Page 31: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Pacote ou Container

Quando desenvolvemos um sistema orientado a objetos, definimos um con- junto de classes e para organizar essas classes surge o conceito de pacote.

Pacote é um envoltório de classes, ou seja, guarda classes e

outros pacotes logicamente semelhantes ao pacote que os contém.

Podemos visualizar os pacotes como diretórios ou pastas, nos quais podemos guardar arquivos (classes) e outros diretórios (pacotes) que tenham conteúdo relacionado com o pacote que os contém.

Page 32: Programação Web Orientada a Objetos Professor: Charles Jefferson.

PHP Orientado a Objetos

A partir da versão 5, a orientação à objetos do PHP ficou praticamente completa, não deixando nada a desejar com relação as linguagens de programação voltadas para desktop.

Dentre as funcionalidades que ela suporta, podemos citar Sobrescrita de função, Sobrecarga de função, Herança, Polimorfismo e Interfaces.

Assim como no Java, PHP OO não suporta herança múltipla. A solução que os programadores fazem para compensar isso é a utilização de interfaces.

Page 33: Programação Web Orientada a Objetos Professor: Charles Jefferson.

PHP Orientado a Ojetos

A orientação à objeto do PHP que será trabalhada, será:

Criação de classeAtributosMétodos construtorEncapsulamento Modificadores de acesso (Private, Public, Protected)Métodos SetMétodos GetCriação de objetosChamada de métodosHerança

Page 34: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Encapsulamento

É um processo no qual se ocultam as características internas de um objeto àqueles elementos que não têm porque conhece-las. Os modificadores de acesso servem para indicar as permissões que terão outros objetos para acessar a seus métodos e atributos

Modificadores de acesso em PHP:PublicPrivateProtected

Page 35: Programação Web Orientada a Objetos Professor: Charles Jefferson.

Encapsulamento

Public - É o modificador de acesso padrão, ou seja, quando não se define o modificador de acesso de um método ou atributo, esse é interpretado pelo PHP como public. É o modificador mais permissivo, pois os métodos ou atributos public podem ser acessados em qualquer parte do programa. Na UML seu símbolo é +

Private - É o modificador de acesso mais restritivo. Um atributo ou método private, só pode ser acessado pelo próprio objeto. Na UML seu símbolo é -

Protected - É um modificador de restrição média. Um atributo ou método protected, pode ser acessado pelo próprio objeto e por objetos das classes filhas (que o herdou). Na UML seu símbolo é #