Projeto Orientado a Objetos



Documentos relacionados
Análise e Projeto Orientados por Objetos

3.1 Definições Uma classe é a descrição de um tipo de objeto.

O Processo de Engenharia de Requisitos

Arquitetura de Software

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

GBD PROF. ANDREZA S. AREÃO

UFG - Instituto de Informática

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

UML Itens Estruturais - Interface

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

4.1. UML Diagramas de casos de uso

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Guia de utilização da notação BPMN

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Projeto de Arquitetura

Engenharia de Software II

Modelagem de Sistemas

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Uma visão mais clara da UML Sumário

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Resolução da lista de exercícios de casos de uso

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Especificação Operacional.

Implementando uma Classe e Criando Objetos a partir dela

Banco de Dados Orientado a Objetos

Modelos de Sistemas. Leitura: Cap7: Sommerville; Cap: 7-8 Pressman; Cap3: Ariadne

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Engenharia de Software III

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Computador Digital Circuitos de um computador (Hardware)

Casos de uso Objetivo:

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

Unidade II MODELAGEM DE PROCESSOS

Franklin Ramalho Universidade Federal de Campina Grande - UFCG

Análise e Projeto Orientados por Objetos

Análise e Projeto de Software

Sistemas Operacionais. Prof. André Y. Kusumoto

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Projetar Arquitetura

2 Engenharia de Software

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Fundamentos de Teste de Software

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Gerenciamento da Integração (PMBoK 5ª ed.)

Gerenciamento de Projetos Modulo IX Qualidade

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

Diagrama de Estrutura Composta

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

Requisitos de Software

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Gerenciamento de Requisitos Gerenciamento de Requisitos

Figura 5 - Workflow para a Fase de Projeto

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

2. Conceitos e Arquitetura de Bancos de Dados

Análise e Projeto Orientado a Objetos

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

UML Unified Modeling Language. Professor: André Gustavo Bastos Lima

3. Fase de Planejamento dos Ciclos de Construção do Software

Programação Orientada a Objeto

O Gerenciamento de Documentos Analógico/Digital

Fundamentos de Banco de Dados e Modelagem de Dados

Manual do Usuário do Produto EmiteNF-e. Manual do Usuário

Mapa Mental de Engenharia de Software - Diagramas UML

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

PROJETO (OU DESIGN) DO SOFTWARE Diagrama de Estrutura

DESENVOLVENDO O SISTEMA

BR DOT COM SISPON: MANUAL DO USUÁRIO

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Redes de Computadores II

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS

Processos de gerenciamento de projetos em um projeto

Banco de Dados. Profª. Ana Leda

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

PREFEITURA MUNICIPAL DE BOM DESPACHO-MG PROCESSO SELETIVO SIMPLIFICADO - EDITAL 001/2009 CARGO: COORDENADOR DE INCLUSÃO DIGITAL CADERNO DE PROVAS

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

MANUAL MOODLE - PROFESSORES

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

Engenharia de Software II

Transcrição:

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto Orientado a Objetos Engenharia de Software 2o. Semestre de 2006 Slide 1

Projeto Orientado a Objeto Objetivo: Projetar sistemas usando objetos auto-contidos e classes de objetos. Slide 2

Características de Projeto Orientado a objetos Projeto orientado a objetos é uma estratégia de projeto em que os projetistas pensam em termos de coisas, em vez de funções. A funcionalidade do sistema é expressa em termos de serviços oferecidos pelos objetos. Objetos são abstrações do mundo real ou entidades do sistema que se auto gerenciam. Objetos são independentes e encapsulam representações de informação e estado. Áreas de dados compartilhado são eliminadas. Objetos se comunicam por passagem de mensagem. Slide 3

Características de Projeto Orientado a objetos Projeto orientado a objeto é parte do desenvolvimento orientado a objeto: Análise OO se dedica a desenvolver um modelo orientado a objeto do domínio da aplicação. Os objetos identificados refletem entidades e operações associadas com o problema a ser resolvido. Slide 4

