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

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

Análise Orientada a Objetos

Apresentações semelhantes


Apresentação em tema: "Análise Orientada a Objetos"— Transcrição da apresentação:

1 Análise Orientada a Objetos
Maria Augusta Constante Puget

2 Histórico das Metodologias de Desenvolvimento de Sistemas (1)
Crise do Software (~1970) Termo utilizado nos anos 70 para expressar as dificuldades no desenvolvimento de software frente ao rápido crescimento da demanda, da complexidade dos problemas a serem resolvidos e da inexistência de técnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem ser validados.

3 Histórico das Metodologias de Desenvolvimento de Sistemas (2)
Crise do Software (~1970) As causas da crise do software estão ligadas à complexidade inerente ao processo de desenvolvimento de software e à relativa imaturidade da engenharia de software. A crise se manifestou de várias formas: Projetos estourando o orçamento. Projetos estourando o prazo. Softwares de baixa qualidade. Softwares que não satisfaziam aos requisitos. Projetos ingerenciáveis e código difícil de manter.

4 Histórico das Metodologias de Desenvolvimento de Sistemas (3)
Crise do Software (~1970) Problemas: Pouco tempo para coletar dados sobre o desenvolvimento do software. Comunicação durante o desenvolvimento muito fraca. Falta de testes complexos. Surgem as Metodologias de Desenvolvimento de Sistemas: Análise Estruturada. Análise Essencial. Análise Orientada a Objetos.

5 Por que Orientação a Objetos (1)
Existência de ferramentas completas para sua utilização (integrando especificação e implementação). Qualidade melhor de software (se usada corretamente). Produtividade em função do reuso (não é imediata). Manutenabilidade: produção de códigos mais fáceis de serem entendidos e mantidos (se forem bons). Melhor adequação para a construção de sistemas distribuídos e para aplicações voltadas à Internet.

6 Por que Orientação a Objetos (2)
O paradigma de programação orientada a objetos (OOP) pode significar melhor organização, planejamento, desenvolvimento e manutenção de uma aplicação. Porém programar OO sem um desenho OO pode ser uma tarefa difícil, levando a uma implementação deficiente, sem os benefícios de médio e longo prazo esperados da OOP. E, para obter um bom desenho (OOD), precisamos de um método de análise OO (OOA).

7 Análise Orientada a Objetos (1)
Análise e desenho orientado a objetos (Object-oriented analysis and design – OOAD) é uma abordagem de engenharia de software que modela um sistema como um grupo de objetos que interagem entre si. Cada objeto representa alguma entidade de interesse no sistema que está sendo modelado e é caracterizado por sua classe, seu estado e seu comportamento. Vários modelos podem ser criados para mostrar a estrutura estática e o comportamento dinâmico destes objetos em colaboração. Há um número de diferentes notações para representar estes modelos, tal como a Unified Modeling Language (UML).

8 Análise Orientada a Objetos (2)
Análise orientada a objetos (OOA) observa o domínio do problema com o objetivo de produzir um modelo conceitual da informação que existe na área que está sendo analisada. As fontes para a análise podem ser uma descrição escrita dos requisitos do sistema, um documento visão formal, entrevistas com os interessados, entre outros. O resultado da análise orientada a objetos é uma descrição daquilo que o sistema deve funcionalmente fazer, na forma de um modelo conceitual. Isto será tipicamente representado como um conjunto de casos de uso, um ou mais diagramas de classe UML e um número de diagramas de interação.

9 Desenho Orientado a Objetos (1)
Enquanto OOA foca em “o que o sistema faz”, OOD se concentra em “como o sistema faz”. O Desenho Orientado a Objetos transforma o modelo conceitual produzido na análise orientada a objetos, levando em conta as restrições impostas pela arquitetura escolhida e quaisquer outras restrições – tecnológicas ou ambientais – tais como tempo de resposta, plataforma de tempo de execução, ambiente de desenvolvimento, ou linguagem de programação. Os conceitos do modelo de análise são mapeados em classes e interfaces a serem implementadas. O resultado é um modelo no domínio da solução: Uma descrição detalhada de como o sistema deve ser construído.

