61
ANÁLISE PROJETO E PROGRAMAÇÃO PARA WEB Profª. Maria Alice Jovinski [email protected]

Aula 01 introdução aoo

Embed Size (px)

DESCRIPTION

Aula de introdução AOO - Faculdade União

Citation preview

Page 1: Aula 01   introdução aoo

ANÁLISE PROJETO E

PROGRAMAÇÃO PARA WEB

Profª. Maria Alice Jovinski

[email protected]

Page 2: Aula 01   introdução aoo

OBJETIVOS

Comparar e contrastar Análise e Projeto

Definir Análise e Projeto Orientados a Objetos

Page 3: Aula 01   introdução aoo

EMENTA

Introdução a análise orientada a objeto

Modelagem estática de objetos

Conceitos avançados de modelagem

Modelagem dinâmica

Modelagem funcional

Metodologia orientada a objeto

Page 4: Aula 01   introdução aoo

O QUE VAMOS APRENDER NA DISCIPLINA?

Saber uma linguagem de programação orientada a

objeto (OO) não é suficiente para criar sistemas

OO.

Tem que saber Análise e Projeto OO (APOO)

Isto é, Análise e Projeto usando uma perspectiva de

objetos

Nesta disciplina, vamos nos concentrar na fase de

Projeto, supondo que a Análise já foi feita.

Na prática, a análise e o projeto são feitos em ciclos.

Em cada ciclo, a análise vem antes do projeto

Page 5: Aula 01   introdução aoo

O QUE VAMOS APRENDER NA DISCIPLINA?

Usaremos a linguagem UML (Unified Modeling

Language) para criar modelos (de análise e de

projeto):

Um modelo é uma representação abstrata dos aspectos

essenciais de um sistema;

O que é "essencial" depende do momento da

modelagem;

A UML usa uma representação principalmente gráfica

para representar os modelos;

UML é muito popular hoje em dia para modelar

sistemas;

Page 6: Aula 01   introdução aoo

REFERÊNCIA BIBLIOGRÁFICA

FURLAN, José David. Modelagem de objetosatravés da UML. São Paulo: Makron Book,1998.

RUMBAUGH, James et al. Modelagem eprojetos baseados em objetos. Rio deJaneiro: Campus, 1994.

COAD, Peter, YORDON, Edward. Análisebaseada em objetos. Rio de Janeiro: Campus,1992.

MARTIN, James. ODELL, James J. Análise eProjeto Orientados a Objeto. São Paulo:Makron Books, 1995.

AMBLER, Scott W. Análise e ProjetoOrientados a Objeto. Rio de Janeiro:Infobook, 1998. volume II.

Page 7: Aula 01   introdução aoo

DIFERENÇAS ENTRE ANÁLISE E PROJETO

Primeira alternativa:

A análise modela o problema e consiste das atividades

necessárias para entender o domínio do problema (o

que deve ser feito). É uma atividade de investigação.

O projeto modela a solução e consiste das atividades

de criação (como pode ser feito).

Análise Projeto

Modelagem do

problema

(entender)

Modelagem da

solução

(criar)

Page 8: Aula 01   introdução aoo

DIFERENÇAS ENTRE ANÁLISE E PROJETO

Segunda alternativa:

A análise consiste de todas as atividades feitas com ou

para o conhecimento do cliente. A informação produzida

é aquela que o cliente deve discutir e aprovar;

O projeto inclui as atividades que resultam em

informação que interessa apenas ao programador;

Com essa definição, a análise invade um pouco o "lado

da solução", pois o cliente deve discutir alguns tipos de

interações que ocorrerão na interface do usuário, etc;

Page 9: Aula 01   introdução aoo

DIFERENÇAS ENTRE ANÁLISE E PROJETO

Análise Projeto

Análise = informação

importante para o cliente

discutir e aprovar

Projeto = informação

importante para o

programador apenas

Page 10: Aula 01   introdução aoo

POR QUE A CONSTRUÇÃO DE SOFTWARE NÃO

