검색 상세

Understanding Developer Types in Software Development

소프트웨어 개발에서 개발자 타입 이해

초록/요약

Developer characteristics are the distinctive coding styles of developers that can be indirectly reflected in the software development history. Developer characteristics can be used for various studies. For instance, it can be utilized for identifying developer roles in the project, detecting source code authorship and predicting defects in the software. Despite the developer factors demonstrate its usefulness and significance, however, it is challenging to extract developer factors if the individual developer data is insufficient. To address this issue, we found that the possibility of creating a developer type by grouping developers with similar characteristics. In this paper, we conduct a large-scale systematic study to understand the developer types. We extracted 3,242 developer instances in 25 projects and apply an Hierarchical Agglomerative Clustering algorithm to the experimen- tal data. We observed that 10 developer types in 25 open source projects and confirmed that the developer type can represent the actual developer activity by tracking the commit history and Github information of developers.

more

초록/요약

개발자 특성은 소프트웨어 개발 과정에서 관찰되는 개발자의 독특한 코딩 스타일로, 소스 코드 작성자를 찾거나 개발자 별 결함 예측 모델을 생성 등 다양한 소프트웨어 공학 분야에서 활용되어왔다. 그러나 이전 연구에서 개발자 정보의 유용성과 중요성을 보여주고 있음에도 불구하고 개별 개발자 데이터가 부족한 경우 개발자 요인을 활용한 연구를 진행하기 어렵다는 단점이 있다. 우리는 이 문제를 해결하기 위해 소스코드에서 추출한 개발자 특성을 기반으로, 유사한 특성을 가진 개발자들을 그룹화하여 일반적인 개발자 유형을 만들 가능성을 관찰하였다. 본 논문에서는 개발자 유형을 입증하고 이해하기 위해 대규모의 체계적인 연구를 수행했다. 우리는 25개 프로젝트에서 3,242개의 개발자 인스턴스를 추출하고 실험 데이터에 계층적 클러스터링 알고리듬을 적용했다. 결과적으로, 우리는 10개의 개발자 유형을 생성 및 분석하였고, 각 유형에 속하는 개발자의 커밋 이력과 깃허브 정보를 추적하여 개발자 유형이 실제 개발자 활동을 반영하는 것을 확인했다.

more

목차

I. Introduction 1
II. Background 4
1. Developer Metrics 4
1.1 Meta Data Metrics 4
1.2 JIT Developer Metrics 4
1.3 Developer Scattering Metrics 5
2. Clustering Algorithms 5
2.1 HDBSCAN Algorithm 5
2.2 K-means Clustering Algorithm 6
2.3 Spectral Clustering Algorithm 6
2.4 Hierarchical Clustering Algorithm 6
3. Internal Cluster Validation 7
3.1 Davies Index 7
3.2 Silhouette Index 7
3.3 S_DBW Index 7
III. Experimental Design 9
1. Data Set 9
2. Pre-processing 9
3. Research Questions 11
IV. Results 15
1. RQ1.Can we find the the developer types using clustering algorithm? 15
2. RQ2. Do developers shows the same characteristics as observed developer types? 20
V. Discussion 23
1. Outliers Detection 23
2. Improved Metrics 23
3. Future Works 24
VI. Threats to Validity 25
1. External validity 25
2. Internal validity 25
3. Construct validity 25
VII. Related Work 26
VIII. Conclusion 27
IX. References 28

more