Curso Sistemas de Informação Disciplina: Arquitetura de Software

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Lógica de Predicados e Representação de Conhecimento
Programação em Java Prof. Maurício Braga
Introdução a Programação Orientada a Objetos
Amintas engenharia.
Paradigmas de Programação
Interação entre objetos
Perspectivas baseadas em procedimentos e orientadas por objectos Conceitos principais: Encapsulamento, Herança, Polimorfismo (Encapsulation, Hierarchy,
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
INTRODUÇÃO A INFORMÁTICA
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos: Encapsulamento e Classificação
Resolução.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
Arquivos Seqüenciais Inhaúma Neves Ferraz
Estruturas de Dados e Algoritmos
INTRODUÇÃO À PROGRAMAÇÃO
Programação Lógica: PROLOG
Introdução ao paradigma de programação: Orientado a Objetos
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Programação orientada a objetos com Java
Aula 3 Evolução da Principais Linguagens
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 8 Orientação à Objetos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Laboratório de Programação de Computadores I
Listas Encadeadas.
Revisão da Linguagem C.
Classes e objetos Modelagem
Estrutura de decisão e repetição em JAVA
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Universidade do Vale do Rio dos Sinos
TÉCNICAS DE PROGRAMAÇÃO II
Como aplicar leis da lógica
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
PROGRAMAÇÃO I UNIDADE 1.
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 12. Estados Objetivo: compreender a notação do diagrama de estados.
Object Oriented Software Construction (MEYER, Bertrand)
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Métodos de Construção de Software: Orientação a Objetos
Entendendo as definições de classe
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Tipos Abstratos de Dados
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Classes, Objetos, Atributos e Métodos JAVA
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Organização e Arquitetura de Computadores
Programação Orientada à Objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Paradigma funcional.
Wagner Santos C. de Jesus
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Introdução a Algoritmos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
PROGRAMAÇÃO ORIENTADA A OBJETOS
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Programação de computadores Prof. Giovanni Castro.
Introdução a Orientação a Objetos
Programação Orientada a Objetos Uma breve introdução GX Aula01 1.
Módulo II Capítulo 1: Orientação a Objetos
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Influencias sobre o Projeto da Linguagem
Transcrição da apresentação:

Curso Sistemas de Informação Disciplina: Arquitetura de Software Paradigmas de Programação

Paradigmas de Programação A maioria das linguagens de programação são extensas e complexas e normalmente integram várias idéias. No entanto, cada linguagem baseia-se, usualmente, numa idéia central, ou paradigma; Conjunto de regras, princípios e valores que determinam um padrão de comportamento;

Paradigmas de Programação Um paradigma é uma maneira de se abordar a concepção de um programa; Modelo ou estilo de programação suportado por linguagens que agrupam certas características comuns; Determina a visão que o programador tem da estruturação e execução do programa;

Paradigmas de Programação Por que estudar os diferentes paradigmas? Para saber escolher o paradigma cuja idéia base modele adequadamente o domínio do meu problema; Para escolher a melhor maneira de tratar o problema em questão;

Paradigmas de Programação

Modelos de Paradigmas Modelo Declarativo: Abrangem as linguagens que não possuem os conceitos de seqüências de comandos e atribuições; Não manipulam a memória; Dão ênfase ao o que calcular e não como calcular;

Modelos de Paradigmas Modelo Declarativo: Linguagens funcionais ( resultados obtidos através de funções); Exemplo: Lisp, Scheme, Haskell, APL Linguagens Lógicas (resultados obtidos através da analise de axiomas lógicos); Exemplo: Prolog, Godel

Modelos de Paradigmas Modelo Imperativo: Abrangem as linguagens que expressam seqüências de comandos e que realizam transformações sobre dados e estados do sistema; Baseado na máquina de Von Neumann;

Modelos de Paradigmas Modelo Imperativo: Linguagens procedurais ou seqüenciais (código modularizado); Exemplo: Fortran, Basic, Cobol, C, Pascal, Visual Basic Linguagens orientadas a objetos(computação é a interação entre objetos); Exemplo: C++, Java

Paradigmas de Programação

Paradigma Sequencial ou Procedural Primeiro paradigma a surgir e ainda é o dominante. Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) que mudam o estado. Pode incluir subrotinas ou procedimentos como mecanismo de estruturação. Uma computação significa transformar valores da memória do computador;

Paradigma Sequencial ou Procedural As regras são definidas por passos a serem executados; Declaração explicita de variáveis e alocação de memória; Presença de laços e iteratividade Executar um programa significa executar uma série de comandos;

Paradigma Sequencial ou Procedural O estado de um programa é mantido nas variáveis do programa; Essas variáveis são associadas a localizações de memória caracterizadas por um endereço e por um valor armazenado no endereço; É possível acessar o valor diretamente, lendo o valor da variável; O valor da variável é modificado através de atribuições. Por exemplo, em Pascal: X := 5;

