Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2593882.2593893acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Software evolution and maintenance

Published: 31 May 2014 Publication History

Abstract

Successful software requires constant change that is triggered by evolving requirements, technologies, and stakeholder knowledge. This constant change constitutes software evolution. Software evolution has gained steadily in importance and recently moved into the center of attention of software developers. There is the new prominence of evolutionary software development that includes agile, iterative, open source, inner source, and other processes. As a consequence, the bulk of software development now happens in the stage of software evolution and this changed the face of software engineering. This paper discusses evolutionary software development and also discusses the software change, which is the fundamental software evolution task. It further discusses research methodologies, teaching software evolution in undergraduate curriculum, and difference between software evolution and software maintenance. For all these themes, this travelogue paper presents the current state of the art and the perspective of the future advance.

References

[1]
Bennett, K. H. and Rajlich, V. T. 2000. Software maintenance and evolution: a roadmap. In Proceedings of the Conference on the Future of Software Engineering, pp. 73- 87.
[2]
Rajlich, V. 2012. Software Engineering: The Current Practice. Boca Raton, FL: CRC Press.
[3]
Belady, L. A. and Lehman, M. M. 1976. A model of large program development. IBM Systems Journal, vol. 15, pp. 225-252.
[4]
Godfrey, M. W. and German, D. M. 2008. The past, present, and future of software evolution. In Proceedings of the Frontiers of Software Maintenance, 2008. pp. 129-138.
[5]
Mens, T. and Demeyer, S. 2008. Software evolution. Springer.
[6]
Rajlich, V. and Bennett, K. H. 2000. A Staged Model for the Software Life Cycle. IEEE Computer, vol. 33, pp. 66-71.
[7]
Larman, C. and Basili, V. R. 2003. Iterative and Incremental Development: A Brief History, IEEE Computer, vol. 36, pp. 47 - 56.
[8]
Schwaber, K. and Beedle, M. 2002. Agile Software Development with Scrum. Upper Saddle River, NJ: Prentice Hall.
[9]
Rising, L. and Janoff, N. S. 2000. The Scrum software development process for small teams. IEEE Software, vol. 17, pp. 26-32.
[10]
Beck, K. 2000. Extreme Programming Explained. Reading, MA: Addison Wesley.
[11]
Rajlich, V. and Hua, J. 2013. Which Practices are Suitable for an Academic Software Project? In Proceedings of the IEEE International Conference on Software Maintenace (ICSM), pp. 440 - 443.
[12]
Madden, W. A. and Rone, K. Y. 1984. Design, development, integration: space shuttle primary flight software system, Commun. ACM, vol. 27, pp. 914-925.
[13]
Weber, S. 2004. The success of open source. Cambridge University Press.
[14]
Feller, J. and Fitzgerald, B. 2002. Understanding open source software development: Addison-Wesley London.
[15]
Gurbani, V. K., Garvert, A., and Herbsleb, J. D. 2006. A case study of a corporate open source development model. In Proceedings of the International Conference on Software Engineering (ICSE), pp. 472-481.
[16]
Lindman, J., Rossi, M., and Marttiin, P. 2008. Applying open source development practices inside a company. In Open Source Development, Communities and Quality, Springer, pp. 381-387.
[17]
Humphrey, W. S. 1999. Introduction to the team software process Addison-Wesley Professional.
[18]
Cusumano, M. A. and Selby, R. W. 1997. How Microsoft builds software. Communications of the ACM, vol. 40, pp. 53-61.
[19]
Dorman, C. and Rajlich, V. 2012. Software Change in the Solo Iterative Process: An Experience Report. .In Proceedings of the Agile (AGILE), IEEE Computer Society, pp. 22-30.
[20]
2013. Chaos Manifesto 2013. Available at: http://versionone.com/assets/img/files/ChaosManifesto2013. pdf, accessed on
[21]
Shah, S. K. 2006. Motivation, governance, and the viability of hybrid forms in open source software development. Management Science, vol. 52, pp. 1000-1014.
[22]
Friebel, G. and Schnedler, W. 2011. Team governance: Empowerment or hierarchical control. Journal of Economic Behavior & Organization, vol. 78, pp. 1-13.
[23]
Silva da Silva, T., Martin, A., Maurer, F., and Silveira, M. 2011. User-centered design and Agile methods: a systematic review. In Proceedings of the Agile Conference (AGILE), IEEE Computer Society, pp. 77-86.
[24]
McLeod, L. and MacDonell, S. G. 2011. Factors that affect software systems development project outcomes: A survey of research. ACM Computing Surveys, vol. 43.
[25]
Clarke, P. and O’Connor, R. V. 2012. The situational factors that affect the software development process: Towards a comprehensive reference framework. Information and Software Technology, vol. 54, pp. 433-447.
[26]
2009. Survey Finds Majority of Senior Software Business Leaders See Rise in Development Budgets. Available at: http://www.softserveinc.com/news/survey-senior-softwarebusiness-leaders-rise-development-budgets/, accessed on 3/12/2014
[27]
Hu, E. 2013. This Slide Shows Why HealthCare.gov Wouldn't Work At Launch. Available at: http://www.npr.org/blogs/alltechconsidered/2013/11/19/2461 32770/this-slide-shows-why-healthcare-gov-wouldnt-workat-launch, accessed on 3/12/2014
[28]
Carroll, P. B. 1988.Computer glitch: Patching up software occupies programmers and disables systems. Wall Street Journal, vol. 118, p. 1.
[29]
Beck, K. 2003. Test driven development: By example. Addison-Wesley Professional.
[30]
Feathers, M. 2005. Working Effectively with Legacy Code. Upper Saddle River, NJ: Prentice Hall PTR.
[31]
Rajlich, V. and Gosavi, P. 2004. Incremental Change in Object-Oriented Programming. IEEE Software, vol. 21, pp. 62-69.
[32]
Febbraro, N., Rajlich, V. 2007. The Role of Incremental Change in Agile Software Processes. In Proceedings of the Agile (AGILE), IEEE Computer Society, pp. 92-103.
[33]
Nuseibeh, B. 2014. Requirements Engineering Travelogue. In Proceedings of the IEEE International Conference on Software Engineering (ICSE), Future of Software Engineering.
[34]
Fowler, M. 1999. Refactoring: Improving the Design of Existing Code. Reading, MA: Addison Wesley.
[35]
Mens, T. and Tourwé, T. 2004. A survey of software refactoring," Software Engineering, IEEE Transactions on, vol. 30, pp. 126-139.
[36]
Orso, A. and Rothermel, G. 2014. Software Testing: A Research Travelogue (2000 – 2014). In Proceedings of the IEEE International conference on Software Engineering (ICSE), Future of Software Engineering.
[37]
Duvall, P. M., Matyas, S., and Glover, A. 2007. Continuous integration: improving software quality and reducing risk: Pearson Education.
[38]
Frege, G. 1964. The basic laws of arithmetic University of California Press.
[39]
De Saussure, F. 2006. Writings in general linguistics Oxford University Press.
[40]
Petrenko, M. and Rajlich, V. 2013. Concept location using program dependencies and information retrieval (DepIR). Inform. Softw. Technol., vol. 55, pp. 651-659.
[41]
Rajlich, V. 2009. Intensions are a key to program comprehension.In Proceedings of the IEEE International Conference on Program Comprehension (ICPC), pp. 1-9.
[42]
Wilde, N., Buckellew, M., Page, H., Rajlich, V., and Pounds, L. 2003. A Comparison of Methods for Locating Features in Legacy Software. Journal of Systems and Software, vol. 65, pp. 105-114.
[43]
Dit, B., Revelle, M., Gethers, M., and Poshyvanyk, D. 2013. Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process, vol. 25, pp. 53- 95.
[44]
Ratiu, D. and Deissenboeck, F. 2007. From reality to programs and (not quite) back again. In Proceedings of the IEEE International Conference on Program Comprehension (ICPC), pp. 91-102.
[45]
Wilson, L. A., Petrenko, M., and Rajlich, V. 2012. Using Concept Maps to Assist Program Comprehension and Concept Location: An Empirical Study. Journal of Information & Knowledge Management, vol. 11.
[46]
Li, B., Sun, Z., Leung, H., and Zhang, S. 2012. A survey of code-based change impact analysis techniques. Softw. Test. Verif. Reliab. Vol. 23(8), pp. 613-646
[47]
Petrenko, M. 2011. JRipples. Available at: http://jripples.sourceforge.net/
[48]
Hassan, A. E. and Holt, R. C. 2006. Replaying development history to assess the effectiveness of change propagation tools. Empirical Software Engineering, vol. 11, pp. 335 - 367.
[49]
Rajlich, V. 2000. Incremental Redocumentation Using the Web. IEEE Software, September/October, pp. 102-106.
[50]
Antoniol, G., Canfora, G., Casazza, G., De Lucia, A., and Merlo, E. 2002. Recovering traceability links between code and documentation. Software Engineering, IEEE Transactions on, vol. 28, pp. 970-983.
[51]
Marcus, A. and Maletic, J. I. 2003. Recovering Documentation-to-Source-Code Traceability Links using Latent Semantic Indexing.In Proceedings of the International Conference on Software Engineering (ICSE), Portland, Oregon, USA, pp. 125-135.
[52]
Petrenko, M., Rajlich, V., and Vanciu, R. 2008. Partial Domain Comprehension in Software Evolution and Maintenance. In Proceedings of the IEEE International Conference on Software Comprehension (ICPC), pp.13 - 22.
[53]
Petrenko, M. 2009. On use of dependency and semantics information in incremental change. PhD thesis. Department of Computer Science, Wayne State University.
[54]
Murphy-Hill, E. and Black, A. P. 2008. Refactoring tools: Fitness for purpose. IEEE Software, vol. 25, pp. 38-44.
[55]
Wohlin, C., Höst, M., and Henningsson, K. 2003. Empirical research methods in software engineering. in Empirical Methods and Studies in Software Engineering, Springer, pp. 7-23.
[56]
Wilde, N., Gust, T., Gomez, J. A., and Strasburg, D. 1992. Locating User Functionality in Old Code. In Proceedings of the IEEE Conference on Software Maintenance (CSM), pp. 200-205.
[57]
Chen, K. and Rajlich, V. 2000. Case Study of Feature Location Using Dependency Graph. In Proceedings of the IEEE International Workshop on Program Comprehension (IWPC), pp. 241-249.
[58]
Runeson, P. and Höst, M. 2009. Guidelines for conducting and reporting case study research in software engineering, Empirical Software Engineering, vol. 14, pp. 131-164.
[59]
Jász, J., Beszédes, Á., Gyimóthy, T., and Rajlich, V. 2008. Static execute after/before as a replacement of traditional software dependencies. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM), pp. 137-146.
[60]
Kagdi, H., Collard, M., and Maletic, J. 2007. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of Software Maintenace and Evolution, vol. 19, pp. 77-131.
[61]
Demeyer, S., Murgia, A., Wyckmans, K., and Lamkanfi, A. 2013. Happy birthday! a trend analysis on past MSR papers. In Proceedings of the International Workshop on Mining Software Repositories (MSR), pp. 353-362.
[62]
Petrenko, M. and Rajlich, V. 2009. Variable Granularity for Improving Precision of Impact Analysis. In Proceedings of the IEEE International Conference on Program Comprehension (ICPC), pp. 10-19.
[63]
Canfora, G. and Cerulo, L. 2005. Impact Analysis by Mining Software and Change Request Repositories. In Proceedings of the IEEE International Symposium on Software Metrics, pp. 9-29.
[64]
Antoniol, G., Canfora, G., Casazza, G., and De Lucia, A. 2000. Identifying the Starting Impact Set of a Maintenance Request: a Case Study. In Proceedings of the European Conference on Software Maintenance and Reengineering (CSMR), pp. 227-230.
[65]
Poshyvanyk, D., Gueheneuc, Y.-G., Marcus, A., Antoniol, G., and Rajlich, V. 2007. Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval. IEEE Transactions on Software Engineering, vol. 33, pp. 420-432.
[66]
Kitchenham, B. A., et al. 2002. Preliminary guidelines for empirical research in software engineering, IEEE Transactions on Software Engineering, vol. 28, pp. 721-734.
[67]
Shah, H. B., Gorg, C., and Harrold, M. J. 2010. Understanding exception handling: Viewpoints of novices and experts. Software Engineering, IEEE Transactions on, vol. 36, pp. 150-161.
[68]
Popper, K. R. 2002. The logic of scientific discovery. London and New York: Routledge.
[69]
Brooks Jr, F. P. 1987. No silver bullet - essence and accidents of software engineering, IEEE Computer, vol. 20, pp. 10-19.
[70]
Sneed, H. M. 1989.Software engineering management: Halsted Press.
[71]
Lehner, F. 1991. Software life cycle management based on a phase distinction method. Microprocessing and Microprogramming, vol. 32, pp. 603-608.
[72]
Johnson, P., Jacobson, I., Goedicke, M., and Kajko-Mattsson, M. 2013. 2nd SEMAT workshop on a general theory of software engineering. In Proceedings of the International Conference on Software Engineering (ICSE), pp. 1525-1526.
[73]
Stol, K. J. and Fitzgerald, B. 2013. Uncovering Theories in Software Engineering. In Proceedings of the General Theories of Software Engineering (GTSE 2013), pp. 5 - 14.
[74]
Stroustrup, B. 2010. What Should We Teach New Software Developers? Why? Communications of the ACM, vol. 53, pp. 40-42.
[75]
Rajlich, V. 2013. Teaching Developer Skills in the First Software Engineering Course. In Proceedings of the International Conference on Software Engineering (ICSE), San Francisco, pp. 1109 - 1116.
[76]
Rajlich, V. 2013. Software Engineering: The Current Practice”, Lab manual. Available at: http://www.cs.wayne.edu/rajlich/ProjectAndLabs/index.html, accessed on 3/12/2014
[77]
Shaw, M. 2000. Software engineering education: a roadmap.In Proceedings of the Conference on The Future of Software Engineering, pp. 371-380.
[78]
2008. "ISO/IEC/IEEE Standard for Systems and Software Engineering - Software Life Cycle Processes". Available at: http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber =4475822, accessed on 1/06.
[79]
Bugde, S., Nagappan, N., Rajamani, S., and Ramalingam, G. 2008. Global software servicing: Observational experiences at microsoft. In Proceedings of the IEEE International Conference on Global Software Engineering, (ICGSE). pp. 182-191.
[80]
April, A., Huffman Hayes, J., Abran, A., and Dumke, R. 2005. Software Maintenance Maturity Model (SMmm): the software maintenance process model. Journal of Software Maintenance and Evolution: Research and Practice, vol. 17, pp. 197-223.
[81]
Pino, F. J., Ruiz, F., García, F., and Piattini, M. 2012. A software maintenance methodology for small organizations: Agile_MANTEMA, Journal of Software: Evolution and Process, vol. 24, pp. 851-876.
[82]
Xiong, C. J., Xie, M., and Ng, S. H. 2011. Optimal software maintenance policy considering unavailable time. Journal of Software Maintenance and Evolution: Research and Practice, vol. 23, pp. 21-33.
[83]
Gkantsidis, C., Karagiannis, T., and Vojnovic, M. 2006.Planet scale software updates. ACM SIGCOMM Computer Communication Review, vol. 36, pp. 423-434.
[84]
Khan, A. S. and Kajko-Mattsson, M. 2010. Taxonomy of handover activities. In Proceedings of the International Conference on Product Focused Software, pp. 131-134.
[85]
Pigoski, T. M. 1996. Practical software maintenance: best practices for managing your software investment. John Wiley & Sons, Inc.
[86]
Eick, S. G., Graves, T. L., Karr, A. F., Marron, J. S., and Mockus, A. 2001. Does Code Decay? Assessing the Evidence from Change Management Data. IEEE Transactions on Software Engineering, vol. 27, pp. 1-12.
[87]
Parnas, D. L. 1994. Software aging.In Proceedings of the International Conference on Software Engineering (ICSE), pp. 279-287.
[88]
Rajlich, V., Wilde, N. B., M., and Page, H. 2001. Software Cultures and Evolution. IEEE Computer, pp. 24-29.

