• Nenhum resultado encontrado

Projeto orientado a objetos

N/A
N/A
Protected

Academic year: 2021

Share "Projeto orientado a objetos"

Copied!
28
0
0

Texto

(1)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 1

Projeto orientado a objetos

Objetivos

● Explicar como um projeto de software pode ser

representado como um conjunto de objetos que interagem e que gerenciam seu estado e operações.

● Descrever as atividades no processo de projeto

orientado a objetos

● Apresentar vários modelos que podem ser usados

para descrever um projeto orientado a objetos

● Mostrar como a UML pode ser usada para

(2)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 3

Tópicos abordados

Objetos e classes de objetos

Processo de projeto orientado a objetos

Evolução de projeto

Desenvolvimento orientado a objetos

● Análise, projeto e programação orientados a objetos

estão relacionados, mas são distintos.

● A análise orientada a objetos concentra-se no

desenvolvimento de um modelo de objetos do domínio da aplicação.

● O projeto orientado a objetos concentra-se no

desenvolvimento de um modelo orientado a objetos de sistema para implementar requisitos.

● A programação orientada a objetos concentra-se no

desenvolvimento de um projeto orientado a objetos usando uma linguagem de programação, tal como Java ou C++.

(3)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 5

Características do projeto orientado

a objetos

● Objetos são abstrações do mundo real ou entidades

de sistema e gerenciam a si próprios.

● Os objetos são independentes e englobam estados

e informações de representação.

● A funcionalidade do sistema é expressa em termos

de serviços de objetos.

● Áreas de dados compartilhados são eliminados e os

objetos se comunicam por meio da passagem de mensagens.

● Objetos podem ser distribuídos e executados

seqüencialmente ou em paralelo.

(4)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 7

Vantangens do projeto orientado a

objetos

Maior facilidade de manutenção. Os objetos

podem ser compreendidos como entidades

autônomas.

Objetos são, potencialmente, componentes

reusáveis.

Para alguns sistemas, pode haver um

mapeamento óbvio de entidades do mundo

real para objetos de sistema.

Objetos e classes de objetos

Objetos são entidades em um sistema de

software que representam instâncias do

mundo real e entidades de sistema.

Classes de objeto podem herdar atributos e

(5)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 9

Objetos e classes de objetos

Um objeto é uma entidade que possui um estado e um conjunto definido operações definidas para funcionar 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 estes serviços quando alguma computação é necessária.

Os objetos são criados de acordo com uma definição de classe de objeto. Uma definição de classe de objeto 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 associadas a um objeto dessa classe.

A linguagem de modelagem

unificada (UML)

● Várias notações diferentes para a descrição de

projetos orientados a objetos foram propostas nas décadas de 1980 e 1990.

● A UML é uma integração dessas notações.

● Ela descreve notações para uma série de modelos

diferentes que podem ser produzidos durante a análise e o projeto de objetos orientados.

Ela é atualmente um padrão ‘de fato’ para

(6)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 11

Classe de objeto Funcionário (UML)

Comunicação de objetos

● Conceitualmente, os objetos se comunicam por

meio da de passagem de mensagens.

● Mensagens

• O nome do serviço solicitado pelo objeto chamador; • As cópias das informações necessárias para executar o

serviço e o nome de um objeto para o resultado do serviço.

● Na prática, as mensagens são freqüentemente

implementadas pelas chamadas de procedimentos

(7)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 13

Exemplo de mensagens

//Chamar um método associado a um // objeto buffer que retorna o próximo valor // no buffer

v = circularBuffer.Get () ;

// Chamar o método associado a um objeto // termostato que ajuste a temperatura a ser // mantida

thermostat.setTemp (20) ;

Generalização e herança

● Objetos são membros de classes que definem tipos

de atributos e operações.

● As classes podem ser organizadas em uma

hierarquia onde uma classe (uma classe-pai) é uma generalização de uma ou mais classes (classes-filho).

● Uma classe-filho herda os atributos e as operações

da classe-pai e pode adicionar novos métodos ou atributos para si.

● A generalização na UML é implementada como

herança nas linguagens de programação orientada a objetos.

(8)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 15

Uma hierarquia de generalização

Vantagens da herança

É um mecanismo de abstração que pode ser

usado para classificar entidades.

É um mecanismo de reuso em ambos os

níveis, projeto e programação.

O gráfico de herança é uma fonte de

conhecimento da organização acerca de

