Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Extended iterative maintenance life cycle using eXtreme programming

Published: 11 February 2014 Publication History

Abstract

Software maintenance is the continuous process of enhancing the operational life of software. The existing approaches to software maintenance, derived from the traditional approaches to development, are unable to resolve the problems of unstructured code, team morale, poor visibility of the project, lack of communication, and lack of proper test suites. Alternatively, extreme programming practices such as test driven development, refactoring, pair programming, continuous integration, small releases, and collective ownership help to resolve the aforesaid problems. In this paper, a process model is proposed for software maintenance using extreme programming practices to resolve maintenance issues in an improved manner. The proposed approach speeds up the maintenance process and produces more maintainable code with less effort for future maintenance and evolution. The proposed model is validated by applying it on several maintenance projects in an academic environment. It has been observed that the approach provides higher quality code. The proposed model based on extreme programming enhances both learning and productivity of the team by improving the morale, courage, and confidence of the team, which supports higher motivation during maintenance.

References

[1]
Lientz, B.P. and Swanson, E.B. 1980. Software Maintenance Management. Addison-Wesley publishing company.
[2]
McKee, J. R. 1984. Maintenance as a Function of Design. In Proceedings of the national computer conference and exposition, (July 1984). 187--193.
[3]
Basili, V. R. 1990. Viewing Maintenance as Reuse-Oriented Software Development. IEEE Software. 7, 1 (January 1990), 19--25.
[4]
Grubb, P. and Takang, A. A. 2003. Software Maintenance: Concepts and Practice. World Scientific.
[5]
Boehm, B. 1983. The economics of software maintenance. In Proc. of Int. Conf. on Software Maint., IEEE Computer Society Press, Monterey (December 1983), 9--36.
[6]
Osborne, W. M. 1987. Building and sustaining software maintainability. In Proceedings of Conference on Software Maintenance (October 1987), 13--23.
[7]
IEEE Std. 1219-1998. Standard for Software Maintenance, IEEE Computer Society Press. Los Alamitos, CA, 1998.
[8]
ISO/IEC 12207. Information Technology -- Software Life cycle Processes. Geneva, Switzerland, 1995.
[9]
Beck, K. 2006. Extreme Programming Explained -- Embrace Change. Pearson Education Low price Edition Asia.
[10]
Poole C. and Huisman, J. W. 2001 Using Extreme Programming in a Maintenance Environment. IEEE Software. 18, 2001, 42--50.
[11]
Poole, C. Murphy, T., and Huisman, J. W. 2001 Extreme maintenance. In Proceedings of the 17th IEEE International Conference on Software Maintenance. Florence, Italy, (2001), 301--309.
[12]
Van Deursen, A., Kuipers, T., and Moonen, L. 2002. Legacy to the Extreme. (2002), 267--275.
[13]
Svensson, H. and Host, M. 2005 Introducing an agile process in a software maintenance and evolution organization. In Proceedings of the Ninth European Conference on Software Maintenance and Reengineering, Manchester, (March 21 -- 23, 2005) 256--264.
[14]
Shaw, S. 2007. Using Agile Practices in a Maintenance Environment. Intelliware Development Inc.
[15]
Choudhari, J. and Suman, U. 2010. Iterative Maintenance Life cycle Using eXtreme Programming. In Proceedings of the International Conference on Advances in Recent Technologies in Communication and Computing ( Kottyam, India, October 15 - 16, 2010). ARTCom-2010. IEEE Computer Society, 401--403.
[16]
Choudhari, J. and Suman, U. 2012. Designing RC Story for Software Maintenance and Evolution. In Journal of Software (JSW), Academy Publisher,7, 5, 1103--1108.
[17]
Choudhari, J. and Suman, U. 2012. Story Points Based Effort Estimation Model for Software Maintenance. In Proceedings of the 2nd International Conference on Computer, Communication, Control and Information Technology (Hooghly, India, February 25 - 26, 2012). C3IT- 2012. Procedia Technology, 4, 761--765.
[18]
Choudhari, J. and Suman, U. 2012. Phase wise Effort Estimation for Software Maintenance: An Extended SMEEM Model. In Proceedings of the CUBE International Information Technology Conference (Pune, Maharashtra, India, September 3 - 5, 2012). ACM., 397--402.
[19]
Choudhari, J. and Suman, U. 2013. Code Change Approach for Maintenance using XP practices, in The International Journal of Soft Computing and Software Engineering {JSCSE}, 3, 3, 131--136.
[20]
Beck, K. 1999. Embracing Change with Extreme Programming. IEEE Computer, 32, 10, (Oct. 1999), 70--77.
[21]
Schuh, P., 2001. Recovery, Redemption, and Extreme Programming. IEEE Software, 18, 6, (Nov/Dec 2001), 34--41.
[22]
Wright, G. 2002. eXtreme Programming In A Hostile Environment. In Third International Conference on Extreme Programming and Flexible Processes in Software Engineering - XP2002, 48--51.
[23]
Eckman III, E.C. 2002. XP Transition Roadmap. In Third International Conference on Extreme Programming and Flexible Processes in Software Engineering - XP2002, 219--222.
[24]
Jalis, A. 2002. Probe Tests: A Strategy for Growing Automated Tests around Legacy Code. In Extreme Programming and Agile Methods - XP/Agile Universe. Springer Berlin Heidelberg, (2002), 122--130.
[25]
Elliotte Rusty Harold. Testing legacy code available at http://www.ibm.com/developerworks/java/library/jlegacytest/index.html.
[26]
Van Deursen, A., 2001. Program Comprehension Risks and Opportunities in Extreme Programming. In Proceedings 8th Working Conference on Reverse Engineering, (WCRE'2001), IEEE Computer Society, 176--185.
[27]
Van Deursen, A., Moonen, L., van den Bergh, A., and Kok, G. 2001. Refactoring Test Code. In Proceedings of the 2nd International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP2001), (2001), 92--95.
[28]
Fowler, M. 1998, Refactoring: Doing Design After the Program Runs, Distributed Computing, (Sept. 1998), 55--56.
[29]
Feathers, M. Working Effectively With Legacy Code available at http://www.objectmentor.com /resources/articles/WorkingEffectivelyWithLegacyCode.pdf.
[30]
Tokuda, L., and Batory, D., 1999. Evolving Object-Oriented Designs with Refactorings. In Proceedings of 14th International Conference on Automated Software Engineering, IEEE, 174--181.
[31]
Freeman, S. and Simmons, P. 2002. Retrofitting Unit Tests. In Third International Conference on Extreme Programming and Flexible Processes in Software Engineering - XP2002, 11--15.
[32]
Ricca, F. Di Penta, M. Torchiano, M. 2008. Guidelines on the use of Fit tables in Software Maintenance Tasks: Lessons Learned from 8 Experiments. In IEEE International Conference on Software Maintenance(ICSM), (September 2008), 317--326.
[33]
Bhat, T., Nagappan N. 2006. Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies. In Proceedings of the ACM/IEEE international symposium on Empirical software engineering. (September 2006), 356--363.
[34]
Villavicencio, G. 2011. Software Maintenance Supported by Refactoring. In Proceedings of the International Conference on Software Engineering Research and Practice.
[35]
Cockburn, A. and Williams, L. 2000. The Costs and Benefits of Pair Programming. In Proceedings of the 1st International Conference on eXtreme Programming and Flexible Processes in Software Engineering - XP2000, 2000.
[36]
Williams, L., Kessler, R.R., Cunningham, W., and Jeffries, R. 2000. Strengthening the Case for Pair Programming. IEEE Software, 17, 4, (Jul/Aug 2000), 19--25.
[37]
Rico, D.F. 2008. Agile Methods and Software Maintenance.
[38]
Alshayeb, M., and Li, W. 2005. An empirical study of system design instability metric and design evolution in an agile software process. Journal of Systems and Software, 74, 3, 269--274.
[39]
Purushothaman, R., and Perry, D. E. 2005. Toward understanding the rhetoric of small source code changes. IEEE Transactions on Software Engineering, 31,6, 511--526.
[40]
Kajko-Mattsson, M. and Nyfjord, J. 2009. A Model of Agile Evolution and Maintenance Process. In Proceedings of the 42nd Hawaii International Conference on System Sciences, (5-8 Jan. 2009), 1--10.
[41]
Hanssen, G. K., Yamashita A. F., Conradi, R. and Moonen, L. 2009. Maintenance and Agile Development: Challenges, Opportunities and Future Directions. In Proceedings of IEEE International Conference on Software Maintenance ICSM 2009. 487--490.
[42]
Thomas, D. 2006 Agile Evolution Towards The Continuous Improvement of Legacy Software. Journal of Object Technology. Published by ETH Zurich, Chair of Software Engineering, (September-October 2006) 5, 7.
[43]
Coleman, G. and McAnallen, M. 2006. Managing the Challenges of Legacy Systems Using Extreme Programming. In Software Process: Improvement and Practice, 11, 3(2006), 269--275.
[44]
Jain, N. 2006. Offshore Agile Maintenance. In Proceedings of AGILE 2006 Conference AGILE'06. (July 2006).
[45]
XU, B. 2005. Extreme Programming for Distributed Legacy System Reengineering. In Proceedings of the 29th Annual International Computer Software and Applications Conference COMPSAC'05, 2 (July 2005), 160--165.
[46]
Koskela, J. Myllyaho, M. Kääriäinen, J. Bendas, D. Hyysalo, J. and Virta, A. 2004. Experiences of Using Extreme Programming to Support a Legacy Information System Migration Project, Software & systems engineering and their applications, 2004.
[47]
Xu, B. Yang, X. He, Z. and Maddineni, S.R. 2004. Achieving High Quality in Outsourcing Reengineering Projects throughout Extreme Programming, IEEE International Conference on Systems, Man and Cybernetics, 3 (Oct. 2004), 2131--2136.
[48]
Heiskala, M. 2003. Applying Extreme Programming to Evolution of non-XP Legacy Code. HUT / SoberIT Spring T-76.650 Software Engineering Seminar, Software Evolution, 2003.
[49]
Kuhlmann, U. 2004. Maintenance Activities in Software Process Models: Theory and Case Study Practice. University of Koblenz.
[50]
Warden, S. 2003. Extreme Programming Pocket Guide. O'Reilly Media, Incorporated, 2003.
[51]
Boehm, B.W. 1981. Software Engineering Economics. Prentice-Hall.

