Software Evolution for Evolving ChinaSoftware EvolutionforEvolving China

  • Hongji Yang
  • Feng Chen
  • Yong Zhou
  • Mingyan Zhao
  • Yuxin Wang
  • He Guo


Software systems need to evolve continually to cope with ever-changing software requirements. Constant innovation of information technology and ever-changing market requirements relegate more and more existing software to legacy status. From the moment a software product is released, the race against time and aging begins. Organisations are in fear of their legacy systems, as maintaining these systems is a significant drain on the organisation's resources. They are also afraid of replacing them, as these legacy systems are enormously valuable assets. Having stood the test of time and evolved, they provide the most accurate statement of current business practices. Legacy systems, then, are not an issue that can be simply thrown away.

Software evolution is a process of conducting continuous software re-engineering. In other words, software evolution is repeated software re-engineering [76]. The purpose of software reengineering is both to position existing systems to take...


Software Evolution Software Architecture Reverse Engineering Software Evolution Process Program Understanding 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    Abran A, Moore JW, Bourque P et al (2004) Guide to the Software Engineering Body of Knowledge (SWEBOK): IEEEGoogle Scholar
  2. [2]
    Ajila SA, Kaba BA (2007) Evolution Support Mechanisms for Software Product Line Process. Journal of Systems and SoftwareGoogle Scholar
  3. [3]
    Arnold RS (1992) A Road Map Guide to Software Re-engineering: IEEE Computer Society PressGoogle Scholar
  4. [4]
    Baumann P, Fassler J, Kiser M et al (1994) Semantics-based Reverse Engineering. Technical Report 94.08, Department of Computer Science, University of Zurich, SwitzerlandGoogle Scholar
  5. [5]
    Brooks FP (1987) No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer 20(4): 10–19MathSciNetCrossRefGoogle Scholar
  6. [6]
    Bull T (1995) An Introduction to the WSL Program Transformer. Technical Report, University of Durham, EnglandGoogle Scholar
  7. [7]
    Chen F, Yang H, Guo H et al (2004) "Agentification for Web Service", 28th IEEE International Computer Software and Application Conference (COMPSAC'04), Hong Kong, pp. 514–519Google Scholar
  8. [8]
    Chen Z (2007) Approach to Measuring Developers during Modeling Formal Software Evolution Process. Computer Engineering and Design 28(21): 5305–5307Google Scholar
  9. [9]
    Chikofsky EJ, Cross JH (1990) Reverse Engineering and Design Recovery: a Taxonomy. IEEE Software 7(1): 13–17CrossRefGoogle Scholar
  10. [10]
    Clarke EM, Wing JM (1996) Formal Methods: State of the Art and Future Directions. ACM Computing Surveys 28(4): 626–643CrossRefGoogle Scholar
  11. [11]
    Cook S, He J, Rachel H (2001) "Dynamic and Static Views of Software Evolution", IEEE International Conference on Software Maintenance (ICSM'01)Google Scholar
  12. [12]
    Cook S, Ji H, Harrison R (2000) Software Evolution and Software Evolvability. University of Reading. Technical ReportGoogle Scholar
  13. [13]
    Frankel DS (2003) Model Driven Architecture - Applying MDA to Enterprise Computing: Wiley Publishing, Inc.Google Scholar
  14. [14]
    Fu J, Wang Y, Qian L (2001) DCF-Based Component Evolution. Computer Sciences 28(1): 21–24Google Scholar
  15. [15]
    Gong H, Zhao W, Xu R et al (2004) A Research on Pi Calculus Based Component Evolution. Acta Electronica Sinica 32(12A)Google Scholar
  16. [16]
    Griswold WG, Chen MI, Bowdidge RW et al (1997) Tool Support for Planning the Restructuring of Data Abstractions in Large Systems. Technical Report CS97–559, Software Engineering Laboratory, University of California at San DiegoGoogle Scholar
  17. [17]
    Guo H, Liu T, Chen F et al (Mar. 2007) Design and Implementation of a Software Evolution Strategy Based on AOP. Journal of Dalian University of Technology 47(2): 270–275MathSciNetGoogle Scholar
  18. [18]
    Guo Y, Yuan W, Chen X et al (1999) Reengineering: Concepts and Framework. Computer Sciences 26(5): 78–83Google Scholar
  19. [19]
    Herr M, Bath U, Koschel A (2004) "Implementation of a Service Oriented Architecture at Deutsche Post Mail", Lecture Notes in Computer Science 3250, Springer, ECOWS 2004, Erfurt, Germany, pp. 227–238Google Scholar
  20. [20]
    Huang G, Mei H, Yang F (2004) Runtime Software Architecture Based On Reflective Middleware. Science in China (Series E): Technology Science 34(2): 121–138CrossRefGoogle Scholar
  21. [21]
    Huang W, Chen S (2007) Component Composition Operations and Component Evolution Based on Messages. Journal of Chinese Computer Systems 128(7): 1217–1220Google Scholar
  22. [22]
    Huang W, Chen S (2007) Measuring Software Architecture Evolution Based on Component Combination Operations. Computer Sciences 34(9): 245–248Google Scholar
  23. [23]
    Huhns MN (2004) "Software Development with Objects, Agents, and Services", 3rd International Workshop on Agent-Oriented Methodologies (Keynotes), Vancouver, CanadaGoogle Scholar
  24. [24]
    Jackson D, Rollins EJ (1994) "Abstraction Mechanisms for Pictorial Slicing." IEEE Workshop on Program Comprehension, pp. 82–88Google Scholar
  25. [25]
    Jennings NR (2000) On Agent-Based Software Engineering. Artificial Intelligence 117: 277-296zbMATHCrossRefGoogle Scholar
  26. [26]
    Jia J, He X (2003) A Method for Modeling Evolving Requirements. Computer Engineering and Applications 5: 70–72Google Scholar
  27. [27]
    Lehman MM (1980) "Programs, Life Cycles, and Laws of Software Evolution", IEEE Special Issue on Software Engineering, pp. 1060–1076Google Scholar
  28. [28]
    Lehman MM (1997) "Laws of Software Evolution Revisited", LNCS 1149, pp. 108–124Google Scholar
  29. [29]
    Lehman MM, Ramil JF (2001) "An Approach to a Theory of Software Evolution", 4th International Workshop on Principles of Software EvolutionGoogle Scholar
  30. [30]
    Lehman MM, Ramil JF (2002) "An Overview of Some Lessons Learnt in FEAST", Workshop on Empirical Studies of Software Maintenance (WESS'02)Google Scholar
  31. [31]
    Lehman MM, Ramil JF (2002) Software Evolution and Software Evolution Processes. Annals of Software Engineering 14(1–4): 275–309zbMATHCrossRefGoogle Scholar
  32. [32]
    Lehman MM, Ramil JF (2006) Software Evolution and Feedback: Theory and Practice. Chichester, U.K.: John Wiley & SonsGoogle Scholar
  33. [33]
    Lehman MM, Ramil JF, Kahen G (2000) "Evolution as a Noun and Evolution as a Verb", Workshop on Software and Organisation Co-evolution (SOCE'00)Google Scholar
  34. [34]
    Li C (2005) Research on Architecture-Based Software Dynamic Evolution. PhD Thesis, College of Computer Science and Technology, Zhejiang UniversityGoogle Scholar
  35. [35]
    Li C, Wu J, Wu Z (2006) A Service-Oriented Software Model Supporting Dynamic Evolution. Chinese Journal of Computer 29(7): 1020–1027Google Scholar
  36. [36]
    Li G, Liu X (2002) Evolution Transformation in Automatic Generation of Formal Component Specification. Computer Engineering and Applications 8: 69–72Google Scholar
  37. [37]
    Li H, Li B, Guo R (2007) Application Research of Orthogonal Software Architecture Design and Evolution Method. Application Research of Computers: 78–82Google Scholar
  38. [38]
    Li T (2007) An Approach to Modelling and Describing Software Evolution Processes. PhD Thesis, De Montfort University, EnglandGoogle Scholar
  39. [39]
    Li X (2002) Study on Software Evolution Based on Component Operations. Master Thesis, Hunan UniversityGoogle Scholar
  40. [40]
    Li X, Zhang Y (2005) Study on Software Evolution Based on Component Operations. Computer Engineering and Applications 9: 46–48Google Scholar
  41. [41]
    Li Y (2002) Automating Domain Knowledge Recovery from Legacy Software Code. PhD Thesis, De Montfort University, EnglandGoogle Scholar
  42. [42]
    Lin Y, Zhang Y (2006) Research on Software Configuration Management Supporting Evolution of Components. Computer Engineering and Design 27(19): 3595–3597Google Scholar
  43. [43]
    Liu X, Yang H, Zedan H et al (2000) "Speed and Scale Up Software Reengineering with Abstraction Patterns and Rules", International Symposium on Software Evolution, JapanGoogle Scholar
  44. [44]
    Ma X, Yu P, Tao X et al (2005) A Service2Oriented Dynamic Coordination Architecture and Its Supporting System. Chinese Journal of Computer 28(4): 467–471Google Scholar
  45. [45]
    Mens T, Demeyer S (2008) Software Evolution: SpringerGoogle Scholar
  46. [46]
    Muller H, Orgun M, Tiley S (1993) A Reverse Engineering Approach to Subsystem Structure Identification. Software Maintenance: Research and Practise 5: 181–204CrossRefGoogle Scholar
  47. [47]
    Parnas DL (1979) Designing Software for Ease of Extension and Contraction. IEEE Transaction on Software Engineering 5(2): 128–138zbMATHCrossRefGoogle Scholar
  48. [48]
    Parnas DL (1994) "Software Aging", 16th International Conference on Software Engineering, Sorrento, Italy, pp. 279–287Google Scholar
  49. [49]
    Peng X, Zhao W, Zhu C (2004) A Configuration Management Framework Supporting Evolution of Components. Computer Engineering and Applications 32: 1–4Google Scholar
  50. [50]
    Pressman RS (2001) Software Engineering: A Practitioner's Approach (5th Ed): McGraw-HillGoogle Scholar
  51. [51]
    Qiao B (2005) Evolution of WEB-based Systems in Model Driven Architecture. PhD Thesis, De Montfort University, EnglandGoogle Scholar
  52. [52]
    Ratzinger J, Sigmund T, Vorburger P et al (2007) "Mining Software Evolution to Predict Refactoring", International Symposium on Empirical Software Engineering and Measurement (ESEM'07)Google Scholar
  53. [53]
    Ren S, Yu S, Chen S et al (2007) Logic-based Software Evolution Operational Language and Structural Operational Semantics. Journal of Chinese Computer Systems 128(6): 1031–1036Google Scholar
  54. [54]
    Seacord RC, Plakosh D, Lewis GA (2003) Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices: Addison WesleyGoogle Scholar
  55. [55]
    Sendall S, Hauser R, Koehler J et al (2004) "Understanding Model Transformation by Classification and Formalization", Workshop on Software Transformation Systems (part of 3rd International Conference on Generative Programming and Component Engineering), Vancouver, CanadaGoogle Scholar
  56. [56]
    Sommerville I (1995) Software Engineering, 5th Edition: Addison WesleyGoogle Scholar
  57. [57]
    Storey MD, Fracchia FD, Muller HA (1997) "Cognitive Design Elements to Support the Construction of a Mental Model During Software Visualization", 5th Workshop on Program Comprehension (WPC'97), Dearborn, USA, pp. 17–28Google Scholar
  58. [58]
    Stroulia E, El-Ramly M, Sorenson P (2002) "From Legacy to Web through Interaction Modeling", International Conference on Software Maintenance (ICSM'02), Montrzal, Canada, pp. 320–329Google Scholar
  59. [59]
    Tan G, Li Y Research on Software Dynamic Evolution and Its Application. Master Thesis, Dalian University of TechnologyGoogle Scholar
  60. [60]
    Tan G, Zhang S (2001) Study on Dynamic Simulation and Evolution of Hierarchical Message Bus Based Software Architecture. Computer Sciences 28(3): 75–77MathSciNetGoogle Scholar
  61. [61]
    W3C (2004) Web Services Architecture., W3C Working Group
  62. [62]
    W3C (2004) Web Services Architecture Requirements., W3C Working Group
  63. [63]
    Wang B, Sheng J, Gui W (2007) Aspect-oriented Software Architecture and Software Process for Management Domain. Computer Engineering and Applications 33(15): 82–85Google Scholar
  64. [64]
    Wang X, Wang Q, Mei H (2005) An Approach to Online Evolution of Component Based Software. Chinese Journal of Computer 28(11): 1890–1893Google Scholar
  65. [65]
    Wang Y (2007) Change Propagation Mechanism Analysis of Software Function Requirement. Chinese Journal of Computer 30(11): 2035–2032Google Scholar
  66. [66]
    Wang Y, Liu Y, Wang L (2004) A Dynamic Evolution Model Based on Static Point Transition. Chinese Journal of Computer 27(11): 12–17Google Scholar
  67. [67]
    Wang Y, Lv J, Xu F et al (2006) A Trust Measurement and Evolution Model for Internetware. Journal of Software 17(4): 683–690Google Scholar
  68. [68]
    Wang Y, Wang L (2005) Research about Model and Ripple Effect Analysis of Software Architecture Evolution. Acta Electronica Sinica 33(8): 1381–1386Google Scholar
  69. [69]
    Wang Y, Zhang S, Liu Y et al (2004) Ripple-Effect Analysis of Software Architecture Evolution Based on Reachability Matrix. Journal of Software 15(8): 1107–1115zbMATHGoogle Scholar
  70. [70]
    Wang Z, Xie X (2003) Software Reuse and Evolution Techniques in MIS. Journal of Anhui University of Technology and Science 18(2): 26–31Google Scholar
  71. [71]
    Ward M (2001) "The FermaT Assembler Re-engineering Workbench", IEEE International Conference on Software Maintenance (ICSM'01), pp. 659–662Google Scholar
  72. [72]
    Ward M, Zedan H (2007) Slicing as a Program Transformation. ACM Transactions on Programming Languages and Systems 29(2)Google Scholar
  73. [73]
    Wu J, Ding Q (2004) Study of System Evolution Environment. Journal of Nanjing University of Aeronautics & Astronautics 36(1): 117–120Google Scholar
  74. [74]
    Xue Y, Xu R, Qian L (2004) A Summary of Internetware - a New Software Modality under the Internet Computing Environment. Computer Engineering and Applications 14: 38–41Google Scholar
  75. [75]
    Yang H (1991) "The Supporting Environment for A Reverse Engineering System - The Maintainers Assistant", IEEE Conference on Software Maintenance, Sorrento, Italy, pp. 13–22Google Scholar
  76. [76]
    Yang H, Ward M (2003) Successful Evolution of Software Systems: Artech House, Inc.Google Scholar
  77. [77]
    Yang P, Xu L, Chen Y (2002) Analysis and Design of the Evolutions in Software Process. Computer Applications and software 3Google Scholar
  78. [78]
    Ye X, Zhao W, Jiang T (2004) Research on Dynamic Architecture Technology Supporting Evolution & Re-configuration. Computer Engineering and Applications 7: 95–98Google Scholar
  79. [79]
    Yu P, Ma X, Lu J et al (2006) A Dynamic Software Architecture Oriented Approach to Online Evolution. Journal of Software 17(6): 1360–1371zbMATHCrossRefGoogle Scholar
  80. [80]
    Zhan J (2002) Researches on Software Evolution and Dynamism Under the Circumstances of Internet. PhD Thesis, Institue of Software Chinese Academy of SciencesGoogle Scholar
  81. [81]
    Zhan J, Cheng H (2006) Specification and Evolution of Agent From a Perspective of Software Architecture. Journal of Computer Research and Development 39(12): 1543–1549Google Scholar
  82. [82]
    Zhang X (2005) Study on Software Architecture Evolution Management. Master Thesis, Chongqing UniversityGoogle Scholar
  83. [83]
    Zhang Y (2004) Architecture-based Software Development Model. Computer Engineering and Applications 34: 29–33Google Scholar
  84. [84]
    Zhang Y (2004) Study on Component Operations and Software Evolution. Computer Applications 24(4): 20–22Google Scholar
  85. [85]
    Zhang Y (2007) Research on the Software Configuration Management Of Evolution of Components. Computer and Digital Engineering 35(4): 32–34Google Scholar
  86. [86]
    Zhang Y (2007) Study on Methods for Description of Software Architecture and Software Evolution Based on Algebra Theory. PhD Thesis, Fudan UniversityGoogle Scholar
  87. [87]
    Zhao N, Zhao J, Li T (2007) Process Model Supporting Software Evolution - SDDM. Computer Engineering and Applications 43(13): 61–63Google Scholar
  88. [88]
    Zhao N, Zhao J, Li T (2007) Software Process Model Supporting Software Evolution - SDDM II. Computer Engineering 33(14): 73–75Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2009

Authors and Affiliations

  • Hongji Yang
    • 1
  • Feng Chen
    • 1
  • Yong Zhou
    • 2
  • Mingyan Zhao
    • 2
  • Yuxin Wang
    • 2
  • He Guo
    • 2
  1. 1.De Montfort UniversityUK
  2. 2.Dalian University of TechnologyChina

Personalised recommendations