Top Banner
Julho, 2012 Paradigmas de análise e desenvolvimento de sistemas Principais Paradigmas Rosemary Silveira Filgueiras Melo [email protected] rosefib.webnode.com.br
63

Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Jul 12, 2018

Download

Documents

vominh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigmas de análise e desenvolvimento de sistemas

Principais Paradigmas Rosemary Silveira Filgueiras Melo

[email protected] rosefib.webnode.com.br

Page 2: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Tópicos abordados

• Conceito de Paradigma

• Tipos de Paradigmas

• Paradigma Imperativo

• Paradigma Declarativo

• Paradigma Orientado a Objetos

Page 3: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Conceito de Paradigma

Paradigma

- modelo, padrão ou estilo de programação suportado por linguaguens que agrupam certas características comuns.

- fornece e dertermina a visão que o programador tem sobre a estrutura e execução de um programa

- algumas linguagens foram construídas para suportar um paradigma específico, outras podem suportar múltiplos paradigmas

Exemplos.:

-Java e Smalltalk suportam o paradigma orientado a objetos

-C++, LISP, Perl, Python suportam múltiplos paradigmas

Page 4: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Tipos de Paradigma

Imperativo

Declarativo

Funcional

Lógico

Orientado a Objetos

Page 5: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

• Programas centrados no conceito de estado (modelado por variáveis) e ações (comandos) que modificam o estado.

• Expressam uma sequência de comandos para o computador executar.

• Também denominado de paradigma procedural por incluir mecanismos de subrotinas como forma de estruturação.

• Primeiro paradigma a surgir e ainda dominante.

Page 6: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Modelo Computacional do Paradigma Imperativo

Page 7: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo de linguagens Imperativas:

• Fortran

• Cobol

• Algol

• Pascal

• C

•etc

Page 8: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Técnicas de programação das linguagens imperativas:

- Programação estruturada

- Modularização

- Recursividade

Page 9: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Programação estruturada:

- forma de programação que considera que todo programa se resume a três estruturas:

sequencial

de decisão

e de repetição

Page 10: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Modularização:

- Mecanismo que permite o usuário subdividir seus programas em

blocos ou módulos (subrotinas)

- Estes blocos ou módulos referem-se a um pedaço de código computacional que executa uma função bem definida, que pode ser utilizado várias vezes no programa.

- Estas funções devem ser criadas para serem genéricas o

bastante visando a possibilidade de reutilização de código.

- Certas linguagens define dois tipos de subrotinas: as que

retornam valores (função) e as que não retornam valores (procedimento). Ex.: linguagem Pascal.

Page 11: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo:

#include <iostream> using namespace std; int fatorial(int x) { int i, aux; aux = 1; for (i=x; i>=1;i--) aux = aux * i ; return aux; }

main () { int n; cout << "Digite um numero inteiro : "; cin >> n; cout << "Fatorial: " <<fatorial(n) <<"\n"; system("PAUSE"); }

Page 12: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Recursividade:

- definição de subrotina que podem invocar a si mesma

Ex.:

#include <iostream> using namespace std; int fatorial (int x) { int aux; if (x==0) return 1; else { aux = x*fatorial(x-1); return aux; } }

main () { int n; cout << "Digite um numero inteiro : "; cin >> n; cout << "Fatorial: " <<fatorial(n) <<"\n"; system("PAUSE"); }

Page 13: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Principais elementos das linguagens imperativas

- Variáveis: simples e compostas (vetores, matrizes e registros)

- Definição de tipo (permite definir novos tipos)

- Comandos de atribuição

- Expressões aritméticas e lógicas

- Estrutura sequencial e condicional

- Estrutura de repetição

- Subrotinas

- Alocação dinâmica

Page 14: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo de Vetores

(Variáveis compostas homogêneas Unidimensionais):

#include <iostream>

char nome[10];

using namespace std;

main ()

{

cout <<"Digite um nome:";

gets(nome);

cout << << "\n“;

system("PAUSE");

}

Page 15: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo de Matriz

(Variáveis compostas homogêneas Bidimensionais):

#include <iostream>

float M[10][10];

int i,j;

using namespace std;

main () {

for(i=0;i<=3;i++) //Leitura dos elementos

for(j=0;j<=3;j++)

M[i][j]=i+j;

for(i=0;i<=3;i++) //Impressão da matriz

for(j=0;j<=3;j++)

cout << M[i][j] <<" ";

system("PAUSE");

}

Page 16: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo de registros

(Variáveis compostas heterogêneas):

struct aluno {

char nome[40];

int matric;

float nota1, nota2;

} aluno1, aluno2;

Page 17: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo de definição de novos tipos de dados:

typedef struct tipo_endereco { char rua [50]; char bairro [20]; char cidade [30]; long int CEP; } TEndereco;

typedef struct ficha_pessoal { char nome [50]; long int telefone; TEndereco endereco; }TFicha;

