Outros paradigmas: programação concorrente, modelo de dados

Propaganda
OUTROS
PARADIGMAS:
PROGRAMAÇÃO
CONCORRENTE,
MODELO
DE
DADOS
RELACIONAL (SQL), REDES DE PETRI,
ORIENTAÇÃO A ASPECTOS
Luenne Nailam e Uendson Teles
PROGRAMAÇÃO CONCORRENTE
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMA
O
que é um Programa?
 O que é Concorrência?
 Programação Concorrente
 Concorrência x paralelismo
 Tratamento de Threads
 Motivação
 Dificuldades do Paradigma
09/07/2012
Conceitos de LPs – Outros Paradigmas
O QUE É UM PROGRAMA?
 Conjunto
de instruções indicando uma ação a ser
executada
1
09/07/2012
Conceitos de LPs – Outros Paradigmas
O QUE É CONCORRÊNCIA?
 Concorrer:
juntarse para uma ação ou fim comum;
contribuir, cooperar
 Disputa por recursos
 Independência temporal
2
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO CONCORRENTE
 Paradigma
de programação para a construção
de programas de computador que fazem uso da
execução concorrente (simultânea) de várias tarefas
computacionais interativas


podem ser implementadas como programas separados ou
como um conjunto de threads criadas por um único
programa
podem ser executadas por um único processador, vários
processadores
em
um
único
equipamento ou processadores distribuídos por uma rede
3
09/07/2012
Conceitos de LPs – Outros Paradigmas
CONCORRÊNCIA X PARALELISMO
 Atividades
paralelas são atividades concorrentes,
contudo são tratadas sobre conjuntos de recursos
independentes
4
09/07/2012
Conceitos de LPs – Outros Paradigmas
CONCORRÊNCIA X PARALELISMO
Arquivo
Processo
Impressora
Física
Figura 1 - Programa seqüencial acessando arquivo e impressora
O
processo envia um comando para a leitura do
arquivo e fica bloqueado
 O disco é acionado para realizar a operação de
leitura
 Concluída a leitura, o processo realiza a formatação e
inicia a transferência dos dados para a impressora
09/07/2012
Conceitos de LPs – Outros Paradigmas
5
CONCORRÊNCIA X PARALELISMO
Arquivo
Processo
Impressora
Física
Figura 1 - Programa seqüencial acessando arquivo e impressora
 Como
é uma impressora física, o processo executa
um laço no qual os dados são enviados para a porta
serial ou paralela apropriada
 Como o buffer da impressora é relativamente
pequeno, o processo fica preso até o final da
impressão
09/07/2012
Conceitos de LPs – Outros Paradigmas
6
CONCORRÊNCIA X PARALELISMO
Arquivo
Processo
Leitor
Buffer
Impressora
Física
Processo
Impressor
Figura 2 - Programa concorrente acessando arquivo e impressora
 Dois


processos dividem o trabalho:
O processo leitor é responsável por ler registros do
arquivo, formatar e colocar em um buffer na memória
O processo impressor retira os dados do buffer e envia
para a impressora
7
09/07/2012
Conceitos de LPs – Outros Paradigmas
CONCORRÊNCIA X PARALELISMO
Arquivo
Processo
Leitor
Buffer
Impressora
Física
Processo
Impressor
Figura 2 - Programa concorrente acessando arquivo e impressora
É
suposto que os dois processos possuem acesso à
memória onde está o buffer
 Eficiência maior, pois consegue manter o disco e a
impressora trabalhando simultaneamente

O tempo total para realizar a impressão do arquivo será
menor
09/07/2012
Conceitos de LPs – Outros Paradigmas
8
TRATAMENTO DE THREADS
O
recurso mais conhecido para
paradigma concorrente
implementar o

dividem o trabalho que necessita ser realizado em duas ou
mais partes
O
processador não necessita aguardar o término de
uma instrução para iniciar outra


pode-se iniciar no mínimo duas tarefas simultaneamente
quando se está utilizando um processador de núcleo duplo
Problema: um thread requisitar acesso a uma região da
memória que já está utilizada por outra
9
09/07/2012
Conceitos de LPs – Outros Paradigmas
TRATAMENTO DE THREADS

