faculdade de alagoas – fal bacharelado em sistemas de informação disciplina : 169301 -...

41
Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação Disciplina : 169301 - Programação II – 3º período Ementa: Programação orientada a objetos: conceitos básicos; classes; métodos; herança e polimorfismo. Aplicação do paradigma orientado a objetos. Estudo de casos. Professor: Luiz Olívio Costa de Oliveira 2005/1

Upload: roberto-figueiroa-gusmao

Post on 07-Apr-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Faculdade de Alagoas – FALBacharelado em Sistemas de Informação

Disciplina :169301 - Programação II – 3º período

Ementa:Programação orientada a objetos: conceitos básicos; classes; métodos; herança e polimorfismo. Aplicação do paradigma orientado a objetos. Estudo de casos.

Professor:Luiz Olívio Costa de Oliveira2005/1

Page 2: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Curso de Sistemas de Informação Programação II – 3º período horário: seg – 20:40 às 22:20

ter – 18:50 às 20:30 pré-requisitos: Programação I (169201)

Lógica Matemática (169204) livros texto:

Boratti, I. C. “Programação Orientada a Objetos usando DELPHI”. Saraiva. 2001.Fernandes, A. “DELPHI 5 – Básico & Avançado”. Express Book. 1999.Cantu, M. “Dominando DELPHI 6: a bíblia”. Makron Books. 2001.

Page 3: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Ementário O Modelo de Objetos Conceitos da POO Impacto do modelo OO no desenvolvimento de software Métodos de análise e projeto de sistemas OO UML- Unified Modeling Language

Diagrama de classe (objeto) Diagrama de caso de uso Diagramas de interação: seqüência e colaboração Diagrama de estado: atividade Diagramas de implementação: componente e implantação

Page 4: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Problemas na Produção de Software no “começo” do uso de computadores:

o custo da computação era o equipamento eletrônico no fim dos anos 60

a crise do software (programação estruturada) atualmente a situação se inverteu

computadores mais rápidos e baratos tecnologia de software não apresentou um

desenvolvimento comparável tecnologia de orientação a objetos

Page 5: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Evolução das Linguagens de Programação (LP) A evolução do Modelo de Objetos está

intensamente ligada ao desenvolvimento das linguagens de programação.

Foi com o aumento da tecnologia e da capacidade dos computadores que problemas mais complexos puderam ser resolvidos pela máquina.

Page 6: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Histórico da Evolução das LP (1/2)

Década de 40, programação física linguagem de máquina

Década de 50, programação lógica linguagens montadoras, assembler (ainda

exigiam conhecimentos do hardware) linguagens de 1ª geração, abstração do

hardware, ênfase em cálculos Fortran, Algol 58, ...

Page 7: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Histórico da Evolução das LP (2/2)

Década de 60, linguagens de 2ª geração, ênfase nos dadosFortran, Algol 60, Cobol, LISP

Década de 70, linguagens de 3ª geração, ênfase na estruturação do códigoPL/1, Fortran, Algol 68, CobolPascal (ferramenta de aprendizagem)Simula

Page 8: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

A Crise do Software- Parte I. Problemas detectados na década 60:

baixa produtividade, falta de uma “metodologia formal” para o desenvolvimento de software, códigos literalmente sem a possibilidade de serem mantidos

1968, Dikjstra, lança os conceitos da Programação Estruturada (PE): não usar goto, estruturas básicas de controle

(seqüência, condição e repetição), subprogramação (ou modularização), tipo abstrato de dados = modelo matématico + operações.

Page 9: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Estruturas Básicas de Controle

Seqüência, condição (ou seleção) e repetição formas de raciocínio intuitivamente óbvias

A legibilidade e compreensão de cada bloco de código é enormemente incrementada, proibindo o uso irrestrito de comandos de desvio (GOTO)

Page 10: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Subprogramação

Em geral:problemas complexos = programas complexos

Mas sempre é possível dividir:problemas grandes e complicados em

