Buscar

Aula 1 Introdução - CONCEITO DE ORIENTAÇÃO A OBJETOS - UNICARIOCA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula 1 
Conceitos de Orientação a Objetos 
 
 
Prof. Johnny V. Tafur 
 
jtafur@unicarioca.edu.br 
Histórico de Metodologias de 
Software 
• Início Anos 70 - Programação Estruturada 
• Niklaus Wirth 
• Fim Anos 70 - Projeto Estruturado 
• Constantine, Yourdon 
• Anos 80 - Análise Estruturada 
• Yourdon/DeMarco, James Martim, Chris Gane 
• Anos 90 
• Orientação a Objetos 
• Baseado no paradigma estruturado 
• Qualidade de Software 
• UML 
• Componentização 
Evolução 
Algol 
1960 1965 1970 1975 1980 1985 1990 1995 2000 
| | | | | | | | | 
Simula 
Pascal 
CPL 
Smaltalk 
Pascal 
objects 
Delphi 
Objective 
C 
Java C# 
BCPL B 
C C++ ANSI
C++ 
ISO 
C++ 
| | | | | | | | | 
Programação 
Estruturada 
Projeto 
Estruturado 
Análise 
Estruturada 
Orientação 
a objetos 
Análise orientada 
a objetos UML 
AT&T Bell AT&T Bell 
Sun Microsoft 
Borland 
QUALIDADE DE SOFTWARE 
 A Crise do Software (Problemas e Causas) 
 Qualidade de software é um conjunto de propriedades a serem 
satisfeitas em um determinado grau, de modo que o software 
satisfaça às necessidades de seus usuários 
 Atributos de qualidade: Corretude, Eficiência, Manutenibilidade 
Portabilidade, Reusabilidade, Robustez, Extensibilidade, 
Integridade e Usabilidade 
 Os fatores extensibilidade e reusabilidade estão diretamente 
relacionados à manutenção de sistemas. Estima-se que 70% do 
custo de software corresponde à manutenção 
 
Clareza versus Eficiência 
 Pensamento a longo prazo e desenvolvimento disciplinado, ao 
invés de resultados imediatos e de qualquer jeito 
 Software tem que ser adaptável, flexível, fácil de manter (custos e 
tempo reduzidos de desenvolvimento e manutenção) 
6
 
PARADIGMAS DE PROGRAMAÇÃO 
 O que é Paradigma de Programação? 
 Modelo, padrão ou estilo de programação suportado por 
linguagens que agrupam certas características comuns 
 Paradigma Imperativo 
 Programas centrados no conceito de um estado (modelado por 
variáveis) e ações (comandos) que manipulam o estado 
 Paradigma também denominado de procedural, por incluir 
subrotinas ou procedimentos como mecanismo de estruturação 
 Primeiro paradigma a surgir e ainda é o dominante 
 Paradigma Orientado a Objetos 
 Não é um paradigma no sentido estrito: é uma subclassificacão do 
imperativo 
 A diferença é mais de metodologia quanto à concepção e modelagem do 
sistema 
 A grosso modo, uma aplicação é estruturada em módulos (classes) que 
agrupam um estado e operações (métodos) sobre este 
7
 
PARADIGMAS DE PROGRAMAÇÃO 
 Paradigma Funcional 
 Programas são funções que descrevem uma relação explícita e 
precisa entre E/S 
 Estilo declarativo: não há o conceito de estado nem comandos 
como atribuição 
 Conceitos sofisticados como polimorfismo, funções de alta 
ordem e avaliação sob demanda 
 Aplicação: IA 
 Paradigma Lógico 
 Programas são relações entre E/S 
 Estilo declarativo, como no paradigma funcional 
 Na prática, inclui características imperativas, por questão de 
eficiência 
 Aplicações: SGBD 
CONCEITOS DA ORIENTAÇÃO A OBJETOS 
 Administração da Complexidade 
 Abstração (dados e procedimentos): Deter em elementos relevantes 
 Encapsulamento: Separar aspectos externos dos detalhes internos 
 Modularidade: Módulos coesos e fracamente acoplados 
 Herança: Compartilhamento de propriedades e comportamento 
 
 Conceitos Básicos 
 Objetos: Elemento que desempenha um papel específico 
 Classes e Instâncias: Classe descreve um conjunto de objetos com 
mesmos atributos/operações/relações/semântica 
 Mecanismos de Estruturação: Ligações e Associações / Composição e 
Agregação / Herança 
 Métodos e Mensagens: Métodos implementam operações e Mensagens 
são usadas para ativar métodos 
 Persistência: Transcender o tempo/espaço 
CONCEITOS DA ORIENTAÇÃO A OBJETOS 
 Conceitos Avançados 
 Classes e Operações Abstratas: Classes abstratas 
organizam características comuns a diversas classes. 
Operações abstratas possuem múltiplas implementações 
 Polimorfismo: Um objeto emissor de uma mensagem não 
precisa conhecer a classe do objeto receptor. As operações 
possuem a mesma assinatura e semântica 
 Sobrecarga: As operações não têm necessariamente a mesma 
semântica e nem precisam conservar sua assinatura 
 Ligação Dinâmica: A mensagem somente é associada ao 
método específico da classe do objeto receptor no 
momento em que é enviada 
1
0
 
