
Software Product Line for web-based Geographic Information Systems Autor: Alejandro Cortiñas Álvarez Tesis doctoral UDC / 2017 Directores: Miguel Rodríguez Luaces Óscar Pedreira Fernández Programa Oficial de Doctorado en Computación PhD thesis supervised by Tesis doctoral dirigida por Miguel Rodríguez Luaces Departamento de Computación Facultad de Informática Universidade da Coruña 15071 A Coruña (España) Tel: +34 981 167000 ext. 1254 Fax: +34 981 167160 [email protected] Óscar Pedreira Fernández Departamento de Computación Facultad de Informática Universidade da Coruña 15071 A Coruña (España) Tel: +34 981 167000 ext. 6028 Fax: +34 981 167160 [email protected] Miguel Rodríguez Luaces y Óscar Pedreira Fernández, como directores, acredita- mos que esta tesis cumple los requisitos para optar al título de doctor internacional y autorizamos su depósito y defensa por parte de Alejandro Cortiñas Álvarez cuya firma también se incluye. iii iv A mi familia. v vi Acknowledgements First of all, thanks to Miguel, the person who has introduced me to researching and who has invested more time and effort in helping me for many years. Thanks also to Oscar for his help since I arrived at the laboratory and throughout my thesis. I am also grateful for the support and the welcoming of all my colleagues at the Databases Laboratory of the University of A Coruña, especially to Nieves, who has always advised me and has taken care of me, without her help I would not be where I am. My fellow doctoral students, Fernando, Cristina, Adrián, Tirso and even Daniil deserve a special mention, thanks for making this whole path much more pleasant. I also want to thank my colleagues from Enxenio, in special to Carlos, Santi and Alejandro, for their collaboration throughout this work. And to all of you who gather to have lunch every day, sometimes I feel like working just to chat with you. Besides I would like to thank my friends from Como, Mehdi, Theo, Shruti, Melisa and all the others for having made those three months flown by. Thanks to all those people of CUAC that have been standing me for many years and my colleagues in Spoiler (talking about series. seriously). Thanks to Vanisa for those remote talks that help me to disconnect. Thanks to the hillbillies I have for friends, especially Pata, Seo and Shorkan, who are always there bothering (was it the other way around?). Thanks to Antonio, who finally finished his project. Lastly, I am very grateful to my family, who are not to blame for anything and who have always trusted and supported me. vii viii Agradecimientos Ante todo gracias a Miguel, la persona que me ha introducido en la investigación y que más tiempo y esfuerzo ha depositado en mí desde hace ya muchos años. Gracias también a Óscar por su ayuda desde que llegué al laboratorio y a lo largo de mi tesis. Me gustaría agradecer también el apoyo y acogida de todos mis compañeros y compañeras del LBD, especialmente a Nieves, que siempre me ha aconsejado y ha tirado de mí, sin su ayuda no estaría donde estoy. Mención aparte merecen mis colegas doctorandos, Fernando, Cristina, Adrián, Tirso y hasta Daniil, gracias por hacer todo este camino mucho más agradable. También quiero agradecer a mis compañeros de Enxenio, especialmente a Carlos, Santi y Alejandro, por su colaboración a lo largo de este trabajo. Y a todos los que nos reunimos para comer cada día, que a veces apetece trabajar sólo para charlar con vosotros. Por otro lado me gustaría dar las gracias a mis amigos y amigas de Como, a Mehdi, Theo, Shruti, Melisa y a todos los demás por haber hecho que esos tres meses hayan pasado volando. Gracias a toda esa gente de CUAC que me lleva aguantando ya muchos años y a mis colegas de Spoiler (hablamos de series. en serio). Gracias a Vanisa por esas charlas en remoto que me ayudan a desconectar. Gracias a los garrulos que tengo por amigos, sobre todo a Pata, Seo y a Shorkan, que siempre están ahí dando la tabarra (¿o era al revés?). Gracias a Antonio, que por fin se sacó el proyecto. Por último, muchas gracias a mi familia, que los pobres no tienen culpa de nada y siempre han depositado toda su confianza y su continuo apoyo en mí. ix x Abstract Software Product Line Engineering (SPLE) is a research field that seeks to industrialize software development using techniques such as mass-production and mass-customization or reusing software components. A geographic information system (GIS) is an information system that works, in some way, with geographic information. Although each GIS is used in a particular area, there are many features common to all of them. In addition, strong standardization has been carried out so that most GIS software components are interoperable. Consequently, the application of SPLE in this domain is a feasible and interesting problem. Applying SPLE to a new domain is a complex process and, in order to guarantee the validity of the final design of the SPL and its evolution, it is important to strictly follow a methodology appropriate to the specific domain. Considering that it does not exist a suitable methodology for the context of our work (i.e., web-based GIS applications developed in a software company with several products in the market), we have decided to combine several existing methodologies and extend their scope with additional tasks that will are very useful in our context. After defining our SPL following this methodology, we found that the traditional techniques to implement SPL are not suitable for our domain, due to the peculiarities and requirements in the development of web-based GIS applications. Therefore, we have defined and implemented a new derivation engine for automatic software generation that maintains the formalities behind SPLE but at the same time provides a new degree of flexibility thanks to the use of a well-known industrial technique: scaffolding. xi xii Resumen La ingeniería de líneas de producto software (LPS) es un campo de investigación que pretende industrializar el desarrollo de software usando técnicas como la producción y customización en masa, o la reutilización de componentes software. Un sistema de información geográfica (SIG) es un sistema de información que trabaja, de alguna manera, con información de carácter geográfico. A pesar de que cada SIG se utiliza en un área en particular, hay muchas características comunes a todos ellos. Además, se ha llevado a cabo una fuerte estandarización de forma que la mayor parte de componentes software SIG son interoperables. En consecuencia, la aplicación de la ingenería de LPS en este dominio es un problema factible e interesante. Aplicar ingenería de LPS a un nuevo dominio es un proceso complejo y, para garantizar la validez del diseño final de la LPS y su evolución, es importante seguir de manera estricta una metodología adecuada al dominio concreto. Considerando que no existe una metodología adecuada para el contexto de nuestro trabajo (es decir, aplicaciones SIG basadas en web desarrolladas en una compañía de desarrollo de software con varios productos en el mercado), hemos decidido combinar varias metodologías existentes y extender su alcance con determinadas tareas que servirán para sacar el máximo provecho a nuestro contexto. Tras la definición de nuestra LPS siguiendo esta metodología, hemos encontrado que las técnicas tradicionales para implementar LPS no son adecuadas para nuestro dominio, debido a las particularidades y requerimientos en el desarrollo de aplicaciones GIS basadas en la web. Por lo tanto hemos definido e implementado un nuevo motor de derivación para la generación automática de software que mantiene las formalidades detrás de las LPS pero, al mismo tiempo, proporciona un nuevo grado de flexibilidad gracias al uso de una conocida técnica industrial: scaffolding. xiii xiv Resumo A enxeñería de liñas de produto software (LPS) é un campo de investigación que pretende industrializar o desenvolvemento de software usando técnicas como a producción e customización en masa, ou a reutilización de componentes software. Un sistema de información xeográfica (SIX) é un sistema de información que traballa, de algún modo, con información de carácter xeográfico. Aínda que cada SIX utilízase nun área en particular, existen moitas características comúns a todos eles. Ademáis, levouse a cabo unha forte estandarización de xeito que a maior parte dos componentes software SIX son interoperables. Polo tanto, a aplicación da inxeñería de LPS neste dominio é un problema factible e interesante. Aplicar enxeñería de LPS a un novo dominio é un proceso complexo e, para garantizar a validez do deseño final da LPS e a súa evolución, é importante seguir de maneira estricta unha metodoloxía adecuada ao dominio concreto. Tendo en conta que non existe ningunha metodoloxía adecuada para o contexto do noso traballo (é dicir, aplicacións SIX baseadas na web desenvoltas nunha compañía de desarrollo de software con varios productos no mercado), decidimos combinar varias metodoloxías existentes e extender o seu alcance con determinadas tarefas que servirán para sacar o máximo aproveitamento ao noso contexto. Tras a definición da nosa LPS seguindo esta metodoloxía, encontramos que as técnicas tradicionais para implementar LPS non son axeitadas para o noso dominio, debido ás particularidades e requerimentos no desenvolvemento de aplicacións SIX basadas na web. Polo tanto deseñamos e implementamos un novo motor de derivación para a xeración automática de software que mantén as formalidades das LPS pero, ó mesmo tempo, proporciona un novo grado de flexibilidade grazas ó uso dunha coñecida técnica industrial: scaffolding. xv xvi Contents Contents 1 Introduction 1 1.1 Background and Motivation . 1 1.2 Contributions . 6 1.3 Thesis Outline . 7 I Software Product Line Engineering: methodology 9 2 SPLE: state of the art 11 2.1 Basic Concepts .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages250 Page
-
File Size-