You are on page 1of 9

International Association for Management of Technology

IAMOT 2016 Conference Proceedings

ON EXTENDING THE USABLE LIFE OF LEGACY SOFTWARE

B A EKANEM
Institute of Engineering, Technology & Innovation Management, University of Port Harcourt, Nigeria
ba_ekanem@yahoo.com

E E WOHEREM
Compumetrics Solutions, Abuja, Nigeria
eewoherem@yahoo.com

J E AMADI-ECHENDU
Department of Engineering and Technology Management, Graduate School of Technology Management
University of Pretoria, Republic of South Africa
joe.amadi-echendu@up.ac.za

Abstract
Computer software coding experiences a high rate of technology change. Software obsolescence is a growing
challenge. The pervasive and ubiquitous nature of software means that rapid changes and consequential legacy
implications are serious issues of concern, especially for highly computerized business processes. Innovative
approaches are necessary to mitigate the effect of software obsolescence on the performance of automated
business operations. Extrapolating from semi-structured survey of software programmers, this paper discusses
component-oriented re-engineering as a method for extending the useable life of software in the short to
medium term, especially in instances where embedded code has become obsolete, and the costs may be
prohibitive for investing in new software applications, platforms and systems.

Keywords: Software life extension · Legacy code modernization · Software re-engineering

1. Introduction
Information and communications technologies ubiquitously pervade all aspects of human endeavor. The
automation of modern business operations is based on computerized software codes. Such codes are widely
applied for routine business process transactions across all sectors of industry. Some software codes have been
deployed over a considerable length of time and are still in use. Often the programming language and tools
used to develop software become obsolete making it difficult and expensive to modify the code as the need
arises (Cipresso, 2009). In addition to obsolescence, Sneed and Wien (2006) identifies other factors like poor
code structure, poor data abstraction, incomplete documentation, and diminishing expertise in legacy language
coding as significant challenges to maintain and update software applications, platforms and systems. The
challenge is exacerbated by the fact that automated business processes are continually changing, and this also
requires continuous updating of the embedded legacy software codes from one version to the other as the
application traverses its lifecycle as in Figure 1.

478
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

Ekanem, Woherem and Amadi-Echendu

Figure 1: Application Software Evolutionary Stages

Many organizations rely on existing legacy codes for which the software applications were originally designed,
especially because the routine business operations remain very useful, albeit that interaction with modern
software coding may be handicapped (Shahmohammed et al, 2010). Therefore, for some organizations, it is
paramount to either transform legacy software codes or to replace with modern versions so as to provide
features that keep track with ongoing re-engineering of business processes. In some situations, modernization of
legacy software codes may be less cumbersome than replacement (Comella-Dorda et al, 2000; Saarelainen et al,
2006; Khadka et al, 2010), and may be recommended for situations where existing legacy applications have
properties which are worth preserving (Malinova, 2010; T-System, 2013).

A worldwide survey of chief information officers by Gartner (2013) indicated that modernization of legacy
software code was a top 10 technology priority. The study further suggested that the rate of obsolescence and
corresponding increase in legacy software code is 10% annually, thus providing impetus for innovative
techniques to extend the useable life of existing applications (Denoncourt, 2011). Coding techniques such as
wrapping, migration, and component-oriented re-engineering are being applied to modernize legacy software
applications and platforms. Component-oriented re-engineering appears to be the technique preferred by
software programmers.

This paper describes an ongoing study to examine the application of component-oriented re-engineering
technique towards modernization of legacy software code embedded in existing business processes and
operations. Section 2 includes a very brief review of literature on component-oriented coding techniques for
software re-engineering. A semi-structured survey of software programmers is described in section 3, and the
preliminary results of the ongoing research are summarized in section 4.

479
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

2. Software Modernization

For many organizations where software underpins automated and high value business processes, legacy codes
modernization tends to be preferred over replacement. There also tends to be a higher resistance to change
software applications and platforms especially in critical and complex business operations. Khadka et al (2010)
indicate that a software modernization project typically lasts longer than expected. In many cases, the inherent
complex system architecture makes it difficult to identify and extract obsolete coding, and also to test business
process logic during the project. The complexity tends to be exacerbated by the series of architectural
distortions arising from ongoing maintenance of legacy code from one version to another.

As a way of dealing with these issues, Jatain and Gaur (2015), Kim (2009), Erdil (2005), and Canfora (2000)
recommend component-based software engineering (CBSE) as a technique to improve flexibility, reliability,
and adaptability, as well as to extend useable life of legacy code. Almonaies et al (2010) point out that a key
challenge in applying CBSE is to identify and isolate specific sections of legacy code embedded within highly
integrated and automated business processes. Mishra et al (2010) discuss some techniques for identifying
reusable components in legacy software. Yang et al (2003) present a ‘re-engineering wide spectrum language
(RWSL) framework’ for legacy architecture identification and recovery, and business process re-packaging.
Furthermore, Cuadrado et al (2008) discuss recovery of legacy architecture, evolution and implementation of
new architecture whilst preserving existing functionality. Although there are claims (e.g., Mishra et al, 2010;
Almonaies et al, 2010) that component-based software engineering may be applied to re-structure and extend
the useable life of legacy codes, however, such claims need to be tested. It is in this regard that this paper
addresses the proposition that component-oriented re-engineering techniques can be applied to extend the
useable life of legacy codes inherent in software applications, platforms and systems.

3. Research

From the preceding sections, it is remarkable that, for computerized software, today’s ‘bleeding-edge’
technology is readily tomorrow’s legacy code. The high rate of change that occurs in coding places serious
responsibility on software engineers and programmers to devise and implement solutions that readily track and
mitigate the effects of obsolescence. The views of sixty-one software practitioners were obtained to test the
positivistic proposition that component-oriented re-engineering of legacy codes provides an effective technique
for extending the useable life of software already embedded in automated business processes.

The snowball sampling method was used to identify software practitioners. Thus, the first set of twenty-one
respondents who have been involved in implementing CBSE techniques were persuaded to identify others with
similar experiences. Each respondent was briefly interviewed to confirm respective awareness of the subject
matter. They were then invited to respond to six multiple choice positivistic statements that were focused on
whether component re-engineering provides an effective technique for extending the useable life of legacy
software. Respondents were required to indicate whether they: i) strongly agreed (SA), ii) agreed (A), iii) are
undecided (UD), iv) dis-agreed (D), or v) strongly dis-agreed (SD) with each statement. A survey questionnaire
was also sent to professionals via email, who completed it and returned accordingly. A total of 107 respondents
participated in the survey and their data were analyzed and used for the results validation. This was done to
improve validity of the interviews.

A summary of the respondents’ feedback to the six positivistic statements obtained through interview is shown
in Table 1, while the feedback through data triangulation with questionnaire from email is shown in Table 2.
Also, Table 3 presents the summary of the interviewees’ responses to the question on the major challenges of
applying the component-oriented re-engineering technique to modernize legacy software.

Table 1. Interviewees’ response to quality of component-oriented re-engineered legacy software

480
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

Ekanem, Woherem and Amadi-Echendu

Statement SA A UD D SD total

Component-oriented re-engineering of legacy code extends the 39 21 1 0 0 61


functionality of software

Component-oriented re-engineering of legacy code increases re- 37 23 1 0 0 61


usability of software

Component-oriented re-engineering of legacy code produces reliably 35 21 2 3 0 61


modernized software

Component-oriented re-engineering of legacy code is an innovative 22 33 2 4 0 61


solution to software obsolescence

Component-oriented re-engineering of legacy code provides more 36 24 1 0 0 61


portable modernized software

Component-oriented re-engineering of legacy code provides flexible 20 40 1 0 0 61


modernized software
Total 189 162 8 7 0 366

Table 2. Response to email survey questionnaire on quality of component-oriented re-engineered legacy


software

Statement SA A UD D SD total
Component-oriented re-engineering of legacy code extends the 0
72 32 3 0 107
functionality of software
Component-oriented re-engineering of legacy code increases re- 0
55 48 4 0 107
usability of software
Component-oriented re-engineering of legacy code produces 0
49 52 3 3 107
reliably modernized software
Component-oriented re-engineering of legacy code is an innovative 0
43 56 5 3 107
solution to software obsolescence
Component-oriented re-engineering of legacy code provides more 0
69 37 1 0 107
portable modernized software
Component-oriented re-engineering of legacy code provides 0
51 54 2 0 107
flexible modernized software
Total 339 279 18 6 0 642

481
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

Table 3. Interviewee response regarding major challenges with component-oriented reengineering technique

S/n Major Challenges No. of


