Ulrich Schöpp, A. Schweiger, Marina Reich, Tatiana Chuprina, L. Lucio, Hartmut Brüning
{"title":"基于需求的代码模型检查","authors":"Ulrich Schöpp, A. Schweiger, Marina Reich, Tatiana Chuprina, L. Lucio, Hartmut Brüning","doi":"10.1109/FORMREQ51202.2020.00011","DOIUrl":null,"url":null,"abstract":"Building the system right is the objective of quality assurance methods. Though testing is the most prominent and widely-adopted means, it cannot prove the absence of software's defects. Therefore, static measures such as formal proofs can complement dynamic methods. However, these techniques require the formal statement of requirements, which is still a challenge in industry development. This paper suggests a way of formalizing requirements in controlled natural language in a way that applies directly to C program code. By mapping natural language terms to conditional breakpoints, requirements can be translated to formal language expressed in observer automata. The creation of a mapping between natural language terms and code is supported by natural language processing methods. Finally, the observer automata are model checked against the code. In our approach we demonstrate the described steps using a set of realistically shaped requirements, which are common in the avionics domain. We implemented a simple tool hiding the abstract and mathematical details, which performs the proofs automatically. The paper is presented as an approach towards the seamless verification of code against requirements typically found in the avionics domain.","PeriodicalId":251481,"journal":{"name":"2020 IEEE Workshop on Formal Requirements (FORMREQ)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Requirements-based Code Model Checking\",\"authors\":\"Ulrich Schöpp, A. Schweiger, Marina Reich, Tatiana Chuprina, L. Lucio, Hartmut Brüning\",\"doi\":\"10.1109/FORMREQ51202.2020.00011\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Building the system right is the objective of quality assurance methods. Though testing is the most prominent and widely-adopted means, it cannot prove the absence of software's defects. Therefore, static measures such as formal proofs can complement dynamic methods. However, these techniques require the formal statement of requirements, which is still a challenge in industry development. This paper suggests a way of formalizing requirements in controlled natural language in a way that applies directly to C program code. By mapping natural language terms to conditional breakpoints, requirements can be translated to formal language expressed in observer automata. The creation of a mapping between natural language terms and code is supported by natural language processing methods. Finally, the observer automata are model checked against the code. In our approach we demonstrate the described steps using a set of realistically shaped requirements, which are common in the avionics domain. We implemented a simple tool hiding the abstract and mathematical details, which performs the proofs automatically. The paper is presented as an approach towards the seamless verification of code against requirements typically found in the avionics domain.\",\"PeriodicalId\":251481,\"journal\":{\"name\":\"2020 IEEE Workshop on Formal Requirements (FORMREQ)\",\"volume\":\"6 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-08-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2020 IEEE Workshop on Formal Requirements (FORMREQ)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/FORMREQ51202.2020.00011\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE Workshop on Formal Requirements (FORMREQ)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/FORMREQ51202.2020.00011","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Building the system right is the objective of quality assurance methods. Though testing is the most prominent and widely-adopted means, it cannot prove the absence of software's defects. Therefore, static measures such as formal proofs can complement dynamic methods. However, these techniques require the formal statement of requirements, which is still a challenge in industry development. This paper suggests a way of formalizing requirements in controlled natural language in a way that applies directly to C program code. By mapping natural language terms to conditional breakpoints, requirements can be translated to formal language expressed in observer automata. The creation of a mapping between natural language terms and code is supported by natural language processing methods. Finally, the observer automata are model checked against the code. In our approach we demonstrate the described steps using a set of realistically shaped requirements, which are common in the avionics domain. We implemented a simple tool hiding the abstract and mathematical details, which performs the proofs automatically. The paper is presented as an approach towards the seamless verification of code against requirements typically found in the avionics domain.