void main(void) { TFicha *ex; .... }

Page 18: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo usando subrotina: (Ling. C) :

int soma (int x, int y)

{ int z;

z = x + y;

return z;

}

int main () {

int a, b;

cin >> a;

cin >> b;

cout << “soma = “<< soma(a,b);

system(“Pause”);

}

Page 19: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Exemplo usando alocação dinâmica:

(usa variáveis chamada de ponteiro para guardar endereço de memória)

int count = 10;

int *pt;

pt= &count; //atribui o endereço de count a pt

*pt=12; //atribui um novo valor a variável apontada por pt

Page 20: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Imperativo

Vantagens

- eficiência

- modelagem “natural” de aplicações do mundo real

- paradigma dominante e bem estabelecido

- flexível

- boa legibilidade ao utilizar o modelo estruturado

Desvantagens

- as instruções são baseadas no como e não no o que.

- mudanças na estrutura dos dados pode acarretar alteração em todas as funções relacionadas (dados separados das funções)

Page 21: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Caracteriza-se pelo método preciso de descrever um problema sem se preocupar como este problema será resolvido.

Um programa é dito declarativo quando ele descreve o que ele faz e não como ele funciona.

No paradigma declarativo o programa especifica uma relação ou uma função.

A maioria das linguagens declarativas não constituem uma linguagem declarativa pura por definição, pois permitem que os algoritmos sejam implementados com detalhes.

Page 22: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Outra forma de programação declarativa é o uso de linguagens específicas por domínio.

Ex.: XSLT (transformar documentos XML), SQL (para realizar requisições a banco de dados), ATL (Linguagem de transformação de Modelos – Atlas), etc.

Page 23: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Exemplos na Linguagem SQL (Structured Query Language):

Ex1.:

SELECT *

FROM cliente

WHERE nome = “Joao”

Ex2.:

SELECT Name, ProductNumber, ListPrice AS Price

FROM Product

WHERE ProductLine = 'R' AND DaysToManufacture < 4

Page 24: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Exemplo na Linguagem ATL:

--testa no contexto UML se a classe que esta sendo transformada esta estereotipada com sensor

helper context UML!Class def:isSensor():Boolean = self.getAppliedStereotypes()->exists(c|c.name='Sensor');

