Title :
Software modularization operators
Author :
Rama, Girish Maskeri ; Patel, Naineet
Author_Institution :
SETLabs., Infosys, Bangalore, India
Abstract :
There exists a number of large business critical software systems written in newer languages such as C and Java that are fast becoming legacy and increasingly difficult to maintain. Unlike older monolithic systems, where modularization primarily involves splitting the monolithic code base into modules, for such newer systems which already have some basic modular structure, code decomposition is only one of the many possible activities. Even though the area of software modularization has received considerable attention over these past years, there are hardly any case studies documented in literature on modularizing large C and Java systems. We still do not fully comprehend the activities experienced developers perform when they have to modularize such newer systems. The goal of this paper is to learn from past software modularization projects and identify common recurring patterns. This paper formalizes 6 such patterns, which we term as modularization operators, that are likely to be the basic building blocks of any software modularization activity. The operators presented in this paper are validated using modularization case studies of open source software systems and a proprietary software system and several observations and insights are presented.
Keywords :
C language; Java; public domain software; safety-critical software; software maintenance; C language; Java language; code decomposition; large business critical software systems; legacy system; monolithic code; open source software systems; proprietary software system; software modularization operators; Data structures; Driver circuits; Linux; Maintenance engineering; Software algorithms; Software systems;
Conference_Titel :
Software Maintenance (ICSM), 2010 IEEE International Conference on
Conference_Location :
Timisoara
Print_ISBN :
978-1-4244-8630-4
Electronic_ISBN :
1063-6773
DOI :
10.1109/ICSM.2010.5609546