APRESENTA A MESMA CONSTÂNCIA QUE OUTRAS

ÁREAS?

Engenharia Civil?

Principais equívocos:

Quando se pensa em construir uma casa, um prédio, um

navio, ou qualquer obra de Engenharia Civil, Naval ou

Eletrônica inicia-se co uma planta. Engenheiros, arquitetos,

colocam à sua disposição anos de trabalho e conseqüente

experiência. Nada se inicia, em termos de construção, antes

que a concepção do projeto esteja terminada.

No exemplo da construção civil, tudo é pensado, antes mesmo

de um tijolo ser assentado, partindo-se do pressuposto de que

o terreno é conhecido e a área a ser construída obedecerá às

regras de zoneamento da prefeitura local.

Page 11: Aula 01   introdução aoo

POR QUE A CONSTRUÇÃO DE SOFTWARE NÃO

APRESENTA A MESMA CONSTÂNCIA QUE OUTRAS

ÁREAS?

Por anos, tentamos construir software tendo como

termo de comparação a construção civil;

O problema é que os requisitos de um software

sofrem mudanças. Elas ocorrem porque o

interessado no software passa por mudanças

mostradas adiantes, não importando o tamanho do

software;

Page 12: Aula 01   introdução aoo

Os sistemas desenvolvidos hoje possui

características diferentes dos sistemas de

10 a 15 anos atrás.

Implementação Orientado a Objetos (IOO)

teve início nos anos 70 com a linguagem

SIMULA, parte da linguagem Smaltalk.

Os conceitos básicos do desenvolvimento

de software OO levaram mais de 10 anos

para amadurecerem.

Page 13: Aula 01   introdução aoo

O QUE É ANÁLISE E PROJETO ORIENTADOS A

OBJETOS?

A perspectiva empregada é de objetos (coisas,

conceitos ou entidades)

É um novo modo de estudar problemas com

utilização de modelos fundamentados em conceitos

do mundo real.

Page 14: Aula 01   introdução aoo

ORIENTAÇÃO A OBJETOS

Características

– Forma natural de enxergar a realidade

– Forma natural de modelar

– Forma natural de codificar

O mundo é Orientado a Objetos

Page 15: Aula 01   introdução aoo

O QUE SIGNIFICA “BASEADO EM OBJETOS”?

Significa que o software é organizado como uma

coleção de objetos separados que incorporam

tanto a estrutura quanto o comportamento dos

dados;

Isso contrasta com a programação convencional,

segundo a qual a estrutura e o comportamento dos

dados tem pouca vinculação entre si;

Page 16: Aula 01   introdução aoo

ORIENTAÇÃO À OBJETOS (OO)

A análise e Projeto OO tem como meta identificar o

melhor conjunto de objetos para descrever um

sistema de software;

O funcionamento deste sistema se dá através do

relacionamento e troca de mensagens entre estes

objetos;

Page 17: Aula 01   introdução aoo

VANTAGENS

Dentre as vantagens que a OO proporciona,destacam-se:

Reusabilidade: de código;

de objetos encapsulados;

Componentes, Frameworks, etc.

Manutenibilidade: Mudanças bem localizadas, não acarretando propagações

descontroladas.

Confiabilidade: Devido ao encapsulamento, que torna as estruturas de dados

privado aos objetos.

Extensibilidade Aumento da Produtividade

Page 18: Aula 01   introdução aoo

CONCEITOS DE ORIENTAÇÃO A OBJETOS

Conceitos de OO que são imprescindíveis para o

entendimento do processo de desenvolvimento:

Objeto

Identidade

Mensagem

Classe

Métodos e Atributos

Abstração

Encapsulamento

Herança

Polimorfismo

Page 19: Aula 01   introdução aoo

SISTEMA ORIENTADO A OBJETOS

Um sistema orientado a objetos é uma coleção de

objetos que interagem entre si;

Um objeto interage com outro através de uma

mensagem que causa um estímulo;

Page 20: Aula 01   introdução aoo

OBJETOS E CLASSES

