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

Slides:



Advertisements
Apresentações semelhantes
Princípios da Orientação a Objetos e a Linguagem UML
Advertisements

UML Modelando um sistema.
UML Visões – Parte 2.
15/1/2014 Professor Leomir J. Borba- – 1 Tec. Em Analise e desenvolv. De Sistemas analise.
(Unified Modeling Language)
Engenharia de Software
Unified Modeling Language (UML) - Modelação da Arquitectura -
Adriano Teixeira João Vide Luís Silva Maria Pedroto
Projeto de Sistemas de Software
Linguagens de Modelagem (cont.) (IV)
Linguagens de Modelagem para SMA
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Modelo de Arquitetura Diagrama de Componentes
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Introdução a diagrama de classes e UML
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Uma Ferramenta para Geração Automática de Requisitos a partir de Modelos CSP Glaucia Peres e Alexandre Mota 06/out/2007.
Objetos Distribuídos Padrão CORBA
Análise e Projeto de Sistemas
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Classes e objetos Modelagem
Introdução a Programação Orientada a Objetos
DIAGRAMA DE COMPONENTES
Concorrência em Java Threads em Java.
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
© Nabor C. Mendonça Análise e Projeto Orientados a Objeto com UML e Padrões Parte V Implementação (1)
Aula prática – geração de código (.NET)
Supporting Use Case Based Requirements Engineering David Marques Filipe Garcês Ricardo Cruz.
Projeto de Sistemas de Software
JAVA Linguagem Ambiente de Desenvolvimento
Arquiteturas de Referência
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE.
Metodologias para construção de SMA
Alexandre Mota/Augusto Sampaio {acm,
Alexandre Mota Introdução a CSP Alexandre Mota
Geração de Código Teoria e Implementação de Linguagens Computacionais – IF688 Jobson Ronan Jeronimo da Silva
CSP: Semântica e Refinamento
1 1.
Referências: Booch, G. et al. The Unified Modeling Language User Guide
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Casos de Uso no Engenharia de Software e Sistemas {abab, dtvp, jmmn, mscla, rmb2,
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Semântica de Ações Especificação Completa de Specimen, Actress, Projeto RAT, Considerações Finais.
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Modelando aspectos de Implementação
Desenvolvimento de Software Dirigido a Modelos
A Linguagem Formal de Especificação VDM-SL
Semântica de Linguagens de Programação
UML e a Ferramenta Astah
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Análise e Projeto de Sistemas
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.
Adalberto Farias Alexandre Mota Augusto Sampaio
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Engenharia de Software com o RUP - Workflow de Requisitos
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Abstração de Processos Infinitos em CSP Z : Tratando Comunicação e Instabilidade Aluno: Adalberto Cajueiro de Farias Orientador: Alexandre Mota Co-Orientador:
Especificação de Sistemas Distribuídos Alexandre Mota/Augusto Sampaio {acm,
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
PROBE – CSP Animator FDR – CSP Model Checker Adalberto Farias Alexandre Mota Augusto Sampaio.
Transcrição da apresentação:

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/

Um cenário ideal de desenvolvimento … Different presentations… but the same meaning. Requirements Natural Language Specification language Programming languages and their auxiliary tools Executable code Logic gates Virtual Machines Tool support and training! Specifications Precise semantics required Transformations must preserve behaviour Transformations Tools Rules … Compilers Verifiers Contexto ideal é transformar requisitos em programas que seja semanticamente equivalentes usando ferramentas que sejam capazes de interagir desde o nível mais abstrato até o nível mais concreto de forma que cada passo de transformação seja provado à partir de um modelo semântico que permeia todo o processo, com ajuda do usuário quando necessário (abstração de dados) ou de forma completamente automatizada (refinamentos). O objetivo do slide é mostrar que, assim como MDA, entretanto, mais formalmente, buscamos migrar do modelo abstrato para o concreto através de transformações, mas estas transformações precisam de semântica como chave da corretude. Só para lembrar do slide do contexto definido por Alexandre: ------------------------------------ Hipótese: Linguagens devem ter semântica formal Limitações: Este cenário sozinho (1) Aplicação de leis usualmente não automática, envolvendo interação com provador de teoremas (2) Necessita de especialista para aplicação das leis (3) Refinamento de dados é o grande obstáculo. MDA é uma alternativa prática. Programs … Hardware … Concrete Syntax Semantics

Cenário exemplo Requirements Use cases/CNL Specification CSP Models (Diagrams) UML-RT Envolver Sidney e Joabe. Fazer exemplo simples onde tudo funcione de forma integrada. Code Java (JCSP)

Model checking Requirements Use Cases FDR (Automatic validation) Specification CSP Models (Diagrams) UML-RT Envolver Sidney e Joabe. Fazer exemplo simples onde tudo funcione de forma integrada. Code Java (JCSP)

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)

Software (model) checking Requirements Use Cases Specification CSP Models (Diagrams) UML-RT JPF, Bandera, ... Envolver Sidney e Joabe. Fazer exemplo simples onde tudo funcione de forma integrada. Validation Code Java (JCSP)

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] Nós temos as ferramentas Java PathFinder e o BANDERA que nos permitem analisar certas propriedades diretamente extraídas do código. Isso é possível porque tais ferramenta exercitam o código usando dados aleatórios e heurísticas e observam o que ocorre no estado das variáveis afetadas. Se tais estados satisfazem ou não o critério usado na busca (propriedade), então o usuário fica sabendo. No caso específico do JPF, uma JVM específica foi criada para poder instrumentar o código de forma transparente ao usuário da ferramenta e assim obter o que ocorre com as variáveis. Devido a lidar diretamente com código, os tipos de propriedades que podem ser investigadas não têm ligação direta com os requisitos e sim são mais de projeto e/ou implementação mesmo. Além disso, por lidar diretamente com código e tentar montar uma máquina de estados como em model checking tradicional, não é possível lidar com muitas linhas de código. Em geral 10 e em alguns casos 30. Outro ponto é que não ainda tem total suporte a algumas API’s, como…

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) Bom, além de usar software model checking, temos ainda outras opções para verificar código… 8

AS NOTAÇÕES USADAS NO CURSO …

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

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

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

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)

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

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