English
Related papers

Related papers: Extending Design by Contract for Aspect-Oriented P…

200 papers

In this thesis, we introduce a novel formal framework to represent and reason about qualitative direction and distance relations between extended objects using Answer Set Programming (ASP). We take Cardinal Directional Calculus (CDC) as a…

Artificial Intelligence · Computer Science 2019-09-19 Yusuf Izmirlioglu

We present a new approach to automated reasoning about higher-order programs by extending symbolic execution to use behavioral contracts as symbolic values, enabling symbolic approximation of higher-order behavior. Our approach is based on…

Programming Languages · Computer Science 2012-04-27 Sam Tobin-Hochstadt , David Van Horn

Behavioral software contracts are a widely used mechanism for governing the flow of values between components. However, run-time monitoring and enforcement of contracts imposes significant overhead and delays discovery of faulty components…

Programming Languages · Computer Science 2014-06-17 Phuc C. Nguyen , Sam Tobin-Hochstadt , David Van Horn

A growing number of safety-critical industries agree that building confidence in complex systems can be achieved through evidence and structured argumentation framed in assurance cases. Nevertheless, according to practical industry…

Logic in Computer Science · Computer Science 2024-08-12 Dag McGeorge , Jon Arne Glomsrud

A spreadsheet usually starts as a simple and single-user software artifact, but, as frequent as in other software systems, quickly evolves into a complex system developed by many actors. Often, different users work on different aspects of…

Software Engineering · Computer Science 2015-03-12 Pedro Maia , Jorge Mendes , Jácome Cunha , Henrique Rebêlo , João Saraiva

During its lifetime, a program suffers several changes that seek to improve or to augment some parts of its functionality. However, these modifications usually also introduce errors that affect the already-working code. There are several…

Programming Languages · Computer Science 2019-02-06 Lars-Åke Fredlund , Julio Mariño , Sergio Pérez , Salvador Tamarit

We present a new approach to automated reasoning about higher-order programs by endowing symbolic execution with a notion of higher-order, symbolic values. Our approach is sound and relatively complete with respect to a first-order solver…

Programming Languages · Computer Science 2016-03-22 Phuc C. Nguyen , Sam Tobin-Hochstadt , David Van Horn

Verifying specifications for large-scale modern engineering systems can be a time-consuming task, as most formal verification methods are limited to systems of modest size. Recently, contract-based design and verification has been proposed…

Systems and Control · Electrical Eng. & Systems 2021-03-26 Miel Sharf , Bart Besselink , Karl Henrik Johansson

In systems engineering, accurately decomposing requirements is crucial for creating well-defined and manageable system components, particularly in safety-critical domains. Despite the critical need, rigorous, top-down methodologies for…

Systems and Control · Electrical Eng. & Systems 2025-05-15 Minghui Sun , Georgios Bakirtzis , Hassan Jafarzadeh , Cody Fleming

Identity Management is becoming more and more important in business systems as they are opened for third parties including trading partners, consumers and suppliers. This paper presents an approach securing a system without any knowledge of…

Cryptography and Security · Computer Science 2007-05-23 Nicolai Kuntze , Thomas Rauch , Andreas U. Schmidt

Research software engineers can use Assurance Cases (ACs) to guide Verification and Validation (VnV) efforts. An AC is a structured argument that a property like correctness holds. We illustrate how ACs can guide VnV activities via a case…

Software Engineering · Computer Science 2024-11-06 W. Spencer Smith , Jingyi Lin

Hardware-software contracts are abstract specifications of a CPU's leakage behavior. They enable verifying the security of high-level programs against side-channel attacks without having to explicitly reason about the microarchitectural…

Programming Languages · Computer Science 2026-04-13 Arthur Correnson , Haoyi Zeng , Jana Hofmann

Modern engineering systems include many components of different types and functions. Verifying that these systems satisfy given specifications can be an arduous task, as most formal verification methods are limited to systems of moderate…

Systems and Control · Electrical Eng. & Systems 2021-04-21 Miel Sharf , Bart Besselink , Adam Molin , Qiming Zhao , Karl Henrik Johansson

This paper presents a critical discussion of popular approaches to ensure the Liskov substitution principle in class hierarchies (e.g. Design by Contract(TM), specification inheritance). It will be shown that they have some deficiencies…

Software Engineering · Computer Science 2013-08-01 Herbert Toth

The amount of aspect-oriented software development techniques and tools have been increasing for the last years but still they have not enough maturity and are not sufficiently spread to be included in a project leader's box of tools.…

Software Engineering · Computer Science 2018-09-28 Fernando Pinciroli , Jose Luis Barros Justo , Laura Zeligueta , Marcelo Pma

Requirements engineering is a discipline of software engineering that is concerned with the identification and handling of user and system requirements. Aspect-Oriented Requirements Engineering (AORE) extends the existing requirements…

Software Engineering · Computer Science 2021-10-11 Abdelsalam M. Maatuk , Sohil F. Alshareef , Tawfig M. Abdelaziz

Application developers often place executable assertions -- equipped with program-specific predicates -- in their system, targeting programming errors. However, these detectors can detect data errors resulting from transient hardware faults…

Software Engineering · Computer Science 2016-08-23 Michael Lenz , Horst Schirmeier

This paper considers an example of Object-Oriented Programming (OOP) leading to subtle errors that break separation of interface and implementations. A comprehensive principle that guards against such errors is undecidable. The paper…

Programming Languages · Computer Science 2007-05-23 Oleg Kiselyov

Proving correctness of distributed or concurrent algorithms is a mind-challenging and complex process. Slight errors in the reasoning are difficult to find, calling for computer-checked proof systems. In order to build computer-checked…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-11-21 Armando Castañeda , Aurélie Hurault , Philippe Quéinnec , Matthieu Roy

Contracts specifying a procedure's behavior in terms of pre- and postconditions are essential for scalable software verification, but cannot express any constraints on the events occurring during execution of the procedure. This…

Software Engineering · Computer Science 2022-11-22 Richard Bubel , Dilian Gurov , Reiner Hähnle , Marco Scaletta