International Journal of Advanced and Applied Sciences

Int. j. adv. appl. sci.

EISSN: 2313-3724

Print ISSN: 2313-626X

Volume 4, Issue 9  (September 2017), Pages:  80-85


Title: Automatic multiprogramming bad smell detection with refactoring

Author(s):  Amit Verma *, Ashish Kumar, Iqbaldeep Kaur

Affiliation(s):

Department of Computer Science and Engineering, CGC Landran, Mohali-140307, Punjab, India

https://doi.org/10.21833/ijaas.2017.09.010

Full Text - PDF          XML

Abstract:

A code smell detection and refactor is one of the very hot concepts in these days. A Lot of researcher worked on it to create an automatic bad smell detection and refactoring system. Main purpose behind the development of these type of systems is to create automatic for enhance the development quality of software systems. In the previous research the smell detection system perform detection on specific areas or specific language. Due to this companies needs to use more than one detector for software testing for large projects. The system is combination of various modules which can be developed in various languages. Our proposed method which is helpful their users to test their code and detect bad smell on more than one language. It acts as a bridge with some optimization techniques which provide highly accurate working for smell detection along with refactoring. Proposed approach uses optimization along with fact and rule programming to detect and refactor the bad smell from input programs. Various bad smells like long methods, dead code, lazy class, long class, etc. are used to check the quality of the code. The proposed approach is also working for Java, c++ and c#.net codes for the test all these bad smell and refactor c++ and Java code. The performance of the proposed approach is also better than other existing algorithms in terms of accuracy for detection and refactoring of bad smells. Some other challenges that the proposed approach faced to find the smells in the code also affect the performance. One of the main challenges is the way of writing code is different for everyone. So it’s difficult to detect and refactor the thing on smell detection tool. Proposed approach used fact and rule processing for detection and eliminates unwanted entries with the help of the optimization process. The performance in terms of accuracy and FAR, FRR are stable and better for all the test cases in the comparison of existing methods and proposed approach. 

© 2017 The Authors. Published by IASE.

This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/).

Keywords: Index terms- Code smell (CS), Lazy class, Long class, Optimization algorithm, FAR and FRR

Article History: Received 9 June 2017, Received in revised form 2 August 2017, Accepted 3 August 2017

Digital Object Identifier: 

https://doi.org/10.21833/ijaas.2017.09.010

Citation:

Verma A, Kumar A, and Kaur I (2017). Automatic multiprogramming bad smell detection with refactoring. International Journal of Advanced and Applied Sciences, 4(9): 80-85

http://www.science-gate.com/IJAAS/V4I9/Verma.html


References:

  1. Bakota T, Ferenc R, Gyimothy T, Riva C, and Xu J (2006). Towards portable metrics-based models for software maintenance problems. In the 22nd IEEE International Conference on Software Maintenance, IEEE, Philadelphia, USA: 483-486. https://doi.org/10.1109/ICSM.2006.69 
  2. Chatzigeorgiou A and Manakos A (2010). Investigating the evolution of bad smells in object-oriented code. In the 7th International Conference on Quality of Information and Communications Technology, IEEE, Porto, Portugal: 106-115. https://doi.org/10.1109/QUATIC.2010.16 
  3. Counsell S, Hierons RM, Hamza H, Black S, and Durrand M (2011). Exploring the eradication of code smells: An empirical and theoretical perspective. Advances in Software Engineering, 2010: Article ID 820103, 12 pages. https://doi.org/10.1155/2010/820103 
  4. dos Reis JP, e Abreu FB, and Carneiro GDF (2016). Code smells incidence: Does it depend on the application domain?. In the 10th International Conference on the Quality of Information and Communications Technology, IEEE, Lisbon, Portugal: 172- 177. https://doi.org/10.1109/QUATIC.2016.044 
  5. Fokaefs M, Tsantalis N, and Chatzigeorgiou A (2007). Jdeodorant: Identification and removal of feature envy bad smells. In the IEEE International Conference on Software Maintenance, IEEE, Paris, France: 519-520. https://doi.org/10.1109/ICSM.2007.4362679 
  6. Fowler M and Beck K (1999). Refactoring: improving the design of existing code. Addison-Wesley Professional, Boston, Massachusetts, USA.     
  7. Hazelwood K and Smith MD (2003). Generational cache management of code traces in dynamic optimization systems. In the 36th annual IEEE/ACM International Conference on Microarchitecture, IEEE, San Diego, USA. https://doi.org/10.1109/MICRO.2003.1253193 
  8. Kim J and Oh S (1997). EM-code optimization algorithm using tree pattern matching. In the International Conference on Information, Communications and Signal Processing, IEEE, Singapore, Singapore, 2: 917-923. https://doi.org/10.1109/ICICS.1997.652113 
  9. Munro MJ (2005). Product metrics for automatic identification of" bad smell" design problems in java source-code. In 11th IEEE International Symposium Software Metrics, IEEE, Como, Italy: 15-15. https://doi.org/10.1109/METRICS.2005.38 
  10. Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A, and Poshyvanyk D (2013). Detecting bad smells in source code using change history information. In the IEEE/ACM 28th International Conference on Automated Software Engineering, IEEE, Silicon Valley, USA: 268-278. https://doi.org/10.1109/ASE.2013.6693086 
  11. Pérez J, Murgia A, and Demeyer S (2013). A proposal for fixing design smells using software refactoring history. In RefTest 2013: International Workshop on Refactoring & Testing. Universitas Antwerpen Antwerpen, Belgium.     
  12. Tsantalis N, Chaikalis T, and Chatzigeorgiou A (2008). JDeodorant: Identification and removal of type-checking bad smells. In 12th European Conference on Software Maintenance and Reengineering, IEEE, Athens, Greece: 329-331. https://doi.org/10.1109/CSMR.2008.4493342 
  13. Van Emden E and Moonen L (2002). Java quality assurance by detecting code smells. In the 9th Working Conference on Reverse Engineering, IEEE, Richmond, USA: 97-106. https://doi.org/10.1109/WCRE.2002.1173068 
  14. Vidal SA, Marcos C, and Díaz-Pace JA (2016). An approach to prioritize code smells for refactoring. Automated Software Engineering, 23(3): 501-532. https://doi.org/10.1007/s10515-014-0175-x