49 research outputs found
Perception and Adoption of Government Agricultural Technologies among Smallholder Farmers in Western Uganda
Agriculture production and productivity remain key to feeding the growing population with agriculture extension being at the centre of the performance of the agricultural sector in Uganda. Research shows that improved technologies promoted through extension service provision could have an even greater impact on food production and on farmers’ livelihoods in developing countries like Uganda. This study was conducted to investigate the perception and adoption of improved agriculture technologies under the government extension system among smallholder farmers in Kagadi District, mid-western Uganda. Data was collected using a questionnaire from 149 randomly selected households in three sub-counties. Results generated using Excel and SPSS revealed a high positive perception index of +0.63 for government extension services. The level of adoption of improved technology based on generalised partial adoption was 54.3% with farm size and training attendance being the significant factors affecting adoption of improved agricultural technologies in the study area. It is clear from the results that notable differences exist in terms of the perceptions of government extension services and the adoption of improved agricultural technologies. The general observation of farmers’ perception is that government extension service is helpful to farmers and is the major source of agricultural information in the area. Efforts should be made to support access to arable land and intensification of agricultural training sessions coupled with appropriate mobilisation of farmers to attend such training. Further studies should be done to understand these aspects on a wider scope in the country since this study was only conducted in one district. There is also needed to study the factors individually as well as the relationships with other factors to determine the adoption processes of technological advancemen
Reuse and maintenance practices among divergent forks in three software ecosystems
With the rise of social coding platforms that rely on distributed version control systems, software reuse is also on the rise. Many software developers leverage this reuse by creating variants through forking, to account for different customer needs, markets, or environments. Forked variants then form a so-called software family; they share a common code base and are maintained in parallel by same or different developers. As such, software families can easily arise within software ecosystems, which are large collections of interdependent software components maintained by communities of collaborating contributors. However, little is known about the existence and characteristics of such families within ecosystems, especially about their maintenance practices. Improving our empirical understanding of such families will help build better tools for maintaining and evolving such families. We empirically explore maintenance practices in such fork-based software families within ecosystems of open-source software. Our focus is on three of the largest software ecosystems existence today: Android,.NET, and JavaScript. We identify and analyze software families that are maintained together and that exist both on the official distribution platform (Google play, nuget, and npm) as well as on GitHub , allowing us to analyze reuse practices in depth. We mine and identify 38 software families, 526 software families, and 8,837 software families from the ecosystems of Android,.NET, and JavaScript, to study their characteristics and code-propagation practices. We provide scripts for analyzing code integration within our families. Interestingly, our results show that there is little code integration across the studied software families from the three ecosystems. Our studied families also show that techniques of direct integration using git outside of GitHub is more commonly used than GitHub pull requests. Overall, we hope to raise awareness about the existence of software families within larger ecosystems of software, calling for further research and better tools support to effectively maintain and evolve them
Empirical Investigation of the Relationship Between Design Smells and Role Stereotypes
During software development, poor design and implementation choices can
detrimentally impact software maintainability. Design smells, recurring
patterns of poorly designed fragments, signify these issues. Role-stereotypes
denote the generic responsibilities that classes assume in system design.
Although the concepts of role-stereotypes and design smells differ, both
significantly contribute to the design and maintenance of software systems.
Understanding the relationship between these aspects is crucial for enhancing
software maintainability, code quality, efficient code review, guided
refactoring, and the design of role-specific metrics. This paper employs an
exploratory approach, combining statistical analysis and unsupervised learning
methods, to understand how design smells relate to role-stereotypes across
desktop and mobile applications. Analyzing 11,350 classes from 30 GitHub
repositories, we identified several design smells that frequently co-occur
within certain role-stereotypes. Specifically, three (3) out of six (6)
role-stereotypes we studied are more prone to design smells. We also examined
the variation of design smells across the two ecosystems, driven by notable
differences in their underlying architecture. Findings revealed that design
smells are more prevalent in desktop than in mobile applications, especially
within the Service Provider and Information Holder role-stereotypes.
Additionally, the unsupervised learning method showed that certain pairs or
groups of role-stereotypes are prone to similar types of design smells. We
believe these relationships are associated with the characteristic and
collaborative properties between role-stereotypes. The insights from this
research provide valuable guidance for software teams on implementing design
smell prevention and correction mechanisms, ensuring conceptual integrity
during design and maintenance phases.Comment: 32 pages, 8 figure
An Empirical Investigation of Forks as Variants in the npm Package Distribution
peer reviewedSoftware developers often need to create variants to accommodate different customer segments. These variants have a common code base but also comprise variant-specific code. A common strategy to create a variant is to clone&own (or fork) an existing repository and then adapt it to the new requirements. This form of reuse has been enhanced with the advent of social- coding platforms such as GitHub, and package distribution plat- forms like npm. GitHub offers facilities for forking, pull requests, and cross-project traceability. npm offers facilities for managing package release dependencies and dependents on the distribution platform. Little is known about the maintenance practices of the variants. We therefore performed an exploratory investigation on the evolution of variants, focusing on their technical aspects. We collected variants from the JavaScript ecosystem, whose sources are hosted on GitHub, and whose packages are released on npm. We have identified a total 12,813 variant forks from the JavaScript ecosystem. In general, we observed that mainlines have more number of package releases, package dependencies, dependent packages and dependent projects compared to their variant counterparts. However, it is still interesting that some variants have quite a considerable number of package releases and dependent packages/projects; in a some cases even more than their mainline counterparts
Blockchain-oriented software variant forks : a preliminary study
In collaborative social development platforms such as GitHub, forking a
repository is a common activity. A variant fork wants to split the development
from the original repository and grow towards a different direction. In this
preliminary exploratory research, we analyze the possible reasons for creating
a variant fork in blockchain-oriented software. By collecting repositories in
GitHub, we created a dataset with repositories and their variants, from which
we manually analyzed 86 variants. Based on the variants we studied, the main
reason to create a variant in blockchain-oriented software is to support a
different blockchain platform (65%).Comment: Accepted for the 5th International Workshop on Blockchain Oriented
Software Engineering 202
Finding Diffs of Pull Request Commits
Github is a social network that allows developers\u27 projects to be forked for various uses, such as developing the existing repository or use the code to steer development into a new direction. As more forks are made, the more bugs that can occur due to new pull requests not synchronizing with the upstream repository. PaReco is a clone detection tool by Ramkisoen et al. (Ramkisoen et al. 2022) that identifies the changes inside the files inside a pull request by performing diff on every file. However, in this study, we take a different approach to identifying the changes inside the files of a pull request by considering a diff in the entire pull request.https://oasis.library.unlv.edu/durep_posters/1201/thumbnail.jp
