• No se han encontrado resultados

Especificación de un modelo de interacción aplicable a procesos de desarrollo y operación de sistemas con software

N/A
N/A
Protected

Academic year: 2020

Share "Especificación de un modelo de interacción aplicable a procesos de desarrollo y operación de sistemas con software"

Copied!
333
0
0

Texto completo

(1)

Universidad Politécnica de Madrid

Facultad de Informática

Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del

Software

ESPECIFICACIÓN DE UN MODELO DE

INTERACCIÓN APLICABLE A PROCESOS DE

DESARROLLO Y OPERACIÓN DE SISTEMAS CON

SOFTWARE

TESIS DOCTORAL

Autor:

Pedro Pablo Alarcón Cavero

Ingeniero en Informática

Director:

Juan Garbajosa Sopeña

Doctor en Informática

(2)
(3)
(4)

Tribunal nombrado por el Mgfco. Y Excmo. Sr. Rector de la Universidad Politécnica

de Madrid, el día de de 2008.

Presidente D.

Vocal D.

Vocal D.

Vocal D.

Secretario D.

Realizado el acto de defensa y lectura de la Tesis el día de de 2008.

En Madrid:

Calificación:

EL PRESIDENTE LOS VOCALES

(5)
(6)

A mis padres, inicio de este trabajo hace unos cuantos años, os quiero.

A mis hijos, Jesús, Pedro Pablo y Jorge, las estrellas que me han guiado hasta terminarlo.

A mi mujer, Mari Ángeles,ya sabes...este trabajo es de los dos, las palabras que tú

(7)
(8)

AGRADECIMIENTOS

Gracias a todos los que han participado en mi vida hasta completar mi formación

académica con esta tesis doctoral; a los que me dieron palabras de ánimo, a los que me

regalaron una sonrisa, a los que me regalaron mil, a los que no me regalaron ni una, a los

que me ayudaron, a los que no me ayudaron porque de ello también aprendí, a los que se

alegraron, a los que no se alegraron pero se alegran hoy, a mi familia, a mis amigos del

presente y del pasado, a los que ya no están aquí... todos de una forma u otra han aportado

granitos de arena hasta formar esta montaña.

Agradezco a todos los que se han interesado por la marcha de este trabajo y me han

dado palabras de ánimo durante todo este tiempo: Ángel García, Carlos Cuvillo, Eugenio

Santos, Héctor García, Javier Gil, Jéssica Díaz, Jorge Tejedor, LuisFer, Manuel Bollaín,

Miguel Angel Díaz, Nicos, Octavio, Paco Sanchis, Pepi, Pilar Rodriguez, Santiago Alonso,

y otros muchos que no figuran por no hacer esta lista interminable, y a los que daré las

gracias personalmente.

Y en especial, quiero mostrar mi más sincero agradecimiento a las siguientes personas

que me han prestado su inestimable ayuda durante la realización de esta tesis:

Juan Garbajosa — director de esta tesis, por embarcarme hace unos cuantos años en

esta aventura y brindarme la oportunidad de trabajar juntos realizando este trabajo de

investigación.

Agustín Yagüe — siempre ha estado ahí cuando le he necesitado; más que un

(9)

Jennifer Pérez — por aparecer como el séptimo de caballería cuando más bajo estaba

de ánimo.

Antonio Vallecillo – por la mano amiga que me ha tendido y los ánimos que en todo

(10)

RESUMEN

Los operadores de un sistema han de tener un buen conocimiento del funcionamiento

del sistema para que el rendimiento de éste sea el adecuado. Este conocimiento incluye las

interacciones que puedan darse entre el sistema y el operador, por medio de la aplicación o

aplicaciones externas que posibiliten dicha interacción entre ambos. Esta interacción

con-templa las operaciones admitidas por el sistema, expresadas por el envío de entradas al

sistema y la recepción de las salidas generadas por el sistema. Las operaciones del sistema

por tanto constituyen una parte esencial del conocimiento relacionado con un sistema. Sin

embargo, el desarrollo de sistemas a menudo, no contempla el conocimiento de las

ope-raciones del sistema como un elemento clave en el proceso de desarrollo. Los aspectos

de operaciones del sistema se abordan de manera implícita y lateral junto con el resto de

aspectos que sí reciben atención preferente.

Esta tesis profundiza en un aspecto fundamental en los sistemas intensivos en software,

ideados para ser operados por personas o por otros sistemas, como es el modelado de la

interacción de un sistema con el exterior. El objetivo principal de este trabajo de

inves-tigación es el de especificar un modelo de interacción con el operador del sistema, al que

denominamos “modelo de operaciones de un sistema”, que permita ser utilizado como base

en el desarrollo y operación/monitorización de sistemas intensivos software.

Este trabajo realiza una aportación en el campo del modelado y especificación de

sis-temas complejos, contribuyendo con nuevas definiciones para “sistema operable” y

“mode-lo de operaciones de un sistema”, y proponiendo además, un metamode“mode-lo y un perfil UML

para incorporar el modelado de las operaciones en el modelo de un sistema. En el campo de

(11)

de representación del modelo de operaciones de un sistema, se aporta una aproximación al

modelado del frontend de operaciones de un sistema. Esta aproximación incluye un

meta-modelo, una arquitectura conceptual y un conjunto de operaciones básicas del sistema. Por

último, y en el campo del modelado y gestión de procesos, se analiza la potencialidad del

modelo de operaciones definido en el proceso de desarrollo de sistemas, y se plantea el

enriquecimiento del proceso de desarrollo de sistemas mediante la utilización, en etapas

tempranas del desarrollo, del modelo de operaciones del sistema.

ABSTRACT

A key issue in system engineering is the modelling of the knowledge of the system

interactions. These interactions include system operations such as commands acting on

systems: inputs to the system and different kinds of outputs, which are classified into

re-sponses, notifications and alarms. Therefore, system operations are an essential part of the

knowledge of the system. However, systems engineering does not often take into account

the system operations as a key element. They usually consider system operations in an

implicit and lateral way.

This Thesis is focused on the modelling of the interaction between a software-intensive

system -which were devised to be operated by people or other systems- and its

environ-ment. The main objective of this research work is to specify an interaction model between

an operator and the system, which is called “system operations model”, that allows for

be-ing the base of the development and operation/monitoring processes of software-intensive

systems.

(12)

new definitions for “operable system” and “system operations model”. In addition, a

meta-model and a profile UML to incorporate the operations meta-modelling in the meta-model of a system

are proposed. Another relevant contribution of this Thesis is the definition of a new

appro-ach to model the system operations front-end that is based on the system operations model.

Specifically, this approach includes an UML metamodel, a conceptual architecture of the

front-end, and a subset of basic operations for a generic system.

Finally, the system operations model can be applied in early development phases of

software-intensive systems. The consequence is that operations issues can effectively be

used as a driver in the complex systems engineering activities such as development and

validation. Thus, the use of the system operations model in early development stages

(13)
(14)

Índice general

PARTE I

DEDICATORIA . . . 

AGRADECIMIENTOS . . . 

RESUMEN . . . 

LISTA DE TABLAS . . . 

LISTA DE FIGURAS . . . .

LISTA DE ACRÓNIMOS Y ABREVIATURAS . . . 

I. INTRODUCCIÓN . . . 1

1.1. Planteamiento de la tesis doctoral . . . 2

1.2. Motivación y objetivos. . . 7

1.3. Metodología de investigación de la tesis . . . 10

1.4. Marco de desarrollo de la tesis . . . 12

1.5. Presentación de la tesis . . . 17

1.6. Resumen del capítulo . . . 18

II. ESTADO DEL ARTE . . . 21

2.1. Introducción . . . 22

2.2. Sistemas desde el punto de vista de interacción . . . 22

2.2.1. Visión filosófica de Bunge . . . 23

2.2.2. Jackson: el mundo y la máquina . . . 24

2.2.3. Sistemas definidos como autómatas . . . 25

2.2.4. Broy: sistemas reactivos e interactivos . . . 27

