Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2820282.2820288acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Detection of software evolution phases based on development activities

Published: 16 May 2015 Publication History
  • Get Citation Alerts
  • Abstract

    Software evolution history is usually represented at fine granularity by commits in software repositories, and at coarse granularity by software releases. In order to gain insights on development activities and on software evolution, the information on releases is too general, whereas the information on commits is prohibitively large to be efficiently processed by a developer. This paper proposes an automatic technique for the identification of distinct phases of evolution. Such software evolution phases are characterized by similar development activities in terms of changes to entities. Therefore, our technique decomposes software evolution history to assist developers identify periods of different development activities. Our analysis technique is a search-based optimization of the best decomposition of commits from the software repository using heuristics such as classes changed in each commit, and the magnitude/importance of these changes. To validate our technique, we applied it on the evolution history of five case studies covering multiple releases over several years of development. An interesting outcome of the evaluation is that our automatic decomposition of software evolution history recovered the original decomposition in software releases.

    References

    [1]
    K. Bennett, "Software evolution: Past, present and future," Information and Softw. Tech., vol. 38, no. 11, pp. 673--680, 1996.
    [2]
    C. F. Kemerer and S. Slaughter, "An empirical approach to studying software evolution," IEEE Trans. Softw. Eng., vol. 25, no. 4, pp. 493--509, 1999.
    [3]
    J. Kothari, T. Denton, A. Shokoufandeh, S. Mancoridis, and A. Hassan, "Studying the evolution of software systems using change clusters," in Intl. Conf. Prog. Comp., ser. ICPC. IEEE, 2006, pp. 46--55.
    [4]
    A. Hindle, M. Godfrey, and R. Holt, "Release pattern discovery via partitioning: Methodology and case study," in Intl. Workshop Mining Software Repositories, ser. MSR-ICSE, 2007, pp. 19--26.
    [5]
    L. Moreno, G. Bavota, M. Di Penta, R. Oliveto, A. Marcus, and G. Canfora, "Automatic generation of release notes," in Intl. Symp. Found. Softw. Eng., ser. FSE. ACM, 2014, pp. 484--495.
    [6]
    Z. Xing and E. Stroulia, "Understanding phases and styles of object-oriented systems' evolution," in Intl. Conf. Softw. Maint. IEEE, 2004, pp. 242--251.
    [7]
    E. Barry, C. Kemerer, and S. Slaughter, "On the uniformity of software evolution patterns," in Intl Conf. Softw. Eng., 2003, pp. 106--113.
    [8]
    A. Hindle, D. M. German, M. W. Godfrey, and R. C. Holt, "Automatic classification of large changes into maintenance categories," in Int. Conf. Prog. Comp., 2009.
    [9]
    B. Fluri, M. Würsch, M. Pinzger, and H. Gall, "Change distilling: Tree differencing for fine-grained source code change extraction," IEEE Trans. Softw. Eng., vol. 33, no. 11, pp. 725--743, 2007.
    [10]
    B. Fluri and H. Gall, "Classifying change types for qualifying change couplings," in Intl Conf. Prog. Comp. IEEE, 2006, pp. 35--45.
    [11]
    K. H. Bennett and V. T. Rajlich, "Software maintenance and evolution: A roadmap," in Conf. Future Softw. Eng. ACM, 2000, pp. 73--87.
    [12]
    A. Hindle, D. M. German, and R. Holt, "What do large commits tell us?: A taxonomical study of large commits," in Intl. Conf. Mining Softw. Repositories, ser. MSR. ACM, 2008, pp. 99--108.
    [13]
    M. Biazzini, M. Monperrus, and B. Baudry, "On analyzing the topology of commit histories in decentralized version control systems," in Intl. Conf. Softw. Maint. Evol. IEEE, 2014, pp. 261--270.
    [14]
    K. Yamauchi, J. Yang, K. Hotta, Y. Higo, and S. Kusumoto, "Clustering commits for understanding the intents of implementation," in Intl. Conf. Soft. Maint. Evol. IEEE, 2014, pp. 406--410.
    [15]
    H. Kirinuki, Y. Higo, K. Hotta, and S. Kusumoto, "Hey! are you committing tangled changes?" in Intl. Conf. Prog. Comp., ser. ICPC. ACM, 2014, pp. 262--265.
    [16]
    N. Kusunoki, K. Hotta, Y. Higo, and S. Kusumoto, "How much do code repositories include peripheral modifications?" in Asia-Pacific Conf. Softw. Eng., 2013, pp. 19--24.
    [17]
    L. Hattori and M. Lanza, "On the nature of commits," in Intl. Conf. on Autom. Softw. Eng., ser. ASE. IEEE/ACM, 2008, pp. 63--71.
    [18]
    N. Dragan, M. L. Collard, M. Hammad, and J. I. Maletic, "Using stereotypes to help characterize commits," in Intl. Conf. Softw. Maint. IEEE, 2011, pp. 520--523.
    [19]
    S. Kim, E. J. W. Jr., and Y. Zhang, "Classifying software changes: Clean or buggy?" IEEE Trans. Softw. Eng., vol. 34, no. 2, pp. 181--196, 2008.
    [20]
    J. F. Shobe, M. Y. Karim, M. B. Zanjani, and H. Kagdi, "On mapping releases to commits in open source systems," in Intl. Conf. Prog. Comp., ser. ICPC. ACM, 2014, pp. 68--71.
    [21]
    T. Zimmermann, A. Zeller, P. Weissgerber, and S. Diehl, "Mining version histories to guide software changes," IEEE Trans. Softw. Eng., vol. 31, no. 6, pp. 429--445, 2005.
    [22]
    G. Canfora, M. Ceccarelli, L. Cerulo, and M. D. Penta, "Using multivariate time series and association rules to detect logical change coupling: An empirical study," in Intl. Conf. Softw. Maint. IEEE, 2010, pp. 1--10.
    [23]
    S. W. Thomas, B. Adams, A. E. Hassan, and D. Blostein, "Studying software evolution using topic models," Sci. Comput. Program., vol. 80, pp. 457--479, 2014.
    [24]
    O. Benomar, H. Sahraoui, and P. Poulin, "A unified framework for the comprehension of software's time dimension," in Intl. Conf. Softw. Eng., (to appear) 2015.
    [25]
    O. Benomar, H. Sahraoui, and P. Poulin, "Detecting program execution phases using heuristic search," in Symp. Search-based Softw. Eng., ser. LNCS, 2014, pp. 16--30.
    [26]
    ArgoUML: a UML modeling tool. http://argouml.tigris.org/.
    [27]
    JFreeChart: a Java chart library. http://www.jfree.org/jfreechart/.
    [28]
    ICEfaces: a Rich Internet Application development framework. http://www.icesoft.org/java/projects/icefaces/.

    Cited By

    View all
    • (2018)Towards the automated recovery of complex temporal API-usage patternsProceedings of the Genetic and Evolutionary Computation Conference10.1145/3205455.3205622(1435-1442)Online publication date: 2-Jul-2018
    • (2015)Tracking the software quality of Android applications along their evolutionProceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2015.46(236-247)Online publication date: 9-Nov-2015

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICPC '15: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension
    May 2015
    325 pages

    Sponsors

    Publisher

    IEEE Press

    Publication History

    Published: 16 May 2015

    Check for updates

    Qualifiers

    • Research-article

    Conference

    ICSE '15
    Sponsor:

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)Towards the automated recovery of complex temporal API-usage patternsProceedings of the Genetic and Evolutionary Computation Conference10.1145/3205455.3205622(1435-1442)Online publication date: 2-Jul-2018
    • (2015)Tracking the software quality of Android applications along their evolutionProceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2015.46(236-247)Online publication date: 9-Nov-2015

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media