Anda di halaman 1dari 24

W

IE

EV

PR

UMI Number: 

INFORMATION TO USERS

The quality of this reproduction is dependent upon the quality of the copy

submitted. Broken or indistinct print, colored or poor quality illustrations and


photographs, print bleed-through, substandard margins, and improper

IE

alignment can adversely affect reproduction.

In the unlikely event that the author did not send a complete manuscript
and there are missing pages, these will be noted. Also, if unauthorized

PR
EV

copyright material had to be removed, a note will indicate the deletion.

______________________________________________________________
UMI Microform 
Copyright 2009 by ProQuest LLC
All rights reserved. This microform edition is protected against
unauthorized copying under Title 17, United States Code.

_______________________________________________________________
ProQuest LLC
789 East Eisenhower Parkway
P.O. Box 1346
Ann Arbor, MI 48106-1346

UN

E NFOQUE

PR

EV

IE

D ESARROLLO DE S OFTWARE PARA R OBOTS DE S ERVICIO :


D IRIGIDO POR M ODELOS Y O RIENTADO A C OMPONENTES

Esta memoria se presenta en cumplimiento de los requisitos exigidos para la obtencin del
grado de Doctor y la acreditacin de Doctorado Europeo, en el Departamento de Tecnologas
de la Informacin y las Comunicaciones de la Universidad Politcnica de Cartagena. El trabajo
que aqu se recoge se ha desarrollado durante el periodo comprendido entre marzo de 2.003
y octubre de 2.007 bajo la supervisin de los Doctores Da. Brbara lvarez Torres y D. Juan
ngel Pastor Franco.

IE

PR
EV
W

Agradecimientos
Siempre es difcil recordar a todas las personas que, en un momento u otro, se han cruzado en el largo
camino que hay que recorrer para realizar una Tesis Doctoral. En primer lugar, quiero agradecer a
mis directores de Tesis, los doctores Da. Brbara lvarez Torres y D. Juan ngel Pastor Franco
por su apoyo, supervisin y gua durante estos aos. Sin su ayuda no hubiera sido capaz de llevar a

cabo esta Tesis Doctoral. Tambin quiero agradecer al Dr. D. Andrs Iborra Garca el haberme dado la
oportunidad de integrarme y trabajar en el grupo de investigacin Divisin de Sistemas e Ingeniera
Electrnica (DSIE) y a todos mis compaeros del rea de Lenguajes y Sistemas, especialmente a los

IE

doctores D. Pedro Snchez Palma, D. Pedro Alcover Garau, D. Carlos Fernndez Andrs y D. Juan
Suardaz Muro, por la orientacin, ayuda, compaa y amistad a lo largo de estos aos, as como a

EV

D. Pedro Navarro Lorente.

Quiero dar especialmente las gracias a dos personas con las que he colaborado estrechamente para
desarrollar esta Tesis Doctoral. La primera de ellas es el Dr. D. Francisco Ortiz Zaragoza, cuya Tesis
sobre la arquitectura de referencia ACRoSeT ha servido de base al trabajo que se presenta. Con l y
con mis directores de Tesis he compartido largas horas discutiendo sobre robtica y puliendo varios

PR

aspectos de ACRoSeT y su traduccin. Y por otro lado, a la Dra. Da Cristina Vicente Chicote, con
la que comenc a recorrer, con paso lento pero seguro, los caminos del meta-mundo, y con la que
he discutido largas horas sobre V3 Studio. A todos ellos les doy las gracias por su amistad, gua y
paciencia.

Por otro lado, tambin quiero darle las gracias al doctor D. Jean-Marc Jzquel, director del
grupo de investigacin Triskell en el Institut de Recherche en Informatique et Systmes Alatoires en
Rennes (Francia), y a todo su grupo, especialmente al Dr. D. Nol Plouzeau, Dr. D. Olivier Barais,
Dr. D. Benoit Baudry, D. Didier Vojtisek, D. Franck Chauvel y D. Sbastien Saudrais, por haberme
acogido cordialmente en Triskell durante el verano de 2.006, en el que tanto avanc en el desarrollo de
esta Tesis Doctoral.
Por ltimo, y ya fuera del mbito acadmico, quiero agradecer a mi familia y mis amigos el apoyo,
comprensin y cario demostrados durante estos aos. Sin su apoyo y aliento no hubiera sido capaz
de acabar esta empresa. Y a Dios, porque con l todo es posible y sin l nada lo es.