Características de Projeto Orientado a objetos Projeto OO se dedica a desenvolver um modelo orientado a objeto de um sistema de software para implementar os requisitos. Os objetos em um projeto OO estão relacionados à solução do problema que está sendo resolvido. Programação OO realiza um projeto de software em uma linguagem de programação OO, que aceita a implementação direta de objetos e fornece recursos para definir as classes de objeto. Slide 5

Características de Projeto Orientado a objetos A transição entre esses estágios de desenvolvimento deve se contínua e direta, com a mesma notação utilizada em cada estágio; Mover para o próximo estágio envolve aprimorar o estágio anterior: Adição de detalhes às classes de objetos existentes Criação de novas classes, para fornecer funcionalidade adicional. Slide 6

Objetos que interagem entre si o1: C1 o3:c3 o4: C4 state o1 state o3 state o4 ops1() ops3 () ops4 () o2: C3 o6: C1 o5:c5 state o2 state o6 state o5 ops3 () ops1 () ops5 () Slide 7

Vantagens do Projeto OO Facilidade de manutenção. Objetos podem ser entendidos como entidades independentes. Os objetos são componentes potencialmente reutilizáveis. Para vários sistemas, existe um nítido mapeamento entre as entidades do mundo real para objetos no sistema. Slide 8

Objetos e classes de objetos no Projeto OO Objetos são entidades no sistema de software que representam instâncias de entidades do mundo real e do sistema. Classes de objetos são templates utilizados para criar objetos. Classes de objetos podem herdar atributos e serviços de outras classes de objetos. Slide 9

Objetos Um objeto é uma entidade que possui um estado e um conjunto de operações que operam nesse estado. O estado é representado por um conjunto de atributos. As operações associadas ao objeto fornecem serviços para outros objetos. Objetos são criados de acordo com uma definição de classe de objetos. Uma classe inclui declarações de todos os atributos e serviços que devem ser associados a um objeto dessa classe. Slide 10

Classe de Objetos funcionário (UML) Funcionário Nome: string Endereço: string DataNasc: Data Nempregado: inteiro Departamento: Depto GerenteL Empregado Salário: inteiro... Contratar() Demitir() Aposentar() AlterarDetalhes() Slide 11

Comunicação entre objetos Conceitualmente, objetos se comunicam por passagem de mensagem. Mensagens: O nome do serviço requerido pelo objeto chamador. Cópias da informação necessária para executar o serviço e o nome do possuidor do serviço. Na prática, mensagens são implementadas como chamadas de procedimentos. Nome = nome do procedimento Informação = lista de parâmetros Slide 12

Exemplos de mensagens // Chamar um método associado a um // objeto ListaCircular que retorna o próximo // valor na Lista v = ListaCircular.obterproximo () ; // Chamar o método associado a um objeto // termostato para ajustar a temperatura a ser // mantida termostado.settemp (20) ; Slide 13

Generalização e Herança Employee Funcionário Gerente Ma nager budgetscontrolled orçamentoscontrolados dateappointed datadesignação Programador Programmer project Projeto proglanguage Ling. Programação Project Ma nag er Gerente de projeto projects Projetos De pt. Ma nager Gerente de departamento dept Departamento Strategic Gerente Ma nag er estratégico responsibilities Responsabilidades Slide 14

Vantagens da herança É um mecanismo de abstração que pode ser usado para classificar entidades. É um mecanismo de reutilização tanto a nível de projeto quando de programação. O grafo de herança é uma forma de organizar o conhecimento sobre o domínio e os sistemas. Slide 15

Problema com herança em POO Classes de objetos não são auto-contidas. Não podem ser entendidas sem fazer referência à suas superclasses. Slide 16

A UML e o apoio ao processo de desenvolvimento OO Análise Projeto Codificação Modelos de objetos Descrições e diagramas de casos de uso Diagramas de atividade ESTADOS Diagramas de estado Diagramas de pacotes Especificação de requisitos Descrição textual de casos de uso Cenários Definições e relacionamentos de classes Diagramas de seqüência Diagramas de classe ESTRUTURA DA CLASSE Diagramas de colaboração INTERAÇÕES Diagramas de componentes Diagramas de implantação Slide 17