2.2.4.1. Sistemas reactivos . . . 27

2.2.4.2. Sistemas interactivos . . . 31

2.2.5. Visión de Wang . . . 34

(15)

2.3. Paradigmas en el modelado de la interacción de un sistema . . . 42

2.3.1. Paradigma basado en estados . . . 43

2.3.2. Paradigma basado en escenarios . . . 44

2.3.3. Paradigma basado en contratos . . . 45

2.3.4. Paradigma basado en servicios . . . 47

2.3.5. Paradigma basado en Interacción Hombre-Computador (HCI). . . 48

2.3.6. Paradigma basado en operaciones . . . 49

2.4. Concepto de operación de sistemas en estándares de ingeniería de sis-temas y software . . . 52

2.4.1. Visión de documento de operaciones . . . 53

2.4.2. Lenguajes procedurales de operación y pruebas . . . 57

2.4.2.1. PLUTO como lenguaje de operaciones . . . 57

2.4.2.2. TTCN-3 como lenguaje orientado a pruebas. . . 59

2.5. Desarrollo de sistemas dirigido por modelos . . . 61

2.6. Resumen y conclusiones del capítulo . . . 65

III. CONCEPTUALIZACIÓN DE SISTEMA OPERABLE . . . 75

3.1. Introducción . . . 76

3.2. Los sistemas con componentes inter-relacionados . . . 76

3.2.1. Sistema como autómata . . . 76

3.2.2. Relación entre sistema y entorno . . . 79

3.2.3. Punto de vista de las operaciones . . . 85

3.2.3.1. Operador . . . 86

3.2.3.2. Interfaz de operación . . . 88

3.2.4. Estructura de un sistema . . . 88

3.2.4.1. Visión estructural intra-elementos . . . 89

3.2.4.2. Visión estructural inter-elementos . . . 94

3.3. Los Sistemas con componentes inter-relacionados como sistemas de in-teracción . . . 99

(16)

3.3.2. Concepto de frontend de operaciones de un sistema . . . 101

3.3.3. Interacciones de un sistema desde el punto de vista de operaciones 104 3.3.3.1. Interacción Sistema-Entorno . . . 106

3.3.3.2. Interacción Operador-Frontend de operaciones . . . 106

3.3.3.3. Interacción Sistema-Frontend de Operaciones del Sistema106 3.4. Resumen y conclusiones del capítulo . . . 109

IV. MODELO DE OPERACIONES DE UN SISTEMA . . . 111

4.1. Introducción . . . 112

4.2. Definición de modelo de operaciones de un sistema . . . 113

4.3. Ámbito de aplicación del modelo de operaciones de un sistema . . . 118

4.4. Modelo de operaciones y requisitos de un sistema . . . 121

4.4.1. Estándar ECSS-E10Part6A . . . 121

4.4.2. Estándar IEEE Std 830 . . . 123

4.5. Subconjunto de requisitos del sistema relacionados con el MOS . . . 124

4.5.1. Requisitos funcionales . . . 127

4.5.2. Requisitos de operación . . . 129

4.6. Recomendaciones para especificar el modelo de operaciones de un sistema 131 4.7. Resumen y conclusiones del capítulo . . . 134

V. PROPUESTA DE REPRESENTACIÓN DEL MODELO DE OPERACIONES DE UN SISTEMA . . . 137

5.1. Planteamiento inicial . . . 138

5.2. Metamodelo de operaciones de un sistema . . . 141

5.2.1. Vista del sistema . . . 144

5.2.1.1. Clase SystemElement . . . 145

5.2.1.2. Clase SeProperty . . . 146

5.2.1.3. Tipo de datos AccessPort . . . 148

5.2.1.4. Enumeración ElementStatus . . . 148

5.2.1.5. Enumeración PropertyType . . . 148

(17)

5.2.2. Vista de interacción . . . 149

5.2.2.1. Clase InputInterface . . . 150

5.2.2.2. Clase InputOperation. . . 150

5.2.2.3. Clase InputCmd . . . 151

5.2.2.4. Clase OutputInterface . . . 151

5.2.2.5. Clase OutputOperation . . . 152

5.2.2.6. Clase Response . . . 153

5.2.2.7. Clase Notification . . . 153

5.2.2.8. Clase Alarm . . . 154

5.2.2.9. Tipo de datos PriorityType . . . 154

5.3. Definición de un perfil UML 2 de operaciones (U2OP). . . 155

5.3.1. Descripción . . . 155

5.3.2. Prerrequisitos . . . 157

5.3.3. Nuevos tipos de datos . . . 157

5.3.3.1. EnumeraciónElementStatus . . . 159

5.3.3.2. Tipo de datosAccessPort . . . 159

5.3.3.3. Tipo de datosPriorityType . . . 159

5.3.4. Estereotipos . . . 159

5.3.4.1. EstereotipoU2OP_S ystemElement . . . 160

5.3.4.2. EstereotipoU2OP_VisibleRelation . . . 161

5.3.4.3. EstereotipoU2OP_Monitored . . . 162

5.3.4.4. EstereotipoU2OP_Controlled . . . 162

5.3.4.5. EstereotipoU2OP_MonitoredAndControlled . . 163

5.3.4.6. EstereotipoU2OP_Input . . . 164

5.3.4.7. EstereotipoU2OP_Output . . . 164

5.3.4.8. EstereotipoU2OP_InputCmd . . . 165

5.3.4.9. EstereotipoU2OP_Response . . . 165

5.3.4.10. EstereotipoU2OP_Noti f ication . . . 166

(18)

5.4. Resumen y conclusiones del capítulo . . . 167

VI. APLICACIÓN DEL MODELO DE OPERACIONES DEL SISTEMA CO-MO SOPORTE PARA EL CO-MODELADO DEL FRONTEND DE OPERA-CIONES . . . 169

6.1. Introducción . . . 170

6.2. Metamodelo de frontend de operaciones del sistema . . . 170

6.2.1. Frontend de operaciones . . . 174

6.2.1.1. Clase SOF . . . 174

6.2.1.2. Clase Operator . . . 177

6.2.1.3. Clase SystemView . . . 178

6.2.1.4. Clase OperationsProcedure . . . 179

6.2.1.5. Clase ProcedureExecution . . . 180

6.2.1.6. Clase CommandExecution . . . 181

6.2.2. Sistema bajo operación . . . 182

6.2.2.1. Clase SystemElement . . . 183

6.2.3. Operaciones sobre el sistema . . . 184

6.2.3.1. Interfaz InputInterface . . . 184

6.2.3.2. Interfaz OutputInterface . . . 185

6.2.4. Tipos de Datos . . . 186

6.2.4.1. Tipo de datos Identifier . . . 186

6.2.4.2. Tipo de datos ExecutionResult . . . 186

6.3. Arquitectura conceptual de un frontend de operaciones del sistema . . . . 186

6.3.1. Nivel 1: Interacción operador-sistema . . . 187

6.3.2. Nivel 2: Interacción SOF-Sistema . . . 188

6.3.3. Nivel 3: Comunicación SOF-Sistema . . . 189

6.3.4. Nivel 4: GUI orientado al operador del sistema . . . 190

6.3.5. Nivel 5: Componentes del SOF . . . 191

6.3.6. Esquema de funcionamiento del SOF . . . 193

(19)

6.4.1. Sintaxis general . . . 195

6.4.2. Clasificación de comandos básicos de operación . . . 197

6.4.3. Operaciones de administración o configuración . . . 198

6.4.3.1. CreateSE . . . 199

6.4.3.2. DeleteSE . . . 200

6.4.4. Operaciones de Interacción . . . 200

6.4.4.1. Set . . . 201

6.4.4.2. Get . . . 202

6.4.4.3. Start. . . 202

6.4.4.4. Finish . . . 203

6.4.5. Operaciones de procedimiento . . . 203

6.4.5.1. For . . . 204

6.4.5.2. Repeat . . . 204

6.4.5.3. Wait. . . 205

6.4.5.4. Timer . . . 206

