A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação

Apresentações semelhantes


Apresentação em tema: "Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação"— Transcrição da apresentação:

1 Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação
Disciplina : 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

2 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 Fernandes, A. “DELPHI 5 – Básico & Avançado”. Express Book Cantu, M. “Dominando DELPHI 6: a bíblia”. Makron Books

3 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

4 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

5 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.

6 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, ...

7 Histórico da Evolução das LP (2/2)
Década de 60, linguagens de 2ª geração, ênfase nos dados Fortran, Algol 60, Cobol, LISP Década de 70, linguagens de 3ª geração, ênfase na estruturação do código PL/1, Fortran, Algol 68, Cobol Pascal (ferramenta de aprendizagem) Simula

8 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.

9 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)

10 Subprogramação Em geral: Mas sempre é possível dividir:
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 Subprograma N

11 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.

12 Método dos Refinamentos Sucessivos
É uma “sistemática” de abordagem útil no projeto detalhado e na implementação de softwares. Partindo-se de um dado problema, para qual se deseja encontrar um programa de solução, deve-se procurar subdividi-lo em problemas menores (subproblemas) e de solução mais simples. Alguns destes problemas terão solução imediata e outros não. Os subproblemas para os quais não for possível encontrar uma solução direta devem ser novamente subdivididos. Assim, o processo é repetido até que se consiga encontrar um programa para solucionar cada um dos subproblemas definidos. Então, o programa de solução do problema original será composto pela justaposição dos programas usados para solucionar cada um dos subproblemas em que o problema original foi decomposto.

13 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 estruturada dividir-para-conquistar

14 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 programadores manutenção de software reutilização de subprogramas

15 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 é desenvolvido e vai sendo aumentado com o passar do tempo, com o acréscimo de novos subprogramas. A este conjunto dá-se o nome de biblioteca. No desenvolvimento de novos sistemas, procura-se ao máximo basear sua concepção em subprogramas já existentes na biblioteca, de modo que a quantidade de software realmente novo que deve ser desenvolvido é minimizada.

16 Tipos Abstratos de Dados, Segundo Ziviani
Um Tipo Abstrato de Dados (TAD) pode ser visto como um modelo matemático, acompanhado das operações definidas sobre o modelo. O conjunto dos inteiros acompanhado das operações de adição, subtração e multiplicação forma um exemplo de um TAD. TAD podem ser considerados generalizações de tipos primitivos de dados, da mesma forma que procedimentos são generalizaçõ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 abstrato de dados pode ser usado para encapsular tipos de dados. Neste caso a definição do tipo e todas as operações definidas sobre ele podem ser localizadas em uma única seção do programa.

17 Tipos Abstratos de Dados, Segundo Pereira
Um TAD é formado por um conjunto de valores e por uma série de funções que podem ser aplicadas sobre estes valores. Funções e valores, em conjunto, constituem um modelo matemático que pode ser empregado para “modelar”e solucionar problemas do mundo real; servindo para especificar as características relevantes dos objetos envolvidos no problema, de que forma eles se relacionam e como podem ser manipulados. Entretanto, sendo o TAD apenas um modelo matemático, sua definição não leva em consideração como os valores serão representados na memória do computador (organização dos bits), nem se preocupa com o “tempo” que será gasto para aplicar as funções (rotinas) sobre tais valores.

18 (padrão de bits/rotinas)
Tipos Abstratos de Dados, Segundo Pereira Para que se possa realmente aplicar um modelo matemático na resolução de problemas por computador, é preciso antes transformá-lo em um tipo de dados concreto (ou simplesmente, tipo de dados). A transformação de um tipo de dados abstrato em um tipo de dados concreto é chamada implementação. É durante o processo de implementação que a estrutura de armazenamento dos valores é especificada, e que os algoritmos que desempenharão o papel das funções são projetados. TIPO DE DADOS ABSTRATO (modelo matemático) TIPO DE DADOS CONCRETO (padrão de bits/rotinas) IMPLEMENTAÇÃO

19 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

20 Programação Estruturada
Dados variáveis globais parâmetros passados por valor parâmetros passados por referência (var) Bloco de Código ________ Bloco de Código ________ Bloco de Código ________ . . .

21 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).

22 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.

23 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.

24 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.

25 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.

26 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.

27 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

28 Programação Orientada a Objetos
Entidades concretas, exemplares da classe (variável) Objeto 1 Entidade abstrata (tipo) Dados Código Objeto 2 Classe Dados Dados Código ... Código Objeto N Dados Código

29 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

30 Produção de Software Programação Estruturada X Programação Orientada a Objetos

31 Programação Estruturada Sob 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.

32 Programação Orientada a Objetos Sob 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.

33 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

34 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)

35 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.

36 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.

37 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.

38 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.

39 Fundamentos do Modelo de Objetos
Projeto Orientado a Objetos Apresentar, ou diagramar, o modelo dos objetos observados modelo conceitual Análise Orientada a Objetos Decompor a estrutura do problema em entidades abstratas Programação Orientada a Objetos “implementar” as estruturas modelas em código de computador public class Tartaruga { // Atributos, ou propriedades // Métodos, ou operações } Tartaruga objTartura = new Tartaruga();

40 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”.

41 Referências Textos da internet: Visionnaire Consultoria em Informática
Visionnaire Consultoria em Informática


Carregar ppt "Faculdade de Alagoas – FAL Bacharelado em Sistemas de Informação"

Apresentações semelhantes


Anúncios Google