10 Conceitos: Objetos (1) Informalmente, sinônimo de objeto: COISA.
Como estamos cercados de coisas, também estamos cercados de objetos. Lembrando: Nem toda coisa é “palpável” (Ex: conta bancária). Para nós, seres humanos, é muito natural estarmos cercados de coisas (OBJETOS), pois nós as entendemos e sabemos como utilizá-las e como elas se relacionam. Portanto, somos “Orientados a Coisas”.

11 Conceitos: Objetos (2) Objetivo “não declarado” da Orientação a Objetos: Trazer a naturalidade e a simplicidade do entendimento e manipulação das “coisas” do mundo real para dentro dos sistemas computacionais (cujos objetos deveriam ser tão simples e naturais quanto as coisas que eles representam). Por quê ? Porque conhecemos muito bem a “Orientação a Coisas” e, se objeto == coisa, então “uma coisa leva à outra ...” 

12 Conceitos: Objetos (3) Objeto: Qualquer “coisa” do mundo real.
Uma entidade física ou abstrata que faça sentido num contexto analisado. Uma instância de uma classe. Se caracteriza pelos atributos que possui e operações que pode realizar.

13 Conceitos: Objetos (4) Exemplos: uma conta corrente (“0123-003934-1”)
uma folha de cheque (“234564”) uma roda um automóvel (“Honda Civic preto 06/06”) um cliente (“Maria Antonia Guimaraes”) uma janela um botão um time de futebol (“São Bento”) uma partida de futebol (“S. Bento x Santos”)

14 Conceitos: Um objeto possui...
Estado Comportamento Identidade

15 Conceitos: Um objeto possui Estado (1)
O estado de um objeto é uma das condições em que o objeto existe. Ex: Conta corrente xxxx-xx está com saldo de R$500,00. O estado de um objeto pode mudar no decorrer do tempo. O estado de um objeto é implementado através de um conjunto de atributos (propriedades).

16 Conceitos: Um objeto possui Estado (2)
Exemplo: Nome: José da Silva Nascimento: 20/12/1980 Admissão: 01/02/2001 Status: Em Férias

17 Conceitos: Um objeto possui Comportamento (1)
O comportamento determina como o objeto age e reage. O comportamento define como um objeto reage às requisições de outro objeto. O comportamento de um objeto é modelado pelo conjunto de mensagens que ele pode receber e que desencadeiam as operações (serviços) que ele pode executar.

18 Conceitos: Um objeto possui Comportamento (2)
Acelerar Parar Motorista Ônibus

19 Conceitos: Um objeto possui Identidade (1)
Um objeto possui um identificador que o distingue de outros objetos semelhantes. Exemplo: Ônibus AGP-4482

20 Conceitos: Objeto - Definição (1)
Um objeto é uma entidade que possui um estado e um conjunto de operações definidas para funcionarem nesse estado. O estado é representado como um conjunto de atributos de objeto. As operações associadas ao objeto fornecem serviços a outros objetos (clientes) que solicitam esses serviços quando alguma computação é necessária.

21 Conceitos: Classes (1) Classe:
Denominação para um conjunto de objetos. Abrange atributos e operações. Programas orientados a objetos são organizados por meio de classes [de objetos].

22 Conceitos: Classes (2) É uma descrição de um grupo de objetos com:
Propriedades similares (atributos). Comportamento comum (operações). Relacionamentos comuns com outros objetos (associações).

23 Conceitos: Classes (3) Exemplos: conta corrente folha de cheque roda
automóvel cliente fornecedor janela botão time de futebol jogo de futebol

24 Conceitos: Classes -Definição (1)
Os objetos são criados de acordo com uma definição de classe de objetos. Uma definição de classe de objetos funciona tanto como uma especificação quanto como um template para criação de objetos. Essa definição inclui declarações de todos os atributos e operações que devem ser associados a um objeto dessa classe.

25 Conceitos: Abstração (1)
Princípio de ignorar os aspectos de um assunto não relevante para o propósito em questão, tornando possível uma maior concentração nos aspectos principais. Exemplo: Classe Pessoa Ao se criar um sistema para um hospital, provavelmente deva se considerar aspectos tais como peso, altura e tipo sangüineo. Por outro lado, tais aspectos não seriam relevantes para uma vídeo-locadora...

26 Conceitos: Encapsulamento (1)
Significa “esconder” a estrutura interna do objeto. Objetos podem encapsular atributos e operações. Garante maior independência entre os objetos, e portanto um baixo acoplamento. Resulta em facilidades para a manutenção do software, pois a alteração de alguma coisa dentro da “cápsula” não deve afetar a maneira como o mundo exterior interage com ela.

