IVY on the Web, IVY Properties editor



Documentos relacionados
Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Organizar a estrutura do site

Guião de Introdução ao Eclipse IDE Índice

1 Code::Blocks Criação de projetos

Aplicações de Escritório Electrónico

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Escola Superior de Tecnologia de Setúbal. Projecto Final

Como Começar? Criação Páginas. Etapas. Apresentação INTERNET

Construção Páginas de Internet

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A interface do Microsoft Visual Studio 2005

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

II Semana TI. Curso ASP.NET AJAX. Raphael Zanon Rodrigues UNIVEM - Prof. Elvis Fusco

Rock In Rio - Lisboa

Base de Dados para Administrações de Condomínios

Web Services. Autor: Rômulo Rosa Furtado

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Microsoft Office FrontPage 2003

Guia de utilização. Gestão de Mensagens. Março 2009

Engenharia de Software Sistemas Distribuídos

Criação de Páginas Web - MS Word 2000

Dadas a base e a altura de um triangulo, determinar sua área.

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Desenvolvendo Websites com PHP

MANUAL DE INSTRUÇÕES

PRINCÍPIOS DE INFORMÁTICA PRÁTICA OBJETIVO 2. BASE TEÓRICA 3. SEQÜÊNCIA DA AULA. 3.1 Iniciando o PowerPoint

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural

MANUAL DO UTILIZADOR

Módulo 3936 ASP.NET. Financiado pelo FSE

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Modelo Cascata ou Clássico

AGRUPAMENTO DE ESCOLAS DR. GINESTAL MACHADO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

Exemplo de aplicação Car Parking 1in1out

DOCBASE. 1. Conceitos gerais. 2. Estrutura da pasta de associações. 3. A área de documentos reservados. 4. Associação de Imagens

1. Introdução. 2. A área de trabalho

Manual de Utilizador

Oficina de Construção de Páginas Web

Acronis Servidor de Licença. Manual do Utilizador

SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO

Programa de Monitorização da Lagoa de Óbidos e do Emissário Submarino da Foz do Arelho

Novo Formato de Logins Manual de Consulta

AMBIENTE DE PROGRAMAÇÃO PYTHON

estiglp-11/ csharp e Fsharp 1 Relatório Linguagens de programação 11/12 João Caixinha nº5946

Disciplina: Tecnologias de Informação e Comunicação Ano Letivo 2014/2015

DESENVOLVIMENTO DE SOFTWARE AULA 1

Bases de Dados. Lab 1: Introdução ao ambiente

O AMBIENTE DE TRABALHO DO WINDOWS

Ferramentas Web, Web 2.0 e Software Livre em EVT

Google Drive. Passos. Configurando o Google Drive

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Microsoft Office 2010

Manual do Utilizador

Google Web Toolkit* Clério Damasceno Soares, Daniel da Silva Filgueiras e Fábio Figueiredo da Silva

4.3 Ferramentas para criar conteúdos/recursos educativos

Aplicação Prática de Lua para Web

Ferramentas Web, Web 2.0 e Software Livre em EVT

Como Gerar documento em PDF com várias Imagens

SECUNDÁRIA DE CAMARATE Plataforma Office 365. Alojamento de ficheiros - OneDrive para Empresas

Aplicações de Escritório Electrónico

Engenharia de Software

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

Google Sites. A g r u p a m e n t o C a m p o A b e r t o /

Configuração do Ambiente de Trabalho

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Ciência da Computação. alyssonfm@lcc.ufcg.edu.br

Novas Tecnologias Microsoft.

Ferramentas Web, Web 2.0 e Software Livre em EVT

Microsoft.NET. Desenvolvimento Baseado em Componentes

Instalação do Plugin LeJOS

Técnicas de Caixa Preta de Teste de Software

Como funciona a MEO Cloud?

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Ferramentas Web, Web 2.0 e Software Livre em EVT

Validando dados de páginas WEB

Lógica de Programação

Microsoft Access: Criar relações para um novo banco de dados. Vitor Valerio de Souza Campos

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Como Criar Sites Grátis de Sucesso

