7 CONCLUSION
The development of complex systems involves dif-
ferent actors. The latter use various tools to mod-
ify development artifacts, model and code in particu-
lar. Modifications of the artifacts raise the problem of
synchronizing model and code. Synchronization re-
quires to reflect modifications in code back to model.
The paper presented an approach for dealing with this
problem in the context of synchronization of software
architecture models specified by UML state machines
and component-based concepts and code.
The contributions allow programmers to effi-
ciently organize source code, modify it, identify code
modifications and automatically propagate it back to
the model. The approach is based on additional pro-
gramming constructs added to an existing program-
ming language and an incremental reverse engineer-
ing. The additional constructs allow to unambigu-
ously map code elements back to model elements.
The additional constructs are made executable by a
text-to-text transformation-based preprocessing step.
The evaluation of the approach is based on a Lego
Car Factory as case study. We evaluate the correct-
ness of the incremental reverse engineering if code is
modified. The results show that modifications in code
can be propagated back to the model. Therefore, de-
velopers do not need to manually update model from
code.
In future work, we will evaluate how programmers
react to the new organized code. We intend to con-
duct an empirical study and assess the perception of
programmers of the additional constructs.
REFERENCES
Aldrich, J., Chambers, C., and Notkin, D. (2002). Arch-
Java: Connecting Software Architecture to Implemen-
tation. In Software Engineering, 2002. ICSE 2002,
pages 187–197. IEEE.
Badreddin, O., Lethbridge, T. C., Forward, A., Elasaar, M.,
and Aljamaan, H. (2014). Enhanced Code Generation
from UML Composite State Machines. Modelsward
2014, pages 1–11.
CEA LIST (2016). LEGO Car Factory.
http://robotics.benedettelli.com/lego-car-factory/.
[Online; Accessed 22-Mar-2017].
Chardigny, S., Seriai, A., Oussalah, M., and Tamzalit, D.
(2008). Extraction of Component-Based Architecture
from Object-Oriented Systems. In Software Architec-
ture, 2008. WICSA 2008. Seventh Working IEEE/IFIP
Conference on, pages 285–288. IEEE.
Deors (2011). Code Generation using Annotation Proces-
sors in the Java language part 3: Generating Source
Code. [Online; accessed 06-Sept-2017].
IBM (2016). IBM Rhapsody. http://www.ibm.com/develop
erworks/downloads/r/rhapsodydeveloper/. [Online;
accessed 04-July-2016].
Kelly, S. and Tolvanen, J. P. (2007). Domain-Specific Mod-
eling: Enabling Full Code Generation.
Maro, S., Steghöfer, J.-P., Anjorin, A., Tichy, M., and Gelin,
L. (2015). On Integrating Graphical and Textual Ed-
itors for a UML Profile Based Domain Specific Lan-
guage: An Industrial Experience. In Proceedings of
the 2015 ACM SIGPLAN SLE, pages 1–12. ACM.
Pawlak, R., Monperrus, M., Petitprez, N., Noguera, C.,
and Seinturier, L. (2016). Spoon: A library for
implementing analyses and transformations of java
source code. Software: Practice and Experience,
46(9):1155–1179.
Pham, V. C. (2017). Github Test Lego Car. https://github.
com/phamvancam2104/test-lego-car. [Online; ac-
cessed 09-Aug-2016].
Pham, V. C., Li, S., Radermacher, A., and Gérard, S. (2016).
Foster Software Architect and Programmer Collabora-
tion. In 21th International Conference on Engineering
of Complex Computer Systems, ICECCS 2016, pages
1–10, Dubai, United Arab Emirates.
Pham, V. C., Radermacher, A., Gerard, S., and Li, S.
(2017a). Bidirectional mapping between architecture
model and code for synchronization. In Software Ar-
chitecture (ICSA), 2017 IEEE International Confer-
ence on, pages 239–242. IEEE.
Pham, V. C., Radermacher, A., Gérard, S., and Li, S.
(2017b). Complete code generation from uml state
machine. In MODELSWARD, pages 208–219.
Ráth, I., Varró, G., and Varró, D. (2009). Change-Driven
Model Transformations. In International Conference
on Model Driven Engineering Languages and Sys-
tems, pages 342–356. Springer.
Jolak, R., Umuhoza, E., Ho-Quang, T., Chaudron, M.R.V.
and Brambilla, M. (2017). Dissecting design effort
and drawing effort in UML modeling. In 2017 43rd
Euromicro Conference on Software Engineering and
Advanced Applications (SEAA) (pp. 384-391). IEEE.
Selic, B. (2012). What Will It Take? A View on Adop-
tion of Model-Based Methods in Practice. Software &
Systems Modeling, 11(4):513–526.
SparxSystems (2016). Enterprise Architect. http://www.
sparxsystems.eu/start/home/. [Online; accessed 20-
Nov-2016].
Steinberg, D., Budinsky, F., Merks, E., and Paternostro, M.
(2008). EMF: Eclipse Modeling Framework. Pearson
Education.
Woods, E. and Rozanski, N. (2010). Unifying Software
Architecture with Its Implementation. Proceedings
of the Fourth ECSA Companion Volume - ECSA ’10,
page 55.
A New Approach for Reflection of Code Modifications to Model in Synchronization of Architecture Design Model and Code
503