UNIBRATEC – Ensino Superior e Técnico em Informática
Orientação Objeto
Marcely Dias
[email protected]
1
Desenvolvimento de Sistemas
quarta-feira, 3 de fevereiro de 2010
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Análise Orientada a Objeto – AOO - Cenário

2
Mudança do enfoque das funções para os dados

Preocupação em modelar de forma mais detalhada o sistema

Análise mais próxima da realidade

Facilidade na comunicação com o usuário

Objetos como entidades do mundo real

Objetos com estrutura e comportamento e que se comunicam

Dificuldades em fazer alterações nas estruturas de dados nas abordagens
tradicionais

“Se eu alterar a definição desse dado, quais programas serão
afetados?”
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
AOO - Cenário


Trabalha com conceitos já conhecidos - Modularidade, Abstração,
Encapsulamento, etc
Orientação a objetos apesar de antiga não era utilizada por falta de pessoas
treinadas, interesse em manter a cultura adquirida, ferramentas imaturas. Isso
começa a se resolver.
O mundo real é composto por objetos. Cada objeto tem propriedades e
comportamentos. Então porquê não desenvolver programas que simulem no
computador os objetos do mundo real com suas propriedades e
comportamentos?
3
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
AOO


4
Segundo Yourdon, “Um sistema construído usando um método Orientado a
Objetos é aquele cujos componentes são partes encapsuladas de dados e
funções, que podem herdar atributos e comportamentos de outros
componentes da mesma natureza, e cujos componentes comunicam-se entre
si por meio de mensagens.”
Objetivo: Encontrar os objetos, organizá-los, descrever como interagem
através de mensagens, definir operações de seus comportamentos.
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
AOO

Nos métodos tradicionais de análise, o comportamento do sistema e seus
dados eram considerados separadamente. Com orientação a objetos,
comportamento e dados são integrados, assim encapsulando detalhes
internos de um objeto dos demais.
Análise
Enfoque
Foco
Estruturada
e Essencial
Conjunto de programas que executam processos
Sobre dados
Sistema
Orientada a
Objetos
Conjunto de “entidades” que têm características e
Comportamentos próprios
Objeto
5
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
6
Desenvolvimento de Sistemas
Profa. Marcely Dias
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
AOO
•
•
•
•
•
7
Concentra-se nos aspectos essenciais do objeto sem detalhamento, focando
em suas características e o que ele faz;
Impede que um sistema se torne tão interdependente que uma pequena
alteração ou implementação resulte em grandes alterações em sua estrutura;
Combina estrutura (dados) e comportamento (funções) em um único objeto;
Compartilha elementos estruturais e de comportamento com objetos de níveis
inferiores;
Enfatiza a estrutura de objetos ao invés da estrutura de procedimentos, ou
seja, o que o objeto é e não como ele é utilizado.
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Por que usar Orientação a
Objetos?
•
•
•
•
•
•
•
8
Atualmente temos ferramentas completas para sua utilização (integrando
especificação e implementação)
Praticamente todas as ferramentas novas de programação permitem suporte a
sua utilização
Qualidade melhor do software (se usada corretamente)
Produtividade em função do reuso (não é imediata)
Produção de códigos mais fáceis de serem entendido (se for bom)
Adequada para a construção de sistemas distribuídos e para aplicações voltadas a
Internet
Permite acesso controlado às informações
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
AOO
•
Dificuldade:
• Usuário não pensam seus problemas de forma orientada a objetos
• Requisitos não são orientados a objetos
Requisitos de usuários são funcionais
9
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
AOO
•
Com o rápido crescimento surgiram várias metodologias principalmente ente
1989-1994
•
Metodologias (processo OO e linguagem de modelagem própria). As mais
significativas foram:
• OMT, Rumbaugh
• COAD/YOURDON, Coad-Yourdon,
• OOSE, Jacobson,
• SHLAER/MELLOR, Shlaer-Mellor,
• BOOCH, Grady Booch
10
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
AOO
•
Como os métodos Booch e o OMT estavam sendo largamente utilizados, seus
autores juntaram forças para fazer um método unificado, com uma linguagem
padrão. Posteriormente Jacobson juntou-se a equipe.
•
Linguagem de modelagem proposta por Booch, Rumbaugh e Jacobson
• UML (Unified Modeling Language)
• Padronizada pela OMG (Object Management Group)
• Conta atualmente com o apoio de vários autores e várias empresas
•
O RUP (Rational Unified Process) foi proposto como uma metodologia para
desenvolvimento de sistemas, orientada a objetos, utilizando UML
11
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Histórico da Análise


