From the folks who brought you UML: Semantics of a Foundational Subset for Executable UML Models
Constraints are excluded from fUML, because they are considered to be designâ€time annotations that should already be satisfied by a wellâ€formed model. Otherwise, the general semantics of the run time checking of constraints is not currently well specified in UML 2, particularly when constraints should be evaluated and what should happen if they should fail. Further elaboration of the semantics of constraint checking in UML was judged to be outside the scope of the fUML specification.
Petri Nets in general — and Finite State Machines specifically — is an area of research with a LOT of false doctrine. How are constraints design-time annotations? Even so, all you need to do is define a Universe of design-time and non-design-time elements. Therefore, you have a dual constraint?
By the way, I think the biggest mistake here is the OMG Four Layer Metamodeling Architecture. Jim Odell made it very clear in the early ’90s that you do “need” multiple layers of metamodeling, and decide how many N layers your project will need, but to prescribe a value for N is just ridiculous. Also, it is important to understand hw to layer things. In particular, RFC 3439 does a good job discussing why architectural patterns != structural patterns, and that architectural patterns should be reasoned about dynamically http://tools.ietf.org/html/rfc3439#page-7 (Perhaps by using continuation-passing-style, or some other bounded-termination model of computation).