Processo de análise OO Definir os casos de uso do sistema Identificar os principais objetos do sistema. Desenvolver o modelo conceitual -> diagrama de classe e relacionamentos. Especificar os diagramas de seqüência, considerando o sistema como uma caixa preta. Os diagramas de seqüências evidenciam as principais operações que o sistema deve implementar. Slide 18

Processo de projeto OO Projetar a arquitetura do sistema. Desenvolver os Diagramas de Colaboração e/ou refinar os modelos de seqüência produzidos na etapa anterior. Desenvolver o modelo de classes de projeto -> refinamento do modelo conceitual, incluindo objetos e classes para a solução do problema. Especificar as interfaces dos objetos. Slide 19

Descrição do Sistema Meteorológico Um sistema de mapeamento meteorológico é necessário para gerar mapas meteorológicos regularmente, utilizando dados coletados a partir de estações meteorológicas remotas, sem que seus funcionários estejam presentes, e de outras fontes de dados, como observadores de tempo, balões e satélites meteorológicos. As estações meteorológicas transmitem seus dados ao computador da área, em resposta a uma requisição dessa máquina. O sistema de computador da área faz a validação dos dados coletados e também a integração dos dados a partir das diferentes fontes. Os dados integrados são arquivados. Os dados desse arquivo e um banco de dados de mapas digitalizados são utilizados para a criação de um conjunto de mapas meteorológicos locais. Os mapas podem ser impressos em uma impressora especial ou ser exibidos em diversos formatos. Slide 20

Descrição da Estação Meteorológica A estação meteorológica é um pacote de instrumentos (termômetros, barômetros, etc.) controlados por software que coleta dados, realiza alguns processamentos de dados e transmite esses dados para outros processamentos. Os dados são coletados a cada cinco minutos. Ao receber uma requisição, a estação meteorológica processa e resume os dados coletados. Os dados resumidos são transmitidos para o computador. Slide 21

Descrição da Estação Meteorológica (Principais subsistemas) Coleta de dados Integração de Dados (processamento) Arquivamento De dados Criação de Mapas Slide 22

Uma possível arquitetura Arquitetura em Camada <<Subsistema>> «subsystem» Apresentação Da display dados <<Subsistema>> «subsystem» Arquivam. Data archiving de dados «subsystem» <<Subsistema>> Processam. Da ta processing de dados «subsystem» <<Subsistema>> Da Coleta collection de dados Camada de exibição de dados, em que Data os objetos display se layer ocupam where da objects are preparação concerned e da with apresentação preparing and de dados presenting em forma the de data fácil in leitura a humanreadable form pelas pessoas. Camada Data archiving de arquivamento layer where de dados, objects em are que concerned os objetos with se ocupam storing the do data armazenamento for future processing de dados para futuro processamento Camada de processamento de dados, em Data que processing os objetos layer se ocupam where objects da verificação are concerned e da with integração checking de dados and coletados. integrating the collected data Camada Data collection de coleta layer de dados, where em objects que os are objetos concerned se ocupam with da acquiring aquisição data de from dados remote a partir sources de fontes remotas. Slide 23

Subsistemas em um sistema de mapeamento meteorológico <<subsistema>> «subsystem» Coleta Data collection de dados Observer Observador Weather Estação station Meteorológica Co mms Comunicações Satellite Satélite Balloon Balão «subsystem» <<subsistema>> Display Da ta display de dados User interface o usuário Interface com Mapa p Display Ma p display de Mapa Ma p printer Impressão de Mapas <<subsistema>> «subsystem» Proces. Da ta processing de dados <<subsistema>> «subsystem» Arquiv. Da ta archiving de dados Verificação Da ta checking de dados Integração Da ta integration de dados Ma p store Repos. Mapa Da ta storage Armazenamento de dados Da ta store Repos. Dados Slide 24

Contexto do sistema e modelos de uso Desenvolver uma compreensão das relações entre o software que está sendo projetado e seu ambiente externo. Contexto do sistema Um modelo estático que descreve os outros sistemas naquele ambiente. (ilustração anterior) Modelo de uso do sistema Um modelo dinâmico, que descreve como o sistema realmente interage com seu ambiente. Pode-se usar casos de uso para mostrar essa interação. Slide 25

