SPRing: Iterative Overcoming of Software Misuse

Software misuse may cause very undesirable and expensive outcomes. Our work has proposed and we have been developing a priori preparation techniques of an embedded software system for eventual extensions that enable overcoming the consequences of its misuse. The center of gravity of this paper is its iterative aspect. In other words, extensions may be added, either continuously or after some time discontinuity. This is attained by means of SPRing, a convenient acronym of Software Proactive Reengineering. SPRing is based upon domain knowledge to model the system misuse. Specifically, system behaviors modeled by statechart diagrams, can be reengineered to suitably extend them, in order to correct diverse misuse outcomes. The approach is demonstrated by case studies related to Signal Traffic Lights and their controllers.