problemas menores e de solução mais simples Programa complexo = Subprograma 1 +

Subprograma 2 + ... + Subprograma N

Page 11: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Definição

Um subprograma, é um nome dado a um trecho de um programa mais complexo e que, em geral, encerra em si próprio um pedaço da solução de um problema maior, o programa a que ele está subordinado.

São sinônimos: bloco de código, módulo, métodos, procedimentos, funções, subprograma, subrotina e subalgoritmo; e são conceitos da ciência conhecida como engenharia de software.

Page 12: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Método dos Refinamentos SucessivosÉ uma “sistemática” de abordagem útil no projeto detalhado e naimplementação de softwares.

Partindo-se de um dado problema, para qual se deseja encontrar umprograma de solução, deve-se procurar subdividi-lo em problemasmenores (subproblemas) e de solução mais simples. Alguns destesproblemas terão solução imediata e outros não.

Os subproblemas para os quais não for possível encontrar uma soluçãodireta devem ser novamente subdivididos.

Assim, o processo é repetido até que se consiga encontrar um programapara solucionar cada um dos subproblemas definidos.

Então, o programa de solução do problema original será composto pelajustaposição dos programas usados para solucionar cada um dossubproblemas em que o problema original foi decomposto.

Page 13: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Em Síntese: Método dos Refinamentos Sucessivos

dividir uma subrotina em outras tantas quantas forem necessárias, buscando uma solução mais simples de uma parte do problema maior

técnica de programação estruturadadividir-para-conquistar

Page 14: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Vantagens da Subprogramação subdivisão de programas complexos

facilita o entendimento (partes independentes) estruturação de programas

detecção de erros e documentação de sistemas modularização de sistemas

desenvolvimento por equipes de programadoresmanutenção de softwarereutilização de subprogramas

Page 15: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

A questão é: “Reutilização de Software”

Objetivo:Economia de tempo e trabalho.

Princípio:Um conjunto de subprogramas destinado a solucionar uma série de tarefas bastante corriqueiras é desenvolvidoe vai sendo aumentado com o passar do tempo, com o acréscimo de novos subprogramas. A este conjunto dá-seo nome de biblioteca. No desenvolvimento de novossistemas, procura-se ao máximo basear sua concepçãoem subprogramas já existentes na biblioteca, de modoque a quantidade de software realmente novo que deveser desenvolvido é minimizada.

Page 16: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Tipos Abstratos de Dados, Segundo ZivianiUm Tipo Abstrato de Dados (TAD) pode ser visto como ummodelo matemático, acompanhado das operações definidassobre o modelo. O conjunto dos inteiros acompanhado dasoperações de adição, subtração e multiplicação forma umexemplo de um TAD.

TAD podem ser considerados generalizações de tiposprimitivos de dados, da mesma forma que procedimentos sãogeneralizações de operações primitivas tais como adição,subtração e multiplicação. Assim como um procedimento éusado para encapsular partes de um programa, o tipo abstratode dados pode ser usado para encapsular tipos de dados. Nestecaso a definição do tipo e todas as operações definidas sobreele podem ser localizadas em uma única seção do programa.

Page 17: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Tipos Abstratos de Dados, Segundo PereiraUm TAD é formado por um conjunto de valores e por umasérie de funções que podem ser aplicadas sobre estes valores.Funções e valores, em conjunto, constituem um modelomatemático que pode ser empregado para “modelar”esolucionar problemas do mundo real; servindo para especificar as características relevantes dos objetosenvolvidos no problema, de que forma eles se relacioname como podem ser manipulados.

Entretanto, sendo o TAD apenas um modelo matemático, suadefinição não leva em consideração como os valores serãorepresentados na memória do computador (organização dosbits), nem se preocupa com o “tempo” que será gasto paraaplicar as funções (rotinas) sobre tais valores.