Casos de uso para a estação meteorológica (etapa de análise) Iniciar Startup Desativar Shutdown Relatar Report Sistema de Prossamento de Dados Calibrate Calibrar Testar t Slide 26

Descrição do caso de uso Relatar dados climáticos Sistema Use-case Estação Meteorológica Relatar Agentes Sistema de processamento de dados sobre o clima, Estação meteorológica. Dados A estação meteorológica envia para o sistema de processamento de dados climáticos um resumo de dados sobre o clima, que foram coletados a partir de instrumentos, no período de coleta. Os dados enviados referem-se às temperaturas máximas, mínimas e médias do solo e do ar; à pressão máxima, mínima e média do ar; às velocidades máxima, mínima e média do vento, conforme amostragem a cada intervalo de cinco minutos Estímulo O sistema de processamento de dados sobre o clima estabelece um link de modem com a estação meteorológica e requisita a transmissão dos dados Resposta Os dados resumidos pelo sistema de coleta de dados sobre o clima são enviados ao sistema de processamento de dados. Comentários Em geral, as estações meteorológicas recebem um pedido de relatório por hora, mas essa freqüência pode diferir de uma estação para outra a ser modificada no futuro. Slide 27

Casos de uso (etapa de análise) É preciso desenvolver descrições para todos os casos de uso representados no modelo de caso de uso. Utilidade de casos de uso Identificar objetos no sistema Identificar operações no sistema No exemplo em questão: Objetos necessários: objetos que representem instrumentos que coletam dados e um objeto que faz o resumo dos dados Operações necessárias: operações para requisitar e enviar dados sobre o clima Slide 28

Projeto de Arquitetura Uma vez definidas as interações entre o sistema que está sendo projetado e o seu ambiente, pode-se utilizar essas informações para estabelecer a arquitetura do sistema. Uma arquitetura em camadas é apropriada para a estação meteorológica. A camada de Interface para manipular comunicações. Camada de integração de dados para gerenciar a coleta de dados a partir dos instrumentos e resumir os dados antes da transmissão. A camada de instrumentos que encapsula todos os instrumentos. Slide 29

Arquitetura da estação metereológica Weather station Estação Meteorológica «subsystem» Interface interface <<subsistema>> Manages Gerencia todas all as comunicações external communications externas <<subsistema>> «subsystem» Da ta collection Integração de dados Coleta Collects e resume and dados summarises climáticos weather data «subsystem» Instruments instrumentos <<subsistema>> Pacote Package de instrumentos of instruments para a coleta for raw de data dados collections brutos Slide 30

Identificação de objetos Nesse estágio de projeto, os objetos essenciais do sistema já foram levantados na etapa de análise. Na etapa de projeto, refina-se os objetos identificados na análise, e define-se outros objetos que possam ser relevantes na solução do problema (na implementação do software). Slide 31

Identificação de objetos Identificar objetos (ou classes de objetos) é a parte mais difícil de desenvolvimento OO. Não existe uma fórmula mágica para a identificação de objeto. É preciso que o projetista tenha habilidade, experiência e conhecimento do domínio do sistema. A identificação de objeto é um processo iterativo. É improvável que se obtenha todos os objetos num primeiro esboço. Slide 32

Abordagens para Identificar classes de objetos Utilize uma análise gramatical baseada em uma descrição em linguagem natural do sistema. Objetos e atributos são os substantivos (nomes). Serviços são verbos. Utilize entidades tangíveis (coisas); funções(gerente); eventos(solicitações); locais; interações (reuniões) no domínio da aplicação. Identifique estruturas de dados abstratos no domínio da solução necessárias para lidar com esses objetos Slide 33

Abordagens para Identificar classes de objetos Utilize uma abordagem comportamental em que se analisa o comportamento do sistema. Os participantes que desempenham papéis ativos são candidatos a objetos. Utilize uma abordagem baseada em cenários. Cada cenário utilizado, o projetista deve identificar objetos, atributos e operações que são necessários. Slide 34

