A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Apresentação sobre Paradigmas de Programação

Apresentações semelhantes


Apresentação em tema: "Apresentação sobre Paradigmas de Programação"— Transcrição da apresentação:

1 Apresentação sobre Paradigmas de Programação
Filipe Marques Ribeiro Drisostes

2 Tópicos Programação Concorrente Modelo de Dados Relacional
Redes de Petri Programação Orientada a Aspectos

3 Programação Concorrente
Definição Execução Concorrente Threads Sincronização Exemplo Prático – Números Primos

4 Definição Para um melhor entendimento do conceito de programação concorrente devemos saber o que é concorrência. Concorrência é disputa por recursos ou juntar­se para uma ação ou fim comum. A programação concorrente é uma técnica De programação que explora a independência Temporal de atividades definidas por uma aplicação.

5 Execução Concorrente Pseudo-Paralela: execução em um único processador. Paralela: Execução em vários processadores que compartilham uma memória. Distribuída: Execução em vários processadores independentes, sem compartilhamento de memória.

6 Threads Um thread é um fluxo único de controle sequencial dentro de um programa. É importante destacar a diferença entre thread e processo. O que diferencia ambas é o espaço de endereçamento. Enquanto várias threads compartilham o mesmo espaço (processo), vários processos possuem diferentes espaços de endereçamento.

7 Sincronização É a troca de informações entre duas tarefas. A sincronização permite controlar o compartilhamento de dados entre tarefas. Existem dois tipos de sincronização, sincronização de competição e sincronização de cooperação.

8 Sincronização Sincronização de Competição: impede que duas tarefas acessem uma estrutura de dados compartilhados ao mesmo tempo, sob pena da informação perder sua integridade. Sincronização de Cooperação: Quando dois objetos trabalham juntos em uma determinada tarefa e o objeto A precisa esperar que o objeto B termine sua execução para então continuar a sua.

9 Exemplo Prático – Números Primos

10 Modelo de Dados Relacional

11 Modelo de Dados Relacional
Definição Entidades e Relacionamentos Chaves Classificações Modelo Conceitual Modelo Lógico Modelo Físico SQL Data Definition Language Data Manipulation Language

12 Definição Estudo das informações existentes em um contexto sob observação para construção de um modelo de representação de domínio real.

13 Entidades e Relacionamentos
Entidades são “objetos” do mundo real que podem ser identificadas de forma única em relação aos outros objetos. Entidades podem ser concretas(pessoas, casa) ou abstratas(departamento, polígono). Relacionamento são associações entre entidades ou ainda ações que podem ser realizadas de uma entidade sobre outra.

14 Chaves Conjunto de atributos que podem identificar unicamente uma entidade. Chaves podem ser primárias ou estrangeiras. Chaves primárias identificam uma entidade. Chaves estrangeiras são atributos de uma entidade que são chaves primárias em outras entidades.

15 Classificações Modelo Conceitual Modelo Lógico Modelo Fisico

16 Modelo Conceitual Descreve a realidade do ambiente do problema, formado das principais entidades e relacionamentos.

17 Modelo Conceitual

18 Modelo Lógico Estabelece a lógica de relacionamento entre dados. Inicia-se o modelo lógico após a construção do modelo conceitual.

19 Modelo Lógico

20 Modelo Físico Descreve a estrutura física de armazenamento dos dados. É no modelo físico que são definidos tipos de dados, índices, exigência de conteúdo e etc. O modelo físico é representado por uma linguagem de script de criação de banco de dados(em geral SQL)

21 Modelo Físico

22 SQL Structured Query Language (SQL) é uma linguagem usada a construção de banco de dado relacional. A SQL tem como principais funcionalidades a definição e manipulação dos dados, definição de visões e autorização de acesso, e definição de restrição de integridade.

23 Data Definition Language (DDL)
É através das instruções DDL que são criados os bancos de dados e tabelas, alteração em tabelas e exclusão do banco de dados ou das tabelas Comandos DDL create database nome_do_BD create table nome_da_tabela drop table nome_da_tabela

24 Data Manipulation Language (DML)
É através das instruções DML que são realizadas inserções de dados, alterações ou consulta. Vale ressaltar que as instruções DML não modificam a estrutura do banco de dados. Comandos DML insert into nome_tabela(col1, col2, ...) values(1, 2, ...) select (col1, col2, ...) from nome_da_tabela

25 Redes de Petri

26 Redes de Petri Definição Representação
Classificação das Redes de Petri Redes Ordinárias Redes de Alto Nível Aplicações

