rosea

ROSEA is a Tcl package that is a suitable target for translating executable software models into Tcl programs. From the executable model point of view, ROSEA maps model level concepts onto Tcl language constructs. Translation is accomplished by describing the executable model in a domain specific language. Afterwards, a code generator creates data used by a run time component to execute the modeled system.

From the Tcl point of view, ROSEA is an object system based on namespace ensembles and uses TclRAL to store class data. The ROSEA object system includes direct support for:

  • Referential integrity checks with transparent transactions on the class model.
  • Declarative specification of state models that are associated with a class.
  • Singleton state models used to serialize competitive relationships.
  • Signaling events between state models.
  • Navigating relationships between classes to find the related instances.
  • Class based operations
  • Instance based operations

Attributes

website
http://repos.modelrealization.com/cgi-bin/fossil/mrtools/wiki?name=RoseaPage
website
http://chiselapp.com/user/mangoa01/repository/mrtools/wiki?name=RoseaPage
current release
1.7
release time
2017-08-26

Documentation

   http://repos.modelrealization.com/cgi-bin/fossil/mrtools/doc/trunk/rosea/doc/rosea.pdf%|%Literate Program Documentation
   http://repos.modelrealization.com/cgi-bin/fossil/mrtools/doc/trunk/rosea/doc/rosea.html%|%Manual Page Documentation
   http://repos.modelrealization.com/cgi-bin/fossil/mrtools/doc/trunk/rosea/doc/paper/paper/confpaper.pdf%|%Tcl 2015 Paper on ROSEA

Examples

   http://repos.modelrealization.com/cgi-bin/fossil/mrtools/doc/trunk/rosea/examples/mellor-balcer/simplebookstore.pdf%|%Online Bookstore Example

APN This is pretty impressive, both the software and the documentation. Is this used in production or more of a research project?

GAM Rosea is the result of a long time interest of mine in more formal methods of software development. I have several users of rosea that use it for production software and, of course, I use it myself.