Requisitos  Casos de Uso
Casos de uso são orientados a objeto ?!




Para Análise de Projetos só existe a abordagem OO ?



12
Não estamos fazendo análise orientada a objetos;
Pode se utilizado em qualquer projeto como forma de documentar os
requisitos;
São fundamentais para as atividades clássicas de A / POO.
OO.
Estruturada;
Essencial;
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Análise e Projeto Orientado a Objetos

Qual o objetivo da Análise ?



Encontrar e descrever os objetos ou conceitos no domínio do problema;
Biblioteca: Livro, Biblioteca e Usuário.
Qual o objetivo do Projeto ?


Ênfase na definição dos objetos de software;
Colaboração entre eles para a satisfação dos requisitos.
conceito do
domínio
visualização de
conceito de domínio
representação em uma
linguagem oo
Public class Livro
{
Private String titulo;
Public Capitulo
obterCapitulo(int) {...}
}
13
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Um Exemplo



Um jogo de dados no qual um jogador lança dois dados. Se o total
for sete, ele vence; caso contrário, perde.
A análise de requisitos pode incluir uma descrição dos processos do
domínio relacionados; estes podem ser descritos como casos de uso.
Passos:




14
Definir
Definir
Definir
Definir
casos de uso;
modelo de domínio;
diagramas de interação;
diagramas de classes de projeto.
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Caso de uso & Modelo de Domínio

Versão simplificada do Caso de uso:


15
Caso de uso: Jogar um Jogo de Dados:
 Um jogador pega e lança os dados. Se a soma do valor das faces
dos dados totalizar sete, ele vence; caso contrário, perde.
Modelo de domínio
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Definir diagrama de Interação

Diagrama de interação: diagrama de seqüência
:JogoDeDados
dado1:Dado
dado2:Dado
lancar()
jogar ()
vf1 = obterValorDaFace()
lancar()
vf2 = obterValorDaFace()
16
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Definir diagrama de Classes de Projeto

17
Classes de Software
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Paradigma de Orientação a Objetos
Paradigma é uma forma de pensar e perceber o
mundo real e determina o que escolhemos como
significativo e o que descartamos ao compreender ou
descrever o que existe ou ocorre no mundo em torno
de nós.
A mudança de paradigma é uma oportunidade de
encontrar novas interpretações para antigas
questões, bem como, para rever soluções tidas como
definitivas.
18
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Paradigma de Orientação a Objetos
Orientação a objetos constitui um novo paradigma
computacional pois representa uma mudança na
forma de pensar e conceber sistemas e programas de
computador.
A estratégia de O-O para modelagem de sistemas
baseia-se na identificação dos objetos (que
desempenham ou sofrem ações no domínio do
problema) e dos padrões de cooperação e interação
entre estes objetos.
19
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Princípios Orientação a Objetos
Abstração
 Encapsulamento
 Modularidade
 Herança
 Polimorfismo

20
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Abstração



Permite ignorar os aspectos de um assunto não relevantes para o
propósito
Concentração nas características essenciais, gerenciando
complexidade
Construção de um modelo para representação de uma realidade
Forte,
Veloz, ...
21
Desenvolvimento de Sistemas
Coração,
Rim,
Peso, ...
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Abstração
22
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Abstração
Pessoa
Nome
Sexo
Data Nascimento
solicitaPedido ()
efetuaPagamento ()
23
Desenvolvimento de Sistemas
Abstração de Dados
Abstração de Procedimentos
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Encapsulamento

Restringir o escopo ou visibilidade da informação

Obter melhor manutenibilidade e reutilização

Ocultar detalhes de implementação


É o processo de compartimentalização dos elementos de uma abstração
Nenhuma parte de um sistema complexo deve depender de detalhes
internos de qualquer outra parte
Coloque uma
moeda
Máquina de Refrigerante
em lata
Receba a Lata
24
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Modularidade




25
Decomposição de um problema em pequenos
pedaços, para gerenciar complexidade (Dividir
para conquistar)
Cada conceito independente deve ser
representado por um módulo
Construção de módulos desacoplados
Módulos são dependentes uns dos outros, o que
leva a uma relação de acoplamento
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Modularidade
26
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Herança




