Análise e Projeto Orientados por Objetos



Documentos relacionados
Projeto Orientado a Objetos

Engenharia de Software III

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

2 Diagrama de Caso de Uso

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

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

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Introdução ao Modelos de Duas Camadas Cliente Servidor

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

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

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Wilson Moraes Góes. Novatec

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Modelagem de Casos de Uso (Parte 1)

Análise e Projeto de Sistemas

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas

Projeto de Arquitetura

3 SCS: Sistema de Componentes de Software

O Processo Unificado: Captura de requisitos

Concepção e Elaboração

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Documento de Análise e Projeto VideoSystem

1. Apresentação Objetivos

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Especificação do 3º Trabalho

O Processo de Engenharia de Requisitos

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

Roteiro do Programa e Entrada/Saída

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

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

Sistemas de Informação I

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Estudo de Caso. Caixa Eletrônico. Deitel & Deitel. Java como Programar 6a edição

Orientação a Objetos

ProcessoUnificado: Prof. Anderson Cavalcanti UFRN-CT-DCA

ESTUDO DE CASO WINDOWS VISTA

Engenharia de Software II

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Feature-Driven Development

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

Persistência e Banco de Dados em Jogos Digitais

UML. Diagrama de Seqüência

Introdução à Engenharia de Software

A Linguagem de Modelagem Unificada (UML)

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

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Metodologia de Gerenciamento de Projetos da Justiça Federal

Planejando o aplicativo

Engenharia de Requisitos Estudo de Caso

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)

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

UFG - Instituto de Informática

UML - Unified Modeling Language

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Uma visão mais clara da UML Sumário

Renata Alves Campos (CoInfo) Sandra Maria Peron de Lima (DP) Março/2012

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

DESENVOLVENDO O SISTEMA

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

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

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

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Orientação à Objetos. Aécio Costa

Análise e Projeto Orientados por Objetos

Diagrama de Estrutura Composta

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

15 Computador, projeto e manufatura

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

MODELAGEM DE SISTEMAS

Aula Anterior. Capítulo 2

UFG - Instituto de Informática

UML Aspectos de projetos em Diagramas de classes

Sistemas para internet e software livre

MODELO CLIENTE SERVIDOR

Orientação a Objetos com Java

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

Modelagemde Software Orientadaa Objetos com UML

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

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

IDÉIAS SOBRE IMPLANTAÇÃO DE SISTEMAS EMPRESARIAIS INTEGRADOS. Prof. Eduardo H. S. Oliveira

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva

Roteiro 2 Conceitos Gerais

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

O modelo unificado de processo. O Rational Unified Process, RUP.

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

Algumas propriedades dos objetos:

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Processos de gerenciamento de projetos em um projeto

BPMN Business Process Modeling Notation

Transcrição:

Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima <edirlei@iprj.uerj.br>

Análise A análise modela o problema e consiste das atividades necessárias para entender o domínio do problema. O que deve ser feito? Trata-se de uma atividade de investigação. A informação produzida na análise deve ser discutida e aprovada pelo cliente.

Projeto O projeto modela a solução e consiste das atividades de criação. Como pode ser feito? Trata-se de uma atividade de resolução. O projeto é a base para a programação e inclui as atividades que resultam em informação que interessa apenas ao Programador.

Análise e Projeto Análise (Modelagem do problema)) Projeto (Modelagem da solução) Entender Criar

Análise e Projeto Análise (Informação importante para o cliente discutir e aprovar) Projeto (Informação importante para o programador) Cliente Programador

Análise, Projeto e Construção Solução Lógica Analise Projeto Construção Investigação do problema Código

Análise Orientada por Objetos Envolve: Definição dos casos de uso do sistema; Identificação dos principais objetos do sistema; Desenvolvimento do modelo conceitual (diagrama de classe e relacionamentos); Especificação dos diagramas de sequência para evidenciar as principais operações que o sistema deve implementar.

Projeto Orientada por Objetos Envolve: Projeto da arquitetura do sistema; Desenvolvimento do modelo de classes de projeto (refinamento do modelo conceitual, incluindo objetos e classes para a solução do problema); Especificarção das interfaces dos objetos.

