result, the developer starts to focus on application
infrastructure issues, taking their focus from the
application domain, and the models become more
complex.
In this paper we present the MDD project Elihu,
which includes the use of Domain Patterns, software
design patterns and NOP for the modeling and
generation of the application in order to abstract the
computational infrastructure and allow the focus on
the domain of the problem.
The development of Elihu has involved the
construction of the metamodel from the definition of
the metaclasses that represent the Domain Patterns
and design patterns. Next, a concrete notation has
been created for the elements of the metamodel and
templates for generating code based on the NOP
framework.
To demonstrate the use of Elihu and validate
suitability, a case study based on an real application
has been developed. With each requirement
implemented, the application code has been generated
and executed to perform the necessary validations
with the users of the system. It was possible to
verify the proposed approach supports the generation
of complete domain models, with system behavior,
and understanding the objective of each class in the
system due to the use of patterns. The developer does
not need to change the infrastructure code. If new
changes to the application are required, the domain
model can be modified without requiring manual
changes to the code.
As future works can be cited: add support for
textual modeling languages, such as Xtext
14
, to
implement class operations in order to guarantee
independence of programming languages; add
behavioral diagrams to define the behavior of objects;
allow the definition of new patterns as modeling
elements by the developer; implementation of code
generation templates for NOP frameworks from
different technology platforms; comparative study
between development through Elihu and development
through NOP frameworks.
REFERENCES
Alford, R. (2013). An evaluation of model driven
architecture (mda) tools. Mestrado, University of
North Carolina Wilmington, Wilmington, NC.
Brambilla, M., Cabot, J., and Wimmer, M. (2012). Model-
driven software engineering in practice. Morgan &
Claypool Publishers.
Brand
˜
ao, M. (2013). Entities: Um framework java baseado
em naked objects para desenvolvimento de aplicac¸
˜
oes
14
Xtext - https://eclipse.org/Xtext/
web atrav
´
es da abordagem domain-driven design.
Mestrado, Universidade Estadual do Cear
´
a, Fortaleza.
Brand
˜
ao, M., Cort
´
es, M., and Gonc¸alves,
ˆ
E. (2012). Naked
objects view language. InfoBrasil.
Coad, P., Luca, J. d., and Lefebvre, E. (1999). Java
modeling in color with UML: Enterprise Components
and Process. Prentice Hall.
Evans, E. (2003). Domain-Driven Design: tackling
complexity in the heart of software. Addison Wesley,
Boston.
Fowler, M., Rice, D., Foemmel, M., Hieatt, E., Mee, R., and
Stafford, R. (2003). Patterns of enterprise application
architecture. Addison-Wesley Professional, Boston.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995).
Design patterns: elements of reusable object-oriented
software. Addison Wesley, Indianapolis.
Haan, J. D. (2008). 8 reasons why model-driven approaches
(will) fail. InfoQ.
Hailpern, B. and Tarr, P. (2006). Model-driven
development: The good, the bad, and the ugly. IBM
systems journal, 45(3):451–461.
Haywood, D. (2009). Domain-driven design using naked
objects. Pragmatic Bookshelf.
Laufer, K. (2008). A stroll through domain-driven
development with naked objects. Computing in
Science and Engineering, 10(3):76–83.
Mohagheghi, P. and Aagedal, J. (2007). Evaluating quality
in model-driven engineering. In Proceedings of
the International Workshop on Modeling in Software
Engineering, MISE ’07, pages 6–, Washington, DC,
USA. IEEE Computer Society.
Molina, P. J., Meli
´
a, S., and Pastor, O. (2002a). Just-ui: A
user interface specification model. In Computer-Aided
Design of User Interfaces III, pages 63–74. Springer.
Molina, P. J., Meli
´
a, S., and Pastor, O. (2002b). User
interface conceptual patterns. In Interactive Systems:
Design, Specification, and Verification, pages 159–
172. Springer.
Nilsson, J. (2006). Applying Domain-Driven Design and
patterns - with examples in C# and .NET. Addison
Wesley Professional.
Pawson, R. (2004). Naked Objects. Doutorado, Trinity
College, Dublin.
Pawson, R. and Matthews, R. (2001). Naked objects:
A technique for designing more expressive systems.
SIGPLAN Notices, 36(12):61–67.
Soares, S. A., Brand
˜
ao, M., Cort
´
es, M. I., and Freire, E.
S. S. (2015). Dribbling complexity in model driven
development using naked objects, domain driven
design, and software design patterns. In Computing
Conference (CLEI), 2015 Latin American, pages 1–
11. IEEE.
Soares, S. A., Cort
´
es, M. I., and Brand
˜
ao, M. G.
(2016). Dealing with the complexity of model driven
development with naked objects and domain-driven
design. In Proceedings of the 18th International
Conference on Enterprise Information Systems, pages
528–535.
Whittle, J., Hutchinson, J., Rouncefield, M., Burden,
H., and Heldal, R. (2013). Industrial adoption of
model-driven engineering: are the tools really the
problem? In Model-Driven Engineering Languages
and Systems, pages 1–17. Springer.
Elihu: A Project to Model-Driven Development with Naked Objects and Domain-Driven Design
279