With the existing approaches software maintenance is performed linearly, partially, locally, and qualitatively, so that each time when a bug is fixed, there is a 20-50% of chance to introduce another into the software product being maintained - the result is that software maintenance takes more than 75 percent of the total effort and total cost in a software development, and the software being maintained becomes unstable day by day.         Differently, With NSE software maintenance is performed nonlinearly, holistically, globally, and quantitatively through side-effect prevention supported by various bi-directional traceability in the implementation of requirement changes or code modifications to ensure the reliability of a software being maintained, plus that software quality is ensured mainly through defect prevention and defect propagation from the first place, so that the defects propagated to the maintenance phase are greatly reduced, so that in this way about 2/3 of the time and effort spent in software maintenance can be reduced.         “Clearly, methods of designing programs so as to eliminate or at least illuminate side effects can have an immense payoff in maintenance cost” [Bro95].









        With NSE regression testing after software changes are performed using minimized test cases through test case efficiency analysis and test case minimization.