Applying static code analysis for domain-specific languages

The use of code quality control platforms for analysing source code is increasingly gaining attention in the developer community. These platforms are prepared to parse and check source code written in a variety of general-purpose programming languages. The emergence of domain-specific languages enables professionals from different areas to develop and describe problem solutions in their disciplines. Thus, source code quality analysis methods and tools can also be applied to software artefacts developed with a domain-specific language. To evaluate the quality of domain-specific language code, every software component required by the quality platform to parse and query the source code must be developed. This becomes a time-consuming and error-prone task, for which this paper describes a model-driven interoperability strategy that bridges the gap between the grammar formats of source code quality parsers and domain-specific text languages. This approach has been tested on the most widespread platforms for designing text-based languages and source code analysis. This interoperability approach has been evaluated on a number of specific contexts in different domain areas.

[1]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[2]  Bernhard Bauer,et al.  Data-Flow Based Model Analysis and Its Applications , 2013, MoDELS.

[3]  D. Boud Sustainable Assessment: Rethinking assessment for the learning society , 2000 .

[4]  Heike Wehrheim,et al.  Grammar-based model transformations: Definition, execution, and quality properties , 2015, Comput. Lang. Syst. Struct..

[5]  María José Escalona Cuaresma,et al.  Open source tools for measuring the Internal Quality of Java software products. A survey , 2013, Comput. Stand. Interfaces.

[6]  Jordi Cabot,et al.  Model-Driven Software Engineering in Practice , 2017, Synthesis Lectures on Software Engineering.

[7]  Aruna Raja,et al.  Domain Specific Languages , 2010 .

[8]  Bryan Ford,et al.  Parsing expression grammars: a recognition-based syntactic foundation , 2004, POPL '04.

[9]  Jeffrey G. Gray,et al.  Challenges for Addressing Quality Factors in Model Transformation , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[10]  Wolfram Amme,et al.  Static analysis and process model transformation for an advanced business process to Petri net mapping , 2018, Softw. Pract. Exp..

[11]  Alan R. Hevner,et al.  Design Research in Information Systems , 2010 .

[12]  Gerti Kappel,et al.  Model Transformation By-Example: A Survey of the First Wave , 2012, Conceptual Modelling and Its Theoretical Foundations.

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Xavier Franch,et al.  Dealing with Non-Functional Requirements in Model-Driven Development , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[15]  Neil Brown,et al.  Novice Java Programming Mistakes , 2017, ACM Trans. Comput. Educ..

[16]  Jean-Louis Letouzey,et al.  The SQALE method for evaluating Technical Debt , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[17]  Alain Abran,et al.  Usability Meanings and Interpretations in ISO Standards , 2003, Software Quality Journal.

[18]  Herbert Prähofer,et al.  Opportunities and challenges of static code analysis of IEC 61131-3 programs , 2012, Proceedings of 2012 IEEE 17th International Conference on Emerging Technologies & Factory Automation (ETFA 2012).

[19]  Diomidis Spinellis,et al.  Does Your Configuration Code Smell? , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[20]  Apostolos Ampatzoglou,et al.  The financial aspect of managing technical debt: A systematic literature review , 2015, Inf. Softw. Technol..

[21]  Terence Parr,et al.  LL(*): the foundation of the ANTLR parser generator , 2011, PLDI '11.

[22]  Roman R. Redziejowski From EBNF to PEG , 2012, CS&P.

[23]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[24]  Debora Shaw,et al.  Handbook of usability testing: How to plan, design, and conduct effective tests , 1996 .

[25]  Siti Rochimah,et al.  Non-Source Code Refactoring: A Systematic Literature Review , 2015 .

[26]  Alan R. Hevner,et al.  Design Research in Information Systems: Theory and Practice , 2010 .

[27]  Elaine Gould Behind Bars: The Definitive Guide to Music Notation , 2011 .

[28]  Kathryn T. Stolee,et al.  Smells in block-based programming languages , 2016, 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[29]  Sreeja Nair,et al.  A Generic Static Analysis Framework for Domain-specific Languages , 2018, 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA).

[30]  Sarah Davies,et al.  Effective Assessment in a Digital Age , 2010 .

[31]  James R. Cordy,et al.  A survey of grammatical inference in software engineering , 2014, Sci. Comput. Program..

[32]  Robert L. Nord,et al.  Technical Debt: From Metaphor to Theory and Practice , 2012, IEEE Software.

[33]  Arie van Deursen,et al.  Domain-Specific Languages in Practice: A User Study on the Success Factors , 2009, MoDELS.

[34]  Arjun Guha,et al.  Rehearsal: a configuration verification tool for puppet , 2015, PLDI.