EDUTec Learning. José Paulo Ferreira Lousado

WEBSITE DEFIR PRO

... Calendarização: 2 blocos de 90 m Metas/Objetivos Descritores Conceitos/Conteúdos Estratégias/Metodologias Avaliação

Aspectos técnicos do desenvolvimento baseado em componentes

Índice. Enquadramento do curso 3 Estrutura Programática 4. Primeiros passos com o e-best Learning 6. Actividades e Recursos 11

Relatório de Análise de Requisitos

Tecnologias da Informação e Comunicação 7.º Ano

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Plano de Gerenciamento do Projeto

Transcrição:

IVY on the Web, IVY Properties editor Nuno Miguel Milhases da Silva Departamento de Informática Universidade do Minho - Braga pg13879@alunos.uminho.pt Sumário Palavras-chave 1. Introdução Os modelos de estado finitos permitem a análise automática das suas propriedades (através de ferramentas de model checking). Embora estes modelos sejam bastante poderosos, é necessário expressar as propriedades a verificar numa lógica adequada, algo a que muitos utilizadores (engenheiros de software, desenhadores de sistemas entre outros) não estão acostumados. Isto faz com que adopção deste tipo de modelos para verificação seja difícil. Uma técnica conhecida para encapsular conhecimento numa forma mais simples de utilizar é a definição de padrões. Neste contexto um padrão é uma solução conhecida para um problema comum. Assim um padrão de propriedade faz a ponte entre as linguagens formais necessárias para descrever propriedades para verificação e o utilizador que pretende utilizar a ferramenta ou técnica de verificação. Os padrões de propriedade conseguem fazer essa ponte, uma vez que associam a cada tipo de propriedade que se queira verificar, descrita em linguagem natural, as fórmulas lógicas que devem ser utilizadas. O IVY Workbench é uma ferramenta que permite a análise de modelos de sistemas interactivos. É constituído por quatro plug-ins: um editor de modelos, um editor de propriedades, um tradutor e um visualizador/analisador de rastros para o verificador de modelos. O objectivo deste projecto consiste em portar o plug-in da edição de propriedades para a Web. Ao passar este plug-in para a Web pretendeu-se atingir vários objectivos: 1. Disponibilizar o editor, para todos os utilizadores, de uma forma global, através de acesso Web.

2. Tornar o editor independente da plataforma e browser usados. 3. Evitar fazer downloads e instalação de software, e assim eliminar problemas inerentes da instalação e utilização do software, nas diversas plataformas. 4. Eliminar as complicações referentes à gestão e distribuição de novas versões do software. 5. Facilitar a disponibilização de novos padrões. Este artigo encontra-se estruturado da seguinte forma: A secção 2 descreve o que são padrões de propriedade; A secção 3 descreve o editor de propriedades do IVY Workbench; A secção 4 analisa qual a tecnologia que melhor poderá portar o plug-in editor de propriedades para a Web; A secção 5 descreve como é que a tecnologia escolhida foi utilizada para implementar o editor; Finalmente na secção 6 apresentam-se conclusões e discute-se trabalho futuro. 2. Padrões de Propriedade Os padrões de propriedade são usados para descrever propriedades típicas dos comportamentos de modelos de estados finitos, fornecendo uma estrutura simples para descrever esses comportamentos e fornecendo expressões formais para os mesmos. As informações contidas nos padrões podem ser organizadas de diversas maneiras (Dwyer e-t al. [1998]), uma dessa maneira é a classificação através do seu comportamento (ver ilustração 1), que é a usada pelo IVY, conforme se poderá ver mais à frente na secção 5 (Implementação). Exemplo de padrão Absence [Dwyer e-t al.] Intent - To describe a portion of a system's execution that is free of certain events or states. Also known as Never. Description - P is false. Logic CTL

