Cargando…
Holistic Specifications for Robust Programs
Functional specifications describe what program components can do: the sufficient conditions to invoke components’ operations. They allow us to reason about the use of components in a closed world setting, where components interact with known client code, and where the client code must establish the...
Autores principales: | , , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
2020
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7418133/ http://dx.doi.org/10.1007/978-3-030-45234-6_21 |
_version_ | 1783569632640106496 |
---|---|
author | Drossopoulou, Sophia Noble, James Mackay, Julian Eisenbach, Susan |
author_facet | Drossopoulou, Sophia Noble, James Mackay, Julian Eisenbach, Susan |
author_sort | Drossopoulou, Sophia |
collection | PubMed |
description | Functional specifications describe what program components can do: the sufficient conditions to invoke components’ operations. They allow us to reason about the use of components in a closed world setting, where components interact with known client code, and where the client code must establish the appropriate pre-conditions before calling into a component. Sufficient conditions are not enough to reason about the use of components in an open world setting, where components interact with external code, possibly of unknown provenance, and where components may evolve over time. In this open world setting, we must also consider the necessary conditions, i. e. what are the conditions without which an effect will not happen. In this paper we propose the [Formula: see text]hainmail specification language for writing holistic specifications that focus on necessary conditions (as well as sufficient conditions). We give a formal semantics for [Formula: see text]hainmail, and discuss several examples. The core of [Formula: see text]hainmail has been mechanised in the Coq proof assistant. |
format | Online Article Text |
id | pubmed-7418133 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2020 |
record_format | MEDLINE/PubMed |
spelling | pubmed-74181332020-08-11 Holistic Specifications for Robust Programs Drossopoulou, Sophia Noble, James Mackay, Julian Eisenbach, Susan Fundamental Approaches to Software Engineering Article Functional specifications describe what program components can do: the sufficient conditions to invoke components’ operations. They allow us to reason about the use of components in a closed world setting, where components interact with known client code, and where the client code must establish the appropriate pre-conditions before calling into a component. Sufficient conditions are not enough to reason about the use of components in an open world setting, where components interact with external code, possibly of unknown provenance, and where components may evolve over time. In this open world setting, we must also consider the necessary conditions, i. e. what are the conditions without which an effect will not happen. In this paper we propose the [Formula: see text]hainmail specification language for writing holistic specifications that focus on necessary conditions (as well as sufficient conditions). We give a formal semantics for [Formula: see text]hainmail, and discuss several examples. The core of [Formula: see text]hainmail has been mechanised in the Coq proof assistant. 2020-03-13 /pmc/articles/PMC7418133/ http://dx.doi.org/10.1007/978-3-030-45234-6_21 Text en © The Author(s) 2020 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. |
spellingShingle | Article Drossopoulou, Sophia Noble, James Mackay, Julian Eisenbach, Susan Holistic Specifications for Robust Programs |
title | Holistic Specifications for Robust Programs |
title_full | Holistic Specifications for Robust Programs |
title_fullStr | Holistic Specifications for Robust Programs |
title_full_unstemmed | Holistic Specifications for Robust Programs |
title_short | Holistic Specifications for Robust Programs |
title_sort | holistic specifications for robust programs |
topic | Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7418133/ http://dx.doi.org/10.1007/978-3-030-45234-6_21 |
work_keys_str_mv | AT drossopoulousophia holisticspecificationsforrobustprograms AT noblejames holisticspecificationsforrobustprograms AT mackayjulian holisticspecificationsforrobustprograms AT eisenbachsusan holisticspecificationsforrobustprograms |