Problema: um thread requisitar acesso a uma região da
memória que já está utilizada por outra

Resultado: uma interrupção repentina na execução do
programa, podendo levar à perda de informações importantes
contidas na memória de execução que ainda não haviam sido
gravadas em um lugar definitivo
10
09/07/2012
Conceitos de LPs – Outros Paradigmas
MOTIVAÇÃO
 Com
o advento dos processadores com dois ou mais
núcleos (cores) há um incentivo cada vez maior dos
fabricantes de hardware para o desenvolvimento de
softwares que utilizam à programação concorrente

ela promove uma aceleração em aplicações de tratamento
e edição de fotografias digitais, compactação e edição de
filmes, até mesmo a compactação de arquivos está se
beneficiando desse paradigma
11
09/07/2012
Conceitos de LPs – Outros Paradigmas
DIFICULDADES DO PARADIGMA
 Custo
elevado para pequenas empresas de
desenvolvimento de software
 Maior complexidade e tempo para realização
 Manutenção e depuração de código
12
09/07/2012
Conceitos de LPs – Outros Paradigmas
MODELO DE DADOS RELACIONAL (SQL)
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMA
 Conceitos
do Modelo Relacional
 SQL
 Palavras-chave
09/07/2012
em SQL
Conceitos de LPs – Outros Paradigmas
CONCEITOS DO MODELO RELACIONAL
 Baseia-se


em dois conceitos:
Entidade: elemento caracterizado pelos dados que são
recolhidos na sua identificação vulgarmente designado por
tabela. Na construção da tabela identificam-se os dados da
entidade. A atribuição de valores a uma entidade constrói
um registro da tabela
Relação: determina o modo como cada registro de cada
tabela se associa a registros de outras tabelas
15
09/07/2012
Conceitos de LPs – Outros Paradigmas
CONCEITOS DO MODELO RELACIONAL
 Linha
é chamada tupla
 Cabeçalho de coluna é chamado atributo
 Tabela é chamada relação
 Tipo de dados que descreve os tipos de valores
que podem aparecer em cada coluna é chamado
de domínio
16
09/07/2012
Conceitos de LPs – Outros Paradigmas
CONCEITOS DO MODELO RELACIONAL
Figura 3 – Exemplo de BD
09/07/2012
Conceitos de LPs – Outros Paradigmas
17
CONCEITOS DO MODELO RELACIONAL
Figura 4 – Diagrama ER
18
09/07/2012
Conceitos de LPs – Outros Paradigmas
SQL
 Linguagem
padrão para os bancos de dados
relacionais
 Structured Query Language
linguagem de pesquisa declarativa para banco de dados
relacional (base de dados relacional)
 muitas das características originais foram inspiradas
na álgebra relacional

19
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 DML 

Linguagem de Manipulação de Dados
utilizado para realizar inclusões, consultas, alterações e
exclusões de dados presentes em registros
estas tarefas podem ser executadas em vários registros de
diversas tabelas ao mesmo tempo
INSERT - usada para inserir um registro (formalmente uma
tupla) a uma tabela existente.
 SELECT - principal comando usado em SQL para realizar
consultas a dados pertencentes a uma tabela.
 UPDATE - muda os valores de dados em uma ou mais linhas
da tabela existente
 DELETE - permite remover linhas existentes de uma tabela

09/07/2012
Conceitos de LPs – Outros Paradigmas
20
PALAVRAS-CHAVE EM SQL
 DDL 
Linguagem de Definição de Dados
permite definir tabelas novas e elementos associados
CREATE - cria um objeto (uma Tabela, por exemplo) dentro da
base de dados
 DROP - apaga um objeto do banco de dados


alguns sistemas de banco de dados usam o comando
ALTER

permite ao usuário alterar um objeto, por exemplo,
adicionando uma coluna a uma tabela existente
21
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 DCL 
Linguagem de Controle de Dados
controla os aspectos de autorização de dados e licenças
de usuários para controlar quem tem acesso para ver ou
manipular dados dentro do banco de dados
GRANT - autoriza ao usuário executar ou setar operações.
 REVOKE - remove ou restringe a capacidade de um usuário