Scope Global - AG(!P) Before R - A[(!P AG(!R)) W R] After Q - AG(Q -> AG(!P)) Between Q and R - AG(Q &!R -> A[(!P AG(!R)) W R]) After Q until R - AG(Q &!R -> A[!P W R]) Logic LTL Scope Global - G(!P) Before R - F R -> (!P U R) After Q - G(Q -> G(!P)) Between Q and R - G((Q &!R & F R) -> (!P U R)) After Q until R - G(Q &!R -> (!P W R)) Example - The most common example is mutual exclusion. In a state-based model, the scope would be global and P would be a state formula that is true if more than one process is in its critical section. For an event-based model, the scope would be a segment of the execution in which some process is in its critical section (i.e., between an enter section event and a leave section event), and P would be the event that some other process enters its critical section. Um padrão descreve a estrutura acerca do comportamento de um sistema e fornece expressões desse comportamento para vários formalismos. Através do padrão exemplo, apresentado anteriormente, verifica-se que o padrão é constituído por um conjunto de secções. Descrevem-se de seguida o propósito de cada uma das secções: Intent Descreve qual a intenção do padrão, qual é o comportamento do sistema que vai descrever; Description Apresenta uma descrição em linguagem natural da propriedade que o padrão captura (neste caso a ideia que algum condição P é falsa em todos os possíveis comportamentos do modelo); Example Fornece um ou mais exemplos onde o padrão tem sido utilizado; Os padrões na sua generalidade são criados através da observação prática. Quando inúmeros utilizadores usam o mesmo tipo de

propriedades nas análises que faz, é criado um padrão, uma vez que é de interesse comum que esse padrão exista. Logic A propriedade associada a um padrão pode ser formulado usando diferentes lógicas, neste caso, são usadas duas lógicas, CTL (Computational Tree Logic) e LTL (Linear Temporal Logic). Em LTL o tempo é visto de forma linear, ou seja, uma fórmula LTL caracteriza um comportamento desejável e todos os comportamentos possíveis do sistema têm de obedecer à fórmula LTL para ser verdadeira. Em CTL o tempo é visto como numa estrutura tipo árvore, ou seja, uma fórmula CTL caracteriza propriedades dobre o comportamento do sistema, onde alguma propriedade pode-se aplicar a todos os comportamentos do sistema, ou apenas a alguns, algo que não é possível fazer em LTL. Scope Cada lógica têm um espaço de acção, que é uma extensão sobre o comportamento que se quer analisado. Para o exemplo são descritos 5 raios de acção: o Global Execução completa do modelo; o Before Execução do programa até um dado estado ou evento; o After Execução do programa depois de um dado estado ou evento; o Between Execução do programa entre dois estados/eventos; o After-Until Execução é feita da mesma maneira que em Between com a diferença que o programa continua a executar, mesmo que o segundo estado/evento não tenha ocorrido. Os padrões estão organizados hierarquicamente pelo tipo de comportamento que descrevem. Ilustração 1 - Diagrama de padrões através do comportamento [Dwyer e-t al.]

Através da análise do diagrama na ilustração 1, pode-se observar que os padrões (sugeridos por Dwyer e-t al.) estão divididos em dois grupos: Ocurrence e Order. Em Ocurrence os padrões são divididos pelo comportamento do sistema que adquirem durante a execução do sistema, enquanto em Order os padrões são divididos em relação à ordem que múltiplos comportamentos adquirem durante a execução do sistema. Para o IVY os padrões foram codificados usando XML, sendo que a descrição dos padrões em ficheiros externos permitem incluir no sistema diferentes colecções. Neste momento estão definidas três colecções: DWYER, SCAPS e IVY. 3. Editor de Propriedades No contexto do projecto IVY (POSC/EIA/56676/2004) foi desenvolvida uma ferramenta que permite a criação semi-automática de propriedades a partir de padrões. A versão existente foi desenvolvida em Java. (ver Ilustração 2). Usa ficheiros XML com a informação dos padrões. Estes ficheiros podem também ser carregados a partir de outras localizações, como pens USB (ver Ilustração 2 Item 1). Após carregar o conteúdo dos ficheiros XML, a informação é disposta no programa da seguinte maneira: Uma árvore contendo o nome de todos os padrões carregados para memória (ver Ilustração 2 Item 2); Área em que se pode seleccionar a lógica (Logic) e a área de execução do padrão (Scope) correspondente ao padrão seleccionado (ver Ilustração 2 Item 3); Informação acerca do padrão, exemplo, entre outros, usados no padrão (ver Ilustração 2 Item 4); Manipulação de certos parâmetros associados à fórmula de cada padrão (ver Ilustração 2 Item 5). O valor de cada parâmetro pode ser editado de forma manual ou automática (ver Ilustração 2 Item 3). Os parâmetros podem ser carregados a partir de ficheiros e gravados para ficheiro (ver Ilustração 2 Item 6); Podem ser enumerados os valores possíveis de uma variável a utilizar nas fórmulas, bastando para isso adicionar o valor INST ao parâmetro ou parâmetros que iram ficar com esses valores (ver Ilustração 2 Item 8).

