Aspectual Analysis of Legacy Systems: Code Smells and Transformations in C

Full Text (PDF, 611KB), PP.57-63

Views: 0 Downloads: 0


Zeba Khanam 1,* S.A.M Rizvi 1

1. Department of Computer Science, Jamia Millia Islamia

* Corresponding author.


Received: 15 Jul. 2013 / Revised: 12 Aug. 2013 / Accepted: 10 Sep. 2013 / Published: 8 Nov. 2013

Index Terms

Code Smells, Aspect Oriented Programming, Refactoring, Code Transformations


This paper explores the various code smells or the so called bad code symptoms present in procedural C software. The code smells are analyzed in the light of aspect oriented programming. The intention is to handle the code smells with aspect oriented constructs as it offers more versatile decomposition techniques than the traditional modularization techniques, for software evolution and understandability. The code smells are described at the function and program level. The code smells are followed by the aspect oriented transformations that may be required in order to improve the code quality.

Cite This Paper

Zeba Khanam, S.A.M Rizvi, "Aspectual Analysis of Legacy Systems: Code Smells and Transformations in C", International Journal of Modern Education and Computer Science (IJMECS), vol.5, no.11, pp.57-63, 2013. DOI:10.5815/ijmecs.2013.11.08


[1]M. Bruntink, A. van Deursen, and T. Tourw´e. “An initial experiment in reverse engineering aspects from existing applications”, Proceedings of the Working Conference on Reverse Engineering (WCRE), pages 306–307. IEEE Computer Society, 2004.
[2]M. Bruntink, A. van Deursen, and T. Tourw´e. “Isolating Idiomatic Crosscutting Concerns”, Proceedings of the 21ST International Conference on Software Maintenance (ICSM). IEEE Computer Society, 2005.
[3]M. Bruntink, A. van Deursen, and T. Tourw´e. “Discovering Faults in Idiom based Exception Handling”, Proceedings of the 28th international conference on Software engineering Pages 242-251, 2006.
[4]M. Bruntink, A. van Deursen, R. van Engelen, and T. Tourw´e. “An Evaluation of Clone Detection Techniques for Identifying Crosscutting Concerns”, Proceedings of the International Conference on Software Maintenance (ICSM), pages 200–209. IEEE Computer Society, 2004.
[5]Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn “Using AspectC to Improve the Modularity of Path-Specific Customization in Operating System Code”, Proceedings of the Joint European Software Engineering Conference (ESEC)and 9th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE-9), pages 88–98. ACM Press, 2001.
[6]B. Adams and T. Tourw´e. “Aspect-Orientation in C: Express Yourself”, Proceedings of the AOSD Workshop on Software-engineering Properties of Languages for Aspect Technologies (SPLAT). Aarhus University, March 2005.
[7]Marc Eaddy An Empirical Assessment of the Crosscutting Concern Problem PhD thesis.Columbia University.2008.
[8]M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1st edition, 1999.
[9]Garrido, A.: Program Refactoring in the Presence of Preprocessor Directives. PhD thesis, University of Illinois at Urbana-Champaign. 2005.
[10]M. Lippert and C. V. Lopes. “A study on exception detecton and handling using aspect-oriented programming”, Proceedings of the 22th international conference on Software engineering (ICSE), pages 418 – 427. IEEE Computer Society, 2000.
[11]Kerievsky J. Refactoring to Patterns, Addison-Wesley, 2004.
[12]G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda,C. Lopes, J.-M. Loingtier, and J. Irwin. “Aspect-oriented programming”, In Proceedings of the Europeen Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science, pages 220–242. Springer-Verlag, 1997.
[13]Monteiro, M.P. Refactorings to Evolve Object -Oriented Systems with Aspect-Oriented Concepts. PhD thesis, Universidade do Minho, Portugal 2005.
[14]G. C. Murphy, A. Lai, R. J. Walker, and M. P. Robillard. “Separating Features in Source Code: Exploratory Study”, Proceedings of the International Conference on Software Engineering (ICSE), pages 275–284. IEEE Computer Society, 2001.
[15]Méndez,M. Fortran Refactoring for Legacy Systems, MSc Thesis, Computer Science School, Universidad Nacional de La Plata. Available at 2011.
[16]Wake W, Refactoring Workbook, Addison Wesley, 2004.