Orwell—a configuration management system for team programming
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Mastering ENVY/Developer
Smalltalk-80: The Language
``Good Enough'' Analysis for Refactoring
ECOOP '98 Workshop ion on Object-Oriented Technology
Practical analysis for refactoring
Practical analysis for refactoring
CVS Release History Data for Detecting Logical Couplings
IWPSE '03 Proceedings of the 6th International Workshop on Principles of Software Evolution
Mining Version Histories to Guide Software Changes
Proceedings of the 26th International Conference on Software Engineering
Proceedings of the 26th International Conference on Software Engineering
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
The story of moose: an agile reengineering environment
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
DynaMine: finding common error patterns by mining software revision histories
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Classboxes: controlling visibility of class extensions
Computer Languages, Systems and Structures
Evolving a reflective language: lessons learned from implementing traits
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Using information fragments to answer the questions developers ask
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Version Control With Subversion for Subversion 1.6: The Official Guide And Reference Manual
Version Control With Subversion for Subversion 1.6: The Official Guide And Reference Manual
Visually Supporting Source Code Changes Integration: The Torch Dashboard
WCRE '10 Proceedings of the 2010 17th Working Conference on Reverse Engineering
Hi-index | 0.00 |
Source code management systems record different versions of code. Tool support can then compute deltas between versions. To ease version history analysis we need adequate models to represent source code entities. Now naturally the questions of their definition, the abstractions they use, and the APIs of such models are raised, especially in the context of a reflective system which already offers a model of its own structure. We believe that this problem is due to the lack of a powerful code meta-model as well as an infrastructure. In Smalltalk, often several source code meta-models coexist: the Smalltalk reflective API coexists with the one of the Refactoring engine or distributed versioning system such as Monticello or Store. While having specific meta-models is an adequate engineered solution, it multiplies meta-models and it requires more maintenance efforts (e.g., duplication of tests, transformation between models), and more importantly hinders navigation tool reuse when meta-models do not offer polymorphic APIs. As a first step to provide an infrastructure to support history analysis, this article presents Ring, a unifying source code meta-model that can be used to support several activities and proposes a unified and layered approach to be the foundation for building an infrastructure for version and stream of change analyses. We re-implemented three tools based on Ring to show that it can be used as the underlying meta-model for remote and off-image browsing, scoping refactoring, and visualizing and analyzing changes. As a future work and based on Ring we will build a new generation of history analysis tools.