Um objeto é qualquer indivíduo, lugar, evento,

coisa, tela, relatório ou conceito que seja aplicável

ao sistema:

Em um sistema universitário, “João” é um estudante-

objeto;

Ele atende a diversos seminários-objetos e está trabalhando

em um mestrado-objeto.

Em um sistema bancário, “João”é um cliente-objeto e

possui uma conta corrente-objeto da qual ele emite

cheques-objetos borrachudos;

Page 21: Aula 01   introdução aoo

OBJETOS E CLASSES

Por exemplo, num sistema de informação para uma

biblioteca, alguns dos conceitos são Livro,

Biblioteca, Usuário;

Objetos são, semelhantes a outros tipos de

objetos. Estudantes compartilham de

características semelhantes (fazem o mesmo tipo

de coisas, são descritos da mesma forma), cursos

compartilha características semelhantes, itens de

um inventário também;

Page 22: Aula 01   introdução aoo

CLASSES

Uma classe descreve um conjunto de objetos: as

instâncias da classe;

Uma classe descreve o comportamento e a

composição do estado de todos os seus objetos;

Cada classe deve ter um nome distinto;

Page 23: Aula 01   introdução aoo

ATRIBUTOS

É uma característica particular possuída por todos

os OBJETOS de uma CLASSE e assume valores

específicos para cada OBJETO

Classe Funcionário(possui) CPF

(possui) RG

(possui) Nome

(possui) Endereço

Page 24: Aula 01   introdução aoo

ATRIBUTO

Algo que um objeto ou uma classe sabem;

Um atributo é basicamente um único dado ou

informação;

Podem ser simples, como um número inteiro, ou

podem ser objetos complexos, como um endereço

de um cliente;

Page 25: Aula 01   introdução aoo

Exemplo

Valor:nome = João, endereço = rua ..... , data de nascimento =

05/07/71 telefone = 999-9999

Classe Funcionário(possui) nome

(possui) endereço

(possui) data de

nascimento

(possui) telefone

ATRIBUTO

Page 26: Aula 01   introdução aoo

CLASSE, OBJETO E ATRIBUTO

Classe pessoa

Page 27: Aula 01   introdução aoo

É o ato de definir um objeto conceitual a partir de

OBJETOS do mundo real que possuam as

mesmas características e comportamento,

podendo ser classificados como pertencentes a

um mesmo tipo;

Dinheiro

ABSTRAÇÃO

Page 28: Aula 01   introdução aoo

ABSTRAÇÃOExemplo

Avião

Esporte

Page 29: Aula 01   introdução aoo

INSTÂNCIA

Representa cada ocorrência de um OBJETO

formados a partir de uma CLASSE.

Funcionário1 Ana

2 João

3 Fátima

4 Pedro

5 Carlos

Outra palavra para objeto. Dizemos que objeto é

uma instância de uma classe.

Page 30: Aula 01   introdução aoo

INSTÂNCIA

Objeto Funcionário 2

(instância)Ana Maria

Av. Curitiba, 444

05/02/69

999-9999Exemplo

Classe Funcionário

possui nome

possui endereço

possui data de

nascimento

possui telefoneObjeto Funcionário 1

(instância)Carlos

Av. Curitiba, 44

05/03/69

999-9998

Page 31: Aula 01   introdução aoo

OPERAÇÃO

Um serviço que é requisitado a um objeto como parte de

seu comportamento em resposta a estímulos. Uma

operação tem uma assinatura que pode restringir quais

parâmetros reais são possíveis;

Page 32: Aula 01   introdução aoo

OPERAÇÃO

É o que os Objetos de uma Classe sabem realizar

Cafeteira.esquenta

Cafeteira.aumentaTemperatura

Cafeteira.diminuiTempo

Page 33: Aula 01   introdução aoo

MÉTODO

Cada método possui uma assinatura, um tipo de

retorno (primitivo ou classe) e uma implementação;

A assinatura de um método é composta por um

nome e uma lista de parâmetros;

