Files
logseq/pages/hls__icse2023-paper223_1667256095764_0.md
T
2025-06-02 17:15:13 +02:00

488 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
file:: [icse2023-paper223_1667256095764_0.pdf](../assets/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 projects 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 communitys 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