Geração mecanizada de abstrações seguras para especificações CSP

Made available in DSpace on 2014-06-12T15:50:21Z (GMT). No. of bitstreams: 1 license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2008 === Coordenação de Aperfeiçoamento de Pessoal de Nível Superior === Com a crescente demanda por diminuição de custos no...

Full description

Bibliographic Details
Main Author: DAMASCENO, Adriana Carla
Other Authors: MOTA, Alexandre Cabral
Language:Portuguese
Published: Universidade Federal de Pernambuco 2014
Subjects:
Csp
Online Access:https://repositorio.ufpe.br/handle/123456789/1471
Description
Summary:Made available in DSpace on 2014-06-12T15:50:21Z (GMT). No. of bitstreams: 1 license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5) Previous issue date: 2008 === Coordenação de Aperfeiçoamento de Pessoal de Nível Superior === Com a crescente demanda por diminuição de custos no desenvolvimento de software, há a necessidade de que os programas possam ser construídos de acordo com uma especificação concordante com os requisitos do cliente. Nesse sentido, a especificação formal pode ser utilizada para representar os requisitos do sistema. Uma vez que a especificação formal foi desenvolvida, ela pode ser usada como base para investigar determinadas propriedades através de um verificador de modelos. Ele aceita modelos e propriedades que o sistema final deve satisfazer. Então, a ferramenta gera uma resposta positiva se um dado modelo satisfaz uma dada especificação ou um contra-exemplo, em caso negativo. O contra-exemplo detalha a situação em que o modelo não foi satisfeito. Mas na maioria das vezes, problemas do mundo real não podem adotar essa abordagem porque usam domínios infinitos (levando ao problema da explosão de estados). Como forma de resolver essa questão, técnicas de abstração de dados são empregadas para gerar especificações abstratas finitas a partir de sistemas infinitos concretos. A linguagem de especificação usada nesse trabalho é CSP (Communicating Sequential Processes). Ela é uma linguagem formal que é usada para descrever padrões de interação em sistemas concorrentes. Uma das técnicas de abstração para especificações possíveis para essa linguagem é a abstração segura de dados. Essa abstração visa gerar um modelo abstrato a partir de um equivalente concreto que conserve as propriedades do sistema com respeito ao comportamento (modelo de traces) através da escolha de um dado do domínio abstrato para cada subconjunto do domínio concreto. O objetivo desse trabalho é propor um algoritmo para geração mecanizada de abstrações seguras para sistemas CSP seqüenciais com recursão simples. A especificação do algoritmo é apresentada usando o paradigma funcional e elementos da linguagem Z, com a introdução da estratégia através de exemplos. No estudo de caso, o software Mathematica é usado para instanciar os valores das variáveis e realizar a simplificação dos predicados construídos a partir desse algoritmo. Com esse trabalho, é possível gerar abstrações seguras de forma mecânica, e por conseqüência verificar o comportamento de modelos infinitos. Ademais, a geração de dados de testes automática também é beneficiada, já que com o domínio abstrato dos dados é possível percorrer todos os caminhos do sistema, gerando 100% de cobertura do modelo. Esse esforço é justificado pela importância que a fase de testes tem para a qualidade do software. Estudos prévios mostraram que essa fase demanda mais de 50% do custo de seu desenvolvimento, e uma pesquisa detalhada realizada nos Estados Unidos quantifica os altos impactos econômicos de uma infra-estrutura de software