iii

IE

EV

PR

W
IE
EV
PR

A mis padres, por su apoyo e inspiracin.

IE

EV

PR

Resumen

PR

EV

IE

Esta Tesis Doctoral contina la lnea de investigacin en el desarrollo de


sistemas robticos teleoperados iniciada por el grupo de investigacin DSIE de
la Universidad Politcnica de Cartagena hace diez aos, y parte de los resultados
de otra Tesis anterior, en la que se desarroll una arquitectura de referencia para
el control de robots de servicio teleoperados denominada ACRoSeT. ACRoSeT
propone una serie de componentes independientes de la plataforma de ejecucin
para disear la aplicacin de control de un robot. Esta independencia permite
reutilizar componentes en distintas aplicaciones y traducir un mismo diseo a
distintos lenguajes de programacin o utilizar diferentes frameworks robticos.
ACRoSeT, sin embargo, no proporciona ninguna gua para realizar la traduccin de
los componentes abstractos que forman la aplicacin de control a cdigo ejecutable.
Esta Tesis Doctoral completa el enfoque propuesto por ACRoSeT utilizando el
novedoso desarrollo dirigido por modelos (Model-Driven Engineering, MDE) para
(1) proponer una solucin a la ambigedad semntica y de implementacin de
algunos de los conceptos propuestos por ACRoSeT; (2) proporcionar una serie de
herramientas para aumentar el nivel de abstraccin del desarrollador; (3) cambiar
el proceso de traduccin manual de los componentes abstractos a cdigo ejecutable
por un proceso (semi-) automtico que elimine errores en la implementacin final y
(4) permitir que el proceso de traduccin pueda ser extendido a diversos lenguajes
de programacin e incluso frameworks robticos.
Para lograr estos objetivos se ha desarrollado (1) un meta-modelo de componentes, denominado V3 Studio, que contiene los conceptos del dominio de la robtica
definidos por ACRoSeT; (2) una transformacin entre V3 Studio y UML que permite
reducir la distancia semntica entre el diseo realizado y la implementacin final,
facilitando de este modo el desarrollo posterior de distintas implementaciones en
otros lenguajes de programacin y (3) una traduccin entre el modelo UML y
cdigo, en este caso, Ada 2005. Como demostracin de la viabilidad del enfoque,
esta Tesis Doctoral incluye el desarrollo del sistema de control de una mesa
cartesiana, realizado en el proyecto del VI Programa Marco Europeo EFTCoR.
vii

IE

EV

PR

Abstract

PR

EV

IE

This Thesis continues the research line in the development of teleoperated robotic
systems initiated by the DSIE research group of the Technical University of
Cartagena ten years ago and starts from the results of a previous Thesis, in
which a reference architecture for teleoperated robotic systems, called ACRoSeT,
was designed. ACRoSeT proposes a series of platform independent components
for designing the software control architecture of a robot. This independence
allows not only the reuse of these components among different applications but
also the translation to different programming languages or using different robotic
frameworks. But ACRoSeT does not offer any guide regarding the software
implementation of the concepts it defines.
The present Thesis completes the design of ACRoSeT using the newly ModelDriven Engineering (MDE) paradigm to (1) propose a solution to the semantic and
implementation ambiguity of some of the concepts defined by ACRoSeT; (2) raise
the level of abstraction used by the developer to design the software architecture
of a robot using the concepts defined by ACRoSeT; (3) change the error-prone
process of manual translation from the abstract ACRoSeT components to executable
code by a (semi-) automatic process that erases this source of errors from the final
implementation; and (4) allow different implementations in different programming
languages and even robotic frameworks.
To achieve these objectives, this Thesis proposes (1) a component meta-model,
called V3 Studio, that contains all the concepts of the robotics domain defined by
ACRoSeT; (2) a model to model transformation between V3 Studio and UML that
reduces the semantic distance between the component model and the final code
implementation, and that also eases the development of different transformations
to different implementation languages; and (3) a model to text transformation to
translate the UML model to the Ada 2005 programming language. To demonstrate
the viability of the proposed approach, this Thesis includes the development of the
control system of a XYZ cartesian robot, designed in the context of the VI European
Growth Programm EFTCoR.
ix

IE

EV

PR

NDICE GENERAL

xvii

ndice de cuadros

xxi

Planteamiento y objetivos
1.1 Introduccin . . . . . . . . . . . . . . . . . . . . .
1.2 Motivacin y Justificacin . . . . . . . . . . . . .
1.2.1 Sistemas robticos en el DSIE . . . . . . .
1.2.2 Marco de desarrollo de la Tesis Doctoral .
1.3 Objetivos de la Tesis . . . . . . . . . . . . . . . .
1.4 Estructura del Documento . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

Desarrollo basado en componentes


2.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Definicin de Componente Software . . . . . . . . . . .
2.3 Fases de Desarrollo Software en CBD . . . . . . . . . . .
2.3.1 Seleccin y evaluacin de componentes . . . . .
2.3.2 Adaptacin de componentes . . . . . . . . . . .
2.3.3 Ensamblaje o integracin de componentes . . .
2.3.4 Evolucin del sistema . . . . . . . . . . . . . . .
2.4 Modelos de Componentes . . . . . . . . . . . . . . . . .
2.4.1 Caractersticas de un modelo de componentes .
2.4.2 Modelos de componentes de propsito general .
2.4.3 Otros modelos de componentes . . . . . . . . . .
2.5 Componentes de Terceros: COTS . . . . . . . . . . . . .
2.6 Conclusiones y Aportaciones a la Tesis . . . . . . . . . .

PR

EV

IE

ndice de figuras

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.

1
1
4
9
14
14
16

.
.
.
.
.
.
.
.
.
.
.
.
.

21
22
24
27
28
30
30
31
31
32
34
37
39
42

Arquitectura software
45
3.1 Introduccin y Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
xi

NDICE GENERAL

3.3
3.4

.
.
.
.
.
.
.
.
.
.
.
.
.
.

Desarrollo basado en modelos


4.1 Introduccin a MDE . . . . . . . . . . . . . . . . . . . . .
4.2 Representacin de la Realidad en MDE . . . . . . . . . .
4.2.1 El concepto modelo en MDE . . . . . . . . . . .
4.2.2 El concepto meta-modelo en MDE . . . . . . .
4.2.3 Limitaciones del enfoque MDE: visin ontolgica
4.3 Transformaciones de Modelos . . . . . . . . . . . . . . . .
4.4 Arquitectura Guiada por Modelos (MDA) . . . . . . . . .
4.5 Otras Herramientas Relacionadas . . . . . . . . . . . . . .
4.5.1 Lenguajes especficos de dominio . . . . . . . . .
4.5.2 Factoras software . . . . . . . . . . . . . . . . . .
4.6 Conclusiones y Aportaciones a la Tesis . . . . . . . . . . .

PR

EV

.
.
.
.
.
.
.
.
.
.
.
.
.
.

IE

3.5

3.2

3.1.1 Definicin de arquitectura software . . . . . .


3.1.2 Alcance y atributos de calidad . . . . . . . . .
Diseo Arquitectnico del Software . . . . . . . . . .
3.2.1 Comunicacin entre componentes: conectores
3.2.2 Patrones arquitectnicos . . . . . . . . . . . . .
3.2.3 Vistas de una arquitectura . . . . . . . . . . . .
3.2.4 Lenguajes de descripcin de arquitectura . . .
3.2.5 Lenguajes orientados a componentes . . . .
3.2.6 Otras herramientas para disear arquitecturas
Evaluacin y Evolucin Arquitectnica . . . . . . . .
Frameworks Arquitectnicos . . . . . . . . . . . . . .
3.4.1 Frameworks de objetos . . . . . . . . . . . . .
3.4.2 Frameworks de componentes . . . . . . . . . .
Conclusiones y Aportaciones a la Tesis . . . . . . . . .

