scholarly journals A Quantitative Study for the Characterization of Internal Quality of Open-Source Object-Oriented Software

2016 ◽  
Author(s):  
Mariana De Azevedo Santos ◽  
Paulo Henrique De Souza Bermejo ◽  
Heitor Costa

Although it is necessary, activities regarding quality assurance and maintenance of software are considered the longest and most complex in software development lifecycle. Taking advantage of this growing trend and of the benefits obtained from open-source initiative, researches on open-source software quality and maintainability have gained renewed interest. The use of robust statistical techniques, such as PLS-SEM to investigate and empirically validate software quality models has also been an efficient alternative to obtain information on open-source software quality. The aim of this study was evaluate and build a conceptual model to characterize the internal quality in Java open-source software in different domains, validated with the PLS-SEM technique. The study results indicate that there are domains with similarities among them and four factors can influence the internal quality of object-oriented software to present better maintainability (Complexity Reduce, Normalized Cohesion, Non-normalized Cohesion, and Increase of the Modularity Level). Besides, we identified some measures are more effective to evaluate internal quality in object-oriented open-source, such as, Fan-out (FOUT), Lack of Cohesion of Methods 2 (LCOM2), Response for Class (RFC), Tight Class Cohesion (TCC), and Loose Class Cohesion (LCC). Thus, this study aims at supporting software engineers and project managers to develop measurement strategies to ensure internal quality of source code and reduce maintenance costs.

2014 ◽  
Author(s):  
Mariana Santos ◽  
Rodrigo Amador ◽  
Paulo Henrique De Souza Bermejo ◽  
Heitor Costa

Organizations are becoming increasingly concerned about software quality. In object-oriented (OO) systems, quality is characterized by measurements of internal quality attributes. An efficient and proper method to analyze software quality in the absence of fault-prone or defective data labels is cluster analysis. The aim of this paper is to find similarities among project structures by measuring characteristics of internal software quality. In a sample of 150 open-source software systems, we evaluated software using macro and micro categories. Results obtained using cluster analysis indicated that some domains such as Graphics, Games, and Development tend to have similarities in specialization, abstraction, stability, and complexity. These results exploit the ability of OO software metrics to find similar behavior across domains. The results provide an immediate view of the trends and characteristics of internal software quality of Java systems that need to be addressed so that software systems can continue to be maintainable.


2021 ◽  
Vol 11 (12) ◽  
pp. 5690
Author(s):  
Mamdouh Alenezi

The evolution of software is necessary for the success of software systems. Studying the evolution of software and understanding it is a vocal topic of study in software engineering. One of the primary concepts of software evolution is that the internal quality of a software system declines when it evolves. In this paper, the method of evolution of the internal quality of object-oriented open-source software systems has been examined by applying a software metric approach. More specifically, we analyze how software systems evolve over versions regarding size and the relationship between size and different internal quality metrics. The results and observations of this research include: (i) there is a significant difference between different systems concerning the LOC variable (ii) there is a significant correlation between all pairwise comparisons of internal quality metrics, and (iii) the effect of complexity and inheritance on the LOC was positive and significant, while the effect of Coupling and Cohesion was not significant.


Author(s):  
Yann-Gaël Gueheneuc ◽  
Jean-Yves Guyomarc’h ◽  
Khashayar Khosravi ◽  
Hourari Sahraoui

Software quality models link internal attributes of programs with external quality characteristics. They help in understanding relationships among internal attributes and between internal attributes and quality characteristics. Object-oriented software quality models usually use metrics on classes (such as number of methods) or on relationships between classes (for example coupling) to measure internal attributes of programs. However, the quality of object-oriented programs does not depend on classes solely: it depends on the organisation of classes also. We propose an approach to build quality models using patterns to consider program architectures. We justify the use of patterns to build quality models, describe the advantages and limitations of such an approach, and introduce a first case study in building and in applying a quality model using design patterns on the JHotDraw, JUnit, and Lexi programs. We conclude on the advantages of using patterns to build software quality models and on the difficulty of doing so.


2015 ◽  
Vol 19 (4) ◽  
pp. 791-813 ◽  
Author(s):  
Zilia Iskoujina ◽  
Joanne Roberts

