Impact of Programming Features on Code Readability

Yahya Tashtoush, Zeinab Odat, Izzat Alsmadi, Maryan Yatim
2013 International Journal of Software Engineering and Its Applications  
Readability is one important quality attributes for software source codes. Readability has also significant relation or impact with other quality attributes such as : reusability, maintainability, reliability, complexity, and portability metrics. This research develops a novel approach called Impact of Programming Features on Code Readability (IPFCR), to examine the influence of various programming features and the effect of these features on code readability. A code Readability Tool (CRT) is
more » ... veloped to evaluate the IPFCR readability features or attributes. In order to assess the level if impact that each one of the 25 proposed readability features may have, positively or negatively on the overall code readability, a survey was distributed to a random number of expert programmers. These experts evaluated the effect of each feature on code readability, based on their knowledge or experience. Expert programmers have evaluated readability features to be ordered then classified into positive and negative factors based on their impact on code readability or understanding. The survey responses were analyzed using SPSS statistical tool. Most of proposed code features showed to have significantly positive impact on enhancing readability including: meaningful names, consistency, and comments. On the other hand, fewer features such as arithmetic formulas, nested loops, and recursive functions showed to have a negative impact. Finally, few features showed to have neutral impact on readability. The main goal this paper is to develop a tool that can automatically collect different readability attributes. We then want to see the value of those low level readability attributes and their ability or level of impact on the overall readability. Nowadays, most software codes are written by distant teams. Developers may frequently join or leave software companies. It's very important for source codes to be understandable so it can be easily adapted. Such codes are library functions and packages in programming languages such as: C++, C#, and Java. Each programmer may want to review code and adapt it according to his/her own needs; so readability is needed. Furthermore, the ability of reading and understanding a program written by others is a critical job. Software programming companies depend on team work instead of one programmer, so each one will write a fragment as part of a team effort. In addition, tailoring a ready code would be very difficult to specify tasks then modify them (e.g., some programs may have thousands of lines of code such as network protocols). Programming courses are taught through various techniques and exercises introduced to students to ensure their skills. Thus, instructors should insure that these exercises are given clear and understandable to students, in order to get clear answers. On the other hand, students should submit clear and readable answers in order for instructors to review and correct. Moreover, programmers may forget variables purposes when using meaningless names, or forget functional purposes when omitting comments. Thus, using unreadable program codes may lead to code misunderstanding. Software quality is a comprehensive characteristic of the whole software life cycle, defined as what software product should be and what it must contain. The quality of software is defined by several characteristics such as: software maintainability, reliability, reusability, testability, and readability. Literature reviews have referred to maintainability and testability as the main quality factors [3], also, readability has always been the reason behind maintainable code, and, software quality has to be improved in all dimensions; so code readability is a priority. The rest of the paper is organized as follows. Section 2 presents readability and related work. Section 3 discusses the Impact of Programming Features on Code Readability (IPFCR) approach and how it works. Section 4 presents the methodology and experiment of the approach. Section 5 improves the CRT tool and represents the results of the research. Conclusion of the research is given in section 6. Finally, Section 7 presents the future work. Documentation and Code Readability Readability in software products contains documentation and source code readability. Documentation Readability Documentation readability means a detailed system description which will be shared between software engineering team and customer, to hold proper understanding for the system; it plays a key role especially in large systems. Many requirements are associated in system documentation [10, 11] ; it should be an information repository system to be used by maintenance engineers, it should provide information for managers to help them in planning, it also should contain the budget and schedule for software development process, and finally it should tell users how to use and administer the system.
doi:10.14257/ijseia.2013.7.6.38 fatcat:ftjbqn2mkrcxzdyyqhu4v3o4di