kind of use is limited, and what we have shown
opens a much bigger potential of MDD with UML.
7 CONCLUSIONS
We have presented a semantically homogeneous and
coherent environment for model-driven development
of information systems based on an executable
profile of UML. We have also briefly reported on
our experience in using the environment in large-
scale industrial projects. Our experience has
undoubtedly shown that MDD can work efficiently
and as a powerful tool for tackling large essential
complexity of information systems, provided that it
is applied the right way. That right way, in our
opinion, assumes using models as central and
executable artifacts, just as code is in traditional
approaches. As an effect, the models are not just
sketches any more, but become accurate
documentation of design decisions, as well as
authoritative specifications of software. Because of
that, the rush-to-code syndrome can be cured, while
all benefits of using a language of higher level of
abstraction can be gained. To cite one of the
opinions quoted in (Petre, 2014), “The overhead [of
using UML] usually outweighs the benefits unless it
is very selectively used... Modeling a complete
application in UML is just plain awkward.” This is
indeed true, as we have explained, when a UML (or
any other) model does not bring any additional
value, but just represents a redundant and possibly
unreliable information about the system. However,
when one can get much more outcome and value
from a piece of a UML model, as in our approach,
than by traditional coding, then it is much easier to
make a model than to write the code. Modeling
should not be taken in a dogmatic way: one should
select the most efficient way to express a design
detail, be it a piece of model or code; for example,
an algebraic expression, object query, or if-then-else
construct will be most effectively expressed in the
adequate (textual and possibly domain-specific)
languages, while insisting on the use of activity
diagrams to specify an implementation of 15 lines of
structured code for a class method could bring us
back to the times of flowcharts and spaghetti
programming; on the other hand, a complex class
structure or object life cycle will be much better
expressed with a high-level UML model.
The fear of pitfalls is one of the main
impediments for adopting a new method such as
MDD by a wider community (although MDD is not
new at all, it still may appear so to the mainstream
industry). Of course, as other new approaches or
frameworks, our framework also suffered from some
weaknesses, especially in its earlier versions.
Although we fully understand this reluctance, we
think it should never prevent a progress, provided
that a real potential can be recognized (the
proverbial “baby and the bathwater” scenario).
Patience and effort should be invested in a
technology so that it can get mature enough,
provided it is inherently healthy. Our experience
shows that a real problem should always be tackled
with a pragmatic approach, technical sense, and
care, and if the software is designed with all
principles of software engineering obeyed (proper
abstraction, localization of design decisions,
encapsulation, clear and coherent architecture, etc.),
most technical problems or risks can be overcome
without jeopardizing the overall idea.
REFERENCES
Whittle, J., Hutchinson, J., and Rouncefield, M., "The
State of Practice in Model-Driven Engineering," IEEE
Software, vol. 31, no. 3, pp. 79-85, May-June 2014
Petre, M., “UML in Practice,” Proc. 35th Int’l Conference
on Software Engineering (ICSE 2013)
Petre, M., “'No shit' or 'Oh, shit!': Responses to
Observations on the Use of UML in Professional
Practice”, Software and Systems Modeling, October
2014, Volume 13, Issue 4, pp. 1225–1235
SOLoist, http://www.soloist4uml.com, retrieved
September 2016
Milićev, D., Model-Driven Development with Executable
UML, John Wiley & Sons (WROX), 2009
Selic, B., Gullekson, G., Ward, P. T., Real-Time Object-
Oriented Modeling, John Wiley & Sons, 1994
Groenewegen, D., Hemel, Z., Visser, E., “Separation of
Concerns and Linguistic Integration in WebDSL,”
IEEE Software, Vol. 27, No. 5, Sept./Oct. 2010, pp.
31-37
Object Management Group, UML 2.5, http://
www.omg.org/spec/UML/2.5, June 2015
Object Management Group, Semantics of a Foundational
Subset for Executable UML Models (FUML) 1.2.1,
http://www.omg.org/spec/FUML/1.2.1, January 2016
Object Management Group, Interaction Flow Modeling
Language (IFML) 1.0, http://www.omg.org/
spec/IFML/ 1.0, February 2015
Milićev, D., Mijailović, Ž, "Capsule-Based User Interface
Modeling for Large-Scale Applications," IEEE
Transactions on Software Engineering, vol. 39, no. 9,
pp. 1190-1207, September 2013
Tolvanen, J.-P., Kelly, S., “Model-Driven Challenges and
Solutions: Experiences with Domain-Specific
Modeling in Industry”, Industrial Track of
MODELSWARD 2015
Practical Large-scale Model-Driven Development of Business Applications with an Executable UML
603