Construção Orientada por Objetos Envolve: Implementação e testes dos objetos e da arquitetura do sistema. Conceito de domínio Análise/Projeto Implementação

Vantagens do Projeto Orientado por Objetos 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.

UML e Desenvolvimento Orientado por Objetos

Processo de Análise Orientado por Objetos 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.

Processo de Projeto Orientado por Objetos Projetar a arquitetura do sistema. Desenvolver os diagramas de colaboração e/ou refinar os modelos de sequê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.

Exemplo: 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 serem exibidos em diversos formatos.

Exemplo: Sistema Meteorológico 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.

Contexto do Sistema É importante 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. 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.

Subsistemas em um Sistema de Mapeamento Meteorológico (Análise)

Casos de Uso para a Estação Meteorológica (Análise)

Descrição do Caso de Uso Relatar (Análise)

Casos de Uso (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; Exemplo: 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.

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.

Arquitetura em Camadas Organiza o sistema em um conjunto de camadas. Cada camada oferece um conjunto de serviços. Uma camada somente: Solicita serviços da camada inferior; Fornece serviços para a camada superior.

Projeto de Arquitetura

Identificação de Objetos (Projeto) 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).

Identificação de Objetos (Projeto) 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 objetos. É 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.

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.

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.

Classes da Estação Meteorológica Quais as classes de objetos necessárias para a Estação Meteorológica?

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

Classes da Estação Meteorológica EstaçãoMeteorológica -Identificador: Inteiro +RelatarClima() +Calibrar(instrumentos) +testar() +iniciar(instrumentos) +desativar(instrumentos)... DadosMeteorológicos -TemperaturasdoAr -TemperaturasdoSolo -VelocidadesdoVento -DireçõesdoVento -Pressões +Coletar() +Resumir() Termômetro de Solo -temperatura: Real; +Testar() +Calibrar() Anemômetro -velocidadedovento: Real -direçõesdovento: Real +Testar() -pressão: Real -altura: Real +Testar() +Calibrar() Barômetro

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

Principais Modelos UML Usados no Projeto Orientado por Objetos Modelos de Subsistemas (ou modelos de pacotes): mostram agrupamentos lógicos de objetos em subsistemas coerentes. (Modelo estático); Modelos de Colaboração: mostram as interações entre os objetos para implementar uma dada operação (funcionalidade do sistema). (Modelo dinâmico); Modelos de Sequência: mostram a seqüênciadas interações entre objetos. (Modelo dinâmico); Modelos de Máquina de Estados: mostram as mudanças de estado de objetos individuais, em resposta a eventos. (Modelo dinâmico);

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

Subsistemas da Estação Meteorológica

Modelo de Sequência Modelo de sequência mostra a sequê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.

Modelo de Sequência para a Operação de Requisitar Dados Climáticos

Modelo de Sequê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.

Especificação da Interface entre Objetos Interfaces são os serviços que os objetos oferecem a outros objetos. Após o desenvolvimento dos diagramas de sequê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. Significa definição das assinaturas e a semântica definida pelos serviços oferecidos pelos objetos. Facilita o desenvolvimento em paralelo.

Interface da Estação Meteorológica interface EstacaoMeteorológica { public void EstacaoMeteoroló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(); }

Evolução do 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.

Evolução do Projeto Exemplo 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. Quais alterações são necessárias?

Evolução do Projeto Exemplo Modificações: Adicionar uma classe de objetos chamado QualidadeDoAr 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.

Evolução do Projeto Exemplo EstaçãoMeteorológica -Identificador: Inteiro +RelatarClima() +RelatarQualidadeAr() +Calibrar(instrumentos) +testar() +iniciar(instrumentos) +desativar(instrumentos)... QualidadeDoAr -Dados_OxidoNitroso -DadosdeFumaça -DadosdeBenzeno +Coletar() +Resumir()

Exercícios Lista de Exercícios 02 http://www.inf.puc-rio.br/~elima/poo/