Especificacao Executavel usando uma Linguagem de Redes de Petri Colorida no Dominio de Sistemas Embarcados
Nos diferentes ambientes de Sistemas Embarcados, aplicacoes de softwares necessitam ser desenvolvidas rapidamente e atender a um alto nivel de qualidade. Os metodos formais desempenham um importante papel para mensurar a previsibilidade e dependencia no projeto de aplicacoes critica. Como exemplo, podemos citar as Redes de Petri para modelagem de tais sistemas, objetivando a verificacao das propriedades dos mesmos, assim como o seu devido comportamento. O uso de metodos formais no desenvolvimento de softwares apresenta varias vantagens, por exemplo, programas (ou prototipos) podem ser gerados automaticamente e formalmente a partir de suas especificacoes. Tais prototipos, algumas vezes chamados de especificacoes executaveis, servem de base para exibir a o usuario as funcionalidades do futuro sistema. Pode se provar tambem que determinados programas satisfazem determinadas propriedades e que o programa e uma realizacao da sua especificacao. A especificacao executavel permite evitar inconsistencias, erros e garantir a completude do sistema. Esse processo assegura uma interpretacao nao ambigua para a especificacao do sistema, valida a funcionalidade do sistema antes do inicio da sua implementacao e cria modelos de desempenho do sistema e avalia o desempenho do sistema. Segundo [Budde et al. 1992] prototipos adequados fornecem aos usuarios e gestores uma ideia tangivel das solucoes dos problemas. Para os desenvolvedores, os prototipos que constituem uma especificacao executavel que facilita a avaliacao de diferentes modelos e ajuda a reduzir as diferencas de interpretacao na construcao de softwares [Alcoforado, 2007] Este trabalho propoe gerar uma especificacao executavel baseada em um modelo formal conhecido como Redes de Petri focado para Redes de Petri Colorida, no qual e possivel checar propriedades especificas e caracteristicas de uma Rede de Petri, tais como, se a rede e segura, limitada, ordinaria, pura, possuem deadlock, entre outras. Nesta, contem transicoes e lugares que possuem codigos anotados na linguagem C ou NXC, onde adicionalmente o codigo C passara por uma verificacao formal usando um Bounded Model Checker para comprovar o comportamento e assegurar as propriedades definidas no codigo e, com base nestes itens, e efetuada a geracao do codigo. Este trabalho tambem apresentara a ferramenta denominada de PNTCG (Petri Net Tool for Code Generation) a ser otimizada utilizando Redes de Petri Colorida com base nesta metodologia e um estudo de caso baseado em um prototipo de automatizacao de embalagens de produtos, no qual e utilizado uma esteira e um braco robo para demonstrar a utilizacao e aplicacao da metodologia proposta.