Respondents
i. Difficulty in extracting quality components from legacy application and repackaging 48
them for reuse in modernization
ii. Difficulty in identifying and separating stable components from unstable components 53
for reuse in modernization
iii. Lack of appropriate off-the-shelf components to replace unstable components 32
iv. Inadequate automated tools to fully support component-oriented reengineering 46

4. Data Analysis
The quantitative data for impact assessment were analyzed using chi-squared test. In this case the expected
values were obtained using the expression where i= 1 to 6 and j= 1 to 4; for instance,

=
After the expected values were obtained, χ2cal ) was calculated using the expression: χ2cal = ∑ (Oi - Ei)2/ Ei with
the values shown in Table 4.

Table 4. Calculated Values based on Interview Responses


Oi Ei (Oi - Ei) (Oi - Ei)2 (Oi - Ei)2/ Ei
39 31.5 7.5 56.25 1.79
37 31.5 5.5 30.25 0.96
35 31.5 3.5 12.25 0.39
22 31.5 -9.5 90.25 2.87
36 31.5 4.5 20.25 0.64
20 31.5 -11.5 132.25 4.20
21 27 -6 36 1.33
23 27 -4 16 0.59
21 27 -6 36 1.33
33 27 6 36 1.33
24 27 -3 9 0.33
40 27 13 169 6.26
1 1.33 -0.33 0.1089 0.08
1 1.33 -0.33 0.1089 0.08
2 1.33 0.67 0.4489 0.34
2 1.33 0.67 0.4489 0.34
1 1.33 -0.33 0.1089 0.08
1 1.33 -0.33 0.1089 0.08
0 1.17 -1.17 1.3689 1.17
0 1.17 -1.17 1.3689 1.17
3 1.17 1.83 3.3489 2.86
4 1.17 2.83 8.0089 6.85
0 1.17 -1.17 1.3689 1.17
0 1.17 -1.17 1.3689 1.17
χ 2cal 37.42

482
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

Ekanem, Woherem and Amadi-Echendu

For the χ2tab, using df = (r-1) (c-1) where r is row (number of questions) and c is column (number of options in
the response), that is (6-1)(4-1) = 15 and α = 0.05 resulted in χ2tab = χ215, 0.05 = 25

5. Discussion and Conclusion


Based on the chi-squared test, (χ2cal = 37.42 > χ2tab = 25), the respondent feedback (from interview) supports the
positivistic proposition that component-oriented re-engineering of legacy codes provides features such as:
i. Extensibility –quick updates and additions to code
ii. Flexibility –supports increasing range of multimedia datatypes, traffic patterns, end-to-end quality of
service) requirements
iii. Innovativeness – incorporation of new ideas, techniques and methods
iv. Portability – across heterogeneous operating system platforms, programming languages and compilers
v. Reliability –robust, and fault-tolerant
vi. Reusability –components easily reused in similar software projects
Similarly, the graphical representation of the data collected from questionnaire as indicated in Figure 2 shows
some collaboration with the results from data collected from interview. This increases the validity of the
interviewee responses.

Figure 2: Respondents’ feedback from email survey questionnaire

Having considered the challenges, a framework is proposed to facilitate successful implementation of the
component-oriented reengineering technique. The framework is illustrated in Figure 3.

483
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

Figure 3: Proposed framework to facilitate implementation of component-oriented reengineering technique

With the continuous increase in the number of software applications that turn legacy, and the growing challenge
of legacy modification to extend their usable life, there is need for innovative approaches to ensure that rapid
changes in technology do not exacerbate the performance of automated business processes. Fifty-five
respondents out of the sixty one interviewed support the proposition that component-oriented reengineering is a
practical technique for modernizing legacy code, improving maintainability and extending the usable and useful
life of software that would otherwise have become obsolete. The major difficulty for component-oriented
reengineering according to the study is to identify reusable legacy components from legacy applications.

484
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

Ekanem, Woherem and Amadi-Echendu

6. References
Almonaies, R., Cordy, D. and Dean, P., 2010. Legacy System Evolution, towards Service-oriented
Architecture. International Workshop on SOA Migration and Evaluation, ACM p.53-64
Canfora, G. and Cimitile, A., 2000. Software Maintenance, University of Sannio, Palazzo Bosco Lucarelli,
Piazza Roma, Italy. [online] Available www.cs.pitt.edu/chang/handbook/02.pdf accessed on January 12, 2012

