Towards Quality of Software in TUG

The quality of software depends on the effectiveness of the software development process. Existing software development processes are still not flexible or practical enough for developing a system that requires a mix of existing processes to be used in the production of that system. In this paper, a formal specification language, called TUG (Tree with Unified Grammar), is presented to support a software development process that accommodates conventional software development, operational specification, rapid prototyping via software transformations, software reuse, software testing, and program proofs of correctness. The development process with TUG can not only allow for a mix of existing development processes applied to a given system but also can be adapted to one of existing development processes. The combination of existing development processes takes advantage of the strengths of each process in the system. The software development process with the aid of the TUG specification language can aid the production of reliable and reusable programs.

[1]  José Meseguer,et al.  Rapid prototyping: in the OBJ executable specification language , 1982, Rapid Prototyping.

[2]  Peter Henderson,et al.  An experiment in structured programming , 1972 .

[3]  Peter A. Lindsay,et al.  mural: A Formal Development Support System , 1991, Springer London.

[4]  Derek Andrews,et al.  Specification aspects of VDM , 1988 .

[5]  Dines Bjørner,et al.  VDM - A Formal Method at Work: Proceedings of the VDM-Europe Symposium (VDM '87), Brussels, Belgium, 23-26 March 1987 , 1987 .

[6]  Wolfgang Mueller,et al.  An Introduction to Formal Methods , 2004 .

[7]  Chia-Chu Chiang,et al.  Constructing reusable specifications through analogy , 1999, SAC '99.

[8]  James J. Horning,et al.  A Larch Shared Language Handbook , 1986, Sci. Comput. Program..

[9]  Pamela Zave,et al.  Salient features of an executable specification language and its environment , 1986, IEEE Transactions on Software Engineering.

[10]  Chia-Chu Chiang,et al.  Scalable templates for specification reuse , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[11]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[12]  Harlan D. Mills,et al.  Trace: Tennessee Research and Creative Exchange , 1967 .

[13]  M. I. Jackson,et al.  Developing ada programs using the vienna development method (VDM) , 1985, Softw. Pract. Exp..

[14]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[15]  Luqi,et al.  Using Transformations in Specification-Based Prototyping , 1993, IEEE Trans. Software Eng..

[16]  Dines Bjørner,et al.  VDM '87 VDM — A Formal Method at Work , 1987, Lecture Notes in Computer Science.

[17]  Andy Evans Visualising Concurrent Z Specifications , 1994, Z User Workshop.

[18]  Jonathan P. Bowen From programs to object code and back again using logic programming: Compilation and decompilation , 1993, J. Softw. Maintenance Res. Pract..

[19]  Chia-Chu Chiang,et al.  A formal method for proving programs correct , 2001, 2001 IEEE International Conference on Systems, Man and Cybernetics. e-Systems and e-Man for Cybernetics in Cyberspace (Cat.No.01CH37236).

[20]  Kees M. van Hee,et al.  Z and High Level Petri Nets , 1991, VDM Europe.

[21]  Verónica Dahl,et al.  Logic Grammars , 1989, Symbolic Computation.

[22]  Peter Baumann,et al.  A Framework for the Specification of Reactive and Concurrent Systems in Z , 1995, FSTTCS.

[23]  Johan Lewi,et al.  Algebraic Specifications in Software Engineering , 1989, Springer Berlin Heidelberg.

[24]  Antoni Diller,et al.  Z - an introduction to formal methods , 1990 .

[25]  Joseph A. Goguen,et al.  Parameterized Programming , 1984, IEEE Transactions on Software Engineering.

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

[27]  David H. D. Warren Logic programming and compiler writing , 1980, Softw. Pract. Exp..

[28]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[29]  Fernando Pereira,et al.  Definite clause grammars for language analysis , 1986 .

[30]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[31]  George F. Luger,et al.  Artificial Intelligence and the Design of Expert Systems , 1990 .

[32]  David A. Carrington,et al.  Object-Z: An Object-Oriented Extension to Z , 1989, FORTE.

[33]  Xudong He,et al.  PZ nets a formal method integrating Petri nets with Z , 2001, Inf. Softw. Technol..

[34]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[35]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[36]  Barry W. Boehm,et al.  Verifying and Validating Software Requirements and Design Specifications , 1989, IEEE Software.

[37]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.

[38]  Paolo Nesi,et al.  An Interval Logic for Real-Time System Specification , 2001, IEEE Trans. Software Eng..

[39]  Raymond J. A. Buhr,et al.  Temporal Logic-Based Deadlock Analysis For Ada , 1991, IEEE Trans. Software Eng..

[40]  T. Biggerstaff,et al.  Reusability Framework, Assessment, and Directions , 1987, IEEE Software.

[41]  Ben C. Moszkowski,et al.  A complete axiomatization of interval temporal logic with infinite time , 2000, Proceedings Fifteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.99CB36332).