6.5. Resumen y conclusiones del capítulo . . . 206

VII. APLICACIÓN DEL MODELO DE OPERACIONES A UN CASO PRÁCTI-CO . . . 209

7.1. Introducción . . . 210

7.2. Descripción del caso . . . 211

7.2.1. Concepto de sistema . . . 211

7.2.2. Requisitos para la certificación de máquinas interconectadas . . . 213

7.2.3. Descripción del problema a resolver . . . 216

7.2.4. Descripción de la solución . . . 217

7.3. Requisitos del sistema . . . 218

7.4. Modelo del sistema . . . 220

7.4.1. Diagrama de casos de uso . . . 221

7.4.2. Diagrama de clases . . . 225

(20)

7.4.2.2. Clase Master . . . 225

7.4.2.3. Clase Accumulator . . . 228

7.4.2.4. Clase Game. . . 230

7.4.2.5. Clase Prize . . . 231

7.4.2.6. Clase NormalPrize . . . 231

7.4.2.7. Clase JackpotPrize . . . 232

7.4.2.8. Interfaz MasterBasicFunctionallity . . . 232

7.4.2.9. Interfaz AccumulatorControl. . . 233

7.4.2.10. Interfaz Play . . . 234

7.4.3. Diagrama de actividades . . . 234

7.4.4. Diagrama de secuencia . . . 238

7.4.5. Diagrama de estados . . . 239

7.5. Aplicación del perfil U2OP al modelado del sistema . . . 240

7.5.1. SystemElement . . . 242

7.5.2. VisibleRelation . . . 242

7.5.3. Monitored . . . 244

7.5.4. MonitoredAndControlled . . . 244

7.5.5. Input . . . 245

7.5.6. Output . . . 245

7.5.7. CmdInput . . . 246

7.5.8. Notification . . . 247

7.5.9. Alarm . . . 248

7.6. Resumen y conclusiones del capítulo . . . 249

VIII.APLICACIÓN DEL MODELO DE OPERACIONES EN PROCESOS DE DESARROLLO Y OPERACIÓN DE SISTEMAS . . . 251

8.1. Utilización del modelo de operaciones en procesos de desarrollo de sistemas252 8.2. El modelo de operaciones como soporte en la generación de herramientas de validación y operación de sistemas . . . 255

(21)

8.3.1. Desarrollo incremental del sistema . . . 264

8.3.2. Validación del sistema. . . 265

8.4. Resumen y conclusiones del capítulo . . . 266

IX. CONCLUSIONES . . . 267

9.1. Análisis del logro de objetivos. . . 268

9.2. Aportaciones a la investigación . . . 271

9.3. Contraste de resultados . . . 273

9.4. Líneas de investigación futuras . . . 286

9.5. Conclusiones finales . . . 287

(22)

Índice de cuadros

1. Requisitos para definir un MOS . . . 128

2. Perfiles UML definidos por OMG . . . 139

(23)
(24)

Índice de figuras

1. Ciclo de actividades del métodoInvestigación en Acción . . . 11

2. Marco de proyectosInvestigación en Acciónen esta tesis . . . 12

3. Relación entre el sistema y su entorno (adaptada de Broy [24]) . . . 29 4. Caja negra y de cristal (adaptada de Broy [31]) . . . 33 5. Modelo de sistema abierto (Wang [171]) . . . 36 6. Modelo de cuatro variables (adaptada de Heitmeyer [71]) . . . 38 7. Modelo de cuatro variables . . . 40

8. Modelo de sistema (adaptada de Sateesh [146]) . . . 42 9. Relación entre un sistema y su entorno . . . 81

10. Modelo de sistema de cuatro variables (basado en Heitmeyer [72] y Sateesh [146]) . . . 82 11. Primer nivel de interacción . . . 86

12. Segundo nivel de interacción . . . 87

13. Correspondencia entre entradas y propiedades perceptibles . . . 93

14. Correspondencia entre salidas y propiedades perceptibles . . . 94

15. Representación de un sistema. . . 95

16. Modelo de sistema perceptible por un operador . . . 99

17. Sistema operable con un Frontend de Operaciones. . . 102

18. Sistema operable con un panel de control . . . 103

19. Relación entre Sistema y Frontend de Operaciones del Sistema . . . 105

20. Interacción entre Sistema y Frontend de Operaciones . . . 109

21. Modelo de operaciones de un sistema . . . 117

22. Tipos de sistemas ya creados . . . 119

23. Metamodelo de operaciones del sistema (System Operations Metamodel) . 143

24. Perfil de operaciones del sistema (U2OP) . . . 156

25. Perfil de operaciones del sistema (U2OP) con restricciones . . . 158

(25)

27. Nivel 1. Interacción operador-sistema . . . 187

28. Nivel 2. Interacción SOF-sistema . . . 189

29. Nivel 3. Gateway . . . 190

30. Nivel 4. GUI orientado al operador del sistema . . . 191

31. Nivel 5. Componentes del SOF . . . 192

32. Sistema de máquinas de juego de azar interconectadas. . . 213

33. Diagrama de casos de uso de una máquina acumulador . . . 222

34. “Workflow"de una máquina de juego . . . 223

35. Diagrama de clases . . . 226

36. Diagrama de actividades . . . 235

37. Diagrama de secuencia . . . 236

38. Diagrama de estados de una máquina acumulador . . . 239

39. Diagrama de clases decorado con el perfil U2OP . . . 243

40. Frontend de operaciones en procesos de validación y operación . . . 259

(26)

Lista de Acrónimos y Abreviaturas

AF Autómata Finito

AFD Autómata Finito Determinista

AFND Autómata Finito No Determinista

AIAA American Institute of Aeronautics and Astronautics

ANSI American National Standards Institute

API Application Program Interface

CON Variables Controladas

ConOps Concept of Operations

CBD Component-Based Development

DSML Domain-Specific Modelling Language

ECSS European Cooperation for Space Standardization

ESA European Space Agency

ETSI European Telecommunications Standards Institute

FS Functional Specification

FSM Finite State Machine

GUI Graphical User Interface

ICD Interface Control Documentation

(27)

IEEE Institute of Electrical and Electronics Engineers

I/O Input/Output

ITU International Telecommunications Union

LSC Live Sequence Charts

MDA Model Driven Architecture

MDD Model Driven Development

MDE Model Driven Engineering

MOF Meta-Object Facility

MON Variables Monitorizadas

MOS Modelo de Operaciones del Sistema

MSC Message Sequence Charts

NA No Aplicable

NAT Naturaleza

OAR Object-Attribute-Relation

OCL Object Constraint Language

OI Operation Interface

OMG Object Management Group

PIM Platform-Independent Model

PLUTO Procedure Language for Users in Test and Operations

(28)

RUP Rational Unified Process

SDL Specification and Description Language

SE System Element

SOA Service-Oriented Architectures

SOF System Operations Frontend

SUO System Under Operation

SUT System Under Test

SysML System Modelling Language

SYST System and Software Technologies

SW Software

TOPEN Test and Operation Environment

TP Test Procedure

TS Technical Specification

TTCN-3 Testing and Test Control Notation

U2OP UML 2 Operations Profile

U2TP UML 2 Testing Profile

UML Unified Modelling Language

UPM Universidad Politécnica de Madrid

(29)
(30)

Capítulo I

INTRODUCCIÓN

“No dejes apagar el entusiasmo,

virtud tan valiosa como necesaria;

trabaja, aspira, tiende siempre hacia la altura.”

(31)

1.1. Planteamiento de la tesis doctoral

En el contexto de este trabajo, los sistemas se entenderán de manera general, como

sistemas intensivos en software. Este tipo de sistemas representan típicamente sistemas

heterogéneos que incluyen componentes software junto con otro tipo de dispositivos, que

les permiten interaccionar con su entorno [60]. Esta interacción se produce típicamente mediante sensores y actuadores integrados en el sistema o mediante servicios software.

Broy plantea que el desarrollo de sistemas intensivos en software requiere de una amplia

