{"title":"Formal Requirements in an Informal World","authors":"Daniel Dietsch, Vincent Langenfeld, B. Westphal","doi":"10.1109/FORMREQ51202.2020.00010","DOIUrl":"https://doi.org/10.1109/FORMREQ51202.2020.00010","url":null,"abstract":"With today’s increasing complexity of systems andrequirements there is a need for formal analysis of requirements.Although there exist several formal requirements description lan-guages and corresponding analysis tools that target an industrialaudience, there is a large gap between the form of requirementsand the training in formal methods available in industry today,and the form of requirements and the knowledge that is necessaryto successfully operate the analysis tools. We propose a process to bridge the gap between customerrequirements and formal analysis. The process is designed tosupport in-house formalisation and analysis as well as formalisa-tion and analysis as a service provided by a third party. The basicideas are that we obtain dependability and comprehensibility byassuming a senior formal requirements engineer who preparesthe requirements and later interprets the analysis results intandem with the client. We obtain scalability as most of theformalisation and analysis is supposed to be conducted by juniorformal requirements engineers. In this paper, we define and analyse the process and report onexperience from different instantiations, where the process waswell received by customers.","PeriodicalId":251481,"journal":{"name":"2020 IEEE Workshop on Formal Requirements (FORMREQ)","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125549599","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Formalizing Security and Safety Requirements by Mapping Attack-Fault Trees on Obstacle Models with Constraint Programming Semantics","authors":"C. Ponsard, J. Deprez, Robert Darimont","doi":"10.1109/FORMREQ51202.2020.00009","DOIUrl":"https://doi.org/10.1109/FORMREQ51202.2020.00009","url":null,"abstract":"Requirements Engineering (RE) covers not only the capture and structuring of various properties the system should achieve but also the identification of high-level choices on how to achieve such goals or to avoid related obstacles. Generic RE frameworks support simple formalisation of alternatives using AND/OR refinements while more specialised fields such as safety and security engineering have richer analysis capabilities respectively through fault and attack trees. In this paper, we review the various constructs proposed in those domains and state their semantics at RE level to support safety and security co-engineering. As a supplementary step, we propose a mapping on the semantics provided by Constraint Programming in order to search for optimal configurations in the design space of a RE model. We consider multiple objectives stated as non-functional requirements and formalised using quantified attributes over goal models. Our work is validated on the complex design of an oil pipe system mixing safety and security critical properties.","PeriodicalId":251481,"journal":{"name":"2020 IEEE Workshop on Formal Requirements (FORMREQ)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132086451","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ulrich Schöpp, A. Schweiger, Marina Reich, Tatiana Chuprina, L. Lucio, Hartmut Brüning
{"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":"https://doi.org/10.1109/FORMREQ51202.2020.00011","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.0,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121972848","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"SpecEdit: Projectional Editing for TLA+ Specifications","authors":"Riwan Cuinat, C. Teodorov, J. Champeau","doi":"10.1109/FORMREQ51202.2020.00008","DOIUrl":"https://doi.org/10.1109/FORMREQ51202.2020.00008","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.0,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128441869","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Formalization of Requirements for Correct Systems","authors":"Imen Sayar, J. Souquières","doi":"10.1109/FORMREQ51202.2020.00012","DOIUrl":"https://doi.org/10.1109/FORMREQ51202.2020.00012","url":null,"abstract":"Improving the quality of a system begins by their requirements elicitation: the challenge is to bridge the gap between the requirements of the client and their formal specification defined by the scientist. A first step consists on understanding and rewriting the existing requirements. Along the development process, we introduce formal terms in the requirements coming the formal specification and make explicit the interactions between them by a glossary. The trace of the requirements and their corresponding specification is managed and serves to simplify the activities of validation and verification. The validation is studied since the understanding of the first requirements and all along the development of their formal specification. The verification may detect imperfections like incoherences and ambiguities in both the formal specification and their corresponding requirements.","PeriodicalId":251481,"journal":{"name":"2020 IEEE Workshop on Formal Requirements (FORMREQ)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132815075","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}