skip to main content
Skip header Section
Program evolution: processes of software changeSeptember 1985
  • Editors:
  • M. M. Lehman,
  • L. A. Belady
Publisher:
  • Academic Press Professional, Inc.
  • 525 B Street Suite 1900 San Diego, CA
  • United States
ISBN:978-0-12-442440-1
Published:01 September 1985
Pages:
538
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. Kang P (2023). Evolving scientific code adaptations with modularization frameworks, Automated Software Engineering, 30:2, Online publication date: 1-Nov-2023.
  2. Tasnim J, Chakroborti D, Roy C and Schneider K How Does Quality Deviate in Stable Releases by Backporting? Proceedings of the 45th International Conference on Software Engineering: New Ideas and Emerging Results, (140-145)
  3. Singh R, Bindal A and Kumar A (2022). Improving Software Design by Mitigating Code Smells, International Journal of Software Innovation, 10:1, (1-21), Online publication date: 30-Sep-2022.
  4. Borisov P and Kosolapov Y (2020). On the Automatic Analysis of the Practical Resistance of Obfuscating Transformations, Automatic Control and Computer Sciences, 54:7, (619-629), Online publication date: 1-Dec-2020.
  5. Guamán D, Pérez J, Garbajosa J and Rodríguez G A Systematic-Oriented Process for Tool Selection: The Case of Green and Technical Debt Tools in Architecture Reconstruction Product-Focused Software Process Improvement, (237-253)
  6. ACM
    Yu Q, He F and Wang B (2020). Incremental predicate analysis for regression verification, Proceedings of the ACM on Programming Languages, 4:OOPSLA, (1-25), Online publication date: 13-Nov-2020.
  7. Mora‐Cantallops M, Sicilia M, García‐Barriocanal E and Sánchez‐Alonso S (2020). Evolution and prospects of the Comprehensive R Archive Network (CRAN) package ecosystem, Journal of Software: Evolution and Process, 32:11, Online publication date: 10-Nov-2020.
  8. ACM
    Haas R, Niedermayr R, Roehm T and Apel S (2020). Is Static Analysis Able to Identify Unnecessary Source Code?, ACM Transactions on Software Engineering and Methodology, 29:1, (1-23), Online publication date: 31-Jan-2020.
  9. Maltesque G, Catolino G and Ferrucci F (2019). An extensive evaluation of ensemble techniques for software change prediction, Journal of Software: Evolution and Process, 31:9, Online publication date: 13-Oct-2019.
  10. Haas R, Niedermayr R, Röhm T and Apel S Recommending unnecessary source code based on static analysis Proceedings of the 41st International Conference on Software Engineering: Companion Proceedings, (274-275)
  11. Xiu P, Yang J and Zhao W (2019). Change management of service-based business processes, Service Oriented Computing and Applications, 13:1, (51-66), Online publication date: 1-Mar-2019.
  12. ACM
    Krusche S, Dzvonyar D, Xu H and Bruegge B (2018). Software Theater—Teaching Demo-Oriented Prototyping, ACM Transactions on Computing Education, 18:2, (1-30), Online publication date: 14-Jul-2018.
  13. ACM
    Salza P, Palomba F, Di Nucci D, D'Uva C, De Lucia A and Ferrucci F Do developers update third-party libraries in mobile apps? Proceedings of the 26th Conference on Program Comprehension, (255-265)
  14. ACM
    Krishna R, Agrawal A, Rahman A, Sobran A and Menzies T What is the connection between issues, bugs, and enhancements? Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice, (306-315)
  15. ACM
    Haque M, Carver J and Atkison T Causes, impacts, and detection approaches of code smell Proceedings of the ACMSE 2018 Conference, (1-8)
  16. Munaiah N, Kroh S, Cabrey C and Nagappan M (2017). Curating GitHub for engineered software projects, Empirical Software Engineering, 22:6, (3219-3253), Online publication date: 1-Dec-2017.
  17. Tufano M, Palomba F, Bavota G, Oliveto R, Penta M, De Lucia A and Poshyvanyk D (2017). When and Why Your Code Starts to Smell Bad (and Whether the Smells Go Away), IEEE Transactions on Software Engineering, 43:11, (1063-1088), Online publication date: 1-Nov-2017.
  18. Krusche S and Bruegge B CSEPM Proceedings of the 3rd International Workshop on Rapid Continuous Software Engineering, (2-8)
  19. Krusche S, Bruegge B, Camilleri I, Krinkin K, Seitz A and Wöbker C Chaordic learning Proceedings of the 39th International Conference on Software Engineering: Software Engineering and Education Track, (87-96)
  20. Catolino G, Palomba F, De Lucia A, Ferrucci F and Zaidman A Developer-related factors in change prediction Proceedings of the 25th International Conference on Program Comprehension, (186-195)
  21. Guan F, Peng L, Perneel L and Timmerman M (2016). Open source FreeRTOS as a case study in real-time operating system evolution, Journal of Systems and Software, 118:C, (19-35), Online publication date: 1-Aug-2016.
  22. Ashmore S and Wedlake M (2016). Developing the Product Your Customer Really Wants, Information Resources Management Journal, 29:3, (1-11), Online publication date: 1-Jul-2016.
  23. Ghezzi C Dependability of Adaptable and Evolvable Distributed Systems Advanced Lectures of the 16th International School on Formal Methods for the Quantitative Evaluation of Collective Adaptive Systems - Volume 9700, (36-60)
  24. Chen J, Xiao J, Wang Q, Osterweil L and Li M (2016). Perspectives on refactoring planning and practice, Empirical Software Engineering, 21:3, (1397-1436), Online publication date: 1-Jun-2016.
  25. Bastos C, Junior P and Costa H Detection Techniques of Dead Code: Systematic Literature Review Proceedings of the XII Brazilian Symposium on Information Systems on Brazilian Symposium on Information Systems: Information Systems in the Cloud Computing Era - Volume 1, (255-262)
  26. ACM
    Spinellis D, Louridas P and Kechagia M The evolution of C programming practices Proceedings of the 38th International Conference on Software Engineering, (748-759)
  27. ACM
    Alcocer J and Bergel A (2015). Tracking down performance variation against source code evolution, ACM SIGPLAN Notices, 51:2, (129-139), Online publication date: 11-May-2016.
  28. ACM
    Gama K and Donsez D Dynamically reconfigurable trust policies for untrustworthy third-party components Proceedings of the 31st Annual ACM Symposium on Applied Computing, (1204-1209)
  29. ACM
    Heinrich R (2016). Architectural Run-time Models for Performance and Privacy Analysis in Dynamic Cloud Applications, ACM SIGMETRICS Performance Evaluation Review, 43:4, (13-22), Online publication date: 25-Feb-2016.
  30. ACM
    Alcocer J and Bergel A Tracking down performance variation against source code evolution Proceedings of the 11th Symposium on Dynamic Languages, (129-139)
  31. Ampatzoglou A, Chatzigeorgiou A, Charalampidou S and Avgeriou P (2015). The Effect of GoF Design Patterns on Stability: A Case Study, IEEE Transactions on Software Engineering, 41:8, (781-802), Online publication date: 1-Aug-2015.
  32. Espinha T, Zaidman A and Gross H Web API fragility Proceedings of the Second ACM International Conference on Mobile Software Engineering and Systems, (12-21)
  33. Tufano M, Palomba F, Bavota G, Oliveto R, Di Penta M, De Lucia A and Poshyvanyk D When and why your code starts to smell bad Proceedings of the 37th International Conference on Software Engineering - Volume 1, (403-414)
  34. Colazo J (2015). The interplay among software volatility, complexity and development outcomes, International Journal of Information Technology and Management, 14:2/3, (160-171), Online publication date: 1-Apr-2015.
  35. (2015). Web API growing pains, Journal of Systems and Software, 100:C, (27-43), Online publication date: 1-Feb-2015.
  36. ACM
    Tiwari U and Kumar S (2014). In-out interaction complexity metrics for component-based software, ACM SIGSOFT Software Engineering Notes, 39:5, (1-4), Online publication date: 17-Sep-2014.
  37. ACM
    Khan T, Humayoun S, Amrhein K, Barthel H, Ebert A and Liggesmeyer P eCITY+ Proceedings of the 2014 European Conference on Software Architecture Workshops, (1-4)
  38. ACM
    Schulte L, Sajnani H and Czerwonka J Active files as a measure of software maintainability Companion Proceedings of the 36th International Conference on Software Engineering, (34-43)
  39. ACM
    Petrić J and Grbac T Software structure evolution and relation to system defectiveness Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, (1-10)
  40. ACM
    Falessi D, Kruchten P, Nord R and Ozkaya I (2014). Technical debt at the crossroads of research and practice, ACM SIGSOFT Software Engineering Notes, 39:2, (31-33), Online publication date: 29-Mar-2014.
  41. ACM
    Macho H and Robles G Preliminary lessons from a software evolution analysis of Moodle Proceedings of the First International Conference on Technological Ecosystem for Enhancing Multiculturality, (157-161)
  42. ACM
    Herraiz I, Rodriguez D, Robles G and Gonzalez-Barahona J (2013). The evolution of the laws of software evolution, ACM Computing Surveys, 46:2, (1-28), Online publication date: 1-Nov-2013.
  43. Baresi L and Ghezzi C (2013). A journey through SMScom, Computer Science - Research and Development, 28:4, (267-277), Online publication date: 1-Nov-2013.
  44. Persson M, Törngren M, Qamar A, Westman J, Biehl M, Tripakis S, Vangheluwe H and Denil J A characterization of integrated multi-view modeling in the context of embedded and cyber-physical systems Proceedings of the Eleventh ACM International Conference on Embedded Software, (1-10)
  45. Khamis N, Rilling J and Witte R (2013). Assessing the quality factors found in in-line documentation written in natural language, Data & Knowledge Engineering, 87, (19-40), Online publication date: 1-Sep-2013.
  46. ACM
    Espinha T, Zaidman A and Gross H Understanding the interactions between users and versions in multi-tenant systems Proceedings of the 2013 International Workshop on Principles of Software Evolution, (53-62)
  47. ACM
    Alcocer J and Bergel A Tracking performance failures with rizel Proceedings of the 2013 International Workshop on Principles of Software Evolution, (38-42)
  48. Jang J, Woo M and Brumley D Towards automatic software lineage inference Proceedings of the 22nd USENIX conference on Security, (81-96)
  49. Hao D, Lan T, Zhang H, Guo C and Zhang L Is this a bug or an obsolete test? Proceedings of the 27th European conference on Object-Oriented Programming, (602-628)
  50. Negara S, Chen N, Vakilian M, Johnson R and Dig D A comparative study of manual and automated refactorings Proceedings of the 27th European conference on Object-Oriented Programming, (552-576)
  51. ACM
    Feugas A, Mosser S and Duchien L A causal model to predict the effect of business process evolution on quality of service Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures, (143-152)
  52. ACM
    Dajsuren Y, van den Brand M, Serebrenik A and Roubtsov S Simulink models are also software Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures, (99-106)
  53. ACM
    Li B, Zhang Q, Sun X and Leung H WAVE-CIA Proceedings of the 28th Annual ACM Symposium on Applied Computing, (1000-1005)
  54. ACM
    Wang J, Liu L and Wang J Understanding evolution in Internetware using a double pyramids model Proceedings of the Fourth Asia-Pacific Symposium on Internetware, (1-9)
  55. Ishfaq R and Raja U (2012). Task-Resource Capability Alignment, Information Resources Management Journal, 25:4, (1-25), Online publication date: 1-Oct-2012.
  56. ACM
    Di Rocco J, Iovino L and Pierantonio A Bridging state-based differencing and co-evolution Proceedings of the 6th International Workshop on Models and Evolution, (15-20)
  57. Pleuss A, Botterweck G, Dhungana D, Polzer A and Kowalewski S (2012). Model-driven support for product line evolution on feature level, Journal of Systems and Software, 85:10, (2261-2274), Online publication date: 1-Oct-2012.
  58. ACM
    Calinescu R, Ghezzi C, Kwiatkowska M and Mirandola R (2012). Self-adaptive software needs quantitative verification at runtime, Communications of the ACM, 55:9, (69-77), Online publication date: 1-Sep-2012.
  59. Mcintosh S, Adams B and Hassan A (2012). The evolution of Java build systems, Empirical Software Engineering, 17:4-5, (578-608), Online publication date: 1-Aug-2012.
  60. ACM
    Abate P, Di Cosmo R, Treinen R and Zacchiroli S Learning from the future of component repositories Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering, (51-60)
  61. Negara S, Vakilian M, Chen N, Johnson R and Dig D Is it dangerous to use version control histories to study source code evolution? Proceedings of the 26th European conference on Object-Oriented Programming, (79-103)
  62. Robbes R, Röthlisberger D and Tanter É Extensions during software evolution Proceedings of the 26th European conference on Object-Oriented Programming, (28-52)
  63. Robles G, Herraiz I, Germán D and Izquierdo-Cortázar D Modification and developer metrics at the function level Proceedings of the 3rd International Workshop on Emerging Trends in Software Metrics, (49-55)
  64. ACM
    Nierstrasz O (2012). Agile software assessment with Moose, ACM SIGSOFT Software Engineering Notes, 37:3, (1-5), Online publication date: 16-May-2012.
  65. Filieri A, Ghezzi C and Tamburrelli G (2012). A formal approach to adaptive software, Formal Aspects of Computing, 24:2, (163-186), Online publication date: 1-Mar-2012.
  66. Mannaert H, Verelst J and Ven K (2011). The transformation of requirements into software primitives, Science of Computer Programming, 76:12, (1210-1222), Online publication date: 1-Dec-2011.
  67. Di Cosmo R, Di Ruscio D, Pelliccione P, Pierantonio A and Zacchiroli S (2011). Supporting software evolution in component-based FOSS systems, Science of Computer Programming, 76:12, (1144-1160), Online publication date: 1-Dec-2011.
  68. Sun X and Li B Using Formal Concept Analysis to support change analysis Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering, (641-645)
  69. ACM
    Bardin J, Lalanda P, Escoffier C and Murphy A Improving user experience by infusing web technologies into desktops Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (225-236)
  70. ACM
    Cicchetti A, Ciccozzi F, Leveque T and Pierantonio A On the concurrent versioning of metamodels and models Proceedings of the 2nd International Workshop on Model Comparison in Practice, (16-25)
  71. ACM
    Bohnet J and Döllner J Monitoring code quality and development activity by software maps Proceedings of the 2nd Workshop on Managing Technical Debt, (9-16)
  72. ACM
    Holmes R and Notkin D Identifying program, test, and environmental changes that affect behaviour Proceedings of the 33rd International Conference on Software Engineering, (371-380)
  73. ACM
    Chilana P, Ko A, Wobbrock J, Grossman T and Fitzmaurice G Post-deployment usability Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, (2243-2246)
  74. ACM
    Canfora G, Di Penta M and Cerulo L (2011). Achievements and challenges in software reverse engineering, Communications of the ACM, 54:4, (142-151), Online publication date: 1-Apr-2011.
  75. ACM
    Brown N, Cai Y, Guo Y, Kazman R, Kim M, Kruchten P, Lim E, MacCormack A, Nord R, Ozkaya I, Sangwan R, Seaman C, Sullivan K and Zazworka N Managing technical debt in software-reliant systems Proceedings of the FSE/SDP workshop on Future of software engineering research, (47-52)
  76. ACM
    Baresi L and Ghezzi C The disappearing boundary between development-time and run-time Proceedings of the FSE/SDP workshop on Future of software engineering research, (17-22)
  77. ACM
    Businge J, Serebrenik A and van den Brand M An empirical study of the evolution of Eclipse third-party plug-ins Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE), (63-72)
  78. Khamis N, Witte R and Rilling J Automatic quality assessment of source code comments Proceedings of the Natural language processing and information systems, and 15th international conference on Applications of natural language to information systems, (68-79)
  79. Benestad H, Anda B and Arisholm E (2010). Understanding cost drivers of software evolution, Empirical Software Engineering, 15:2, (166-203), Online publication date: 1-Apr-2010.
  80. Asif N Artifacts extraction technique Proceedings of the 3rd International Conference on Communications and information technology, (129-138)
  81. ACM
    Meneely A and Williams L Secure open source collaboration Proceedings of the 16th ACM conference on Computer and communications security, (453-462)
  82. Kosker Y, Turhan B and Bener A (2009). An expert system for determining candidate software classes for refactoring, Expert Systems with Applications: An International Journal, 36:6, (10000-10003), Online publication date: 1-Aug-2009.
  83. Adams B, De Schutter K, Zaidman A, Demeyer S, Tromp H and De Meuter W (2009). Using aspect orientation in legacy environments for reverse engineering using dynamic analysis-An industrial experience report, Journal of Systems and Software, 82:4, (668-684), Online publication date: 1-Apr-2009.
  84. ACM
    Kang P, Cao Y, Ramakrishnan N, Ribbens C and Varadarajan S Modular implementation of adaptive decisions in stochastic simulations Proceedings of the 2009 ACM symposium on Applied Computing, (995-1001)
  85. ACM
    Wermelinger M, Wernick P and Bryce C (2009). Report on the 4th international ERCIM workshop on software evolution and evolvability (Evol '08), ACM SIGSOFT Software Engineering Notes, 34:2, (25-27), Online publication date: 28-Feb-2009.
  86. Fischer G (2008). Rethinking software design in participation cultures, Automated Software Engineering, 15:3-4, (365-377), Online publication date: 1-Dec-2008.
  87. Lo D and Khoo S (2008). Mining patterns and rules for software specification discovery, Proceedings of the VLDB Endowment, 1:2, (1609-1616), Online publication date: 1-Aug-2008.
  88. ACM
    Robbes R and Lanza M SpyWare Proceedings of the 30th international conference on Software engineering, (847-850)
  89. ACM
    Herraiz I, Gonzalez-Barahona J and Robles G Determinism and evolution Proceedings of the 2008 international working conference on Mining software repositories, (1-10)
  90. ACM
    Mirakhorli M, Azim Sharifloo A and Shams F Architectural challenges of ultra large scale systems Proceedings of the 2nd international workshop on Ultra-large-scale software-intensive systems, (45-48)
  91. ACM
    Tilevich E and Back G "Program, enhance thyself!" Proceedings of the 7th international conference on Aspect-oriented software development, (13-24)
  92. ACM
    Wang Y, Guo D and Shi H (2007). Measuring the evolution of open source software systems with their communities, ACM SIGSOFT Software Engineering Notes, 32:6, (7-es), Online publication date: 1-Nov-2007.
  93. ACM
    Hou D Studying the evolution of the Eclipse Java editor Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange, (65-69)
  94. Zhang M and Baddoo N Performance comparison of software complexity metrics in an open source project Proceedings of the 14th European conference on Software Process Improvement, (160-174)
  95. ACM
    Lungu M and Girba T A small observatory for super-repositories Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (106-109)
  96. ACM
    Gîrba T, Ducasse S, Kuhn A, Marinescu R and Daniel R Using concept analysis to detect co-change patterns Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (83-89)
  97. ACM
    Capiluppi A, González-Barahona J, Herraiz I and Robles G Adapting the "staged model for software evolution" to free/libre/open source software Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (79-82)
  98. ACM
    Shiri M, Hassine J and Rilling J Modification analysis support at the requirements level Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (43-50)
  99. ACM
    Lozano A, Wermelinger M and Nuseibeh B Assessing the impact of bad smells using historical information Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, (31-34)
  100. ACM
    Lo D, Khoo S and Liu C Efficient mining of iterative patterns for software specification discovery Proceedings of the 13th ACM SIGKDD international conference on Knowledge discovery and data mining, (460-469)
  101. Bjørnson F, Stålhane T, Moe N and Dingsøyr T Defining software processes through process workshops Proceedings of the 8th international conference on Product-Focused Software Process Improvement, (132-146)
  102. Jenkins S and Kirk S (2007). Software architecture graphs as complex networks, Information Sciences: an International Journal, 177:12, (2587-2601), Online publication date: 20-Jun-2007.
  103. ACM
    Shepherd D, Pollock L and Vijay-Shanker K Case study Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, (49-54)
  104. Ng T, Cheung S, Chan W and Yu Y Do Maintainers Utilize Deployed Design Patterns Effectively? Proceedings of the 29th international conference on Software Engineering, (168-177)
  105. Capiluppi A, Fernandez-Ramil J, Higman J, Sharp H and Smith N An Empirical Study of the Evolution of an Agile-Developed Software System Proceedings of the 29th international conference on Software Engineering, (511-518)
  106. Rysselberghe F and Demeyer S Studying Versioning Information to Understand Inheritance Hierarchy Changes Proceedings of the Fourth International Workshop on Mining Software Repositories
  107. Robbes R, Lanza M and Lungu M An approach to software evolution based on semantic change Proceedings of the 10th international conference on Fundamental approaches to software engineering, (27-41)
  108. Ratzinger J, Pinzger M and Gall H EQ-mine Proceedings of the 10th international conference on Fundamental approaches to software engineering, (12-26)
  109. Karahasanović A and Thomas R Difficulties experienced by students in maintaining object-oriented systems Proceedings of the ninth Australasian conference on Computing education - Volume 66, (81-87)
  110. ACM
    Giroux O and Robillard M Detecting increases in feature coupling using regression tests Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, (163-174)
  111. ACM
    Seng O, Stammel J and Burkhart D Search-based determination of refactorings for improving the class structure of object-oriented systems Proceedings of the 8th annual conference on Genetic and evolutionary computation, (1909-1916)
  112. ACM
    D'Ambros M, Lanza M and Lungu M The evolution radar Proceedings of the 2006 international workshop on Mining software repositories, (26-32)
  113. ACM
    Robles G, Gonzalez-Barahona J, Michlmayr M and Amor J Mining large software compilations over time Proceedings of the 2006 international workshop on Mining software repositories, (3-9)
  114. Hinze R, Jeuring J and Löh A Comparing approaches to generic programming in Haskell Proceedings of the 2006 international conference on Datatype-generic programming, (72-149)
  115. Geiger R, Fluri B, Gall H and Pinzger M Relation of code clones and change couplings Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering, (411-425)
  116. ACM
    Xing Z and Stroulia E UMLDiff Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, (54-65)
  117. ACM
    Rinard M, Cadar C and Nguyen H Exploring the acceptability envelope Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (21-30)
  118. Xing Z and Stroulia E (2005). Analyzing the Evolutionary History of the Logical Design of Object-Oriented Software, IEEE Transactions on Software Engineering, 31:10, (850-868), Online publication date: 1-Oct-2005.
  119. Nierstrasz O, Ducasse S and Demeyer S Object-oriented reengineering patterns — an overview Proceedings of the 4th international conference on Generative Programming and Component Engineering, (1-9)
  120. ACM
    Bevan J, Whitehead E, Kim S and Godfrey M Facilitating software evolution research with kenyon Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, (177-186)
  121. ACM
    Nierstrasz O, Ducasse S and Gǐrba T The story of moose Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, (1-10)
  122. ACM
    Bevan J, Whitehead E, Kim S and Godfrey M (2005). Facilitating software evolution research with kenyon, ACM SIGSOFT Software Engineering Notes, 30:5, (177-186), Online publication date: 1-Sep-2005.
  123. ACM
    Nierstrasz O, Ducasse S and Gǐrba T (2005). The story of moose, ACM SIGSOFT Software Engineering Notes, 30:5, (1-10), Online publication date: 1-Sep-2005.
  124. Di Penta M, Neteler M, Antoniol G and Merlo E (2005). A language-independent software renovation framework, Journal of Systems and Software, 77:3, (225-240), Online publication date: 1-Sep-2005.
  125. Gold N, Mohan A and Layzell P (2005). Spatial Complexity Metrics, IEEE Transactions on Software Engineering, 31:3, (203-212), Online publication date: 1-Mar-2005.
  126. Robillard M, Coelho W and Murphy G (2004). How Effective Developers Investigate Source Code, IEEE Transactions on Software Engineering, 30:12, (889-903), Online publication date: 1-Dec-2004.
  127. ACM
    Rank S, O'Coill C, Boldyreff C and Doughty M Software, architecture, and participatory design Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research, (45-48)
  128. ACM
    Hsi I Measuring the conceptual fitness of an application in a computing ecosystem Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research, (27-36)
  129. ACM
    Li P, Shaw M, Herbsleb J, Ray B and Santhanam P (2004). Empirical evaluation of defect projection models for widely-deployed production software systems, ACM SIGSOFT Software Engineering Notes, 29:6, (263-272), Online publication date: 1-Nov-2004.
  130. ACM
    Li P, Shaw M, Herbsleb J, Ray B and Santhanam P Empirical evaluation of defect projection models for widely-deployed production software systems Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering, (263-272)
  131. ACM
    Sazawal V and Notkin D Design snippets Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, (13-14)
  132. Nierstrasz O and Demeyer S Object-Oriented Reengineering Patterns Proceedings of the 26th International Conference on Software Engineering, (734-735)
  133. Fung K, Low G and Ray P (2004). Embracing Dynamic Evolution in Distributed Systems, IEEE Software, 21:2, (49-55), Online publication date: 1-Mar-2004.
  134. Barry E, Kemerer C and Slaughter S On the uniformity of software evolution patterns Proceedings of the 25th International Conference on Software Engineering, (106-113)
  135. Bianchi A, Caivano D, Marengo V and Visaggio G (2003). Iterative Reengineering of Legacy Systems, IEEE Transactions on Software Engineering, 29:3, (225-241), Online publication date: 1-Mar-2003.
  136. Lindvall M, Tvedt R and Costa P (2003). An Empirically-Based Process for Software Architecture Evaluation, Empirical Software Engineering, 8:1, (83-108), Online publication date: 1-Mar-2003.
  137. De Lucia A, Pompella E and Stefanucci S (2003). Assessing the maintenance processes of a software organization, Journal of Systems and Software, 65:2, (87-103), Online publication date: 15-Feb-2003.
  138. Antón A and Potts C (2003). Functional Paleontology, IEEE Transactions on Software Engineering, 29:2, (151-166), Online publication date: 1-Feb-2003.
  139. Lehman M and Ramil J (2002). Software Evolution and Software Evolution Processes, Annals of Software Engineering, 14:1-4, (275-309), Online publication date: 10-Dec-2002.
  140. Dalcher D Software development for dynamic systems Proceedings of the 2002 international conference on Metainformatics, (58-75)
  141. ACM
    De Lucia A, Pompella E and Stefanucci S Effort estimation for corrective software maintenance Proceedings of the 14th international conference on Software engineering and knowledge engineering, (409-416)
  142. Wedemeijer L Long-term evolution of a conceptual schema at a life insurance company Annals of cases on information technology, (280-296)
  143. Gupta N and Rao P Program Execution-Based Module Cohesion Measurement Proceedings of the 16th IEEE international conference on Automated software engineering
  144. de Lucia A, Fasolino A and Pompella E A Decisional Framework for Legacy System Management Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  145. Ng C, Chan T and Gable G A Client-Benefits Oriented Taxonomy Of ERP Maintenance Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  146. de Lucia A, Pannella A, Stefanucci S and Pompella E Assessing Massive Maintenance Processes Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  147. Siy H and Votta L Does The Modern Code Inspection Have Value? Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  148. Antoniol G, Penta M, Casazza G and Merlo E Modeling clones evolution through time series Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  149. Lehman M, Ramil J and Sandler U An Approach to Modelling Long-Term Growth Trends in Software Systems Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  150. Atkinson D and Griswold W Implementation Techniques for Efficient Data-Flow Analysis of Large Programs Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  151. Lehman M and Ramil J (2001). Rules and Tools for Software Evolution Planning and Management, Annals of Software Engineering, 11:1, (15-44), Online publication date: 7-Nov-2001.
  152. ACM
    Mittermeir R Software evolution Proceedings of the 4th International Workshop on Principles of Software Evolution, (114-121)
  153. ACM
    Aoyama M Continuous and discontinuous software evolution Proceedings of the 4th International Workshop on Principles of Software Evolution, (87-90)
  154. ACM
    Lehman M and Ramil J An approach to a theory of software evolution Proceedings of the 4th International Workshop on Principles of Software Evolution, (70-74)
  155. ACM
    Subramanian N and Chung L Software architecture adaptability Proceedings of the 4th International Workshop on Principles of Software Evolution, (52-61)
  156. ACM
    Lehman M and Ramil J Evolution in software and related areas Proceedings of the 4th International Workshop on Principles of Software Evolution, (1-16)
  157. Arisholm E, Sjøberg D and Jørgensen M (2001). Assessing the Changeability of two Object-Oriented Design Alternatives—a Controlled Experiment, Empirical Software Engineering, 6:3, (231-277), Online publication date: 1-Sep-2001.
  158. Antón A and Potts C Functional paleontology Proceedings of the 23rd International Conference on Software Engineering, (421-430)
  159. Griswold W, Yuan J and Kato Y Exploiting the map metaphor in a tool for software evolution Proceedings of the 23rd International Conference on Software Engineering, (265-274)
  160. Laws A, Taleb-Bendiab A, Wade S and Reilly D From wetware to software Proceedings of the 2nd international conference on Self-adaptive software: applications, (257-280)
  161. Eick S, Graves T, Karr A, Marron J and Mockus A (2001). Does Code Decay? Assessing the Evidence from Change Management Data, IEEE Transactions on Software Engineering, 27:1, (1-12), Online publication date: 1-Jan-2001.
  162. Mamdani E and Pitt J (2000). Responsible Agent Behavior, IEEE Internet Computing, 4:5, (27-31), Online publication date: 1-Sep-2000.
  163. Graves T, Karr A, Marron J and Siy H (2000). Predicting Fault Incidence Using Software Change History, IEEE Transactions on Software Engineering, 26:7, (653-661), Online publication date: 1-Jul-2000.
  164. ACM
    Ramil J and Lehman M Effort estimation from change records of evolving software (poster session) Proceedings of the 22nd international conference on Software engineering
  165. ACM
    Ramil J Algorithmic cost estimation for software evolution Proceedings of the 22nd international conference on Software engineering, (701-703)
  166. Verhoef C (2000). Towards automated modification of legacy assets, Annals of Software Engineering, 9:1-4, (315-336), Online publication date: 11-Jan-2000.
  167. ACM
    Perry D Software evolution and “light” semantics (extended abstract) Proceedings of the 21st international conference on Software engineering, (587-590)
  168. Barry E, Slaughter S and Kemerer C An empirical analysis of software evolution profiles and outcomes Proceedings of the 20th international conference on Information Systems, (453-458)
  169. ACM
    Atkinson D and Griswold W (1998). Effective whole-program analysis in the presence of pointers, ACM SIGSOFT Software Engineering Notes, 23:6, (46-55), Online publication date: 1-Nov-1998.
  170. ACM
    Atkinson D and Griswold W Effective whole-program analysis in the presence of pointers Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering, (46-55)
  171. Griswold W, Chen M, Bowdidge R, Cabaniss J, Nguyen V and David Morgenthaler J (1998). Tool Support for Planning the Restructuring of Data Abstractions in Large Systems, IEEE Transactions on Software Engineering, 24:7, (534-558), Online publication date: 1-Jul-1998.
  172. Antón A and Potts C The use of goals to surface requirements for evolving systems Proceedings of the 20th international conference on Software engineering, (157-166)
  173. Gruhn V and Urbainczyk J Software process modeling and enactment Proceedings of the 20th international conference on Software engineering, (13-21)
  174. Smith S (1997). Constructing and revising formal arguments in requirements engineering, Requirements Engineering, 2:4, (199-216), Online publication date: 1-Dec-1997.
  175. ACM
    Lehman M Process modelling—where next Proceedings of the 19th international conference on Software engineering, (549-552)
  176. ACM
    Nguyen M, Wang A and Conradi R Total software process model evolution in EPOS Proceedings of the 19th international conference on Software engineering, (390-399)
  177. Chung L, Nixon B and Yu E (1996). Dealing with change, Requirements Engineering, 1:4, (238-260), Online publication date: 1-Dec-1996.
  178. ACM
    Griswold W, Chen M, Bowdidge R and Morgenthaler J (1996). Tool support for planning the restructuring of data abstractions in large systems, ACM SIGSOFT Software Engineering Notes, 21:6, (33-45), Online publication date: 1-Nov-1996.
  179. ACM
    Griswold W, Chen M, Bowdidge R and Morgenthaler J Tool support for planning the restructuring of data abstractions in large systems Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering, (33-45)
  180. Chan T, Chung S and Ho T (1996). An Economic Model to Estimate Software Rewriting and Replacement Times, IEEE Transactions on Software Engineering, 22:8, (580-598), Online publication date: 1-Aug-1996.
  181. Atkinson D and Griswold W The design of whole-program analysis tools Proceedings of the 18th international conference on Software engineering, (16-27)
  182. Griswold W and Notkin D (1995). Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool, IEEE Transactions on Software Engineering, 21:4, (275-287), Online publication date: 1-Apr-1995.
  183. Sneed H (1995). Planning the Reengineering of Legacy Systems, IEEE Software, 12:1, (24-34), Online publication date: 1-Jan-1995.
  184. ACM
    Bowdidge R and Griswold W (1994). Automated support for encapsulating abstract data types, ACM SIGSOFT Software Engineering Notes, 19:5, (97-110), Online publication date: 1-Dec-1994.
  185. ACM
    Bowdidge R and Griswold W Automated support for encapsulating abstract data types Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, (97-110)
  186. ACM
    Griswold W Direct update of data flow representations for a meaning-preserving program restructuring tool Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering, (42-55)
  187. ACM
    Griswold W (1993). Direct update of data flow representations for a meaning-preserving program restructuring tool, ACM SIGSOFT Software Engineering Notes, 18:5, (42-55), Online publication date: 1-Dec-1993.
  188. Jaccheri M and Conradi R (1993). Techniques for Process Model Evolution in EPOS, IEEE Transactions on Software Engineering, 19:12, (1145-1156), Online publication date: 1-Dec-1993.
  189. ACM
    Garg P and Bhansali S Process programming by hindsight Proceedings of the 14th international conference on Software engineering, (280-293)
  190. ACM
    Connors D (1992). Software development methodologies and traditional and modern information systems, ACM SIGSOFT Software Engineering Notes, 17:2, (43-49), Online publication date: 1-Apr-1992.
  191. Ramamoorthy C, Usuda Y, Prakash A and Tsai W (1990). The Evolution Support Environment System, IEEE Transactions on Software Engineering, 16:11, (1225-1234), Online publication date: 1-Nov-1990.
  192. Lehman M The role of process models in software and systems development and evolution Proceedings of the 5th international software process workshop on Experience with software process models, (91-94)
  193. ACM
    Tech Correspondence C (1990). Technical correspondence, Communications of the ACM, 33:5, (584-586), Online publication date: 1-May-1990.
  194. ACM
    Computer Science and Technology Board C (1990). Scaling up: a research agenda for software engineering, Communications of the ACM, 33:3, (281-293), Online publication date: 1-Mar-1990.
  195. ACM
    Chroust G (1989). Application development project support, ACM SIGSOFT Software Engineering Notes, 14:5, (83-104), Online publication date: 1-Jul-1989.
  196. Corbi T (1989). Program understanding: challenge for the 1990's, IBM Systems Journal, 28:2, (294-306), Online publication date: 1-Jun-1989.
  197. Boehm B (1988). A Spiral Model of Software Development and Enhancement, Computer, 21:5, (61-72), Online publication date: 1-May-1988.
  198. Lehman M Process models, process programs, programming support Proceedings of the 9th international conference on Software Engineering, (14-16)
  199. Goldberg R (1986). Software engineering, IBM Systems Journal, 25:3-4, (334-353), Online publication date: 1-Sep-1986.
  200. ACM
    Lehman M (1986). Approach to a disciplined development process - the ISTAR integrated project support environment, ACM SIGSOFT Software Engineering Notes, 11:4, (28-33), Online publication date: 1-Aug-1986.
  201. Lawrence M An examination of evolution dynamics Proceedings of the 6th international conference on Software engineering, (188-196)
  202. ACM
    Cook M (1982). Software metrics, ACM SIGSOFT Software Engineering Notes, 7:2, (41-60), Online publication date: 1-Apr-1982.
  203. ACM
    Magel K (1982). A theory of small program complexity, ACM SIGPLAN Notices, 17:3, (37-45), Online publication date: 1-Mar-1982.
  204. Rault J An approach towards reliable software Proceedings of the 4th international conference on Software engineering, (220-230)
  205. Basili V and Zelkowitz M Analyzing medium-scale software development Proceedings of the 3rd international conference on Software engineering, (116-123)
  206. Vogel-Heuser B, Feldmann S, Folmer J, Rosch S, Heinrich R, Rostami K and Reussner R Architecture-Based Assessment and Planning of Software Changes in Information and Automated Production Systems State of the Art and Open Issues 2015 IEEE International Conference on Systems, Man, and Cybernetics, (687-694)
Contributors
  • Middlesex University
  • Mitsubishi Electric Research Laboratories

Recommendations

Reviews

Watts Humphrey

This book is primarily a collection of the authors' previously published papers. Several of these include perspectives that could be useful to most software practitioners, and four of the chapters (3, 5, 10, and 17) contain material that IBM has agreed to release for the first time. The book's strength is the many perceptive comments on and insights into the large-scale software development and maintenance processes. The authors' ideas are stimulating and will prove particularly useful if they lead to a broader discussion of these subjects. Because of the historical approach, however, much of the material is repeated in several chapters. In addition, the authors' laws of software evolution are at least partially misleading. The book's thesis consists of three basic themes. The first concerns program evolution. The authors contend that large-scale complex programs must evolve. This is because the programs' requirements cannot be fully known until there has been some experience in using them, and then they must evolve in concert with the user's improving knowledge and experience. Change is thus perpetual with such programs. Second is the view that the software process is largely driven by the state of the software itself: changes are continuous, changes cause disorder unless they are directly countered, and a growth-saturation phenomenon limits the quality and productivity of the software development process. The third theme concerns the nature and consequences of the software maintenance process. This is a form of perpetual software change that can lead to serious management and software control problems unless these issues are understood and addressed. The authors' comments on the software maintenance process and the forces for disorganization in large systems are particularly perceptive. To an increasing extent, large software is currently built in stages. This is both because it is impractical to build such massive constructions in one step, and because evolution has been found far more manageable. The authors have performed a useful service by pointing out that the benefits of evolution carry risks that can be expensive if ignored. The authors also introduce the concept of natural limits to the software development process. They propose a saturation phenomenon that appears when these natural limits in resources, volume of change, or growth rates are exceeded. The justification for this view is not convincing and, in one case, is incorrect. For example, they state that there is a limit to the rate of incremental enhancement that can be made to a program and when this limit is exceeded, some corrective process is required. This is based on their observation that at IBM, whenever a particularly large OS/360 release was made, the system was subsequently split. While this is a correct description of the events, the authors have confused cause and effect. When IBM split the 360/370 operating systems, the plan was known well in advance, and this knowledge caused the previous release to be larger than normal. It grew because it became a catchall to incorporate last minute function just before the split and subsequent termination of system enhancement. The fundamental flaw of the book is its redundancy. For example, the important concept of entropy is repeated almost verbatim in six of the chapters. While this is only one case of the book's redundancy, it demonstrates how much of the reader's time is lost in wading through repetitive material. The generally poor quality of the book's production is also a distraction. The transition from an attractive typeface in the Preface to typewriter quality in the body of the text is obvious, and there are an excessive number of typographical errors and misspellings. The Preface and the Introduction provide a useful backdrop for the book and place it both in the proper historical and large systems context. The claim in the Introduction that this is the beginning of a new systematic approach to the software process, however, is not justified. Chapter 4 by Jerry Weinberg is wonderfully thought provoking. He adapts the Darwinian concept of survival of the fittest to software. While his proposed adaptive process has not been generally observed with large-scale general-purpose hardware, it seems increasingly plausible when applied to the large firmware and software systems that are now appearing. Chapters 5 and 13 present many perceptive ideas and concepts on the little understood subject of software maintenance. These are both worth a careful reading. Chapter 19 reviews the essential material on classes of programs and the laws of software evolution and should be read thoroughly. Chapters 20 and 21 build on these basic themes; while there is some minor duplication, the included discussion of environments and society's need to improve the software process is worth the reader's attention. While this book does not present as fundamental an argument as the authors suggest, it contains a number of important ideas. The software process is a complex subject that involves the interaction between human discipline and enormous logical constructs. Much remains to be learned about this crucial topic, and the authors' efforts deserve attention. While their work is closer to alchemy than science, this is necessarily the case at this time. One hopes that these early efforts will be followed by progressively more disciplined treatments.

Barry Boehm

Although program evolution (also called software maintenance or post-development software support) typically consumes 70 percent of software life-cycle expenditures, it has generally been relegated to secondary status in software organizations. Unfortunately, this underemphasis on program evolution has characterized not only software process management but also the academic study of the software process. The particular importance of Program evolution is, therefore, that it brings together a body of work on this underemphasized topic from two of its earliest students, Lehman and Belady. I would say that the main contributions of the book lie in three areas: :9BThe analysis of OS/360 and related program evolution data. The formulation of a set of “laws of program evolution.” General perspectives on the software process and its relation to processes in other fields. The OS/360 data, most thoroughly described in Chapter 3, are extremely impressive in showing both the large magnitude of system growth over time (from 1,152 modules and 400,000 source statements in release 1 in March 1966 to 3,819 modules and 1,740,000 source statements in release 16 in September 1968), and the inevitability of growth in the fraction of modules handled from one release to the next (from an average of 15 percent in releases 2–6 to an average of 32 percent in releases 12–16, and eventually to over 50 percent). This analysis alerted many people to the magnitude of software evolution activities, and to the likelihood that they could be significantly improved via better technical and management decisions. The five laws of program evolution are best explained and connected to the observational data from OS/360 and other projects in Chapter 19. The five laws are briefly summarized as follows: (1)A program that is used . . . undergoes continual change or becomes progressively less useful. (2)The complexity of an evolving program increases unless work is done to maintain or reduce it. (3)Program evolution is subject to a self-regulating dynamic yielding statistically determinable trends and invariances. (4)The global activity rate associated with an active program is statistically invariant. (5)The release content of successive releases of an active program is statistically invariant. Calling these statements “laws” is a bit ambitious. It is relatively easy to find counterexamples to them: for example, laws 3, 4, and 5 are not satisfied in software products that irregularly undergo major one-shot enhancements (e.g., a tax processing program in response to changes in tax laws). Further, the statistical basis of the laws is weak (except for law 1), as was found in the most significant attempt to date to independently validate them [1]. Yet they remain quite valuable as pervasive characteristics of the program evolution process and as general guidelines for managing program evolution, as illustrated in the case study in Chapter 19. Chapters 2, 3, and 19 have particularly useful perspectives on the software process, including some good insights on software life-cycle phases and their relation to different types of software products. Chapters 4 and 7 have some stimulating comparisons between program evolution, natural selection, and “limits to growth” hypotheses in other fields. The book has the usual problems associated with a collection of an author's papers. It is highly redundant: the OS/360 data are shown in six places, and the versions of the laws of evolution are discussed in five places. It contains a number of preliminary models that are not followed up in later chapters. It also operates at a high level of abstraction. One wishes for more concrete examples and how-to information. (Readers looking for such information can consult [2,3,4].) Recently, there has been mounting evidence that large software organizations are taking post-development software evolution much more seriously. This book can provide them with useful perspectives on the program evolution process and how to improve it.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.