Introduction to UniMod


UniMod states for Unified Modeling. Long term project goal is to create unified methodology for application development process that will close the gap between Design and Development phases.

Currently, UniMod project is focused on designing and implementing applications behavior. Already implemented approach adapts SWITCH-technology for UML notation. SWITCH-technology is also known as Automata-based Programming and has it's own Russian site

SWITCH-technology suggests to model application behavior with a help of Structural Finite State Machine (FSM). Structural FSM is defined as set of Abstract FSMs and scheme of Abstract FSMs interconnections.

There're a lot of tools and projects that uses FSM for describing application logic (IAR Systems visualSTATE, I-Logix Statemate,,,, but they are either a code-centric or do not use UML or are embedded systems oriented. In contrast to them, UniMod is focused on Model Driven Architecture, UML and universal computing.

UniMod defines it’s own methodology for describing application behavior and delivers set of tools that consists of Java Finite State Machine Framework and Eclipse Plug-in. Tools allow designing application logic with help of set of Class and Statechart Diagrams, generating finite state machine XML-description and then launch this XML-description using Runtime Framework that is part of Java Finite State Machine Framework.

Specific for UniMod details of UML diagrams usage are described in section Methodology. Note that Class diagram usage is little bit unusual.

Runtime Framework allows creating interpreters of finite state machine model. It defines the following common interpretation principles: on interpreter start-up, finite state machine XML-description is converted into in-memory Finite State Machine model once and completely; resulting system consists of runtime environment and in-memory representation of Finite State Machine; to handle events this system analyzes next event and input actions and chooses the transition to trig, trigs chosen transition, executes output actions, invokes included Finite State Machines. UniMod has implementations of interpreters that allows to use proposed approach for J2SE standalone applications and J2EE Web application.

The other approach supported by UniMod is target language code generation. State machine is transformed into code implementing it. Currently this approach is supported only for Symbian C++.

To start using UniMod see Quick Start section.

What is UniMod project

CASE tools are very popular now. They allow describing application model using of set of different diagrams. Diagrams may be converted into target programming language code late on.

For now, UML is the most popular modeling language. In UML there are means to model both static application structure using Class diagrams and application behavior using Statechart, Collaboration and Sequence diagrams.

UML itself doesn't define object-oriented applications modeling methodology, but only defines abstract language syntax and diagrams notation. There are number of well-known methodologies [1 - 5] for application modeling. They have good formal description of methodology for modeling static application structure, but have no acceptable formal description of application behavior modeling process. Semantic relation between behavior model and program code is absent. Furthermore, If application has complicated logic, Statechart diagram as proposed by UML could hardly be used because of not compact labels notation. Also there are limits on state machines nesting.

In [6, 7, 8] methodology called SWITCH-technology for modeling behavior of event-driven applications with explicit state emphasis was suggested by professor A.A. Shalyto. Key feature of this methodology is that entity behavior is described with a help of finite state machine (FSM). FSM is defined using connectivity schema and labeled transition graph with compact notation for labels.

UniMod project defines methodology for designing object-oriented event-driven applications based on SWITCH-technology adapted for UML. UniMod project delivers Java Finite State Machine Framework and Plug-in for Eclipse Platform that support defined methodology.

When should You Use UniMod

Do not use UniMod for:

Use UniMod for:


  1. G. Butch. Object-Oriented Analysis and Design with Applications. Pearson Education, 1993.
  2. J. R. Rumbaugh, M. R. Blaha, W. Lorensen, et al. Object-Oriented Modeling and Design. Prentice Hall. 1990.
  3. C. Larman. Applying UML and Patterns. Prentice Hall PTR, 1997.
  4. P. Coad. Object Models: Strategies, Patterns, and Applications. Prentice Hall PTR, 1997.
  5. J.J. Odell. Advanced Object-Oriented Analysis and Design using UML, New York: SIGS Books, 1998.
  6. A.A. Shalyto. Logic Control and "Reactive" Systems: Algorithmization and Programming. Automation and Remote Control, Vol. 62, No. 1, 2001, pp. 1-29. Translated from Avtomatika i Telemekhanika, No. 1, 2001, pp. 3-39.
  7. A.A. Shalyto. TECHNOLOGY OF AUTOMATA-BASED PROGRAMMING. PC World/Russia. 2003, № 10.
  8. A.A. Shalyto. Switch-tekhnologiia: algoritmizatsiia i programmirovanie zadach logicheskogo upravleniia. Sankt-Peterburg: Nauka, 1998.