Depois de inserido todos os valores nos respectivos parâmetros, o editor cria a fórmula lógica com os valores escolhidos pelo utilizador, para ser usada mais tarde (ver Ilustração 2 Item 7). Ilustração 2 - IVY Properties Editor - JAVA 4. Tecnologias Pretende-se com este projecto disponibilizar a ferramenta anteriormente descrita para a Web. Outro aspecto que se queria obter ao passar a ferramenta para a Web era de ser independente do browser usado. Como tal foi necessário estudar várias tecnologias Web que garantissem todos os propósitos descritos. No fim a escolha recaiu entre duas tecnologias: Google Web Toolkit e Microsoft Silverlight, que passarei a descrever um pouco sobre elas. Google Web Toolkit O Google Web Toolkit (GWT) é uma framework open source que permite usar a linguagem Java para desenvolver aplicações Web em AJAX, compilando o código Java para Javascript e HTML. O GWT é multi-plataforma e multi-browser e permite que código criado para um projecto possa ser reutilizado para outros projectos. Permite ver mudanças que se façam no código sem necessidade de o recompilar, utilizar o botão de Back do browser, ver os links contidos no

histórico do browser, facilmente passar de uma língua como o português para outra como por exemplo o inglês. Existem múltiplos ambientes de desenvolvimento que podem ser usados com o GWT, tal como o Eclipse, IntelliJ IDEA, entre outros. Silverlight O Silverlight é um plug-in multi-plataforma, multi-browser e multidispositivo da Microsoft baseado em.net para a distribuição de aplicações interactivas e multimédia na Web. Embora não seja totalmente open-source como o Google Web Toolkit, existe um esforço da Microsoft para o tornar mais aberto e flexível. Para os sistemas operativos baseados em Linux o plug-in usado não é o Silverlight mas o Moonlight e não usa o.net mas sim a framework MONO. O MONO surge com uma parceria entre a Microsoft e a Novell para permitir que as aplicações criadas em Silverlight corram em ambiente Linux. O Silverlight é multi-linguagem, suportando C#, Visual Basic, ASP.NET, ASP AJAX, XML, XAML, Javascript, LINQ (Language Integrated Query), entre outras linguagens. O Visual Studio 2008 e o Expression 2 são as ferramentas usadas para desenvolver aplicações Silverlight. Embora ambas as aplicações sejam pagas, existem versões Express que podem ser descarregadas da Microsoft, sem custos associados e sem perda de funcionalidades em relação às versões pagas. Para o Linux e Mac existe um plug-in open-source para o Eclipse. Com o Silverlight podem-se usar ferramentas que estão disponíveis na Windows Presentation Foundation (WPF), embora só uma pequena parte do WPF esteja disponível para o Silverlight, ela será alargada em futuras actualizações. Análise Como se pode constatar, ambas as tecnologias permitem desenvolver a aplicação Web com os propósitos anteriormente descritos. Mas apesar disso, a escolha recaiu sobre o Silverlight. A escolha ficou a dever-se ao facto que: O Silverlight permite que se criem aplicações Web com um aspecto gráfico muito bom, muito mais facilmente que o GWT. Está muito bem documentado, existindo uma grande comunidade que podem contribuir com ideias e soluções, inclusive existem pequenos vídeos que mostram como se fazem determinadas operações. Pode usar múltiplas linguagens no mesmo projecto, não estando desta maneira restrito a especificações de uma só linguagem. Com o LINQ, que é uma extensão do.net, é muito fácil manipular e tratar informação em ficheiros XML e não só.

