the extent of coupling in an object-oriented system has implications for its quality in terms of software maintenance. In turn, the extent of reuse in a software system also has implications for the maintainability of...
详细信息
ISBN:
(纸本)076952107X
the extent of coupling in an object-oriented system has implications for its quality in terms of software maintenance. In turn, the extent of reuse in a software system also has implications for the maintainability of that system. One important feature of reflective systems is their dynamic behaviour. In such systems, objects exchange coupling interactions to a larger degree than corresponding static systems providing the same functionality. In this paper, we look at object coupling as it evolves during program execution and propose a measure which takes object interactions into account. the measure can be used to compare systems built on meta-level architectures with systems having no reflective features Yet, at the same time, exhibiting the same interface.
Software inevitably changes. As a consequence, we observe the phenomenon referred to as "Software Entropy" or "Software Decay": the software design continually degrades making maintenance and funct...
详细信息
ISBN:
(纸本)076952107X
Software inevitably changes. As a consequence, we observe the phenomenon referred to as "Software Entropy" or "Software Decay": the software design continually degrades making maintenance and functional extensions overly costly if not impossible. there exist a number of approaches to identify design Haws (problem detection) and to remedy them (refactoring). there is, however, a conceptual gap between these two stages: there is no appropriate support for the automated mapping of design flaws to possible solutions. In this paper we propose an integrated, quality-driven and tool-supported methodology to support object-oriented software evolution. Our approach is based on the novel concept of "correction strategies". Correction strategies serve as reference descriptions that enable a human-assisted tool to plan and perform all necessary steps for the safe removal of detected design flaws, with special concern towards the targeted quality goals of the restructuring process. We briefly sketch our tool chain and illustrate our approach withthe help of a medium-sized real-world case-study.
Language integration is an important issue in the area of software maintenance and reengineering. We describe a novel solution in this area: automatically, applied and composed split objects. Split objects provide a l...
详细信息
ISBN:
(纸本)076952107X
Language integration is an important issue in the area of software maintenance and reengineering. We describe a novel solution in this area: automatically, applied and composed split objects. Split objects provide a language integration that goes beyond simple wrappers by integrating object identity, state, methods, and class hierarchies of entities in two languages to one logical entity. the split object concept can be applied as an aspect-oriented solution, in which an aspect of a system is implemented in another language. After describing these concepts and two split object frameworks that we have implemented, we discuss how split objects can be applied for other maintenance and reengineering tasks than language integration. these application fields include software component testing, dynamic feature analysis, and variation and configuration management.
Understanding the run-time behavior of object-oriented legacy systems is a complex task due to factors such as late binding and polymorphism. Current approaches extract and use information from the complete execution ...
详细信息
ISBN:
(纸本)076952107X
Understanding the run-time behavior of object-oriented legacy systems is a complex task due to factors such as late binding and polymorphism. Current approaches extract and use information from the complete execution trace of a system. the sheer size and complexity of such traces make their handling, storage, and analysis difficult. Current software systems which run almost non-stop do not permit such a full analysis. In this paper we present a lightweight approach based on the extraction of a condensed amount of information, e.g., measurements, that does not require a full trace. Using this condensed information, we propose a visualization approach which allows us to identify and understand certain aspects of the objects' lifetime such as their role played in the creation of other objects and the communication architecture they support.
As systems evolve and their structure decays, maintainers need accurate and automatic identification of the design problems. Current approaches for automatic detection of design problems are not accurate enough becaus...
详细信息
ISBN:
(纸本)076952107X
As systems evolve and their structure decays, maintainers need accurate and automatic identification of the design problems. Current approaches for automatic detection of design problems are not accurate enough because they analyze only a single version of a system and consequently they miss essential information as design problems appear and evolve over time. Our approach is to use the historical information of the suspected flawed structure to increase the accuracy of the automatic problem detection. Our means is to define measurements which summarize how persistent the problem was and how much maintenance effort was spent on the suspected structure. We apply our approach on a large scale case study and show how it improves the accuracy of the detection of God Classes and Data Classes, and additionally how it adds valuable semantical information about the evolution of flawed design structures.
InterProlog is the first Prolog-Java interface to support multiple Prolog systems through the same API;currently XSB and SWI Prolog, with GNU Prolog and YAP under development - on Windows, Linux and Mac OS X. It promo...
详细信息
ISBN:
(数字)9783540302278
ISBN:
(纸本)3540232427
InterProlog is the first Prolog-Java interface to support multiple Prolog systems through the same API;currently XSB and SWI Prolog, with GNU Prolog and YAP under development - on Windows, Linux and Mac OS X. It promotes coarse-grained integration between logic and object-oriented layers, by providing the ability to bidirectionally map any class data structure to a Prolog term;integration is done either through the Java Native Interface or TCP/IP sockets. It is proposed as a first step towards a common standard Java + Prolog API, gifting the Java developer withthe best inference engines, and the logic programmer with simple access to the mainstream object-oriented platform.
We present DERMI, a decentralized wide-area event-based object middleware built on top of a peer-to-peer substrate. Its main building block is the underlying publish/subscribe event notification system provided by the...
详细信息
We present DERMI, a decentralized wide-area event-based object middleware built on top of a peer-to-peer substrate. Its main building block is the underlying publish/subscribe event notification system provided by the peer-to-peer layer. By using this methodology, innovative benefits like distributed interception, high performance synchronous/asynchronous one-to-one/one-to-many notifications and decentralized object location services are provided. Moreover, new programming abstractions (anycall and manycall) are introduced, which allow the programmer to make calls to groups of objects without taking care of which of them responds until a determinate condition is met. We believe that such middleware is a solid building block for future wide-area distributed component infrastructures.
the Unified Modeling Language (UML) provides sequence diagrams to specify inter-object communication in terms of scenarios. the intra-object behavior is modelled by statechart diagrams. Our tool Vooduu performs an aut...
详细信息
ISBN:
(纸本)354021299X
the Unified Modeling Language (UML) provides sequence diagrams to specify inter-object communication in terms of scenarios. the intra-object behavior is modelled by statechart diagrams. Our tool Vooduu performs an automated consistency check on both views, i.e., it verifies automatically whether a family of UML statecharts modelling a system satisfies a set of communication and timing constraints given as UML sequence diagrams. the front-end of the tool is implemented as a plug-in for a commercial UML tool. For verifying, statecharts and sequence diagrams are translated to the formalism of timed automata. the tool generates temporal logic queries, which depend on an interpretation status for each sequence diagram. the verification is performed by the model checker UPPAAL. the results are retranslated into sequence diagrams. thus the formal verification machinery is mainly hidden from the user. the tool was applied to a model of the control software of a robot prototype.
We contribute to addressing context of Java and the type-based publish/subscribe (TPS) abstraction, an object-oriented variant of the publish/subscribe paradigm. We present an experience that compares implementations ...
详细信息
We contribute to addressing context of Java and the type-based publish/subscribe (TPS) abstraction, an object-oriented variant of the publish/subscribe paradigm. We present an experience that compares implementations of TPS in (1) a variant of Java we designed to inherently support TPS, (2) standard Java, and (3) Java augmented with genericity. We derive from our implementation experience general observations on what features a programming language should support in order to enable a satisfactory library implementation of TPS, and finally, also alternative abstractions. In particular, we (re-) insist here on the importance of providing genericity and reflective features in the language, and point out the very fact that current efforts towards providing such features are still insufficient.
Portable and embedded devices form an increasingly large group of computers, often referred to as ambient intelligence (AmI). this new variety in computing platforms cause a corresponding diversity in software/hardwar...
详细信息
Portable and embedded devices form an increasingly large group of computers, often referred to as ambient intelligence (AmI). this new variety in computing platforms cause a corresponding diversity in software/hardware platforms and other context factors. Component-based middleware platforms offer a uniform environment for software, but they do not take away specific context differences, such as hardware resources, user identity/role and logical/physical location. Specialised component versions and/or configurations have to be made for each computing context if that computing context is to be used to its full extent. this is because the fine differences between component versions cannot be separated into finer components withthe current component models. Aspect-orientedprogramming and generative programming technologies can be used to provide the fine-grained modularity that is necessary. In addition, the diversity of component-based platforms themselves form an extra reason for different component versions. We propose using a context-driven framework for the development of AmI components, which is based upon a gradual refinement mechanism. this refinement mechanism can cope withthe course-grained differences between component models as well as the fine-grained differences between computing configurations.
暂无评论