1 / 16

Alexandre Mota e Augusto Sampaio Centro de Informática UFPE

Programação Concorrente e Distribuída. Parte 2. Alexandre Mota e Augusto Sampaio Centro de Informática UFPE. Detalhes sobre o curso. http://www.cin.ufpe.br/~if711/. Programs. Natural Language. …. Specification language. Programming languages and their auxiliary tools. Executable code.

garth
Download Presentation

Alexandre Mota e Augusto Sampaio Centro de Informática UFPE

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. Programação Concorrente e Distribuída Parte 2 Alexandre Mota e Augusto Sampaio Centro de Informática UFPE

  2. Detalhes sobre o curso • http://www.cin.ufpe.br/~if711/

  3. Programs Natural Language … Specification language Programming languages and their auxiliary tools Executable code Virtual Machines Logic gates Um cenário ideal de desenvolvimento … but the same meaning. Differentpresentations… Tool support and training! Requirements Specifications Precise semantics required Transformations must preserve behaviour Transformations Tools Rules … Compilers Verifiers Hardware … Concrete Syntax Semantics

  4. Cenário exemplo Requirements Use cases/CNL Specification CSP Models (Diagrams) UML-RT Code Java (JCSP)

  5. Model checking Use Cases Requirements FDR (Automatic validation) CSP Validation Specification UML-RT Models (Diagrams) Java (JCSP) Code

  6. Visão crítica de model checking • Automatic validation (full analysis) • In practice, state explosion • Mechanised abstraction strategies is a challenge • Does not guarantee correctness of code Use Cases FDR (Automatic validation) CSP UML-RT Java (JCSP)

  7. Software (model) checking Use Cases Requirements CSP Specification UML-RT Models (Diagrams) JPF, Bandera, ... Java (JCSP) Validation Code

  8. Alguns exemplos de ferramentas Java PathFinder (JPF), BANDERA Gera modelo formal a partir do código Analisa bytecode Java (JVM específica) Explora todos os caminhos potenciais de execução em busca de violação de propriedades Propriedades de projeto e implementação Limitações Tamanho do código [~10KLOC ou ~30KLOC para aplicações específicas] Suporte limitado para algumas API Java [java.net, java.io]

  9. Propriedades default do JPF NoDeadlocked NoUncaughtExceptions NoAssertionViolated Exemplo: Propriedades novas podem ser implementadas ====================================================== error #1 gov.nasa.jpf.jvm.NoUncaughtExceptionsProperty java.lang.NoSuchMethodException: calling javax.swing.JPanel.<init>(Ljava/awt/LayoutManager;)V at PBookGUI.<init>(PBookGUI.java:21) at PBookGUI.main(PBookGUI.java:47)

  10. As notaçõesusadasno curso …

  11. CSP • Representação concisa e não ambígua de sistemas críticos e concorrentes • Cada operador representa um padrão de interação entre processo P [] Q P ; Q P [|{|a|}|] Q ... • Tradução para modelos de projeto/implementação pode não ser simples • Linguagem destino pode não ser tão expressiva • A tradução pode facilmente gerar inconsistências • Sincronização de dois ou mais processos (multi-sincronização) • Comportamentos dinâmicos

  12. JCSP • Biblioteca para Java que suporta CSP • Programação concorrente mais abstrata que Java • Comunicação via • passagem de mensagens • memória compartilhada • Todos os recursos de Java

  13. Traduzir CSP para JCSP • Aproxima a fase de especificação de uma implementação • Valida os requisitos especificados operacionalmente (execução) • Modelo de comunicação semelhante das duas linguagens facilita a tradução • MAS ... JCSP implementa apenas um subconjunto dos operadores de CSP • Não há suporte de análise formal específico para JCSP • Mas ferramentas de Software Model Checking como JPF (Java PathFinder) podem ser utilizadas

  14. UML-RT • Representação gráfica da arquitetura de sistemas interativos e concorrentes • Várias visões: • estática (diagrama de classes ativas e protocolos) • estrutural (diagrama de instâncias) e • comportamental (diagrama de estados) • Modelo de comunicação inclui modelo síncrono de CSP • MAS ... UML-RT não oferece operadores para combinar processos (classes ativas) • Difícil de formalizar e provar propriedades quando o modelo é extenso (trabalhos em andamento)

  15. Traduzir CSP para UML-RT • Documenta graficamente o modelo formal • Aproxima a fase de especificação da fase de projeto • Valida os requisitos especificados • Permite gerar código através do Rose RealTime para uma API Java semelhante a JCSP • Traduzir UML-RT para CSP • Permite formalizar parte da notação gráfica (semântica) • Permite verificar propriedades usando FDR

  16. Projeto da segunda parte • A partir do modelo (refinado) em CSP, implementar em JCSP ou UML-RT ou … • Adicionar à implementação requisitos não-funcionais (em particular uma interface) • Analisar a implementação e provar ausência de deadlock, por exemplo, usando o JPF • Resultado: programa executável, analisado e com interface gráfica

More Related