Classes de objetos da estação meteorológica Termômetro de solo, Anemômetro, Barômetro Objetos do domínio da aplicação que são entidades tangíveis de hardware relacionadas aos instrumentos no sistema. As operações se ocupam de controlar esse hardware. Estação meteorológica É a interface básica da estação meteorológica com seu ambiente. Suas operações refletem as interações identificadas no modelo de caso de uso. Dados meteorológicos Encapsula os dados resumidos dos diferentes instrumentos na estação meteorológica. Suas operações associadas se ocupam de coletar e resumir os dados que são requeridos. Slide 35

Classes de objetos da estação meteorológica EstaçãoMeteorológica Identificador RelatarClima() Calibrar(instrumentos) testar() iniciar(instrumentos) desativar(instrumentos) DadosMeteorológicos TemperaturasdoAr TemperaturasdoSolo VelocidadesdoVento DireçõesdoVento Pressões precipitação Coletar() Resumir() Termômetro de solo temperatura Testar() calibrar() Anemômetro velocidadedovento direçõesdovento Testar() Barômetro Pressão altura Testar() Calibrar() Slide 36

Outros objetos e refinamentos de objetos Utilize o conhecimento do domínio do problema para identificar outros objetos e serviços. Estações meteorológicas devem ter um identificador único. Estações meteorológicas são localizadas em lugares remotos, assim falhas nos instrumentos devem ser registradas automaticamente. Portanto atributos e operações são necessários para verificar o funcionamento correto dos instrumentos. Slide 37

Modelos de projeto Diferentes modelos com diferentes níveis de detalhes são desenvolvidos na fase de projeto. Modelos dinâmicos mostram as interações dinâmicas entre os objetos do sistema. Modelos estáticos descrevem a estrutura estática do sistema em termos de classes de objetos e relacionamentos. Slide 38

Principais modelos UML usados no projeto OO Modelos de subsistema (ou modelos de pacotes) mostram agrupamentos lógicos de objetos em subsistemas coerentes. (Modelo estático) Modelos de Colaboração que mostram as interações entre os objetos para implementar uma dada operação (funcionalidade do sistema).(modelo dinâmico) Modelos de Seqüência, que mostram a seqüência das interações entre objetos. (Modelo dinâmico) Modelos de máquina de estados que mostram as mudanças de estado de objetos individuais, em resposta a eventos. (Modelo dinâmico) Slide 39

Modelos de subsistemas Mostram como o projeto está organizado em termos de grupos de objetos logicamente relacionados. Na UML, são mostrados usando pacotes - uma construção encapsulada. É um modelo lógico, porém podem ser refletidos em construções estruturais, como bibliotecas JAVA. Slide 40

Subsistemas da estação meteorológica <<subsitema>> «subsystem» Interface Controlador de comunicações Co mmsco ntroller «subsystem» <<subsitema>> Integração Da ta collection de dados Dados Meteorológicos WeatherData WeatherStation Estação Meteorológica Status Instrument do instrumento Status <<subsitema>> «subsystem» Instruments Instrumentos Termômetro de ar Air thermometer Termômetro Ground thermometer de solo Medidor de chuva Ra ingauge Barômetro Barometer Anemômetro Anemometer WindVane Indicador de vento Slide 41

Modelo de seqüência Modelo de seqüência mostra a seqüência de interações (envio de mensagens e respostas) entre os objetos para a realização de uma operação do sistema. Os objetos envolvidos na operação são organizados horizontalmente, com uma linha vertical ligada a cada objeto. O tempo é representado verticalmente, assim os modelos são lido de cima para baixo. Interações entre objetos são representadas por setas rotuladas. As setas representam mensagens ou eventos, que são fundamentais para a interação. Um retângulo estreito na linha de um objeto representa o tempo pelo qual o objeto é o objeto controlador (ativo) no sistema. Slide 42

Seqüência de operações para a operação de requisitar dados climáticos para o subsistema Estação Meteorológica Sistema de processamento de dados :controladordecomunicações :CommsController :EstaçãoMeteorológica :WeatherStation :DadosMeteorológicos :WeatherData request Requisitar(relatório) (report) acknowledge () Relatar() report summarise Resumir() () Responder reply (relatório) (report) Enviar(relatório) send (report) acknowledge () Slide 43

Diagrama de seqüência É preciso produzir um diagrama de seqüência para cada interação significativa (cada operação do sistema). Deve haver um diagrama de seqüência para cada caso de uso identificado. DS é usado para modelar o comportamento combinado em um grupo de objetos. Slide 44