Arquitecturas y frameworks de control de robots


5.1 Breve Historia de la Robtica . . . . . . . . .
5.2 Arquitecturas de Control de Robots . . . . .
5.2.1 Arquitectura deliberativa o jerrquica
5.2.2 Arquitectura reactiva . . . . . . . . . .
5.2.3 Arquitectura hbrida . . . . . . . . . .
5.3 ltimas Tendencias . . . . . . . . . . . . . . .
5.4 Breve Descripcin de ACRoSeT . . . . . . . .
5.5 Conclusiones y Aportaciones a la Tesis . . . .
xii

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

47
49
50
51
56
58
59
63
64
65
66
67
70
71

.
.
.
.
.
.
.
.
.
.
.

73
74
76
77
79
80
82
85
88
89
90
92

.
.
.
.
.
.
.
.

93
94
96
96
98
100
103
107
112

NDICE GENERAL

Diseo de V3 Studio
6.1 El Entorno de Desarrollo de V3 Studio . . . . . . . . .
6.2 El Modelo de Componentes V3 Studio . . . . . . . . .
6.2.1 Justificacin del enfoque . . . . . . . . . . . . .
6.2.2 Descripcin general de V3 Studio . . . . . . . .
6.3 Visin General del Uso de V3 Studio . . . . . . . . . .
6.4 Vista Arquitectnica . . . . . . . . . . . . . . . . . . .
6.4.1 Caractersticas de la EClass Component . . . .
6.4.2 Tipos de definicin de componente . . . . . . .
6.4.3 Puertos e interfaces en V3 Studio . . . . . . . .
6.4.4 Comunicacin entre componentes . . . . . . .
6.5 Vista de Comportamiento . . . . . . . . . . . . . . . .
6.5.1 Parametrizacin de la mquina de estados . .
6.5.2 Modelado del comportamiento . . . . . . . . .
6.5.3 Descripcin de los pseudo-estados modelados
6.5.4 Macro-estados y regiones ortogonales . . . . .
6.6 Vista Algortmica . . . . . . . . . . . . . . . . . . . . .
6.6.1 Descripcin general de la EClass Activity .
6.6.2 Actividades atmicas o simples . . . . . . . . .
6.6.3 Actividades complejas. Flujo de control . . . .
6.6.4 Descripcin de los tipos de pseudo-actividad .
6.6.5 Variabilidad en la implementacin . . . . . . .
6.7 Otras Herramientas Alternativas . . . . . . . . . . . .

PR

EV

IE

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Transformacin V3 Studio a UML: de componentes a objetos


7.1 Introduccin y Justificacin . . . . . . . . . . . . . . . . . . . .
7.1.1 Ejemplo de aplicacin de la transformacin . . . . . . .
7.2 Visin General de la Transformacin . . . . . . . . . . . . . . .
7.2.1 De componentes a objetos: el patrn Active Object . . .
7.2.2 Diagramas UML usados en la transformacin . . . . .
7.2.3 Justificacin del uso del diagrama de actividad . . . . .
7.2.4 V3 Studio UML: estructura de la transformacin . . .
7.3 V3 Studio UML: Vista Arquitectnica . . . . . . . . . . . . .
7.3.1 Descripcin de las clases base del framework . . . . . .
7.3.2 Transformacin de los componentes V3 Studio . . . . .
7.3.2.1 Transformacin de un componente complejo
7.3.2.2 Otras transformaciones alternativas . . . . . .
7.3.3 Transformacin de los puertos V3 Studio . . . . . . . . .
xiii

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

117
. 118
. 121
. 121
. 124
. 127
. 130
. 132
. 133
. 135
. 137
. 139
. 142
. 144
. 146
. 147
. 151
. 153
. 154
. 156
. 158
. 159
. 160

.
.
.
.
.
.
.
.
.
.
.
.
.

163
. 164
. 166
. 167
. 168
. 172
. 175
. 177
. 179
. 181
. 181
. 183
. 185
. 186

