Application of the software maintenance predicate/transition net (smprt‐net) to the change control process of maintenance

Abstract Software maintenance has its own life cycle and its own features. Software maintenance can occur due to changing user needs, to errors which must be fixed, and to a changing environment; and these, at a high level, can be described by an iterative three stage process, i.e., request control, change control and release control. Change control mainly involves the problem being reproduced (if there is one), the code (and design and the specifications if available) being analyzed, the changes being designed and documented and tests produced, the code modifications being written, and quality assurance being implemented. In this paper, we describe a method of how to apply the Software Maintenance Predicate/Transition Net (SMPrT‐net) (Chu et al. 1996) to the change control process of maintenance, where software components are reverse engineered and annotated with formal predicates, transformed into SMPrT nets, analyzed, modified and tested on the PrT net. The advantage of the method is that change control of maintenance can be carried out precisely, which is due to characteristics of the SMPrT‐net, a variety of Petri net, the analysis of which can reveal important information about the structure and dynamic behavior of the modeled system.

[1]  William C. Chu,et al.  Acquisition of Entity Relationship Models for Maintenance-Dealing with Data Intensive Programs in a Transformation System , 1999, J. Inf. Sci. Eng..

[2]  Corrado Böhm,et al.  Flow diagrams, turing machines and languages with only two formation rules , 1966, CACM.

[3]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[4]  William C. Chu,et al.  Component reuse through reverse engineering and semantic interface analysis , 1995, Proceedings Nineteenth Annual International Computer Software and Applications Conference (COMPSAC'95).

[5]  William C. Chu,et al.  The integration and adaptation of reusable components through semantic interface analysis , 1994, Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94).

[6]  William C. Chu,et al.  A formal method for software maintenance , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[7]  Aniello Cimitile,et al.  A Logic-Based Approach to Reverse Engineering Tools Production , 1992, IEEE Trans. Software Eng..

[8]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[9]  Robert Lafore,et al.  Object-Oriented Programming in C++ , 1991 .

[10]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

[11]  Richard J. Reid Object-oriented programming in C++ , 1991, SGCS.

[12]  C. V. Ramamoorthy,et al.  The C Information Abstraction System , 1990, IEEE Trans. Software Eng..

[13]  Wojtek Kozaczynski,et al.  Program Concept Recognition and Transformation , 1992, IEEE Trans. Software Eng..

[14]  K. Bennett An overview of maintenance and reverse engineering , 1993 .

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