domínios e sistemas.

(9)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 17

Problemas com herança

Classes de objetos não são auto-contidas.

Elas não podem ser compreendidas sem

referência às suas classes-pai.

Projetistas tendem a reusar o gráfico de

herança criado durante a análise. Isso pode

conduzir à uma ineficiência significativa.

Os gráficos de herança de análise, projeto e

implementação têm diferentes funções, e

devem ser mantidos separadamente.

Associações de UML

● Objetos e classes de objeto participam de

relacionamentos com outros objetos e classes de objeto.

● Na UML, um relacionamento generalizado é

indicado por uma associação.

● Associações podem ser anotadas com informações

que descrevem a associação.

● Associações são gerais, mas podem indicar que o

atributo de um objeto é um objeto associado, ou que um método conta com um objeto associado.

(10)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 19

Um modelo de associação

Objetos concorrentes

A natureza dos objetos como entidades

auto-contidas os torna adequados para

implemantação de concorrência.

O modelo da passagem de mensagem da

comunicação de objetos pode ser

implementado diretamente se eles são

executados em processadores separados

em um sistema distribuído.

(11)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 21

Servidores e objetos ativos

● Servidores

• O objeto é implementado como um processo paralelo (servidor) com pontos de entrada que correspondem às operações de objeto. Se nenhuma chamada é feita para ele, o objeto suspende a sua execução e aguarda outras solicitações de serviço.

● Objetos ativos

• Os objetos são implementados como processos paralelos, e o estado interno do objeto pode ser modificado por ele próprio, e não simplesmente por chamadas externas.

Objeto ativo transponder

Objetos ativos podem ter seus atributos

modificados, mas podem, também,

atualizá-los autonomamente usando operações

internas.

Um objeto

transponder

transmite a posição

da aeronave. A posição pode ser atualizada

usando um sistema de navegação por

satélite. O objeto atualiza peeriodicamente a

posição pela triangulação dos satélites.

(12)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 23

Um objeto ativo Transponder

Threads Java

Threads em Java são uma construção

simples para implementar objetos

concorrentes.

Os threads devem incluir um método

chamado run() e é iniciado pelo sistema

run-time Java.

Objetos ativos incluem tipicamente um loop

(13)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 25

Um processo de projeto orientado a

objetos

● Processos de projeto estruturados envolvem o

desenvolvimento de uma série de modelos diferentes de sistema.

● Eles requerem uma grande quantidade de esforço

para desenvolvimento e manutenção desses

modelos e, para sistemas pequenos, isto pode não ser adequado em termos de custo.

● Contudo, para sistemas grandes desenvolvidos por

grupos diferentes, modelos de projeto são um mecanismo essencial de comunicação.

Estágios de processo

Destaca as atividades-chave sem estar

amarrado a qualquer processo proprietário,

tal como o RUP.

• Define o contexto e os modelos de uso do

sistema;

• Projeta a arquitetura do sistema;

• Identifica os objetos principais do sistema;

• Desenvolve modelos de projeto;

(14)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 27

Descrição do sistema de

meteorologia

Um sistema de mapeamento meteorológico é necessário para gerar mapas meteorológicos regularmente usando dados coletados de estações remotas, sem funcionários, e de outras fontes de dados, como observatórios, balões e satélites. As estações meteorológicas transmitem seus dados para um computador local em resposta à solicitação dessa máquina.

O sistema de computador local valida os dados coletados e integra os dados a partir de diferentes fontes. Os dados integrados são arquivados e, usando dados desse arquivo e um banco de dados de mapas digitalizados, um conjunto de mapas meteorológicos locais é criado. Os mapas podem ser impressos para distribuição em uma impressora de mapas especial e ser apresentados em diversos formatos.

Contexto de sistema e modelos de

uso

● Desenvolver uma compreensão dos

relacionamentos entre o software que está sendo desenvolvido e seu ambiente externo.

● Contexto do sistema

• É um modelo estático que descreve outros sistemas no ambiente. Use um modelo de subsistema para mostrar outros sistemas. O slide seguinte mostra os sistemas em torno do sistema da estação meteorológica.

● Modelo de uso do sistema

• É um modelo dinâmico que descreve como o sistema interage com seu ambiente. Use casos de uso para

(15)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 29

Arquitetura de camadas

Subsistemas no sistema de mapeamento

meteorológico

(16)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 31

Modelos de casos de uso