Modelo de Máquina de Estados Statecharts (Harel 87) Através de uma máquina de estados (statecharts) podese mostrar o comportamento de um único objeto em resposta a diferentes mensagens que ele pode processar. Basicamente, o modelo de máquina de estados mostra como o objeto muda de estado, dependendo das mensagens que ele recebe. De modo geral, não é normalmente necessário produzir um statechart para todos os objetos definidos. Slide 45

Statechart para o objeto Estação Meteorológica Operação Calibrar() Calibrando Desativado iniciar() Aguardando testar() Calibração OK Testando desativar() Transmissão feita relatarclima() Teste Completado Transmitindo relógio Coleta feita Coletando Resumindo Resumo meteorológico concluído Slide 46

Especificação de interface entre objetos Interfaces são os serviços que os objetos oferecem a outros objetos. Após o desenvolvimento dos diagramas de seqüência para todas as operações do sistema, faz-se uma análise de cada objeto presente nesses diagramas. Toda mensagem recebida pelo objeto é um serviço que ele deve oferecer, e portanto faz parte de sua interface. Slide 47

Projeto de interface entre objetos É a especificação dos detalhes da interface para um objeto ou um grupo de objetos. Significa definição das assinaturas e a semântica definida pelos serviços oferecidos pelos objetos. Vantagens: Facilita o desenvolvimento em paralelo Slide 48

Interface da estação meteorológica interface Estação Meteorológica { public void EstaçãoMeteorológica () ; // contrutor public void Iniciar () ; //iniciar estação public void Iniciar (Instrumento i) ; public void desativar () ; //desativar estação public void desativar(instrumento i) ; public void relatarclima ( ) ; public void testar () ; /testar estação public void testar ( Instrumento i ) ; public void calibrar ( Instrumento i) ; public int obtertid () ; } // EstaçãoMeteorológica Slide 49

Evolução de projeto Uma vantagem da abordagem OO é facilitar as mudanças no projeto O ocultamento da informação dentro dos objetos permite que alterações feitas em um objeto não afetem outros objetos de forma imprevisível. Objetos fracamente acoplados podem sofrer modificações internas sem afetar outros objetos do sistema. Slide 50

Exemplo da robustez da abordagem OO Suponha que as estações meteorológicas deverão fazer também a monitoração da poluição do ar. Para essa nova tarefa deve-se adicionar um medidor de qualidade do ar que calcula a concentração de vários poluentes na atmosfera. As leituras de poluição são transmitidas ao mesmo tempo que os dados meteorológicos. Slide 51

Alterações necessárias Adição uma classe de objetos chamado Qualidade do ar como parte da Estação Meteorológica, no mesmo nível que DadosMeteorológicos. Adição de uma operação RelatarQualAr à Estação Meteorológica. Modificar o software de controle para coletar leituras de poluição. Adição de objetos representado instrumentos para monitorar a poluição. Slide 52

Novos objetos para monitorar a poluição EstaçãoMeteorológica Identificador RelatarClima() RelatarQualidadeAr() Calibrar(instrumentos) testar() inicar(instrumentos) desativar(instrumentos) Qualidade do Ar Dados_OxidoNitroso DadosdeFumaça DadosdeBenzeno Coletar() Resumir() Instrumentos de monitoração de Poluição MedidordeBenzeno MedidordeNo MedidordeFumaça Slide 53

Pontos Chave POO é um meio de projetar sofware de modo que os componentes possuem seus próprios estados e operações. Objetos devem ter operações de construção (construtor) e inspeção (métodos tipo get e set). Eles fornecem serviços a outros objetos. A UML oferece diferentes notações para documentar um projeto OO. Slide 54

Pontos Chave Uma série de diferentes modelos podem ser produzidos durante um processo de projeto OO, incluindo modelos estáticos e modelos dinâmicos do sistema. O projeto OO finaliza com a definição das interfaces dos objeto (visibilidade do objeto por outros objetos, ou serviços oferecidos pelo objeto) Uma das principais vantagens do projeto orientado a objeto é o fato de simplificar a evolução do sistema. Slide 55