análise orientada a objetos maria augusta constante puget

38
Análise Orientada a Objetos Maria Augusta Constante Puget

Upload: yasmin-de-paiva-olivares

Post on 07-Apr-2016

224 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Análise Orientada a Objetos Maria Augusta Constante Puget

Análise Orientada a Objetos

Maria Augusta Constante Puget

Page 2: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 3: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 4: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 5: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 6: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 7: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 8: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 9: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 10: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 11: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 12: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 13: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 14: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Um objeto possui...

Um objeto possui:

Estado Comportamento Identidade

Page 15: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 16: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Um objeto possui Estado (2)

Exemplo: Nome: José da Silva Nascimento: 20/12/1980 Admissão: 01/02/2001 Status: Em Férias

Page 17: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Conceitos: Um objeto possui Comportamento (1)

Page 18: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Um objeto possui Comportamento (2)

Acelerar

Parar

Motorista

Ônibus

Page 19: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Um objeto possui Identidade (1)

• Um objeto possui um identificador que o distingue de outros objetos semelhantes.

• Exemplo: Ônibus AGP-4482

Page 20: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 21: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 22: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 23: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 24: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 25: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Abstração (1)

Abstração:Abstração: 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...

Page 26: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Encapsulamento (1)Encapsulamento:Encapsulamento: 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.

Page 27: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Encapsulamento (2)

Exemplo:Exemplo: Podemos dizer que o motor de um Podemos dizer que o motor de um

automóvel está encapsulado, pois automóvel está encapsulado, pois normalmente não podemos ver ou alterar normalmente não podemos ver ou alterar características do motor.características do motor.

Podemos então utilizar um automóvel sem Podemos então utilizar um automóvel sem conhecer nada das complexidades do conhecer nada das complexidades do motor, que estão encapsuladas.motor, que estão encapsuladas.

Page 28: Análise Orientada a Objetos Maria Augusta Constante Puget

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

Page 29: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 30: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Herança (3)Hierarquias de classes:

Funcionário

GerenteorcamentosControladosdataDesignação

ProgramadorprojetolinguagensProgramação

GerenteDeProjeto

projetos

GerenteDepartamento

departamento

GerenteEstrategico

responsabilidades

Page 31: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 32: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Herança (5)

Herança Múltipla:Pássaro

envergaduraAsasvelocidadeMaxima

comervoar

Lagarto

numeroGarrascorEscamas

comerandar

Dragãonome

expelirFogocapturarDonzelas

Page 33: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Composição (1)

Composição: 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...

Page 34: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 35: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 36: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Polimorfismo (1)

Polimorfismo: 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.

Page 37: Análise Orientada a Objetos Maria Augusta Constante Puget

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.

Page 38: Análise Orientada a Objetos Maria Augusta Constante Puget

Conceitos: Polimorfismo (3)Polimorfismo: É 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.