Cada parâmetro tem um nome e um tipo (primitivo

ou classe);

Page 34: Aula 01   introdução aoo

Exemplo da implementação de um método em JAVA:

void remover(ActionEvent e){

try

{

deleteRow();

saveChanges();

}

catch (Exception ex)

{

desabilita();

}

}

Page 35: Aula 01   introdução aoo

MENSAGEM

Representa o mecanismo de invocação de uma

OPERAÇÃO;

É o mecanismo utilizado para solicitar uma

OPERAÇÃO. É a forma de conseguir executar

uma OPERAÇÃO;

Operação Abrir

Evento

ao abrir mensagem

Page 36: Aula 01   introdução aoo

INTERAÇÃO ENTRE OBJETOS

Page 37: Aula 01   introdução aoo

IDPessoaClasse Funcionário

Funcionario-ID

RG

Nome

Endereço

Data Nascimento

IDENTIFICADOR ÚNICO

É um ou vários ATRIBUTOS, cuja função é permitir

a individualização de cada INSTÂNCIA;

Page 38: Aula 01   introdução aoo

ASSOCIAÇÃO

Vem do relacionamento entre as entidades

do mundo real, e é usada para agrupar

certos objetos que ocorrem em algum ponto

no tempo ou sob circunstâncias similares;

Uma conexão de ocorrência é um

relacionamento que um objeto precisa ter

com outro(s) objeto(s), para cumprir suas

responsabilidades;

Page 39: Aula 01   introdução aoo

ASSOCIAÇÃO

Os objetos estão associados ou relacionados uns

com os outros.

Estudantes FREQUENTAM cursos;

Professores MINISTRAM aulas;

Criminosos ROUBAM bancos;

Frequentar, ministrar, roubar são verbos que

definem relações entre objetos;

Um relacionamento entre instâncias tem o mesmo

conceito que um relacionamento em um diagrama

de entidade e relacionamento ou modelo de dados;

Page 40: Aula 01   introdução aoo

Cliente

Faz

Pedido

Figura – Associação: Relacionamento Cliente-Pedido

Page 41: Aula 01   introdução aoo

ASSOCIAÇÃO

Não temos apenas que identificar o(s)

relacionamento(s) entre objetos, temos também

que descrever o relacionamento

Não é suficiente saber que estudantes frequentam

cursos.

Quantos cursos os estudantes frequentam? Nenhum ou

vários?

Os estudantes frequentam cursos, e os cursos são

frequentados por estudantes? Quantos estudantes estão

envolvidos em cada curso?

Temos que identificar a cardinalidade e a opcionalidade

do relacionamento.

Page 42: Aula 01   introdução aoo

A cardinalidade nos diz quantos objetos estão

envolvidos em um relacionamento entre instâncias;

A opcionalidade indica se é preciso ou não fazer

algo;

Page 43: Aula 01   introdução aoo

AGREGAÇÃO

Algumas vezes um objeto é constituído de outros

objetos:

Um avião é composto de fuselagem, asas, motores,

trem de pouso

Uma remessa de um navio é composta de um ou mais

pacotes.

Estes são exemplos do conceito de agregação, que

representa relacionamentos do tipo “faz parte de”:

Um motor faz parte de um avião, um pacote faz parte

de uma remessa e um funcionário faz parte de uma

equipe;

Page 44: Aula 01   introdução aoo

Todo

Partes

Figura – Todo-Parte: Classe Casa e classes compostas

? ? ? ?

Page 45: Aula 01   introdução aoo

HERANÇA ENTRE CLASSES

Duas classes podem ter uma relação de

generalização e especialização: uma classe geral

(superclasse) e uma classe específica

(subclasse);

Uma subclasse herda todas as propriedades

(atributos e métodos) da sua superclasse

Page 46: Aula 01   introdução aoo

EXEMPLOS DE HERANÇA

A subclasse Estudante herda as propriedades da superclasse Pessoa;

A subclasse Quadrado herda as propriedades da superclasse Poligono;

A subclasse Triangulo herda as propriedades da superclasse Poligono;

