Post on 21-Apr-2015
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
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.
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.
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
Metodologia
Aulas expositivas dialogadas e interativas
Pesquisas e debates informais
Trabalho em grupo e individual
Aula prática no laboratório
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.
Pré-requisitos
Lógica de Programação
Contrução de Algorítmos
HTML
Linguagem Orientada a Objetos: JAVA, C++, C#, VB.NET, PHP5
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.
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).
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
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.
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
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)
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.
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 ?!?
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.
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.
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)
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.
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.
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
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)
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)
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.
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)
Classe
Uma classe Pessoa, poderá ter como propriedades: Nome Altura Idade Nascimento Escolaridade Salário
Poderá ter como métodos: Crescer() Formar() Envelhecer()
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)
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é.
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)
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.
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.
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
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
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 é #