SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
ANÁLISE PROJETO E
PROGRAMAÇÃO PARA WEB
Profª. Maria Alice Jovinski
mjovinski@gmail.com
OBJETIVOS
 Comparar e contrastar Análise e Projeto
 Definir Análise e Projeto Orientados a Objetos
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
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
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;
REFERÊNCIA BIBLIOGRÁFICA
 FURLAN, José David. Modelagem de objetos
através da UML. São Paulo: Makron Book,
1998.
 RUMBAUGH, James et al. Modelagem e
projetos baseados em objetos. Rio de
Janeiro: Campus, 1994.
 COAD, Peter, YORDON, Edward. Análise
baseada em objetos. Rio de Janeiro: Campus,
1992.
 MARTIN, James. ODELL, James J. Análise e
Projeto Orientados a Objeto. São Paulo:
Makron Books, 1995.
 AMBLER, Scott W. Análise e Projeto
Orientados a Objeto. Rio de Janeiro:
Infobook, 1998. volume II.
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)
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;
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
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.
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;
 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.
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.
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
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;
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;
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
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
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;
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;
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;
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;
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
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;
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
CLASSE, OBJETO E ATRIBUTO
Classe pessoa
 É 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
ABSTRAÇÃO
Exemplo
Avião
Esporte
INSTÂNCIA
Representa cada ocorrência de um OBJETO
formados a partir de uma CLASSE.
Funcionário
1 Ana
2 João
3 Fátima
4 Pedro
5 Carlos
 Outra palavra para objeto. Dizemos que objeto é
uma instância de uma classe.
INSTÂNCIA
Objeto Funcionário 2
(instância)
Ana Maria
Av. Curitiba, 444
05/02/69
999-9999
Exemplo
Classe Funcionário
possui nome
possui endereço
possui data de
nascimento
possui telefone
Objeto Funcionário 1
(instância)
Carlos
Av. Curitiba, 44
05/03/69
999-9998
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;
OPERAÇÃO
 É o que os Objetos de uma Classe sabem realizar
Cafeteira.esquenta
Cafeteira.aumentaTemperatura
Cafeteira.diminuiTempo
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);
Exemplo da implementação de um método em JAVA:
void remover(ActionEvent e)
{
try
{
deleteRow();
saveChanges();
}
catch (Exception ex)
{
desabilita();
}
}
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
INTERAÇÃO ENTRE OBJETOS
IDPessoa
Classe 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;
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;
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;
Cliente
Faz
Pedido
Figura – Associação: Relacionamento Cliente-Pedido
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.
 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;
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;
Todo
Partes
Figura – Todo-Parte: Classe Casa e classes compostas
? ? ? ?
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
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
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;
HERANÇA
 Representa a propriedade pela qual uma CLASSE
pode herdar características e comportamento de
uma outra CLASSE
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;
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;
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
Pessoa
Estudante Professor Funcionário Diretor
Figura – Herança: Classe Pessoa e classes derivadas
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;
GARANTIA DE ENCAPSULAMENTO
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;
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.
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.
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;
POLIFORMISMO
 Habilidade para usar a mesma mensagem para
invocar comportamentos diferentes do objeto.
Exemplo
Funcionário
Livro
Operação Criar Exemplar
Banco
Agência
... a estrutura (atributos) de cada classe é diferente
POLIFORMISMO
EXEMPLO DE POLIFORMISMO

Más contenido relacionado

La actualidad más candente

Aula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_ooAula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
Portal_do_estudante_ADS
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
elliando dias
 

La actualidad más candente (20)

Aula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_umlAula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_uml
 
Modelando Sistemas com UML
Modelando Sistemas com UMLModelando Sistemas com UML
Modelando Sistemas com UML
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)
 
Uml ppoint
Uml ppointUml ppoint
Uml ppoint
 
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_ooAula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
 
Trabalho uml
Trabalho umlTrabalho uml
Trabalho uml
 
UML
UMLUML
UML
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Componentes
ComponentesComponentes
Componentes
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
A Linguagem UML
A Linguagem UMLA Linguagem UML
A Linguagem UML
 
Visibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLVisibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UML
 
Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Aula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semanaAula desesenvolvimento segunda semana
Aula desesenvolvimento segunda semana
 
Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
 

