Evolution: a more practical approach than refinement for software development

Refinement of operations is well defined in terms of refinement rules and is considered as a reasonable discipline for software development. This paper, however, observes that refinement is not sufficient to serve this role for the entire software development process and then proposes evolution for substitution. We show that refinement is indeed a special case of evolution and evolution is transitive. A small case study is given to demonstrate that using evolution rather than refinement as the discipline for software development is a more practical approach. The idea presented in this paper may be controversial, but the author believes that this idea is more useful, practical, and instructive than refinement approach, and expects to inspire more discussions about this issue.

[1]  Jim Woodcock The Rudiments of Algorithm Refinement , 1992, Comput. J..

[2]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[3]  William E. Howden,et al.  The derivation of functional specifications from source code , 1996, Proceedings 1996 Asia-Pacific Software Engineering Conference.

[4]  Shaoying Liu,et al.  Structured methodology+object-oriented methodology+formal methods: methodology of SOFL , 1995, Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems. ICECCS'95.

[5]  Katsuhisa Maruyama,et al.  New software components with an autonomous changing mechanism , 1996, Proceedings 1996 Asia-Pacific Software Engineering Conference.

[6]  Colin Potts,et al.  Requirements models in context , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[7]  Carlo Ghezzi,et al.  Process Model Evolution in the SPADE Environment , 1993, IEEE Trans. Software Eng..

[8]  Reidar Conradi,et al.  Techniques for Process Model Evolution in EPOS , 1993, IEEE Trans. Software Eng..

[9]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[10]  Václav Rajlich,et al.  Evolution and Reuse of Orthogonal Architecture , 1996, IEEE Trans. Software Eng..