Compiling certified Reo code

Detalhes bibliográficos
Autor(a) principal: Grilo, Erick Simas
Data de Publicação: 2018
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da Universidade Federal Fluminense (RIUFF)
Texto Completo: http://app.uff.br/riuff/handle/1/25817
Resumo: Critical systems require high reliability and are present in many domains. In other words, systems which failure may result in financial damage or even loss of lives. Standard techniques of software engineering are not enough to ensure the absence of unacceptable failures and/or that critical requirements are fulfilled. Reo is a graphical modelling coordination language which focuses on model such interaction by taking advantage of natural properties in distributed systems, such as remote function calls and message passing. Constraint Automata are defined as the most basic formal semantic for Reo. Therefore Constraint Automata provide formalisms to reason and certify properties regarding Reo connectors. This work describes the constructive formalization of Constraint Automata in Coq proof assistant, including a compositional operation. The results regarding the obtained framework are discussed, along with the implemented theory and usage examples.
id UFF-2_8484accb022afece91603b654e19c6db
oai_identifier_str oai:app.uff.br:1/25817
network_acronym_str UFF-2
network_name_str Repositório Institucional da Universidade Federal Fluminense (RIUFF)
repository_id_str 2120
spelling Compiling certified Reo codeProof AssistantsReoConstraint AutomataEngenharia de softwareAcreditaçãoConfiabilidade (Sistema de computação)Assistente de ProvasReoConstraint AutomataCritical systems require high reliability and are present in many domains. In other words, systems which failure may result in financial damage or even loss of lives. Standard techniques of software engineering are not enough to ensure the absence of unacceptable failures and/or that critical requirements are fulfilled. Reo is a graphical modelling coordination language which focuses on model such interaction by taking advantage of natural properties in distributed systems, such as remote function calls and message passing. Constraint Automata are defined as the most basic formal semantic for Reo. Therefore Constraint Automata provide formalisms to reason and certify properties regarding Reo connectors. This work describes the constructive formalization of Constraint Automata in Coq proof assistant, including a compositional operation. The results regarding the obtained framework are discussed, along with the implemented theory and usage examples.Sistemas cr ́ıticos s ̃ao aqueles nos quais a falha pode resultar em perda de vida, destrui ̧c ̃ao significativa, alta perda financeira ou dano ambiental [1]. Em suma, sistemas que precisam de um alto n ́ıvel de confiabilidade. H ́a diversos exemplos de sistemas cr ́ıticos aplicados a uma ampla gama de ́areas, de dispositivos m ́edicos a sistemas nucleares. As t ́ecnicas padr ̃ao de engenharia de software n ̃ao s ̃ao projetadas para lidar com sistemas n ̃ao tolerantes a falhas. Em muitos dom ́ınios, tais sistemas precisam de uma maneira de garantir sua seguran ̧ca, a fim de garantir que o sistema realmente atenda `a confiabilidade exigida. Os sistemas formais comp ̃oem um background te ́orico e implemen- tado (e.g. software) capaz de modelar e raciocinar sobre sistemas, garantindo (matema- ticamente) que os requisitos s ̃ao atendidos e que os sistemas se comportam conforme o esperado. Sistemas formais foram usados para certificar a linha 1 do metrˆo de Paris, Fran ̧ca [2], levando-a a um sistema de metrˆo totalmente automatizado, eliminado a necessidade de construir uma nova linha de metrˆo e consequentemete economizando milh ̃oes de euros. A Airbus utiliza m ́etodos formais para certificar sistemas de controle de aviˆonica de suas fam ́ılias de aeronaves A318 e A340-500/60 [3, 4]. A ausˆencia de tal certifica ̧c ̃ao em sistemas cr ́ıticos pode levar a cen ́arios catastr ́o- ficos: entre 1985 e 1987, o acelerador de el ́etrons m ́edico Therac-25 esteve envolvido em (pelo menos) seis ocorrˆencias de overdoses de radia ̧c ̃ao [5]. Este epis ́odio levou v ́arias pes- soas `a morte e feriu muitas outras. Isso aconteceu devido a uma combina ̧c ̃ao de fatores, nos quais podemos citar o excesso de confian ̧ca dos engenheiros de software e `a falta de certifica ̧c ̃ao [6]. Em mar ̧co de 2018, a iniciativa de um carro sem motorista da Uber estava envolvida em um acidente que matou um pedestre em Tempe, Arizona1 . 1https://www.nytimes.com/2018/03/19/technology/uber-driverless-fatality. html ix Muitos sistemas modernos est ̃ao se tornando cr ́ıticos. Perda financeira e at ́e mortes podem resultar de suas falhas [1]. Assim, desde o final dos anos 80 e in ́ıcio dos anos 90, pesquisas foram direcionadas para a aplica ̧c ̃ao de m ́etodos formais para sistemas cr ́ıticos [7, 1, 8]. Uma abordagem comum consiste em modelar tais sistemas como Sistemas Ciber- F ́ısicos. Garantir a seguran ̧ca e a confiabilidade dos Sistemas Ciber-F ́ısicos ́e um desafio atual [9]. Model ́a-los em sistemas baseados em l ́ogica permite o uso de uma ampla es- trutura te ́orica e de software para certificar que propriedades requeridas por tais sistemas s ̃ao satisfeitas. O uso de sistemas l ́ogicos para modelar e raciocinar sobre os Sistemas Ciber-F ́ısicos parece ser uma abordagem promissora [10]. Assistentes de prova [11], como Coq [12] e Isabelle [13], levam `a possibilidade de automatizar a verifica ̧c ̃ao de tais sistemas e forne- cer c ́odigo certificado. Seu design ́e feito sob medida para automatizar muitos (quando poss ́ıvel, todos) os passos das provas. A base te ́orica leva a ver provas como programas e programas como provas o que permite transformar uma prova de que os requisitos s ̃ao atendidos em um modelo em um c ́odigo (i.e. um programa) certificado. Exemplos industriais do uso de assistentes de prova j ́a est ̃ao presentes em empresas como Mistubishi [14] e NASA2 . Compiladores certificados desenvolvidos usando assistentes de prova tamb ́em encontram-se em uso [15]. O Coq ́e um dos mais proeminentes assistentes de prova. Ele lida com uma lin- guagem de alto n ́ıvel para modelar, provar e fornecer c ́odigo certificado automaticamente, al ́em de possuir uma linguagem de t ́aticas usada no processo de prova facilmente exten- s ́ıvel. Uma linguagem formal tamb ́em com interpreta ̧c ̃ao gr ́afica para a modelagem e veri- fica ̧c ̃ao de sistemas ́e Reo. Reo [16] ́e uma linguagem gr ́afica baseada em coordenadas com canais e conectores para a modelagem e verifica ̧c ̃ao de sistemas. Dados seus componentes b ́asicos (e.g. canais capazes de modelar o fluxo de dados, filtros, filas, decompositores, sumidouro, sincronizadores etc.); ela se adequa de forma bastante natural `a arquitetura orientada a servi ̧cos. Constraint Automata [17] ́e o formalismo mais b ́asico que denota semˆantica formal para Reo. Trata-se de um formalismo semelhante `a autˆomatos finitos, onde as transi ̧c ̃oes 2https://shemesh.larc.nasa.gov/fm/ftp/larc/PVS-library/ x s ̃ao dependentes de proposi ̧c ̃oes l ́ogicas acerca de dados vistos nas portas do autˆomato, que por sua vez denotam n ́os em Reo, representando pontos dos conectores Reo pelos quais passam fluxos de dados. Cada n ́o em Reo ́e visto (a grosso modo) como uma instˆancia de um software modelado. Para cada conector Reo canˆonico h ́a um constraint automaton associado [18]. O presente trabalho trata da formaliza ̧c ̃ao de Constraint Automata no Coq de forma a obter meios para verifica ̧c ̃ao formal de conectores Reo por meio de Constraint Automata. S ̃ao formalizados as principais defini ̧c ̃oes referentes a este formalismo, a opera- ̧c ̃ao produto que comp ̃oe autˆomatos a partir de outros autˆomatos e os autˆomatos referentes aos conectores Reo tamb ́em s ̃ao formalizados.191 p.Lopes, BrunoPaes, Aline Marins PaesMario, BenevidesHerman Haeusler, EdwardGrilo, Erick Simas2022-07-25T16:22:44Z2022-07-25T16:22:44Z2018info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisapplication/pdfGRILO, Erick Simas. Compiling certified Reo code. 2018. 191 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)-Universidade Federal Fluminense, Escola de Engenharia, Niterói, 2018http://app.uff.br/riuff/handle/1/25817CC-BY-SAinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da Universidade Federal Fluminense (RIUFF)instname:Universidade Federal Fluminense (UFF)instacron:UFF2022-07-25T16:22:47Zoai:app.uff.br:1/25817Repositório InstitucionalPUBhttps://app.uff.br/oai/requestriuff@id.uff.bropendoar:21202024-08-19T11:01:07.032988Repositório Institucional da Universidade Federal Fluminense (RIUFF) - Universidade Federal Fluminense (UFF)false
dc.title.none.fl_str_mv Compiling certified Reo code
title Compiling certified Reo code
spellingShingle Compiling certified Reo code
Grilo, Erick Simas
Proof Assistants
Reo
Constraint Automata
Engenharia de software
Acreditação
Confiabilidade (Sistema de computação)
Assistente de Provas
Reo
Constraint Automata
title_short Compiling certified Reo code
title_full Compiling certified Reo code
title_fullStr Compiling certified Reo code
title_full_unstemmed Compiling certified Reo code
title_sort Compiling certified Reo code
author Grilo, Erick Simas
author_facet Grilo, Erick Simas
author_role author
dc.contributor.none.fl_str_mv Lopes, Bruno
Paes, Aline Marins Paes
Mario, Benevides
Herman Haeusler, Edward
dc.contributor.author.fl_str_mv Grilo, Erick Simas
dc.subject.por.fl_str_mv Proof Assistants
Reo
Constraint Automata
Engenharia de software
Acreditação
Confiabilidade (Sistema de computação)
Assistente de Provas
Reo
Constraint Automata
topic Proof Assistants
Reo
Constraint Automata
Engenharia de software
Acreditação
Confiabilidade (Sistema de computação)
Assistente de Provas
Reo
Constraint Automata
description Critical systems require high reliability and are present in many domains. In other words, systems which failure may result in financial damage or even loss of lives. Standard techniques of software engineering are not enough to ensure the absence of unacceptable failures and/or that critical requirements are fulfilled. Reo is a graphical modelling coordination language which focuses on model such interaction by taking advantage of natural properties in distributed systems, such as remote function calls and message passing. Constraint Automata are defined as the most basic formal semantic for Reo. Therefore Constraint Automata provide formalisms to reason and certify properties regarding Reo connectors. This work describes the constructive formalization of Constraint Automata in Coq proof assistant, including a compositional operation. The results regarding the obtained framework are discussed, along with the implemented theory and usage examples.
publishDate 2018
dc.date.none.fl_str_mv 2018
2022-07-25T16:22:44Z
2022-07-25T16:22:44Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv GRILO, Erick Simas. Compiling certified Reo code. 2018. 191 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)-Universidade Federal Fluminense, Escola de Engenharia, Niterói, 2018
http://app.uff.br/riuff/handle/1/25817
identifier_str_mv GRILO, Erick Simas. Compiling certified Reo code. 2018. 191 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)-Universidade Federal Fluminense, Escola de Engenharia, Niterói, 2018
url http://app.uff.br/riuff/handle/1/25817
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv CC-BY-SA
info:eu-repo/semantics/openAccess
rights_invalid_str_mv CC-BY-SA
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Federal Fluminense (RIUFF)
instname:Universidade Federal Fluminense (UFF)
instacron:UFF
instname_str Universidade Federal Fluminense (UFF)
instacron_str UFF
institution UFF
reponame_str Repositório Institucional da Universidade Federal Fluminense (RIUFF)
collection Repositório Institucional da Universidade Federal Fluminense (RIUFF)
repository.name.fl_str_mv Repositório Institucional da Universidade Federal Fluminense (RIUFF) - Universidade Federal Fluminense (UFF)
repository.mail.fl_str_mv riuff@id.uff.br
_version_ 1811823636868235264