Mecanismo para expressar a similaridade entre classes
Representa generalização e especialização
Permite representar membros comuns uma só vez;
Especialização pode incluir novos métodos e atributos
Pessoa
Professor
27
Desenvolvimento de Sistemas
Aluno
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Polimorfismo



28
O conceito de polimorfismo está associado a
herança;
Redeclaração de métodos previamente herdados de
uma classe;
Os métodos herdados da super-classe são
reimplementados na sub-classe
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Exemplos
Suponha a seguinte classe escrita em Java:
public abstract class OperacaoMatematica { public abstract double
calcular(double x, double y);
}


29
Esta é uma classe abstrata que representa qualquer operação
matemática. Podemos imaginar diversas operações que se encaixam
na sua interface, como soma, subtração, multiplicação ou divisão,
entre outras. Note que, mesmo que a natureza do cálculo mude, a
semântica do método calcular não muda, ou seja, ele sempre
calculará o resultado da operação matemática que está sendo
trabalhada.
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Exemplos
Definamos então, duas subclasses, Soma e Subtracao, que
implementam a classe OperacaoMatematica:
public class Soma extends OperacaoMatematica {
public double calcular(double x, double y) {
return x+y;
}
}

public class Subtracao extends OperacaoMatematica {
public double calcular(double x, double y) {
return x-y;
}
}
30
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Exemplos
O seguinte trecho de código demonstra o uso do polimorfismo:
public class Contas {
public static void mostrarCalculo(OperacaoMatematica operacao, double x, double y)
{
system.out.println("O resultado é: " + operacao.calcular(x, y)); }

public static void main(String args[]) {
//Primeiro calculamos uma soma
Contas.mostrarCalculo(new Soma(), 5, 5); //Imprime o resultado é: 10
Contas.mostrarCalculo(new Subtracao(), 5, 5); //Imprime o resultado é: 0
}
}

31
Note que, embora o método calcular tenha sido chamado duas vezes no interior de
mostrarCalculo, o comportamento apresentado variou de acordo com a classe ao
qual ele representava no momento. É comum definir sobrecarga de métodos ou
simplesmente sobrecarga como uma forma de polimorfismo embora esta definição
deixe lacunas conceituais.
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Conceitos Básicos de Orientação a Objetos
Classe
Atributos
Estado
Operação/
Métodos
Comportamento





32
Relacionamento
Objeto e Classe
Atributo

Propriedades de um objeto

Armazenam estados dos objetos
Operação

Modelam o comportamento das classes

Serviços que os objetos oferecem a outros objetos
Pacote e Subsistemas:

Elementos de Agrupamento
Relacionamento

Associação (Simples, Agregação e Composição) e Generalização
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Objeto



33
Identidade: Todo objeto é único e pode ser
distinguido de outros objetos
Estado: Determinado pelos dados contidos no
objeto
Comportamento: Definido pelos serviços/operações
que ele oferece
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Classes



34
Descrições de objetos com propriedades e comportamento
comuns
Abstração que enfatiza o que é relevante
Objetos são instâncias de Classes
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Relacionamento

Associação:




Exemplos:



35
Simples: Relação estrutural entre classes
Agregação: Relacionamento todo-parte. O todo possui um nível de
abstração maior que a parte
Composição: Relação de posse mais forte. O todo é responsável
pela criação da parte
Dependente e Funcionário?
Pedido e Item do pedido?
Funcionário e Cartão de ponto?
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Relacionamento

Generalização




Relacionamento entre classes onde uma classe compartilha a estrutura
(atributos e relacionamentos) e comportamento (operações) de outras
classes
Define uma hierarquia de abstrações
Relacionamento “é um tipo de”
Uma subclasse pode:



Tipos de Herança: Simples e Múltipla


36
Adicionar Atributos, operações e relacionamentos;
Redefinir operações herdadas
Classe herdando de apenas uma classe;
Classe herdando de mais de uma classe;
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Testezinho 

37
Dia 10/08/2011 – 2º horário
 Assunto: Análise OO e Conceitos Orientação Objeto
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
APS – Análise e Projeto de Sistemas
Profa. Marcely Dias
Dúvidas ?
38
Desenvolvimento de Sistemas
quinta-feira, 5 de novembro de 2015
Download

APS_Aula02.2