A General Approach for Creating Software Product Lines Supported by DSLs in the Mobile Robots Domain Rafael S. Durelli,Daniel B. F. Conrado,Valter V. de Camargo,Rosˆ angela A. D. Penteado Computing Department Federal University of S˜ ao Carlos ao Carlos, Brasil Email: {rafael durelli,daniel conrado,valter,rosangela}@dc.ufscar.br Abstract—Nowadays, Mobile Robots (MRs) are becoming in- creasingly ubiquitous, which also increases their time-to-market. However, these systems are often developed without systematic software reuse techniques, compromising their reliability and sta- bility. Software Product Line (SPL) development is a promising systematic reuse technique which reduces time-to-market and also improves software quality. Thus, this paper presents an approach for creating software product lines for mobile robots that relies on Model-Driven Development (MDD) concepts to automate the generation of the SPL products. One can create a mobile robot software simply by combining SPL available features. I. I NTRODUCTION Mobile Robots (MRs) have become increasingly ubiquitous in nowadays and despite the fundamental importance of soft- ware systems within this domain, they usually are developed without systematic reuse techniques. Therefore, because of the increased time-to-market pressure, these systems fail in reliability and stability [1], [2]. A possible approach for reducing time-to-market is to use systematic reuse techniques, such as Product Lines. Software Product Lines (SPL) has been a promising methodology to increase the quality and reduce the time-to-market in software development. Thus, this paper presents an approach for the derivation of software product lines based on Model- Driven Development (MDD) in the Mobile Robots Domain. Moreover, Model-To-Model (M2M) and Model-To-Code (M2C) transformations automate the generation of a given MR by means of combination of available features. We aimed at improving the software engineers productivity and also the quality of mobile robots systems. We also describe a case study in which our approach is applied in order to develop a SPL in the mobile robots’ domain. II. APPROACH Our approach for deriving software product lines for mobile robots has two phases: Domain Analysis and Design and Implementation of the Feature Diagram, which are explained in the following two subsections [3]. A. Domain Analysis Consists in identifying common and variable features of the products that will comprise the diagram features. This phase has three activities: “get MRs source-code”, “inspection of the source-code”, and “creation of the feature model”. B. Design and Implementation of the Feature Diagram After developing the feature model, the domain engineer needs to start the activity “creation of the architecture”. We suggest to use the guidelines proposed by [4]. The author suggest how and when features can be modeled using Design Patterns to represent similarities and variability of the SPL. After the development of all variabilities, the domain engineer must start creating a graphical DSL using MDD techniques. The graphical DSL, in order to coincide with the knowledge about the features, must be developed by means of the following steps: (i) for each feature, one must create a metaclass in the metamodel with the same name of the feature; (ii) taking into consideration the relationships of the feature model, one must insert all existing relationships between the elements of the DSL metamodel; (iii) put an “enumeration” in the DSL metamodel which represents the type that one feature can be classified (mandatory, optional and alternative). III. FINAL REMARKS The created DSL automates the code and model generation, so, we hope that our approach improves reuse by combining SPL and MDD techniques in the mobile robots’ domain. REFERENCES [1] J. Fernandes and R. Machado, “Teaching embedded systems engineering in a software-oriented computing degree,” in Frontiers In Education Conference-Global Engineering: Knowledge Without Borders, Opportu- nities Without Passports, 2007. FIE’07. 37th Annual. IEEE, 2007, pp. F3H–5. [2] B. Graaf, M. Lormans, and H. Toetenel, “Embedded software engineering: The state of the practice,” IEEE software, pp. 61–69, 2003. [3] R. Durelli, D. B. F. Conrado, R. A. Ramos, O. L. Pastor, V. V. Camargo, and R. A. D. Penteado, “Identifying features for ground vehicles software product lines by means of annotated models,” in Model Based Architecting and Construction of Embedded Systems, 2010, pp. 119–123. [4] E. Almeida, A. Alvaro, V. Garcia, L. Nascimento, S. Meira, and D. Lucr´ edio, “A Systematic Approach to Design Domain-Specific Soft- ware Architectures,” Journal of Software, vol. 2, no. 2, pp. 38–51, 2007.