Results 11 -
18 of
18
Formalizing lightweight verification of software component composition
- In SAVCBS
, 2004
"... Software errors often occur at the interfaces between separately developed components. Incompatibilities are an especially acute problem when upgrading software components, as new versions may be accidentally incompatible with old ones. As an inexpensive mechanism to detect many such problems, previ ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Software errors often occur at the interfaces between separately developed components. Incompatibilities are an especially acute problem when upgrading software components, as new versions may be accidentally incompatible with old ones. As an inexpensive mechanism to detect many such problems, previous work proposed a technique that adapts methods from formal verification to use component abstractions that can be automatically generated from implementations. The technique reports, before performing the replacement or integrating the new component into a system, whether the upgrade might be problematic for that particular system. The technique is based on a rich model of components that support internal state, callbacks, and simultaneous upgrades of multiple components, and component abstractions may contain arbitrary logical properties including unbounded-state ones. This paper motivates this (somewhat non-standard) approach to component verification. The paper also refines the formal model of components, provides a formal model of software system safety, gives an algorithm for constructing a consistency condition, proves that the algorithm’s result guarantees system safety in the case of a single-component upgrade, and gives a proof outline of the algorithm’s correctness in the case of an arbitrary upgrade. 1.
Enhancing Component Specification by Behavior Description − the SOFA Experience
- in Proceedings of the 4th WISICT 2005, A volume in the ACM, Computer Science
, 2005
"... This paper aims at sharing with the reader the experience with behavior protocols- the component behavior description introduced in our SOFA component model and emphasize the key research challenges we have faced in this respect during its 6 years existence and development. In particular, this inclu ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This paper aims at sharing with the reader the experience with behavior protocols- the component behavior description introduced in our SOFA component model and emphasize the key research challenges we have faced in this respect during its 6 years existence and development. In particular, this includes the issue of finding the “right ” semantics of fulfilling the behavior contract in terms of both horizontal (client-service) and vertical (nesting) cooperation of components. The contribution of the paper is that it brings our findings published “incrementally ” under one umbrella and articulates verbally what was elsewhere captured in an exact, formal way.
Functional and Non-Functional Contracts Support for Component-Oriented Programming
, 2001
"... This position paper focuses on contracts for component interfaces, looking at both their functional and non-functional aspects. We investigate how the di#erent levels of contract may relate to each other and what properties must be provided on each form of contract. We argue that a meta-level mechan ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This position paper focuses on contracts for component interfaces, looking at both their functional and non-functional aspects. We investigate how the di#erent levels of contract may relate to each other and what properties must be provided on each form of contract. We argue that a meta-level mechanism will be necessary to support these contracts in a Component-Oriented programming language.
Enhancing Semantic Web Services with Inheritance
- In Proc. of the ISWC
, 2008
"... Abstract. Currently proposed Semantic Web Services technologies allow the creation of ontology-based semantic annotations of Web services so that software agents are able to discover, invoke, compose and monitor these services with a high degree of automation. The OWL Services (OWL-S) ontology is an ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Currently proposed Semantic Web Services technologies allow the creation of ontology-based semantic annotations of Web services so that software agents are able to discover, invoke, compose and monitor these services with a high degree of automation. The OWL Services (OWL-S) ontology is an upper ontology in OWL language, providing essential vocabularies to semantically describe Web services. Currently OWL-S services can only be developed independently; if one service is unavailable then finding a suitable alternative would require an expensive and difficult global search/match. It is desirable to have a new OWL-S construct that can systematically support substitution tracing as well as incremental development and reuse of services. Introducing inheritance relationship (IR) into OWL-S is a natural solution. However, OWL-S, as well as most of the other currently discussed formalisms for Semantic Web Services such as WSMO or SAWSDL, has yet to define a concrete and self-contained mechanism of establishing inheritance relationships among services, which we believe is very important for the automated annotation and discovery of Web services as well as human organization of services into a taxonomy-like structure. In this paper, we extend OWL-S with the ability to define and maintain inheritance relationships between services. Through the definition of an additional “inheritance profile”, inheritance relationships can be stated and reasoned about. Two types of IRs are allowed to grant service developers the choice to respect the “contract” between services or not. The proposed inheritance framework has also been implemented and the prototype will be briefly evaluated as well.
A FLEXIBLE STRATEGY FOR EMBEDDING AND CONFIGURING RUN- TIME CONTRACT CHECKS IN .NET COMPONENTS
, 2006
"... In component-based systems, there are several obstacles to using Design by Contract (DbC), particularly with respect to third-party components. Contracts are particularly valuable when debugging or testing composite software structures that include third-party components. However, existing approache ..."
Abstract
- Add to MetaCart
In component-based systems, there are several obstacles to using Design by Contract (DbC), particularly with respect to third-party components. Contracts are particularly valuable when debugging or testing composite software structures that include third-party components. However, existing approaches have critical weaknesses. First, existing approaches typically require a component’s source code to be available if you wish to strip (or re-insert) checks. Second, documentation of the contract is either distributed separately from the component or embedded in the component’s source code. Third, enabling and disabling specific kinds of checks on separate components from independent vendors can be a significant challenge. This paper describes an approach to representing contracts for.NET components using attributes. This contract information can be retrieved from the compiled component’s metadata and used for many purposes. The paper also describes nContract, a tool that automatically generates run-time checks from embedded contracts. Such run-time checks can be generated and added to a system without requiring source code access or recompilation. Further, when checks for a given component are excluded, they impose no run-time overhead. Finally, a highly expressive, fine-grained mechanism for controlling user preferences about which specific checks are enabled or disabled is presented.
April 2011A Framework for Testing Concurrent Programs
"... This study proposes a new framework that can effectively apply unit testing to concurrent programs, which are difficult to develop and debug. Test-driven development, a practice enabling developers to detect bugs early by incorporating unit testing into the development process, has become wide-sprea ..."
Abstract
- Add to MetaCart
This study proposes a new framework that can effectively apply unit testing to concurrent programs, which are difficult to develop and debug. Test-driven development, a practice enabling developers to detect bugs early by incorporating unit testing into the development process, has become wide-spread, but it has only been effective for programs with a single thread of control. The order of operations in different threads is essentially non-deterministic, making it more complicated to reason about program properties in concurrent programs than in single-threaded programs. Because hardware, operating systems, and compiler optimizations influence the order in which operations in different threads are executed, debugging is problematic since a problem often cannot be reproduced on other machines. Multicore processors, which have replaced older single-core designs, have exacerbated these problems because they demand the use of concurrency if programs are to benefit from new processors. The existing tools for unit testing programs are either flawed or too costly.