27 Conceitos: Encapsulamento (2)
Exemplo: Podemos dizer que o motor de um automóvel está encapsulado, pois normalmente não podemos ver ou alterar características do motor. Podemos então utilizar um automóvel sem conhecer nada das complexidades do motor, que estão encapsuladas.

28 Conceitos: Herança (1) Herança:
Objetos podem “herdar” características de outros objetos. Para existir herança deve existir hierarquia na classificação dos objetos (superclasse e subclasse). Objetos podem herdar atributos, operações e relacionamentos. É um poderoso instrumento de reusabilidade e produtividade, pois: • Atributos e operações comuns são especificados apenas uma vez; • Novas classes são facilmente criadas (contendo apenas a diferença entre ela e a classe-pai).

29 Conceitos: Herança (2) Hierarquia de classes:
Em uma hierarquia de classes, as classes mais genéricas ficam no topo da hierarquia. Os objetos das classes mais especializadas herdam seus atributos e serviços. Essas classes mais especializadas podem, por sua vez, implementar seus próprios atributos e serviços.

30 Conceitos: Herança (3) Hierarquias de classes: Funcionário Gerente
orcamentosControlados dataDesignação Programador projeto linguagensProgramação GerenteDeProjeto projetos GerenteDepartamento departamento GerenteEstrategico responsabilidades

31 Conceitos: Herança (4) Herança simples X Herança Múltipla:
Herança simples: Uma classe herda características apenas de uma outra classe. Herança múltipla: Uma classe herda de duas ou mais classes. Exemplo: Pássaro: Envergadura de asas, velocidade máxima. Comer, voar. Lagarto: Número de garras, cor das escamas. Comer, andar. Dragão: Nome, envergadura de asas, velocidade máxima, número de garras, cor das escamas. Expelir fogo, capturar donzelas, comer, voar, andar.

32 Conceitos: Herança (5) Herança Múltipla: Pássaro envergaduraAsas
velocidadeMaxima comer voar Lagarto numeroGarras corEscamas comer andar Dragão nome expelirFogo capturarDonzelas

33 Conceitos: Composição (1)
As coisas do mundo real são, muitas vezes, objetos compostos por outros objetos. Exemplo: Um livro é composto de páginas. Páginas possuem parágrafos. Parágrafos possuem frases... e assim sucessivamente...

34 Conceitos: Composição (2)
Assim como um livro pode ser visto como um objeto, seus componentes também podem. Desta forma, podemos concluir que objetos são compostos de outros objetos, sendo este o princípio da composição. Assim, composição é um relacionamento entre classes que traduz uma relação do tipo TEM-UM.

35 Conceitos: Composição (3)
É a técnica de construir um novo tipo não pela derivação partindo de outra classe, mas pela junção de vários outros objetos de menor complexidade que fornecem ao objeto composto determinada funcionalidade quando em conjunto.

36 Conceitos: Polimorfismo (1)
Palavra de origem grega, que significa “ter muitas formas”. Capacidade de uma mesma mensagem ser entendida e executada de forma diferente por objetos (de classes distintas) distintos. É a capacidade de objetos diferentes reagirem segundo a sua função a uma ordem padrão.

37 Conceitos: Polimorfismo (2)
Exemplos: O comando "abre", por exemplo, faz um objeto entrar em ação, seja ele uma janela, uma porta ou uma tampa de garrafa. Peça a uma pessoa para “cantar”. Cada tipo de pessoa irá responder ao pedido de forma diferente: algumas melhores que outras.

38 Conceitos: Polimorfismo (3)
É também a possibilidade de manipular objetos mais especializados como se fossem objetos mais genéricos. Exemplo: Se você pedir para um empregado, um gerente ou um cantor para “cantar”, você não precisa saber à priori que tipo de pessoa ele é, pois “cantar” está definido na classe Pessoa, e mesmo se os indivíduos pertencerem a classes mais especializadas, por herança, eles continuam sendo da classe Pessoa e, portanto, conseguem responder ao pedido para “cantar”. Os programas de calouros na TV atestam isso de forma irrefutável.


Carregar ppt "Análise Orientada a Objetos"

Apresentações semelhantes


Anúncios Google