Page 18: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Tipos Abstratos de Dados, Segundo PereiraPara que se possa realmente aplicar um modelo matemáticona resolução de problemas por computador, é preciso antestransformá-lo em um tipo de dados concreto (ousimplesmente, tipo de dados).A transformação de um tipo de dados abstrato em um tipode dados concreto é chamada implementação. É duranteo processo de implementação que a estrutura dearmazenamento dos valores é especificada, e que osalgoritmos que desempenharão o papel das funções são projetados.

TIPO DE DADOSABSTRATO

(modelo matemático)IMPLEMENTAÇÃO

TIPO DE DADOSCONCRETO

(padrão de bits/rotinas)

Page 19: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Característica da PE decomposição gradativa dos programas ao nível

fundamental (desenvolvimento Top-Down) programação orientada a procedimentos

blocos estruturados de programas (procedure, function) a comunicação entre os blocos se faz utilizando variáveis

globais e pela passagem de dados através de parâmetros

os dados são processados nos blocos e migram de um bloco para outro (variáveis globais e par. por referência)

a execução é caracterizada pelo acionamento do bloco tipo abstrato de dados = modelo matemático +

operações

Page 20: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Programação Estruturada

Dados

Bloco deCódigo

________________________

Bloco deCódigo

________________________

Bloco deCódigo

________________________

. . .

variáveisglobais

parâmetros passadospor valor

parâmetros passadospor referência (var)

Page 21: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

A Crise do Software- Parte II.

Necessidades atuais dos sistemas: produtividade e qualidade.

Características atuais dos sistemas: complexidade, tamanho (milhões de linhas de código).

Necessidades atuais do mercado e das empresas competitividade.

Solução: Programação Orientada a Objetos (POO).

Page 22: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

A Promessa para os Anos 90 (1/2)

Estamos passando por um momento único na história da computação.

Existe uma “Nova Ordem” na computação A influência provocada na maneira de se

desenvolver software será imensa. O software terá que se ajustar a esta “Nova

Ordem” em todos os aspectos. É necessário uma revolução na maneira em que

se constrói software.

Page 23: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

A Promessa para os Anos 90 (2/2)

Esta revolução provavelmente virá de técnicas de Orientação a Objetos (OO).

“A Programação Orientada a Objetos está para os anos 90 assim como a Programação Estruturada estava para os anos 80”.

OO é considerado por vários autores como a salvação para os problemas no desenvolvimento de software.

Page 24: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Uma Nova Filosofia (1/3)

“Implementar em Computadores uma Abstração do Mundo Real”.

Esta implementação é feita mais especificamente com Classes.

Classes e Objetos fazem parte da vida de todos.

Page 25: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Uma Nova Filosofia (2/3) Objetos são instâncias, ou exemplares, de Classes,

que determinam qual informações um objeto contém e como ele pode manipulá-las.

Objetos são compostos de atributos e comportamentos.

Um programa desenvolvido com uma linguagem de POO manipula estruturas de dados através de objetos da mesma forma que um programa em linguagem tradicional utiliza variáveis.

Dados e códigos não são mais separados.

Page 26: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Uma Nova Filosofia (3/3)

Um dos grandes diferenciais da POO em relação a outros paradigmas de programação está no conceito de herança, mecanismo através do qual definições existentes podem ser facilmente reutilizadas, modificadas e estendidas.

Juntamente com a herança deve ser enfatizada a importância do polimorfismo, que permite selecionar funcionalidades que um programa irá utilizar de forma dinâmica, durante sua execução.

Page 27: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Em Resumo:Característica da POO dados e procedimentos fazem parte, ou são

encapsulados, em um só elemento básico chamado Classe

os objetos são exemplares das classes a comunicação entre os objetos caracteriza a

execução do programa reutilização de código através de herança

Page 28: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Programação Orientada a Objetos

Classe

Dados

Código

Objeto 1

Dados

Código Objeto 2

Dados

Código

Objeto N

Dados

Código

...

Entidadeabstrata(tipo)

Entidades concretas, exemplares da classe (variável)

