completed the source code. Finally, he generated con-
troller code from the navigation model.
We asked various modifications to be made to the
prototype. Because our tool makes it possible to syn-
chronize all models automatically, modifications were
made incrementally, synchronizing all models each
time. When functions are added and requirements
change, he can return to the modeling phase, mod-
ify the software design, and then easily reflect the
changes to the source code. Furthermore, he can mod-
ify source code directly, and automatically update the
models. Therefore, the developer can choose how to
modify the application, i.e., through the sequence di-
agrams, statecharts, or source code.
4.2 Discussion
When generating statechart from sequence diagram,
information is not lost because all elements in a se-
quence diagram has a correspondingelement in a stat-
echart. On the other hand, when generating sequence
diagram from statechart, our tool analyzes action de-
scriptions and not states or transitions. Thus, when
adding or removing states or transitions, we must add
or remove the corresponding action description. To
solve this problem, we may need functions such as the
verification of whether a statechart has enough action
descriptions
When analyzing source code, we assume that each
field refers to the same object at all time. As long
as this constraint is satisfied, information is not lost
when generating sequence diagram from source code
because our tool identifies object using integrated
OFG. However, if there is a violation, our tool can-
not analyze the code correctly. In this case, it is nec-
essary to exclude the violating object from analysis.
The analysis can still continue correctly as long as the
excluded object does not send a message to other ob-
jects, because an object with no message sending does
not affect other objects.
Since our tool needs the navigation model for gen-
eration, application development with our tool should
always start from the very beginning. However, a de-
veloper can use our tool on an existing application if
he first creates its navigation model. The controller
and logic does not need to be clearly separated, but
each logic needs to start with a call to an arbitrary
method. This makes it possible to create a navigation
model using a receiver class as a proxy. However, our
tool cannot generate controller code from this type
of navigation model, and it is not possible to verify
whether the navigation model is correct.
5 CONCLUSIONS
We proposed a tool that supports round-trip engineer-
ing that handles dynamic models and source code.
Our tool targets business logic development of Web
applications, and supports sequence diagrams, state-
charts and source code. We also introduce a navi-
gation model to model the navigation flow, and this
is used during the generation process. Our tool also
takes the navigation model and generates controller
code. Our tool make possible efficient iterative and
incremental development of Web applications.
Future work includes the following: (1) verifica-
tion of statechart described in Section 4.2, (2) removal
of the constraint on source code analysis, and (3) co-
ordination with existing MVC based Web application
development frameworks.
REFERENCES
Borland (2006). Borland together technologies.
http://www.borland.com/us/products/together/.
Hasegawa, H., Takada, S., and Doi, N. (2004). Supporting
the iterative development of sequence diagrams and
statecharts. In Proc. of the 8th IASTED Int’l Conf. on
Software Engineering and Applications, pp.736-742.
Henriksson, A. and Larsson, H. (2003). A definition
of round-trip engineering. In Technical Report,
http://www.ida.liu.se/˜andhe/re.pdf.
IBM (2006). Rational software modeler. http://www-
306.ibm.com/software/rational/.
Krasner, G. E. and Pope, S. T. (1988). A description of the
model-view-controller user interface paradigm in the
smalltalk-80 system. In Journal of Object Oriented
Programming, Vol.1, No.3, pp.26-49.
Medvidovic, N. and A. Egyed, D. S. R. (1999). Round-trip
software engineering using uml: From architecture to
design and back. In Proc. of the 2nd Workshop on
Object-Oriented Reengineering, pp.1-8.
Mellor, S. J. and Balcer, M. J. (2002). Executable UML - A
Foundation for Model-Driven Architecture. Addison
Wesley.
OMG (2007). Unified modeling language (uml), version
2.1.1. http://www.omg.org/.
Omondo (2006). Eclipseuml. http://www.eclipseuml.com/.
Sendall, S. and Kuster, J. (2004). Taming model round-trip
engineering. In Proc. of Workshop on Best Practices
for Model-Driven Software Development.
Starr, L. (2002). Executable UML - How To Build Class
Models. Prentice-Hall, Inc.
Tonella, P. and Potrich, A. (2003). Reverse engineering of
the interaction diagrams from c++ code. In Proc. of
the Int’l Conf. on Software Maintenance, pp.159-168.
ROUND-TRIP ENGINEERING OF WEB APPLICATIONS FOCUSING ON DYNAMIC MODELS
233