Purpose – This paper aims to add to the understanding of knowledge sharing in online communities through an investigation of the relationship between individual participant’s motivations and management in open source software (OSS) communities. Drawing on a review of literature concerning knowledge sharing in organisations, the factors that motivate participants to share their knowledge in OSS communities, and the management of such communities, it is hypothesised that the quality of management influences the extent to which the motivations of members actually result in knowledge sharing. Design/methodology/approach – To test the hypothesis, quantitative data were collected through an online questionnaire survey of OSS web developers with the aim of gathering respondents’ opinions concerning knowledge sharing, motivations to share knowledge and satisfaction with the management of OSS projects. Factor analysis, descriptive analysis, correlation analysis and regression analysis were used to explore the survey data. Findings – The analysis of the data reveals that the individual participant’s satisfaction with the management of an OSS project is an important factor influencing the extent of their personal contribution to a community. Originality/value – Little attention has been devoted to understanding the impact of management in OSS communities. Focused on OSS developers specialising in web development, the findings of this paper offer an important original contribution to understanding the connections between individual members’ satisfaction with management and their motivations to contribute to an OSS project. The findings reveal that motivations to share knowledge in online communities are influenced by the quality of management. Consequently, the findings suggest that appropriate management can enhance knowledge sharing in OSS projects and online communities, and organisations more generally.


2020 ◽  
Author(s):  
Mubarak Albarka Umar

<p><i>Software Testing is the process of evaluating a software program to ensure that it performs its intended purpose. Software testing verifies the safety, reliability, and correct working of software. The growing need for quality software makes software testing a crucial stage in Software Development Lifecycle. There are many methods of testing software, however, the choice of method to test a given software remains a major problem in software testing. Although, it is often impossible to find all errors in software, employing the right combination of methods will make software testing efficient and successful. Knowing these software testing methods is the key to making the right selection. This paper presents a comprehensive study of software testing methods. An explanation of Testing Categories was presented first, followed by Testing Levels (and their comparison), then Testing Techniques (and their comparison). For each Testing Levels and Testing Techniques, examples of some testing types and their pros and cons were given with a brief explanation of some of the important testing types. Furthermore, a clear and distinguishable explanation of two confused and contradictory terms (Verification and Validation) and how they relate to Software Quality was provided.</i></p>


2021 ◽  
Author(s):  
Mayank Gokarna

DevOps is the combination of cultural mindset, practices, and tools that increases a team's ability to release applications and services at high velocity. The development and operations teams always have a conflict around the scope of responsibility. With these differences the quality and speed of delivery across software Development Life Cycle is negatively impacted. DevOps is about removing the barriers between two traditionally delimited teams, development and operations. With DevOps, these two teams work together to optimize both the productivity of developers and the reliability of operations. They strive to communicate frequently, increase efficiencies, and improve the quality of services they provide. They take full ownership for their services, often beyond where their stated roles or titles have traditionally been scoped. Transitioning to DevOps requires a change in culture and mindset first. It is quite difficult to persuade a whole company to change its culture at once. This paper aims to bring different phases of software development lifecycle into DevOps implementation strategy and presents a comprehensive collection of leading tools used across Software Development life Cycle to automate and integrate different stages of software delivery. This paper also highlights on DevOps practices which span across different phases of the Software Development Lifecycle and how those can be implemented with different tools available.


2020 ◽  
Author(s):  
Samuel Genheden ◽  
Amol Thakkar ◽  
Veronika Chadimova ◽  
Jean-Louis Reymond ◽  
Ola Engkvist ◽  
...  

We present the open-source AiZynthFinder software that can be readily used in retrosynthetic planning. The algorithm is based on a Monte Carlo tree search that recursively breaks down a molecule to purchasable precursors. The tree search is guided by an artificial neural network policy that suggests possible precursors by utilizing a library of known reaction templates. The software is fast and can typically find a solution in less than 10 seconds and perform a complete search in less than 1 minute. Moreover, the writing of the code was guided by a range of software engineering principles such as automatic testing, system design and continuous integration leading to robust software. The object-oriented design makes the software very flexible and can straightforwardly be extended to support a range of new features. Finally, the software is clearly documented and should be easy to get started with. The software is available at http://www.github.com/MolecularAI/aizynthfinder.


Sign in / Sign up

Export Citation Format

Share Document