71 resultados para ORIENTED RECRYSTALLIZATION
Resumo:
Back-in-time debuggers are extremely useful tools for identifying the causes of bugs, as they allow us to inspect the past states of objects no longer present in the current execution stack. Unfortunately the "omniscient" approaches that try to remember all previous states are impractical because they either consume too much space or they are far too slow. Several approaches rely on heuristics to limit these penalties, but they ultimately end up throwing out too much relevant information. In this paper we propose a practical approach to back-in-time debugging that attempts to keep track of only the relevant past data. In contrast to other approaches, we keep object history information together with the regular objects in the application memory. Although seemingly counter-intuitive, this approach has the effect that past data that is not reachable from current application objects (and hence, no longer relevant) is automatically garbage collected. In this paper we describe the technical details of our approach, and we present benchmarks that demonstrate that memory consumption stays within practical bounds. Furthermore since our approach works at the virtual machine level, the performance penalty is significantly better than with other approaches.
Resumo:
Context-dependent behavior is becoming increasingly important for a wide range of application domains, from pervasive computing to common business applications. Unfortunately, mainstream programming languages do not provide mechanisms that enable software entities to adapt their behavior dynamically to the current execution context. This leads developers to adopt convoluted designs to achieve the necessary runtime flexibility. We propose a new programming technique called Context-oriented Programming (COP) which addresses this problem. COP treats context explicitly, and provides mechanisms to dynamically adapt behavior in reaction to changes in context, even after system deployment at runtime. In this paper we lay the foundations of COP, show how dynamic layer activation enables multi-dimensional dispatch, illustrate the application of COP by examples in several language extensions, and demonstrate that COP is largely independent of other commitments to programming style.
Resumo:
Mainstream IDEs generally rely on the static structure of a software project to support browsing and navigation. We propose HeatMaps, a simple but highly configurable technique to enrich the way an IDE displays the static structure of a software system with additional kinds of information. A heatmap highlights software artifacts according to various metric values, such as bright red or pale blue, to indicate their potential degree of interest. We present a prototype system that implements heatmaps, and we describe an initial study that assesses the degree to which different heatmaps effectively guide developers in navigating software.
Resumo:
The rapid growth of object-oriented development over the past twenty years has given rise to many object-oriented systems that are large, complex and hard to maintain. Object-Oriented Reengineering Patterns addresses the problem of understanding and reengineering such object-oriented legacy systems. This book collects and distills successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign. The material in this book is presented as a set of "reengineering patterns" --- recurring solutions that experts apply while reengineering and maintaining object-oriented systems. The principles and techniques described in this book have been observed and validated in a number of industrial projects, and reflect best practice in object-oriented reengineering.
Resumo:
This paper investigates the controversial question whether it is more effective to promote specialisation in a specific sport at the beginning of a career or whether to encourage a broad range of sports when promoting competitive sports talents in order for them to achieve a high level of performance in adulthood. The issue of promoting talents depends on human developmental processes and therefore raises developmental scientific questions. Based on recent, dynamic-interactionist concepts of development, we assume a person-oriented approach focussing on the person as a whole rather than individual features. Theoretical considerations lead to four interacting factors being summarised to form a subsystem: childhood training. The relative weights of these factors lead to patterns. By relating these to a performance criterion at the age of peak performance, particularly promising developmental patterns may be identified. One hundred fifty-nine former Swiss football talents were retrospectively interviewed about their career and the data analysed using the LICUR method. Two early career patterns were identified as having a favourable influence on adult performance. Both are characterised by an above-average amount of in-club training. One pattern also exhibits an above-average amount of informal football played outside the club, the other above-average scores for activity in other sports. Hence, comprehensive training and practice inside and outside the club form the basis for subsequent football expertise.