Design by Contract (DbC) is a programming methodology in which the meaning of program entities, such as methods and classes, is made explicit by the use of programming predicates named assertions. A false assertion is...
详细信息
ISBN:
(纸本)9783939897682
Design by Contract (DbC) is a programming methodology in which the meaning of program entities, such as methods and classes, is made explicit by the use of programming predicates named assertions. A false assertion is always a manifestation of an incorrect program. This simple founding idea, when properly applied, give programmers a tool able to specify, test, debug, document programs, as well as a mechanism to construct a simple, safe and sane error handling mechanism. Nevertheless, although well adapted to object-orientedprogramming (and other popular techniques such as unit testing), DbC still has a very low practical acceptance and application. We believe that one of the main reasons for such is the lack of a proper support for it in many programming languages currently in use (such as Java). A complete support for DbC requires not only the ability to specify assertions;but also the necessity to distinguish different kinds of assertions, depending of what is being asserted;a proper integration in object-orientedprogramming;and, finally, a coherent connection with error handling mechanisms. It is in this last requirement that existing tools that extend Java with DbC mechanisms completely fail to properly, and coherently, integrate DbC within Java programming. The dominant practices for systematically handling failures in programming languages are not DbC based, using instead a defensive programming approach, either by using normal languages mechanisms (as in programming language C) or by the use of typed exceptions in try/catch based exception mechanisms. In this article, we will present and justify the requirements posed on programming languages for a complete support for DbC;On the context of the last presented requirement - error handling - defensive programming will be discussed and criticized;It will be showed that, unlike Eiffel's original DbC error handling, existing typed exceptions in try/catch based exception mechanisms are not well adapted to algorit
Introductory programming education following the objects First approach introduces the concepts of object-orientedprogramming early on. objects with state (fields) and behavior (methods) that offer services to their ...
详细信息
Unlike the existing object-oriented and other database technologies, database schemas in the technology developed in this research are equipped with very general integrity constraints specified in a declarative, logic...
详细信息
ISBN:
(纸本)9783662444719;9783662444702
Unlike the existing object-oriented and other database technologies, database schemas in the technology developed in this research are equipped with very general integrity constraints specified in a declarative, logic-based fashion. These declarative specifications are expressed in object-oriented assertion languages and they apply to transactions that are implemented in a full-fledged, mainstream object-orientedprogramming language. The model of transactions is based on more advanced features of object-oriented type systems, the ownership model, and very general constraints. The main distinction in comparison with other database technologies is that transactions can be verified to satisfy the schema integrity constraints. The two main contributions of this paper are object-oriented schemas equipped with integrity constraints and static verification of transactions with respect to the integrity constraints. Solutions to these open problems have been out of reach so far. Furthermore, transaction verification is not only largely static, but it is also automatic, so that the subtleties of the underlying verification technology are hidden from the users. In addition to static verification, the technology offers dynamic enforcement of the integrity constraints when necessary. The overall outcome is a significant increase in data integrity along with run-time efficiency and reliability of transactions.
We present a small object-oriented language with communication primitives. The language allows the assignment of binary session types to communication channels in order to govern the interaction between different obje...
详细信息
Refactoring leads to more maintainable software. To refactor the code, it must be known which part of code needs to be refactored. For this purpose code smells are used. Detecting code smells in itself is a challengin...
详细信息
Modern computers improve their predecessors with additional parallelism but require concurrent software to exploit it. object-orientation is instrumental in simplifying sequential programming, however, in a concurrent...
详细信息
Distinctions between approaches to programming for design applications are marked by the split between Visual programming Languages (VPLs) and Textual programming Languages (TPLs).1 While this distinction has proven u...
详细信息
To overcome the difficulty of integrating continuous/discontinuous numerical methods to a software and retain its flexibility at the same time, National Center for Research on Earthquake Engineering (NCREE) under Nati...
详细信息
Traditionally, object-oriented software adopts the Observer pattern to implement reactive behavior. Its drawbacks are well-documented and two families of alternative approaches have been proposed, extending object-ori...
详细信息
The paper presents an approach to designing a data processing algorithms framework adapted to appearance of new algorithms that require comparison with previously implemented. The approach is based on the non-strict n...
详细信息
ISBN:
(纸本)9781450328890
The paper presents an approach to designing a data processing algorithms framework adapted to appearance of new algorithms that require comparison with previously implemented. The approach is based on the non-strict notion of mathematical "concept" - a set of mathematical ideas, expressed by algebraically equivalent formulas. Using this notion and patterns of object-orientedprogramming, the authors constructed a target motion analysis (TMA) algorithms framework, which dynamically creates objects that implement the wide class of algorithms according to a standardized description. Copyright 2014 ACM.
暂无评论