
This document contains answers to common questions about The Model Language (TML). It is not a tutorial on the notation, nor is it comprehensive documentation. You may find those items on the TML web site:
http://www.cs.utk.edu/sqrl/esp/tml.html
Discussion of this FAQ takes place on the JUMBL users email list. Visit the following site for more information:
http://lists.cs.utk.edu/listinfo/jumbl
Questions
Basics
What is TML?
Why not use XML?
What is the JUMBL?
Structure
How can I use the same included model in several places and only have it instantiated once?
How can I use state names other than [Enter] and [Exit] for the start and final states?
Answers: Basics
What is TML?
The Model Language (TML) is a notation for describing Markov chain usage models. For information on model based testing of software consult the SQRL publications page.
Why not use XML?
We are using XML for serialization in the JUMBL. TML is a ``shorthand'' notation for models, specifically intended for rapidly describing Markov chain usage models.
There are two XML extensions for describing Markov chain usage models: MML and EMML. Documentation for both can be found in the JUMBL user's guide.
What is the JUMBL?
The JUMBL is the Java Usage Model Builder Library. It provides a compiler and tools to work with TML. See the JUMBL page for more information.
Answers: Structure
How can I use the same included model in several places and only have it instantiated once?
You need to use an ``adapter'' state. Consider the following small model:
model example
[Enter]
"do x" X [Exit]
"do y" X [Exit]
"do z" X [Exit]
end
The included model X will be instantiated three times. This can be ``factored'' out by adding an intermediate state [A] as follows:
model example
[Enter]
"do x" [A]
"do y" [A]
"do z" [A]
[A]
"" X [Exit]
end
Now the included model X is referenced only once, and will be instantiated only once.
How can I use state names other than [Enter] and [Exit] for the start and final states?
If you want to make a state which is named something other than [Enter] the initial state, precede the name with the keyword source. If you want to make a state which is named something other than [Exit] the final state, precede the name with the keyword sink. Note that if the final state is not named [Exit], it must be explicitly defined in the model. The following is an example model.
model example
source [Start Test]
"do work" [End Test]
sink [End Test]
end