{"title":"SpecEdit: Projectional Editing for TLA+ Specifications","authors":"Riwan Cuinat, C. Teodorov, J. Champeau","doi":"10.1109/FORMREQ51202.2020.00008","DOIUrl":null,"url":null,"abstract":"High quality requirements and specifications are the premises of efficient software system engineering. Formal approaches propose precise and unambiguous requirements amendable to automated reasoning. TLA+, for instance, is used by major companies, such as Microsoft and Amazon, to specify high-profile business critical systems. However, despite its undeniable strengths for the specification of complex distributed systems, TLA+ suffers from the duality of its syntax, which hinders its large-scale industrial adoption. A system engineer can easily read mathematical specifications in TLA+, produced through LaTeX. However, for writing TLA+ specifications, he must learn the discommoding ASCII syntax, which requires unnecessary effort and dedicated learning time. This paper introduces SpecEdit, an IDE for TLA+ with a projectional editor that solves this issue. SpecEdit exposes the mathematical syntax of TLA+ for both reading and writing specifications, without requiring external transformations. This approach minimizes the cognitive effort and streamlines the formal system specification process. We illustrate the benefits of our approach using the specification of the Elasticsearch cluster coordination module. We furthermore emphasize the complementarity with the existing TLA+ tools. Through SpecEdit, TLA+ gains the specification editor that was missing without compromising compatibility with the existing tools.","PeriodicalId":251481,"journal":{"name":"2020 IEEE Workshop on Formal Requirements (FORMREQ)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE Workshop on Formal Requirements (FORMREQ)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/FORMREQ51202.2020.00008","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
High quality requirements and specifications are the premises of efficient software system engineering. Formal approaches propose precise and unambiguous requirements amendable to automated reasoning. TLA+, for instance, is used by major companies, such as Microsoft and Amazon, to specify high-profile business critical systems. However, despite its undeniable strengths for the specification of complex distributed systems, TLA+ suffers from the duality of its syntax, which hinders its large-scale industrial adoption. A system engineer can easily read mathematical specifications in TLA+, produced through LaTeX. However, for writing TLA+ specifications, he must learn the discommoding ASCII syntax, which requires unnecessary effort and dedicated learning time. This paper introduces SpecEdit, an IDE for TLA+ with a projectional editor that solves this issue. SpecEdit exposes the mathematical syntax of TLA+ for both reading and writing specifications, without requiring external transformations. This approach minimizes the cognitive effort and streamlines the formal system specification process. We illustrate the benefits of our approach using the specification of the Elasticsearch cluster coordination module. We furthermore emphasize the complementarity with the existing TLA+ tools. Through SpecEdit, TLA+ gains the specification editor that was missing without compromising compatibility with the existing tools.
高质量的需求和规范是高效软件系统工程的前提。形式化方法提出了精确和明确的需求,可用于自动推理。例如,TLA+被Microsoft和Amazon等大公司用于指定高知名度的业务关键系统。然而,尽管TLA+在复杂分布式系统规范方面具有不可否认的优势,但它的语法存在二元性,这阻碍了它的大规模工业应用。系统工程师可以很容易地阅读通过LaTeX生成的TLA+中的数学规范。然而,为了编写TLA+规范,他必须学习令人不安的ASCII语法,这需要不必要的努力和专门的学习时间。本文介绍了一个带有投影编辑器的TLA+ IDE SpecEdit,它解决了这个问题。SpecEdit为读写规范公开了TLA+的数学语法,而不需要外部转换。这种方法最大限度地减少了认知工作,并简化了正式的系统规范过程。我们使用Elasticsearch集群协调模块的规范来说明我们的方法的好处。我们进一步强调与现有TLA+工具的互补性。通过SpecEdit, TLA+获得了缺失的规范编辑器,而不会影响与现有工具的兼容性。