{"title":"基于正式方法和xdsl的爆发阻止策略的轻量级开发","authors":"Akram Idani","doi":"10.1145/3501774.3501787","DOIUrl":null,"url":null,"abstract":"Because of the Covid-19 pandemic, several organisations around the world applied social distancing rules with workplace controls. Most of these rules can be automated and supervised using software systems that interact with connected devices such as smart cameras, motion sensors, smart door locks, etc. Given the critical nature of a pandemic prevention application, it seems essential to use techniques such that the possibility of failures is minimised. The integration of formal reasoning within software development is obviously a way to achieve this goal. Unfortunately, often formal methods are deemed too difficult and hence their application is somehow limited. This study builds on real-life pandemic prevention strategies, and shows how a formal method and domain-specific languages can be mixed in a lightweight development process. Our approach extends Meeduse, a language workbench that embeds an animator and model-checker and allows one to define proved executable Domain-Specific Languages (xDSLs) using the B method. In addition to the benefits of using xDSLs together with a formal approach during the development process the originality of this work is two-fold: (1) first, we propose a novel refinement-based approach that allows DSL developers to produce several versions of the application without breaking down the global safety properties; and (2) second, we use the verified specification of the DSL semantics at runtime so that the implementation effort is highly reduced.","PeriodicalId":255059,"journal":{"name":"Proceedings of the 2021 European Symposium on Software Engineering","volume":"187 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-11-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A Lightweight Development of Outbreak Prevention Strategies Built on Formal Methods and xDSLs\",\"authors\":\"Akram Idani\",\"doi\":\"10.1145/3501774.3501787\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Because of the Covid-19 pandemic, several organisations around the world applied social distancing rules with workplace controls. Most of these rules can be automated and supervised using software systems that interact with connected devices such as smart cameras, motion sensors, smart door locks, etc. Given the critical nature of a pandemic prevention application, it seems essential to use techniques such that the possibility of failures is minimised. The integration of formal reasoning within software development is obviously a way to achieve this goal. Unfortunately, often formal methods are deemed too difficult and hence their application is somehow limited. This study builds on real-life pandemic prevention strategies, and shows how a formal method and domain-specific languages can be mixed in a lightweight development process. Our approach extends Meeduse, a language workbench that embeds an animator and model-checker and allows one to define proved executable Domain-Specific Languages (xDSLs) using the B method. In addition to the benefits of using xDSLs together with a formal approach during the development process the originality of this work is two-fold: (1) first, we propose a novel refinement-based approach that allows DSL developers to produce several versions of the application without breaking down the global safety properties; and (2) second, we use the verified specification of the DSL semantics at runtime so that the implementation effort is highly reduced.\",\"PeriodicalId\":255059,\"journal\":{\"name\":\"Proceedings of the 2021 European Symposium on Software Engineering\",\"volume\":\"187 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-11-19\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 2021 European Symposium on Software Engineering\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3501774.3501787\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2021 European Symposium on Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3501774.3501787","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A Lightweight Development of Outbreak Prevention Strategies Built on Formal Methods and xDSLs
Because of the Covid-19 pandemic, several organisations around the world applied social distancing rules with workplace controls. Most of these rules can be automated and supervised using software systems that interact with connected devices such as smart cameras, motion sensors, smart door locks, etc. Given the critical nature of a pandemic prevention application, it seems essential to use techniques such that the possibility of failures is minimised. The integration of formal reasoning within software development is obviously a way to achieve this goal. Unfortunately, often formal methods are deemed too difficult and hence their application is somehow limited. This study builds on real-life pandemic prevention strategies, and shows how a formal method and domain-specific languages can be mixed in a lightweight development process. Our approach extends Meeduse, a language workbench that embeds an animator and model-checker and allows one to define proved executable Domain-Specific Languages (xDSLs) using the B method. In addition to the benefits of using xDSLs together with a formal approach during the development process the originality of this work is two-fold: (1) first, we propose a novel refinement-based approach that allows DSL developers to produce several versions of the application without breaking down the global safety properties; and (2) second, we use the verified specification of the DSL semantics at runtime so that the implementation effort is highly reduced.