rule Sensor2EquipMedicao{

from s:UML!Class (s.isSensor())

to tSensor:UML!Class(

name <-s.name,

generalization <- s.generalization

}

do{ tSensor.applyStereotype(thisModule.findStereotype('EquipamentoM edicao', 'PerfilPIM'));}

Page 25: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Podem ser classificadas em:

Paradigma Lógico

Paradigma Funcional

Page 26: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Paradigma Lógico Paradigma que adota o estilo da lógica matemática à

programação de computadores.

Se baseia em axiomas (verdades universais) e regras de inferência (regra de transformação sintática) para inferir (deduzir) uma conclusão a partir de um argumento.

O programa formará conclusões imediatas a partir de uma lista de premissas.

A inteligência artificial teve uma influência importante no desenvolvimento da programação lógica.

Page 27: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Modelo Computacional do Paradigma Lógico:

Mudança substancial do modelo computacional, pois a execução é baseada em relação entre entrada e saída.

Ex.: um compilador modelado como um programa lógico, relaciona código fonte e destino, portanto pode ser utilizado tanto como um compilador quanto como um decompilador.

Page 28: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Exemplo de linguagens que adotam o paradigma lógico:

PLANER

PROLOG

GODEL

Etc.

Page 29: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Exemplo de um programa em Prolog:

Page 30: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Paradigma Funcional

Trata a computação como uma avaliação de funções matemáticas, que evita estado ou dados mutáveis.

Um programa é visto como uma função (ou grupo de funções) constituída de outras funções mais simples.

Entende-se como um mapeamento dos valores de entrada nos valores de saída, através de funções.

Enfatiza a aplicação de funções, em contraste com o paradigma imperativo, que enfatiza mudanças no estado do programa.

Page 31: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Paradigma Funcional

Não incluem qualquer provisão para atribuição ou dados mutáveis.

O mapeamento entre os dados de entrada e saída são alcançados mais diretamente.

Mais usada academicamente do que no desenvolvimento comercial de software.

Page 32: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Modelo Computacional do Paradigma Funcional:

Adota o modelo computacional de função que mapeia entradas em saídas de forma determinística ou direta, através de funções definidas como na matemática.

Page 33: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Exemplo de linguagens que adotam o paradigma funcional:

APL

LISP

ML

Haskell

Etc.

Page 34: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Declarativo

Exemplo de um programa em LISP:

Page 35: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Paradigma de análise, projeto e programação de software baseado na composição e interação de diversas unidades de software denominadas de objetos.

Um programa OO (Orientado a Objetos) consiste de objetos que recebe e envia mensagens, executa processamento e possui estado que ele pode modificar.

Funcionamento de um programa OO se dá através da troca de mensagens entre objetos.

Todo objeto possui método(s) e atributo(s) relacionados que correspondem respectivamente ao comportamento e o estado de cada objeto.

Page 36: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Modelo Computacional do Paradigma Orientado a Objetos:

Num programa OO, as ações (comandos) do programa podem envolver a invocação de métodos que alteram o estado de um objeto específico, ao invés de um estado único de aplicação.

Page 37: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Comparação entre o paradigma procedural e orientado a objetos

Paradigma procedural enxerga um programa como um conjunto de funções que alteram dados.

Paradigma OO enxerga um programa como uma coletânea de objetos que interagem entre si, possui características própria representadas pelos seus atributos e operações.

Page 38: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de linguagens de programação OO:

Simula 67

Smalltalk

Eiffel

Object Pascal

C++

Java

etc

Page 39: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Principais conceitos utilizados no paradigma OO:

Classe

Objeto / instância de uma classe

Atributo

Método

Mensagem

Page 40: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Principais conceitos utilizados neste paradigma:

Herança (generalização)

Encapsulamento

Polimorfismo

Page 41: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Classe

Representa uma idéia ou conceito simples, que define as

características de uma coleção de objetos.

Consiste na descrição de métodos e atributos pertencentes a todos os objetos desta classe.

Similar a um tipo abstrato de dados, define a estrutura interna e um conjunto de operações que todos os objetos instâncias da classe irão possuir.

Exemplo de classes: pessoa, aluno, professor, livro, faculdade, etc.

Page 42: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Classe

Representação de uma classe usando notação simbólica:

Atributos

Métodos

Page 43: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de declaração de uma Classe em Java:

Page 44: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Objeto

Representa uma instância de uma classe, analogamente há uma

variável que corresponde a um tipo de dado específico.

Um objeto é capaz de armazenar estados através de seus atributos, reagir a mensagens enviadas, assim como se relacionar e enviar mensagens a outros objetos.

Exemplo de objetos da classe Pessoa:

João, José, Maria, etc.

Exemplo de objetos da classe Faculdade:

ESTÁCIO, UNIFACS, AREA1, etc

Page 45: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de Objeto:

Page 46: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de criação de um objeto em Java:

Page 47: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Atributo

Consiste em um dado ou informação de estado, para o qual cada objeto de uma classe tem seu próprio valor.

Ex.: Classe funcionário

atributos: nome, endereço, telefone, CPF, ...

Os atributos possuem valores .

Ex.: Nome: João;

Endereço: Rua E, Casa 9

O conjunto de valores dos atributos de um determinado objeto é chamado de estado.

Page 48: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de declaração de atributo de uma classe em Java:

Page 49: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Método

Consiste na descrição de uma operação que um objeto deve

executar quando receber uma mensagem (semelhante a subrotina).

Um método em uma classe é apenas uma definição.

Normalmente uma classe possui diversos métodos.

Dentro de um programa a utilização de um método deve afetar apenas um objeto em particular.

Page 50: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Método

Exemplo:

Classe Cachorro

Métodos

Latir

Sentar

Comer

Morder

Page 51: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de definição de um método em Java:

Page 52: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Mensagem Chamada a um objeto para invocar um de seus métodos,

ativando um comportamento descrito por sua classe.

Funciona como uma fábrica que recebe uma ordem de produção

(mensagem de solicitação), processa esta ordem (operações), utilizando matéria-prima (atributos) e gera um produto final (mensagem de resposta).

Page 53: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de invocação de um método em Java:

Page 54: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Herança

Mecanismo pelo qual uma classe (subclasse) pode estender uma

outra classe (super-classe).

A subclasse herda todos os componentes da classe pai, como atributos e métodos.

Qualquer propriedade herdada pode ser redefinida na definição da subclasse, substituindo a definição herdada.

Page 55: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Herança

Page 56: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Herança Pode haver vários níveis de hierarquia.

Page 57: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo utilizando herança em Java:

Page 58: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Encapsulamento

Consiste na separação de aspectos internos e externos de um objeto.

É utilizado para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando apenas os métodos que alteram este estado.

Page 59: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos Exemplo de encapsulamento da classe funcionário:

Page 60: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Polimorfismo

Propriedade que permite que a mesma mensagem seja enviada a diferentes objetos e que cada objeto execute a operação que é apropriada à sua classe.

Funções/métodos com o mesmo nome mas assinaturas diferentes (sobrecarga).

Page 61: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Polimorfismo

Exemplo de sobrecarga de método em Java:

Page 62: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Paradigma Orientado a Objetos

Exemplo de um programa OO:

Page 63: Paradigmas de análise e desenvolvimento de sistemas ...files.rosefib.webnode.com.br/200000140-ae919af8b8/02-Aulas...Julho, 2012 Paradigma Imperativo Modularização: -Mecanismo que

Julho, 2012

Cronograma histórico de linguagens de programação e paradigmas