Learn More
Reliability is a key concern in the current state of software industry. Producing software without defects is still very difficult. Therefore it is crucial to benefit from high-level language mechanisms such as assertions. Nevertheless contracts are mostly a specificity of the Eiffel language. This observation convinced ISE to build a new product, the(More)
Can libraries written without explicit support for Design by Contract™ in the language or the method benefit from a posteriori addition of contracts? To help answer this question, we performed an empirical study of library classes from the .NET Collections library, which doesn't use Design by Contract, to search for unexpressed contracts. This poster(More)
Can Design Patterns be turned into reusable components? To help answer this question, we have performed a systematic study of the standard design patterns. One of the most interesting is Abstract Factory, for which we were indeed able to build a reusable component fulfilling the same needs as the original pattern. This article presents the component’s(More)
Goals of expressiveness and flexibility in typed object-oriented programming suggest a " covariant " type policy, where routine redefinitions can change the types of both arguments and results in the same direction as the inheritance hierarchy. Unfortunately, a careless covariant policy, when combined with polymorphism, genericity and dynamic binding —(More)
Using Design by Contract™ provides a low-cost solution to unit-testing, which is usually unaffordable — and not carried out — in the industry. If contracts — preconditions, postconditions, class invariants — are systematically associated with classes, they provide an invaluable source of information for producing systematic tests, directly based on the(More)
Can the Singleton pattern [Gamma95] be turned into a reusable component? To help answer this question, we have reviewed existing implementations and tried to improve them. This article explains the difficulties of having a single-instance class in Eiffel and proposes language extensions, namely once creation procedures, which would be satisfactory in most(More)