Modelos de casos de uso são usados para

representar cada interação com o sistema.

Um modelo de caso de uso mostra as

características do sistema como elípse, e a

entidade de interação como a figura de um

boneco.

Casos de uso para a estação

meteorológica

(17)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 33

Descrição de caso de uso

Projeto de arquitetura

● Uma vez que as interações entre o sistema e seu ambiente

tenham sido compreendidas, você pode usar essas informações para projetar a arquitetura do sistema.

● Uma arquitetura de camadas, conforme discutida no Capítulo

11, é apropriada para a estação meteorológica

• A camada de interface cuida das comunicações;

• A camada de coleta de dados cuida do gerenciamento de instrumentos;

• A camada de instrumentos é responsável pela coleta de dados. ● Não deve haver normalmente mais que sete entidades em um

(18)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 35

Arquitetura da estação meteorológica

Identificação de objetos

A identificação de objetos (ou classes de

objetos) é a parte mais difícil do projeto

orientado a objetos.

Não há ‘fórmula mágica’ para a identificação

de objetos. É baseada no perfil, experiência

e conhecimento de domínio dos projetistas

de sistema.

Identificação de objeto é um processo

(19)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 37

Abordagens para identificação

● Usar uma abordgem gramatical baseada em uma

descrição da linguagem natural do sistema (usado no método HOOD de projeto orientado a objetos).

● Basear a identificação em coisas tangíveis no

domínio da aplicação.

● Usar uma abordagem comportamental e identificar

objetos baseados em no que participa em qual comportamento.

● Usar uma análise baseada em cenários. Os objetos,

os atributos e os métodos em cada cenário são identificados.

Descrição da estação meteorológica

Uma estação meteorológica é um pacote de instrumentos controlados por software que coleta dados, executa processamento de dados e transmite esses dados para processamento posterior. Os instrumentos incluem

termômetros de ar e de solo, um anemômetro, uma hélice de vento, um barômetro e um medidor de chuva. Os dados são coletados periodicamente.

Quando um comando é emitido para transmitir os dados meteorológicos, a estação meteorológica processa e sumariza os dados coletados. Os dados sumarizados são transmitidos para o computador de mapeamento quando uma solicitação é

(20)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 39

Classes de objeto da estação

meteorológica

● Termômetro de solo, Anemômetro, Barômetro

• Objetos do domínio da aplicação que são objetos de ‘hardware’ relacionados aos instrumentos no sistema.

● Estação meteorológica

• A interface básica da estação meteorológica em seu ambiente. Ele reflete portanto, as interações identificadas no modelo de caso de uso.

● Dados meteorológicos

• Encapsula os dados sumarizados a partir dos instrumentos.

Classes de objeto da estação

meteorológica

(21)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 41

Mais objetos e refinamento de objetos

● Usar conhecimento de domínio para identifcar mais

objetos e operações

• Estações meteorológicas devem ter um único identificador;

• As estações meteorológicas são remotamente situadas e, assim, as falhas de instrumentos devem ser reportados automaticamente. Portanto, atributos e operações para auto verificação são necessários.

● Objetos ativos e passivos

• Nesse caso, os objetos são passivos e coletam dados sob demanda ao invés de autonomamente. Isso introduz flexibilidade no gasto de tempo de processamento do controlador.

Modelos de projeto

Modelos de projeto mostram os objetos ou

as classes de objetos e os relacionamentos

entre essas entidades.

Os modelos estáticos descrevem a estrutura

estática do sistema em termos de classes de

objeto e seus relacionamentos.

Modelos dinâmicos descrevem as interações

(22)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 43

Exemplos de modelos de projeto

● Modelos de subsistema que mostram os

agrupamentos lógicos de objetos em subsistemas coerentes.

● Modelos de seqüência que mostram a seqüência

das interações entre objetos.

● Modelos de máquina de estado que mostram como

objetos individuais mudam seu estado em resposta aos eventos.

● Outros modelos incluem modelos de caso de uso,

modelos de agregação, modelos de generalização, etc.

Modelos de subsistema

Mostram como o projeto é organizado em

grupos de objetos logicamente relacionados.

Na UML, esses modelos são mostrados

usando pacotes – uma construção de

englobamento. Isso é um modelo lógico. A

organização real dos objetos no sistema

pode ser diferente.

(23)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 45

Subsistemas da estação

meteorológica

Modelos de seqüência