27 Definição Rede de Petri é uma técnica de modelagem que permite a representação de sistemas, utilizando como alicerce uma forte base matemática . Essa técnica possui a particularidade de permitir modelar sistemas paralelos, concorrentes, assíncronos e não-determiníticos.

28 Definição Podemos definir redes de Petri das
seguintes formas: Matrizes, bags, relações. Nesta apresentação, será utilizado bags para definir redes de Petri. Bag é uma generalização do conceito de conjunto que admite a repetição de elementos. Na notação de bags, utiliza-se [ ], enquanto que para denotar conjuntos, utiliza-se { }.

29 Definição Uma rede de Petri é composta de uma quíntupla (P, T, I, O, K )tal que P é um conjunto finito e não vazio de posições(lugares), T é o conjunto finito e não vazio de transições, I: TP é um conjunto de bags que representam o mapeamento de transições para as posições de entrada. O : T → P é um conjunto de bags que representa o mapeamento de transições para lugares de saída K : P → N é o conjunto da capacidades associadas a cada lugar, podendo assumir um valor infinito.

30 Representação Redes de Petri podem ser representados como grafos orientados, onde os vértices são chamados de posições(lugares), os arcos possuem pesos e ainda possuem um barra que corta o arco que é chamada de transição. As posições equivalem às variáveis de estado e as transições correspondem às ações realizadas pelo sistema.

31 Representação

32 Representação-Exemplo Ciclo repetitivo dos turnos de um dia

33 Representação-Exemplo Ciclo repetitivo dos turnos de um dia
P = {Manhã, Tarde, Noite} T = {Amanhecer, Entardecer, Anoitecer} I = {I (Amanhecer) = [Noite] I (Entardecer) = [Manhã], I(Anoitecer) = [Tarde] } O = {O(Amanhecer) = [Manhã], O(Entardecer) = [Tarde], O(Anoitecer) = [Noite] } K = {k manhã=1, k tarde =1, k noite =1 }

34 Classificação das Redes de Petri
Redes Ordinárias: São caracterizadas pelas suas marcações(tokens. que são informações atribuídas aos lugares, para representar o estado da rede em um determinado momento), que são do tipo inteiro e não negativo. As redes ordinárias se subdividem em duas, Rede Binária e Rede Place-Transition

35 Classificação das Redes de Petri
Rede Binária: Permite apenas um token em cada lugar, e todos os arcos possuem valor unitário. Rede Place-Transition: Permite o acumulo de marcas no mesmo lugar, assim como valores não unitários para os arcos.

36 Classificação das Redes de Petri
Redes de Alto Nível: São caracterizadas por suas marcas, que não se restringem apenas ao números, podendo ser agora cores ou objetos. Com isso permite-se a individualização de uma marca, que possibilita maior clareza e um maior (ou menor) nível de abstração ao modelo.

37 Aplicações das Redes de Petri
Automação de manufatura Circuitos integrados Sistemas de produção

38 Programação Orientada à Aspectos

39 Programação Orientada à Aspectos
Definição Conceitos Importantes Hello World Utilizando Programação Orientada à Aspectos Vantagens

40 Definição É um paradigma de programação que provê a separação dos crosscuting concerns introduzindo uma nova unidade de modularização, o aspecto. Crosscuting concerns são as funcionalidades secundarias de um sistema, como por exemplo, Loggin.

41 Conceitos Importantes
Aspectos: Onde são declarados e implementados os códigos que expressam as regras de mesclagem das funcionalidades. Weaving: Processo onde é feita a mesclagem dos modulos do sistema de acordo com os aspectos encontrados. Join Point: É um ponto identificável do fluxo de um programa. Pode ser uma chamada de método ou a configuração do valor de uma variável. Variadas implementações da orientação a aspectos suportam variados tipos de join point.

42 Conceitos Importantes
Pointcut: É uma construção que seleciona join points. Depois de capturar um join point é possível especificar as regras de weaving nesses join points, como executar determinada ação antes ou depois da execução desse join point. Advice: É o código a ser executado em um join point que foi selecionado por um pointcut.

43 Hello World Utilizando Programação Orientada à Aspectos
Primeiro, cria-se a classe Hello Em seguida, cria-se o aspecto Hello

44 Vantagens Maior Modularização Menor Acoplamento
Maior Reusabilidade de Código Facilidade na adição de novas funcionalidades

45 Referências Bibliográficas

46 FIM Duvidas?!


Carregar ppt "Apresentação sobre Paradigmas de Programação"

Apresentações semelhantes


Anúncios Google