An Agnostic Domain Specific Language for Implementing Attacks in an Automotive Use Case
7
Citation
13
Reference
10
Related Paper
Citation Trend
Abstract:
This paper presents a Domain Specific Language (DSL) for generically describing cyber attacks, agnostic to specific system-under-test(SUT). The creation of the presented DSL is motivated by an automotive use case. The concepts of the DSL are generic such thatattacks on arbitrary systems can be addressed.The ongoing trend to improve the user experience of vehicles with connected services implies an enhanced connectivity as well asremote accessible interface opens potential attack vectors. This might also impact safety and the proprietary nature of potential SUTs.Reusing tests of attack vectors to industrialize testing them on multiple SUTs mandates an abstraction mechanism to port an attackfrom one system to another. The DSL therefore generically describes attacks for the usage with a test case generator (and executionenvironment) also described in this paper. The latter use this description and a database with SUT-specific information to generateattack implementations for a multitude of different (automotive) SUTs.Keywords:
Domain-specific language
A Domain Specific Language (DSL) is used as a means for comprehensively representing information of specific domain using higher levels of abstraction. They have been leveraged to model, store and retrieve domain knowledge using familiar and simple syntax. Generators written around DSL help in interpreting or translating the DSL into target environment.
Transaction oriented Commercial Applications are ideal candidates for such DSL representations as they are complex in nature and demand lot of experiential knowledge for abstracting such application requirements. Generators around such DSL can help in reducing the development efforts as well as in minimizing manual errors. Application models created using DSL can easily be reused and can help in building comprehensive application repositories. By continuously refining the Generators, DSL can sustain changes across technology, architectures and implementation platforms.
In this paper we share our experience over a decade on developing DSL and associated generators for modeling transaction based commercial applications. We also highlight our conclusions towards productivity, usability and maintainability of such DSL related initiatives.
Domain-specific language
Maintainability
Cite
Citations (0)
Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the application library stage. While many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns try to improve on and extend earlier work on DSL design patterns, in particular by Spinellis (2001). We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we state a number of open problems.
Domain-specific language
Domain analysis
Cite
Citations (14)
Domain-Specific Languages (DSLs) are optimized for developing applications in a particular domain. JavaFX is such a DSL for creating rich graphical user interfaces.One method to create a DSL is to implement it in an existing language. This offers the advantage that existing users of the language do not need to learn a new language to work in the DSL. Scala and Groovy are two upcoming Java based languages which boast a feature set that can be used to extend existing languages and facilitate DSL creation. In this project my goal was to evaluate the ability of Scala and Groovy to be DSL hosts. To this end, I implemented my own JavaFX like DSLs in Scala and Groovy and assessed their capability for constructing a DSL.
Scala
Domain-specific language
Cite
Citations (0)
Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the application library stage.Although many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns improve and extend earlier work on DSL design patterns. We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we present a number of open problems.
Domain-specific language
Domain analysis
Cite
Citations (1,679)
This paper describes initial work into the production of Domain-Specific Language (DSL) from Strategy Patterns. The work is exploring how a DSL can be generated from a specification of an Abstract Strategy and of the data-types and operations that the Abstract Strategy may use. The generated DSL is then be able to specify instances of Concrete Strategies, aiding the implementation by providing a language specifically constructed for the implementation of the Strategies. The method for producing these DSL is described and a case study using patience games as a domain is presented.
Domain-specific language
Cite
Citations (1)
Domain-specific languages (DSLs) improve programmer productivity by providing high-level abstractions for the development of applications in a particular domain. However,the smaller distance to the application domain entails more frequent changes to the language. As a result, existing DSL models need to be converted to the new version. Manual conversion is tedious and error prone.This paper presents an approach to support DSL evolution by generation of convertors between DSLs. By analyzing the differences between DSL meta-models, a mapping is reverse engineered which can be used to generate reengineering tools to automatically convert models between different versions of a DSL. The approach has been implemented for the Microsoft DSL Tools infrastructure in two tools called DSLCompare and ConverterGenerator. The approach has been evaluated by means of three case studies taken from the software development practice at the company Avanade.
Domain-specific language
Programmer
Domain analysis
Business process reengineering
Cite
Citations (5)
Domain-specific languages (DSL) have many potential advantages in terms of software engineering ranging from increased productivity to the application of formal methods. Although they have been used in practice for decades, there has been little study of methodology or implementation tools for the DSL approach. In this paper we present our DSL approach and its application to a realistic application: video display device drivers.
The presentation focuses on the validation of our proposed framework for domain-specific languages, which provides automatic generation of efficient implementations of DSL programs. Additionally, we describe an example of a complete DSL for video display adaptors and the benefits of the DSL approach in this application. This demonstrates some of the generally claimed benefits of using DSLs: increased productivity, higher-level abstraction, and easier verification. The DSL has been fully implemented with our approach and is available1.
Domain-specific language
Implementation
Abstraction
Cite
Citations (33)
Preprint of paper published in: WCRE 2008 - 15th Working Conference on Reverse Engineering, 15-18 October 2008; doi:10.1109/WCRE.2008.50 Domain-specific languages (DSLs) improve programmer productivity by providing high-level abstractions for the development of applications in a particular domain. However, the smaller distance to the application domain entails more frequent changes to the language. As a result, existing DSL models need to be converted to the new version. Manual conversion is tedious and error prone. This paper presents an approach to support DSL evolution by generation of convertors between DSLs. By analyzing the differences between DSL meta-models, a mapping is reverse engineered which can be used to generate reengineering tools to automatically convert models between different versions of a DSL. The approach has been implemented for the Microsoft DSL Tools infrastructure in two tools called DSLCompare and ConverterGenerator. The approach has been evaluated by means of three case studies taken from Avanade’s software development practice.
Domain-specific language
Programmer
Cite
Citations (0)
Domain-specific languages (DSL) have many potential advantages in terms of software engineering, ranging from increased productivity to the application of formal methods. Although they have been used in practice for decades, there has been little study of methodology or implementation tools for the DSL approach. We present our DSL approach and its application to a realistic domain: the generation of video display device drivers. The article focuses on the validation of our proposed framework for domain-specific languages, from design to implementation. The framework leads to a flexible design and structure, and provides automatic generation of efficient implementations of DSL programs. Additionally, we describe an example of a complete DSL for video display adaptors and the benefits of the DSL approach for this application. This demonstrates some of the generally claimed benefits of using DSLs: increased productivity, higher-level abstraction, and easier verification. This DSL has been fully implemented with our approach and is available. Compose project URL: http://www.irisa.fr/compose/gal.
Domain-specific language
Implementation
Abstraction
Domain analysis
Cite
Citations (88)
The design and development of graphical tools for new domain-specific languages is still a challenge for designers; the Model-Driven Architecture (MDA) makes a qualitative difference in the creation of Domain Specific Language (DSL). We aim in this paper to analyze and evaluate the performance of some language workbenches that makes the development of domain-specific language simpler and more specialised. To evaluate these tools, a formal specification of a Petri net called Agent Petri Net is selected. We analyze criteria related to abstraction level, facilities to tailor DSL to specific domains, simplicity of development and the productivity guarantee with these tools. Practical experience highlights the real capabilities of each tool and considers as an evaluation support to select the adequate solution to design DSL that responds to user requirements.
Domain-specific language
Abstraction
Domain analysis
Visual programming language
Cite
Citations (0)