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)) (Modelagem da solução)  
Projeto  
(
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  
(
objetos e classes para a solução do problema);  
refinamento do modelo conceitual, incluindo  
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  
DadosMeteorológicos  
-TemperaturasdoAr  
-
-
-
-
-
TemperaturasdoSolo  
VelocidadesdoVento  
DireçõesdoVento  
Pressões  
+
+
+
+
+
RelatarClima()  
Calibrar(instrumentos)  
testar()  
iniciar(instrumentos)  
desativar(instrumentos)...  
+Coletar()  
+Resumir()  
Termômetro de Solo  
temperatura: Real;  
Anemômetro  
Barômetro  
-pressão: Real  
-
-velocidadedoVento: Real  
-
direçõesdoVento: Real  
-altura: Real  
+Testar()  
+Calibrar()  
+Testar()  
+Testar()  
+Calibrar()  
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  
(
realização de uma operação do sistema.  
envio de mensagens e respostas) entre os objetos para a  
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(); // construtor  
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  
QualidadeDoAr  
-
-Dados_OxidoNitroso  
DadosdeFumaça  
DadosdeBenzeno  
-
-
+
+
+
+
+
+
RelatarClima()  
RelatarQualidadeAr()  
Calibrar(instrumentos)  
testar()  
iniciar(instrumentos)  
desativar(instrumentos)...  
+Coletar()  
+Resumir()  
Exercícios  
Lista de Exercícios 02  
http://www.inf.puc-rio.br/~elima/poo/