19 KiB
19 KiB
file:: icse2023-paper223_1667256095764_0.pdf file-path:: ../assets/icse2023-paper223_1667256095764_0.pdf
- technical debt prediction, software remodularization. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 6360511f-7cce-4dbc-879b-097f16c65cf8
- engage multiple cluster validity indices applied to multiple clustering methods and carry out consensus clusterin ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 63605139-2500-4cbc-af84-cbd2cbd915b7
- We revealed seven clusters of software repositories and relate them to developers’ activity. ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 6360515e-cd88-43f3-b719-5a0679a60096
- facilitating the decision making process ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 63605386-b60d-4007-b1ac-3523bfb830e2
- retrospective analysis can affect the decision-making process in a project, and improve the quality of the software system being developed. ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 63605399-e62c-4875-b7ca-d464ad153b98
- classify software repositories as “engineered” or “not engineered” ls-type:: annotation hl-page:: 1 hl-color:: green id:: 636053a2-f8ef-4fc7-b214-e4ff43c2c630
- For this reason, many studies use unsupervised learning techniques such as clustering to determine the similarity between software repositories and to provide ground for repository analysis. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 636053c0-72e4-4d91-bc23-ed946f6c8dde
- growth patterns of GitHub repositories’ number of stars ls-type:: annotation hl-page:: 1 hl-color:: green id:: 636053e0-4277-46f7-a522-8b875b33f798
- how people star the repositories and what this starring is attributed to. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 636053e6-afd3-4606-8588-6de64909e7cb
- a suite of different clustering methods providing different partitions of data and aggregate their results into a single consolidated clustering ls-type:: annotation hl-page:: 1 hl-color:: green id:: 63605402-2ccb-4547-9c0b-2866584fe167
- there is no prior study applying the consensus clustering approach to analyze software repositories. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 6360541a-4261-4830-98b0-cbfcf6990c1b
- consensus clustering ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 63605423-2ba3-4cde-bc94-ec725d176c43
- consensus result ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 63605438-b250-48d4-bbe9-d3726e9cf59d
- consensus clustering ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 63605441-64bb-48ea-ac04-88566f521aeb
- it is possible to qualify a software repository by using its quantitative metrics. ls-type:: annotation hl-page:: 1 hl-color:: purple id:: 63605450-8e08-400c-80e4-03dda2e2e510
- studying the software ecosystems and identifying important indicators about development activity in software projects. ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 636058b1-25bd-476a-9d34-212e3821013c
- epositories are always attributed to one of the developers’ activity clusters; ls-type:: annotation hl-page:: 2 hl-color:: green id:: 636058c9-6d94-4f29-90e8-2ad90f1621b0
- proposed methodology to cluster software repositories ls-type:: annotation hl-page:: 2 hl-color:: green id:: 63605912-ee07-4478-b34d-ec98886f3d1e
- analyze the results and then details significant parts of the methodolog ls-type:: annotation hl-page:: 2 hl-color:: green id:: 63605919-b2b4-459d-9b21-1d354cbcc75b
- clustering used in related works corresponds to the proposed manual classifications and whether it addresses the shortcomings of manual approache ls-type:: annotation hl-page:: 2 hl-color:: green id:: 6360594c-3a9b-4af4-b3bb-dd328e7d7d6b
- organization ls-type:: annotation hl-page:: 2 hl-color:: green id:: 63605978-fc33-4b2f-acd2-0ecdd4e76f0b
- utility ls-type:: annotation hl-page:: 2 hl-color:: green id:: 6360597a-6eee-469b-8c29-b77771f8af98
- ound software engineering practice ls-type:: annotation hl-page:: 2 hl-color:: yellow id:: 63605987-114a-4e0a-aeb8-9451aceb70d2
- the limitation of the domain-based classification is that several domains can be grouped together into one or divided into a number of smaller domains, ls-type:: annotation hl-page:: 2 hl-color:: green id:: 636059d7-5335-4b66-80a6-20d2aa78cbce
- such grouping is subjective and it is hard to precisely determine the number of separate domains in advance ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 63605a02-dbe9-495e-823c-01346f7410b8
- Commit-related event ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 63605a3c-96e2-402c-bd7c-f0a80cfd81d5
- Issue-related event ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 63605a3f-9b35-4c02-8592-1bfd08cbbf84
- Pull request-related even ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 63605a47-46c5-41c7-8e8f-2e8ccdba8bc5
- days between open and close ls-type:: annotation hl-page:: 2 hl-color:: yellow id:: 63605a6c-25f4-44f0-968f-cbe888236d04
- help prevent potential problems early on, encourage discussion where it is needed, and give important pointers to events in a project’s history to be reviewe ls-type:: annotation hl-page:: 2 hl-color:: green id:: 63605aa1-3201-480d-b1c9-b4242945a74b
- commit or source code activity ls-type:: annotation hl-page:: 2 hl-color:: green id:: 63605abd-6a04-4a3d-9345-fac50d4947d9
- , ls-type:: annotation hl-page:: 3 hl-color:: red id:: 63605ae8-b38c-4c80-8920-475d6fb44415
- developers “value simple and easily understandable metrics over complex one ls-type:: annotation hl-page:: 3 hl-color:: purple id:: 63605b69-bb28-4f08-981a-f6d37054bee0
- conduct ls-type:: annotation hl-page:: 3 hl-color:: purple id:: 63605bd3-c911-45f7-87f5-6faaa38c3a00
- identify useful metrics that indicate something unusual in the resulting clusters of repositories. ls-type:: annotation hl-page:: 3 hl-color:: green id:: 63605be3-ac81-445d-b044-e22f12fdbad6
- e did not identify a prior study that would analyse opensource software repositories from the perspective of developers’ community interest ls-type:: annotation hl-page:: 4 hl-color:: green id:: 63605c36-d037-4891-b730-770189b2b883
- with the intention of identifying high-quality GitHub repositories and removing noise ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 636131f4-57d8-456b-bf5d-2cb9b8276579
- bias towards industry giants and their repositories under the assumption that they use the “sound software engineering practices”. ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 63613217-bc91-47ac-be4c-0d490b54e018
- web libraries and framework ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 63613242-dafe-43b3-8b29-dca42f6ed3dd
- non-web libraries and frameworks ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 63613248-6b6b-4376-b792-fc0d8d0d3ac9
- software tools ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 6361324c-5f99-4bcb-a060-a5eed04473f8
- application domain is useful for understanding the clusters of GitHub repositories based on number of stars history over time ls-type:: annotation hl-page:: 2 hl-color:: yellow id:: 636132da-13ae-47ef-808a-0f664db660c8
- using number of stars evolution, these domains can be grouped into one, resulting into three-domain repository classification ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 636132fa-1c7d-42a5-81f4-41e0e62e4ecd
- alone are not sufficient to communicate all the information developers care about in a project, which means that additional data related to issues and pull-requests have to be collected and analyzed. ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 636133cf-b926-4815-8783-01026d0eda22
- e try to identify the metrics that would characterize software repositories qualitatively and signal about potential anomalie ls-type:: annotation hl-page:: 3 hl-color:: purple id:: 636133df-d256-405b-8700-fd45a3991aff
- though simple and easily understandable metrics might not be enough to uncover the underlying data patterns ls-type:: annotation hl-page:: 3 hl-color:: purple id:: 636138c2-e2b0-457e-9c23-c2cac8147967
- To address this, we conduct an automatic clustering of the repositories based on a set of GitHub metrics instead of relying on the simple “extreme outlier” definition of anomaly, and then try to identify useful metrics that indicate something unusual in the resulting clusters of repositories. ls-type:: annotation hl-page:: 3 hl-color:: yellow id:: 636138f9-0dfa-417c-be6c-2431211ee381
- classifications ls-type:: annotation hl-page:: 3 hl-color:: yellow id:: 63613b31-2d97-45ba-83d6-1832eb468f6e
- identifying similar projects to facilitate reuse and sharing knowledge among software projects ls-type:: annotation hl-page:: 3 hl-color:: purple id:: 63613b44-f788-4319-9ac9-fa5dbf8ba968
- groups of software projects with similar characteristic from the defect prediction point of view ls-type:: annotation hl-page:: 3 hl-color:: green id:: 63617dda-1e6f-4b64-95ab-def488e0214d
- to group the libraries that are most frequently co-used together by clients in order to relieve developers from manual analysi ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6361a152-a6fa-4925-aa5c-5aa8ff9c6d97
- This clustering has limited internal validity as authors used only one cluster validity index ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6361a200-ed7d-4159-9c04-a95cd844e029
- however we believe that this is an important aspect since the knowledge about this interest would help to better understand not only the state of the repository itself but also of the correspond software development project ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a236-c101-4aca-ab16-dd6c32dedd30
- In addition, the proposed studies have limitations in terms of validity of the clustering results since most of them use a single clustering technique. ls-type:: annotation hl-page:: 4 hl-color:: yellow id:: 6361a23a-7928-4740-9097-e9d888c6a30a
- multiple clustering techniques ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a25d-7733-463d-bae1-0a4469d51fba
- cluster validity indices ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a261-c7bb-470f-abef-17cfb4dbff06
- consensus clusterin ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a264-afd2-4600-beb1-e1c398aaf9f6
- methodology ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a310-b78a-4e31-bba3-bc85211b9ee9
- three step ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a312-64bd-4d06-a063-4ee9979d725f
- data collection and preparation ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a319-e9cc-40f0-83c3-67ab99ed6ff5
- n metrics from them and apply the following algorith ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a349-186b-4b0e-89bb-75d97f364683
- We normalize each metric to the [0,1] range ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a34d-d5bd-4244-b0fe-48738050a809
- We group repositories into c clusters based on the n metrics using m clustering algorithms with different values of parameters that we tune. ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a358-8e72-4021-a719-98bc277002f1
- For each grouping resulting from the previous step, we calculate three cluster validity indices and obtain at most three best groupings (in the sense that each groping optimizes a certain validity index) for each algorithm ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a368-ef98-4e7a-941b-ccab051a6921
- We match the calculated cluster prototypes to compare them and the clusters they represent across P sets of clustered repositorie ls-type:: annotation hl-page:: 4 hl-color:: green id:: 6361a53b-6119-4fd4-8afc-6cca08ad3fa6
- three cluster validity indices on the clustering results produced by m clustering algorithms run on the metrics data. ls-type:: annotation hl-page:: 4 hl-color:: purple id:: 6361a575-1ce1-4f95-8661-356e7e27ad70
- if all three showed the same solution or different solutions, we would consider only one or three unique solutions correspondingl ls-type:: annotation hl-page:: 5 hl-color:: purple id:: 6361a8b6-7e82-4065-84fe-22f6e31336c8
- Silhouette ls-type:: annotation hl-page:: 5 hl-color:: purple id:: 6361a8c1-1416-41f6-ae53-6d1498422c58
- silhouette coefficient ls-type:: annotation hl-page:: 5 hl-color:: purple id:: 6361a8da-45b4-450b-b2aa-f326c3bf613d
- Consensus clustering (also called cluster ensembles) provides improved quality of solution and robust clustering as compared to using a single clustering metho ls-type:: annotation hl-page:: 5 hl-color:: purple id:: 6361a901-c28a-4c07-b37d-348b6822fb3c
- graph and hypergraph based as well as non-negative matrix factorization based consensus clustering methods as they are the most popular among the studies related to consensus clustering and are easy to understand and implement ls-type:: annotation hl-page:: 5 hl-color:: purple id:: 6361a919-f0bf-4d1a-9be4-8ad5c4226b4c
- the fraction of clusterings in which two software repository metrics vectors xi, xj are in the same cluster ls-type:: annotation hl-page:: 5 hl-color:: purple id:: 6361a95e-be8a-4797-8b4f-91c1341788a2
- number of stars being in range (100, 200), number of forks – in range (50, 150), size being less than 2100 kilobytes. ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 6361a9a1-1c04-4b50-ae8c-8c77bbe9f0e8
- P = 7 ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 6361a9ad-2bfa-4cf6-a57a-3a32907b18ee
- N = 1659 ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 6361a9d4-5737-4f4a-82b9-b41410a91323
- n = 28 metrics ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 6361a9d8-7af1-4c70-8578-6a9baf40a4aa
- n each set of repositories we have identified optimal groupings using the three clustering algorithms and the three validity indices ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 6361aa12-de47-4d1e-a25a-c352fb234949
- The algorithms that correspond to the underlined values were used to get a single consensus clustering in each corresponding set of repositories. ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 6361aa4c-d051-40ce-8705-63f11039baea
- After calculating a single clustering for each of the repository sets, we calculated the prototypes according to our methodology. ls-type:: annotation hl-page:: 7 hl-color:: green id:: 6361aa77-e6d4-4f95-a023-321ae1710740
- mixed integer programming solver“Coin-or branch and cut ls-type:: annotation hl-page:: 7 hl-color:: green id:: 6361aa89-48d1-4d88-ba91-e5fea64f0fe0
- this indicates the presence of more than one subcluster inside the cluster c2, and for this reason we repeat the clustering, however, this time without the division to P subsets as in c2 we have only 133 repositories. ls-type:: annotation hl-page:: 7 hl-color:: green id:: 6361ab67-813f-4c37-96d7-e700bb94cfbb
- Division of the second cluster to subclusters ls-type:: annotation hl-page:: 7 hl-color:: red id:: 6361ab98-731d-40f3-8e9e-14e1299dbaaa
- Processing of the Repository Sets ls-type:: annotation hl-page:: 7 hl-color:: red id:: 6361ab9f-4795-4f0f-909f-9a607f164550
- Cluster c21 prototype represents a repository with low values of total created and total (aggregated across the whole history in the dataset) closed issues ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 6361abe9-fa05-446b-8071-82d965ece802
- c21 represents repositories with relatively small activity, while other clusters represent different types of activity in repositories, such as sudden peak of developing activity lately (cluster c22, where the metrics for the past two weeks have noticeably larger values than for the past month); ls-type:: annotation hl-page:: 8 hl-color:: purple id:: 6361ace2-d55d-41a1-af7e-8be05673300f
- initial steady development, where the repository has been launched only recently and there is an intense development activity going on; ls-type:: annotation hl-page:: 9 hl-color:: green id:: 6361ad6b-73b7-4eab-8d90-9acf06226765
- active developmen ls-type:: annotation hl-page:: 9 hl-color:: purple id:: 6361ad71-ec4f-46ff-9351-d5099f7d6635
- However, the Gartner use their hype cycle to describe the development of emerging technologie ls-type:: annotation hl-page:: 9 hl-color:: blue id:: 6361adc5-eb08-40b7-b5e2-0e6a1ac34078
- if the software repositories can be grouped into clusters based on their metrics to gain dedicated practical insight ls-type:: annotation hl-page:: 10 hl-color:: green id:: 6361adeb-0f42-479c-836d-c5d1381e181e
- each subset into two clusters ls-type:: annotation hl-page:: 10 hl-color:: green id:: 6361ae1a-cf41-4be6-8311-414ba70c8192
- then measured the discrepancy value between the resulting clusters ls-type:: annotation hl-page:: 10 hl-color:: green id:: 6361ae20-67f9-461b-aed0-53b3e386217f
- identify that there are more than two clusters inside our repository metrics dataset ls-type:: annotation hl-page:: 10 hl-color:: green id:: 6361ae2a-53a2-499c-873a-6b255483c6d3
- We mapped the results of the data analysis to the Gartner hype cycle to facilitate the link between the analysis and business perspective part. ls-type:: annotation hl-page:: 10 hl-color:: purple id:: 6361ae3c-64ab-4f6f-b979-30b5ca6db9bc
- seven clusters of different types of repositories in terms of developers’ activity, of which the majority turned out to be either abandoned or having relatively low activity, while the rest corresponded to different types of developers activity ls-type:: annotation hl-page:: 10 hl-color:: purple id:: 6361ae46-1465-47ea-9158-9fb49dc01089
- expanding our set of metrics to include metrics related to pull requests, comments, releases, and workflows to see if our clustering based on both code and process metrics will be able to predict whether ls-type:: annotation hl-page:: 10 hl-color:: purple id:: 6361ae5d-3548-4fda-89f3-8ebaf512de2a
- In addition, we also plan to study the clustered repositories in detail by inspecting their history of development in terms of the software metrics and potentially modify our hype cycle into a more precise graph that would show community’s interest to open-source software projects and repositories. ls-type:: annotation hl-page:: 10 hl-color:: green id:: 6361ae96-f971-49af-8771-5050da3abdf2
- To validate our clustering, we manually labeled the ”active”133 repositories according to our identified clusters using expert judgement. Then we took the manually labeled (according to the subclusters c21 – c26) 133 repositories (from the cluster c2) and automatically labeled 1526 repositories (from the cluster c1) and reconstructed the initial dataset with 1659 repositories, however now with labels. We used these labels to conduct the cross-validation using random forest classifier(since it lowers risk of overfitting) [30] and to estimate the accuracy of the classification. The achieved mean accuracy with shuffling and splitting 10 times and train to test ratio being 70/30 is 0.92 with standard deviation of 0.011. ls-type:: annotation hl-page:: 8 hl-color:: purple id:: 6361aeb2-a99c-4108-a66b-fae86b3ae9bd