An explanatory analysis on eclipse beta-release bugs through in-process metrics
Proceedings of the 8th international workshop on Software quality
Controversy Corner: Preserving knowledge in software projects
Journal of Systems and Software
Temporal analysis of API usage concepts
Proceedings of the 34th International Conference on Software Engineering
Hi-index | 0.01 |
Much of modern software development consists of building on older changes. Older periods provide the structure (e.g., functions and data types) on which changes in future periods will build. Given a particular period in the lifetime of a project, one can determine prior periods on which it builds, and future periods which build on it. Using this knowledge, managers can identify foundational periods in the lifetime of a project, which provide the structural foundation for a large number of future periods. A good understanding and detailed documentation of events and decisions in such foundational periods is essential for the smooth evolution of a project.This paper examines how changes build on older changes by measuring the time dependence between code changes. Using our approach, we can create time dependence relations between periods and study the characteristics of such dependence relations. We apply our approach on two large open source projects, PostgreSQL and FreeBSD. We find that foundational periods are periods with huge restructurings, important new features or large imports of external source code. We also find that a project, as it ages, either progressively depends on older periods or cycles between depending on old and new periods.