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

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

Alexandre Mota e Augusto Sampaio Centro de Informática UFPE Programação Concorrente e Distribuída Parte 2.

Apresentações semelhantes


Apresentação em tema: "Alexandre Mota e Augusto Sampaio Centro de Informática UFPE Programação Concorrente e Distribuída Parte 2."— Transcrição da apresentação:

1 Alexandre Mota e Augusto Sampaio Centro de Informática UFPE Programação Concorrente e Distribuída Parte 2

2 Página 1 Detalhes sobre o curso

3 Página 2 Um cenário ideal de desenvolvimento … Requirements Specifications Concrete Programs … Hardware Tools Rules Compilers Verifiers … Natural Language Specification language Programming languages and their auxiliary tools Executable code Logic gates Virtual Machines Different presentations… but the same meaning. Transformations Syntax Semantics Precise semantics required Transformations must preserve behaviour T o o l s u p p o r t a n d t r a i n i n g ! …

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

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

6 Página 5 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 CSP UML-RT Java (JCSP) FDR (Automatic validation)

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

8 Página 7 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 Página 8 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. (Ljava/awt/LayoutManager;)V at PBookGUI. (PBookGUI.java:21) at PBookGUI.main(PBookGUI.java:47)

10 Página 9 AS NOTAÇÕES USADAS NO CURSO …

11 Página 10 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 [] QP ; QP [|{|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 Página 11 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 Página 12 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 Página 13 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 Página 14 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 Página 15 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


Carregar ppt "Alexandre Mota e Augusto Sampaio Centro de Informática UFPE Programação Concorrente e Distribuída Parte 2."

Apresentações semelhantes


Anúncios Google