Empirical research is playing a significant role in software engineering (SE), and it has been applied to evaluate software artifacts and technologies. There have been a great number of empirical research articles p...Empirical research is playing a significant role in software engineering (SE), and it has been applied to evaluate software artifacts and technologies. There have been a great number of empirical research articles published recently. There is also a large research community in empirical software engineering (ESE). In this paper, we identify both the overall landscape and detailed implementations of ESE, and investigate frequently applied empirical methods, targeted research purposes, used data sources, and applied data processing approaches and tools in ESE. The aim is to identify new trends and obtain interesting observations of empirical software engineering across different sub-fields of software engineering. We conduct a mapping study on 538 selected articles from January 2013 to November 2017, with four research questions. We observe that the trend of applying empirical methods in software engineering is continuously increasing and the most commonly applied methods are experiment, case study and survey. Moreover, open source projects are the most frequently used data sources. We also observe that most of researchers have paid attention to the validity and the possibility to replicate their studies. These observations are carefully analyzed and presented as carefully designed diagrams. We also reveal shortcomings and demanded knowledge/strategies in ESE and propose recommendations for researchers.展开更多
Community smells are sub-optimal developer community structures that hinder productivity.Prior studies performed smell prediction and provided refactoring guidelines from a top-down aspect to help community shepherds....Community smells are sub-optimal developer community structures that hinder productivity.Prior studies performed smell prediction and provided refactoring guidelines from a top-down aspect to help community shepherds.Simultaneously,refactoring smells also requires bottom-up effort from every developer.However,supportive measures and guidelines for them are not available at a fine-grained level.Since recent work revealed developers'personalities and working states could influence community smells'emergence and variation,we build prediction models with experience,sentiment,and development process features of developers considering three smells including Organizational Silo,Lone Wolf,and Bottleneck,as well as two related classes including smelly developer and smelly quitter.We predict the five classes in the individual granularity,and we also generate forecasts for the number of smelly developers in the community granularity.The proposed models achieve F-measures ranging from 0.73 to 0.92 in individual-wide within-project,time-wise,and cross-project prediction,and mean R2 performance of 0.68 in community-wide Smelly Developer prediction.We also exploit SHAP(SHapley Additive exPlanations)to assess feature importance to explain our predictors.In conclusion,we suggest developers with heavy workload should foster more frequent communication in a straightforward and polite way to build healthier communities,and we recommend community shepherds to use the forecasting model for refactoring planning.展开更多
基金This work was supported by the National Natural Science Foundation of China under Grant Nos. 61672078 and 61732019, and the National Key Research and Development Program of China under Grant No. 2018YFB1004202.
文摘Empirical research is playing a significant role in software engineering (SE), and it has been applied to evaluate software artifacts and technologies. There have been a great number of empirical research articles published recently. There is also a large research community in empirical software engineering (ESE). In this paper, we identify both the overall landscape and detailed implementations of ESE, and investigate frequently applied empirical methods, targeted research purposes, used data sources, and applied data processing approaches and tools in ESE. The aim is to identify new trends and obtain interesting observations of empirical software engineering across different sub-fields of software engineering. We conduct a mapping study on 538 selected articles from January 2013 to November 2017, with four research questions. We observe that the trend of applying empirical methods in software engineering is continuously increasing and the most commonly applied methods are experiment, case study and survey. Moreover, open source projects are the most frequently used data sources. We also observe that most of researchers have paid attention to the validity and the possibility to replicate their studies. These observations are carefully analyzed and presented as carefully designed diagrams. We also reveal shortcomings and demanded knowledge/strategies in ESE and propose recommendations for researchers.
基金supported by the National Natural Science Foundation of China under Grant No.61772200the Natural Science Foundation of Shanghai under Grant No.21ZR1416300.
文摘Community smells are sub-optimal developer community structures that hinder productivity.Prior studies performed smell prediction and provided refactoring guidelines from a top-down aspect to help community shepherds.Simultaneously,refactoring smells also requires bottom-up effort from every developer.However,supportive measures and guidelines for them are not available at a fine-grained level.Since recent work revealed developers'personalities and working states could influence community smells'emergence and variation,we build prediction models with experience,sentiment,and development process features of developers considering three smells including Organizational Silo,Lone Wolf,and Bottleneck,as well as two related classes including smelly developer and smelly quitter.We predict the five classes in the individual granularity,and we also generate forecasts for the number of smelly developers in the community granularity.The proposed models achieve F-measures ranging from 0.73 to 0.92 in individual-wide within-project,time-wise,and cross-project prediction,and mean R2 performance of 0.68 in community-wide Smelly Developer prediction.We also exploit SHAP(SHapley Additive exPlanations)to assess feature importance to explain our predictors.In conclusion,we suggest developers with heavy workload should foster more frequent communication in a straightforward and polite way to build healthier communities,and we recommend community shepherds to use the forecasting model for refactoring planning.