27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Figure 4. The abstractions extracted from the applications’ requirements<br />

remaining (middle) activity. The proposed process also<br />

employs a set of predefined heuristics to automatically generate<br />

an incomplete profile from the domain model. This profile is<br />

then optimized using several guidelines defined by the authors.<br />

These guidelines are intended to ensure the correctness of<br />

profiles and to optimize them.<br />

Based on the experience gained from multiple different<br />

DSL development projects and prototyping experiments,<br />

Strembeck and Zdun [11] have proposed a systematic DSL<br />

development process composed by a set of activities and subactivities.<br />

The process has four main ones: Defining the DSL’s<br />

core language model, Defining the behavior of DSL language<br />

elements, Defining the DSL’s concrete syntax(es) and<br />

Integrating DSL artifacts with the platform/infrastructure.<br />

These activities typically outputs the following artifacts,<br />

respectively: the core language model, the behavior definition,<br />

the concrete syntax(es) and the transformation rules. The first<br />

three artifacts compound the DSL while the last one is related<br />

to the development platform. Those activities have subactivities<br />

and they all have (not rigidly) defined control flows.<br />

They also present activities to tailor the process to “fit into the<br />

corresponding organization’s standard development approach”,<br />

relating project type, involved people, budget, among other<br />

factors.<br />

The main differences between our work and those<br />

described above are twofold: our work focuses on graphical<br />

and external DSLs instead, and it is specific to mobile robots<br />

domain. Moreover, the aforementioned processes are too<br />

generic regarding to application domains.<br />

V. FINAL REMARKS<br />

In this paper we present our efforts towards a process for<br />

engineering DSLs in the context of mobile robots. The<br />

resulting DSLs are initial running version since the process<br />

input is just one application. However, such DSLs are powerful<br />

enough to model other different ones. As long as a DSL is in<br />

use, missing abstractions may be identified, and they could be<br />

added to the language model. We also provide a g eneric<br />

language model, where the domain engineer can simply extend<br />

by adding entities representing (possibly domain specific)<br />

behaviors, specialized functions to sensors, among others. As<br />

our generic language model is based on the well-known<br />

Behavior model, the created DSLs may evolve easily.<br />

Figure 5. The Language Model of the DSL for LEGO Mindstorms<br />

Finally, we present a proof of concept where we applied our<br />

process to obtain a DSL for developing robot applications to<br />

the LEGO Mindstorms platform. We believe our DSL is more<br />

expressive than code since the developer does not need to be<br />

aware of implementation details, like libraries, unity<br />

conversion, programming languages issues, etc.; he/she just<br />

manipulates concepts from the target domain.<br />

As a future work, we are aiming to improve the process by<br />

applying it on different applications implemented in different<br />

robotic platforms. The next step will be to implement different<br />

applications into the Pioneer 3-DX mobile robot platform, and<br />

then emerge DSLs with our process. We are aiming to improve<br />

the identification of abstractions to address more mobile robot<br />

concepts. Another future work is to design a consistent process<br />

or adapt the existing one to address the evolution of those<br />

initial DSLs while they are in use and new abstractions arise.<br />

REFERENCES<br />

[1] S. Kelly and J. P. Tolvanen, Domain-specific modeling. IEEE Computer<br />

Society, 2008.<br />

[2] OMG, “SysML: <strong>Systems</strong> Modeling Language”, www.omgsysml.org.<br />

[3] M. Mernik, J. Heering and A. M. Sloane, “When and how to develop<br />

domain-specific languages”, ACM Computing Survey, 2005.<br />

[4] T. Stahl and M. Völter, Model-Driven Software Development. Wiley,<br />

2006.<br />

[5] LeJOS, “LeJOS, Java for Lego Mindstorms”, lejos.sourceforge.net.<br />

[6] R. C. Arkin, Behavior-based robotics. Series: Intelligent robots and<br />

autonomous agents. MIT Press, 1998.<br />

[7] T. Bräunl, Embedded robotics: mobile robot design and applications<br />

with embedded systems. 3 rd ed. Springer, 2006.<br />

[8] R. Siegwart and I . Nourbakhsh, Introduction to autonomous mobile<br />

robots. MIT Press, 2004.<br />

[9] S. Günther, M. Haupt and M. Splieth, “Agile engineering of internal<br />

domain-specific languages”, In: “<strong>Proceedings</strong> of the fifth international<br />

conference on software engineering advances”, 2010.<br />

[10] S. Robert, S. Gérard, F. Terrier and F. Lagarde, “A lightweight approach<br />

for domain-specific modeling languages design”, In: “<strong>Proceedings</strong> of the<br />

35 th Euromicro conference on software engineering and advanced<br />

applications”, 2009.<br />

[11] M. Strembeck and U. Zdun, “An approach for the systematic<br />

development of domain-specific languages”, “Software: Practice and<br />

Experience”, vol. 39, pp.1253-1292, 2009.<br />

498

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!