de executar operações.

22
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 DTL 


Linguagem de Transação de Dados
BEGIN WORK (ou START TRANSACTION, dependendo
do dialeto SQL) - pode ser usado para marcar o começo de
uma transação de banco de dados que pode ser
completada ou não.
COMMIT - envia todos os dados das mudanças
permanentemente.
ROLLBACK - faz com que as mudanças nos dados
existentes desde o último COMMIT ou ROLLBACK sejam
descartadas
23
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 DQL -
Linguagem de Consulta de Dados
parte da SQL mais utilizada
 O comando SELECT permite ao usuário especificar uma
consulta ("query") como uma descrição do resultado
desejado


Esse comando é composto de várias cláusulas e opções,
possibilitando elaborar consultas das mais simples às mais
elaboradas
24
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 Cláusulas

condições de modificação utilizadas para definir os dados
que deseja selecionar ou modificar em uma consulta
FROM - utilizada para especificar a tabela que se vai selecionar os
registros.
 WHERE – utilizada para especificar as condições que devem reunir
os registros que serão selecionados.
 GROUP BY – utilizada para separar os registros selecionados em
grupos específicos.
 HAVING – utilizada para expressar a condição que deve satisfazer
cada grupo.
 ORDER BY – utilizada para ordenar os registros selecionados com
uma ordem especifica.
 DISTINCT – utilizada para selecionar dados sem repetição

09/07/2012
Conceitos de LPs – Outros Paradigmas
25
PALAVRAS-CHAVE EM SQL
 Ordenadores
Lógicos
AND – E lógico. Avalia as condições e devolve um valor
verdadeiro caso ambos sejam corretos.
 OR – OU lógico. Avalia as condições e devolve um valor
verdadeiro se algum for correto
 NOT – Negação lógica. Devolve o valor contrário da
expressão

26
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 Operadores

relacionais
realiza comparações entre valores, em estruturas de
controle
27
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 Operadores

relacionais
realiza comparações entre valores, em estruturas de
controle
BETWEEN – utilizado para especificar um intervalo de valores
 LIKE – utilizado na comparação de um modelo e para
especificar registros de um banco de dados



"Like" + extensão % significa buscar todos resultados com o
mesmo início da extensão
IN - utilizado para verificar se o valor procurado está dentro de
uma lista. Ex.: valor IN (1,2,3,4)
28
09/07/2012
Conceitos de LPs – Outros Paradigmas
PALAVRAS-CHAVE EM SQL
 Funções
de Agregação
AVG – utilizada para calcular a média dos valores de um
campo determinado.
 COUNT – utilizada para devolver o número de registros da
seleção.
 SUM – utilizada para devolver a soma de todos os valores
de um campo determinado.
 MAX – utilizada para devolver o valor mais alto de um
campo especificado.
 MIN – utilizada para devolver o valor mais baixo de um
campo especificado.

09/07/2012
Conceitos de LPs – Outros Paradigmas
29
REDES DE PETRI
29
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
 Com
o objetivo de desenvolver um modelo para que
máquinas de estado pudessem se comunicar, Carl
Adam Petri, então aluno de doutorado, defendeu sua
tese, em 1962, com o título de Kommunikation mit
Automaten (Comunicação com Autômatos).
 O modelo recebeu o nome de Redes de Petri (RdP) em
homenagem ao autor .
 obteve
como característica mais relevante a
representação da concorrência.
30
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
 Encontram-se
atualmente variações do modelo
primitivo aplicadas em diversas áreas da ciência como
biologia, engenharia, computação e economia (PENHA
et al,2004).
 Dentre
suas diversas aplicações na computação podese destacar a modelagem de sistemas de tempo real,
paralelos, assíncronos e concorrentes.
31
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
 Redes
de Petri é um modelo matemático que possibilita
uma representação gráfica ampla proporcionando
uniformidade na modelagem, análise e simulação de
sistemas a eventos discretos.
 Além
disso, permite uma visualização simultânea da
sua estrutura e comportamento .
 as
RdP modelam dois aspectos desses sistemas,
eventos e condições, bem como, as relações entre eles
32
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI

