• Nenhum resultado encontrado

O paradigma da Orientação a Objetos

N/A
N/A
Protected

Academic year: 2018

Share "O paradigma da Orientação a Objetos"

Copied!
15
0
0

Texto

(1)

Prof Sylvio Vieira Sylvio@unifra.br

n Um paradigma é uma forma de abordar um problema.

n O paradigma da orientação a objetos surgiu no fim dos anos 60.

n Hoje em dia, praticamente suplantou o paradigma anterior, o paradigma estruturado...

n Alan Kay, um dos pais do paradigma da orientação a objetos, formulou a chamada analogia biológica.

n “Como seria um sistema de software que funcionasse como um ser vivo?

n Cada “célula” interagiria com outras células através do envio de mensagens para realizar um objetivo comum.

n Adicionalmente, cada célula se comportaria como uma unidade autônoma.

n De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagem entre si.

n Com isso, ele estabeleceu os princípios da orientação a

objetos.

n Tudo é um objeto.

(2)

n Um programa é uma coleção de objetos dizendo uns

aos outros o que fazer.

Para fazer uma requisição a um objeto você “manda uma mensagem” para este objeto. Mais concretamente, você pode pensar em uma mensagem como sendo uma chamada de um procedimento ou função pertencente a um objeto em particular.

n Um objeto pode ser composto por vários outros

objetos

Em outras palavras: você pode criar um novo tipo de objeto empacotando objetos existentes. Dessa forma, você pode adicionar complexidade a um programa e escondê-la por trás da simplicidade de uso dos objetos.

n Todo objeto tem um tipo.

Usando as palavras certas, cada objeto é uma instância de uma classe, onde classe é um sinônimo de tipo. A questão mais importante relativa a uma classe é “que mensagens eu posso enviar para uma instância dessa classe?”

n Todos os objetos de um dado tipo podem receber as

mesmas mensagens.

Além disso, uma vez que, por exemplo, um objeto do tipo “círculo” é também um objeto do tipo “forma geométrica”, o objeto “círculo” aceita qualquer mensagem endereçada a uma “forma geométrica”. Essa capacidade de “subtituição” de um objeto por outro é um dos mais poderosos conceitos em orientação a objetos.

• Definição:

• Um conceito, uma abstração com significado específico em um contexto

• Propósito:

• Entidade de software que reflete de alguma forma o mundo real • Representar uma entidade do mundo real

• Objetos possuem:

• Identidade

• Conjunto de características que determinam seu estado

• Comportamento específico definido por um conjunto de ações

n

Uma abstração é qualquer modelo que inclui os

(3)

!"

Beija-Flor

Identidade:‘o beija-flor que vem ao meu jardim’ Características: penas azuis bico fino vôo rápido Comportamento: voar piar

!"

n Pessoa

Identidade:‘Mário’ Características:

olhos pretos nasceu em 16/02/70 pesa 70kg mede 1,70m Comportamento: andar falar comer rir

!"

Telefone

Identidade::número 2576-0989 Características: azul 2.4 GHz tone Comportamento: tocar discar

!"

Ônibus

Identidade: placa LXY 7684 Características: cor amarela 30 assentos a diesel Comportamento: frear andar correr buzinar acelerar Representação Mário Características (estado) Comportamento Identidade Serviços, Interface ou protocolo n Implementação

n # $ %

n& ' (

n ' ) *

n! '

n# ' ( +,

(4)

-!

'

n Na terminologia da orientação a objetos, diz-se que um objeto possui uma interface.

n A interface de um objeto é o que ele conhece e o que ele sabe fazer, sem descrever comoo objeto conhece ou faz.

n A interface de um objeto define os serviços que ele pode realizar e conseqüentemente as mensagens que ele recebe.

!

'

n

Uma interface pode ter

várias formas de

implementação

.

n

Mas, pelo Princípio do

Encapsulamento, a

implementação de um

serviço no objeto servidor

não importa para o objeto

cliente. (

O cliente confia

em interfaces e não em

implementações)

&

n Definição:

n ( ' . ' '

/

n Uma classe pode ser vista como uma “fábrica de objetos”

n Tecnicamente falando, objetos são “instâncias” em tempo de execução de uma classe

n 0 1 '

n 0 ' / 2' .

' $ ) 2' $ ' '

, ' ' *

!"

Características:

cor das penas: azuis formato do bico: fino velocidade de vôo: rápida

Comportamento:

voar piar

Identidade::o beija-flor que vem ao meu jardim

1

) *

!"

Identidade::meu pombo correio Características:

cor das penas: cinza formato do bico: curto velocidade de vôo: média

Comportamento:

voar piar

1

) *

#

3

4

A classe

(5)

5

#

6

#

%

!"

Identidade:‘Telefone da minha casa’ Características:

marca: Siemens número: 2576-0989 discagem: pulso

Comportamento:

tocar discar

1

) *

!"

1

) *

Identidade:‘Meu celular’

Características:

marca: Nokia número: 99193467 discagem: tom

Comportamento:

tocar discar

#

3

4

A classe

O objeto

(

(6)

7

#

%

&

Classe

Instâncias (objetos)

#

3

4

A classe

As instâncias

#

6

#

6

'

n Descrevem as característicasdas instâncias de uma classe n Seus valores definem o estadodo objeto

n O estado de um objeto pode mudar ao longo de sua existência n A identidade de um objeto, contudo, nunca muda

Funcionário_Helena

Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000

InformarSalário CalcularIdade

Funcionário_Mário

Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000

(7)

8

9

:

(

n Representam o comportamentodas instâncias de uma classe n Correspondem ao protocoloou açõesdas instâncias de uma classe

Funcionário_Helena

Nome=Helena Reis Nasc=28/01/1965 Salário = 4.000

InformarSalário CalcularIdade

Funcionário_Mário

Nome=Mário Sá Nasc=16/02/1970 Salário = 3.000

InformarSalário CalcularIdade

4000

3000

Informar Salário?

#

3

4

(

( :+,

n Um método é a implementação de uma operação

( :+,

)6

*

9

:

(

n Métodos só tem acesso aos dados da classe para a qual foram definidos

n Os dados de uma classe só podem ser manipulados por métodos da classe (pelo princípio do encapsulamento)

n Métodos possuem argumentos, variáveis locais , valor de retorno etc

n Alguns métodos especiais:

n & ' ; '

n 3 ' ; '

<

n O que é herança?

(8)

=

<

n Para que serve a herança?

Considere a criação de uma classe ClasseB.

Que métodos estão disponíveis através de uma referência para a ClasseB?

<

Suponha agora que a classe ClasseB herda de ClasseA

Que métodos estão agora disponíveis para uma referência da ClasseB ?

<

n Poderoso mecanismo para o reaproveitamento de código

n O objeto objB tem agora disponíveis os métodos da ClasseA sem ser necessário reescrevê-los na ClasseB

n Um objeto da ClasseB também é umobjeto da ClasseA.

n Facilita a manutenção do código: Os métodos não são replicados. Se for necessário alterar o código do método m3, basta alterá-lo em ClasseA.

n ClasseB pode "recusar" parte da herança reimplementando os métodos herdados

<

n Várias subclasses podem herdar da mesma superclasse

<

n A hierarquia de herança pode ter vários níveis

<

n A Herança também pode surgir a partir da refatoração de classes existentes de modo a eliminar a duplicação de código

(9)

>

<

n Refatoração

Superclasse (características comuns)

Subclasses (características específicas)

<

O mecanismo de herança pode ser melhor entendido através do seguinte exemplo:

<

n A classe ContaBancaria tem quatro atributos:

n ? .

n $? . @ & A n ' & ? . @

n ? .

n Os métodos depositar e sacar são usados para fazer um depósito ou retirada da conta bancária.

n A classe ContaBancária, sozinha, não é suficiente para realizar todas as transações bancárias. Existem geralmente dois tipos de contas: a conta corrente e a conta de investimentos

<

Vamos derivar portanto duas subclasses que herdam da superclasse ContaCorrente

<

As subclasses ContaInvestimento e ContaCorrente herdam as propriedades e métodos da classe ContaBancaria

(10)

C

#

'

O modelo de casos de usoé uma representação das funcionalidadesexternamente observáveis do sistema e dos elementos externosao sistema que interagem com o mesmo.

O modelo de casos de uso modela os requisitos funcionaisdo sistema.

#

'

O diagrama da UML utilizado na modelagem de

casos de uso é o

diagrama de casos de uso

.

Técnica de modelagem idealizada por Ivar

Jacobson, na década de 1970.

Mais tarde, incorporada ao método Objectory.

Posteriormente, a notação de casos de uso foi

adicionada à UML.

#

'

Este modelo direciona diversas das tarefas posteriores do ciclo de vida do sistema de software.

Além disso, o modelo de casos de uso força os desenvolvedores a moldar o sistema de acordo com o usuário.

&

O modelo de casos de uso de um sistema é composto de:

n & ' n

n D

&

'

Um caso de uso é a especificação de uma seqüência de interações entre um sistema e os agentes externos. Define parte da funcionalidade de um sistema, sem revelar

a estrutura e o comportamento internos deste sistema.

Um modelo de casos de uso típico é formado de vários casos de uso.

&

'

Um caso de uso representa

quem

(11)

3

(

Cada caso de uso é definido através da descrição narrativa das interações que ocorrem entre o(s) elemento(s) externo(s) e o sistema.

Há várias formas de se descrever casos de uso. n Grau de abstração

n Formato

n Grau de detalhamento

!"

'

O Cliente chega ao caixa eletrônico e insere seu cartão. O Sistema requisita a senha do Cliente. Após o Cliente fornecer sua senha e esta ser validada, o Sistema exibe as opções de operações possíveis. O Cliente opta por realizar um saque. Então o Sistema requisita o total a ser sacado. O Sistema fornece a quantia desejada e imprime o recibo para o Cliente.

!"

'

1. Cliente insere seu cartão no caixa eletrônico.

2. Sistema apresenta solicitação de senha.

3. Cliente digita senha.

4. Sistema exibe menu de operações disponíveis.

5. Cliente indica que deseja realizar um saque.

6. Sistema requisita quantia a ser sacada.

7. Cliente retira a quantia e recibo.

!"

Cliente Sistema

Insere seu cartão no caixa eletrônico.

Digita senha.

Solicita realização de saque.

Retira a quantia e o recibo.

Apresenta solicitação de senha.

Exibe operações disponíveis.

Requisita quantia a ser sacada.

Descrição do Negócio.

A lojaCdcomCarinhotrabalha com a venda, à vista e parcelada, de CD’s de todos os gêneros musicais. Ela oferece a seus clientes, do estado do Rio de Janeiro, um serviço de “delivery”, permitindo que eles recebam, em casa, produtos requisitados pelo telefone. Seus clientes estão acostumados a uma abordagem diferencial, ou seja, a loja costuma mandar mala direta quando chega algum produto cujo gênero se encaixe com o perfil daquele cliente. Há, também, ofertas promovidas durante datas especiais, por exemplo, no aniversário dos clientes, no dia dos namorados, etc. Clientes que já compraram mais de 20 CD’s na loja são classificados como “Clientes Prata” e recebem descontos de 10%. Clientes, com mais de 50 compras, são denominados “Clientes Ouro”, com descontos de 25%.

Fazer Descrição contínua, enumerada e narrativa particionada

3

4

O grau de detalhamento a ser utilizado na descrição de um caso de uso também pode variar.

Um caso de uso sucintodescreve as interações sem muitos detalhes.

(12)

E '

O grau de abstração de um caso de uso diz respeito à existência ou não de menção à tecnologiaa ser utilizada na descrição deste caso de uso.

Um caso de uso essencialnãofaz menção à tecnologia a ser utilizada.

Um caso de uso realapresenta detalhes da tecnologia a ser utilizada na implementação deste caso de uso .

E '

1) Cliente fornece sua identificação. 2) Sistema identifica o usuário. 3) Sistema fornece operações disponíveis.

4) Cliente solicita o saque de uma determinada quantia. 5) Sistema fornece a quantia desejada da conta do Cliente. 6) Cliente recebe dinheiro e recibo.

&

F

Um caso de uso tem diversas maneiras de ser realizado. Um cenárioé a descrição de uma das maneiras pelas quais

um caso de uso pode ser realizado.

Um cenário também é chamado de instânciade um caso de uso.

Normalmente há diversos cenários para um mesmo caso de uso.

Úteis durante a modelagem de interações.

&

F

• Um Cliente telefona para a empresa. • Um Vendedor atende ao telefone.

• Cliente declara seu desejo de fazer um pedido de compra. • Vendedor pergunta a forma de pagamento.

• Cliente indica que vai pagar com cartão de crédito.

• Vendedor requisita onúmero do cartão, adata de expiração eo endereço de entrega.

• Vendedor pede as informações do primeiro item. • Cliente fornece o primeiro item.

• Vendedor pede as informações do segundo item. • Cliente fornece o segundo item

• Vendedor pede as informações do terceiro item • Cliente e informa o terceiro item.

• Vendedor informa que o terceiro item está fora de estoque. • Cliente pede para que O Vendedor feche o pedido somente com os dois

primeiros itens.

• Vendedor fornece o valor total, a data de entrega e uma identificação do pedido.

• Cliente agradece e desliga o telefone.

• Vendedor contata a Transportadora para enviar o pedido do Cliente.

Elemento externoque interagecom o sistema.