Cited By

View all
  • (2025)Dissecting Code Features: An Evolutionary Analysis of Kernel Versus Nonkernel Code in Operating SystemsJournal of Software: Evolution and Process10.1002/smr.275237:1Online publication date: 25-Jan-2025
  • (2024)Managing Large-Scale Internal Platform Evolution: AI-Assisted Tools and Techniques for Enterprise Engineering TeamsInternational Journal of Scientific Research in Computer Science, Engineering and Information Technology10.32628/CSEIT24106110110:6(605-615)Online publication date: 18-Nov-2024
  • (2024)Software Evolution of I4.0 Digital Twins with Semantic Patching2024 IEEE 33rd International Symposium on Industrial Electronics (ISIE)10.1109/ISIE54533.2024.10595745(1-6)Online publication date: 18-Jun-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FOSE 2014: Future of Software Engineering Proceedings
May 2014
224 pages
ISBN:9781450328654
DOI:10.1145/2593882
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • TCSE: IEEE Computer Society's Tech. Council on Software Engin.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 May 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Staged model of software lifespan
  2. actualization
  3. concept location
  4. empirical techniques
  5. evolutionary software development
  6. impact analysis
  7. phased model of software change
  8. practices of software development
  9. reasoning about software evolution
  10. refactoring
  11. software maintenance
  12. teaching software evolution