corriente de investigación, soportada por nuevas competencias técnicas, que incluyan una

buena comprensión del modelado de sistemas, el uso efectivo de modelos, y una teoría de

modelado de sistemas de eventos discretos [29].

Un factor clave en el rendimiento efectivo de este tipo de sistemas radica en el grado

de conocimiento que tengan los operadores del funcionamiento del sistema [4]. Este co-nocimiento incluye, al menos, el comportamiento del sistema observable externamente, es

decir, el conocimiento de las interacciones que pueden darse entre el sistema y el

opera-dor, por medio de la aplicación o aplicaciones externas que posibilitan las operaciones del

sistema.

Así pues, la especificación y modelado de requisitos de operación del sistema juega un

papel muy importante dentro del ciclo de vida de los sistemas intensivos en software, ya

que permite conocer al conjunto de los desarrolladores desde un principio las necesidades

y expectativas de los usuarios u operadores que utilizarán el sistema. De ahí que ciertos

estándares incluyan el concepto de operación, y pautas para expresar un documento de

operaciones del sistema que recoja los requisitos de operación del sistema [83] [82] [79] [55] [76] [12] [123].

Las operaciones del sistema por tanto constituyen una parte esencial del

conocimien-to relacionado con cualquier sistema. Sin embargo, el desarrollo de sistemas a menudo,

(32)

proceso de desarrollo. Los aspectos de operaciones del sistema se abordan de manera

im-plícita y lateral junto con el resto de aspectos o puntos de vista del sistema que sí reciben

atención preferente. Así, los aspectos de operaciones del sistema figuran como intereses

cruzados (crosscutting concern) en el conjunto global de los artefactos producidos durante

el desarrollo del sistema. El estándar IEEE 1471 - IEEE Recommended Practice

Archi-tectural Description of Software-Intensive Systems [78], define punto de vista como una especificación de reglas para construir una vista del sistema que comprenda una serie de

aspectos destakeholders1. Sería por tanto interesante enfocar el desarrollo de un sistema

incluyendo el punto de vista de operaciones, al objeto de separar el interés (concern) de

operaciones del sistema de una manera nítida a lo largo del ciclo de vida del sistema.

En sistemas de espacio por ejemplo, las operaciones de carga de pago (payload) se

con-vierten en un aspecto crítico ya que una vez la nave espacial está en el espacio puede ser

muy difícil o imposible determinar un problema. Para sistemas de espacio, es recomendable

e incluso forzoso producir modelos de operación en etapas tempranas del desarrollo. Las

pruebas de carga de pago (payload) son exhaustivas, y para ello Timmermans sostiene que

debe estar disponible un modelo de operaciones [160]. Las pruebas se definen utilizando esta especificación del modelo de operación. Los sistemas de espacio utilizan a menudo

co-mo línea base telemetría y telecomandos. Esto es, el sistema de tierra envía un telecomando

a la nave espacial y ésta responde con una telemetría. Esta aproximación es un esquema

muy simple y eficiente para modelar la interacción del sistema. Como justifican Garbajosa

et al. en [62], este esquema se puede transportar fácilmente, en términos orientados a obje-tos, una operación, el telecomando, y un objeto, la nave espacial, que devuelve un valor, la

telemetría. Obviamente es posible refinar este esquema para una carga de pago (payload)

basada en objetos y operaciones asociadas.

El enfoque de modelo de operación en sistemas de espacio puede utilizarse en otros

tipos de sistemas, aunque pueda necesitarse una metodología propia y una infraestructura

(33)

de herramientas. Este trabajo persigue proporcionar una aproximación en la que los

mo-delos de operaciones del sistema sean una piedra angular para el desarrollo, validación y

operación de sistemas.

Esta tesis doctoral se enmarca dentro de la línea de investigación “Modelado y

especi-ficación de sistemas complejos”. El modelado de sistemas complejos, y de sistemas en

general, constituye un pilar fundamental tanto en el desarrollo como en la evolución de

és-tos. Los modelos aportan conocimiento del sistema al conjunto destakeholdersimplicados

(ya sean pasados, presentes o futuros) facilitando el entendimiento y comprensión global

del mismo.

Habitualmente el modelado de sistemas y software se centra en el comportamiento

interno del sistema, identificando las operaciones e interacciones que tienen lugar entre los

diferentes componentes que integran un sistema. El enfoque de esta tesis, se centra en la

interacción entre sistema y operador, esto es en las operaciones que le llegan al sistema

desde el exterior.

Dado que no se suele tener en cuenta el punto de vista de operaciones, que incluye esta

interacción entre sistema y operador, el modelado de sistemas no refleja de manera explícita

los aspectos de operaciones [4]. Sin embargo, varios estándares y guías de ingeniería de sistemas y software publicados hace ya varios años, sí que resaltan la importancia de tener

en cuenta las operaciones del sistema en el proceso de desarrollo:

“ISO/IEC 15288, Systems engineering - System life cycle processes” [83], que es-tablece un marco común para describir el ciclo de vida de sistemas, incluyendo el

proceso de utilización u operación del sistema.

“ISO/IEC 12207, Standard for Information Technology - Software Lifecycle

Pro-cesses” [82], en línea con el anterior.

(34)

“INCOSE System Engineering Handbook” [79], que propone la definición de un documento de operaciones ConOps como parte de la especificación de requisitos del

sistema.

El “Systems Engineering Guidebook for ITS” [35] publicado por el “California De-partament of Transportation Division of Research and Innovation” incluye la etapa

de definición del concepto de operaciones del sistema previa a la especificación de

requisitos del sistema, dentro del ciclo de vida de un proyecto ITS (Intelligent

Trans-portation Systems).

“ANSI/AIAA G-043-1992 Guide for the Preparation of Operational Concept

Docu-ments” [12], que define una guía para preparar documentos con el concepto opera-cional.

ElitemDI-IPSC-81430 del estándar militar de Estados Unidos “MIL-STD-498

Soft-ware Development and Documentation” [123], en la misma línea que el anterior.

Tanto es así que estos estándares proporcionan guías y plantillas específicas para

con-feccionar documentos que describan los requisitos de operación del sistema. Pero aun así,

nos encontramos que la formalización existente para modelar las operaciones del sistema

es escasa.

Esta tesis doctoral plantea una solución para formalizar la interacción entre sistema y

operador, especificando el modelado de la interacción de un sistema con el exterior. Dicho

modelado comprende el sistema observable externamente, dónde el operador percibe un

sistema como un conjunto de elementos interconectados. Nuestro enfoque se centra en la

parte del sistema perceptible por el operador y en la interacción entre ambos.

El modelado de esta interacción permitirá:

1. Incorporar las operaciones en el modelado de sistemas, dando forma a las

(35)

2. Enriquecer el proceso de desarrollo de un sistema, incorporando el modelado de la

interacción del sistema tempranamente en el desarrollo de un sistema.

3. Facilitar la validación y operación de sistemas, por medio de una aplicación externa

al sistema que facilite la interacción con el sistema.

Por otra parte, la solución propuesta para modelar la interacción entre sistema y

opera-dor podrá aplicarse en:

1. El proceso de desarrollo de sistemas de nueva creación. En este sentido, esta tesis

plantea la conveniencia de realizar el modelado de las operaciones en etapas

tem-pranas del proceso de desarrollo, para que en la medida de lo posible guíe el

desarro-llo del sistema.

2. La validación y operación de sistemas ya existentes. El modelo de operaciones del

sistema puede utilizarse en el desarrollo de herramientas de validación de sistemas y

de operación/monitorización de sistemas.

Por otra parte, respecto al comportamiento de un sistema, nos encontramos que el

fun-cionamiento real de muchos sistemas lleva a situaciones no deterministas porque aun con

sistemas basados en modelos deterministas no es posible modelar el comportamiento para

un número de entradas muy elevado (millones) y en un orden desconocido a priori (se

conoce la historia pero no se puede predecir a priori). En este trabajo se simplificará el

