547 research outputs found
Contract Aware Components, 10 years after
The notion of contract aware components has been published roughly ten years
ago and is now becoming mainstream in several fields where the usage of
software components is seen as critical. The goal of this paper is to survey
domains such as Embedded Systems or Service Oriented Architecture where the
notion of contract aware components has been influential. For each of these
domains we briefly describe what has been done with this idea and we discuss
the remaining challenges.Comment: In Proceedings WCSI 2010, arXiv:1010.233
PROMON: a profile monitor of software applications
Software techniques can be efficiently used to increase the dependability of safety-critical applications. Many approaches are based on information redundancy to prevent data and code corruption during the software execution. This paper presents PROMON, a C++ library that exploits a new methodology based on the concept of "Programming by Contract" to detect system malfunctions. Resorting to assertions, pre- and post-conditions, and marginal programmer interventions, PROMON-based applications can reach high level of dependabilit
Teaching Programming and Design-by-Contract
This paper summarizes the experience of teaching an introductory course to
programming by using a correctness by construction approach at Innopolis
University, Russian Federation. In this paper we claim that division in
beginner and advanced groups improves the learning outcomes, present the
discussion and the data that support the claim.Comment: 21th International Conference on Interactive Collaborative Learnin
Diagnosing Errors in DbC Programs Using Constraint Programming
Model-Based Diagnosis allows to determine why a correctly
designed system does not work as it was expected. In this paper, we propose
a methodology for software diagnosis which is based on the combination
of Design by Contract, Model-Based Diagnosis and Constraint
Programming. The contracts are specified by assertions embedded in the
source code. These assertions and an abstraction of the source code are
transformed into constraints, in order to obtain the model of the system.
Afterwards, a goal function is created for detecting which assertions or
source code statements are incorrect. The application of this methodology
is automatic and is based on Constraint Programming techniques.
The originality of this work stems from the transformation of contracts
and source code into constraints, in order to determine which assertions
and source code statements are not consistent with the specification.Ministerio de Ciencia y TecnologĂa DPI2003-07146-C02-0
Recommended from our members
Protective wrapping of off-the-shelf components
System designers using off-the-shelf components (OTSCs), whose internals they cannot change, often use add-on âwrappersâ to adapt the OTSCsâ behaviour as required. In most cases, wrappers are used to change âfunctionalâ properties of the components they wrap. In this paper we discuss instead protective wrapping, the use of wrappers to improve the dependability â i.e., ânon-functionalâ properties like availability, reliability, security, and/or safety â of a component and thus of a system. Wrappers can improve dependability by adding fault tolerance, e.g. graceful degradation, or error recovery mechanisms. We discuss the rational specification of such protective wrappers in view of system dependability requirements, and highlight some of the design trade-offs and uncertainties that affect system design with OTSCs and wrappers, and that differentiate it from other forms of fault-tolerant design
Contracting the Facebook API
In recent years, there has been an explosive growth in the popularity of
online social networks such as Facebook. In a new twist, third party developers
are now able to create their own web applications which plug into Facebook and
work with Facebook's "social" data, enabling the entire Facebook user base of
more than 400 million active users to use such applications. These client
applications can contain subtle errors that can be hard to debug if they misuse
the Facebook API. In this paper we present an experience report on applying
Microsoft's new code contract system for the .NET framework to the Facebook
API.We wrote contracts for several classes in the Facebook API wrapper which
allows Microsoft .NET developers to implement Facebook applications. We
evaluated the usefulness of these contracts during implementation of a new
Facebook application. Our experience indicates that having code contracts
provides a better and quicker software development experience.Comment: In Proceedings TAV-WEB 2010, arXiv:1009.330
Object-oriented Programming Laws for Annotated Java Programs
Object-oriented programming laws have been proposed in the context of
languages that are not combined with a behavioral interface specification
language (BISL). The strong dependence between source-code and interface
specifications may cause a number of difficulties when transforming programs.
In this paper we introduce a set of programming laws for object-oriented
languages like Java combined with the Java Modeling Language (JML). The set of
laws deals with object-oriented features taking into account their
specifications. Some laws deal only with features of the specification
language. These laws constitute a set of small transformations for the
development of more elaborate ones like refactorings
A semantical framework for the orchestration and choreography of web services
Web Services are software services that can be advertised by providers and invoked by customers using Web technologies. This concept is currently carried further to
address the composition of individual services through orchestration and choreography to services processes that communicate and interact with each other. We propose an ontology framework for these Web service processes that provides techniques for their description, matching, and composition. A description logic-based knowledge representation and reasoning framework provides the foundations. We will base this ontological framework on an operational model of service process behaviour and composition
- âŠ