Paradigma Sequencial ou Procedural O termo à esquerda do operador de atribuição (:=) é a variável cujo valor está sendo modificado e à direita está o novo valor; A variável X tem valores diferentes antes e depois da atribuição; O significado (efeito) de um programa depende da ordem em que as atribuições são escritas e executadas;

Paradigma Sequencial ou Procedural

Paradigma Funcional Trata a computação como uma avaliação de funções matemáticas; Função matemática é uma correspondência de membros de um conjunto domínio com o conjunto imagem; Função retorna elemento do conjunto imagem; Uma função, neste sentido, pode ter ou não ter parâmetros e um simples valor de retorno. Os parâmetros são os valores de entrada da função e o valor de retorno é o resultado da função;

Paradigma Funcional Utiliza apenas funções que, dada uma lista de parâmetros, retornam um único valor; Busca imitar as funções matemáticas no maior grau possível; Forma das Funções Simples: Cubo(x) x * x* x, em que x é um número real; >Cubo(2) = 8

Paradigma Funcional A ordem de avaliação das expressões de mapeamento é controlada por recursão e iteração; RECURSÃO: int fatorial(int n){ if (n == 0) return 1; else return ( n * fatorial( n – 1 ) ); }

Paradigma Funcional X := fatorial(4); N=4 -> 4 * fatorial(3) => 4 * 6 = 24 N=3 -> 3 * fatorial(2) => 3 * 2 = 6 N=2 -> 2 * fatorial(1) => 2 * 1 = 2 N=1 -> 1 * fatorial(0) => 1 * 1 = 1 N=0 -> 1

Paradigma Funcional Exemplo: (DEFINE pi 3.14159) (DEFINE dois_pi (* 2 pi)) (DEFINE quadrado_numero (* numero numero)) (DEFINE (fatorial n) (IF (= n 0) 1 (* n (fatorial ( - n 1) ) ) ))

Paradigma Funcional Exemplo: (DEFINE (compare x y) (COND (( > x y) (DISPLAY “x é maior que y”)) (( < x y) (DISPLAY “x é menor que y”)) (ELSE (DISPLAY “x e y são iguais”))

Paradigma Orientado a Objetos Conceito de objetos cooperativos; Mundo é um conjunto de objetos que interagem entre si; Objetos são instâncias de uma classes, possuem um conjunto de atributos e métodos; Modelam entidades do mundo real; Objetos: Ocorrência específica de uma classe; Ex: carro, pessoa

Paradigma Orientado a Objetos Classe: Conjunto de objetos que apresentam características em comum, possuem os mesmos atributos e as mesmas funcionalidades Atributo: Conjunto de características específicas de um objeto; Métodos: característica que permite alterar a funcionalidade de um atributo, são os serviços que o objeto pode prover; Os objetos devem interagir uns com outros através de um mecanismo de comunicação chamado mensagem;

Paradigma Orientado a Objetos Ex: Objeto: carro Atributos: cor, ano, qtd. portas Métodos: ligar, andar, abastecer Ex: Objeto: pessoa Atributos: cor da pele, nascimento, estado civil Métodos: estudar, trabalhar, dormir

Paradigma Orientado a Objetos Características: Abstração: habilidade de modelar características do mundo real do problema que se quer resolver; Encapsulamento: definição de como implementar atributos e métodos de um classe; todas as transações feitas com um objeto só podem ser realizadas dentro daquele objeto;

Paradigma Orientado a Objetos Características: Um dado só está encapsulado quando só pode ser visto dentro de um objeto Ex: botões e funções de um DVD Herança: capacidade de uma classe filho herdar um ou mais atributos e métodos de uma classe pai; permite a reutilização de código;

Paradigma Orientado a Objetos

Paradigma Orientado a Objetos Características: Polimorfismo: possuir várias formas, uma classe possui uma operação e suas sub-classes possuem a mesma operação com outro comportamento;

Paradigma Orientado a Objetos

Paradigma Lógico Usa a lógica de predicados como linguagem de programação; Um programa consiste de: - Uma série de axiomas ou fatos; - Regras de inferência; - Teorema a ser provada Uma computação significa inferir conseqüências lógicas a partir de fatos;

Paradigma Lógico Um processamento consiste em testar uma afirmação ou pergunta feita; Permite que novos fatos sejam deduzidos a partir de fatos já conhecidos; Somente as especificações dos resultados desejados são declaradas, ao invés de procedimentos detalhados para produzi-los. Isto é, focaliza-se a forma do resultado e não como ele é computado;

Paradigma Lógico Homem(joao). Mulher(maria). Mulher(cristina) Pai(joao,andre). Pai(luiz,fabio). Mae(mara, luiza). ?-homem(luiz) Não ?-homem(joao) Sim ?-pai(joao, carlos) ?-mulher(x) X=maria X=crisitina

Paradigma Lógico Estrela (sol). Estrela(sirius). Orbita(mercurio,sol). Orbita(venus,sol). Orbita(terra,sol). Orbita(marte,sol). Orbita(lua, terra). Orbita(deimos, marte). Planeta(B):-orbita(B,sol). ?-planeta(marte) Sim ?-planeta(P) P=mercurio P=venus P=terra P=marte