scholarly journals An Analytical Study of Code Smells

2021 ◽  
Vol 15 (1) ◽  
pp. 121-126
Author(s):  
Lida Bamizadeh ◽  
Binod Kumar ◽  
Ajay Kumar ◽  
Shailaja Shirwaikar

Software development process involves developing, building and enhancing high-quality software for specific tasks and as a consequence generates considerable amount of data. This data can be managed in a systematic manner creating knowledge repositories that can be used to competitive advantage. Lesson's learned as part of the development process can also be part of the knowledge bank and can be used to advantage in subsequent projects by developers and software practitioners. Code smells are a group of symptoms which reveal that code is not good enough and requires some actions to have a cleansed code. Software metrics help to detect code smells while refactoring methods are used for removing them. Furthermore, various tools are applicable for detecting of code smells. A Code smell repository organizes all the available knowledge in the literature about code smells and related concepts. An analytical study of code smells is presented in this paper which extracts useful, actionable and indicative knowledge.

2021 ◽  
Vol 15 (3) ◽  
pp. 371-380
Author(s):  
Lida Bamizadeh ◽  
Binod Kumar ◽  
Ajay Kumar ◽  
Shailaja Shirwaikar

Pitfalls in software development process can be prevented by learning from other people's mistakes. Software practitioners and researchers document lessons learned and the knowledge about best practices is spread over literature. Presence of code smells does not indicate that software won’t work, but it will reveal deeper problems and rising risk of failure in future. Software metrics are applied to detect code smells whereas refactoring can remove code smells, improve code quality and make it simpler and cleaner. Detection tools facilitate management of code smells. Knowledge about code smells and related concepts can assist the software maintenance process. Exploratory analysis of code smells carried out in this paper, covers collecting data about code smells, identifying related concepts, categorizing and organizing this knowledge into a code smell repository, which can be made available to software developers. A detailed literature survey is carried out to identify code smells and related concepts. An initial list of 22 code smells proposed in 1999 has grown over the years into 65 code smells. The relationship between code smells, software metrics, refactoring methods and detection tools available in literature is also documented. Templates are designed that capture knowledge about code smells and related concepts. A code smell repository is designed and implemented to maintain all the information gathered about code smells and related concepts and is made available to software practitioners. All the knowledge about code smells found in literature is collected, organized and made accessible.


2009 ◽  
pp. 2665-2679
Author(s):  
Sameer Verma

This chapter introduces the open source software development process from a software quality perspective. It uses the attributes of software quality in a formal model and attempts to map them onto the principles of the open source process. Many stages of the open source process appear to have an ad-hoc approach. Although open source is not considered to be a formal methodology for software development, it has resulted in the development of very high quality software, both in the consumer and in the enterprise space. In this chapter, we hope to understand the open source process itself, and apply it to other methodologies in order to achieve better software quality. Additionally, this chapter will help in understanding the “Wild West” nature of open source and what it may hold for us in the future.


Author(s):  
Sameer Verma

This chapter introduces the open source software development process from a software quality perspective. It uses the attributes of software quality in a formal model and attempts to map them onto the principles of the open source process. Many stages of the open source process appear to have an ad-hoc approach. Although open source is not considered to be a formal methodology for software development, it has resulted in the development of very high quality software, both in the consumer and in the enterprise space. In this chapter, we hope to understand the open source process itself, and apply it to other methodologies in order to achieve better software quality. Additionally, this chapter will help in understanding the “Wild West” nature of open source and what it may hold for us in the future.


Author(s):  
Zouheyr Tamrabet ◽  
Toufik Marir ◽  
Farid MOKHATI

This article describes how software quality engineering is an inevitable activity, which must be accomplished during software development process in order to avoid software failures and ensuring its quality. Embedded systems are computer platforms, which require high quality software. Many researchers interested in embedded systems have demonstrated that the quality of the embedded software has a significant effect on the performances of the entire system. In the literature, several works have been emerged from this line of research. The aim of this article is to present a survey of the most important works, which deal with embedded software quality engineering. A comparative study is also given in order to show strengths and weaknesses of each work.


2008 ◽  
pp. 1096-1109
Author(s):  
Sameer Verma

This chapter introduces the open source software development process from a software quality perspective. It uses the attributes of software quality in a formal model and attempts to map them onto the principles of the open source process. Many stages of the open source process appear to have an ad-hoc approach. Although open source is not considered to be a formal methodology for software development, it has resulted in the development of very high quality software, both in the consumer and in the enterprise space. In this chapter, we hope to understand the open source process itself, and apply it to other methodologies in order to achieve better software quality. Additionally, this chapter will help in understanding the “Wild West” nature of open source and what it may hold for us in the future.


Author(s):  
Jana Polgar

Software measurement is considered to be an efficient means to monitor the quality of software projects, predict cost of maintenance, assess reusability of components, provide prediction of faults in similar projects, and contribute to improvement of the software development process. This chapter surveys software metrics literature with particular focus on object-oriented metrics, and metrics for measuring code complexity. Furthermore, we provide a critical view of software metrics and their usability.


Author(s):  
Sarah Geitz ◽  
Brian Moon ◽  
Anita D'Amico ◽  
Robert R. Hoffman ◽  
Rob Page

The goal of this panel is to discuss critical human factors concerns in the development of software for intelligence analysts. The panel presentations are designed to provide a high level overview of the software development process, the intelligence analysis process, and the challenges encountered in both obtaining user feedback. Presentations will examine a variety of issues including the analysis of imagery, text, information assurance, data fusion, visualization models and in establishing situational awareness, as well as empowering analysts with open source software. The panel discussion will focus on extracting generic processes that can be applied to obtaining more accurate software metrics, requirements and solutions from a world where certain topics cannot be discussed. Methods and metaphors for better describing to individuals working outside of the classified world the context a within which a tool will be used, may be touched upon, as well as identifying ways of overcoming both internal and external politics. Human factors concerns may also be addressed, such as evaluating how trust affects the feedback received from individual analysts and communication and interaction within and between groups of analysts. Identifying and overcoming potential perceptual problems in the software development process will also be discussed. The anticipated outcome of the panel will be to target individual processes, techniques and technologies that can be applied to obtaining requirements to support cognitive processes, which can in turn be applied developing software tools that better fit the needs intelligence analysts.


Sign in / Sign up

Export Citation Format

Share Document