Aula 3 -_fundamentos_sobre_aoo

354 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
354
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula 3 -_fundamentos_sobre_aoo

  1. 1. Fundamentos SobreAná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 ObjectosAná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 ObjectosA 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 OODe 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çãoAbstracçã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çãoExistem duas formas de abstracção: Abstracção de Procedimentos Abstracção de Dados.
  16. 16. Abstracção de ProcedimentosConsiste em considerar umprocedimento com uma operaçãobem definida como algo único,mesmo que utilize outrosprocedimentos internos.Usamos abstracção deprocedimentos quando uma funçãodivide-se em outras sub-funções,que por sua vez decompõem-se emoutras 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. EncapsulamentoO encapsulamento de informação é oprocesso de “esconder/ocultar” osdetalhes (dados) de concepção eimplementação e oferecer uma interfacecomum aos objectos (métodos).O objecto comunica-se com o exterior(com outros objectos) através de umconjunto de operações que constituem ainterface do objecto.
  20. 20. EncapsulamentoÉ permitido ao usuário ver apenasos dados necessários, todo o resto émantido escondido, através deespecificadores de acesso (public,private, protected).A utilização de encapsulamentotambém favorece a reusabilidade emanutenção do código.Trabalho: Exemplifique oencapsulamento recorrendo a vidaprá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çaUma classe derivada (ou subclasse)pode realizar todas as funções que aclasse-base (ou superclasse)realizaria. A subclasse herda todos osmétodos públicos da superclasse,mas não possui acesso a nenhummétodo privado de sua classe-base.Além disso, uma subclasse podeacrescentar mais alguns métodos ouatributos àqueles herdados dasuperclasse, possuindocaracterísticas particulares emrelação à classe-base.
  24. 24. PolimorfismoPolimorfismo é um conceito usadoem linguagens de programação OOpara denotar a característica de que alinguagem suporta a utilização domesmo identificador (o mesmo nome)para métodos de classes diferentes.Trabalho: Dê um exemplo concretosobre 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. PolimorfismoPolimorfismo caracteriza a criação defunções com um mesmo nome, mascódigos diferentes, facilitando aextensão de sistemas.Um tipo de polimorfismo é aredefinição de métodos para umaclasse derivada. Para que issoaconteça, o método deve possuir omesmo nome, tipo de retorno eargumentos do método sobrescrito.Trabalho: Dê um exemplo, da vidaprá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. TPC1. 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.

×