comportamiento de un sistema en función de sus entradas y salidas, por lo que se hará

una abstracción de la problemática asociada al determinismo o no determinismo del

com-portamiento de los sistemas. Así pues, este trabajo no trata de profundizar en el

compor-tamiento interno de un sistema o de elementos individuales de éste, si no en las

interac-ciones posibles entre un sistema y un medio externo de operación del mismo. Se centrará

en determinar cómo interactuar con el sistema, definiendo un modelo de interacción del

(36)

1.2. Motivación y objetivos

Desde hace varios años el grupo de investigación SYST (System and Software

Tech-nologies) de la Universidad Politécnica de Madrid (UPM) viene trabajando en el desarrollo

de herramientas software orientadas a la validación y operación de sistemas. Como

re-sultado de una amplia actividad en proyectos europeos y nacionales se ha desarrollado

TOPEN (Test and Operation Environment), un entorno de validación y operación propio,

en cuya evolución y diseminación de resultados, ha participado en parte el autor de este

trabajo [2] [3] [5] [6] [7] [8] [9] [10] [63].

TOPEN es un entorno de pruebas y operación de sistemas complejos que permite

re-alizar pruebas de aceptación y operaciones en sistemas que dispongan de una interfaz

soft-ware de interacción con el sistema. Una descripción de las funcionalidades de TOPEN se

puede encontrar en [62] [10], y una descripción de la arquitectura que se desarrolló para TOPEN se encuentra en [64]. También se ha llevado a cabo una tesis doctoral [114] que de-fine una arquitectura genérica y una línea de producto para herramientas de validación de

sistemas, planteando una arquitectura lo suficientemente general para soportar diferentes

dominios de aplicación sin cambios esenciales en el producto para realizar la validación.

En el área de validación de sistemas existe un vacío de herramientas software que

per-mitan comprobación y operación de dispositivos y sistemas industriales complejos [114]. Estos sistemas tienen la característica común de poder ser operados a través de una serie

de comandos, descritos como procedimientos en un lenguaje de programación

conven-cional [62]. También estos sistemas responden a estímulos externos y por eso no siempre es posible la automatización completa de la generación de los procedimientos de prueba

[43], siendo indispensable la participación directa del ingeniero de pruebas. De esto últi-mo, deriva la idea de la definición de procedimientos de prueba asistida, proporcionando

soporte al ingeniero de pruebas.

(37)

ejecutar procedimientos de prueba, Test Procedure (TP), sobre el sistema a validar y

alma-cenar la información de los procedimientos de prueba y el resultado de sus ejecuciones. En

TOPEN, la definición de un procedimiento de prueba, TP, se realiza mediante un lenguaje

de alto nivel, cercano al ingeniero de pruebas, descrito con una sintaxis orientada al dominio

de aplicación. Un TP está compuesto de una serie de comandos de operación, que incluye

comandos para especificar los valores de entrada, el procesamiento de la prueba y los

resul-tados esperados. Los comandos de un TP deben seguir la gramática previamente definida

para el dominio de aplicación del sistema a validar. Los datos almacenados relativos a los

resultados de las ejecuciones de los TP permiten obtener el veredicto de las pruebas

rea-lizadas, e incluso validar algunos requisitos que requieren la evaluación del resultado de

varias ejecuciones de un mismo TP, o del resultado de un conjunto de procedimientos.

El entorno TOPEN comenzó a desarrollarse dentro del proyecto ARCO (TIC98-0782),

y mejorado dentro del proyecto MOVASS (TIC2001-3450). Inicialmente ideado para un

sistema de telecomunicaciones, más tarde se adaptó a dos dominios de aplicación

dife-rentes, uno de los cuales fue un sistema de máquinas de juego interconectadas en red, en

colaboración con el centro tecnológico Labein de la agrupación Tecnalia, dentro del

con-texto del proyecto europeo METSES (IST-2000-28583). Una de las metas del grupo es

conseguir la generación de entornos de validación basados en pruebas de aceptación a

par-tir de los requisitos del sistema que se quiere probar. En esta línea se ha desarrollado el

proyecto AGMOD (TIC2003-08503). Algunos resultados de estos proyectos se pueden

en-contrar en [5], [8] y [9]. Los últimos trabajos del grupo en este ámbito están orientados al modelado de los requisitos necesarios para la generación del entorno de validación y se

han publicado ya algunos resultados en [4] y [176]. Otra de las metas se orienta a definir un modelo de proceso centrado en los requisitos de operaciones y pruebas de validación de

los sistemas a desarrollar, objetivos que se cubren en los proyectos en desarrollo OVAL/PM

(TIN2006-14840) y FLEXI (FIT-340005-2007-37). Salvo en el primero de los proyectos

(38)

del equipo de investigadores del proyecto.

La búsqueda de soluciones arquitectónicas y de operaciones aplicables a diferentes

do-minios de aplicación para TOPEN, permitió detectar una serie de problemas a la hora de

modelar y representar la interacción entre el operador y el sistema, a partir de los requisitos

del sistema. De ahí, que el motivo marcado al comenzar los trabajos que han conducido a

la realización de esta tesis fuese el siguiente:

Existe un vacío en el modelado de sistemas ya que no se refleja de manera

explícita el conocimiento de las operaciones del sistema. Los estándares de

ingeniería de sistemas y software resaltan la importancia de las operaciones

del sistema, incluso proporcionan plantillas para confeccionar documentos de

operaciones en el contexto de ingeniería de requisitos y especificación. Pero sin

embargo, no proporcionan guías específicas para el modelado de operaciones.

El objetivo principal de esta tesis, planteado en el anteproyecto de la misma, es el

si-guiente:

E     ´     ´ , 

     ,           ´ ,       ´  ´ ´ .

Basados en este objetivo principal, se han marcado un conjunto de objetivos parciales:

1. Identificar y formalizar los conceptos conducentes a la especificación del modelo de

interacción de un sistema y de los elementos que lo forman.

(39)

3. Proponer metamodelos que faciliten la representación de las operaciones en el

pro-ceso de modelado de sistemas, y de su desarrollo en general.

4. Enriquecer el proceso de desarrollo de sistemas, incorporando el modelo de

opera-ciones en etapas iniciales del desarrollo de sistemas.

Considerando los objetivos expuestos, la hipótesis de partida de este trabajo es la

si-guiente:

V          

-       ,´       ´    .´

1.3. Metodología de investigación de la tesis

La metodología de investigación utilizada para alcanzar los objetivos marcados en esta

tesis doctoral ha sido la de “Investigación en Acción” [15] [17] [145]. En los últimos años los métodos de investigación cualitativos y en especialInvestigación en Acción, están

sien-do aceptasien-dos en la comunidad investigasien-dora de sistemas de información e ingeniería del

software. Davidson apunta que este hecho se aprecia en el aumento de artículos publicados

sobreInvestigación en Acciónen el dominio de sistemas de información [45].

El método de investigación en acción se fundamenta en la idea de que la teoría y la

práctica pueden integrarse estrechamente, aprendiendo de los resultados de las actuaciones

planificadas tras un análisis cuidadoso del contexto del problema.

La figura 1 muestra el ciclo de actividades del proceso de Investigación en Acción,

consistente en las siguientes fases:

1. Planificación. En esta fase se identifican cuestiones relevantes que permitan guiar la

investigación. El trabajo de investigación se realimenta, con el proyecto de

(40)

Figura 1:Ciclo de actividades del métodoInvestigación en Acción

el marco para estos nuevos aspectos o problemas a investigar. En esta tesis, la

in-vestigación se ha ido realimentando principalmente por medio de los proyectos de

investigación del grupo de investigación Syst.

2. Acción. Consiste en una variación de la práctica mediante una simulación o prueba de

la solución. En esta fase, el investigador en acción trabaja en los intereses temáticos

del grupo de trabajo participando en las fases de planificación, actuación, observación

y reflexión del núcleo de proyectos investigación-acción del grupo (definidos como

“core action research” por Perry y Zuber-Skerritt [138]). En nuestro caso, se ha lla-mado marco de proyectos a dicho núcleo. La figura2muestra el marco de proyectos