Similar a Aula 01 introdução aoo

Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
emcp11
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
odnanfer
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
Nécio de Lima Veras
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
PAULO Moreira
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
Leonardo Melo Santos
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
pedrina4
 
Linguagem de programação introdução v1
Linguagem de programação   introdução v1Linguagem de programação   introdução v1
Linguagem de programação introdução v1
Carlos Melo
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientada
robinhoct
 

Similar a Aula 01 introdução aoo (20)

Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
 
Conceitos de Orientação A Objeto
Conceitos de Orientação A ObjetoConceitos de Orientação A Objeto
Conceitos de Orientação A Objeto
 
Sld 4
Sld 4Sld 4
Sld 4
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
 
Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
aula 1.pptx
aula 1.pptxaula 1.pptx
aula 1.pptx
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 
Aula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aooAula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aoo
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Net uma revisão sobre a programação orientada a objetos
Net   uma revisão sobre a programação orientada a objetosNet   uma revisão sobre a programação orientada a objetos
Net uma revisão sobre a programação orientada a objetos
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
 
Linguagem de programação introdução v1
Linguagem de programação   introdução v1Linguagem de programação   introdução v1
Linguagem de programação introdução v1
 
1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf1 - Introduação - Classes - Objetos.pdf
1 - Introduação - Classes - Objetos.pdf
 
3 oo-concepts
3 oo-concepts3 oo-concepts
3 oo-concepts
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientada
 
3 oo-concepts
3 oo-concepts3 oo-concepts
3 oo-concepts
 

Más de Maria Alice Jovinski

5º P - Propaganda Marketing Digital
5º P - Propaganda Marketing Digital5º P - Propaganda Marketing Digital
5º P - Propaganda Marketing Digital
Maria Alice Jovinski
 
Revisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesRevisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e Classes
Maria Alice Jovinski
 
Aula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniaoAula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniao
Maria Alice Jovinski
 

Más de Maria Alice Jovinski (19)

Marketing pessoal você é sua melhor marca
Marketing pessoal   você é sua melhor marcaMarketing pessoal   você é sua melhor marca
Marketing pessoal você é sua melhor marca
 
5º P - Propaganda Marketing Digital
5º P - Propaganda Marketing Digital5º P - Propaganda Marketing Digital
5º P - Propaganda Marketing Digital
 
AOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de UsoAOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de Uso
 
Marketing Digital - Publicação e Encontrabilidade
Marketing Digital - Publicação e EncontrabilidadeMarketing Digital - Publicação e Encontrabilidade
Marketing Digital - Publicação e Encontrabilidade
 
Aula de Revisão 1º parcial - Marketing Digital
Aula de Revisão 1º parcial - Marketing DigitalAula de Revisão 1º parcial - Marketing Digital
Aula de Revisão 1º parcial - Marketing Digital
 
Aula 01 introdução marketing digital
Aula 01   introdução marketing digitalAula 01   introdução marketing digital
Aula 01 introdução marketing digital
 
Revisão 2º bimestre - Marketing Digital TSI
Revisão 2º bimestre - Marketing Digital TSIRevisão 2º bimestre - Marketing Digital TSI
Revisão 2º bimestre - Marketing Digital TSI
 
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSIAula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
Aula de revisão 2º bimestre - Análise Projeto e Programação para Web - TSI
 
Aula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoAula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniao
 
Aula diagrama de colaboracao 3º periodo uniao
Aula diagrama de colaboracao 3º periodo uniaoAula diagrama de colaboracao 3º periodo uniao
Aula diagrama de colaboracao 3º periodo uniao
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniao
 
Aula diagrama de estados 3º periodo uniao
Aula diagrama de estados 3º periodo uniaoAula diagrama de estados 3º periodo uniao
Aula diagrama de estados 3º periodo uniao
 
Marketing digital - Aula Google Analytics
Marketing digital - Aula Google AnalyticsMarketing digital - Aula Google Analytics
Marketing digital - Aula Google Analytics
 
Md aula 10
Md   aula 10Md   aula 10
Md aula 10
 
Aula diagrama de interação - 3º periodo uniao
Aula diagrama de interação - 3º periodo uniaoAula diagrama de interação - 3º periodo uniao
Aula diagrama de interação - 3º periodo uniao
 
