Made available in DSpace on 2014-06-12T15:59:39Z (GMT). No. of bitstreams: 2
arquivo5428_1.pdf: 1146136 bytes, checksum: 397adc67935622083166ac6104064af6 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2006 / Conselho Nacional de Desenvolvimento Científico e Tecnológico / A busca constante pelo desenvolvimento de sistemas de software com qualidade vem despertando o interesse das grandes empresas na aplicação de técnicas formais. Dentre as linguagens formais, existem aquelas próprias para a modelagem de dados complexos, tal como Z, e outras próprias para a modelagem de comunicação e concorrência, tal como CSP. Circus é uma linguagem de especificação, projeto e programação que combina Z e CSP. Além de possibilitar a especificação de aspectos de dados e comportamentais de sistema concorrentes, Circus inclui um cálculo de refinamentos. Este é seu diferencial em relação a outras integrações de Z com uma álgebra de processos. Circus vem despertando interesse no meio industrial, manifestado através de colaboraçõoes científicas e tecnológicas, e possui uma equipe envolvida na construção de ferramentas que visam facilitar sua utilização. Muitas destas ferramentas precisam de um verificador de tipos para prover mais garantias quanto a consistência das especificações e programas, e, consequentemente, de seus resultados. Neste trabalho, apresentamos uma definição formal para o sistema de tipos de Circus, com o intuito de auxiliar o desenvolvimento de um verificador de tipos para a linguagem. Optamos por primeiramente definir as regras de tipos de Circus para depois implementar o software que automatiza a aplicação dessas regras. Esta decisão de projeto contribuiu para a construção robusta do verificador, pois a implementação consiste em um mapeamento direto das regras de tipos para linhas de código. O verificador desenvolvido também oferece recursos adicionais, tais como, a disponibilidade de informações de tipos para cada fragmento da especificação ou programa passado para análise, e o fornecimento de mensagens claras e objetivas dos possíveis erros de tipos detectados ao longo da verificação. Adicionalmente, projetamos o verificador como um componente de fácil integração, manutenção e extensão. Também apresentamos neste trabalho a nossa estratégia de validação do verificador. Elaboramos testes de pequeno e grande porte, a partir de estudos de casos de sistemas reais, tal como o sistema de SmartCard que descrevemos neste trabalho. Adicionalmente, integramos o verificador com outra ferramenta: o JCircus, que é um tradutor de Circus para Java. Também
implementamos uma versão inicial de uma ferramenta de refinamentos, chamada CircusRefine, para integrar o verificador de tipos. Apesar de não termos construído uma versão completa de CircusRefine, nos preocupamos em definir a arquitetura da ferramenta de tal forma que sejam possíveis futuras evoluções de forma simples e estruturada. Os testes e integrações contribuíram para a correção de defeitos da implementação e para a evolução e verificação de consistência do verificador de tipos de Circus. Ao definir o sistema de tipos de Circus, e disponibilizar um verificador de tipos, acreditamos que estamos dando uma importante contribuição na evolução de Circus, esclarecendo pontos essenciais de sua definição como uma linguagem fortemente tipada e compatível com Z e CSP, e estamos também contribuindo para o desenvolvimento de outras ferramentas da linguagem.Esperamos que o nosso trabalho possa servir de base para a definição e implementação dos sistemas de tipos das extensões de Circus
Identifer | oai:union.ndltd.org:IBICT/oai:repositorio.ufpe.br:123456789/2613 |
Date | January 2006 |
Creators | de Almeida Xavier, Manuela |
Contributors | Lúcia Caneca Cavalcanti, Ana |
Publisher | Universidade Federal de Pernambuco |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Source | reponame:Repositório Institucional da UFPE, instname:Universidade Federal de Pernambuco, instacron:UFPE |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0016 seconds