NDICE GENERAL

7.3.3.2

Puertos en un ComplexComponentDefinition . . 189

7.3.3.3

Catlogo de puertos . . . . . . . . . . . . . . . . . . . . 190

7.3.3.4

Exposicin de algunos diseos alternativos . . . . . . 190

Constructores de componentes y puertos . . . . . . . . . . . . . 193

7.3.5

Operaciones de conexin de los puertos V3 Studio . . . . . . . . 197


7.3.5.1

Operacin getPort . . . . . . . . . . . . . . . . . . . . 197

7.3.5.2

Operacin connect y setDelegationPort . . . . . 199

7.3.5.3

Operacin disconnect . . . . . . . . . . . . . . . . . 201

7.3.5.4

Operacin portLink . . . . . . . . . . . . . . . . . . . 201

Operaciones de comunicacin entre componentes . . . . . . . . 204

V Studio UML: Vista Comportamiento . . . . . . . . . . . . . . . . . 205

7.5

V3 Studio UML: Vista Algortmica . . . . . . . . . . . . . . . . . . . . 210

7.4

7.5.1

Transformacin de las actividades simples . . . . . . . . . . . . 211

7.5.2

Transformacin de las actividades complejas . . . . . . . . . . . 213

IE

7.6

Resumen de la Transformacin . . . . . . . . . . . . . . . . . . . . . . . 214

EV

Aplicacin de V3 Studio al control de una mesa XYZ

217

Generacin de la Estructura del Cdigo . . . . . . . . . . . . . . . . . . 218


8.1.1

Generacin de la infraestructura de apoyo . . . . . . . . . . . . 219

8.1.2

Transformacin de las seales y eventos UML . . . . . . . . . . 220

8.1.3

Transformacin de componentes y puertos . . . . . . . . . . . . 222

PR

8.1

8.2

Generacin de las Mquinas de Estados . . . . . . . . . . . . . . . . . . 224

8.3

Aplicacin al Control de una Mesa XYZ . . . . . . . . . . . . . . . . . . 226


8.3.1
8.3.2

Puertos en un SimpleComponentDefinition . . . 187

7.3.4

7.3.6

7.3.3.1

El proyecto EFTCoR. Descripcin de la mesa XYZ . . . . . . . . 226


Implementacin en V3 Studio . . . . . . . . . . . . . . . . . . . . 229

Conclusiones y trabajos futuros

233

9.1

Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

9.2

Aportaciones de esta Tesis Doctoral . . . . . . . . . . . . . . . . . . . . . 236

9.3

Divulgacin de Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 237

9.4

Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

A Restricciones OCL adicionales

243

A.1 Vista Arquitectnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244


A.2 Vista de Comportamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 249
A.3 Vista Algortmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
xiv

NDICE GENERAL

B Una visin detallada de los diagramas de actividad


B.1 Actividades y Acciones en UML . . . . . . . .
B.2 Descripcin de las Clases Utilizadas . . . . . .
B.2.1 Clases del Paquete Actividades . . . . .
B.2.2 Clases del Paquete Acciones . . . . . . .
B.3 ForkNode contra ActionInputPin . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

261
. 262
. 263
. 263
. 265
. 267
271

Bibliografa

277

PR

EV

IE

Glosario de Acrnimos

xv

IE

EV

PR

NDICE DE FIGURAS

Estadsticas de la poblacin de robots en el mundo (World Robotics 2.006)


Distribucin de grupos de investigacin en Robtica en Europa . . . .
Robot ROSA para el mantenimiento de generadores de vapor . . . . .
Robots de recogida de objetos en una central nuclear . . . . . . . . . .
Maqueta del robot TRON . . . . . . . . . . . . . . . . . . . . . . . . . .
Prototipo de robot de limpieza para superficies de barco GOYA . . . .
EFTCoR: robots de limpieza trepadores para spotting . . . . . . . . . .
EFCToR: robot de limpieza full blasting . . . . . . . . . . . . . . . . . . .

2.1
2.2
2.3

Desarrollo de una aplicacin basada en componentes COTS . . . . . . 28


