Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3267183.3267194acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbcarsConference Proceedingsconference-collections
research-article

On the Use of Metaprogramming and Domain Specific Languages: An Experience Report in the Logistics Domain

Published: 17 September 2018 Publication History

Abstract

In this paper we present the main design and architectural decisions to build an enterprise system that deals with the distribution of equipment to the Brazilian Army. The requirements of the system are far from trivial, and we have to conciliate the need to extract business rules from the source code (increasing software flexibility) with the requirements of not exposing the use of declarative languages to use a rule-based engine and simplifying the tests of the application. Considering these goals, we present in this paper a seamless integration of meta-programming and domain-specific languages. The use of meta-programming allowed us to isolate and abstract all definitions necessary to externalize the business rules that ensure the correct distribution of the equipment through the Brazilian Army unities. The use of a domain specific language simplified the process of writing automatic test cases related to our domain. Although our architecture targets the specific needs of the Brazilian Army, we believe that logistic systems from other institutions might also benefit from our technical decisions.

References

[1]
Ajith Abraham. 2005. Rule-Based Expert Systems. American Cancer Society, Chapter 130.
[2]
Deepak Alur, Dan Malks, and John a Crupi. 2003. Core J2EE Patterns: Best Practices and Design Strategies (2 ed.). Prentice Hall.
[3]
Ritu Arora, Purushotham Bangalore, and Marjan Mernik. 2009. Developing scientific applications using Generative Programming. In 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering. 51--58.
[4]
Barbara Barth, Greg Butler, Krzysztof Czarnecki, and Ulrich Eisenecker. 2002. Generative Programming. In Proceedings of the Workshops on Object-Oriented Technology (ECOOP '01), Ákos Frohner (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 135--149. http://dl.acm.org/citation.cfm?id=646781.705926
[5]
Gabriele Salgado Benato, Frank José Affonso, and Elisa Yumi Nakagawa. 2017. Infrastructure Based on Template Engines for Automatic Generation of Source Code for Self-adaptive Software Domain. In Proceedings of the International Conference on Software Engineering and Knowledge Engineering, SEKE. 30--35.
[6]
Ministério da Defesa Brasil. 2aedição, 2003. Manual de Campanha C 100-10 - Logistica Militar Terrestre. http://bibliotecamilitar.com.br/wp-content/uploads/2016/02/02-manual_c_100-10-logistica_militar_terrestre.pdf
[7]
Paul Browne. 2009. JBoss Drools business rules. Packt Publishing Ltd.
[8]
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. 1996. Pattern-Oriented Software Architecture, Volume 1: A System of Patterns. Wiley.
[9]
Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, and Judith Stafford. 2011. Documenting Software Architectures: Views and Beyond. Addison-Wesley Professional.
[10]
Michael J Crawley. 2013. The R book. John Wiley & Sons.
[11]
Krzysztof Czarnecki. 1999. Generative programming - principles and techniques of software engineering based on automated configuration and fragment-based component models. Ph.D. Dissertation. Technische Universität Illmenau, Germany. http://d-nb.info/958706700
[12]
Moritz Eysholdt and Heiko Behrens. 2010. Xtext: Implement Your Language Faster Than the Quick and Dirty Way. In Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion (OOPSLA '10). ACM, New York, NY, USA, 307--309.
[13]
Martin Fowler. 2002. Patterns of Enterprise Application Architecture. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.
[14]
Martin Fowler and Rebecca Parsons. 2013. DSL: Linguagens Específicas de Domínio. Bookman.
[15]
Joe Gallacher. 1989. Practical introduction to expert systems. Microprocessors and Microsystems 13, 1 (jan 1989), 47--53.
[16]
Ian Graham. 2007. Business rules management and service oriented architecture: a pattern language. John wiley & sons.
[17]
Crina Grosan and Ajith Abraham. 2011. Rule-Based Expert Systems. Springer Berlin Heidelberg, 149--185.
[18]
Frederick Hayes-Roth. 1985. Rule-Based Systems. Commun. ACM 28, 9 (1985), 921--932.
[19]
Chai Young Jung, Katherine A Sward, and Peter J Haug. 2011. Executing medical logic modules expressed in ArdenML using Drools. Journal of the American Medical Informatics Association 19, 4 (2011), 533--536.
[20]
Gabor Karsai, Holger Krahn, Claas Pinkernell, Bernhard Rumpe, Martin Schindler, and Steven Völkel. 2014. Design Guidelines for Domain Specific Languages. CoRR abs/1409.2378, October (2014), 7. http://arxiv.org/abs/1409.2378
[21]
Bass Len, Clements Paul, and Kazman Rick. 2013. Software Architecture in Practice. Addison-Wesley.
[22]
Dingcheng Li, Cory M Endle, Sahana Murthy, Craig Stancl, Dale Suesse, Davide Sottara, Stanley M Huff, Christopher G Chute, and Jyotishman Pathak. 2012. Modeling and executing electronic health records driven phenotyping algorithms using the NQF Quality Data Model and JBoss® Drools engine. In AMIA annual symposium proceedings, Vol. 2012. American Medical Informatics Association, 532.
[23]
Peter J. F. Lucas and Linda C. van der Gaag. 1991. Principles of expert systems. Addison-Wesley.
[24]
J Mantas et al. 2012. Comparing Drools and ontology reasoning approaches for telecardiology decision support. Quality of Life Through Quality of Information: Proceedings of MIE2012 180 (2012), 300.
[25]
Rick Mugridge and Ward Cunningham. 2005. Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin). Prentice Hall PTR, Upper Saddle River, NJ, USA.
[26]
K. R. Neeraj, P. S. Janardhanan, A. B. Francis, and R. Murali. 2017. A domain specific language for business transaction processing. In 2017 IEEE International Conference on Signal Processing, Informatics, Communication and Energy Systems (SPICES). 1--7.
[27]
Armando OrdÃşÃáez, Luis Eraso, Hugo OrdÃşÃáez, and Luis Merchan. 2016. Comparing Drools and Ontology Reasoning Approaches for Automated Monitoring in Telecommunication Processes. Procedia Computer Science 95 (2016), 353--360. Complex Adaptive Systems Los Angeles, CA November 2-4, 2016.
[28]
Logistics Committee OTAN. 2012. NATO Logistics Handbook. https://www.nato.int/docu/logi-en/logistics_hndbk_2012-en.pdf 2nd Edition, 2012.
[29]
Terence Parr. 2010. Language Implementation Patterns: create your own domain-specific and general programming languages. Pragmatic Bookshelf.
[30]
Terence Parr. 2013. The Definitive ANTLR 4 Reference. Pragmatic Bookshelf.
[31]
Terence John Parr. 2006. Web Application Internationalization and Localization in Action. In Proceedings of the 6th International Conference on Web Engineering (ICWE '06). 64--70.
[32]
Michael Pfeiffer and Josef Pichler. 2008. A comparison of tool support for textual domain-specific languages. In Proceedings of the 8th OOPSLA Workshop on Domain-Specific Modeling (DSM'08). 1--7. http://www.dsmforum.org/events/dsm08/papers.html
[33]
Vladimir Prebilič. 2006. Theoretical aspects of military logistics. Defense & Security Analysis 22, 2 (2006), 159--177.
[34]
Jelena Radjenovic, Branko Milosavljevic, and Dusan Surla. 2009. Modelling and implementation of catalogue cards using FreeMarker. Program 43, 1 (2009), 62--76.
[35]
Aruna Raja and Devika Lakshmanan. 2010. Domain Specific Languages. International Journal of Computer Applications 1, 21 (feb 2010), 105--111. arXiv:arXiv:1011.1669v3
[36]
Stephen M. Rutner, Maria Aviles, and Scott Cox. 2012. Logistics evolution: a comparison of military and commercial logistics thought. The International Journal of Logistics Management 23, 1 (may 2012), 96--118.
[37]
Mauricio Salatino, Mariano De Maio, and Esteban Aliverti. 2016. Mastering JBoss Drools 6. Packt Publishing Ltd.
[38]
Sergio Segura, Amador Durán, Javier Troya, and Antonio Ruiz Cortés. 2017. A Template-Based Approach to Describing Metamorphic Relations. In 2017 IEEE/ACM 2nd International Workshop on Metamorphic Testing (MET). 3--9.
[39]
Arie van Deursen, Paul Klint, and Joost Visser. 2000. Domain-specific Languages: An Annotated Bibliography. SIGPLAN Not. 35, 6 (June 2000), 26--36.
[40]
Matt Wynne and Aslak Hellesoy. 2012. The Cucumber Book: Behaviour-Driven Development for Testers and Developers. Pragmatic Bookshelf.
[41]
Matt Wynne, Aslak Hellesoy, and Steve Tooke. 2017. The cucumber book: behaviour-driven development for testers and developers. Pragmatic Bookshelf.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
SBCARS '18: Proceedings of the VII Brazilian Symposium on Software Components, Architectures, and Reuse
September 2018
123 pages
ISBN:9781450365543
DOI:10.1145/3267183
  • Program Chair:
  • Ingrid Nunes
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • SBC: Brazilian Computer Society
  • UFSCar: Federal University of São Carlos
  • IFSP: Federal Institute of São Paulo

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 September 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Domain Specific Languages
  2. Generative Programming
  3. Military Logistics
  4. Software Architecture

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SBCARS '18

Acceptance Rates

SBCARS '18 Paper Acceptance Rate 11 of 40 submissions, 28%;
Overall Acceptance Rate 23 of 79 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media