1 / 46

Apresentação sobre Paradigmas de Programação

Filipe Marques Ribeiro Drisostes. Apresentação sobre Paradigmas de Programação. Tópicos. Programação Concorrente Modelo de Dados Relacional Redes de Petri Programação Orientada a Aspectos. Programação Concorrente. Definição Execução Concorrente Threads Sincronização

Download Presentation

Apresentação sobre Paradigmas de Programação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 DefinitionLanguage • Data ManipulationLanguage

  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 • StructuredQueryLanguage(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 DefinitionLanguage(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 • createtablenome_da_tabela • droptablenome_da_tabela

  24. Data ManipulationLanguage(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 • insertintonome_tabela(col1,col2, ...) values(1, 2, ...) • select (col1, col2, ...) fromnome_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 bagspara 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 bagsque representamo mapeamento de transições para as posições de entrada. O : T → P é um conjunto de bagsque 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 crosscutingconcernsintroduzindo uma nova unidade de modularização, o aspecto. • Crosscutingconcernssã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. • JoinPoint: É 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 joinpoint.

  42. Conceitos Importantes • Pointcut: É uma construção que seleciona joinpoints. Depois de capturar um joinpoint é possível especificar as regras de weaving nesses joinpoints, como executar determinada ação antes ou depois da execução desse joinpoint. • Advice: É o código a ser executado em um joinpoint 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 • http://www.javaframework.org/portal/2010/04/14/o-que-programao-orientada-a-aspectos/ • http://www.dca.ufrn.br/~affonso/FTP/DCA409/redes_de_petri.pdf • http://gersonc.anahy.org/ppdrep/04-ProgramacaoConcorrente-PPD.pdf • http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/threads/threads1.html

  46. FIMDuvidas?!

More Related