Proceso de desarrollo de aplicaciones basadas en componentes . . . . . 29
El patrn de diseo por componentes . . . . . . . . . . . . . . . . . . . 33

3.1
3.2
3.3

Evolucin del estudio de la arquitectura software . . . . . . . . . . . . 47


Influencia de entidades implicadas en el diseo de la aplicacin . . . . 49
Las cuatro clases de contratos entre componentes . . . . . . . . . . . . 56

4.1
4.2
4.3
4.4
4.5
4.6
4.7

Megamodelo de MDE . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Relacin entre meta-modelo y modelo . . . . . . . . . . . . . . . . . . .
Distribucin en capas de MDE desde un punto de vista lingstico . .
Distribucin en capas de MDE desde un punto de vista ontolgico . .
Esquema de transformacin de modelos con meta-metamodelo comn
Estructura de MDA en comparacin con MDE . . . . . . . . . . . . . .
Esquema de una factora software . . . . . . . . . . . . . . . . . . . . .

5.1
5.2
5.3
5.4
5.5

Algunos robots que marcaron un hito histrico


Arquitectura de control deliberativa . . . . . .
Arquitectura de control reactiva . . . . . . . . .
Arquitectura de control hbrida . . . . . . . . .
La arquitectura de control CLARAty . . . . . .

5
7
10
11
11
12
13
13

PR

EV

IE

1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8

xvii

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

78
80
81
81
83
87
91
95
97
99
101
104

NDICE DE FIGURAS

5.6
5.7

Diagrama conceptual del marco arquitectnico ACRoSeT . . . . . . . . 109


Diagrama de componentes del marco arquitectnico ACRoSeT . . . . . 109

6.1
6.2
6.3
6.4

. 119
. 125
. 126
. 131
. 138
.
.
.
.

EV
xviii

141
149
150
151

. 152

Diagrama de componentes ejemplo que se va a utilizar para ilustrar


la transformacin V3 Studio UML. . . . . . . . . . . . . . . . . . . . .
7.2 Captura del entorno Eclipse que muestra la estructura de clases
V3 Studio del ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3 Diagrama de clases del patrn Active Object . . . . . . . . . . . . . . . .
7.4 Jerarqua de diagramas de UML . . . . . . . . . . . . . . . . . . . . . .
7.5 Diagrama que muestra la relacin entre las clases que describen la
estructura y el comportamiento en UML . . . . . . . . . . . . . . . . . .
7.6 Diagrama de paquetes generado para el ejemplo de la figura 7.1 . . . .
7.7 Diagrama de clases resultado de la transformacin V3 Studio UML .
7.8 Ejemplos de transformacin de distintos puertos V3 Studio UML
cuando estn contenidos en un componente simple . . . . . . . . . . .
7.9 Ejemplos de transformacin de distintos puertos V3 Studio UML
cuando estn contenidos en un componente complejo. . . . . . . . . . .
7.10 Diagramas de actividades que muestra la implementacin del constructor de la clase fachada de un componente (Component_Def_XXX)
7.11 Captura del entorno Eclipse que muestra la estructura de clases UML
que describe la operacin SC_constructor_Impl. . . . . . . . . . . .
7.12 Diagramas de actividades que muestra la implementacin del
constructor de la clase real de un componente (XXX_Real) . . . . . . .

PR

7.1

IE

Meta-modelo de EMF (Essential MOF) . . . . . . . . . . . . . . . . . .


Esquema del meta-modelo de V3 Studio . . . . . . . . . . . . . . . . .
Esquema de paquetes de V3 Studio . . . . . . . . . . . . . . . . . . . .
Extracto del meta-modelo de V3 Studio que muestra la descripcin
arquitectnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5 Ejemplo de modelado de un conector en V3 Studio para desarrollar un
sistema distribuido . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6 Extracto del meta-modelo de V3 Studio que muestra la descripcin del
comportamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7 Mquina de estados simplificada de una persona . . . . . . . . . . . .
6.8 Ejemplos de utilizacin del forkState . . . . . . . . . . . . . . . . .
6.9 Ejemplos de utilizacin del joinState . . . . . . . . . . . . . . . . .
6.10 Extracto del meta-modelo de V3 Studio que muestra la descripcin
algortmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

