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
Currently, UniMod project is focused on designing and
implementing applications behavior. Already implemented
approach adapts SWITCH-technology
notation. SWITCH-technology is also known as
Automata-based Programming and has it's own Russian site http://is.ifmo.ru/english/.
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
There're a lot of tools and projects that uses FSM for
describing application logic (IAR Systems
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
Specific for UniMod details of UML diagrams
usage are described in section Methodology.
Note that Class diagram usage is little
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 http://is.ifmo.ru/english/
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
project defines methodology for designing
object-oriented event-driven applications based on
-technology adapted for UML
project delivers Java Finite State Machine
Framework and Plug-in for Eclipse Platform http://www.eclipse.org
that support defined methodology.
When should You Use UniMod
Do not use UniMod for:
Use UniMod for:
G. Butch. Object-Oriented Analysis and
Design with Applications. Pearson Education, 1993.
J. R. Rumbaugh, M. R. Blaha, W.
Lorensen, et al. Object-Oriented Modeling and Design.
Prentice Hall. 1990.
C. Larman. Applying UML and Patterns.
Prentice Hall PTR, 1997.
P. Coad. Object Models: Strategies,
Patterns, and Applications. Prentice Hall PTR, 1997.
J.J. Odell. Advanced Object-Oriented
Analysis and Design using UML, New York: SIGS Books, 1998.
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.
A.A. Shalyto. TECHNOLOGY OF AUTOMATA-BASED PROGRAMMING.
PC World/Russia. 2003, № 10.
A.A. Shalyto. Switch-tekhnologiia:
algoritmizatsiia i programmirovanie zadach logicheskogo
upravleniia. Sankt-Peterburg: Nauka, 1998.