Verificação de modelos em redes de petri orientadas a objetos. - RODRIGUES, Cássio Leonardo. (2004)
Nos dias de hoje, os sistemas de software e hardware estão presentes em situações em que falhas são inaceitáveis, por exemplo, em comércio eletrônico, sistemas de telefonia, sistemas bancários, sistemas hospitalares etc. Uma atividade essencial para garantir que estes sistemas funcionem conforme esperado é a aplicação de técnicas formais em seus processos de desenvolvimento. Uma técnica formal cada vez mais utilizada na academia e na indústria é a verificação de modelos. As principais vantagens da verificação de modelos são o poder de automação e a qualidade dos resultados produzidos. A verificação de modelos foi desenvolvida originalmente para sistemas de hardware. Esta característica pode dificultar a aplicação da técnica em desenvolvimento de software baseado em modelos. Principalmente em software desenvolvido segundo o paradigma OO. Neste trabalho, nós tratamos da técnica de verificação de modelos em Redes de Petri Orientadas a Objetos (RPOO). RPOO é uma linguagem de modelagem formal que integra os conceitos de redes de Petri e OO, de modo a preservar as características originais de cada uma das abordagens. Desde a sua formalização, RPOO tem sido aplicada em vários modelos de sistemas concorrentes e distribuídos. Contudo, antes da realização deste trabalho, a análise destes modelos estava restrita à técnica de simulação. Não existia suporte ferramental adequado para a validação formal de modelos em RPOO. Para tornar a aplicação desta em técnica no desenvolvimento de softwares baseados em modelos com notação em OO mais viável, definimos um formato para representação de espaço de estados que evidencia a visão OO das modelagens e oculta detalhes das redes de Petri. Também definimos uma estratégia para construção desta estrutura com suporte ferramental. O principal resultado do trabalho é um protótipo de um verificador de modelos capaz de avaliar fórmulas em lógica temporal CTL. Por último, realizamos um estudo de caso em que aplicamos o verificador em uma modelagem do protocolo IP móvel. Nesta atividade, encontramos erros de modelagem não detectados com simulação.