O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Aula 3 -_fundamentos_sobre_aoo

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 28 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Anúncio

Semelhante a Aula 3 -_fundamentos_sobre_aoo (20)

Mais de Portal_do_estudante_ADS (15)

Anúncio

Aula 3 -_fundamentos_sobre_aoo

  1. 1. Fundamentos Sobre Análise Orientada a Objectos Docentes: Zeferino Saugene Edgar Gemo
  2. 2. Conteúdo Análise Orientada a Objectos Princípios de OO Conceitos de OO
  3. 3. Análise Orientada a Objectos Análise é o estudo do domínio de um problema que leva a uma especificação de comportamentos observáveis externamente. Analisar é obter as necessidades de um sistema e o que este precisa para ser desenvolvido para satisfazer as necessidades do usuário. Analisar não é definir como o sistema será desenvolvido, mas sim investigar o problema
  4. 4. Análise Orientada a Objectos A AOO tem 2 propósitos: Formalizar uma “visão” do mundo real dentro do qual o sistema será desenvolvido, estabelecendo os objectos que servirão como principais estruturas organizacionais do sistema de software e também as que o mundo real impõe. Formalizar a colaboração de um dado conjunto de objectos na execução do trabalho do sistema de software que está sendo especificado.
  5. 5. Princípios de OO De acordo com Bezerra (2003) os princípios de OO são os seguintes: Qualquer coisa é um objecto. Objectos realizam tarefas através da requisição de serviços a outros objectos. Cada objecto pertence a uma determinada classe. Uma classe agrupa objectos similares. A classe é um repositório para comportamento associado ao objecto. Classes são organizadas em hierarquias.
  6. 6. Conceitos de OO Alguns conceitos básicos de OO a considerar: Objectos Atributos e Métodos Classes e Instâncias Estado Sintaxe Abstracção Encapsulamento Herança Polimorfismo
  7. 7. Objectos Um objecto é qualquer coisa real ou abstracta, a respeito da qual armazenamos dados e os métodos que os manipulam. Cada objecto é responsável por realizar tarefas específicas. É através da interacção entre objectos que uma tarefa computacional é realizada.
  8. 8. Atributos e Métodos Um objecto possui um agrupamento de características e acções. Cada característica é representada como um atributo do objecto. Os métodos são utilizados para representar as acções do objecto.
  9. 9. Classes e Instâncias Todos os objetos são instâncias de uma classe. Classe é uma descrição dos atributos e serviços comuns a um grupo de objectos. Classe = molde a partir do qual constroem-se objectos.
  10. 10. Cont (Classes e Instâncias) Classes são definições e podem ser imaginadas como uma coleção de vários objectos. Cada objecto é uma linha de vida à parte e cada um possui um estado específico.
  11. 11. Trabalho em Grupos de 2 Dê 5 exemplos de 3 classes diferentes; Qual é a relação que existe entre classe e objecto? Para cada classe dada em 1, liste 3 atributos, 2 métodos e mostre 3 objectos; Declare a classe Rectangulo em JAVA, com seus atributos e métodos; Crie 2 objectos da classe Rectangulo e implemente os métodos nele contidos.
  12. 12. Estado Estado = conjunto de valores dos atributos e o status das operações que o objecto executou. Um método que o objecto executa ou a mudança de valor de algum atributo, automaticamente muda o seu estado anterior.
  13. 13. Sintaxe É conveniente que métodos sejam representados pelo nome do método seguido de abre e fecha parênteses. Exemplo: inscreverEstudante()
  14. 14. Abstracção Abstracção é o princípio de ignorar os aspectos de um assunto não relevante para o propósito em questão, tornando possível uma concentração maior nos assuntos principais [Cood, 1991]. Consiste na selecção que o analista faz de alguns aspectos, ignorando outros.
  15. 15. Tipos de Abstracção Existem duas formas de abstracção: Abstracção de Procedimentos Abstracção de Dados.
  16. 16. Abstracção de Procedimentos Consiste em considerar um procedimento com uma operação bem definida como algo único, mesmo que utilize outros procedimentos internos. Usamos abstracção de procedimentos quando uma função divide-se em outras sub-funções, que por sua vez decompõem-se em outras funções.
  17. 17. Abstracção de Dados Consiste em definir um tipo de dado conforme as operações aplicáveis aos objectos deste tipo. Porém, estes objectos só podem ser modificados e observados através destas operações.
  18. 18. Abstracção de Dados A manipulação de dados é realizada apenas através de métodos . Um exemplo é classificar uma lista a partir das operações aplicadas a ela, como inserção e remoção. Qualquer objecto do tipo lista só pode sofrer modificações através dessas operações.
  19. 19. Encapsulamento O encapsulamento de informação é o processo de “esconder/ocultar” os detalhes (dados) de concepção e implementação e oferecer uma interface comum aos objectos (métodos). O objecto comunica-se com o exterior (com outros objectos) através de um conjunto de operações que constituem a interface do objecto.
  20. 20. Encapsulamento É permitido ao usuário ver apenas os dados necessários, todo o resto é mantido escondido, através de especificadores de acesso (public, private, protected). A utilização de encapsulamento também favorece a reusabilidade e manutenção do código. Trabalho: Exemplifique o encapsulamento recorrendo a vida prática.
  21. 21. Herança Através da herança uma determinada subclasse herda todos os atributos e métodos da superclasse. Permite a um analista especificar serviços e atributos comuns uma só vez, assim como especializar e estender estes atributos e serviços em casos específicos.
  22. 22. Herança Herança é a criação de novas classes, chamadas classes derivadas, a partir de classes já existentes, as classes-base. Alguns dos benefícios da utilização de herança é a reutilização do código da classe base, além da possibilidade de implementação de classes abstractas genéricas.
  23. 23. Herança Uma classe derivada (ou subclasse) pode realizar todas as funções que a classe-base (ou superclasse) realizaria. A subclasse herda todos os métodos públicos da superclasse, mas não possui acesso a nenhum método privado de sua classe-base. Além disso, uma subclasse pode acrescentar mais alguns métodos ou atributos àqueles herdados da superclasse, possuindo características particulares em relação à classe-base.
  24. 24. Polimorfismo Polimorfismo é um conceito usado em linguagens de programação OO para denotar a característica de que a linguagem suporta a utilização do mesmo identificador (o mesmo nome) para métodos de classes diferentes. Trabalho: Dê um exemplo concreto sobre herança.
  25. 25. Polimorfismo Um conceito no qual um nome (variável) pode denotar objectos de muitas subclasses diferentes que são relacionadas por alguma superclasse comum, assim, qualquer objecto denotado por esse nome tem a capacidade de responder a algum conjunto comum de operações de modos diferentes [Booch, 2000].
  26. 26. Polimorfismo Polimorfismo caracteriza a criação de funções com um mesmo nome, mas códigos diferentes, facilitando a extensão de sistemas. Um tipo de polimorfismo é a redefinição de métodos para uma classe derivada. Para que isso aconteça, o método deve possuir o mesmo nome, tipo de retorno e argumentos do método sobrescrito. Trabalho: Dê um exemplo, da vida prática, sobre Polimorfismo.
  27. 27. Bibliografia Bennett, S. et all (2002) object-oriented systems analysis and design using uml, U.S., Mc Graw-Hill Education Bezerra, E. (2003), Princípios de Análise e Projecto de Sistemas com UML, Rio de Janeiro, Editora Campus Ltda Bitencourt, T. (2004) Conceitos de Programação Orientada a Objetos, http://www.guj.com.br, consultado em 15/02/05 Eriksson, H. e Penker, M. (2000), Business Modeling with UML: Business Patterns at work, Suécia, Wiley Computer Publishing Nunes, M. e O´Neill (2001), Fundamental de UML, Lisboa, FCA - Editora de Informática Seixas, R. Programação Orientada a Objetos http://w3.impa.br, consultado em 18/02/05
  28. 28. TPC 1. Usando a sua capacidade de abstracção, monte uma hierarquia de classes, com no mínimo 3 níveis e 6 classes. Para cada classe identifique 3 estados e três métodos; 2. Escreva a Classe Pessoa em JAVA, com atributos nome, idade, e que implementa os métodos: pessoa, setNome, getNome, setIdade, getIdade, printPessoa, printAdulto, printNaoAdulto; 3. Crie objectos da classe Pessoa e execute os métodos criados.

×