Buscar

Paradigmas de LPs e Programação

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
Aula 1- Paradigmas de LPs e Programação
Prof. Marcelo Vasques – mvasqueso@gmail.com
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
Conteúdo Programático desta aula
 A importância das Linguagens de Programação no contexto de desenvolvimento de software;
 Conceitos e principais paradigmas de Linguagens de Programação;
 Conceitos, metodologias e técnicas de programação;
 Atividades de Programação x Análise.
Paradigmas de Programação x Análise
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
INTRODUÇÃO
Quem nasceu primeiro: As linguagens de Programação ou os Métodos (e técnicas) de Análise e Projeto de Sistemas ?
Existem LPs com diferentes propósitos (Fortran, Cobol, Pascal, C, C++, Java, c#, HTML e etc)
 Existem várias técnicas de Análise de Sistemas: tradicional, estruturada, essencial, orientada a objeto
Existe relação entre as LPs e as Técnicas?
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
AS LINGUAGENS DE PROGRAMAÇÃO
Tornam o Trabalho mais produtivo
Atender a padrões de Qualidade: confiabilidade, manutenibilidade e eficiência
Escrever programas que atendam aos requisitos
ADERÊNCIA as técnicas de Levantamento de dados, Análise de Requisitos e Projeto do software.
Hoje: MUITAS OPÇÕES
QUAL USAR ?
Tendência: maior prática (ERRO !!!)
Começo de Tudo
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
COMO ESCOLHER A LINGUAGEM?
A experiência  Pro eficiência 
Qual o tipo de problema ?
Qual as características do sistema?
POR QUE ESCOLHER CERTO ?
Programa Eficiente, Manutível e Confiável
Por que Programadores devem conhecer a LP?
Maior capacidade para soluções
Habilidade  programas eficientes
Habilidade para escolher LP correta
Habilidade para aprender novas LPs
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
EVOLUÇÃO HISTÓRICA DAS LPs 
Anos 40/50 
Anos 50 / 60
Anos 70... Hoje
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PROGRAMAÇÃO ESTRUTURADA
Anos 70/80 
3 tipos de processamento: sequencial, decisão e repetição
Refinamentos sucessivos.
program Soma_Pares;
 uses crt;
 var
 superior, soma, num: integer;
 begin
 soma:=0;
 write ('Entre com o limite superior');
 readln (superior);
 num:=2;
 
 repeat
 soma:=soma+num;
 num:=num+2;
 until (num > superior);
 
 writeln('A soma dos números pares de 2 até ', superior,' é ', soma);
 readln;
 end.
 
 
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
OUTROS PROCESSAMENTOS… OUTRAS LINGUAGENS
Lp PROCEDURAL.
LP DECLARATIVO
LP FUNCIONAL
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
INFLUÊNCIA DAS LPS NO PROCESSO DE DESENVOLVIMENTO
Concepção -> Análise de Viabilidade
Análise  Técnica de Análise (estruturada, essencial ou O.O.)
Compatibilidade da LP
Projeto  Especificação do ambiente e do software 
Compatibilidade da LP
Implementação  “ mão na massa” 
Testes  Depuração de erros
As LPs influenciam e sofrem influência das fases do processo de desenvolvimento, independente do processo usado.
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS
Fácil relação entre 
Técnicas de Análise e Projeto
Técnicas de Programação
Linguagens de Programação
Exemplo: O.O (Classes, herança, polimorfismo e etc)
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
QUEM SURGE PRIMEIRO ?
1º - Linguagens de programação são idealizadas (gerações  técnicas)
2º - Técnicas de Projeto
3º - Técnicas de Análise 
PARADIGMA. O QUE É ISSO?
Modelo ou exemplo
Conjunto de características que categorizam um grupo de linguagens semelhantes.
POR QUE ENTENDER OS PARADIGMAS DAS LPS?
Entender: estado da arte, o que cada LP pode prover
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMAS DAS LPS
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
 Anos 70 a 90 (hoje em dia.....)
 Visão: “ O computador é uma programável 
 Máquina de Von Neumann
 Especificam a seqüência de ações (procedimento) com alterações no estado da memória
 Programação ESTRUTURADA (top down e 3 tipos de processamento)
 Características: Variáveis, Atribuição, Repetição
Na medida em que os programas tornam-se maiores e mais complexos, cresce a dificuldade não só em desenvolvê-los, mas sobretudo mantê-los ao longo do tempo
PARADIGMA IMPERATIVO OU PROCEDURAL 
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA IMPERATIVO OU PROCEDURAL 
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA IMPERATIVO OU PROCEDURAL 
Visão de Sistema no paradigma Imperativo ou procedural
Dados = Variáveis
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA ORIENTADO A OBJETO
As LPs desse paradigma oferecem recursos para tornar o desenvolvimento de SW mais rápido e confiável. 
 Focada na abstração de dados (Procedural– controle)
 Classes = abstrações de dados + operações
 A implementação dos métodos usa conceitos do paradigma Imperativo
 LP OO = Objetos + Classe + Herança + (polimorfismo)
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA ORIENTADO A OBJETO
As LPs desse paradigma oferecem recursos para tornar o desenvolvimento de SW mais rápido e confiável. 
 Visão de Sistema no Paradigma Orientado a Objeto
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA ORIENTADO A OBJETO
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA CONCORRENTE
 O paradigma concorrente engloba LPs que oferecem recursos para o desenvolvimento de sistemas concorrentes.
 A programação concorrente existe quando vários processos executam simultaneamente e concorrem por recursos, o que pode acontecer quando há uma ou mais unidades de processamento.
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA DECLARATIVO
 Declara-se a tarefa, sem especificar cada ação, como o Imperativo e OO.
 Não há o conceito de atribuição de valores a posições de memória
 Especificam-se relações ou funções
 DIVIDO EM 
 FUNCIONAL (Computador calcula funções matemáticas complexas)
 LÓGICO ( O Computador entende a lógica formal: fatos e regras)
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA FUNCIONAL
 Linguagens que, basicamente, operam funções.
 Exemplos: LISP , HASKELL
 O programa é uma (conjunto de) função
 A relação entre as funções é simples : uma função pode chamar outra, ou o resultado de uma função pode ser utilizado como argumento para outra
 A tendência são programas menores, com menos código, nas linguagens funcionais.
 Aplicação: LISP – usada no campo da I.A. (sistemas especialistas, linguagem natural e representação do conhecimento).
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA FUNCIONAL
Exemplo de um programa em Haskell (LP funcional)
tabela :: Int -> String
tabela n = cabeçalho ++ imprimeAlunos n ++ imprimeMedia n
cabeçalho :: String
cabeçalho = “Aluno Nota\n”
imprimeAlunos :: Int -> String
imprimeAlunos 1 = imprimeAluno 1
imprimeAlunos n = imprimeAlunos (n-1) ++ imprimeAluno n
imprimeAluno :: Int -> String
imprimeAluno n = show n ++ “ “ ++ show (aluno n) ++ “\n”
imprimeMedia :: Int -> String
imprimeMedia n = “\n” ++ “Média da Turma: “ ++ show (media n)
soma :: Int -> Float
soma 1 = aluno 1
soma n = aluno n + soma (n-1)
media :: Int -> Float
media n = (soma n) / (fromInt n)
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA LÓGICO
 Declaram-se os resultados e não os procedimentos
 Um programa lógico é equivalente à descrição do problema expresso de maneira formal (tal qual o ser humano raciocina sobre ele)
de posse de vários fatos, derivam-se conclusões e novos fatos. 
 Assim quando uma questão é formulada, um mecanismo de inferência tenta deduzir novos fatos a partir dos existentes para verificar a veracidade da questão
 Lógica dos predicados 
 A principal característica do paradigma lógico é que a execução dos programas corresponde a um processo de dedução automática.
 A linguagem lógica mais conhecida é PROLOG. 
 Tal paradigma é bastante utilizado na construção de linguagens de acesso a banco de dados, sistemas especialistas (IA), tutores inteligentes e etc.
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
PARADIGMA LÓGICO
A principal característica do paradigma lógico é que a execução dos programas corresponde a um processo de dedução automática.
 A linguagem lógica mais conhecida é PROLOG. 
 Tal paradigma é bastante utilizado na construção de linguagens de acesso a banco de dados, sistemas especialistas (IA), tutores inteligentes e etc.
Tema da Apresentação
Paradigmas de LPs e Programação – AULA1
PARADIGMAS DE ANÁLISE E DESENVOLVIMENTOS
EXEMPLO PROLOG
 factorial(0,1)
 factorial(N,F) :- 
	N>0, N1 is N-1, 
	factorial(N1,F1), 
	F is N * F1.
?- fatorial(0,1). Yes
 ?- fatorial(10,What). What = 3628800 Yes
Tema da Apresentação

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais