Package Evolvability and its Relationship with Refactoring
نویسندگان
چکیده
In this paper, we address a set of research questions investigating trends in changes to an open-source system (OSS). An interesting ‘peak and trough’ effect trend was found to exist in the system studied, suggesting that developer activity comprises of a set of high and low periods. Trends in overall changes applied to the system were complemented with empirical evidence in refactoring data for the same system; this showed a similar peak and trough effect but at different versions of the same system. This result suggests a contrasting motivation between regular maintenance practice and that of refactoring. Our analysis of high-level package trends informed some interesting cross-comparisons with refactoring practice, and some insights into why refactoring might be applied after a burst of regular change activity, rather than consistently. We use data extracted from seven Java OSS as a basis for our refactoring analysis.
منابع مشابه
Two Experiments on Subjective Evaluation of Code Evolvability
Licentiate thesis submitted for official examination for the degree of Licentiate in Technology. Software evolvability – the ease of further developing software – is an important quality attribute greatly dictating the future potential of any software system. Recent trends such as agile software development and extreme programming have highlighted refactoring – modifying the internal structure ...
متن کاملSoftware systems as complex networks: structure, function, and evolvability of software collaboration graphs
Software systems emerge from mere keystrokes to form intricate functional networks connecting many collaborating modules, objects, classes, methods, and subroutines. Building on recent advances in the study of complex networks, I have examined software collaboration graphs contained within several open-source software systems, and have found them to reveal scale-free, small-world networks simil...
متن کاملUsing Refactoring Techniques to Exploit Variability in Conceptual Modeling
The term variability refers to the possibility of building different correct conceptual models for a given set of requirements in a given modeling language (for example, UML or the Entity Relationship model). We call each model a variant of the others. In previous work, we presented a framework identifying 3 different types of variability. These 3 types of differences have been shown to be pres...
متن کاملA Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw
Aspect oriented programming aims at achieving better modularization for a system’s crosscutting concerns in order to improve its key quality attributes, such as evolvability and reusability. Consequently, the adoption of aspect-oriented techniques in existing (legacy) software systems is of interest to remediate software aging. The refactoring of existing systems to employ aspectorientation wil...
متن کاملConstrained Java and its Application for Refactoring large Java programs
Constrained Java is a subset of Java which does not allow public classes to be used as static types in any piece of code that belongs to a set of packages, defined as the Constrained Java Package Space. Instead of classes, only interfaces are are used. The enforcement of this rule leads to a very clear distinction between the type hierarchie and the implementation hierarchy. We present methods ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- ECEASST
دوره 8 شماره
صفحات -
تاریخ انتشار 2007