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.

Engineering Graphical Domain Specific Languages to<br />

Develop Embedded Robot Applications<br />

Daniel B. F. Conrado and Valter V. de Camargo<br />

Computing Department – Federal University of São Carlos (UFSCar)<br />

São Carlos, Brazil<br />

{daniel_conrado,valter}@dc.ufscar.br<br />

Abstract—Over the last years, little attention has been paid in<br />

software engineering techniques for improving the productivity<br />

of embedded robot application development. The complexity of<br />

these applications has been continuously growing and they are<br />

presenting challenges that are uncommon to information systems'<br />

development. Therefore, any technique that can support their<br />

development is a great contribution. Domain specific languages<br />

(DSLs) are one technique that aims at improving productivity by<br />

reusing concepts and abstractions from a specific domain. In this<br />

paper we present a DSL engineering process for embedded robot<br />

applications. The aim is to make the activity of creating DSLs to<br />

this domain more systematic and controlled. As a result, one can<br />

build embedded robot applications in a more productive way. An<br />

important characteristic of our process is that it asks for just one<br />

application to reach a first version of a running DSL. We also<br />

present a generic language model that may serve as a foundation<br />

for future DSLs. In order to validate our process, we have<br />

applied it to the development of a DSL from an aisle monitoring<br />

robot application.<br />

Keywords-component; Domain-Specific Languages; Mobile<br />

Robots; DSL Engineering<br />

I. INTRODUCTION<br />

Domain-specific languages (DSLs) are small programming<br />

languages which targets a specific domain. This domain may<br />

be vertical, i.e. application domains like healthcare,<br />

engineering, home security, etc. or horizontal, that is, technical<br />

domains that provide structures to build applications, like<br />

persistence, signal processing, security, among others [1].<br />

One of the main advantages of DSLs is the possibility of<br />

writing applications using domain expressions instead of<br />

programming languages’ constructs. It raises the abstraction<br />

level and also improves code reuse. DSLs can be differentiated<br />

by their appearance (textual or graphical) and their origin<br />

(internal or external). The difference between external and<br />

internal DSLs is that the latter are embedded into another<br />

general purpose language (GPL) called the host language, and<br />

that’s why such DSLs are often called embedded languages.<br />

In general, DSLs increases expressiveness significantly<br />

when compared to a GPL [3]. It allows the developers to write<br />

applications with fewer instructions that are easier to<br />

comprehend. DSLs are also used in the context of Model-<br />

Driven Development (MDD) by specifying high-level models<br />

that are transformed into source code artifacts (Model-to-Code<br />

transformation) or detailed models (Model-to-Model<br />

transformation) [1,4].<br />

Robots are electromechanical machines that perform<br />

repetitive and/or dangerous tasks in an environment. They<br />

extract environment’s information using sensors; calculate<br />

actions based on that information by means of processing units<br />

and perform those actions with end effectors (devices like<br />

gripper and arm). In short, robots are composed by sensors,<br />

actuators and processing units. The latter generally are a<br />

platform-specific software embedded into one or more<br />

microcontrollers [6,7,8].<br />

In this context, one may note that the way the robot wheels<br />

are configured, its sensors, microcontrollers, physical structure<br />

and even its environment influences its programming.<br />

Furthermore, there are a lot of non-functional properties that<br />

must be considered such as power consumption, response time,<br />

safety, among others. As we said, most of these issues are<br />

uncommon to or quite different from information systems.<br />

Although there are some processes to build DSLs<br />

[3,9,10,11], we didn’t find one that takes into consideration<br />

specific characteristics of mobile robots. With this lack, these<br />

processes may yield poorly designed DSLs which compromises<br />

the quality of generated applications. Using DSLs in the<br />

context of robot applications may enhance their overall<br />

development, since robotics is a complex domain and highlevel<br />

representations combined with model/code generation<br />

would contribute for better understanding and code reuse.<br />

In this paper we present a process for building DSLs which<br />

target to the r obot application domain. Moreover, although<br />

domain engineering is generally performed by analyzing at<br />

least three applications of a certain domain, there may be<br />

situations where there is an interest in building DSLs even<br />

though such applications don’t exist yet. In this context, our<br />

aim is to c ontribute to robotic software development with an<br />

alternative process that provides guidelines for building initial<br />

DSLs based on a single application. The main idea is that such<br />

initial DSLs may eventually be evolved to the extent that new<br />

applications are developed and new abstractions are identified.<br />

As a proof of concept, we developed a DSL based on security<br />

applications implemented with a LEGO Mindstorms kit and the<br />

LeJOS API [5].<br />

This paper is organized as follows: section II presents our<br />

process; section III presents our proof of concept; section IV<br />

presents related works, and section V concludes the paper.<br />

495

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

Saved successfully!

Ooh no, something went wrong!