Cited By

View all
  • (2024)Software maintenance practices using agile methods towards cloud environmentJournal of Software: Evolution and Process10.1002/smr.269836:11Online publication date: 5-Nov-2024
  • (2023)Challenges in Agile Software Maintenance for Local and Global Development: An Empirical AssessmentInformation10.3390/info1405026114:5(261)Online publication date: 27-Apr-2023
  • (2022)A Survey on Mobile App Development Approaches With the Industry PerspectiveInternational Journal of Open Source Software and Processes10.4018/IJOSSP.30075413:1(1-17)Online publication date: 20-May-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 39, Issue 1
January 2014
193 pages
ISSN:0163-5948
DOI:10.1145/2557833
  • Editor:
  • Will Tracz
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 February 2014
Published in SIGSOFT Volume 39, Issue 1

Check for updates

Author Tags

  1. extreme programming
  2. software maintenance

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Software maintenance practices using agile methods towards cloud environmentJournal of Software: Evolution and Process10.1002/smr.269836:11Online publication date: 5-Nov-2024
  • (2023)Challenges in Agile Software Maintenance for Local and Global Development: An Empirical AssessmentInformation10.3390/info1405026114:5(261)Online publication date: 27-Apr-2023
  • (2022)A Survey on Mobile App Development Approaches With the Industry PerspectiveInternational Journal of Open Source Software and Processes10.4018/IJOSSP.30075413:1(1-17)Online publication date: 20-May-2022
  • (2020)ER2C SDMLC: enterprise release risk-centric systems development and maintenance life cycleSoftware Quality Journal10.1007/s11219-019-09452-728:4(1755-1787)Online publication date: 1-Dec-2020
  • (2016)Advantages and Disadvantages of using Shared code from the Developers PerspectiveProceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/2961111.2962624(1-6)Online publication date: 8-Sep-2016
  • (2016)Analysis of linear sequential and extreme programming development methodology for a gaming application2016 International Conference on Communication and Signal Processing (ICCSP)10.1109/ICCSP.2016.7754505(1916-1920)Online publication date: Apr-2016
  • (2016)Transition of Software Maintenance Teams from Scrum to KanbanProceedings of the 2016 49th Hawaii International Conference on System Sciences (HICSS)10.1109/HICSS.2016.670(5427-5436)Online publication date: 5-Jan-2016
  • (2015)An Empirical Evaluation of Iterative Maintenance Life Cycle Using XPACM SIGSOFT Software Engineering Notes10.1145/2735399.273540640:2(1-14)Online publication date: 3-Apr-2015
  • (2015)Optimising agile development practices for the maintenance operationEmpirical Software Engineering10.1007/s10664-014-9335-720:6(1762-1784)Online publication date: 1-Dec-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media