Qualifiers

  • Article

Conference

ICSE '14
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)259
  • Downloads (Last 6 weeks)9
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Dissecting Code Features: An Evolutionary Analysis of Kernel Versus Nonkernel Code in Operating SystemsJournal of Software: Evolution and Process10.1002/smr.275237:1Online publication date: 25-Jan-2025
  • (2024)Managing Large-Scale Internal Platform Evolution: AI-Assisted Tools and Techniques for Enterprise Engineering TeamsInternational Journal of Scientific Research in Computer Science, Engineering and Information Technology10.32628/CSEIT24106110110:6(605-615)Online publication date: 18-Nov-2024
  • (2024)Software Evolution of I4.0 Digital Twins with Semantic Patching2024 IEEE 33rd International Symposium on Industrial Electronics (ISIE)10.1109/ISIE54533.2024.10595745(1-6)Online publication date: 18-Jun-2024
  • (2024)Explaining the Business-Technological Age of Legacy Information SystemsIEEE Access10.1109/ACCESS.2024.341437712(84579-84611)Online publication date: 2024
  • (2024)Source code expert identification: Models and applicationInformation and Software Technology10.1016/j.infsof.2024.107445170(107445)Online publication date: Jun-2024
  • (2023)Empirical Investigation of the Diverse Refactoring Effects on Software Quality: The Role of Refactoring Tools and Software Size2023 3rd International Conference on Emerging Smart Technologies and Applications (eSmarTA)10.1109/eSmarTA59349.2023.10293407(1-6)Online publication date: 10-Oct-2023
  • (2023)Live Is Life: Teaching Software Engineering on Live SystemsIEEE Software10.1109/MS.2023.331137640:6(117-125)Online publication date: 1-Nov-2023
  • (2023)Optimized Refactoring Mechanisms to Improve Quality Characteristics in Object-Oriented SystemsIEEE Access10.1109/ACCESS.2023.331318611(99143-99158)Online publication date: 2023
  • (2023)Revisiting Scenarios of Using Refactoring Techniques to Improve Software Systems QualityIEEE Access10.1109/ACCESS.2022.321800711(28800-28819)Online publication date: 2023
  • (2023)Software Evolutionary Architecture: Automated Planning for Functional ChangesScience of Computer Programming10.1016/j.scico.2023.102978(102978)Online publication date: Jun-2023
  • Show More Cited By

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