166
168
171
173
176
178
184
191
192
195
195
196

NDICE DE FIGURAS

8.2
8.3
8.4
8.5

9.1

Distintas formas del casco de un barco: proa (izquierda), banda


(central) y bajos (derecha) . . . . . . . . . . . . . . . . . . . . . . . . .
Robot cartesiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arquitectura hardware de la mesa XYZ. . . . . . . . . . . . . . . . . .
Arquitectura de control del robot cartesiano. . . . . . . . . . . . . . .
Interfaz grfica de usuario desarrollada en Java para controlar el
robot cartesiano. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PR

8.1

EV

IE

7.13 Diagrama de actividades que muestra la implementacin del constructor de un puerto. . . . . . . . . . . . . . . . . . . . . . . . . . . . .


7.14 Diagramas de actividad tipo que describen la operacin getPort . .
7.15 Captura de pantalla del entorno Eclipse que muestra las clases UML
que implementan el diagrama de actividad de la operacin getPort
7.16 Diagramas de actividad tipo que describen la operacin connect . .
7.17 Diagramas de actividad que describen la operacin disconnect . .
7.18 Diagrama de actividad que describe la operacin portLink . . . . .
7.19 Diagramas de actividad que describen la peticin de un servicio
sncrono entre componentes . . . . . . . . . . . . . . . . . . . . . . . .
7.20 Diagramas de actividad que describen la peticin de un servicio
asncrono entre componentes . . . . . . . . . . . . . . . . . . . . . . .
7.21 Diagrama de actividad que describe la operacin receiveSignal
de un puerto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.22 Diagrama de actividad que describe la operacin sendSignal de un
puerto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.23 Captura del entorno Eclipse que muestra la estructura de clases
V3 Studio de la mquina de estados de ejemplo . . . . . . . . . . . . .
7.24 Mquina de estados del componente SC una vez transformada . . . .
7.25 Transformacin de la actividad simple ServiceCall . . . . . . . . .
7.26 Transformacin de la actividad simple ForwardService . . . . . .

. 196
. 198
.
.
.
.

199
200
202
203

. 206
. 207
. 207
. 207
.
.
.
.

209
210
212
214

.
.
.
.

227
228
228
230

. 231

Esquema de desarrollo del proyecto MEDWSA, en el que puede


observarse el papel central que desempea V3 Studio. . . . . . . . . . . 241

B.1 Meta-modelo simplificado del paquete de actividades de UML . . . . . 264


B.2 Meta-modelo simplificado del paquete de acciones de UML . . . . . . 266
B.3 Ejemplo comparativo entre el uso de ForkNode y ActionInputPin. 269

xix

IE

EV

PR

NDICE DE CUADROS

Prospeccin sobre el futuro de la robtica . . . . . . . . . . . . . . . . .

2.1
2.2
2.3

Comparativa entre distintos modelos de componentes de propsito


general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Clasificacin de componentes COTS . . . . . . . . . . . . . . . . . . . . 41
Componentes de desarrollo propio frente a componentes COTS . . . . 41

3.1
3.2
3.3
3.4
3.5
3.6
3.7

Atributos de calidad del software (I) . . . . . . . . . . . . . . . . .


Atributos de calidad del software (II) . . . . . . . . . . . . . . . . .
Taxonoma de conectores software (I) . . . . . . . . . . . . . . . . .
Taxonoma de conectores software (II) . . . . . . . . . . . . . . . .
Caractersticas de modelado arquitectnico de un ADL . . . . . .
Caractersticas del modelado de componentes de distintos ADLs
Caractersticas del modelado de conectores de distintos ADLs . .

4.1

Ventajas e inconvenientes de desarrollar un DSL . . . . . . . . . . . . . 90

5.1

Breve historia de la robtica . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.1

Descripcin de las interfaces del ejemplo . . . . . . . . . . . . . . . . . 167

PR

EV

IE

1.1

xxi

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

50
51
54
55
60
61
62

IE

EV

PR