n G " H? $ . D

n G H? ' $ ( D

Casos de uso representam uma seqüência de interações entre o sistema e o ator.

n $ ( D

Normalmente um agente externo inicia a seqüência de interações com o sistema, ou um evento acontece para que o sistema responda.

Categorias de atores:

n pessoas(Empregado, Cliente, Gerente, Almoxarife, Vendedor, etc); n organizações(Empresa Fornecedora,

Agência de Impostos, Administradora de Cartões, etc);

n outros sistemas(Sistema de Cobrança, Sistema de Estoque de Produtos, etc).

(13)

Um ator corresponde a um papelrepresentado em relação ao sistema.

n O mesmo indivíduo pode ser o Cliente que compra mercadorias e o Vendedor que processa vendas. n Uma pessoa pode representar o papel de Funcionário

de uma instituição bancária que realiza a manutenção de um caixa eletrônico, mas também pode ser o Cliente do banco que realiza o saque de uma quantia. O nome dado a um ator deve lembrar o seu papel, ao invés

de lembrar quem o representa.

F

'

F

Um ator pode participar de muitos casos de uso.

Um caso de uso pode envolver vários atores, o que resulta na classificação dos atores em primáriosou secundários.

n B F , 2' 2' ' 2I/ (

' ' D

n ' F ' J J / ' '"

' . D

Exemplo: para que o Usuário (ator primário) requisite uma página a um Browser (sistema), um outro ator (secundário) está envolvido, o Servidor Web.

Casos de uso e atores não existem sozinhos. Podem haver relacionamentos entre eles.

A UML define diversos tipos de relacionamentos no modelo de casos de uso:

n Comunicação

n Inclusão

n Extensão

n Generalização

'

Representa a informação de quais atores estão associados a que casos de uso

O fato de um ator estar associado a um caso de uso significa que esse ator interage (troca informações) com o sistema.

Um ator pode se relacionar com mais de um caso de uso. É o mais comum dos relacionamentos.

'

Existe somente entre casos de uso. Analogia útil: rotina.

n Em uma linguagem de programação, instruções

podem ser agrupadas em uma unidade lógica chamada rotina.

n Sempre que essas instruções devem ser executadas,

a rotina correspondente é chamada.

Quando dois ou mais casos de uso incluem uma seqüência de interações comum, esta seqüência comum pode ser descrita em um outro caso de uso.

'

Este caso de uso comum:

n evita a descrição de uma mesma seqüência de

interações mais de uma vez e

n torna a descrição dos casos de uso mais simples.

Um exemplo: considere um sistema de controle de transações bancárias. Alguns casos de uso deste sistema são Obter Extrato, Realizar Saquee Realizar

Transferência.

n Há uma seqüência de interações em comum: a

(14)

-"

Utilizado para modelar situações onde diferentes seqüências de interações podemser inseridas em um caso de uso.

Sejam A e B dois casos de uso.

n Um relacionamento de extensão de B para A indica que um ou mais dos cenários de A podemincluir o comportamento especificado por B.

n Neste caso, diz-se que B estendeA.

n O caso de uso A é chamado de estendidoe o caso de uso B de extensor.

"

Cada uma das diferentes seqüências representa um comportamento opcional, que só ocorre sob certas condições ou cuja realização depende da escolha do ator.

Quando um ator opta por executar a seqüência de interações definida no extensor, este é executado.

n Após a sua execução, o fluxo de interações volta ao caso de uso estendido, recomeçando logo após o ponto em que o extensor foi inserido.

Importante: não necessariamente o comportamento definido pelo caso de uso extensor é realizado.

"

Exemplo: considere um processador de textos. Considere que um dos casos de uso deste sistema seja Editar Documento.

No cenário típico deste caso de uso, o ator abre o documento, modifica-o, salva as modificações e fecha o documento.

Mas, em outro cenário, o ator pode desejar que o sistema faça uma verificação ortográfica no documento. Em outro, o ele pode querer realizar a substituição de um

fragmento de texto por outro.

"

Interações de Substituir Texto:

1.Em qualquer momento durante Editar Documento, o ator pode optar por substituir um fragmento de texto por outro.

2.O ator fornece o texto a ser substituído e o texto substituto.

3.O ator define os parâmetros de substituição (substituir somente palavras completas ou ocorrências dentro de palavras; substituir no documento todo ou somente na parte selecionada; ignorar ou considerar letras maiúsculas e minúsculas).

4.O sistema substitui todas as ocorrências encontradas no texto.

.

Relacionamento no qual o reuso é mais evidente. Este relacionamento permite que um caso de uso (ou um

ator) herde características de um caso de uso (ator) mais genérico.

O caso de uso (ator) herdeiro pode especializar o comportamento do caso de uso (ator) base.

Pode existir entre dois casos de uso ou entre dois atores.

.

Na generalização entre casos de uso, sejam A e B dois casos de uso.

n Quando B herda de A, as seqüências de comportamento de A valem também para B.

n Quando for necessário, B pode redefinir as seqüências de comportamento de A.

n Além disso, B participa em qualquer relacionamento no qual A participa.

Vantagem: comportamento do caso de uso original é reutilizado pelos casos de uso herdeiros.

(15)

5

.

A generalização entre atoressignifica que o herdeiro possui o mesmo comportamento que o ator do qual ele herda.

Além disso, o ator herdeiro pode participar em casos de uso em que o ator do qual ele herda não participa.

Um exemplo: considere uma biblioteca na qual pode haver alunos e professores como usuários.

n Ambos podem realizar empréstimos de títulos de livros e reservas de exemplares.

Referências

Documentos relacionados

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais

Nos últimos anos, resíduos de antibióticos utilizados quer na medicina humana, quer na veterinária têm sido detectados em águas superficiais, águas de consumo,

Pretendo, a partir de agora, me focar detalhadamente nas Investigações Filosóficas e realizar uma leitura pormenorizada das §§65-88, com o fim de apresentar e

Heart samples from group 1 presented higher amounts of collagen than samples from group 2 (normal diet), showing the establishment of the atherosclerotic process in coronary arteries

13.1 - A Casa da Comareira de Góis possui Livro de Reclamações que se encontra disponível no escritório da Lousitânea – Liga de Amigos da Serra da Lousã, sita Rua dos Bois,

The differ- ent professional backgrounds (Industrial Design, Service Design and Graphic Design) have allowed for the syner- gies created in the Project Design class of the University

Nesses anos (anos letivos 1984/85 e 1985/86) houve várias atividades que envolveram o CRPD e filarmónicas da ilha (entr. No ano letivo seguinte o professor Francisco Paquete apenas

Atentemo-nos seguintes exemplos nas frases «A minha mulher está doente» e «A minha esposa está doente», as palavras destacadas («mulher» e «esposa») são sinônimas; no entanto,