Page 29: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Vantagens da POO

produtividade desenvolvimento rápido controle da complexidade manutenibilidade reutilização de códigos menor custo para desenvolvimento e

manutenção de sistemas

Page 30: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Produção de Software

Programação Estruturada

X

Programação Orientada a Objetos

Page 31: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Programação EstruturadaSob Perspectiva de um Subprograma.

Nessa visão, o principal bloco de construção do software é o procedimento ou a função.

Essa perspectiva conduz desenvolvedores a voltar seu foco de atenção para questões referentes ao controle e à decomposição de programas maiores em outros menores.

Desvantagens, à medida que os requisitos se modificam e o sistema cresce, será difícil fazer a manutenção de sistemas.

Page 32: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Programação Orientada a ObjetosSob Perspectiva de uma Classe.

Nesta visão, o principal bloco de construção de todos os sistemas de software é o objeto ou a classe.

Um objeto é alguma coisa geralmente estruturada a partir do vocabulário do espaço do problema ou do espaço da solução; uma classe é a descrição de um conjunto de objetos comuns.

Page 33: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Desafios do Modelo de Objetos

investimentos em nova tecnologia treinamento mudança de paradigma

mudança na forma de conceber e programar sistemas

resistência dos programadores familiarizados com as técnicas tradicionais

Page 34: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Fundamentos do Modelo de Objetos Programação Orientada a Objetos

Object-Oriented Programming (OOP) Projeto Orientado a Objetos

Object-Oriented Design (OOD) Análise Orientada a Objetos

Object-Oriented Analysis (OOA)

Page 35: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Programação Orientada a Objetos é um método de implementação em que

programas são organizados como coleções cooperativas de objetos, cada um representando uma instância (exemplar) de alguma classe e cujas classes são membros de uma hierarquia de classes unidas via relacionamento de herança.

construção de sistemas a partir de componentes reutilizáveis, chamados de classes.

Page 36: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Projeto Orientado a Objetos

é um método de projeto, ou design, englobando o processo de decomposição orientada a objetos e uma notação para representar os modelos lógicos e físicos bem como os modelos dinâmicos e estáticos do sistema projetado.

criar um estrutura geral para o sistema.

Page 37: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Análise Orientada a Objetos

é um método de análise que examina requerimentos pelas perspectivas de classes e objetos encontrados no vocabulário do domínio do problema.

definir a abrangência do problema a ser solucionado.

Page 38: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Em Resumo:

A OOA se preocupa em enxergar a estrutura do problema e decompô-la em entidades “abstratas” de classes e objetos, enquanto o OOD procura organizar e descrever essa estrutura “sistematicamente” em um modelo de objetos, e a OOP “implementa” essas estruturas assim modeladas em código de computador.

Page 39: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

public class Tartaruga { // Atributos, ou propriedades // Métodos, ou operações}

Tartaruga objTartura = new Tartaruga();

Programação Orientada a Objetos“implementar” as estruturas modelas em código de computador

Análise Orientada a ObjetosDecompor a estrutura do problemaem entidades abstratas

Projeto Orientado a ObjetosApresentar, ou diagramar, o modelo

dos objetos observados

Fundamentos do Modelo de Objetos

modelo conceitual

Page 40: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Conclusão

“Orientação a Objetos é o futuro,e o futuro é aqui e agora”.

Edward Yourdon

“É hora de uma revolução na forma de contruirmos software, .... A revolução é a

programação orientada a objetos”.Brad J. Cox

“Provavelmente o software do ano 2000 você não estará desenvolvendo, você estará herdando, conectando

componentes e distribuindo o processamento”.

Page 41: Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação  Disciplina : 169301 - Programação II – 3º período  Ementa: Programação orientada a

Referências

Textos da internet:www.inf.ufsc.br/poo/www.dca.fee.unicamp.br/courses/PooJava/http://puig.pro.br/

Visionnaire Consultoria em Informáticawww.visionnaire.com.br