Os modelos de seqüência mostram a

seqüência das interações de objetos que

ocorrem

• Os objetos são organizados horizontalmente no

topo;

• O tempo é representado verticalmente e, assim,

os modelos são lidos de cima para baixo;

• As interações são representadas por setas

rotuladas. Estilos diferentes de seta

representam tipos diferentes de interação;

• Um retângulo estreito no tempo de vida do

(24)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 47

Seqüência de coleta de dados

Statecharts

● Mostram como os objetos respondem às

solicitações diferentes de serviço e as transições de estado disparadas por estas solicitações

Se o estado de objeto for Desativado, o sistema poderá somente responder à mensagem iniciar();

No estado Aguardando, o objeto está aguardando outras mensagens;

Se uma mensagem relatarClima() for recebida, então o sistema passará ao estado Sumarizando;

Se uma mensagem calibrar() for recebida, o sistema passará ao estado Calibrando;

(25)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 49

Diagrama de estado da estação

meteorológica

Especificação de interface entre

objetos

● As interfaces de objeto têm de ser especificados, de

tal modo que os objetos e outros componentes possam ser projetados em paralelo.

● Os projetistas devem evitar projetar a representação

da interface, mas devem ocultar isso no próprio objeto.

● Os objetos podem ter várias interfaces que são

pontos de vista sobre os métodos fornecidos.

● A UML usa diagramas de classe para especificação

(26)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 51

Interface da estação meteorológica

Evolução de projeto

● Ocultar informação dentro de objetos significa que

mudanças feitas nesses objeto não afetam

quaisquer outros objetos de maneira imprevisível.

● Assuma que capacidades de monitoração de

poluição devem ser acrescentadas às estações meteorológicas. Essas coletam amostras do ar e calculam a quantidade de poluentes diferentes na atmosfera.

● Leituras de poluição são transmitidas com dados

(27)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 53

Mudanças requeridas

Acrescentar uma classe de objeto chamada

QualidadeDoar

como parte da

EstaçãoMeteorológica

.

Acrescentar uma operação

relatarQualidadeDoAr

para

EstaçãoMeteorológica

. Modificar o software

de controle para coletar leituras de poluição.

Acrescentar objetos que representem

instrumentos de monitoração de poluição.

(28)

© 2007 by Pearson Education

©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 14 Slide 55

● O projeto orientado a objetos é uma abordagem

para projeto na qual os componentes de projeto têm seu próprio estado privado e operações.

● Os objetos devem ter operações de construção e de

inspeção. Eles fornecem serviços para outros objetos.

● Os objetos podem ser implementados seqüencial ou

concorrentemente.

● A UML fornece notações diferentes para a definição

de modelos de objetos diferentes.

Pontos-chave

Pontos-chave

Uma variedade de modelos diferentes

podem ser produzidos durante um processo

de projeto orientado a objetos. Esses

modelos incluem modelos de sistema

estáticos e dinâmicos.

As interfaces de objeto devem ser definidas

precisamente usando, por exemplo, uma

linguagem de programação como Java.

Referências

Documentos relacionados

A Diretoria-Geral do Câmpus Itaquaquecetuba do Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP, por meio de sua Coordenadoria de Extensão, no uso

Já Jarczyk, cuja tese de doutorado versara exata- mente sobre o Sistema e a liberdade na Lógica de Hegel, retoma a questão em páginas de extrema densidade (pp. 195-216), em que os

Mediunidade de e e fenômenos fenômenos mediúnic mediúnicos os 21 21 Assim como o organismo carnal do homem em certo tempo verticalizou-se para servi-lo em nível biológico Assim

Then, through multiplanar studies, safety zones were found for insert- ing screw on the lateral mass, following the parameters: anterior height (distance between upper

As espécies que acometem cães no Distrito Federal são Trypanosoma cruzi, Trypanosoma rangeli, Trypanosoma evansi e Leishmania spp.. Sendo parasitas com abrangência

Recomendação geral : Tenha consigo a embalagem, o rótulo ou esta ficha de dados de segurança quando utilizar o nº de emergência da Syngenta, contactar o Centro de

Considering all the observations and limitations of the present study, it can be concluded that the municipalities of Southeastern Ceará need to intensify their

Fica a Cooperativa Acordante autorizada a descontar de seus empregados, em folha de pagamento e/ou na rescisão do contrato de trabalho, os valores relativos a empréstimos