Undo models can be categorizes as linear or non-linear. The non-linear undo model can be sub-classified in script model, us&r model, triadic model, and selective undo.
Some common properties of models are:
stable execution property: A state is represented as an ordered list of commands. This means that a command "is always undone in the state that was reached after the original execution."
weakened stable execution: This means that if undo is executed all commands which depend on the undone command are undone dependent on the command.
stable result property: This property has the similar meaning like the stable execution propertyexcept for the list. The ordered list of commands includes that they were executed instead of only the commands.
commutative: That means that the reached state after undo and redo two different commands is the same when they are executes in the converse order.
minimalistic undo property: It describes that "undo operation of command C undoes only command C and all commands younger than C which are dependent on C.