A subclasse TrianguloRetangulo herda as propriedades da superclasse Triangulo

Page 47: Aula 01   introdução aoo

Pessoas

HERANÇA

Conceito: é o mecanismo para expressar a

similaridade entre Classes, simplificando a definição

de Classes iguais a outras que já foram definidas;

Page 48: Aula 01   introdução aoo

HERANÇA

Representa a propriedade pela qual uma CLASSE

pode herdar características e comportamento de

uma outra CLASSE

Page 49: Aula 01   introdução aoo

HERANÇA

Permite a reutilização de especificações

comuns, logo no início das atividades de

análise;

Define uma relação entre classes do tipo é-

um(a), onde uma classe compartilha a

estrutura e o comportamento definidos em uma

ou mais classes;

Superclasse Abstrata ou mãe: não é

instanciável é utilizada como MODELO;

Page 50: Aula 01   introdução aoo

HERANÇA

O reconhecimento da similaridade entre classes

forma uma hierarquia de classes, onde

superclasses representam abstrações

generalizadas e subclasses representam

abstrações, onde atributos e serviços específicos

são adicionados, modificados ou removidos;

Page 51: Aula 01   introdução aoo

HERANÇA

As classes são conectadas por uma estrutura de

generalização e especialização;

Ex:

Padronização de Interface

Classes: acervo, Livro e Revistas

Page 52: Aula 01   introdução aoo

Pessoa

Estudante Professor Funcionário Diretor

Figura – Herança: Classe Pessoa e classes derivadas

Page 53: Aula 01   introdução aoo

ENCAPSULAMENTO

Separação dos aspectos externos de um objeto

dos seus detalhes internos de implementação;

O estado de um objeto somente é acessível a

partir da implementação de seu comportamento;

Page 54: Aula 01   introdução aoo

GARANTIA DE ENCAPSULAMENTO

Page 55: Aula 01   introdução aoo

ENCAPSULAMENTO (OCULTAMENTO DA INFORMAÇÃO)

É a combinação de atributos e operações em uma

classe;

Objetivo é restringir o escopo ou visibilidade da

informação para obter melhor legibilidade,

manutebilidade e principalmente reutilizabilidade no

desenvolvimento de um novo sistema;

Page 56: Aula 01   introdução aoo

ENCAPSULAMENTO (OCULTAMENTO DA INFORMAÇÃO)

Controle de Acesso

Determina como uma classe será utilizada por outras classe;

Privado – Private

É utilizado para impedir que um método ou variável seja

acessado a partir de uma outra classe, porem são totalmente

acessíveis internamente a classe onde foram declarados.

Esta restrição afeta inclusive a herança – as subclasses não

herdam estes membros privados.

Público – Public

Este modificador dá acesso a um membro da classe a partir de

outra classe, tornando-o completamente disponível para outra

classe, por isso deve ser evitado.

Page 57: Aula 01   introdução aoo

ENCAPSULAMENTO (OCULTAMENTO DA INFORMAÇÃO)

Controle de Acesso:

Protegido – Protected

Deve existir Herança;

Protegida dentro da classe, porem pública para as

subclasses e é privado para as demais classes que se

associam a ela.

Page 58: Aula 01   introdução aoo

ENCAPSULAMENTO CALCULADORA

Tem oculto seus

registradores, que são

ocultos por uma interface

que disponibiliza para o

usuário apenas serviços

de +, -, / * e outras;

Processo pelos quais se

obtêm um resultado não

estão diretamente

visíveis para quem esta

usando a calculadora;

Page 59: Aula 01   introdução aoo

POLIFORMISMO

Habilidade para usar a mesma mensagem para

invocar comportamentos diferentes do objeto.

Page 60: Aula 01   introdução aoo

Exemplo

Funcionário

Livro

Operação Criar Exemplar

Banco

Agência

... a estrutura (atributos) de cada classe é diferente

POLIFORMISMO

Page 61: Aula 01   introdução aoo

EXEMPLO DE POLIFORMISMO