Results 1 - 10
of
23
Design of Dynamically Reconfigurable Real-Time Software using Port-Based Objects
, 1993
"... a "one-of-a-kind" process, where most software is developed from scratch, even though much of the code is similar to code written for other applications. The cost of these systems can be drastically reduced and the capability of these systems improved by providing a suitable software framework for ..."
Abstract
-
Cited by 119 (18 self)
- Add to MetaCart
a "one-of-a-kind" process, where most software is developed from scratch, even though much of the code is similar to code written for other applications. The cost of these systems can be drastically reduced and the capability of these systems improved by providing a suitable software framework for all R&A sys~ terns, We describe a novel software framework, based on the notion of dynamically reconfigurable software for sensor-based control systems. Tools to support the implementation of this framework have been built into the Chimera 3.0 Real-Time Operating System. The framework provides for the systematic development and predictable execution of flexible R&A applications while maintaining the ability to reuse code f)om previous applications. It combines object-oriented design of software with port-automaton design of digital control systems. A control module is an instance of a class of port-based objects. A task set is formed by integrating objects from a module library to form a specific configuration. An implementation using global state variables for the automatic integration of port-based objects is presented. A control subsystem is a collection of jobs which are executed one at a time, and can be programmed by a user. Multiple control subsystems can execute in parallel, and operate either independently or cooperatively. One of the fundamental concepts of reconfigurable software design is that modules are developed independent of the target hard- ware. Our framework defines classes of reconfigurable device driver objects for proving hardware independence to IJO devices, sensors, actuators, and special purpose processors. Hardware independent real-time communication mechanisms for inter-subsystem eommurtication are also described. A/ong with providing a foundatio...
Program and interface slicing for reverse engineering
- In IEEE/ACM 15 th Conference on Software Engineering (ICSE'93
, 1993
"... Reverse engineering involves a great deal of effort in comprehension of the current implementation of a software system and the ways in which it differs from the original design. Automated support tools are critical to the success of such efforts. We show how program slicing techniques can be employ ..."
Abstract
-
Cited by 77 (2 self)
- Add to MetaCart
Reverse engineering involves a great deal of effort in comprehension of the current implementation of a software system and the ways in which it differs from the original design. Automated support tools are critical to the success of such efforts. We show how program slicing techniques can be employed to assist in the comprehension of large software systems, through traditional slicing techniques at the statement level, and through a new technique, interface slicing, at the module level. 1
Binary Component Adaptation
, 1998
"... Abstract. Binary component adaptation (BCA) allows components to be adapted and evolved in binary form and on-the-fly (during program loading). BCA rewrites component binaries before (or while) they are loaded, requires no source code access and guarantees release-to-release compatibility. That is, ..."
Abstract
-
Cited by 72 (1 self)
- Add to MetaCart
Abstract. Binary component adaptation (BCA) allows components to be adapted and evolved in binary form and on-the-fly (during program loading). BCA rewrites component binaries before (or while) they are loaded, requires no source code access and guarantees release-to-release compatibility. That is, an adaptation is guaranteed to be compatible with a new binary release of the component as long as the new release itself is compatible with clients compiled using the earlier release. We describe our implementation of BCA for Java and demonstrate its usefulness by showing how it can solve a number of important integration and evolution problems. Even though our current implementation was designed for easy integration with Sun’s JDK 1.1 VM rather than for ultimate speed, measurements show that the load-time overhead introduced by BCA is small, in the range of one or two seconds. With its flexibility, relative simple implementation, and low overhead, binary component adaptation could significantly
Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status
, 1994
"... Software designers compose systems from components written in some programming language. They regularly describe systems using abstract patterns and sophisticated relations among components. However, the configuration tools at their disposal restrict them to composition mechanisms directly suppor ..."
Abstract
-
Cited by 63 (2 self)
- Add to MetaCart
Software designers compose systems from components written in some programming language. They regularly describe systems using abstract patterns and sophisticated relations among components. However, the configuration tools at their disposal restrict them to composition mechanisms directly supported by the programming language. To remedy this lack of expressiveness, we must elevate the relations among components to first-class entities of the system, entitled to their own specifications and abstractions.
The Chimera Methodology: Designing dynamically reconfigurable real-time software using port-based objects
- WORDS'94
, 1994
"... The Chimera Methodology is a new software engineering paradigm which addresses the problem of developing dynamically reconfigurable and reusable real-time software. The foundation of the Chimera methodology is the port-based object model of a reusable software component. The model is obtained by app ..."
Abstract
-
Cited by 35 (8 self)
- Add to MetaCart
The Chimera Methodology is a new software engineering paradigm which addresses the problem of developing dynamically reconfigurable and reusable real-time software. The foundation of the Chimera methodology is the port-based object model of a reusable software component. The model is obtained by applying the port-automaton formal computational model to object-based design. Global state variable table real-time communication is used to integrate port-based objects, which eliminates the need for writing and debugging glue code. The Chimera real-time operating system provides tools to support the software models defined by the Chimera methodology, so that real-time software can be executed predictably using common real-time scheduling algorithms. A hypermedia user interface has been designed to allow users to easily assemble the real-time software components that are designed based on the Chimera methodology. Use of the methodology can result in a significant decrease the development time and cost of real-time applications.
Semantic Structure Matching for Assessing Web Service Similarity
- 1st International Conference on Service Oriented Computing (ICSOC03
, 2003
"... Abstract. The web-services stack of standards is designed to support the reuse and interoperation of software components on the web. A critical step in the process of developing applications based on web services is service discovery, i.e., the identification of existing web services that can potent ..."
Abstract
-
Cited by 21 (3 self)
- Add to MetaCart
Abstract. The web-services stack of standards is designed to support the reuse and interoperation of software components on the web. A critical step in the process of developing applications based on web services is service discovery, i.e., the identification of existing web services that can potentially be used in the context of a new web application. UDDI, the standard API for publishing webservices specifications, provides a simple browsing-by-business-category mechanism for developers to review and select published services. To support programmatic service discovery, we have developed a suite of methods that utilizes both the semantics of the identifiers of WSDL descriptions and the structure of their operations, messages and data types to assess the similarity of two WSDL files. Given only a textual description of the desired service, a semantic information-retrieval method can be used to identify and order the most similar service-description files. This step assesses the similarity of the provided description of the desired service with the available services. If a (potentially partial) specification of the desired service behavior is also available, this set of likely candidates can be further refined by a semantic structure-matching step assessing the structural similarity of the desired vs. the retrieved services and the semantic similarity of their identifier. In this paper, we describe and experimentally evaluate our suite of service-similarity assessment methods. 1
Flexible interface matching for web-service discovery
- In: Web Information Systems Engineering (WISE). Proceedings of the Fourth International Conference on. (2003) 147–156
, 2003
"... The web-services stack of standards is designed to support the reuse and interoperation of software components on the web. A critical step, to that end, is service discovery, i.e., the identification of existing web services that can potentially be used in the context of a new web application. UDDI, ..."
Abstract
-
Cited by 18 (5 self)
- Add to MetaCart
The web-services stack of standards is designed to support the reuse and interoperation of software components on the web. A critical step, to that end, is service discovery, i.e., the identification of existing web services that can potentially be used in the context of a new web application. UDDI, the standard API for publishing web-services specifications, provides a simple browsing-by-business-category mechanism for developers to review and select published services. In our work, we have developed a flexible service discovery method, for identifying potentially useful services and assessing their relevance to the task at hand. Given a textual description of the desired service, a traditional information-retrieval method is used to identify the most similar service description files, and to order them according to their similarity. Next, given this set of likely candidates and a (potentially partial) specification of the desired service behavior, a structure-matching step further refines and assesses the quality of the candidate service set. In this paper, we describe and experimentally evaluate our webservice discovery process. 1.
Interoperation of Object-Oriented Applications
- Object-Oriented Software Composition, chapter 3
, 1995
"... Abstract One of the important advantages of the object-oriented design and development methodology is the ability to reuse existing software modules. However the introduction of many programming languages with different syntax, semantics and/or paradigms has created the need for a consistent inter-l ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
Abstract One of the important advantages of the object-oriented design and development methodology is the ability to reuse existing software modules. However the introduction of many programming languages with different syntax, semantics and/or paradigms has created the need for a consistent inter-language interoperability support framework. We present a brief overview of the most characteristic interoperability support methods and frameworks allowing the access and reuse of objects from different programming environments and focus on the interface bridging object-oriented interoperability support approach. 3.1 Reusing Objects from Different Environments One of the problems that people face when travelling from one country to another concerns the operation of electric appliances, like electric razors and coffee machines. A person living in Switzerland, for example, travelling to Germany will not be able to “plug in” and use his coffee machine as he is used in doing when back home. The reason is simply that the “interfaces ” for connecting to the electricity distribution network, that is the plug of the appliance and the wall socket, are different. Our traveller will need to employ a small inexpensive adaptor in order to bridge the differences of the “interfaces”. But things are not always that simple. If the same person is travelling to North America he will discover that not only is his (Swiss) plug different from the (North American) wall socket, but also that the electricity voltage differs. Fortunately also in this case a simple solution exists: the use of a transformer that will convert the North American voltage (110 V) to the Swiss standard (220 V).
Software assembly for real-time applications based on a distributed shared memory model
- in Proc. of the 1994 Complex Systems Engineering Synthesis and Assessment Technology Workshop (CSESAW ‘94), Silver Spring, MD
, 1994
"... Development time and cost of real-time applications can be significantly reduced by reusing software from previous applications. With today’s systems, however, even if some software is reused, a large amount of new code is still required to create the “glue ” which integrates modules created by prog ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
Development time and cost of real-time applications can be significantly reduced by reusing software from previous applications. With today’s systems, however, even if some software is reused, a large amount of new code is still required to create the “glue ” which integrates modules created by programmers at different sites. A new software engineering paradigm, called “software assembly, ” is the process of developing an application simply by combining software modules from distributed libraries, without the need to write nor automatically generate any glue code. In this paper, the underlying framework to support software assembly of real-time applications is presented. The primary contribution is the notion of port-based objects, which combine object-based design with the port-automaton theory, in order to model and develop reconfigurable software modules. The integration of these modules in a distributed shared memory environment is possible through the use of a global state variable communication mechanism. Support for the framework has been implemented as part of the Chimera Real-Time Operating System. We have also designed a hypermedia user interface called Onika which allows real-time applications to be assembled graphically. 1
Generating Wrappers for Command Line Programs: The Cal-Aggie Wrap-O-Matic Project
- In Proceedings of the 23rd International Conference on Software Engineering
, 2001
"... Software developers writing new software have strong incentives to make their products compliant to standards such as corba, com, and JavaBeans. Standards-compliance facilitates inter-operability, component-based software assembly, and software reuse, thus leading to improved quality and productivit ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Software developers writing new software have strong incentives to make their products compliant to standards such as corba, com, and JavaBeans. Standards-compliance facilitates inter-operability, component-based software assembly, and software reuse, thus leading to improved quality and productivity. Legacy software, on the other hand, is usually monolithic, and hard to maintain and adapt. Many organizations, saddled with entrenched legacy software, are confronted with the need to integrate legacy assets into more modern, distributed, componentized systems that provide critical business services. Thus wrapping legacy systems for inter-operability has been an area of considerable interest. Wrappers are usually constructed by hand, which can be costly and error-prone. In this paper, we specifically target command-line oriented legacy systems, and describe a tool framework that automates away some of the drudgery of constructing wrappers for these systems. We describe the Cal-Aggie Wrap-O-...

