A Systematic Mapping Study on Contract-based Software Design for Dependable Systems
Fazli Faruk Okumus, Amra Ramic, Stefan Kugele

TL;DR
This systematic mapping study reviews contract-based design (CbD) in software engineering, highlighting its role in creating dependable systems, analyzing existing research, and identifying future research directions to enhance software dependability.
Contribution
The paper provides a comprehensive overview of CbD in dependable software systems, analyzing 288 studies to identify research gaps and future opportunities.
Findings
CbD enhances software dependability through modular design.
Research on CbD spans multiple domains with varying maturity levels.
Identifies key gaps and future research directions in CbD for dependable systems.
Abstract
Background: Contract-based Design (CbD) is a valuable methodology for software design that allows annotation of code and architectural components with contracts, thereby enhancing clarity and reliability in software development. It establishes rules that outline the behaviour of software components and their interfaces and interactions. This modular approach enables the design process to be segmented into smaller, independently developed, tested, and verified system components, ultimately leading to more robust and dependable software. Aim: Despite the significance and well-established theoretical background of CbD, there is a need for a comprehensive systematic mapping study for reliable software systems. Our study provides an evidence-based overview of a method and demonstrates its practical feasibility. Method: To conduct this study, we systematically searched three different…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Software Engineering Techniques and Practices · Software Reliability and Analysis Research