Mesmo sendo a representação gráfica uma vantagem das
RdP, a característica mais relevante do modelo é o
formalismo.

Desde a apresentação do modelo original, chamado de
RdP Ordinárias, foram desenvolvidos vários trabalhos
práticos e teóricos sobre RdP que levaram ao
desenvolvimento de muitas variantes do modelo tendo em
vista aplicações específicas.
33
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
 Uma
dessas variações são as RdP Temporizadas,
utilizadas na modelagem de sistemas que apresentam
como característica a temporização. Basicamente,
consistem em atribuir um determinado retardo de
tempo a uma transição
 Podemos citar outros modelos desenvolvidos a partir
do modelo original como as RdP Coloridas, RdP
Hierárquicas, Rdp Generalizadas, RdP com
Capacidade Finita, RdP Contínuas e as RdP
Estocásticas.
34
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
A
aplicação de RdP na modelagem de sistemas
computacionais é cada vez maior.
 São
capazes de modelar sistemas com características
como: concorrência, conflito, compartilhamento,
controle e sincronismo.
35
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
ELEMENTOS DE UMA REDES DE PETRI
 os
lugares, que representam uma condição, uma
atividade, um estado parcial, uma posição geográfica
ou um recurso;
 as fichas, que indicam quando a condição associada ao
lugar é verdadeira;
 as transições, que representam um evento que ocorre
no sistema e;
 os arcos, que indicam os lugares de entrada ou saída
para as transições,
09/07/2012
Conceitos de LPs – Outros Paradigmas
36
REDES DE PETRI
EVOLUÇÃO DA REDE
 as
transições são responsáveis por colocar ou retirar as
fichas dos lugares
 Um
arco com origem em um lugar e término em uma
transição (arco de entrada) indica que a transição retira
uma ficha desse lugar.
37
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
EVOLUÇÃO DA REDE
 um
arco com origem numa transição e fim num lugar
(arco de saída), indica que a transição coloca uma ficha
nesse lugar.
 os arcos demonstram o sentido em que as fichas se
deslocam de um lugar a outro, sempre passando por
uma transição.
38
09/07/2012
Conceitos de LPs – Outros Paradigmas
REDES DE PETRI
EVOLUÇÃO DA REDE
 Sendo
assim, a ocorrência do disparo de uma transição
só é possível se existirem fichas nos lugares de entrada
dessa transição
A
ficha é o elemento responsável por indicar o estado
de uma RdP num determinado instante.
39
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
A
Programação Orientada a Aspectos - AspectOriented Programming ou simplesmente AOP - foi
introduzida em 1996 por Gregor Kickzales
A
AOP introduz um novo paradigma e um conjunto
de diretrizes para facilitar o desenvolvimento de
software.
40
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
A
AOP lida com um problema específico: capturar
unidades consistentes de um sistema de software
que as limitações dos modelos de programação
tradicionais forçam a ficar espalhados por
diversos pontos do sistema.
41
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
RESPONSABILIDADES (CONCERNS)
 Sistemas
de software consistem de um conjunto de
responsabilidades distintas como responsabilidades
funcionais e não-funcionais
 Existem também as preocupações relacionadas com
o processo de desenvolvimento de software
42
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
SEPARAÇÃO DE RESPONSABILIDADES (SEPARATION
OF CONCERNS)
 A melhor
maneira de se projetar um sistema é através
da separação de suas responsabilidades distintas
 Porém
algumas responsabilidades não são tão
facilmente decompostas em apenas uma dimensão
43
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
RESPONSABILIDADES TRANSVERSAIS
(CROSSCUTTING CONCERNS)
 Em
sistemas complexos, sempre existem
responsabilidades de interesse comum que são
utilizadas por vários módulos.
 Estas
responsabilidades são difíceis de isolar porque
são necessárias em vários pontos do código.
44
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
RESPONSABILIDADES TRANSVERSAIS
(CROSSCUTTING CONCERNS)
 Em
sistemas complexos, sempre existem
responsabilidades de interesse comum que são
utilizadas por vários módulos.
 Com