relacionado con esta tesis, del grupo de investigación Syst, en los que el autor de esta

tesis ha participado aplicando el método de investigación en acción, realimentando

la acción investigadora que ha propiciado la realización de esta tesis doctoral. Dicho

marco de proyectos será descrito en el siguiente apartado.

3. Observación. El objetivo de esta fase es recoger información, tomar datos y

docu-mentar lo que ocurre. Durante esta fase de observación en la investigación en acción

(41)

Figura 2:Marco de proyectosInvestigación en Acciónen esta tesis

se ha ido realizando un análisis y evaluación de los resultados de las acciones

reali-zadas en la etapa anterior, teniendo en cuenta la literatura relacionada.

4. Reflexión. Esta cuarta fase tiene como objetivo analizar y compartir los resultados

obtenidos en la etapa anterior. Por un lado, se han planteado nuevas cuestiones

re-levantes, comenzando un nuevo ciclo en la investigación en acción (fase de

planifi-cación). Por otro lado, se han ido refinando las soluciones encontradas, publicando

artículos en conferencias relacionadas con la investigación, e incorporándolas a la

memoria de la tesis doctoral.

1.4. Marco de desarrollo de la tesis

El marco de proyectos relacionados con el desarrollo de esta tesis, está compuesto por

un conjunto de proyectos de investigación realizados en el seno del grupo de investigación

Syst de la UPM, representados en la figura2.

(42)

Este proyecto fue financiado por el Ministerio de Ciencia y Tecnología

(TIC98-0782-R98612501).

2. METSES: “Multiple-site Environment for testing Systems with Embedded

Soft-ware” (2000-2002). Este proyecto fue financiado por la UE dentro del V Programa

Marco-IST (Ref. IST-2000-28583). La actividad de prueba en sistemas compuestos

por elementos inter-conectados con software embebido es compleja y sofisticada.

Es necesario probar el comportamiento dinámico del sistema completo, no es

sufi-ciente probar cada elemento independientemente. El objetivo de este proyecto fue

desarrollar un entorno de pruebas para sistemas complejos con componentes

inter-relacionados, que pudiera ser adaptado a diferentes sistemas industriales con poco

esfuerzo. Este proyecto soporta la ejecución remota de pruebas con una arquitectura

cliente-servidor y, por tanto, puede ser utilizado por equipos distribuidos

geográfica-mente coordinando la realización de las pruebas. Soporta la descripción de pruebas

descritas en un lenguaje de alto nivel, con una sintaxis orientada a dominio.

MET-SES, basado en el entorno TOPEN (Test and Operation Environment) desarrollado

dentro del proyecto ARCO, permite al ingeniero de pruebas definir pruebas a nivel de

usuario, descritas en una sintaxis orientada a dominio, así como compilar y ejecutar

procedimientos de pruebas en el sistema a probar.

3. MOVASS: “Modelo y Herramienta para el Proceso de Especificación de Pruebas

de Validación de Sistemas Software” (2002-2004). Este proyecto ha sido financiado

por el Ministerio de Ciencia y Tecnología (Ref. TIC 2001-3450). El objetivo básico

del proyecto consistió en especificar un modelo de proceso para pruebas de

valida-ción de sistemas intensivos en software. Los esfuerzos se orientaron a la generavalida-ción

de una herramienta para automatizar la especificación y ejecución de pruebas de

aceptación, partiendo del trabajo realizado previamente con TOPEN. Se definieron

(43)

en la especificación del modelo de proceso, en conjunción con el proyecto METSES

que transcurrió en paralelo. Se consiguió mejorar el proceso de construcción de la

herramienta TOPEN, disminuyendo su coste de adaptación a nuevos dominios de

aplicación. Este resultado se consiguió a través de una mayor generalidad de los

pa-trones de diseño y de datos. Por otra parte también se avanzó en la generación de

uno de los componentes de la herramienta, el generador de código, a partir de un

modelo de datos y de interacción utilizando tecnología XML y Java. Este resultado

tuvo un gran valor dentro de la estrategia del grupo de investigación, ya que permitió

reorientar la manera de construir TOPEN, acercándolo mucho más a las necesidades

de la industria.

4. XNetMod: “XML Based Modelling Language for Simulation of Technical

Net-works”. Este proyecto fue financiado por la Comisión Europea (Ref. IST-2001-52057).

El proyecto tuvo como objetivo principal el desarrollo de una tecnología de

mode-lado basada en lenguajes XML para sistemas con estructura de red, esto es,

com-puestos por elementos interconectados. Otro objetivo derivado del anterior, fue la

evolución y adaptación de herramientas XML para la verificación, transformación

y procesamiento de este tipo de modelos de sistema. Los resultados técnicos se

al-canzaron aplicando la tecnología desarrollada al modelado y simulación de sistemas

representables como redes para dominios de aplicación diferentes, como un workflow

de datos bancarios y la gestión de recursos en una oficina de extinción de incendios

forestales.

5. DOBERTSEE: “Dependant On-Board Embedded Real-Time Software Engineering

Environment /Low-Cost On-Board Software Development Toolkit”. Este proyecto

fue financiado por ESA/ESTEC (Ref. Contrato 15133/01/NL/ND). El principal

(44)

Software Engineering Environment (SEE), que contemplase por completo el

están-dar de modelo de proceso ECSS-E40 para el desarrollo de software embarcable de

tiempo real, Dependable On-Board Real Time software (DOBERT). El modelo de

proceso DOBERTSEE está centrado en documento. Cada documento se expresa en

CASEML (CASE Markup Language), un lenguaje de descripción basado en XML.

El SEE ha supuesto un valioso experimento para obtener una capa ligera de

inge-niería del software utilizando tecnologías asequibles, facilitando al mismo tiempo la

integración con herramientas CASE existentes. El entorno desarrollado se ha basado

en los lenguajes CASEML y Tcl/Tk.

Se realizó una extensión de este proyecto, DOBERTSEE CCN-1, consistente en

in-tegrar un entorno de pruebas, en concreto TOPEN, con el entorno de ingeniería SEE

desarrollado. La integración se basó en la incorporación en documentos CASEML de

especificaciones de pruebas de aceptación y de resultados de sus ejecuciones

medi-ante TOPEN. De esta manera se consiguió lanzar pruebas de aceptación, compuestas

de operaciones sobre el sistema, directamente desde el SEE y almacenar los

resul-tados de dichas pruebas automáticamente en documentos CASEML. Otro logro de

este proyecto fue establecer un esquema completo de trazabilidad desde requisitos a

pruebas.

6. AGMOD: “Generación Automática de Herramientas basadas en Modelos de

Sis-temas y Procesos” (2003-2006). Este proyecto ha sido financiado por el Ministerio

de Educación y Ciencia (Ref. TIC 2003-08503). El objetivo de este proyecto fue

realizar una aproximación al desarrollo de productos software, centrada en los

requi-sitos de operación y en las pruebas de validación como piezas clave del desarrollo de

sistemas. Se fundamenta en la definición de proceso y la integración de un conjunto

de herramientas existentes compartiendo una filosofía común subyacente al

proce-so definido. Los requisitos de operación y las pruebas de validación constituyen las

(45)

pero rigurosamente desarrollado y facilitando la ingeniería colaborativa centrada en

las necesidades del usuario. El proceso obtenido se enmarca dentro de estándares

aceptados de ingeniería de software y sistemas tales como IEEE Std 1362-1998

Con-cept of Operation (ConOps), ISO 12207, Software lifecycle processes e ISO 15288

System lifecycle processes.

7. OVAL/PM: “Modelo de Proceso Centrado en Requisitos de Operación y Pruebas de

Validación”. Este proyecto está siendo financiado por el Ministerio de Educación y

Ciencia (Ref. TIC 2006-14840). Pretende producir una nueva aproximación al

desa-rrollo de productos. Esta aproximación se centra en los requisitos de operación y en