Cipresso, T., 2009. Software Reverse EngineeringEducation.Master’s Theses and Graduate Research,
SanJose State University. USA. Available at:www.scholarworks.sjsu.edu/etd_theses/3734 accessed on: March
5, 2012
Comella-Dorda, S., Wallnau, K., Seacord, R. and Robert, J., 2000. A Survey of Black-Box
ModernizationApproaches for Information Systems, Proceedings of International Conference on Software
Maintenance, p.173

Cuadrado, F., Gorcia, B., Doenas, J. C., G, H. A. P. 2008. A Case Study on Software Evolution towards
Service-oriented Architecture. In: AINA. (2008) 1399-1404

Denoncourt, D., 2011. Approaches to Application Modernization. Scandinavian Developer Conference 2011
(SDC2011), Goteborg. Available at: www.scandevconf.se/2011 accessed on: April 6, 2014.

Erdil, K., Finn, E., Keating, K., Meattle, J., Park, S., Yoon, D., 2005. Software Maintenance as Part of the
Software Life Cycle, Department of Computer Science, Tufts University.
www.hepguru.com/maintenance/Final_121603_v6.pdf accessed on January 12, 2012

Gartner 2013. Gartner Survey Shows 75 Percent of Government CIO Budgets Flat or Increase in 2013; Gartner
Newsroom, 2013. Available at: www.gartner.com/newsroom/id/2572815 accessed on: April 6, 2014

Jatain, A. and Gaur, D., 2015. Reengineering Techniques for Object-oriented Legacy Systems; International
Journal of Software Engineering and its Application; 9(1) p. 35 – 52
http;//dx.doi.org/10.14257/ijseia.2015.9.1.04 accessed on August, 2015

Kim, H. K. 2009. Automatic Identification of Potential Reusable Mobile Components. Available at:
www.iaeng.org/ijcs/issues_v35/issue_4/ijcs_35_4_04.pdf accessed on: February 14, 2012.

Khadka, R., Batlajery, B. V., Saeidi, A. M., Jansen, S., and Hage, J., 2010. How Do Professionals
PerceivedLegacy Systems and Software Modernization? Utrecht University, Utrecht, the Netherlands.
Available at: www.servicifi.files.wordpress.com/2010/06/icse.pdfaccessed on: August 1, 2014.
Saarelainen, M., Ahonen, J. J., Lintinen, H., Koskinen, J.,Kankaanpaa, I., Sivula, H., Juutilainen, P. and
Tilus,T., 2006. Software Modernization and Replacement Decision Making in Industry: A Qualitative Study.
Available At:www.bcs.org/upload/pdf/ewic-ea06-paper.pdfaccessed on: August 26, 2014
Shahmohammed, G. R., Jalili, S., and Hasheminejad, S. M. H., 2010. Journal of Object Technology; ETH
Publishers, Zurich. Available at:www.jot.fm/issues_2010_11/article4.pdf accessed on: February 10, 2011

Sneed, H. M. and Wien, A. G., 2006. Wrapping Legacy Software for Reuse in a SOA. Available at:
www.citeSeerx.ist.psu.edu/viewdoc/downloadaccessed on: March 5, 2012

T-System 2013. White Paper on Legacy Modernization.Application management and Modernization.T-


System Publication. [online] Available at
www.zerodistance.cio.com/wp-content/uploads/2013/wp_legacy_modernizationAmm- 02042013.pdf

485
International Association for Management of Technology
IAMOT 2016 Conference Proceedings

accessed on: March 4, 2014


Malinova, A. (2010). Approaches and Techniques forLegacy Software Modernization, Bulgaria
ScientificWorks, 37 (2), University of Plovdiv, Plovdiv, Bulgaria. Available At:
www.fmi.uni-plovdiv.bg/GetResource?id=402accessed on:February 15, 2013

Mishra, S. K., Kushwaha, D. S. and Misra, A. K., 2009. Creating Reusable Software Components from
Object-oriented Legacy System through Reverse Engineering.Journal of Object Technology, ETH
Zurich.www.jot.fm/issues/issue_2009_07/article3.pdf accessed on: April 17, 2011

Yang, H; Liu, X. and Zedan, H., 2003. Tackling the Abstraction Problem for Reverse Engineering in a
System Reengineering Approach; in Proceedings of IEEE Conference on Software Maintenance, USA.

486

You might also like