a OOP, os crosscutting concerns ficam
espalhados por vários módulos em pequenos trechos
de código
45
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
RESPONSABILIDADES TRANSVERSAIS
(CROSSCUTTING CONCERNS)
A
AOP complementa a OOP por introduzir uma nova
dimensão
para
a
decomposição
das
responsabilidades transversais: os aspectos.
 O paradigma da AOP consiste na separação das
responsabilidades transversais de um sistema em
aspectos.
46
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
 Os
aspectos podem ser inseridos, alterados ou
removidos em tempo de compilação.
 Por estarem em um único bloco de código, sua
manutenção é mais simples.
 Além disso, o código das classes fica livre do código
relacionado às responsabilidades transversais.
47
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
DIVISÃO
 Decomposição:
os vários concerns do sistema são
identificados e classificados como comuns ou
crosscutting.
 Implementação: os concerns são implementados
separadamente em classes (para os concerns
comuns) e aspectos (para os crosscutting concerns).
 Recomposição: o sistema é recomposto à partir dos
concerns implementados segundo regras de
recomposição. Esta fase é chamada de weaving.
09/07/2012
Conceitos de LPs – Outros Paradigmas
48
PROGRAMAÇÃO ORIENTADA A ASPECTOS
 Uma
implementação básica de AOP consiste em:
uma linguagem para programar os componentes (por
exemplo, Java).
 uma linguagem para programar os aspectos (por
exemplo, o AspectJ)
 um weaver para combinar as duas linguagens
(ferramenta que também faz parte do AspectJ)
49
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
O
AspectJ é uma ferramenta open source que
acrescenta os conceitos de AOP à linguagem Java,
através de uma extensão à linguagem: os "aspects".
É
especificada em termos de join points, pointcuts e
advices, e tudo isto é encapsulado em um aspect.
50
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
 Join
points: representam pontos bem definidos na
execução de um programa onde um determinado
aspecto pode ser aplicado.
 Pointcuts: pointcut é um agrupamento de join points
baseando-se em um critério pré-definido.
 Advices: trechos de código que são executados nos
pointcuts. Um advice contém as alterações que
devem ser aplicadas ortogonalmente ao sistema
51
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
 Aspects:
são similares a classes: têm um tipo,
podem ser estendidos, podem ser abstratos ou
concretos e podem conter campos, métodos e tipos
como membros. Mas são diferentes de classes: não
têm construtor nem destrutor, não podem ser criados
com o operador "new", podem conter pointcuts e
advices como membros e podem acessar membros
de outros tipos.
52
09/07/2012
Conceitos de LPs – Outros Paradigmas
PROGRAMAÇÃO ORIENTADA A ASPECTOS
CONCLUSÃO
A
aplicação de técnicas de OOP para a
implementação dos crosscutting concerns resulta em
sistemas que são trabalhosos para implementar.
 Utilizando a AOP, pode-se criar implementações que
são fáceis de desenhar, entender e manter.
 Acredita-se que os conceitos relacionados com
aspectos estão na sua infância.
53
09/07/2012
Conceitos de LPs – Outros Paradigmas
REFERÊNCIA BIBLIOGRÁFICA
 http://gersonc.anahy.org/ppdrep/04ProgramacaoConc
orrente-PPD.pdf
 http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%
A3o_concorrente
 http://www.noll.pro.br/paradigmas_programacao_conc
orrente.pdf
09/07/2012
Conceitos de LPs – Outros Paradigmas
REFERÊNCIA BIBLIOGRÁFICA
 www.inf.pucrs.br/~ramos/sop_progconctext.doc
 http://pt.wikipedia.org/wiki/SQL
 http://pt.wikipedia.org/wiki/Modelo_relacional
 http://www2.unemat.br/~ivanpires/files/dwl/bd/slides/b
d_5.pdf
09/07/2012
Conceitos de LPs – Outros Paradigmas
REFERÊNCIA BIBLIOGRÁFICA
 http://www.ccet.unimontes.br/arquivos/mono
grafias/224.pdf
 http://www.dextra.com.br/empresa/artigos/a
spectprog.htm/
09/07/2012
Conceitos de LPs – Outros Paradigmas
Download