Aula de Revisão - Marketing Digital - 1º bimestre
Aula de Revisão - Marketing Digital -  1º bimestreAula de Revisão - Marketing Digital -  1º bimestre
Aula de Revisão - Marketing Digital - 1º bimestre
 
Revisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesRevisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e Classes
 
Aula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniaoAula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniao
 
Aula classes abstratas 3º periodo uniao
Aula classes abstratas  3º periodo uniaoAula classes abstratas  3º periodo uniao
Aula classes abstratas 3º periodo uniao
 

Aula 01 introdução aoo

  • 1. ANÁLISE PROJETO E PROGRAMAÇÃO PARA WEB Profª. Maria Alice Jovinski mjovinski@gmail.com
  • 2. OBJETIVOS  Comparar e contrastar Análise e Projeto  Definir Análise e Projeto Orientados a Objetos
  • 3. 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
  • 4. 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
  • 5. 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;
  • 6. REFERÊNCIA BIBLIOGRÁFICA  FURLAN, José David. Modelagem de objetos através da UML. São Paulo: Makron Book, 1998.  RUMBAUGH, James et al. Modelagem e projetos baseados em objetos. Rio de Janeiro: Campus, 1994.  COAD, Peter, YORDON, Edward. Análise baseada em objetos. Rio de Janeiro: Campus, 1992.  MARTIN, James. ODELL, James J. Análise e Projeto Orientados a Objeto. São Paulo: Makron Books, 1995.  AMBLER, Scott W. Análise e Projeto Orientados a Objeto. Rio de Janeiro: Infobook, 1998. volume II.
  • 7. 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)
  • 8. 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;
  • 9. 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
  • 10. 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.
  • 11. 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;
  • 12.  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.
  • 13. 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.
  • 14. 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
  • 15. 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;
  • 16. 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;
  • 17. 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
  • 18. 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
  • 19. 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;
  • 20. 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;
  • 21. 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;
  • 22. 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;
  • 23. 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
  • 24. 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;
  • 25. 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
  • 26. CLASSE, OBJETO E ATRIBUTO Classe pessoa
  • 27.  É 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
  • 29. INSTÂNCIA Representa cada ocorrência de um OBJETO formados a partir de uma CLASSE. Funcionário 1 Ana 2 João 3 Fátima 4 Pedro 5 Carlos  Outra palavra para objeto. Dizemos que objeto é uma instância de uma classe.
  • 30. INSTÂNCIA Objeto Funcionário 2 (instância) Ana Maria Av. Curitiba, 444 05/02/69 999-9999 Exemplo Classe Funcionário possui nome possui endereço possui data de nascimento possui telefone Objeto Funcionário 1 (instância) Carlos Av. Curitiba, 44 05/03/69 999-9998
  • 31. 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;
  • 32. OPERAÇÃO  É o que os Objetos de uma Classe sabem realizar Cafeteira.esquenta Cafeteira.aumentaTemperatura Cafeteira.diminuiTempo
  • 33. 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);
  • 34. Exemplo da implementação de um método em JAVA: void remover(ActionEvent e) { try { deleteRow(); saveChanges(); } catch (Exception ex) { desabilita(); } }
  • 35. 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
  • 37. IDPessoa Classe 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;
  • 38. 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;
  • 39. 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;
  • 40. Cliente Faz Pedido Figura – Associação: Relacionamento Cliente-Pedido
  • 41. 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.
  • 42.  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;
  • 43. 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;
  • 44. Todo Partes Figura – Todo-Parte: Classe Casa e classes compostas ? ? ? ?
  • 45. 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
  • 46. 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
  • 47. 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;
  • 48. HERANÇA  Representa a propriedade pela qual uma CLASSE pode herdar características e comportamento de uma outra CLASSE
  • 49. 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;
  • 50. 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;
  • 51. 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
  • 52. Pessoa Estudante Professor Funcionário Diretor Figura – Herança: Classe Pessoa e classes derivadas
  • 53. 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;
  • 55. 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;
  • 56. 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.
  • 57. 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.
  • 58. 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;
  • 59. POLIFORMISMO  Habilidade para usar a mesma mensagem para invocar comportamentos diferentes do objeto.
  • 60. Exemplo Funcionário Livro Operação Criar Exemplar Banco Agência ... a estrutura (atributos) de cada classe é diferente POLIFORMISMO