An introduction to TUG: a language for writing reusable formal program specifications

TUG (Tree Unified with Grammar) was developed to support a system to be developed through an integration of conventional software development, operational specification, rapid prototyping via software transformations, software reuse, and analysis of specifications and programs via testing and proofs. The language integrates various software development paradigms into a coherent whole to fit specific needs of developing organizations. This paper shows how to write reusable specifications in TUG. Compared to other existing specification languages, the advantages, disadvantages, limitations, and strengths of the language is discussed. The language improves the reusability of formal specifications in the following ways: (i) a developer can run a TUG specification as a prototype to study its behavior due to its executability at the front-end of the software life cycle, (ii) a developer can easily write a parametric program corresponding to its parametric specification due to the similar semantics.

[1]  Chia-Chu Chiang,et al.  Automated rapid prototyping of TUG specifications using Prolog , 2004, Inf. Softw. Technol..

[2]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[3]  Norbert E. Fuchs Specifications are (preferably) executable , 1992, Softw. Eng. J..

[4]  Anne Elisabeth Haxthausen,et al.  The Raise Specification Language , 1992 .

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

[6]  Liliana Favre Object oriented reuse through algebraic specifications , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 28 (Cat. No.98TB100271).

[7]  Peter Henderson,et al.  Executing formal specifications need not be harmful , 1996, Softw. Eng. J..

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

[9]  Chia-Chu Chiang,et al.  Towards Quality of Software in TUG , 2004, J. Inf. Sci. Eng..

[10]  Mohamed Jmaiel,et al.  Specification and verification of multi-agent applications using temporal Z , 2004, Proceedings. IEEE/WIC/ACM International Conference on Intelligent Agent Technology, 2004. (IAT 2004)..

[11]  Amer Diwan,et al.  A tool for writing and debugging algebraic specifications , 2004, Proceedings. 26th International Conference on Software Engineering.

[12]  Jeanine Souquières,et al.  An approach for the verification of UML models using B , 2004, Proceedings. 11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2004..

[13]  Paul Douglas,et al.  Proceedings International Conference on Information Technology: Coding and Computing , 2002, Proceedings. International Conference on Information Technology: Coding and Computing.