Web. Havia um grande interesse em explorar as tecnologias.net para a 5. Implementação Após a escolha da tecnologia, o Silverlight, analisou-se a aplicação desenvolvida em Java para se proceder à sua transição para a Web. Para este projecto a linguagem principal escolhida foi o C#. Da aplicação desenvolvida em Java manteve-se muito da sua estrutura, Layout e modo de funcionamento. A nível de Layout, apesar de a aplicação Web ser muito parecida com a aplicação desenvolvida em Java (ver Ilustrações 2 e 3) existem algumas diferenças. Ilustração 3-IVY Properties Editor - Silverlight A disposição dos parâmetros na aplicação Silverlight (ver Ilustração 3 Item 4) é feita usando uma grelha com dois campos, sendo um campo o nome do parâmetro e o outro campo o valor que está associado a esse parâmetro, sendo que esse valor pode ser manipulado pelo utilizador (ver Ilustração 4 Item 4). A enumeração dos valores para um dado parâmetro é feito mais uma vez com recurso a uma grelha (ver Ilustração 3 Item 5), que neste caso só tem um único campo, o utilizador insere os valores que desejar usando o Datagrid Replay, o que permite que o utilizador ter n fórmulas com n valores.

Depois de se ter todos os valores inseridos, escolhe-se o(s) parâmetro(s) que iria(m) usar esses valor, para tal insere-se o valor chave value (sem as aspas, é case-sensitive) no lugar do campo Value (ver Ilustração 3 Item 4 e Ilustração 4 Item 4). Foi retirado da aplicação a Web a possibilidade de se fazer uma edição automática dos parâmetros (ver Ilustração 3 Item 2 e Ilustração 2 Item 3) sendo que a manipulação do valor dos parâmetros é feita de forma manual, uma vez que não se tem acesso ao modelo que vai ser verificado, mas sim aos padrões. Ao contrário da aplicação desenvolvida em Java o utilizador não pode carregar ficheiros XML contendo padrões, estes já se encontram disponíveis aquando do carregamento da aplicação. Não se pode carregar ficheiros contendo valores de parâmetros, (ver Ilustração 4 Item 6), mas pode fazer copy & paste aos resultados obtidos. Ilustração 4 - IVY Totalmente Preenchido O modo de funcionamento é em tudo idêntico à aplicação desenvolvida em Java, ou seja, usa um conjunto de ficheiros XML contendo os padrões e cria uma árvore com o nome dos padrões (ver Ilustração 3 Item 1 e Ilustração 4 Item 1). Ao seleccionar um dos muitos padrões da árvore, a informação é disposta pela aplicação Web (Ilustração 4 Itens 1, 2, 3 e 4).

Ilustração 5 - IVY Help Foi adicionado à aplicação Web uma secção de ajuda (ver Ilustração 3 Item 7) para ajudar o utilizador na utilização da ferramenta. Permite ficar a saber para que serve a ferramenta quais os padrões que usa entre outras informações que lhe puderam ser úteis (ver Ilustração 5). Ilustração 6 - IVY-About Também foi adicionado à aplicação Web informação acerca de quem desenvolveu a aplicação, qual a sua versão e em que data foi actualizado pela última vez (ver Ilustração 3 Item 7 e Ilustração 6).

6. Conclusões A World Wide Web (WWW) tem assumido cada vez mais um papel mais importante não só na troca de informação, mas também na criação de ferramentas que tradicionalmente apenas existiam nos desktops. Graças a tecnologias como o Silverlight, hoje é possível quebrar as barreiras que separam os diversos sistemas operativos e browsers usados e desta maneira fazer com que as ferramentas estejam disponíveis para um grupo mais alargado de utilizadores. Com o Silverlight, o editor de propriedades passou a ter essas vantagens. Pretende-se que em futuras revisões do editor, adicionar mais funcionalidades e ser cada vez mais fácil e simples de usar.