las pruebas de validación como las piezas clave del desarrollo de sistemas,

lleván-dose a cabo en términos de definición de proceso y un conjunto de herramientas.

El conjunto de herramientas se basará en un número de herramientas existentes que

compartirán una filosofía común subyacente al proceso propuesto. Los requisitos de

operación y las pruebas de validación serán las bases para el diseño de sistemas

per-mitiendo un ciclo de vida flexible e incremental, pero rigurosamente desarrollado y

facilitando la ingeniería colaborativa utilizando una aproximación basada en el

acer-camiento a las necesidades del usuario. El proceso obtenido se enmarcará dentro de

estándares de ingeniería de software y sistemas ampliamente aceptados. La

introduc-ción de estándares facilitará que los resultados del proyecto encajen con las

prácti-cas de ingeniería bien establecidas. La aproximación considerará el uso de líneas de

producto para soportar la arquitectura del producto. Aunque otras prácticas

arquitec-tónicas podrían tenerse en consideración, ésta facilitará que el resultado del proyecto

se centre en un campo de probado éxito, facilitando su aplicabilidad.

(46)

siendo financiado por el Ministerio de Industria, Turismo y Comercio (Ref.

FIT-340005-2007-37, ITEA2 6022). El objetivo de este proyecto es mejorar la

compet-itividad de la industria europea de software intensivo, proporcionando una

aprox-imación flexible, rápida y ágil al desarrollo de productos software que asegure un

desarrollo eficiente de sistemas embebidos y servicios confiables y seguros en un

contexto de desarrollo global. La finalidad de FLEXI es ofrecer medios para obtener

altos rendimientos de negocio: “Desde la idea al producto en seis meses de tiempo”.

Una de las tareas de este proyecto consistirá en aplicar el modelo de operaciones del

sistema definido en esta Tesis, a modelos de proceso de desarrollo ágiles.

1.5. Presentación de la tesis

La memoria de la tesis se ha estructurado en una serie de capítulos. El primer capítulo

que corresponde al actual, conforma la introducción del trabajo y contiene una

descrip-ción del planteamiento general de esta tesis, de la motivadescrip-ción y objetivos perseguidos con

la realización de ésta, del marco de desarrollo de la tesis, y de la metodología de

investi-gación seguida. El segundo capítulo presenta el estado del arte que ha sido analizado por su

relación con los aspectos conducentes a la especificación del modelo de interacción entre

sistema y operador.

El tercer capítulo incluye la definición del concepto de sistema operable; esta

defini-ción es un requisito para la especificadefini-ción de un modelo de operaciones de un sistema. La

definición realizada incluye tanto la visión intra-elementos como la visión inter-elementos

de un sistema. A partir de ésta, se ha definido el concepto de frontend de operaciones de un

sistema, que proporciona el marco adecuado para utilizar el modelo de operaciones.

En el cuarto capítulo se define el concepto de modelo de operaciones de un sistema, el

ámbito de aplicación del mismo, y se identifican el subconjunto de requisitos de un sistema

necesarios para la especificación de un modelo de operaciones.

(47)

de un sistema. Esta propuesta incluye la descripción de un metamodelo del modelo de

operaciones de un sistema, y basado en éste, un perfil UML para representar modelos de

operaciones, al que llamaremos UML 2 Operations Profile (U2OP).

En el sexto capítulo se plantea la utilización del modelo de operaciones de un sistema

como soporte en el modelado de un frontend de operaciones. En concreto se presenta, por

una parte, una propuesta de metamodelo UML que refleja la interacción entre el frontend

de operaciones y el sistema, tomando como base el metamodelo de operaciones definido

en el capítulo anterior. Por otra parte, se describe una arquitectura conceptual del frontend

de operaciones empleando los diferentes niveles de abstracción existentes en la interacción

entre operador y sistema. Y por último se plantea un conjunto de comandos básicos de

operación del sistema aplicable a diferentes dominios de aplicación.

El capítulo séptimo presenta como caso de estudio un sistema de máquinas de juego

interconectadas. Se describe el modelo del sistema por medio de diagramas UML, y a

continuación se define el modelo de operaciones de este sistema utilizando el perfil U2OP

descrito en el quinto capítulo.

En el octavo capítulo se analiza la utilización del modelo de operaciones de un sistema

en procesos de desarrollo software y se propone una aproximación a un modelo de proceso

software dirigido por el modelo de operaciones.

Y finalmente, en el noveno y último capítulo se presentan las conclusiones de la tesis, a

modo de resumen de los logros alcanzados, de los resultados contrastados en diversos foros

y de las posibles líneas de investigación a las que puede dar lugar.

1.6. Resumen del capítulo

Este capítulo comprende una introducción a la tesis doctoral, en el que se ha

explica-do la razón de su planteamiento, y se ha presentaexplica-do el área de investigación en la que se

enmarca: modelado y especificación de sistemas complejos. También se incluyen la

(48)

el objetivo principal y objetivos específicos a conseguir, así como la hipótesis de partida.

Además, se ha indicado el marco de proyectos de investigación en los que se ha

desarro-llado esta tesis, y la metodología de investigación seguida para su desarrollo: Investigación

(49)
(50)

Capítulo II

ESTADO DEL ARTE

“En los momentos de crisis, sólo la imaginación

es más importante que el conocimiento.”

(51)

2.1. Introducción

En este capítulo se presenta el estado del arte que se ha analizado en relación con este

trabajo. En primer lugar, se presentan una serie de definiciones y visiones del concepto de

sistema desde el punto de vista de interacción realizadas por diferentes autores. En segundo

lugar, se analiza un conjunto de paradigmas que permiten representar dicha interacción

entre sistema y operador.

En tercer lugar, se analizan ciertos estándares de ingeniería del software y sistemas que

tratan esta interacción entre sistema y operador por medio del concepto de operación

den-tro del desarrollo de sistemas. También se incluyen oden-tros estándares que definen lenguajes

procedimentales orientados a la operación y la validación de sistemas. Se incluye la

valida-ción de sistemas ya que está estrechamente relacionada con la operavalida-ción de sistemas, dado

que para realizar ciertas pruebas, especialmente las de aceptación, se hace necesario llevar

a cabo operaciones sobre el sistema.

En cuarto lugar, se analiza la relación entre el modelo de interacción del sistema que

se define en esta tesis y el enfoque de desarrollo de sistemas dirigido por modelo (MDD),

dado que dicho modelo de interacción puede utilizarse como base para dirigir el desarrollo

de un sistema. Esta revisión se centra en la ingeniería dirigida por modelo, Model Driven

Engineering (MDE), como filosofía y no tanto en técnicas o procesos que permitan su

aplicación.

Por último dentro de este capítulo, se presenta una sección de resumen y conclusiones

sobre el estado del arte analizado y su relación con esta tesis.

2.2. Sistemas desde el punto de vista de interacción

En esta sección se presentasistema desde el punto de vista de interacción con su

en-torno. Tal y como plantea Wang, los sistemas son las entidades y fenómenos más

com-plicados de abordar en el mundo físico, de la información y social a través de todas las

(52)

emprender este trabajo, consistió en analizar diferentes visiones o concepciones de sistema

presentadas por distintos autores, y que posteriormente nos permitiese expresar nuestro

propio concepto de sistema. En esta sección, se incluyen algunas de las visiones de sistema

analizadas.

2.2.1. Visión filosófica de Bunge

Como parte de un tratado de filosofía básica, Bunge [32] define un sistemaΣcomo una terna ordenada compuesta por los siguientes elementos:

[C(Σ),E(Σ),S(Σ)] (1)

en la que:

C(Σ)

Composición deΣ, representa el conjunto de partes deΣ.

E(Σ)

Entorno deΣ, es el conjunto de aquellos elementos que, sin pertenecer a C(Σ), actúan

sobre sus componentes o están sometidos a su influencia.

S(Σ)

Estructura de Σ, es el conjunto de relaciones y vínculos de los elementos de C(Σ)