CONCEITOS DA ORIENTAÇÃO A OBJETOS 
Administração de 
Complexidade 
Abstração 
Encapsulamento 
Modularidade 
Herança 
Conceitos Básicos 
Objetos 
Mecanismos de 
Estruturação 
Classe e 
Instâncias 
Métodos e 
Mensagens 
Persistência 
Conceitos Avançados 
Classes e 
Operações 
Abstratas 
Polimorfismo 
Sobrecarga 
Ligação 
Dinâmica 
Para uma linguagem ser considerada 
OO, ela precisa implementar 4 
conceitos: 
•Abstração 
•Encapsulamento 
•Herança 
•Polimorfismo. 
1
1
 
ANÁLISE, PROJETO E PROGRAMAÇÃO OO 
 Na Análise OO o objetivo é desenvolver um modelo OO do 
domínio da aplicação. Os objetos identificados podem ou 
não podem ser mapeados diretamente em objetos do 
sistema 
 No Projeto OO o objetivo é desenvolver um modelo OO de 
um sistema de software para implementar os requisitos 
identificados. Estes requisitos podem ou não ser 
estruturados em objetos no domínio do problema 
 Na Programação OO o objetivo é realizar um projeto de 
software usando uma linguagem de programação OO. Uma 
linguagem de programação OO suporta diretamente a 
implementação de objetos e fornece classes e herança 
 
1
2
 
UNIFIED MODELING LANGUAGE (UML) 
 A UML é uma linguagem padrão para especificar, 
visualizar, documentar e construir artefatos de um 
sistema e pode ser utilizada ao longo de todo o ciclo de 
desenvolvimento e através de diferente tecnologias de 
implementação 
 Será citada a utilização do diagrama de classes 
 Uma classe UML apresenta a seguinte representação 
gráfica: 
 
 
Nome da Classe (obrigatório) 
Atributos da Classe (opcional) 
Operações da Classe (opcional) 
Implementação em Java 
public class Sala{ 
 int codigoSala; 
 
 public void consultarSalas(){...} 
} 
PROGRAMAÇÃO ORIENTADA A OBJETOS 
 A Programação Orientada a Objetos (Object-Oriented 
Programing) foi concebida no início da década de 70 
 Estruturação do programa é baseada nos dados e não nas 
funções 
 As funções mudam com mais frequência do que os dados 
 Linguagens OO 
 A orientação a objetos pode ser praticada em uma 
linguagem imperativa tal como C ou Pascal. Entretanto, 
as regras de escopo não prevenirão dos acessos 
impróprios a um objeto a partir de outro módulo, ficando 
sob a responsabilidade do programador 
 Formalmente, para ser considerada uma linguagem OO, 
esta precisa implementar quatro conceitos importantes: 
abstração, encapsulamento, herança e polimorfismo 
Paradigma 
Estrutural x Orientação a Objetos 
Paradigma 
Estrutural x Orientação a Objetos 
• Consiste no mapeamento do problema no mundo 
real a ser resolvido num modelo computacional. 
• Programação Estrutura 
o Consiste na criação de um conjunto de procedimentos 
(algoritmos) para resolver o problema 
o Encontrar modos apropriados de armazenar os dados 
 
• Programação Orientada a Objetos 
o Consistem em identificar os objetos e as operações 
relevantes no mundo real 
o O mapeamento desses em representações abstratas no 
espaço de soluções 
Programação Orientadaa Objetos 
• Paradigma de Programação 
• Dominante nos dias atuais 
• Substituiu as técnicas de programação 
procedimental (estruturada) 
• “Fornece um mapeamento direto entre o 
mundo real e as unidades de organização 
utilizadas no projeto” 
• Diversas unidades de software, chamadas de 
objetos, que interagem entre si 
• Separa claramente a noção de o que é feito 
de como é feito 
Programação Orientada a Objetos 
 Representação: 
 
 
 
 
 
 
 
 
 
 
 
Definição de Objetos 
• Um objeto é algo do mundo real : 
o Concreto ou Abstrato 
• As percepção dos seres humanos é dada 
através dos objetos 
• Um objeto é uma entidade que exibe algum 
comportamento bem definido. 
 
 
 
 
 
Objetos 
• Características 
oDados representam características 
• São chamados atributos 
• São as variáveis do objeto 
• Comportamento 
oOperações definem comportamento 
• São os métodos de um objeto 
• São as funções que são executadas por 
um objeto 
Objetos - Propriedades 
• Estado 
• Representado pelos valores dos atributos de um 
objeto 
• Comportamento 
• Definido pelo conjunto de métodos do objeto 
• Estado representa o resultado cumulativo de seu 
comportamento 
• Identidade 
• Um objeto é único, mesmo que o seu estado seja 
idêntico ao de outro; 
• Seu valor de referência 
• Os valores dos DADOS são modificados a partir das 
OPERAÇÕES sobre estes dados 
Objetos - Propriedades 
Classes 
• São especificações para objetos; 
• Representam um conjunto de objetos que 
compartilham características e 
comportamentos comuns. 
Abstração 
• Abstração é uma das formas fundamentais 
que nós lidamos com a complexidade.; 
• Quando queremos diminuir a complexidade 
de alguma coisa, ignoramos detalhes sobre 
as partes para concentrar a atenção no nível 
mais alto de um problema; 
• Não se analisa o “todo”, na AOO é importante 
analisar as partes para entender o todo. 
Abstração 
• Foca a característica essencial de alguns 
objetos relativo a perspectiva do visualizador 
Conceitos de Orientação a Objetos

Continue navegando