In strongly typed Object-Oriented Programming languages, it is common to encounter type incompatibilities between separately developed software components one desires to compose. Using the Adapter pattern to overcome these type incompatibilities is only an option if changing the source code of the software components is feasible, as references from objects to other objects are oftentimes hard-coded. The concept of Dependency Injection (DI) is aimed at mitigating the issue of hard-coded references. However, current implementations of DI are intrusive in ways that component developers need to foresee future use cases. To increase the reusability of components we propose an approach and a tool to configure interoperations between components externally, without the need for intrusive code changes. This approach is based on a new dependency injection mechanism that is combined with the Adapter pattern. If necessary, the most appropriate adapter to inject is selected automatically, thereby making the specifications of dependency injection very flexible.
The dynamic behavior of programs generally cannot be fully observed via the source code, but dynamic tools, e.g. debuggers, have to be used. Comprehending dynamic behavior entails observing object interactions during runtime. The class structure is not always sufficient to understand these interactions since objects of the same type can be used in various places, just as objects of different types can be used in similar places. Our novel concept, instance pointcuts, groups objects based on the events they participate in, introducing a flexible way of creating object categories; a category contains objects that are used in the specified way. This paper proposes an application of instance pointcuts to the program comprehension domain. We illustrate the usefulness of our approach through three comprehension scenarios.
Schedulers decide when to execute what in a system. They often work in constrained environments, where these decisions have high impact on performance. Since schedulers should be designed according to a system's needs, it is imperative that scheduling requirements are well defined. Building a scheduler that satisfies these requirements is not a trivial task. In this position paper we present our initial work and ideas on a domain-specific framework for scheduling. We introduce our feature model of the problem space of scheduling and explain how it fits within a framework. Furthermore we present our ideas on how to make the scheduler framework modular by using an aspect oriented approach.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.