49 research outputs found

    Perception and Adoption of Government Agricultural Technologies among Smallholder Farmers in Western Uganda

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Eclipse Third-party Plug-ins Source code

    No full text
    Eclipse third-party plug-ins source cod

    Blockchain-oriented software variant forks : a preliminary study

    No full text
    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

    Full text link
    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
    corecore