Trace Assertion Method - TAM'97
The Trace Assertion Method is a formal method for abstract specification of module interfaces. It describes software modules as observed by external observers. Each module implements a set of homogeneous and independent objects. From a programmer's point of view such modules deliver abstract data types. Objects correspond to state machines and they are homogeneous in that sense that their behavior is indistinguishable for the observer of the module.
The method was first presented by Bartussek and Parnas (1978), and then investigated and modified a number of times (e.g., by Parnas and Wang, 1989).
TAM'97 is a revised version of the method developed as part of the Fun-Project.
The last one is a joint project between Université du Québec à Hull, Québec and Warsaw University, and its purpose is to apply the "functional documentation model" (Parnas and Madey, 1995) to software development in a practical way.
Prototype software tools supporting practical application of TAM are already in use.
Examples of specifications in TAM