Abstract
This article discusses a model intelligence technique called proactive modeling. The goal of proactive modeling is to reduce the amount of manual modeling required when using a graphical DSML and to assist in step-by-step creation of a model. Proactive modeling accomplishes this goal by examining the metamodels syntax and constraints, automatically executing model modifications, and prompting the modeler for assistance when more than one valid model modification exists, but none are necessary. We have integrated proactive modeling into the generic modeling environment (GME) as a generic add-on that can operate on any domain-specific modeling language implemented in GME. Lastly, results from applying proactive modeling to several DSMLs in GME show that it can reduce modeling effort.
Similar content being viewed by others
Notes
This article focuses on graphical DSMLs, but we are aware that DSMLs can be non-graphical. Our work is also not limited to only graphical DSMLs. We refer to graphical DSMLs as just DSMLs so we do not have to continually write “graphical DSMLs”.
See “Appendix” for the remaining constraints of the LMS
It is assumed that such constraint violations are not automatically checked after each model modification, which is possible in GME. Instead, it is assumed that the modeler manually invokes the constraint solver to validate the model.
A GME add-on is a domain-independent event handler that receives events dictating what model actions have occurred.
The test cases, including the GME metamodel, used in each of the scenarios can be downloaded from the following location: https://github.com/SEDS/GAME/tree/Model_Intel_Perf_Tests/performance-tests/Model_Intelligence/scalability.
References
Abrahams, D., Gurtovoy, A.: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. Addison-Wesley, Reading (2004)
Balasubramanian, K.: Model-Driven Engineering of Component-Based Distributed, Real-Time and Embedded Systems. Ph.D. thesis, Department of Electrical Engineering and Computer Science, Vanderbilt University, Nashville (2007)
Balasubramanian, K., Balasubramanian, J., Parsons, J., Gokhale, A., Schmidt, D.C.: A platform-independent component modeling language for distributed real-time and embedded systems. In: Proceedings of the 11th IEEE Real Time on Embedded Technology and Applications Symposium (RTAS 05), San Francisco, CA (2005)
Bruch, M., Monperrus, M., Mezini, M.: Learning from examples to improve code completion systems. In: 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering (ESEC/FSE ’09), pp. 213–222, ACM, New York, NY, USA (2009)
Chimia-Opoka, J., Felderer, M., Lenz, C., Lange, C.: Querying UML models Using OCL and prolog: a performance study. In: International Conference on Software Testing Verification and Validation Workshop, pp. 81–88 (2008)
Cook, S., Jones, G., Kent, S., Wills, A.: Domain-Specific Development With Visual Studio DSL Tools. Addison-Wesley, Reading (2007)
Deng, G., Balasubramanian, J., Otte, W., Schmidt, D.C., Gokhale, A.: DAnCE: a QoS-enabled component deployment and configuration engine. In: Proceedings of the 3rd Working Conference on Component Deployment (CD 2005), pp. 67–82, Grenoble, France (2005)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Harel, D., Rumpe, B.: Meaningful modeling: what’s the semantics of “semantics”? Computer 37(10), 64–72 (2004)
Hessel, A., Larsen, K., Mikucionis, M., Nielsen, B., Pettersson, P., Skou, A.: Testing Real-Time systems using UPPAAL. In: Formal Methods and Testing, pp. 77–117. Springer, Berlin (2008). http://www.cs.aau.dk/marius/tron/FMT2008.pdf
Hessellund, A., Czarnecki, K., Wa̧sowski, A.: Guided development with multiple domain-specific languages. In: Model Driven Engineering Languages and Systems, pp. 46–60. MODELS, Nashville, TN, USA (2007)
Hill, J.H.: Measuring and reducing modeling effort in domain-specific modeling languages with examples. In: 18th IEEE International Conference and Workshops on Engineering of Computer-Based Systems (ECBS), Las Vegas, NV (2011)
Janota, M., Kuzina, V., Wa̧sowski, A.: Model construction with external constraints: An interactive journey from semantics to syntax. In: Model Driven Engineering Languages and Systems, pp. 431–445. MODELS, Denver, CO, USA (2008)
Lattner, C., Adve, V.: Llvm: A compilation framework for lifelong program analysis and transformation. In: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization (CGO ’04), pp. 75–86. IEEE Computer Society, Washington, DC, USA (2004)
Lédeczi, Á., Bakay, Á., Maróti, M., Völgyesi, P., Nordstrom, G., Sprinkle, J., Karsai, G.: Composing domain-specific design environments. Computer 34(11), 44–51 (2001). doi:10.1109/2.963443
Ledeczi, A., Maroti, M., Bakay, A., Karsai, G., Garrett, J., Thomason, C., Nordstrom, G., Sprinkle, J., Volgyesi, P.: The Generic Modeling Environment, vol. 17, Workshop on Intelligent Signal Processing, Budapest, Hungary (2001)
Menasce, D.A., Almeida, V.A., Dowdy, L.W.: Performance by Design: Computer Capacity Planning by Example. Prentice Hall, Upper Saddle River (2004)
Murphy, G.C., Kersten, M., Findlater, L.: How are java software developers using the elipse ide? IEEE Softw. 23(4), 76–83 (2006)
Nguyen, A.T., Nguyen, T.T., Nguyen, H.A., Tamrawi, A., Nguyen, H.V., Al-Kofahi, J., Nguyen, T.N.: Graph-based pattern-oriented, context-sensitive source code completion. In: Proceedings of the 2012 International Conference on Software Engineering, pp. 69–79. IEEE Press, Piscataway (2012)
Object Management Group: CORBA Components v4.0. Object Management Group. OMG document formal/2006-04-01 edn. (2006)
Object Management Group: Object Constraint Language (2006)
Pati, T., Hill, J.H.: Proactive modeling: Auto-generating models from their semantics and constraints. In: 12th Workshop on Domain-Specific Modeling, pp. 7–12. Tucson, AZ (2012)
Robbes, R., Lanza, M.: How program history can improve code completion. In: 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008), pp. 317–326. IEEE (2008)
Schmidt, D.C.: Model-driven engineering. Computer 39(2), 25–31 (2006)
Sen, S., Baudry, B., Mottu, J.M.: On combining multi-formalism knowledge to select models for model transformation testing. In: 1st International Conference on Software Testing, Verification, and Validation (ICST 2008), pp. 328–337. IEEE (2008)
Sen, S., Baudry, B., Mottu, J.M.: Automatic model generation strategies for model transformation testing. In: Theory and Practice of Model Transformations, pp. 148–164. Springer, Berlin (2009)
Sen, S., Baudry, B., Vangheluwe, H.: Domain-specific model editors with model completion. In: Models in Software Engineering pp. 259–270. Springer, Berlin, Heidelberg (2008)
Slaby, J.M., Baker, S., Hill, J.H., Schmidt, D.C.: Applying system execution modeling tools to evaluate enterprise distributed real-time and embedded system QoS. In: 12th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2006), pp. 350–362. IEEE (2006)
Smith, C., Williams, L.: Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Addison-Wesley, Boston (2001)
Van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: an annotated bibliography. Sigplan Not. 35(6), 26–36 (2000)
Vangheluwe, H., Sun, X., Bodden, E.: Domain-specific modelling with AToM \(^{3}\). In: Proceedings of the OOPSLA Workshop on Domain-Specific Modeling (2004)
White, J., Schmidt, D.C., Mulligan, S.: The generic eclipse modeling system. In: Model-Driven Development Tool Implementers Forum (TOOLS), vol. 7 (2007)
White, J., Schmidt, D.C., Nechypurenko, A., Wuchner, E.: Domain-specific intelligence frameworks for assisting modelers in combinatorically challenging domains. In: GPCE4QoS (2006)
White, J., Schmidt, D.C., Nechypurenko, A., Wuchner, E.: Model intelligence: an approach to modeling guidance. UPGRADE 9(2), 22–28 (2008)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Prof. Jon Whittle.
Appendix: Constraints for the library management system
Appendix: Constraints for the library management system
Section 2 introduced the LMS and presented a few of its constraints. The remaining constraints of the LMS are as follows:
-
Minimum number of patrons required This constraint enforces the minimum number of patrons that a library must contain. As shown in Listing 8, the constraint checks that a Library model element has at least three Patron model elements. Lastly, this is automatically generated by GME from the cardinality expressed on the containment connection between the Library and Patron model elements in Fig. 1.
-
Minimum number of shelves required This constraint enforces the minimum number of shelves that a library must contain. As shown in Listing 9, the constraint checks that a Library model element has at least 2 Shelf model elements. Lastly, the constraint is automatically generated by GME from the cardinality expressed on the containment connection between the Library and Shelf model elements in Fig. 1.
-
Number of librarians required This constraint checks the minimum and maximum number of librarians that work at the library. As shown in Listing 10, the constraint checks that a Library model element has at least two and at most ten Librarian model elements. The constraint shown in this listing is automatically generated by GME from the cardinality expressed on the containment connection between the Library and Librarian model elements in Fig. 1.
-
Required age As shown in Listing 11, this constraint checks that the age of each patron who is a member of the library is at least 18 years of age. This is a domain-specific constraint is added manually by the metamodeler.
-
Book borrowing condition This constraint validates that a patron can only borrow books that are relevant to his/her field. For example, a computer science student can only borrow books that are relevant to the field of Computer Science. As shown in Listing 12, this constraint checks the patron’s major against the book’s department. This is a domain-specific constraint that is added manually by the metamodeler.
-
Patron referencing condition As shown in Listing 13, this constraint checks that the reference refers to a patron who belongs to another. This is a domain-specific constraint that is added manually by the metamodeler.
-
Inter-library book borrowing limit This constraint checks that a patron belonging to other libraries can only borrow a certain number of books. As shown in Listing 14, a patron can borrow only two books from the library.
Rights and permissions
About this article
Cite this article
Pati, T., Kolli, S. & Hill, J.H. Proactive modeling: a new model intelligence technique. Softw Syst Model 16, 499–521 (2017). https://doi.org/10.1007/s10270-015-0465-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-015-0465-1