Karine Arnout

Learn More
Can design patterns be turned into reusable components using some advanced programming language mechanisms? We reviewed all patterns described in the book by Gamma et al. [Gamma 1995] and built a new classification of these patterns by level of “componentizability” (possibility to turn the pattern into a component). This article first describes our(More)
Using Design by ContractTM 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)
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 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)
Are contracts inherent in reusable libraries, or just one design technique among others? To help answer this question, we performed an empirical study of library classes from the .NET Collections library, which doesn’t use Design by ContractTM, to look for unexpressed contracts. This article reports on the buried contracts we have found, and discusses(More)
The Event Library is a simple library that provides a solution to the common problems in event-driven programming. Its careful design facilitates further extensions, in order to satisfy users’ advanced needs. It has been implemented in Eiffel, taking advantage of the advanced mechanisms of this language. In this paper, we present the architecture of 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)
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)