Software Stability in Software Reengineering

Legacy systems won't evolve well in today's modern computing environments without reengineering. Unfortunately, most reengineering projects are only concerned about whether the systems can be seamlessly integrated into the environments and usually ignore the quality in the improvement of the legacy systems. We all agree that it would be better to observe both integration and quality improvement implemented in the reengineering process. Software stability makes this possible in the reengineering process so that the new systems can run in a heterogeneous computing environment but also be stable enough to reduce the maintenance costs and efforts. In this paper, a connection between the stability modeling and reengineering process for legacy system is described. A preliminary study on techniques for building a better stable system will be presented although the techniques are still not very promising yet. We will also discuss the issues and challenges of applying software stability into the legacy reengineering process.

[1]  Mohamed Fayad Accomplishing software stability , 2002, CACM.

[2]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[3]  Jianling Sun,et al.  Human factors in extracting business rules from legacy systems , 2004, 2004 IEEE International Conference on Systems, Man and Cybernetics (IEEE Cat. No.04CH37583).

[4]  J ChikofskyElliot,et al.  Reverse Engineering and Design Recovery , 1990 .

[5]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[6]  Haitham S. Hamza Separation of Concerns for Evolving Systems: A Stability-Driven Approach , 2005 .

[7]  Norman F. Schneidewind,et al.  The State of Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[8]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[9]  Chia-Chu Chiang Wrapping legacy systems for use in heterogeneous computing environments , 2001, Inf. Softw. Technol..

[10]  Mohamed E. Fayad,et al.  An Introduction to Software Stability , 2001 .

[11]  Houari A. Sahraoui,et al.  Predicting software stability using case-based reasoning , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[12]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[13]  Adam Altman,et al.  Thinking objectively: an introduction to software stability , 2001, CACM.

[14]  Anthony Finkelstein,et al.  Requirements stability assessment using scenarios , 2003, Proceedings. 11th IEEE International Requirements Engineering Conference, 2003..

[15]  Ladan Tahvildari,et al.  Evaluating architectural stability using a metric-based approach , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[16]  Mahmoud O. Elish Do Structural Design Patterns Promote Design Stability? , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[17]  Kathleen J. Mullen,et al.  Agricultural Policies in India , 2018, OECD Food and Agricultural Reviews.

[18]  Chia-Chu Chiang,et al.  Legacy Software Modernization , 2006, 2006 IEEE International Conference on Systems, Man and Cybernetics.

[19]  Rami Bahsoon,et al.  Evaluating architectural stability with real options theory , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[20]  Diane Kelly,et al.  A study of design characteristics in evolving software using stability as a criterion , 2006, IEEE Transactions on Software Engineering.

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Houari A. Sahraoui,et al.  An analogy-based approach for predicting design stability of Java classes , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[23]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[24]  Robert S. Arnold Software Reengineering , 1993 .

[25]  Mohamed Fayad How to deal with software stability , 2002, CACM.