English
Related papers

Related papers: Contracts in Practice

200 papers

Design-by-contract is an important technique for model-based design in which a composite system is specified by a collection of contracts that specify the behavioural assumptions and guarantees of each component. In this paper, we describe…

Logic in Computer Science · Computer Science 2020-07-30 Simon Foster , Ana Cavalcanti , Samuel Canham , Jim Woodcock , Frank Zeyda

Design by Contract enables seamless software development by unifying software requirements with their implementations. In its pure form, however, Design by Contract leaves some problems with contracts' expressiveness, verifiability, and…

Software Engineering · Computer Science 2019-11-26 Alexandr Naumchev

The focus on rapid software delivery inevitably results in the accumulation of technical debt, which, in turn, affects quality and slows future development. Yet, companies with a long history of rapid delivery exist. Our primary aim is to…

Smart contract technology is reshaping conventional industry and business processes. Being embedded in blockchains, smart contracts enable the contractual terms of an agreement to be enforced automatically without the intervention of a…

Software Engineering · Computer Science 2019-12-24 Zibin Zheng , Shaoan Xie , Hong-Ning Dai , Weili Chen , Xiangping Chen , Jian Weng , Muhammad Imran

Existing software tools enable characterizing and measuring the amount of technical debt at selective granularity levels. In this paper we aim to study the evolution and characteristics of technical debt in open-source software. We carry…

Software Engineering · Computer Science 2020-07-28 Arthur-Jozsef Molnar , Simona Motogna

Many researchers assume that, for software analytics, "more data is better." We write to show that, at least for learning defect predictors, this may not be true. To demonstrate this, we analyzed hundreds of popular GitHub projects. These…

Software Engineering · Computer Science 2021-02-10 N. C. Shrikanth , Suvodeep Majumder , Tim Menzies

Requirements elicitation is among the most communication-intensive activities in software engineering, yet it receives limited explicit treatment in undergraduate curricula. This paper presents a case study of an Introduction to Software…

Computational Engineering, Finance, and Science · Computer Science 2026-04-09 Santiago Berrezueta-Guzman , Vanesa Metaj , Stefan Wagner

Background: Code cloning - copying and reusing pieces of source code - is a common phenomenon in software development in practice. There have been several empirical studies on the effects of cloning, but there are contradictory results…

Software Engineering · Computer Science 2016-11-28 Stefan Wagner , Asim Abdulkhaleq , Kamer Kaya , Alexander Paar

A program verifier is a tool that can be used to verify that a "contract" for a program holds - i.e. given a precondition the program guarantees that a given postcondition holds - by only working at the level of the annotated program. An…

Software Engineering · Computer Science 2014-06-12 Gudmund Grov

In software development, developers frequently apply maintenance activities to the source code that change a few lines by a single commit. A good understanding of the characteristics of such small changes can support quality assurance…

Software Engineering · Computer Science 2024-05-16 Masanari Kondo , Daniel M. German , Yasutaka Kamei , Naoyasu Ubayashi , Osamu Mizuno

User interaction with legal contracts has been limited to document reading, which is often complicated by complex, ambiguous legal language. We explore possible futures where contract interfaces go beyond single document interfaces to (1)…

Human-Computer Interaction · Computer Science 2026-02-03 Ziheng Huang , Robin Kar , Hari Sundaram , Tal August

Reading code is an essential activity in software maintenance and evolution. Several studies with human subjects have investigated how different factors, such as the employed programming constructs and naming conventions, can impact code…

Software Engineering · Computer Science 2021-10-05 Delano Oliveira , Reydne Bruno , Fernanda Madeiral , Fernando Castor

Understanding the practice of refactoring documentation is of paramount importance in academia and industry. Issue tracking systems are used by most software projects enabling developers, quality assurance, managers, and users to submit…

Software Engineering · Computer Science 2022-03-22 Eman Abdullah AlOmar , Anthony Peruma , Mohamed Wiem Mkaouer , Christian D. Newman , Ali Ouni

Even though much progress has been made in identifying and mitigating smart contract vulnerabilities, we often hear about coding or design issues leading to great financial losses. This paper presents our progress toward finding defects…

Logic in Computer Science · Computer Science 2024-11-01 Stefan-Claudiu Susan

Writing concurrent programs is a hard task, even when using high-level synchronization primitives such as transactional memories together with a functional language with well-controlled side-effects such as Haskell, because the…

Logic in Computer Science · Computer Science 2013-12-11 Romain Demeyer , Wim Vanhoof

Code readability and software complexity are important software quality metrics that impact other software metrics such as maintainability, reusability, portability and reliability. This paper presents an empirical study of the…

Software Engineering · Computer Science 2019-09-05 Duaa Alawad , Manisha Panta , Minhaz Zibran , Md Rakibul Islam

Test-driven development (TDD) is a widely used agile practice. However, very little is known with certainty about TDD's underlying foundations, i.e., the way TDD works. In this paper, we propose a theoretical framework for TDD, with the…

Software Engineering · Computer Science 2024-07-19 Oscar Dieste , Ayse Tosun , Sira Vegas , Adrian Santos , Fernando Uyaguari , Jarno Kyykka , Natalia Juristo

We present a small, formal language for specifying the behavior of simple console I/O programs. The design is driven by the concrete application case of testing interactive Haskell programs written by students. Specifications are…

Programming Languages · Computer Science 2025-06-27 Oliver Westphal , Janis Voigtländer

Model checking temporal properties of software is algorithmically hard. To be practically feasible, it usually requires the creation of simpler, abstract models of the software, over which the properties are checked. However, creating…

Formal Languages and Automata Theory · Computer Science 2025-03-17 Jesper Amilon , Dilian Gurov

Job rotation is a managerial practice to be applied in the organizational environment to reduce job monotony, boredom, and exhaustion resulting from job simplification, specialization, and repetition. Previous studies have identified and…