entre sí o bien con los miembros del entorno E(Σ).

La definición de sistema enunciada por Bunge [32] incluye los componentes o elemen-tos que componen un sistema, las relaciones entre ellos y por último, el entorno con el que

interactúa. Esta definición aunque proveniente del campo de la filosofía y aún siendo muy

general ya que no describe en qué consisten las relaciones y vínculos entre los componentes

de un sistema y entre éstos y el entorno, por ejemplo en términos de estímulos y respuestas,

o de entradas y salidas, se ha incluido por dos razones. Primero porque coincide con la

(53)

interconectados, y que será tratada en el capítulo siguiente. Y en segundo lugar porque se

ha pretendido dejar patente que el concepto de sistema va más allá del campo de la

inge-niería, abarcando prácticamente todo lo que rodea al ser humano (su mundo) e incluso su

propia composición física y psíquica (naturaleza y metafísica).

2.2.2. Jackson: el mundo y la máquina

Jackson en su artículo “The World and the Machine” en el que llamamáquina al

sis-tema ymundoa su entorno, plantea que un software se construye para conseguir, mediante

dispositivos físicos, atender propósitos prácticos en el mundo [87]. Así, el software es una descripción de una máquina. Construimos la máquina describiéndola y presentándola en

un ordenador de propósito general que toma los atributos y comportamientos que hemos

descrito. La máquina tiene sentido en el mundo en el que se instala y utiliza. Por ejemplo,

el valor de un sistema de procesamiento de textos no se evalúa y juzga examinando su

estructura de software o código, sino por la calidad de los documentos que produce y la

facilidad y satisfacción de los operadores que lo utilizan.

Los requisitos, que constituyen el problema a resolver, se encuentran en el mundo;

la máquina constituye la solución que se quiere construir. Aunque esto es algo obvio y

conocido, Jackson indica que conviene tenerlo muy en cuenta, para entender la relación

entre mundo y máquina.

Jackson plantea que la relación entre el mundo y la máquina no es sencilla, y que

abarca varias facetas. Reconoce al menos cuatro facetas en esta relación entre el mundo y

la máquina:

Faceta de modelado, donde la máquina simula al mundo;

Faceta de interfaz, donde el mundo toma contacto con la máquina;

Faceta de ingeniería, donde la máquina actúa como un motor de control sobre el

(54)

Faceta del problema, donde la forma del mundo y del problema influyen en la forma

de la máquina y de la solución.

En palabras de Jackson, la máquina permite aportar soluciones a los problemas del

mundo, si existe una interacción y una interfaz definidos entre el mundo y la máquina. Por

“interacción” entiende la compartición de un fenómeno, es decir, la participación directa

en eventos y estados comunes. Afirma que una parte puede tener la potencia de iniciar

un evento, y la otra parte puede tener o no la capacidad de inhibirlo. De igual manera, se

comparten estados; una parte puede tener la capacidad de cambiar el valor de un estado, y

ambos pueden tener la capacidad de percibirlo.

2.2.3. Sistemas definidos como autómatas

Un sistema puede entenderse como un autómata definido por una serie de estados y un

conjunto de transiciones entre estados, distinguiendo entre autómatas de estados finitos o no

finitos, y deterministas o no deterministas respecto a su comportamiento. Además desde el

punto de vista de interacción, se puede representar un sistema como un autómata que recibe

una serie de entradas y genera una serie de salidas a partir de las entradas recibidas [91] [112] [97] [24] [31]. Del mismo modo y como una extensión de los autómatas, se utilizan las máquinas de estados finitos y diagramas de estados (statecharts) para representar el

comportamiento de los sistemas [111] [105] [68] [147] [85], y más recientemente [50]. Un Autómata Finito (AF) es un grafo con un número finito de vértices, llamados

es-tados. Los ejes de un diagrama de estados finitos se llaman transiciones y se denotan con

símbolos tomados del dominio del discurso representado por un alfabeto,P. Además uno

de los estados debe ser el estado inicial, y de 0 a n representan los estados finales.

Un AF es determinista, Autómata Finito Determinista (AFD), si NS (S,q) es único,

donde NS representa la función siguiente-estado para un estado S del autómata, y una

entradaqestando en el estadoS. Un AFD estácompletamente especificadosi NS(S,q) está

(55)

Un Autómata Finito No Determinista (AFND) es un AF parcial o completamente

es-pecificado en el que, para algún estado S y para algún símbolo de entrada p, se tiene que

NS(S,p) no es necesariamente único. Es decir, puede existir un estado S con dos

transi-ciones iguales (misma etiqueta) pero distinto estado destino. A esta situación se le suele

llamarconflicto en siguiente-estado. Un AFD es un caso particular de un AFND en el que

no existen conflictos de siguiente-estado. Al igual que para un AFD, los requisitos

especi-ficados, descritos o capturados por un AFND corresponden al conjunto de escenarios que

el AFND acepta. Un requisito que puede ser descrito por un AFD se le llama requisito

regular.

Un AFD realiza una computación o ejecución como respuesta a un escenario de entrada

con origen enP∗(siendoPel mismo dominio que define al AFD). La computación de un

AFD viene definida por la secuencia de estados por los que el AFD pasa, partiendo del

estado inicial, como consecuencia de la lectura de las entradas que componen el escenario

de entrada (secuencia de entradas, también llamadastring). En el caso de los AFND, puesto

que puede existir más de un estado destino para una misma transición, la respuesta a un

escenario de entrada corresponde a un árbol de computación, partiendo del estado inicial.

Para que el AF acepte el escenario de entrada el resultado de la computación tiene que ser

un estado final en el caso de un AFD, y el árbol de computación debe tener alguna hoja que

representa un estado final en el caso de un AFND.

Un AF puede verse como una caja negra que genera una secuencia de valores booleanos

de aceptación/rechazo (valor 1 ó 0) como secuencia de salida. Una máquina de estados

finitos, Finite State Machine (FSM), es similar a un AF, pero en lugar de responder si

acepta o rechaza escenarios de entrada, genera como salida una secuencia de acciones en

respuesta a las entradas.

Las transiciones de un AF se anotan con símbolos tomados de un dominio del discurso

finito (alfabeto) y las transiciones en FSMs se anotan con símbolos de entrada y salida

(56)

en diagramas de estados se anotan con eventos, condiciones y acciones, de la forma:

Evento[condicion]/accion

El evento suele proceder de una entidad externa mientras que una condición suele estar

definida en el sistema. Las acciones que genera el sistema pueden ser enviadas, incluyendo

datos o no, a entidades externas.

Así pues, la definición de un sistema como máquina de estados finitos permite

estable-cer la interacción de un sistema en función de sus entradas y salidas. Si bien su

repre-sentación puede verse limitada cuando existe un gran número de estados en el sistema.

2.2.4. Broy: sistemas reactivos e interactivos

Broy es uno de los autores que más trabajos ha realizado relativos a la descripción

de sistemas. Ha publicado numerosos trabajos orientados a la descripción y formalización

tanto de sistemas reactivos como de sistemas interactivos, entre ellos [24] [31] [25] [27] [30] [26] [28]. En este apartado se presentan algunas características de ambos tipos de sistemas desde el punto de vista de la relación entre un sistema y su entorno.

2.2.4.1. Sistemas reactivos

Los sistemas reactivos producen respuestas al recibir estímulos de entrada. Muchas

de las propuestas realizadas para representar el comportamiento de sistemas reactivos se

han basado en el concepto de traza. Una traza describe una secuencia finita o infinita de

acciones de entrada y de salida en un sistema reactivo.

En [24], Broy describe un sistema reactivo en términos de acciones de entrada y de salida y caracteriza el comportamiento de los sistemas reactivos por medio de conjuntos de

trazas, secuencias de acciones de entrada y de salida. Broy utiliza la definición de sistema

reactivo de Harel y Pnueli [69]: “un sistema reactivo es un sistema abierto que está rela-cionado con su entorno de tal manera que reacciona ante los estímulos de entrada realizados

Referencias

Documento similar