• Nenhum resultado encontrado

ES 10 - Projeto Orientado a Objetos

N/A
N/A
Protected

Academic year: 2021

Share "ES 10 - Projeto Orientado a Objetos"

Copied!
48
0
0

Texto

(1)

Régis Simão 1/48

Projeto Orientado a Objetos

Projeto Orientado a Objetos

(2)

Projeto Orientado a Objetos

Agenda

Introdução

Objetos e classes de objetos

Processo de projeto orientado a objetos

Evolução de projeto

(3)

Régis Simão 3/48

Projeto Orientado a Objetos

Introdução

Objetivos

 Explicar como um projeto de software pode ser representado como um

conjunto de objetos que interagem entre si, que gerenciam seus próprios estados e suas operações

 Descrever as atividades mais importantes em um processo geral de

projeto orientado a objetos

 Explicar os diferentes modelos que podem ser utilizados para

documentar um projeto orientado a objetos

 Descrever a representação desses modelo em UML (Linguagem de

(4)

Projeto Orientado a Objetos

Introdução

Projetar sistemas usando objetos e classes auto-contidos. É a estratégia

de projeto onde se pensa em “coisas” (objetos), em vez de operações ou

funções

Características do Projeto Orientado a Objetos (POO)

Objetos são abstrações das entidades do sistema ou do mundo real  Objetos são independentes e encapsulam estado das entidadesA funcionalidade do sistema é expressa em termos de serviços de

objetos

Áreas de dados compartilhados são eliminadas. A comunicação de

objetos é através da passagem de mensagens

Objetos podem ser distribuídos e podem ser executados em seqüência

(5)

Régis Simão 5/48

Projeto Orientado a Objetos

Introdução

(6)

Projeto Orientado a Objetos

Introdução

Vantagens do POO

 Manutenção mais fácil. Objetos podem ser entendidos como entidades

isoladas

 Objetos são componentes reusáveis

Em alguns sistemas, pode existir um mapeamento óbvio das entidades

(7)

Régis Simão 7/48

Projeto Orientado a Objetos

Introdução

Desenvolvimento Orientado a Objetos

 Análise, projeto e implementação orientados a objetos são etapas

relacionadas, mas distintas

 A Análise Orientada a Objetos (AOO) compreende o desenvolvimento de

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

 O Projeto Orientado a Objetos (POO) compreende o desenvolvimento de

um modelo de sistemas orientado a objetos que implementa os requisitos da aplicação

 Implementação Orientada a Objetos (IOO) compreende a implementação

(8)

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Objetos são entidades em sistemas que representa instâncias das

entidades sistema ou do muito real

Classes de objetos são templates para os objetos. Eles podem ser

usados para criar objetos

Classes de objetos podem herdar atributos e serviços de outras classes

de objetos

(9)

Régis Simão 9/48

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Objetos

 Um objeto é uma entidade que possui um estado e um conjunto definido

de operações que operam nesse estado. O estado é representado por um conjunto de atributos de objetos. As operações associadas com o objeto fornecem serviços para outros objetos (clientes), que requisitam esses serviços quando uma computação é necessária.

 Os objetos são criados de acordo com uma definição de classe de

objetos, que serve como um template para criar objetos. Essa classe apresenta declarações de todos os atributos e operações que devem ser associados a um objeto dessa classe.

(10)

Projeto Orientado a Objetos

Objetos e Classes de Objetos

UML (Linguagem de Modelagem Unificada)

 Várias notações diferentes para descrever projetos orientados a objetos

foram propostos entre 1980 e 2000

 A UML é uma integração destas notações

A UML descreve notações para um número diferentes de modelos que

podem ser produzidos durante a análise e o projeto orientado a objetos

(11)

Régis Simão 11/48

Projeto Orientado a Objetos

Objetos e Classes de Objetos

(12)

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Comunicação de Objetos

 Conceitualmente, objetos se comunicam pela passagem de mensagens

Mensagens

 O nome do serviço solicitado na chamada de um objeto

 Repassa a informação necessária para executar o serviço e o nomeia a

variável para o resultado do serviço

Na prática, mensagens são freqüentemente implementadas por

chamadas de métodos

Nome = nome do método

(13)

Régis Simão 13/48

Projeto Orientado a Objetos

Objetos e Classes de Objetos

(14)

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Objetos são membros de classes que definem atributos e operações

Classes podem ser organizadas em hierarquias, onde uma classe

(super-classe) é uma generalização de uma ou mais classes (sub-classes)

Uma sub-classe herda os atributos e operações de suas super-classe e

pode acrescentar novos métodos ou atributos

Generalização na UML é implementada como herança na linguagem de

programação OO

(15)

Régis Simão 15/48

Projeto Orientado a Objetos

Objetos e Classes de Objetos

(16)

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Vantagens da Herança

 É uma mecanismo de abstração que pode ser usado para classificar

entidades

 É um mecanismo de reutilização em nível de projeto e de programaçãoO gráfico de hierarquia é uma fonte de conhecimento organizacional

sobre domínio e sistemas

Problemas com a Herança

 Classes de objetos não são auto-contidos. Eles não podem ser

entendidos sem referenciar suas super-classes

 Projetistas têm a tendência de reutilizar o gráfico de hierarquia criado

durante a análise, podendo acarretar uma ineficiência significante

 O gráfico de hierarquia de análise, projeto e implementação têm

(17)

Régis Simão 17/48

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Hierarquia e o Projeto OO

 Existem diferentes visões sobre a importância de herança em Projeto OO

Visão 1: Identificar uma hierarquia de herança é uma parte fundamental do projeto OO. Obviamente, só pode ser implementada em uma linguagem de programação OO

Visão 2: Herança é um conceito de implementação útil, que permite reuso das definições de atributos e operações. Identificando uma hierarquia de herança no projeto ajuda a minimizar restrições desnecessárias de implementação

Herança introduz complexidade e é indesejável, especialmente em sistemas críticos

(18)

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Associações na UML

 Objetos e classes de objetos participam de relacionamentos com outros

objetos e classes de objetos

 Na UML, o relacionamento comum é indicado por uma associação

Associações possuem informações que as descrevem

 Associações são gerais, mas podem indicar que um atributo de um

objeto é um objeto associado ou que um método depende de um objeto associado

(19)

Régis Simão 19/48

Projeto Orientado a Objetos

Objetos e Classes de Objetos

(20)

Projeto Orientado a Objetos

Objetos e Classes de Objetos

Objetos Concorrentes

 A natureza de objetos como entidades auto-contidas faz dos objetos

adequados para implementação concorrente

 O modelo de passagem de mensagem da comunicação de objetos pode

ser implementado diretamente mesmo que os objetos estejam sendo executados em processadores em separado em um sistema distribuído

Threads em JAVA

 Threads em JAVA são construções simples para implementar objetos

concorrentes

 Threads devem incluir um método chamado run() e este é iniciado pela

máquina virtual JAVA

 Objetos ativos tipicamente incluem um laço infinito para execução

(21)

Régis Simão 21/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Define o contexto e os modos de uso do sistema

Projetam a arquitetura do sistema

Identificam os objetos principais do sistema

Desenvolvem os modelos de projeto

(22)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Descrição do Sistema Metereológico

 Um sistema de mapeamento metereológico é necessário para gerar

mapas metereológico regularmente, utilizando dados coletados a partir de estações metereológicas remotas, sem que seus funcionários estejam presentes, e de outras fontes de dados, como observadores de tempo, balões e satélites metereológicos. As estações metereológicas

transmitem seus dados ao computador da área em resposta a uma requisição dessa máquina

O sistema de computador da área valida os dados coletados e faz

integração dos dados a partir de diferentes fontes. Os dados integrados são arquivados e, com os dados desses e um banco de dados de mapas digitalizados, é criado um conjunto de mapas metereológicos locais. Os mapas podem ser impressos para distribuição em uma impressora

(23)

Régis Simão 23/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Descrição de uma Estação Metereológica

 Uma estação metereológica é um pacote de instrumentos controlados

por software, que coleta dados, realiza algum processamento de dados e transmite estes dados para outros processos. Os instrumentos incluem termômetros de ar e terra, um barômetro e outros. Os dados são

coletados a cada cinco minutos

 Quando um comando é solicitado para transmitir os dados

metereológicos, a estação metereológica processa e armazena os dados coletados. Os dados coletados são transmitidos para computador de mapeamento quando uma solicitação é recebida

(24)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(25)

Régis Simão 25/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Contexto do Sistema e Modelo de Uso

 Desenvolve um entendimento do relacionamento entro o software sendo

processado e seu ambiente externo

 Contexto do Sistema

Um modelo estático que descreve outros sistemas no ambiente. Usa um

modelo de subsistema para mostrar outros sistemas. O slide seguinte mostra os sistemas em torno do sistema da estação metereológica

 Modelo de uso do sistema

Um modelo dinâmico que descreve como o sistema interage com seu

ambiente. Usa-se Casos de Uso para mostrar as interações entre as entidades externas e o sistema

(26)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(27)

Régis Simão 27/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(28)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(29)

Régis Simão 29/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Projeto de Arquitetura

 Uma vez que as interações entre o sistema e seu ambiente tenha sido

entendido, você usa esta informação para projetar a arquitetura do sistema

 Arquitetura em camadas é apropriada para estações metereológicas

Camada de interface para manipular comunicações

Camada de coleção de dados para gerenciar os instrumentos

Camada de instrumentos para coletar os dados

(30)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(31)

Régis Simão 31/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Identificação dos Objetos

 Identificar objetos é a parte mais difícil do projeto OO

 Não existe mágica para identificação de objetos. É necessário ter

habilidade, experiência e conhecimento de domínio

A identificação de objetos é um processo iterativo. É incomum realizar

todo de uma única vez

Técnicas para identificação de objetos

Use a técnica gramatical baseada nas descrições do sistema em

linguagem natural

 Baseie a identificação em coisas tangíveis do domínio da aplicação  Use a técnica comportamental e identifique objetos baseados no que

participa em que comportamento

Use a análise baseada em cenários. Os objetos, atributos e métodos em

(32)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Classes de Objetos da Estação Metereológica

 Termômetro de solo, Anemômetro e Barômetro

Objetos do domínio da aplicação. Eles são objetos que representam

hardwares relacionados aos instrumentos do sistema

Estação Metereológica

A interface básica da estação metereológica com o ambiente. Ele reflete as interações identificadas no modelo de casos de uso

Dados Metereológico

(33)

Régis Simão 33/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(34)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Outros objetos e refinamentos

 Usa-se o conhecimento do domínio para identificar mais objetos e

operações

Estações metereológicas deveriam ter um identificador único

Estações metereológicas são remotamente localizadas, de forma que as

falhas nos instrumentos deveriam ser informados automaticamente. Atributos e operações deveriam ser verificados automaticamente

Objetos ativos e passivos

Os objetos são passivos e coletam dados sob demanda. Isto introduz flexibilidade no uso do tempo de processamento do controlador

(35)

Régis Simão 35/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Modelos de projeto

 Os modelos de projeto mostram os objetos e classes de objetos e os

relacionamentos entre eles

 Modelos estáticos descrevem a estrutura estática do sistema em termos

de classes de objetos e relacionamentos

(36)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Exemplos de Modelos de Projetos

 Modelos de subsistemas mostram o agrupamento lógico dos objetos em

subsistemas coerentes

 Modelos de seqüência mostram a seqüência de interações dos objetos

Modelos de máquina de estado mostram como objetos individuais

mudam seus estados em respostas a eventos

Outros modelos incluem modelos de casos de uso, modelos de

(37)

Régis Simão 37/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Modelos de Sistemas

 Mostra como o projeto é organizado em grupos de objetos lógicos

Na UML, os subsistemas são mostrados usando-se pacotes. É um

modelo lógico. A organização real dos objetos em sistemas pode ser diferente

(38)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(39)

Régis Simão 39/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Modelos de Seqüência

 Modelos de seqüência mostram a seqüência de interações dos objetos

Objetos são organizados horizontalmente no topo

O tempo é apresentado verticalmente, assim modelos são lidos do topo para baixo

Interações são representadas por setas rotuladas. Diferentes estilos de setas representam diferentes tipos de interações

Um retângulo fino na linha de vida do objeto representa o tempo que o objeto leva para executar sua operação

(40)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(41)

Régis Simão 41/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Diagrama de Estado

 Mostra como os objetos respondem a diferentes solicitações de serviços

e as transições de estado solicitadas por estas solicitações

Se o estado do objeto é Desativado então estado responde a mensagem iniciar()

 No estado Aguardando, o objeto está esperando por outras mensagens  Se a mensagem relatarClima() é recebida, o sistema move-se para o estado

Resumindo

Se a mensagem calibrar() é recebida, o sistema move-se para o estado Calibrando

Quando um sinal de relógio é recebido, então sistema muda para o estado Coletando

(42)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(43)

Régis Simão 43/48

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

Especificação da Interface do Objeto

 Interfaces de objetos têm que ser especificadas de forma que os objetos

e outros componentes pode ser projetos em paralelo

 Objetos podem ter várias interfaces, os quais são pontos de vistas dos

métodos providos

 A UML usa o diagrama de classes para especificação de interfaces, mas

(44)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(45)

Régis Simão 45/48

Projeto Orientado a Objetos

Evolução do Projeto

Escondendo informação dentro de objetos significa que mudanças feitas

em um objeto não afeta outros objetos de modo não previsível

Assuma que as facilidades de monitoramento de poluição devem ser

adicionadas as estações metereológicas. Deve calcular a quantidade de

poluentes diferentes na atmosfera

As leituras da poluição são transmitidas juntamente com os dados

metereológicos

Mudanças requisitadas

 Adicionar uma classe de objetos chamada de QualidadeDoArAdicionar uma operação informarQualidadeDoAr() na classe

EstacaoMetereologica. Modificar o software de controle para coletar as leituras da poluição

 Adicionar os objetos que representem os instrumentos que monitoram a

(46)

Projeto Orientado a Objetos

Processo de Projeto Orientado a Objetos

(47)

Régis Simão 47/48

Projeto Orientado a Objetos

Bibliografia

Sommerville, Ian. Engenharia de Software, 6a. edição. Addison Wesley,

2004

(48)

Projeto Orientado a Objetos

Referências

Documentos relacionados

Em 19/10/2015, foi publicada a Solução de Consulta nº 7.044, da Superintendência da Receita Federal do Brasil da 7ª Região Fiscal, que trata da determinação da base de cálculo

1) Palestra “Brasil: muitas raízes, um legado de paz - o Instituto Roerich da Paz e Cultura do Brasil e sua experiência de união cultural no Himalaia". Membros do Instituto

3º Este Decreto entra em vigor na data de sua publicação, retroagindo seus efeitos a 16 de dezembro de 2004.. PREFEITURA MUNICIPAL DE PORTO ALEGRE, 16 de dezembro

Após a sua leitura, fo- ram excluídos os artigos que abordavam partici- pação da comunidade em fóruns comunitários não relacionados com a saúde; participação dos usuários

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

REPRESENTAÇÃO Docente Representante da Formação Geral SEM CANDIDATOS Docente Representante de Curso. Ana Cláudia Barbosa SIAPE -1678249 Jaqueline Burio de Sá SIAPE

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

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