🤖 AI Summary
Contract-based design (CbD) lacks systematic empirical evidence supporting its application in trustworthy software systems. Method: This study conducts the first systematic mapping study (SMS) of CbD across the full lifecycle and multiple dimensions for trustworthy systems, employing tri-database collaborative retrieval, collaborative review, and voting-based screening to analyze 288 primary studies via thematic coding and evidence aggregation. Contribution/Results: The study clarifies the breadth and depth of CbD adoption across domains, quantitatively assesses domain maturity distributions, and identifies critical gaps among theoretical modeling, automated verification, and industrial practice. It proposes six empirically grounded, verifiable research directions and delivers the first evidence-based CbD methodology framework and practical guidelines for trustworthy software engineering.
📝 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 databases using specially formulated queries, which initially yielded 1,221 primary studies. After voting, we focused on 288 primary studies for more detailed analysis. Finally, a collaborative review allowed us to gather relevant evidence and information to address our research questions. Results: Our findings suggest potential avenues for future research trajectories in CbD, emphasising its role in improving the dependability of software systems. We highlight maturity levels across different domains and identify areas that may benefit from further research. Conclusion: Although CbD is a well-established software design approach, a more comprehensive literature review is needed to clarify its theoretical state about dependable systems. Our study addresses this gap by providing a detailed overview of CbD from various perspectives, identifying key gaps, and suggesting future research directions.