This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Using Transformations in Specification-Based Prototyping
May 1993 (vol. 19 no. 5)
pp. 436-452

The authors explore the use of software transformations for software evolution. Meaning-preserving program transformations have been widely used for program development from a fixed initial specification. They consider a wider class of transformations to support development in which the specification evolves, rather than being fixed in advance. A new and general classification of transformations based on their effect on system interfaces, externally observable behavior, and abstraction level of a system description is presented. This classification is used to rearrange chronological derivation sequences containing meaning-changing transformations into lattices containing only meaning-preserving transformations. A process model for software evolution that utilizes prototyping techniques is described. Ways in which this class of transformations can be used to support such a process are considered. A set of examples are presented to illustrate the ideas. Software tool support and directions for future research are discussed.

[1] G. Arango, I. Baxter, P. Freeman, and C. Pidgeon, "TMM: Software maintenance by transformation,"IEEE Software, vol. 3, pp. 27-39, May 1986.
[2] R. Balzer, "A 15 year perspective on automatic programming,"IEEE Trans. Software Eng., vol. SE-11, no. 11, pp. 1257-1268, Nov. 1985.
[3] D. Barstow, "An experiment in knowledge-based automatic programming,"Artificial Intell., vol. 12, pp. 73-119, Aug. 1979, Also in [34, pp. 133-156].
[4] Bauer, F.L., et al.,The Munich Project CIP, Vol. I: The Wide Spectrum Language CIP-L, Lecture Notes in Computer Science 183, Springer-Verlag, 1985.
[5] F. L. Bauer, H. Ehler, A. Horsch, B. Möller, H. Partsch, O. Paukner, and P. Pepper,The Munich Project CIP. Volume II: The Program Transformation System CIP-S(Lecture Notes in Computer Science 292). New York: Springer, 1987.
[6] F. Bauer, B. Möller, H. Partsch, and P. Pepper, "Formal program construction by transformations--Computer-aided, intuition-guided programming,"IEEE Trans. Software Eng., vol. 15, pp. 165-180, Feb. 1989.
[7] V. Berzins, "On merging software extensions,"Acta Inform., vol. 23, no. 6, pp. 607-619, Nov. 1986.
[8] V. Berzins and Luqi, "An introduction to the specification language Spec,"IEEE Software, vol. 7, pp. 74-84, Mar. 1990.
[9] V. Berzins and Luqi,Software Engineering with Abstractions: An Integratd Approach to Software Development Using Ada, Addison-Wesley, Reading, Mass., 1990.
[10] V. Berzins, "Software merge: Models and methods,"Int. J. Syst. Integration, vol. 1, pp. 121-141, Aug. 1991.
[11] J. Boyle and M. Muralidharan, "Program reusability through program transformation,"IEEE Trans. Software Eng., vol. SE-10, pp. 574-588, Sept. 1984.
[12] M. Broy, H. Partsch, P. Pepper, and M. Wirsing, "Semantic relations in programming languages," inInformation Processing 80, S. H. Lavington, Ed. Amsterdam: Elsevier North-Holland, 1980, pp. 101-106.
[13] R. M. Burstall and J. Darlington, "A transformation system for developing recursive programs,"J. ACM, vol. 24, no. 1, pp. 44-67, Jan. 1977.
[14] T. Cheatham, Jr., "Reusability through program transformations,"IEEE Trans. Software Eng., vol. SE-10, pp. 589-594, Sept. 1984. Also in [34, pp. 185-190].
[15] J. Darlington, "An experimental program transformation and synthesis system,"Artificial Intell., vol. 16, pp. 1-46, Mar. 1981, Also in [34, pp. 99-121].
[16] E. W. Dijkstra,A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976.
[17] M. Feather, "A system for transformationally deriving programs,"ACM Trans. Program. Lang. Syst., vol. 4, no. 1, pp. 1-21, Jan. 1982.
[18] M. S. Feather, "A survey and classification of some program transformation approaches and techniques," inProgram Specification and Transformation, L. G. L. T. Meertens, Ed. Amsterdam, The Netherlands, North-Holland, 1987, pp. 165-198.
[19] M. Feather, "Constructing specifications by combining parallel elaborations,"IEEE Trans. Software Eng., vol. 15, pp. 198-208, Feb. 1989.
[20] S. F. Fickas, "Automating the transformational development of software,"IEEE Trans. Software Eng., vol. SE-11, no. 11, pp. 1268- 1278, Nov. 1985.
[21] N. Goldman, "Three dimensions of design development," presented at the Nat. Conf. Artificial Intell., Washington, DC, Aug. 1983, Also, Tech. Rep. ISI/RS-83-2, USC Inform. Sci. Inst., 1983.
[22] C. Green, "A summary of the PSI program synthesis system, inProc. 5th Int. Joint Conf. Artificial Intell., 1977, pp. 380-381.
[23] W.L. Johnson and M.S. Feather, "Building an evolution transformation library," 12th International Conference on Software Engineering, Mar., 1990.
[24] E. Kant, "On the efficient synthesis of efficient programs,"Artificial Intell., vol. 20, pp. 253-36, May 1983. Also in [34, pp. 157-183].
[25] Luqi, "Software evolution via rapid prototyping,"IEEE Computer, vol. 22, pp. 13-25, May 1989.
[26] Luqi and M. Ketabchi, "A computer aided prototyping system,"IEEE Software, vol. 5, pp. 66-72, Mar. 1988.
[27] Luqi, V. Berzins, and R. Yeh, "A prototyping language for real-time software,"IEEE Trans. Software Eng., vol. 14, pp. 1409-1423, Oct. 1988.
[28] J. Neighbors, "The Draco approach to constructing software from reusable components,"IEEE Trans. Software Eng., vol. SE-10, pp. 565-573, Sept. 1984, Also in [34, pp. 525-535].
[29] D. L. Parnas and P. C. Clements, "A rational design process: How and why to fake it,"IEEE Trans. Software Eng., vol. SE-12, pp. 251-257, Feb. 1986.
[30] H. Partsch and R. Steinbrüggen, "Program transformation systems,"ACM Comput. Surveys, vol. 15, no. 3, pp. 199-236, Sept. 1983.
[31] S. Horowitz, J. Prins, and T. Reps, "Integrating non-interfering versions of programs,"Trans. Program. Lang. Syst., vol. 11, no. 3, pp. 345-387, July 1989.
[32] T. W. Reps and T. Teitelbaum,The Synthesizer Generator: A System For Constructing Language-Based Editors. New York: Springer-Verlag, 1988.
[33] C. Rich, R. Waters, and H. Rubenstein, "Toward a requirements apprentice," inProc. 4th Int. Workshop Software Specification and Design, IEEE, 1987, pp. 79-86.
[34] C. Rich and R.C. Waters,Readings in Artificial Intelligence and Software Engineering. Morgan Kaufmann, 1986.
[35] D.R. Smith, G. B. Kotik, and S. J. Westfold, "Research on knowledge-based software environments at Kestrel Institute,"IEEE Trans. Software Eng., vol. SE-11, no. 11, pp. 1278-1295, Nov. 1985.
[36] R. Steigerwald and V. Berzins, "Normal forms for algebraic specification of reusable Ada packages," inProc. Tri-Ada Conf., 1991.
[37] W.R. Swartout and R. Balzer, "On the inevitable intertwining of specification and implementation,"Commun. ACM, vol. 25, pp. 438-439, July 1982.
[38] D. S. Wile, "Program developments: Formal explanations of implementations,"Commun. ACM, vol. 26, no. 11, pp. 902-911, Nov. 1983.

Index Terms:
software tool support; specification-based prototyping; software transformations; software evolution; system interfaces; externally observable behavior; abstraction level; system description; chronological derivation sequences; process model; formal specification; software prototyping
Citation:
V. Berzins, Luqi, A. Yehudai, "Using Transformations in Specification-Based Prototyping," IEEE Transactions on Software Engineering, vol. 19, no. 5, pp. 436-452, May 1993, doi:10.1109/32.232011
Usage of this product signifies your acceptance of the Terms of Use.