SmartEMF Guidance in Modeling Tools Anders Hessellund IT University of Copenhagen, Denmark hessellund@itu.dk Abstract The advent of domain-specific modeling in enterprise sys- tems development has given rise to new tool requirements. Existing tools do not offer sufficient modeling guidance or inconsistency management for the multitude of new metamodels and models. Specifically, there is a need to offer guidance on 1) valid editing operations, 2) ensuring consistency among models, 3) bridging the gap between models and custom code, and 4) managing the evolution of domain-specific languages. Based on two empirical case studies, we propose a new unirepresentational modeling tool – SmartEMF – which provides guidance and inconsistency management when developing enterprise systems with mul- tiple domain-specific languages. Categories and Subject Descriptors D.2.2 [Software En- gineering]: Design Tools and Techniques General Terms Design, Languages Keywords Multiple DSLs, Modeling Guidance 1. Research Area and Problem A modern configurable enterprise system is composed of a heterogeneous set of software artifacts: XML configuration files, graphical models, and customizations in the form of code snippets which have to be kept consistent. Conceptu- ally, development problems occurs because enterprise sys- tems due to their complex nature is an area where multiple domains and concerns intersect. Domain-specific modeling, which can be defined as the systematic use of domain- specific languages (DSLs) in design and implementation, have been shown to be very effective in managing such individual domains [5]. The problem of managing multiple DSLs in a single system such as a complex enterprise Copyright is held by the author/owner(s). OOPSLA’07, October 21–25, 2007, Montr´ eal, Qu´ ebec, Canada. ACM 978-1-59593-786-5/07/0010. system is, however, sparsely described. Our work attempts to address this gap in the understanding of domain-specific modeling and more generally of complex enterprise system development. In the domain-specific modeling approach, artifacts can be considered models conforming to different DSLs. Such languages can be tailored to suit different developer groups with custom notations and concepts. For instance, an entity language can provide a way to define business concepts and relations, whereas a form language can be used to define input forms in the user interface. Languages typi- cally should have consistency relations to each other. If the EditCustomer input form in the form language refers to a Customer object in the entity language then the entity models must contain a Customer object for the system to be consistent. Similarly, consistency relations also should exist between models and code. A high-level model of services can for instance be implemented with customized code snippets in a general-purpose language. We have identified several kinds of referential integrity constraints and other classes of consistency constraints in an empirical study [2] of an open source enterprise system, Apache Open for Business (OFBiz) [4]. The conclusion from this study is that current tools do not offer sufficient facilities for representing, checking, and maintaining con- straints in such a multiple DSLs scenario. Furthermore, developers lack automated guidance on how to avoid and resolve inconsistencies. These problems are even worse when the DSLs evolve. To cope with changing requirements it is sometimes necessary to change the grammars of these languages which in turn invalidates some existing models. A second empirical study of a proprietary enterprise system, Microsoft Dynamics [3], supports these conclusions but the results of that survey are subject to a non-disclosure agreement. 2. Existing approaches Modeling guidance and inconsistency management have been recognized as key challenges in development of com- plex enterprise systems. In [2], we have surveyed several related approaches. Existing approaches are usually either strong on consistency checking or guidance. Furthermore,