Facultad de Informtica
Departamento de Lenguajes, Sistemas Informticos e Ingeniera del
Software
ESPECIFICACIN DE UN MODELO DE
INTERACCIN APLICABLE A PROCESOS DE
DESARROLLO Y OPERACIN DE SISTEMAS CON
SOFTWARE
TESIS DOCTORAL
Enero 2008
de
de 2008.
Presidente D.
Vocal D.
Vocal D.
Vocal D.
Secretario D.
de
En Madrid:
Calificacin:
EL PRESIDENTE
LOS VOCALES
EL SECRETARIO
de 2008.
A mis padres, inicio de este trabajo hace unos cuantos aos, os quiero.
A mis hijos, Jess, 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
has escrito no figuran en este libro, estn grabadas en mi corazn.
AGRADECIMIENTOS
Gracias a todos los que han participado en mi vida hasta completar mi formacin
acadmica 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 tambin 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 estn aqu... todos de una forma u otra han aportado
granitos de arena hasta formar esta montaa.
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 Garca, Carlos Cuvillo, Eugenio
Santos, Hctor Garca, Javier Gil, Jssica Daz, Jorge Tejedor, LuisFer, Manuel Bollan,
Miguel Angel Daz, 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.
Jennifer Prez por aparecer como el sptimo de caballera cuando ms bajo estaba
de nimo.
Antonio Vallecillo por la mano amiga que me ha tendido y los nimos que en todo
momento me ha dado.
RESUMEN
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 responses, 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 environment. 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 being the base of the development and operation/monitoring processes of software-intensive
systems.
This work contributes in the modelling and specification of complex systems making
new definitions for operable system and system operations model. In addition, a metamodel and a profile UML to incorporate the operations modelling in the model of a system
are proposed. Another relevant contribution of this Thesis is the definition of a new approach 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 contributes to a significant enrichment of the systems development process.
ndice general
PARTE I
DEDICATORIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AGRADECIMIENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RESUMEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LISTA DE TABLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LISTA DE ACRNIMOS Y ABREVIATURAS
I.
. . . . . . . . . . . . . . . . . .
INTRODUCCIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 25
Sistemas reactivos . . . . . . . . . . . . . . . . . . . . 27
2.2.4.2.
Sistemas interactivos . . . . . . . . . . . . . . . . . . . 31
2.4.2.2.
Operador . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.2.3.2.
Interfaz de operacin . . . . . . . . . . . . . . . . . . . 88
3.2.4.2.
3.3.3.2.
3.3.3.3.
5.2.1.2.
5.2.1.3.
5.2.1.4.
5.2.1.5.
5.2.1.6.
5.2.2.2.
5.2.2.3.
5.2.2.4.
5.2.2.5.
5.2.2.6.
5.2.2.7.
5.2.2.8.
5.2.2.9.
5.3.3.2.
5.3.3.3.
5.3.4.2.
5.3.4.3.
5.3.4.4.
5.3.4.5.
5.3.4.6.
5.3.4.7.
5.3.4.8.
5.3.4.9.
6.2.1.2.
6.2.1.3.
6.2.1.4.
6.2.1.5.
6.2.1.6.
6.2.3.2.
6.2.4.2.
CreateSE . . . . . . . . . . . . . . . . . . . . . . . . . 199
6.4.3.2.
DeleteSE . . . . . . . . . . . . . . . . . . . . . . . . . 200
Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.4.4.2.
Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.4.4.3.
Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.4.4.4.
Finish . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
For . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.4.5.2.
Repeat . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.4.5.3.
Wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.4.5.4.
Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.2.2.
7.4.2.3.
7.4.2.4.
7.4.2.5.
7.4.2.6.
7.4.2.7.
7.4.2.8.
7.4.2.9.
ndice de cuadros
1.
2.
3.
ndice de figuras
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Representacin de un sistema . . . . . . . . . . . . . . . . . . . . . . . . . 95
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Captulo I
INTRODUCCIN
proceso de desarrollo. Los aspectos de operaciones del sistema se abordan de manera implcita y lateral junto con el resto de aspectos o puntos de vista del sistema que s reciben
atencin 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 estndar IEEE 1471 - IEEE Recommended Practice Architectural Description of Software-Intensive Systems [78], define punto de vista como una
especificacin de reglas para construir una vista del sistema que comprenda una serie de
aspectos de stakeholders 1 . Sera por tanto interesante enfocar el desarrollo de un sistema
incluyendo el punto de vista de operaciones, al objeto de separar el inters (concern) de
operaciones del sistema de una manera ntida a lo largo del ciclo de vida del sistema.
En sistemas de espacio por ejemplo, las operaciones de carga de pago (payload) se convierten en un aspecto crtico ya que una vez la nave espacial est en el espacio puede ser
muy difcil o imposible determinar un problema. Para sistemas de espacio, es recomendable
e incluso forzoso producir modelos de operacin 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 especificacin del modelo de operacin. Los sistemas de espacio utilizan a menudo como lnea base telemetra y telecomandos. Esto es, el sistema de tierra enva un telecomando
a la nave espacial y sta responde con una telemetra. Esta aproximacin es un esquema
muy simple y eficiente para modelar la interaccin del sistema. Como justifican Garbajosa
et al. en [62], este esquema se puede transportar fcilmente, en trminos orientados a objetos, una operacin, el telecomando, y un objeto, la nave espacial, que devuelve un valor, la
telemetra. Obviamente es posible refinar este esquema para una carga de pago (payload)
basada en objetos y operaciones asociadas.
El enfoque de modelo de operacin en sistemas de espacio puede utilizarse en otros
tipos de sistemas, aunque pueda necesitarse una metodologa propia y una infraestructura
1
de herramientas. Este trabajo persigue proporcionar una aproximacin en la que los modelos de operaciones del sistema sean una piedra angular para el desarrollo, validacin y
operacin de sistemas.
Esta tesis doctoral se enmarca dentro de la lnea de investigacin Modelado y especificacin de sistemas complejos. El modelado de sistemas complejos, y de sistemas en
general, constituye un pilar fundamental tanto en el desarrollo como en la evolucin de stos. Los modelos aportan conocimiento del sistema al conjunto de stakeholders implicados
(ya sean pasados, presentes o futuros) facilitando el entendimiento y comprensin 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
interaccin 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
interaccin entre sistema y operador, el modelado de sistemas no refleja de manera explcita
los aspectos de operaciones [4]. Sin embargo, varios estndares y guas de ingeniera de
sistemas y software publicados hace ya varios aos, 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 establece un marco comn para describir el ciclo de vida de sistemas, incluyendo el
proceso de utilizacin u operacin del sistema.
ISO/IEC 12207, Standard for Information Technology - Software Lifecycle Processes [82], en lnea con el anterior.
IEEE 1362 Guide for Concept of Operations Document [76], que define el concepto de documento de operaciones llamado ConOps.
4
1.2.
Motivacin y objetivos
Desde hace varios aos el grupo de investigacin SYST (System and Software Technologies) de la Universidad Politcnica de Madrid (UPM) viene trabajando en el desarrollo
de herramientas software orientadas a la validacin y operacin de sistemas. Como resultado de una amplia actividad en proyectos europeos y nacionales se ha desarrollado
TOPEN (Test and Operation Environment), un entorno de validacin y operacin propio,
en cuya evolucin y diseminacin 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 operacin de sistemas complejos que permite realizar pruebas de aceptacin y operaciones en sistemas que dispongan de una interfaz software de interaccin con el sistema. Una descripcin de las funcionalidades de TOPEN se
puede encontrar en [62] [10], y una descripcin de la arquitectura que se desarroll para
TOPEN se encuentra en [64]. Tambin se ha llevado a cabo una tesis doctoral [114] que define una arquitectura genrica y una lnea de producto para herramientas de validacin de
sistemas, planteando una arquitectura lo suficientemente general para soportar diferentes
dominios de aplicacin sin cambios esenciales en el producto para realizar la validacin.
En el rea de validacin de sistemas existe un vaco de herramientas software que permitan comprobacin y operacin de dispositivos y sistemas industriales complejos [114].
Estos sistemas tienen la caracterstica comn de poder ser operados a travs de una serie
de comandos, descritos como procedimientos en un lenguaje de programacin convencional [62]. Tambin estos sistemas responden a estmulos externos y por eso no siempre
es posible la automatizacin completa de la generacin de los procedimientos de prueba
[43], siendo indispensable la participacin directa del ingeniero de pruebas. De esto ltimo, deriva la idea de la definicin de procedimientos de prueba asistida, proporcionando
soporte al ingeniero de pruebas.
TOPEN proporciona a los ingenieros de pruebas un marco para definir, compilar y
ejecutar procedimientos de prueba, Test Procedure (TP), sobre el sistema a validar y almacenar la informacin de los procedimientos de prueba y el resultado de sus ejecuciones. En
TOPEN, la definicin 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 aplicacin. Un TP est compuesto de una serie de comandos de operacin, que incluye
comandos para especificar los valores de entrada, el procesamiento de la prueba y los resultados esperados. Los comandos de un TP deben seguir la gramtica previamente definida
para el dominio de aplicacin del sistema a validar. Los datos almacenados relativos a los
resultados de las ejecuciones de los TP permiten obtener el veredicto de las pruebas realizadas, e incluso validar algunos requisitos que requieren la evaluacin 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, ms tarde se adapt a dos dominios de aplicacin diferentes, uno de los cuales fue un sistema de mquinas de juego interconectadas en red, en
colaboracin con el centro tecnolgico Labein de la agrupacin Tecnalia, dentro del contexto del proyecto europeo METSES (IST-2000-28583). Una de las metas del grupo es
conseguir la generacin de entornos de validacin basados en pruebas de aceptacin a partir de los requisitos del sistema que se quiere probar. En esta lnea se ha desarrollado el
proyecto AGMOD (TIC2003-08503). Algunos resultados de estos proyectos se pueden encontrar en [5], [8] y [9]. Los ltimos trabajos del grupo en este mbito estn orientados
al modelado de los requisitos necesarios para la generacin del entorno de validacin 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 validacin 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
de nombre ARCO, en todos los dems el autor de este trabajo ha formado o forma parte
3. Proponer metamodelos que faciliten la representacin de las operaciones en el proceso de modelado de sistemas, y de su desarrollo en general.
4. Enriquecer el proceso de desarrollo de sistemas, incorporando el modelo de operaciones en etapas iniciales del desarrollo de sistemas.
Considerando los objetivos expuestos, la hiptesis de partida de este trabajo es la siguiente:
V ,
.
1.3.
11
13
14
Software Engineering Environment (SEE), que contemplase por completo el estndar 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 descripcin basado en XML.
El SEE ha supuesto un valioso experimento para obtener una capa ligera de ingeniera del software utilizando tecnologas asequibles, facilitando al mismo tiempo la
integracin con herramientas CASE existentes. El entorno desarrollado se ha basado
en los lenguajes CASEML y Tcl/Tk.
Se realiz una extensin de este proyecto, DOBERTSEE CCN-1, consistente en integrar un entorno de pruebas, en concreto TOPEN, con el entorno de ingeniera SEE
desarrollado. La integracin se bas en la incorporacin en documentos CASEML de
especificaciones de pruebas de aceptacin y de resultados de sus ejecuciones mediante TOPEN. De esta manera se consigui lanzar pruebas de aceptacin, compuestas
de operaciones sobre el sistema, directamente desde el SEE y almacenar los resultados de dichas pruebas automticamente en documentos CASEML. Otro logro de
este proyecto fue establecer un esquema completo de trazabilidad desde requisitos a
pruebas.
6. AGMOD: Generacin Automtica de Herramientas basadas en Modelos de Sistemas y Procesos (2003-2006). Este proyecto ha sido financiado por el Ministerio
de Educacin y Ciencia (Ref. TIC 2003-08503). El objetivo de este proyecto fue
realizar una aproximacin al desarrollo de productos software, centrada en los requisitos de operacin y en las pruebas de validacin como piezas clave del desarrollo de
sistemas. Se fundamenta en la definicin de proceso y la integracin de un conjunto
de herramientas existentes compartiendo una filosofa comn subyacente al proceso definido. Los requisitos de operacin y las pruebas de validacin constituyen las
bases para el diseo de sistemas permitiendo un ciclo de vida flexible e incremental,
15
16
siendo financiado por el Ministerio de Industria, Turismo y Comercio (Ref. FIT340005-2007-37, ITEA2 6022). El objetivo de este proyecto es mejorar la competitividad de la industria europea de software intensivo, proporcionando una aproximacin flexible, rpida 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.
Presentacin de la tesis
17
18
19
20
Captulo II
ESTADO DEL ARTE
21
2.1. Introduccin
En este captulo se presenta el estado del arte que se ha analizado en relacin con este
trabajo. En primer lugar, se presentan una serie de definiciones y visiones del concepto de
sistema desde el punto de vista de interaccin realizadas por diferentes autores. En segundo
lugar, se analiza un conjunto de paradigmas que permiten representar dicha interaccin
entre sistema y operador.
En tercer lugar, se analizan ciertos estndares de ingeniera del software y sistemas que
tratan esta interaccin entre sistema y operador por medio del concepto de operacin dentro del desarrollo de sistemas. Tambin se incluyen otros estndares que definen lenguajes
procedimentales orientados a la operacin y la validacin de sistemas. Se incluye la validacin de sistemas ya que est estrechamente relacionada con la operacin de sistemas, dado
que para realizar ciertas pruebas, especialmente las de aceptacin, se hace necesario llevar
a cabo operaciones sobre el sistema.
En cuarto lugar, se analiza la relacin entre el modelo de interaccin del sistema que
se define en esta tesis y el enfoque de desarrollo de sistemas dirigido por modelo (MDD),
dado que dicho modelo de interaccin puede utilizarse como base para dirigir el desarrollo
de un sistema. Esta revisin se centra en la ingeniera dirigida por modelo, Model Driven
Engineering (MDE), como filosofa y no tanto en tcnicas o procesos que permitan su
aplicacin.
Por ltimo dentro de este captulo, se presenta una seccin de resumen y conclusiones
sobre el estado del arte analizado y su relacin con esta tesis.
(1)
en la que:
C()
Composicin de , representa el conjunto de partes de .
E()
Entorno de , es el conjunto de aquellos elementos que, sin pertenecer a C(), actan
sobre sus componentes o estn sometidos a su influencia.
S()
Estructura de , es el conjunto de relaciones y vnculos de los elementos de C()
entre s o bien con los miembros del entorno E().
La definicin de sistema enunciada por Bunge [32] incluye los componentes o elementos que componen un sistema, las relaciones entre ellos y por ltimo, el entorno con el que
interacta. Esta definicin aunque proveniente del campo de la filosofa y an siendo muy
general ya que no describe en qu consisten las relaciones y vnculos entre los componentes
de un sistema y entre stos y el entorno, por ejemplo en trminos de estmulos y respuestas,
o de entradas y salidas, se ha incluido por dos razones. Primero porque coincide con la
visin que se va a adoptar en este trabajo de la estructura de un sistema como elementos
23
24
Faceta del problema, donde la forma del mundo y del problema influyen en la forma
de la mquina y de la solucin.
En palabras de Jackson, la mquina permite aportar soluciones a los problemas del
mundo, si existe una interaccin y una interfaz definidos entre el mundo y la mquina. Por
interaccin entiende la comparticin de un fenmeno, es decir, la participacin 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 autmatas
Un sistema puede entenderse como un autmata definido por una serie de estados y un
conjunto de transiciones entre estados, distinguiendo entre autmatas de estados finitos o no
finitos, y deterministas o no deterministas respecto a su comportamiento. Adems desde el
punto de vista de interaccin, se puede representar un sistema como un autmata 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 extensin de los autmatas, se utilizan
las mquinas de estados finitos y diagramas de estados (statecharts) para representar el
comportamiento de los sistemas [111] [105] [68] [147] [85], y ms recientemente [50].
Un Autmata Finito (AF) es un grafo con un nmero finito de vrtices, llamados estados. Los ejes de un diagrama de estados finitos se llaman transiciones y se denotan con
P
smbolos tomados del dominio del discurso representado por un alfabeto, . Adems uno
de los estados debe ser el estado inicial, y de 0 a n representan los estados finales.
Un AF es determinista, Autmata Finito Determinista (AFD), si NS (S,q) es nico,
donde NS representa la funcin siguiente-estado para un estado S del autmata, y una
entrada q estando en el estado S. Un AFD est completamente especificado si NS(S,q) est
siempre definida y parcialmente especificado en caso contrario.
25
Un Autmata Finito No Determinista (AFND) es un AF parcial o completamente especificado en el que, para algn estado S y para algn smbolo de entrada p, se tiene que
NS(S,p) no es necesariamente nico. Es decir, puede existir un estado S con dos transiciones iguales (misma etiqueta) pero distinto estado destino. A esta situacin se le suele
llamar conflicto 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 especificados, 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 computacin o ejecucin como respuesta a un escenario de entrada
P
P
con origen en (siendo el mismo dominio que define al AFD). La computacin 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, tambin llamada string). En el caso de los AFND, puesto
que puede existir ms de un estado destino para una misma transicin, la respuesta a un
escenario de entrada corresponde a un rbol de computacin, partiendo del estado inicial.
Para que el AF acepte el escenario de entrada el resultado de la computacin tiene que ser
un estado final en el caso de un AFD, y el rbol de computacin 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 aceptacin/rechazo (valor 1 0) como secuencia de salida. Una mquina 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 smbolos tomados de un dominio del discurso
finito (alfabeto) y las transiciones en FSMs se anotan con smbolos de entrada y salida
tomados de alfabetos de entrada y salida respectivamente. Por otra parte, las transiciones
26
Para la descripcin de sistemas reactivos mediante trazas, Broy asume que stos son
asncronos [24]. En una interaccin sncrona el emisor y el receptor deben estar preparados
para establecer la comunicacin, sin embargo en una interaccin asncrona cada accin se
realiza exclusivamente por uno de los componentes, sin tener en cuenta si el receptor est
o no preparado para la comunicacin.
La interfaz entre el entorno y el sistema reactivo se reduce a acciones de entrada, enviadas desde el entorno al sistema, y de salida, enviadas desde el sistema al entorno. Por tanto,
la interfaz de un sistema reactivo con el entorno se describe nicamente por medio del conjunto de acciones de entrada aceptadas por el sistema y el conjunto de acciones de salida
que puede generar ste. Las acciones de entrada son producidas por el entorno y observadas
por el sistema reactivo que reacciona ante ellas, y las salidas son generadas por el sistema
reactivo y observadas por el entorno. Esta relacin entre entorno y sistema queda reflejada
en la figura 3 adaptada de una figura que utiliza Broy para representar esquemticamente
un sistema reactivo [24].
Broy entiende que los conjuntos de trazas que describen las interfaces estn compuestos
por acciones de entrada y acciones de salida, y que la interaccin entre el sistema reactivo
y el entorno es asncrona por lo que las acciones de entrada pueden ocurrir en cualquier
momento (en cualquier posicin de la traza) [24]. Denomina sistemas-I/O a los sistemas
reactivos asncronos, con I como acciones de entrada y O como acciones de salida. Asume
que: 1) un sistema-I/O no puede influir en qu acciones de entrada se producen, ni cuando;
2) y que en cada punto de una historia de ejecucin (representada por una traza finita) el
sistema-I/O selecciona la siguiente accin de salida basndose solamente en la informacin
contenida en la traza finita de acciones de entrada y salida sucedidas anteriormente. Sin
embargo, plantea que dicha seleccin puede hacerse de forma no determinista.
Una estrategia del sistema determina qu accin de salida, si la hay, debe ser la siguiente, dependiendo nicamente de la historia previa, garantizando que las decisiones del
sistema no tienen en cuenta las futuras acciones de entrada. De esta manera, Broy establece
28
(I, O, , 0 , R, F)
dnde:
29
(2)
Expresan que el autmata es equitativo con respecto a todas las transiciones silenciosas y de salida.
Para esta definicin de sistema, Broy se apoya en el comportamiento interno del sistema, caracterizado por estados y sus transiciones. Descripciones en esta misma lnea, en
la que se definen un sistema en funcin de sus estados pueden encontrarse en [168], [47],
[48]. Wieringa caracteriza las respuestas de un sistema reactivo en funcin de su estado
actual y de los eventos externos a los que responde, en contraposicin a lo que llama sistemas transformacionales en los que el estado del sistema no depende de entidades externas
[175]. Por otro lado, tambin Jonsson, como Broy, utiliza el concepto de accin silenciosa,
y lo aplica a transiciones silenciosas (silent transitions) correspondientes a etapas internas
de un autmata para modelar la composicin del autmata [91].
2.2.4.2.
Sistemas interactivos
Como se ha indicado anteriormente, Broy tambin entiende los sistemas como interactivos. Plantea que los sistemas interactivos consisten en un conjunto de componentes que
cooperan e intercambian informacin por medio de interacciones [31] [28]. Ejemplos de
sistemas interactivos, en claro crecimiento, son los sistemas compuestos de componentes y
dispositivos electrnicos en la industria del automvil y de la avinica [26] [30] [106]. Los
sistemas software con interfaces definidos, y en especial los servicios software, tambin
comprenden ejemplos de sistemas interactivos.
Broy y Stolen en [31] dentro del contexto de especificacin de sistemas interactivos
definen sistema como una estructura tcnica o sociolgica compuesta de un grupo de
entidades combinadas para formar un todo y trabajar, funcionar o moverse interdependientemente y armoniosamente; las partes que componen un sistema se llaman componentes o
subsistemas, y pueden ser entendidas como sistemas en s mismos, as, los sistemas estn
estructurados jerrquicamente en subsistemas.
Adems indican que uno de los aspectos ms importantes en el modelado de sistemas
31
32
33
transmiten en una nica direccin. La relacin input/output representa la relacin entre los
streams de entrada y los de salida. Por una historia input/output de un componente entienden cualquier pareja de streams input/output en sus relaciones de entrada y salida. A partir
de aqu, expresan la propiedad de que un stream de salida es un prefijo del substream de
elementos de datos en el stream de entrada, y el nmero de mensajes en el stream de salida
es igual al nmero de seales de peticin en el stream de entrada. Esta ltima propiedad
deja patente que los autores representan el comportamiento de lo sistemas como determinista, ya que un sistema con comportamiento no determinista puede ofrecer varias historias
de salida para una misma historia de entrada.
2.2.5. Visin de Wang
Yingxu Wang en el artculo On Abstract Systems and System Algebra [171] presenta
una demostracin de cmo los sistemas se pueden tratar rigurosamente como entidades
matemticas, e introduce el concepto de sistema abstracto y sus modelos matemticos.
Introduce un algebra de sistemas para expresar reglas de composicin y operaciones de
sistemas, tales como conjuncin, diferencia, composicin y descomposicin de sistemas.
Define sistema abstracto como una coleccin de entidades coherentes e interactivas que
tienen funciones estables y lmites claros con el entorno externo, y los clasifica en sistemas
cerrados y sistemas abiertos.
Wang define un sistema cerrado S como una tupla de cuatro elementos:
S = (C, R, B, )
(3)
dnde:
R es un conjunto no vaco de relaciones entre parejas de componentes en el sistema,
R = {r1 , r2 , ..., rn }, R C C.
B es un conjunto de comportamientos (o funciones) del sistema, B = {b1 , b2 , ..., bn }.
Aunque Wang no expresa explcitamente si este comportamiento es determinista o
34
R = Rc Ri Ro
A partir de aqu, define un sistema abierto como una tupla de siete elementos:
S = (C, R, B, , ) = (C, Rc , Ri , Ro , B, , )
(4)
dnde:
es el entorno del sistema S con un conjunto no vaco de componentes C externos
a C.
Rc C C, es un conjunto de relaciones internas.
Ri C C, es un conjunto de relaciones externas de entrada.
Ro C C , es un conjunto de relaciones externas de salida.
La figura 5 muestra la representacin grfica de un sistema abierto, realizada por Wang
[171].
35
ambas cosas. Estas variables corresponden a ciertos fenmenos o cosas percibidas en el entorno. El sistema est compuesto por cierto tipo de hardware y/o software y una serie de
dispositivos o componentes que establecen las relaciones de entrada y salida con el entorno
del sistema. Ciertos dispositivos fsicos incluidos en el sistema convierten los valores de las
variables monitorizadas en entradas al sistema. Del mismo modo, estos dispositivos transforman las salidas del sistema en acciones o valores que modifican las variables controladas
en el entorno del sistema.
El modelo de sistema hardware/software de cuatro variables propuesto por Parnas se
muestra grficamente en la figura 6, adaptada de Heitmeyer [71]. El modelo de cuatro
variables se basa en los siguientes conjuntos de variables y de relaciones:
1. Cuatro conjuntos de variables:
a) Monitorizadas (MON). Variables correspondientes a fenmenos o elementos
situados fuera del sistema (entorno) que son monitorizadas u observadas por el
sistema. Por ejemplo, temperatura del agua en un depsito, presin del aire en
una rueda, velocidad de un vehculo, nmero de plazas libres en un aparcamiento, nmero de accesos a una base de datos, etc. El conjunto de las variables
monitorizadas por un sistema viene determinado por el siguiente vector:
(m1 , m2 , ..., mn ).
b) Controladas (CON). Variables del entorno, que estn fuera del sistema, que son
controladas por el sistema, modificando su estado o valor. Por ejemplo: temperatura del agua de un depsito (al provocar su cambio mediante calentadores),
aceleracin de un vehculo, informacin visualizada en la pantalla de un ordenador, etc. El conjunto de las variables monitorizadas por un sistema viene
determinado por el siguiente vector: (c1 , c2 , ..., c p ).
c) Entrada (INPUT). Variables de entrada a travs de las cuales el sistema (software) percibe las variables monitorizadas. El sistema percibe estas variables de
37
40
forma que garantice para el sistema software, que necesita estados estables para leer sus
entradas y enviar sus salidas, un comportamiento reactivo correcto con respecto al entorno
fsico. El dispositivo de entrada transforma cantidades fsicas continuas, por ejemplo las
medidas tomadas por sensores, en valores discretos de entrada para el software mientras
que el dispositivo de salida transforma valores discretos de salida generados por el software en valores continuos para los actuadores que manipulan procesos fsicos. La figura
7 muestra el modelo de cuatro variables de Parnas y la relacin entre entradas y salidas
(variables monitorizadas y controladas del sistema).
Miller y Tribble [124] propusieron una extensin del modelo original de cuatro variables presentado por Parnas y Madey [136], que intenta clarificar cmo pueden ubicarse los
requisitos del sistema entre el hardware y el software.
En la lnea de Parnas, Sateesh presenta una aproximacin y un lenguaje para modelar
los requisitos de sistemas de tiempo real [146]. Indica que los sistemas de tiempo real se
caracterizan por la existencia de interfaces no triviales entre computadores y su entorno.
Un sistema de tiempo real evoluciona reaccionando a las peticiones que recibe desde el
entorno. Est compuesto por un conjunto de elementos computacionales (que son reactivos por s mismos) junto con varios dispositivos que son monitorizados y controlados.
Considera que un sistema puede ser modelado por medio de secuencias del tipo sensorcontrolador-actuador-operador. La figura 8 representa el modelo de sistema definido por
Sateesh, donde los cambios que ocurren en el entorno se monitorizan por medio de sensores. Estos sensores obtienen informacin de inters para el sistema, como temperatura,
velocidad, presin, etc. La informacin obtenida se procesa mediante controladores para
determinar las acciones a realizar. Y estas acciones se envan a los actuadores que revierten
en el entorno. El operador suele supervisar estas funciones del sistema, y tiene posibilidad
de variar el funcionamiento del sistema.
41
42
Predecir la relacin entre estmulos, entradas al sistema, y respuestas, salidas del sistema, de un sistema requiere definir el comportamiento del sistema. En la seccin anterior
de este captulo se ha dejado patente que el comportamiento de los sistemas puede ser determinista o no determinista. En el primer caso, predecir el comportamiento del sistema en
funcin de sus entradas es factible; pero en el segundo caso no es posible definir, ni predecir
el comportamiento del sistema.
Los investigadores perciben el modelo de interaccin de un sistema desde diferentes
puntos de vista, cada uno con caractersticas especficas, pero complementarias.
2.3.1. Paradigma basado en estados
Las aproximaciones basadas en estados como mquinas de estados, diagramas de estados o autmatas I/O permiten representar las interacciones de un sistema con el exterior. En
este sentido, Campos plantea la interaccin entre sistema y operador en trminos de mquinas de estados [36], incluso en [37] describe una aplicacin basada en este planteamiento
orientada a verificar el comportamiento de la interfaz de usuario. Otros autores entienden
los sistemas complejos como una composicin de autmatas I/O que representan las entradas y salidas con el exterior [112] [97] [91] [39].
Estas aproximaciones basadas en estados se centran en identificar el vocabulario completo de eventos que pueden afectar al objeto, produzcan o no un cambio de estado, y construir una mquina de estados que describa las posibles secuencias de eventos que puedan
producirse en el objeto [105]. As pues, se puede modelar la interaccin del sistema con el
exterior representando los estados y eventos perceptibles desde el exterior.
Sin embargo, estas representaciones no reflejan con claridad el conjunto de operaciones
aceptadas por el sistema, sobre todo cuando el nmero de estados es elevado. Por otro
parte, la aplicacin de tcnicas de verificacin como la comprobacin del modelo (model
checking) conlleva una explosin combinatoria, que tambin limita su uso [19] [144].
43
44
especificar por ejemplo con diagramas de clases de UML, complementando as a los escenarios. Otro de los inconvenientes de los escenarios es que la especificacin del comportamiento se debe sintetizar generalmente desde un nmero alto de escenarios, y los
escenarios individuales deben cubrir todas las posibilidades; esto puede llevar a un gran
nmero de escenarios en aplicaciones complejas, lo que representa una gran dificultad para
sintetizarlos. Algunas aproximaciones como la de Whittle [174] plantean la generacin automtica de diagramas de estados desde los diagramas de secuencia, para generar cdigo a
partir de los diagramas de estados .
En otro orden de cosas, Letier et al. plantean la utilizacin de escenarios de entradasalida, como tcnica para el anlisis temprano de requisitos [108]. Estos escenarios de
entrada-salida se basan en la identificacin de eventos monitorizados y controlados en los
lenguajes de modelado de requisitos [137] [86]. Letier et al. indican que si bien los escenarios permiten reflejar la interaccin del sistema con el exterior, la distincin entre eventos
monitorizados y controlados no es explcita, siendo necesario interpretar la direccin de las
flechas en los diagramas [108].
En definitiva, los escenarios permiten reflejar la interaccin de un sistema con el exterior, pero no permiten reflejar adecuadamente las propiedades monitorizadas y controladas
del sistema involucradas en la interaccin, ni la clasificacin en eventos de monitorizacin y de control. La aproximacin al modelado de las operaciones de un sistema que se
presenta en este trabajo pretende avanzar en esta lnea, reflejando de forma explcita y concisa en el modelo del sistema estos eventos de entrada y salida, as como las propiedades
involucradas.
2.3.3. Paradigma basado en contratos
Las metodologas de diseo basadas en contrato consideran que las interacciones entre
entidades software se basan en ciertas reglas u obligaciones entre ellas a las que denominan
contratos [122]. En el nivel de mtodo o procedimiento, un contrato define las entradas
45
46
de operaciones del sistema lo hacen enfocado a las operaciones sobre clases UML, y no del
sistema en s desde el punto de vista del operador del sistema.
Para Kleppe et al. la definicin de contratos, especialmente con clases UML y expresiones OCL, presenta ciertas limitaciones para especificar por completo el comportamiento de un sistema [99]. Indican que por un lado esta tcnica origina cierto grado de fragmentacin de la descripcin del comportamiento hacindolo ms difcil de entender y mantener que con una descripcin equivalente del comportamiento mediante diagramas. Y que
por otro lado, se refieren a la limitacin para expresar diferentes niveles de abstraccin con
el que se definen los contratos expresados por medio de pre y post-condiciones.
2.3.4. Paradigma basado en servicios
La ingeniera de servicios est creando un nuevo camino de aproximacin entre la ingeniera del software y de sistemas tal y como se presenta en [101]. La computacin orientada a servicios [134] y el desarrollo basado en componentes Component-Based Development (CBD) permiten plantear la interaccin de un sistema en trminos de servicios. Un
modelo orientado a servicios se basa en la idea de representar un sistema como un conjunto de componentes software distribuidos, de manera que las entradas y salidas del sistema
pueden establecerse como servicios provistos y requeridos respectivamente por los componentes que integran el sistema. El modelo de operaciones del sistema propuesto en este
trabajo est en lnea con el planteamiento de servicios en los que se expresan las entradas
y salidas de los diferentes componentes del sistema a modo de operaciones.
La computacin orientada a servicios se est aplicando a una gran variedad de dominios
ya que las nuevas tecnologas favorecen el uso de este nuevo enfoque de desarrollo. Dos
claros ejemplos de aplicacin de la computacin orientada a servicios son los servicios
web [161] [74] y las arquitecturas software orientadas a servicios, Service-Oriented Architectures (SOA) [115] [57] [100]. Los servicios web permiten expresar la interaccin entre
47
componentes por medio de interfaces descritos en Web Service Description Language (WSDL) (www.w3.org/TR/wsdl) a travs de mensajes SOAP (www.w3.org/TR/soap). En SOA
la interaccin del sistema se establece por medio de puertos, que representan servicios,
entre los diferentes componentes que intervienen en la operacin del sistema.
En modelos orientados a objetos donde los componentes se representan como objetos,
para un componente concreto los servicios ofrecidos corresponden a mtodos del objeto,
pero los servicios requeridos por el componente no se pueden representar directamente en
el objeto [103], siendo necesaria la utilizacin de interfaces para identificarlos. En UML
la utilizacin de interfaces asociados a las clases de objetos permite definir tanto los servicios provistos por los objetos (interfaces implementadas) como los requeridos (interfaces
usadas). En modelos de componentes actuales en los que los componentes corresponden a
unidades arquitectnicas, los servicios se representan como puertos (ports). Puertos de
diferentes componentes se pueden unir mediante conectores, representando los servicios
provistos y tambin los requeridos de cada componente. En algunos modelos como UML
y CCM (Corba Component Model) [131] se hace una distincin entre puertos para indicar
servicios provistos y puertos para indicar servicios requeridos [103].
Si bien, estas representaciones de los servicios mediante interfaces y puertos en componentes software permiten expresar el modelo de interaccin del sistema, sin embargo al
definir los servicios se suele incluir no solo los aspectos de interaccin con el exterior, sino
tambin los aspectos de interaccin interna entre los diferentes elementos que componen el
sistema. Uno de los objetivos de este trabajo es precisamente que el modelo de operaciones
de un sistema proporcione ms semntica en la definicin de las interfaces y aporte mayor
claridad al conjunto de stakeholders implicados en la construccin y operacin de sistemas.
2.3.5. Paradigma basado en Interaccin Hombre-Computador (HCI)
Otro de los paradigmas en el modelado de la interaccin de un sistema se basa en el
diseo de la interaccin entre hombre y computador. La interaccin hombre-computador
48
(HCI) ha sido definida por el grupo SIGCHI (Special Interest Group on Computer-Human
Interaction) de ACM (Association for Computing Machinery) como una disciplina interesada en el diseo, evaluacin e implementacin de sistemas informticos interactivos que
utilizan las personas, as como en el estudio de los fenmenos que los rodean [73]. Esta
disciplina combina teora y prctica de un gran nmero de campos incluyendo entre otros
ingeniera industrial, ingeniera del software, psicologa cognitiva y del comportamiento,
antropologa sociologa y ergonoma [153] [172] [66]. Como indica Sutcliffe una misin
fundamental de HCI es la de acercar la psicologa y otras ciencias tales como la sociologa
al diseo de la interaccin con los sistemas [157]. Algunos trabajos se han orientado a
definir modelos de diseo de interaccin que permitan colaborar tanto a diseadores como
a ingenieros HCI [180]. Obrenovic y Starcevic definen una extensin UML para modelar
interacciones hombre-computador multimodales [127]. Esta extensin, compuesta por un
metamodelo y un perfil UML, tiene una orientacin similar a la propuesta en este trabajo,
si bien, se centra en modelar la interaccin en el lado de la interfaz de usuario y no del
sistema.
En definitiva, HCI describe la interaccin entre hombre y computador desde la perspectiva de la utilizacin de las interfaces entre sistema y usuario que posibilitan dicha interaccin. En realidad es una aproximacin complementaria a la nuestra, ya que nuestro
trabajo se centra en describir la interaccin del sistema con el exterior desde el punto de
vista del sistema; y HCI se encarga de describir la interaccin de la persona u operador con
el sistema. Existe un punto de interseccin claro entre ambas aproximaciones, relativa al
frontend de operaciones entre operador y sistema que se plantea en este trabajo, y que
permitir abrir nuevas lneas de actuacin en trabajos futuros.
2.3.6. Paradigma basado en operaciones
La especificacin de las operaciones del sistema es la ltima de las aproximaciones
incluidas como paradigma del modelado de la interaccin de un sistema, y la lnea a seguir
49
en esta tesis.
En el contexto de este trabajo se entiende por operaciones de un sistema al conjunto de
interacciones que se producen entre un operador y el sistema en trminos de entradas y salidas del sistema. Este concepto de operaciones se encuentra en lnea con el planteamiento
de requisito de operacin que figura en el estndar IEEE 610-1990 [75], en el que se entiende que dicho requisito especifica una funcin que el sistema o componentes del sistema
han de ofrecer al exterior.
Algunos autores estudian las operaciones de sistemas desde el punto de vista algebraico,
definiendo operaciones que permiten operar con sistemas de manera abstracta. Wang, por
ejemplo, define un algebra de sistemas que incluye operaciones como conjuncin, diferencia, composicin y descomposicin de sistemas. Tambin Kaynar y Lynch [97] definen
operaciones para autmatas I/O basadas en tiempo, orientadas a la construccin de sistemas
complejos, tal como composicin de autmatas. Este tipo de estudios quedan alejados de
nuestro inters ya que el concepto de operaciones sobre el que se fundamenta este trabajo
es el de la relacin de entradas y salidas entre un operador y el sistema, y no en operaciones
algebraicas sobre sistemas o sobre su esquema.
Otros autores tratan el aspecto de operaciones del sistema en diagramas de clases, pero
lo hacen enfocado a las operaciones sobre las clases UML, tratando operaciones bsicas
sobre el esquema como insercin, borrado y modificacin de objetos [34] [142] [152].
Estos trabajos tambin se alejan de nuestro inters ya que no enfocan las operaciones del
sistema desde el punto de vista del operador del sistema.
Vaishnavi et al. definen una aproximacin que permite el modelado, diseo y desarrollo
de sistemas de soporte a operaciones, sistemas que proporcionan soporte interactivo para
entornos de operaciones complejos [167]. Para ello definen unos tipos de objetos basados en la combinacin de modelos de diseo orientados a objetos y de representacin del
conocimiento, modelos de datos y en general modelos conceptuales. Si bien, manejan el
concepto de operacin, no lo aplican en la misma lnea que en este trabajo, ya que lo hacen
50
para sistemas que facilitan la operacin de entornos complejos, desde un punto de vista
de ingeniera del conocimiento e inteligencia artificial, para determinar dinmicamente el
comportamiento de las operaciones.
El enfoque seguido para especificar las operaciones en sistemas de espacio es cercano al
nuestro en el sentido de que en estos sistemas se hace necesario disponer de un modelo de
operaciones en etapas tempranas del desarrollo [160], dado que una vez en rbita un satlite
no es posible realizar ajustes posteriores. La interaccin se produce entre la estacin de
tierra que enva telecomandos y la nave espacial que enva telemetras a la estacin terrestre.
Esta interaccin se puede modelar en trminos de orientacin a objetos tal y como justifican
Garbajosa et al. en [62]. Por otra parte, resultan interesantes los planteamientos de algunos
autores que plantean que el hardware y software utilizado en sistemas de espacio para
la fase de comprobacin y la de operacin pueden integrarse en el desarrollo del sistema,
compartiendo herramientas comunes [102] [56] [109]. En este sentido, este trabajo presenta
una aproximacin de frontend de operaciones del sistema que sea aplicable tanto en la fase
de validacin como en la de operacin del sistema.
La especificacin del modelo de operaciones del sistema en el que se centra este trabajo,
no busca modelar el comportamiento del sistema, pero s especificar un nivel de interaccin,
expresado mediante una especie de API (Application Program Interface), que permita a los
diferentes stakeholders involucrados operar el sistema, es decir, interactuar con el sistema.
Existe obviamente una relacin entre esta interfaz y el comportamiento. El comportamiento
es el resultado de operar el sistema utilizando esta interfaz. En cierta forma esto est en lnea
con la aproximacin basada en contrato como se presenta en [117]. La aproximacin basada
en operaciones es ligeramente diferente a las explicadas anteriormente, aunque pueden ser
utilizadas en cooperacin.
51
53
defini el formato y contenidos de un concepto de documento de operaciones, llamado ConOps (Concept of Operations), para la definicin de un sistema en la gua
IEEE 1362 Guide for Concept of Operations Document para tecnologa de la informacin [76]. Esta gua proporciona recomendaciones para producir un documento
de operaciones del sistema. Un documento ConOps describe cmo se deben especificar las operaciones, pero no describe las operaciones en s. El documento ConOps
es un documento que describe las caractersticas del sistema desde el punto de vista
de operacin de los usuarios y permite el entendimiento entre el conjunto de los
stakeholders.
Este tipo de documento debe incluir una visin general del sistema y especificar el
conjunto de stakeholders involucrados. De especial inters, es la identificacin de
los usuarios del sistema que interactuarn con el sistema: usuarios operacionales, de
entrada de datos, operadores del sistema, personal de soporte operacional, de mantenimiento del software y formadores. ConOps incluye escenarios operacionales, que
juegan un papel importante para conocer cmo los usuarios pueden operar e interactuar con el sistema. En este sentido el INCOSE System Engineering Handbook
[79], que describe las actividades de los procesos clave a realizar por los ingenieros
de sistemas, propone documentar el concepto de operacin (ConOps) en el proceso
de definicin de requisitos. Tambin la gua Systems Engineering Guidebook for
ITS [35] publicada por el California Departament of Transportation Division of
Research and Innovation incluye la etapa de definicin del concepto de operaciones
del sistema previa a la especificacin de requisitos del sistema, dentro del ciclo de vida de un proyecto ITS (Intelligent Transportation Systems). En esta gua el concepto
de operaciones representa la definicin inicial del sistema
2. ANSI/AIAA G-043-1992 Guide for the Preparation of Operational Concept Documents
54
ANSI public en 1992 la gua ANSI/AIAA para la preparacin de documentos operacionales [12] que describe un proceso debidamente probado para el desarrollo del
concepto operacional. Recomienda cmo recopilar toda la informacin obtenida durante el desarrollo del concepto operacional en uno o ms Operational Concept Documents (OCDs) para ser utilizados durante la definicin, desarrollo, validacin, implementacin, operacin y soporte del sistema.
3. MIL-STD-498
El estndar militar de Estados Unidos MIL-STD-498 Software Development and
Documentation aprobado en diciembre de 1994 contiene el item DI-IPSC-81430
[123] dedicado a describir una serie de instrucciones para preparar el contenido y
formato de documentos de operaciones del sistema, a los que llama OCD (Operational Concept Document). El objetivo de un OCD es servir de consenso a los diferentes stakeholders implicados en el sistema propuesto, describiendo en trminos de
las necesidades del usuario, las relaciones con otros sistemas o procedimientos existentes, y las formas en las que ser usado. En 1998 el DoD (Departament of Defense)
de Estados Unidos adopt el IEEE/EIA 12207 Software Life Cycle Processes en
lugar del estndar MIL-STD-498.
Un ejemplo de documento describiendo el concepto de operaciones para un sistema
concreto del mbito de la avinica se encuentra en [44]. Este documento se realiz conforme a la gua NASAs AvSSP Products CONOPS Guide, que fue desarrollada por la
NASA teniendo en cuenta una variedad de documentos de concepto de operacin publicados por organizaciones estandarizadoras y entidades comerciales. En concreto la gua
sigui principalmente el estndar IEEE 1362 Guide for Concept of Operations Document
[76] con algunas modificaciones para asegurar la aplicabilidad en el desarrollo de productos de aviacin en contraste con el desarrollo de productos software; y en menor medida el
estndar AIAA Guide for the Preparation of Operational Concept Documents [12]. Otro
55
56
del sistema, como entrada para abordar el modelado de las operaciones del sistema.
2.4.2. Lenguajes procedurales de operacin y pruebas
Otro de los aspectos relacionados con las operaciones de un sistema en el mbito de la
ingeniera del software y de sistemas es la relativa a la existencia de lenguajes procedurales
que permitan llevar a cabo las operaciones y pruebas del sistema. En este sentido, dos de los
lenguajes ms representativos, y utilizados como estndares, son PLUTO [55] desarrollado
por European Cooperation for Space Standardization (ECSS) y TTCN-3 [53] desarrollado
por el European Telecommunications Standards Institute (ETSI).
Mullet et al. sealan la conveniencia de definir un lenguaje de operaciones que simplifique las interacciones de los ingenieros de operaciones con el sistema, y plantean una sintaxis comn para interactuar en el entorno de los satlites meteorolgicos europeos [125].
Al analizar los lenguajes de operaciones del sistema tambin se han de incluir aspectos de validacin del sistema, ya que la validacin de sistemas est estrechamente relacionada con la operacin de los mismos. Las pruebas de validacin, especialmente las de
aceptacin, suelen comprender la operacin del sistema en escenarios sobre el sistema real
o sobre simulaciones de ste. En sistemas de espacio por ejemplo, como en el desarrollo de
Galileo realizado por la European Space Agency (ESA), la simulacin y la experimentacin
juegan un papel crtico [181].
A continuacin se presenta por una parte el estndar PLUTO como lenguaje de procedimiento de operaciones y pruebas, y por otra parte el estndar TTCN-3 como lenguaje
orientado al diseo y especificacin de pruebas y de sistemas de pruebas.
2.4.2.1.
En 2006 se public el estndar ECSS-E-70-32A: Space engineering - Test and operations procedure language [55], que identifica los requisitos que debe cumplir cualquier
57
lenguaje utilizado para la definicin de procedimientos de prueba y de operacin en sistemas de espacio. Este estndar tambin define un lenguaje de referencia llamado PLUTO (Procedure Language for Users in Test and Operations) que satisface completamente
estos requisitos. ECSS es un esfuerzo cooperativo de la Agencia Espacial Europea, ESA, de
agencias de espacio nacionales y de asociaciones de la industria europea, con el propsito
de desarrollar y mantener estndares comunes.
El procedimiento es el principal mecanismo empleado por los usuarios finales para
controlar un sistema de espacio primeramente durante la validacin funcional anterior al
lanzamiento y posteriormente, durante la operacin cuando ste ya est en rbita. En el
lenguaje Procedure Language for Users in Test and Operations (PLUTO), la estructura de
un procedimiento comprende las siguientes partes:
Declaracin. Es opcional, y declara los eventos locales que pueden ser lanzados desde
dentro del procedimiento.
Precondiciones. Es opcional, y asegura que el procedimiento se ejecuta si y solo si,
se cumplen las precondiciones.
Cuerpo principal. Es obligatorio y define las metas del procedimiento, y puede componerse a su vez de submetas mediante actividades y etapas. Una actividad es una
funcin que controla y monitoriza el sistema de espacio. La estructura de una etapa
es idntica a la de un procedimiento, salvo que define una submeta y est contenida
en un procedimiento.
Controlador de excepciones (watchdog). Es opcional, y gestiona las contingencias o
excepciones que se produzcan durante la ejecucin del procedimiento.
Confirmacin. Es opcional, y evala si los objetivos del procedimientos se han alcanzado o no.
58
59
estndares [53]: Core Lenguaje, Tabular Presentation Format, Graphical Presentation Format, Operacional Semantics, TTCN3 Runtime Interface (TRI) y TTCN-3 Control Interface
(TCI).
TTCN-3 mantiene una correspondencia casi completa con UML 2 Testing Profile (U2TP)
definido por Object Management Group (OMG) [130]. El perfil U2TP extiende UML 2.0
proporcionando conceptos orientados a sistematizar el desarrollo de especificaciones y modelos de test para pruebas de caja negra [16]. En particular, el perfil introduce conceptos que
cubren: arquitectura de test, comportamiento de test, datos de test y tiempo. Junto con estos
conceptos define un lenguaje de modelado para visualizar, especificar, analizar, construir y
documentar los artefactos de sistemas de test.
Tanto U2TP como TTCN-3 se utilizan para especificar sistemas de test, sin embargo U2TP se aplica en un nivel de abstraccin ms alto que TTCN-3. Los metamodelos
de U2TP y de TTCN-3 se definen como modelos Meta-Object Facility (MOF) [128] de
OMG, lo que facilita la transformacin de modelos U2TP a modelos TTCN-3. Todas las
especificaciones U2TP, con pequeas excepciones, pueden ser representadas y ejecutadas
en plataformas de test TTCN-3 [16]. De esta forma, pueden generarse pruebas automticamente desde modelos U2TP. Sin embargo, esta generacin es semi-automtica porque las
especificaciones U2TP pueden llegar a ser demasiado abstractas [42].
Prcticamente todas las especificaciones de este perfil U2TP, con pequeas excepciones, pueden ser representadas por mdulos TTCN-3 y ejecutados en plataformas de
pruebas definidas a partir de TTCN-3 [178]. Esta correspondencia permite avanzar en la
generacin automtica de soluciones TTCN-3 para pruebas a partir de especificaciones
UML.
El lenguaje TTCN-3 tiene cierta relacin con el trabajo desarrollado en esta tesis, ya
que permite expresar operaciones a realizar sobre el sistema al definir el sistema de pruebas
[7] [8].
60
2.5.
propuesto por OMG. Este enfoque parte de un nico modelo inicial para un proyecto, a
partir del cual, y mediante procesos automatizados en su mayor parte, es posible obtener
cdigo especfico para cada plataforma. Por lo que, desde el punto de vista de MDA las
operaciones del sistema se podran identificar y modelar en el modelo independiente de la
plataforma, Platform-Independent Model (PIM), como parte del modelo de clases de UML.
Las ventajas derivadas de la utilizacin del desarrollo de sistemas dirigido por modelos
han sido expuestas por muchos autores. Schmidt indica que el enfoque MDE proporciona
un marco adecuado para tratar la complejidad creciente de los sistemas y plataformas actuales, permitiendo expresar conceptos de dominio de manera eficiente, y solventando as
las carencias de los lenguajes de tercera generacin [148]. Mellor por su parte plantea que
la aplicacin correcta del desarrollo dirigido por modelos consigue una mejora sustancial
en la productividad y calidad del software [120]. Tambin Selic indica que la ingeniera
del software puede beneficiarse de la utilizacin de modelos y tcnicas de modelado en el
desarrollo de sistemas complejos [150].
Los proponentes del desarrollo dirigido por modelos ven el desarrollo software como
una serie de etapas de modelado, donde cada etapa refina el modelo de la etapa anterior
[99]. Aunque eso s, la transicin desde el anlisis, al diseo de alto nivel, diseo de bajo
nivel, y despus al cdigo tiene que ser soportada por herramientas que faciliten y automaticen gran parte del trabajo. El modelo de operaciones del sistema propuesto en este
trabajo puede utilizarse como conductor del desarrollo de un sistema, especialmente en las
primeras etapas de desarrollo, convirtindose en candidato para ser aplicado en el desarrollo dirigido por modelo. El modelo de operaciones del sistema tambin puede utilizarse
para identificar puntos de vista e intereses (concerns). La identificacin de intereses en modelos de ingeniera de requisitos orientados a aspectos, permite la separacin de intereses
en etapas tempranas del desarrollo, mejorando el proceso de desarrollo globalmente [143].
Esta separacin de aspectos tambin puede tenerse en cuenta en las fases de diseo por
medio de metamodelos y extensiones UML [38] [179].
62
63
Plantean que estos modelos pueden ser actualizados y reutilizados para el mantenimiento
y para realizar una integracin de proyectos ms sencilla, permitiendo automatizacin de
tareas que de otra manera habra que realizar manualmente.
Algunos trabajos tratan la integracin de herramientas mediante la transformacin de
los modelos que se utilizan en el desarrollo del sistema [95] [94] [93] [96]. Ledeczi et al.
plantean que cada una de las herramientas participantes en la integracin disponga de un
modelo del sistema o un aspecto del mismo que permita la participacin y colaboracin de
cada una de ellas en el desarrollo del sistema final [104]. En este sentido, la existencia de
un perfil UML para el modelado de las operaciones del sistema facilitar la integracin del
modelo de operaciones con otros modelos y entre herramientas.
La operacin y la validacin de un sistema estn ntimamente relacionadas en el sentido
de que ambas se fundamentan en el modelo de interaccin del sistema. Y en el caso de
pruebas de aceptacin del sistema se hace necesario el diseo e implementacin previos
del modelo de operaciones del sistema.
En este sentido otro enfoque asociado a MDE, es el relativo a la validacin basada en
modelos, Model-based testing (MTB), que se centra en la utilizacin de modelos de comportamiento para generar automticamente casos de prueba con las secuencias de entradas
y las de salidas esperadas [166] [141] [67]. Si los casos de prueba se generan manualmente,
existe el riesgo de olvidar un caso de prueba importante. La generacin automtica de casos
de prueba basada en modelo, permite reducir este riesgo. Pero para ello se debe disponer
de herramientas que generen de forma automtica casos de prueba a partir del modelo del
sistema a validar System Under Test (SUT) [70].
Cunning y Rozenblit presentan en [40] una aproximacin para la generacin automtica
de casos de prueba partiendo de los requisitos del sistema. Tambin Hahn et al. plantean la
utilizacin de pruebas basadas en modelo, y lo aplican a sistemas reactivos en el mbito del
sector automovilstico [67]. Mantienen que los modelos de comportamiento de un sistema
en desarrollo se pueden ir construyendo incrementalmente, como prototipos, de manera
64
que el modelo resultante sirva como especificacin y al tiempo como base para generar
automticamente los casos de prueba. Este planteamiento est parcialmente en lnea con la
base de nuestro trabajo, dado que la generacin automtica de pruebas de aceptacin del
sistema puede apoyarse en el modelo de operaciones del sistema.
2.6.
Este trabajo se centra en sistemas software o sistemas que incorporen algn tipo de
software. Y en concreto, se consideran nicamente sistemas abiertos, ya que desde el punto de vista de interaccin un sistema cerrado no se relaciona con el exterior [171]. As, se
entiende que el sistema se relaciona con su propio entorno y adems, permite interacciones
desde el exterior del sistema. Por otra parte, el sistema se observar como una caja negra,
siendo visibles nicamente el conjunto de acciones de entrada que admita y el conjunto de
salidas que genere. Esta visin viene determinada porque desde el punto de vista de operacin no se analizar cmo se produce el comportamiento sino cules son sus efectos. De
esta manera se puede definir el comportamiento de un sistema en funcin de las interfaces
con el exterior, servicios que ofrece y servicios que demanda.
Una clasificacin tradicional de sistemas es la que se basa en el tipo de comportamiento
que siguen al relacionarse con su entorno, distinguiendo en sistemas reactivos y sistemas
interactivos. Un sistema puede entenderse como reactivo [24] [139] [69] [168] ya que el
sistema responde o reacciona ante ciertos estmulos que le llegan desde el entorno (peticiones o cambios producidos) mientras que el entorno observa los resultados o respuestas
que genera el sistema ante esos estmulos. Y al mismo tiempo, tambin puede entenderse
como interactivo, ya que se producen interacciones entre el sistema y su entorno [31] [1]
[171].
Los sistemas deben satisfacer el conjunto de requisitos para los que son diseados y
construidos. Los requisitos tienen que reflejar la estructura y comportamiento esperados
del sistema, as como la interfaz que permita la interaccin con el exterior. La interfaz
65
66
Este planteamiento realizado por Broy ms bien parece una simplificacin para hacer viable el modelado de estos sistemas, limitando la complejidad del modelo. En
este trabajo se considera que es extremadamente restrictiva, ya que impide modelar
el comportamiento en situaciones en la que ciertos streams de salida no correspondan directamente a un stream de entrada concreto. Por ejemplo, algunas respuestas
del sistema sern funcin de un nico estmulo (entrada) a un elemento del sistema,
pero otras sern funcin de varios estmulos a uno o varios elementos del sistema a lo
largo del tiempo, y de las diferentes reacciones o comportamientos que pueda tener
el sistema. En lnea con los planteamientos de Dalal [43], se entender que el comportamiento interno del sistema puede determinar la generacin y envo de streams
de salida que no obedezcan a un entrada particular, sino a un conjunto de entradas a
lo largo del tiempo. As, el nivel de complejidad del modelo crecer con el nmero
de variables involucradas, como es el caso del nmero de entradas al sistema.
Otra aproximacin basada en las entradas y salidas del sistema es la aportada por
Wang [171]. Esta definicin contempla los sistemas como interactivos en los que
se producen conjuntos de relaciones internas entre los componentes del sistema, y
conjuntos de relaciones de entrada y salida entre los componentes y el entorno. Esta
definicin matemtica de Wang se ha tomado como punto de partida para enunciar la
definicin de sistema que se presenta en este trabajo. Se toma como base la existencia
de un conjunto de elementos interconectados relacionados con el entorno mediante
entradas y salidas, y se excluyen las relaciones internas entre los elementos no observables desde el exterior. Esta definicin de Wang incluye todas las relaciones entre los componentes del sistema, incluidas las relaciones internas entre ellos, cuando
desde el punto de vista de operacin, sern de inters nicamente aquellas relaciones
que sean observables desde el exterior del sistema. El comportamiento de los elementos que tambin incluye esta definicin no es de inters en el planteamiento de
este trabajo.
67
69
esta manera. Realmente una excesiva simplificacin puede conllevar ignorar caractersticas
esenciales y, como resultado, la funcionalidad y confiabilidad del sistema pueden quedar
por debajo del mnimo requerido. Por lo tanto las aproximaciones al modelo son necesarias
para poder abordar la complejidad existente.
Predecir la relacin entre estmulos (entradas al sistema) y respuestas (salidas del sistema) de un sistema requiere definir el comportamiento del sistema. En este captulo se ha
dejado patente que el comportamiento de los sistemas puede ser determinista o no determinista. En el primer caso, predecir el comportamiento del sistema en funcin de sus entradas
es factible; pero en el segundo caso no es posible definir, ni predecir el comportamiento del
sistema.
El funcionamiento real de muchos sistemas lleva a situaciones no deterministas, porque
an con sistemas basados en modelos deterministas no es posible modelar el comportamiento para un nmero 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 funcin de sus entradas y salidas, por lo que
se har una abstraccin de la problemtica asociada al determinismo o no determinismo
del comportamiento de los sistemas. As pues, como ya se ha dicho, este trabajo no tiene
como objetivo profundizar en el comportamiento interno de un sistema o de elementos
individuales de ste, si no en las interacciones posibles entre un sistema y un medio externo de operacin del mismo. Se centrar en determinar cmo interactuar con el sistema,
definiendo un modelo de interaccin del sistema.
Los investigadores perciben el modelo de interaccin desde diferentes puntos de vista,
cada uno con caractersticas especficas, pero complementarias. Se ha hecho a aquellos
paradigmas algunos de ellos:
La interaccin del sistema con el exterior puede modelarse en forma de estados del
sistema, por ejemplo con mquinas de estados o diagramas de estados [36] [37]. Se
identifican los estados posibles del sistema y las posibles secuencias de eventos que
70
71
de operaciones del sistema, aporta mayor claridad y semntica al modelo de operaciones del sistema.
La interaccin hombre-computador (HCI) plantea la interaccin desde el punto de
vista de la persona o usuario. Esta aproximacin se centra en las interfaces que posibilitan la interaccin con el sistema contemplando varias disciplinas que tienen que
ver con aspectos del comportamiento del ser humano al utilizar las mquinas. El nfasis se pone en las interfaces que manejan las personas y no tanto en los sistemas en
s. En este sentido, no se centra en la interaccin del sistema hacia el exterior, sino
del operador hacia el sistema, y ms concretamente en el manejo de las interfaces de
los sistemas.
La especificacin del modelo de operaciones del sistema es la ltima de las aproximaciones planteadas, y la lnea a seguir en el trabajo. La especificacin del modelo
de operaciones del sistema no busca modelar este comportamiento, pero s especificar un nivel de interaccin, mediante una especie de API (Application Program
Interface) que permita a los stakeholders operar el sistema, es decir, interactuar con
el sistema; hay obviamente una relacin entre esta interfaz y el comportamiento. El
comportamiento es el resultado de operar el sistema utilizando esta interfaz. En cierta
forma esto est en lnea con el concepto basado en contrato (contract-based) como
se presenta en [117]. La aproximacin basada en el modelo de operaciones es ligeramente diferente a las explicadas anteriormente, aunque todas ellas pueden utilizarse
en cooperacin.
La especificacin de requisitos de operacin del sistema juega un papel muy importante
dentro del ciclo de vida software. Se han analizado una serie de estndares publicados
en el rea de la ingeniera del software que tratan especficamente las operaciones de un
sistema, bien proporcionando guas y plantillas para definir documentos de operaciones,
bien definiendo lenguajes procedimentales para la operacin y validacin de sistemas.
72
73
74
Captulo III
CONCEPTUALIZACIN DE SISTEMA OPERABLE
75
3.1. Introduccin
El objetivo de este captulo es presentar los sistemas operables como sistemas que interaccionan por un lado con su propio entorno, y por otro lado con sistemas o aplicaciones
externas a las que denominaremos frontend de operaciones de un sistema. El contenido de
este captulo incluye una serie de definiciones que permiten abordar el concepto y especificacin de un modelo de interaccin entre sistema y operador.
Para proporcionar una definicin de sistema acorde con el objetivo de esta tesis de
especificar las operaciones entre operador y sistema, se han combinado algunas caractersticas de las definiciones de sistema analizadas en el captulo anterior.
As, para definir nuestro propio concepto de sistema se han tomado como entradas caractersticas de las definiciones de sistema realizadas por Broy, Wang y Parnas entre otras.
A partir de estas entradas se ha ido aplicando nuestro propio proceso de conceptualizacin,
elaborando una serie de definiciones propias. En la primera parte del captulo se presentan
una serie de definiciones relativas a sistema y entorno, incluyendo las interacciones que
se producen entre ambos, elemento de un sistema y sistema como conjunto de elementos interconectados. En la segunda parte se introduce el concepto de sistema operable y
de frontend de operaciones de un sistema, definiendo as mismo las interacciones que se
producen entre ambos.
(5)
dnde:
I: representa el conjunto de entradas al sistema.
S : corresponde al conjunto de todos los posibles estados que pueda alcanzar el sistema. Consideramos que el sistema tiene propiedades perceptibles desde el exterior
del sistema P p , y propiedades o variables imperceptibles desde el exterior, V i . El conjunto de estados del sistema vendr dado por todos los posibles valores que puedan
tomar tanto las propiedades perceptibles del sistema P p , como las propiedades imperceptibles V i .
As expresamos S como:
S = Pp V i
B: representa la funcin de transicin de estados o comportamiento del sistema, B :
S (I {}) P(S ). El comportamiento B = B p Bi comprende:
1. El comportamiento perceptible B p desde el exterior del sistema, que afecta a las
propiedades perceptibles P p del sistema.
2. Y el comportamiento imperceptible Bi que afecta a variables V i del sistema, no
perceptibles desde el exterior.
La complejidad del sistema aumenta cuanto mayor sea el nmero de variables V i no
perceptibles desde el exterior, dado que tambin aumenta la parte del comportamiento del sistema no perceptible. Si V i = nos encontramos con un caso ideal, ya que el
77
puede llegar a ser muy grande, y en consecuencia el nmero de estados posibles del
sistema.
2. El nmero n de entradas al sistema que participan en la transicin de estados en el
sistema puede llegar a ser muy grande. Adems, el sistema no ejerce control sobre el
nmero ni el momento en el que le llegan las entradas desde el entorno.
Dada la complejidad inherente al comportamiento de los sistemas complejos, y que por
otra parte centraremos el modelo de interaccin de un sistema en sus entradas y salidas, de
un elemento del sistema nos interesar:
a) el conjunto de entradas que pueda recibir y aceptar,
b) el conjunto de salidas que pueda generar,
c) las variables perceptibles en el sistema.
As, veremos un sistema como una caja negra, de manera que sean conocidas sus posibles entradas y salidas, no siendo de inters su comportamiento interno.
3.2.2. Relacin entre sistema y entorno
Se consideran las dos siguientes hiptesis relativas a un sistema:
Hiptesis 1 El sistema tiene capacidad de comunicarse con su exterior. En este sentido consideraremos que el sistema es abierto, en lnea con la definicin de sistema
abierto dada por Wang [171]. Al considerar que un sistema es abierto, sern relevantes tanto el sistema en s mismo, como el entorno con el que interacta.
Hiptesis 2 El sistema puede estar compuesto a su vez de subsistemas o elementos
inter-relacionados entre s.
En la seccin 2.2 del captulo anterior correspondiente al Estado del Arte se han analizado diferentes definiciones y percepciones de sistema, concluyendo con la existencia de una
79
serie de caractersticas comunes a todas ellas. De acuerdo con las definiciones de sistema
analizadas dadas por Wang [171], Bunge [32], Jackson [87], Parnas [136], Ghezzi [65],
Broy [24] y Drusinsky[50], en el contexto de este trabajo entenderemos que un sistema
satisface al menos las siguientes caractersticas:
1. El sistema estar compuesto por uno o ms componentes o subsistemas que podrn
estar inter-relacionados entre s.
2. El sistema ser accesible mediante algn tipo de interfaz, normalmente de tipo software, que acepte ciertas entradas y genere cierto tipo de salidas.
3. Finalidad del conjunto, todo sistema cumple una funcin concreta.
Tomando como punto de partida las caractersticas enunciadas, realizamos una primera
definicin de sistema:
Definicin 1 (Definicin inicial de Sistema)
Definimos Sistema como un conjunto de elementos inter-relacionados e interconectados,
que tienen una funcionalidad como conjunto que estar perfectamente identificada, y que
actan como un todo, y abierto en el sentido de comunicarse con el exterior. Un sistema
puede estar compuesto a su vez de otros sistemas o subsistemas.
La definicin anterior incluye la capacidad de un sistema de comunicarse con el exterior. La figura 9 muestra esta capacidad de interaccin, en la que se han ubicado sensores
y actuadores como medios para establecer la comunicacin entre el sistema y su exterior,
al que denominaremos entorno del sistema. Los sensores captan las entradas, denominadas
inputses , provenientes del entorno y los actuadores envan al entorno las salidas, denominadas outputs se , generadas por el sistema.
Definiremos a continuacin entorno de un sistema, basndonos en definiciones realizadas por Jackson [87], Parnas [136] y Staeesh [146] .
80
Figura 10: Modelo de sistema de cuatro variables (basado en Heitmeyer [72] y Sateesh
[146])
82
83
El sensor asociado a una variable del entorno que est siendo monitorizada por el
sistema detecta un cambio de estado en la variable, o bien captura su valor actual. Con
el valor de entrada obtenido del entorno el sensor genera la entrada correspondiente
al sistema, actualizando el valor de la propiedad monitorizada correspondiente en el
sistema.
El comportamiento del sistema determina el cambio de estado de una propiedad del
sistema correspondiente a una variable del entorno que est siendo controlada por
el sistema, y mediante el dispositivo de salida correspondiente propaga el cambio al
entorno.
3.2.3. Punto de vista de las operaciones
El proceso de operacin de un sistema constituye la etapa del ciclo de vida de un sistema
en la que usuarios u operadores del sistema lo utilizan conforme a los requisitos para los
que fue construido. Las operaciones del sistema constituyen una parte esencial del conocimiento relacionado con un sistema. El estndar IEEE 1471 - IEEE Recommended Practice
Architectural Description of Software-Intensive Systems [78], define punto de vista como
una especificacin de reglas para construir una vista del sistema que comprenda una serie
de aspectos de stakeholders. Consideramos por tanto interesante enfocar la definicin de
un sistema incluyendo el punto de vista de operaciones del mismo.
Estndares en ingeniera de software y sistemas como ISO/IEC 15288, Systems engineering - System life cycle processes. [83] e ISO/IEC 12207, Standard for Information
Technology - Software Lifecycle Processes [82] definen operador como una entidad (individuo u organizacin) que realiza la operacin del sistema. Para estos estndares el rol
de operador y el rol de usuario pueden ser asumidos, simultneamente o secuencialmente
por el mismo individuo u organizacin. En el contexto de este trabajo nos centraremos en
el rol de operador tal como se define a continuacin.
85
3.2.3.1.
Operador
Definicin 4 (Operador)
Llamaremos Operador a cualquier persona, dispositivo fsico o programa software con
capacidad de interaccin con un sistema. Para un sistema dado, pueden existir diferentes
roles de operador: entrada de datos, operacin del sistema, pruebas, etc.
87
3.2.3.2.
Interfaz de operacin
88
89
OS = (A, R)
dnde:
Objeto: es una abstraccin de una entidad externa y/o un concepto interno.
Atributo: es un sub-objeto utilizado para denotar propiedades y caractersticas de un
objeto.
Relacin: es una conexin o inter-relacin entre cualquier pareja objeto-objeto, objetoatributo y atributo-atributo.
Siguiendo los aspectos tanto de arquitectura como de comportamiento de un sistema
[171], definiremos formalmente elemento de un sistema como sigue:
Definicin 6 (Elemento de un Sistema)
Definimos elemento de un sistema, denotado por E, como la siguiente tupla formada por
cinco elementos:
E = (, Pe , BE , I e , Oe )
(6)
dnde:
: entorno del sistema, con un conjunto no vaco de componentes C externos al
sistema, en los que se encuentran las variables monitorizadas y/o controladas por el
elemento del sistema. De acuerdo al modelo de sistema de cuatro variables [136]
clasificamos estas variables en tres conjuntos disjuntos entre s:
V m : conjunto de variables fsicas del entorno monitorizadas por el elemento del
sistema, V m = {vm1 , vm2 , ..., vmn }.
90
Tales que:
a. (Pm Pc Pmc ) =
b. Pe = (Pm Pc Pmc ) ,
BE : comportamiento del elemento del sistema. Distinguiremos dos tipos de comportamiento:
BEp : comportamiento del elemento del sistema que es perceptible desde el exterior. Este tipo de comportamiento conlleva cambios en variables (propiedades)
que son monitorizadas por el elemento del sistema y por tanto observables por
el operador.
91
variables del entorno que estn siendo monitorizadas por el elemento del sistema. Las
entradas al elemento del sistema pueden estar relacionadas nicamente con variables
del entorno monitorizadas o bien monitorizadas/controladas, esto es:
m
mc
(ies
j , pk ), pk {P P }
93
94
S = (, S E, RE , PR , I e , Oe , , BS )
(7)
dnde:
: entorno del sistema con un conjunto no vaco de componentes C externos al
sistema, en los que se encuentran las variables monitorizadas y/o controladas por el
sistema: V m , V c , V mc .
SE: conjunto no vaco de elementos que componen el sistema SE = {E1 , E2 ,..., En } ,
. La definicin 6 (pgina 90) de elemento de un sistema E, comprende el conjunto
de las propiedades de un elemento del sistema Ei perceptibles desde el exterior:
PeEi = {PmEi PcEi Pmc
Ei } ,
El conjunto de propiedades del sistema perceptibles desde el exterior PeS , comprende
las propiedades perceptibles de los n elementos que componen el sistema:
PeS = {PmS PcS Pmc
S } ,
dnde:
1. PmS =
Sn
PmEi
2. PcS =
Sn
PcEi
i=1
3. Pmc
S =
i=1
Sn
i=1
Pmc
Ei
96
(8)
Sn
i=1
BEp i
97
2. BiS =
Sn
i=1
BiEi
Como se ha indicado en el apartado anterior este trabajo no trata de modelar el comportamiento de los elementos del sistema, sino de poder expresar las interacciones
de un sistema por medio de sus entradas y salidas. El razonamiento expuesto sobre
el comportamiento de un elemento de un sistema BE respecto al determinismo o no
determinismo y la complejidad de predecir los cambios de estado, tambin es aplicable a un sistema con elementos interconectados. De hecho en este tipo de sistemas
en los que existen varios elementos interactuando al mismo tiempo entre ellos y con
el entorno, aumenta la dificultad para predecir el estado del sistema, dado que el siguiente estado del sistema ser funcin de los estados anteriores de cada uno de los
elementos que componen el sistema y de las entradas que reciban del entorno. El estado t + 1 de un sistema compuesto de n elementos puede expresarse de la siguiente
manera:
E
S t+1 = f ({S tE1 , S tE2 , ..., S tEn }, {iet1 , iet2 , ietm }), , S ti j = PeE j VEi j , ti 5 t
(9)
Por lo que el nmero de entradas y variables que conforman el estado del sistema
puede llegar a ser muy elevado, incluso del orden de millones de entradas y valores,
para modelar el siguiente estado del sistema.
Esta definicin de sistema, aade a la definicin de elemento del sistema E enunciada
anteriormente, los conjuntos: SE, RE , PR y . Los conjuntos RE y se han adaptado de
la definicin de sistema de Wang [171]. Adems, en esta definicin los conjuntos I e , Oe
y BS no afectan a cada elemento del sistema individualmente, sino que afectan al sistema
en su conjunto. Por otra parte, el conjunto PR define las propiedades de cada elemento que
posibilitan la relacin inter-elementos.
Teniendo en cuenta la definicin anterior, la figura 16 representa un metamodelo basado
en UML, correspondiente a la parte de un sistema compuesto de elementos inter-relacionados
que percibe un operador o usuario del sistema. La clase E define un elemento del sistema
98
3.3.
S o = (S , I f , O f )
dnde:
S: sistema compuesto de elementos inter-relacionados, conforme a la expresin 7 ya
vista en la pgina 96. Cada elemento del sistema dispone de una interfaz que permite
interacciones con medios externos al sistema.
I f : conjunto de entradas I f = {IEf 1 , IEf 2 , ..., IEf n } aceptadas por los elementos del sistema, enviadas por el operador desde un medio externo al sistema. Dnde:
S OF = (S o , I o , Oo )
dnde:
1. S o : sistema con elementos inter-relacionados sobre el que interacta SOF, aceptando
entradas u operaciones y generando salidas.
2. I o : conjunto de entradas I o = {Ieo1 , Ieo2 , ..., Ieon }, con origen el operador que son aceptadas por el frontend de operaciones para interactuar con el sistema. El frontend de
operaciones a partir de una entrada ioj enva una entrada i fj al sistema.
3. Oo : conjunto de salidas Oo = {Ooe1 , Ooe2 , ..., Ooen } generadas por el frontend de operaciones para ser presentadas al operador. El frontend de operaciones a partir de una
salida o fj recibida del sistema, genera una salida ooj al operador.
Para un sistema dado, pueden coexistir diferentes aplicaciones operacionales o frontends, e incluso diferentes roles de operacin, por ejemplo rol de operador bsico, de operador administrador y de ingeniero de pruebas, con capacidades de operacin y puntos de
vista del sistema diferentes.
Un frontend de operaciones de un sistema resulta de utilidad en los dos casos siguientes:
101
103
d. Enviar operaciones a los elementos del sistema y recibir las respuestas producidas.
e. Recibir informacin sobre ciertos eventos asociados a cambios de estado en los elementos del sistema.
El frontend de operaciones proporcionar al operador:
1. Por una parte, una representacin lgica del sistema en la que queden claramente
identificados el conjunto de los elementos que componen el sistema y de las relaciones existentes entre ellos. Ambos conjuntos corresponden con los componentes
SE y RE respectivamente, que figuran en la definicin 7 (pgina 96) de sistema con
elementos inter-relacionados
2. Y por otra parte, tiene que implementar el mecanismo necesario para el envo de
operaciones al sistema y la recepcin de respuestas a stas, as como, el conocimiento
de los eventos internos que se produzcan en los elementos y sean de inters desde el
punto de vista de operacin. Esto es, el conocimiento de las entradas I o y salidas Oo
que permiten la operacin del sistema mediante el frontend de operaciones.
3.3.3. Interacciones de un sistema desde el punto de vista de operaciones
El punto de vista de operaciones de un sistema incluye por tanto la interaccin del
sistema con su entorno, y la interaccin entre el sistema y el frontend de operaciones.
Adems, existe tambin una interaccin entre el operador y el frontend de operaciones.
As, tal y como se muestra en la figura 19, identificamos las siguientes interacciones desde
el punto de vista de operaciones del sistema:
1. Interaccin entre un sistema y su entorno.
2. Interaccin entre el operador y el frontend de operaciones.
3. Interaccin entre el sistema y un frontend de operaciones del sistema.
104
3.3.3.1.
Interaccin Sistema-Entorno
106
individuales de ste, sino las interacciones posibles entre un sistema y un frontend de operaciones del mismo. Nos centraremos en determinar cmo interactuar con el sistema desde
el frontend de operaciones, definiendo un modelo concreto al que llamaremos modelo de
operaciones y que ser definido en el captulo siguiente.
La interaccin entre un frontend de operaciones y el sistema ser factible siempre y
cuando se den las circunstancias siguientes:
1. Cada elemento del sistema implemente una interfaz con las operaciones de entrada
admitidas. El frontend de operaciones har uso de dicha interfaz para enviar operaciones al elemento del sistema.
2. El frontend de operaciones implemente una interfaz que acepte operaciones desde el
frontend de operaciones. El sistema har uso de dicha interfaz para enviar las salidas
que genere al frontend de operaciones.
3. Exista algn tipo de conexin o lnea de comunicacin entre el frontend de operaciones y cada uno de los elementos del sistema que posibilite la interaccin entre
ellos.
Llamaremos interfaz de operaciones al interfaz implementado por el sistema, e interfaz del frontend al interfaz implementado por el frontend de operaciones. Ambos tipos de
interfaces tendrn una funcionalidad similar a la de una API (Application Programming
Interface). La figura 20 representa la relacin entre el frontend de operaciones y el sistema,
por medio de sus interfaces. En el frontend de operaciones se han representado a modo de
ejemplo dos tipos de operadores diferentes operando con el sistema, operador e ingeniero
de pruebas.
Consideramos que un frontend de operaciones puede establecer distinciones de roles:
operador, ingeniero de pruebas, administrador, etc. De esta manera el comportamiento del
entorno ser diferente por ejemplo para un usuario con rol de operador que para un usuario
con rol de ingeniero de pruebas. Esta diferenciacin del comportamiento del frontend de
108
3.4.
Este captulo plantea una conceptualizacin de sistema operable que permite centrar
la propuesta de modelo de operaciones del sistema presentada en esta tesis. Un sistema se
entiende como abierto en el sentido de permitir interaccin con el exterior, y compuesto
de elementos que inter-relacionan entre s. Se han realizado una serie de definiciones conducentes a la conceptualizacin de sistema operable: sistema, entorno de un sistema, interaccin sistema-entorno, operador, interfaz de operacin, elemento de un sistema, sistema
compuesto de elementos inter-conectados, y finalmente sistema operable y frontend de operaciones. Estas dos ltimas definiciones proporcionan el marco adecuado para plantear el
modelo de operaciones de un sistema.
Entre el sistema, sistema operable, y el frontend de operaciones se han definido una
109
110
Captulo IV
MODELO DE OPERACIONES DE UN SISTEMA
111
4.1. Introduccin
La utilizacin de modelos es una de las prcticas ms habituales para realizar el anlisis
y desarrollo de sistemas. El modelado se considera de gran ayuda a los ingenieros que
deben afrontar desarrollos de software cada vez ms complejos, permitindoles trabajar en
altos niveles de abstraccin [99].
La interaccin entre sistema y frontend de operaciones se puede modelar. El modelo
de operaciones de un sistema permitir definir el conjunto de interacciones entre sistema y
operador. Esta interaccin incluir las entradas al sistema enviadas por un operador desde
el frontend de operaciones, y las salidas producidas por el sistema y enviadas al frontend
de operaciones. El modelo de operaciones de un sistema aportar informacin respecto
de las operaciones de un sistema, y podr ser utilizado como elemento destacado en el
proceso de desarrollo. Adems como valor aadido, tambin facilitar informacin til para
especificar e implementar un frontend de operaciones de dominio especfico que permita a
los operadores interactuar con el sistema.
Basndonos en las definiciones realizadas en el captulo anterior, nuestro enfoque considera que el punto de vista de operaciones de un sistema contempla la siguiente informacin del sistema:
1. Conjunto perceptible de elementos interconectados que componen el sistema, con
capacidad de interaccin externa al sistema, definido por el conjunto SE.
2. Lista de propiedades perceptibles de cada elemento, definidas por el conjunto Pe .
3. Relaciones perceptibles entre el conjunto de elementos interconectados que componen el sistema, definidas por el conjunto RE .
4. Conjunto de entradas I f que puede aceptar el sistema, enviadas por el operador desde
el frontend de operaciones, as como las respuestas que pueda retornar el sistema al
frontend. Estas entradas incluirn las operaciones realizables sobre las propiedades
112
113
MOS = (I O)
(10)
Las entradas y salidas del sistema en la interaccin con el frontend de operaciones han
sido definidas en el captulo anterior como I f y O f respectivamente (pgina 100 ), por lo
que:
MOS = (I O) = (I f O f )
Las entradas estn compuestas a su vez de comandos de operacin C y de entradas no
aceptadas U:
I = (C U)
Y las salidas se componen de respuestas R, notificaciones N y alarmas A:
O = (R N A)
Cuando el sistema reciba un comando concreto desde el frontend de operaciones, salvo error, responder con una respuesta concreta a ese comando. En ocasiones el sistema
114
MOS = (C R N A)
(11)
El conjunto de entradas U, no forma parte del modelo de operaciones dado que son
entradas no reconocidas por el sistema, como se ver seguidamente.
A continuacin se describen cada una de las entradas y salidas que figuran en la definicin anterior de modelo de operaciones de un sistema:
1. Comandos de operacin, C = {c1 , c2 , ...cn }
Entradas correspondientes a comandos de operacin establecidos previamente entre
el sistema y el frontend de operaciones por medio de algn tipo de lenguaje y protocolo. Esto es, el sistema implementa una interfaz de operacin con los comandos
que admite para interactuar con el frontend de operaciones. Un operador desde el
frontend de operaciones enviar una operacin al sistema y el sistema devolver la
respuesta correspondiente despus de llevar a cabo la operacin. La respuesta remitida por el sistema al frontend de operaciones corresponde a uno de los tipos de salidas
del sistema pertenecientes al conjunto R.
2. Entradas no aceptadas (unaccepted), U = {u1 , u2 , ...un }
Existe otro conjunto de entradas al sistema correspondiente a entradas no aceptadas o
no reconocidas por el sistema. Una entrada no aceptada es un comando de operacin
no contemplado en la interfaz de operaciones del sistema o bien que contiene algn
tipo de error. Estas entradas no aportan nada en el modelado de operaciones del
sistema por lo que no sern tenidas en cuenta.
115
por un operador. Esta parte incluye, las propiedades perceptibles, las entradas y las
salidas de los elementos del sistema perceptibles por el operador, as como las relaciones perceptibles entre estos elementos. La vista de caja traslcida de un sistema
se ha definido en el captulo anterior, pgina 94.
Frontend de operaciones
Representa al conjunto de las aplicaciones externas que permiten la operacin del
sistema. Los operadores interactan con el sistema enviando acciones de entrada
y recibiendo acciones de salida de ste. El frontend de operaciones normalmente
diferenciar varios tipos de operadores o roles, a la hora de operar el sistema, por
ejemplo el tipo operador y el tipo ingeniero de pruebas. Estos dos tipos de operadores
utilizarn el frontend de operaciones, el primero durante las fases de desarrollo y
operacin del sistema, y el segundo durante la fase de validacin del mismo. Cada
rol puede tener asociado una vista del sistema y un conjunto de entradas y salidas
determinados.
120
Por medio del frontend de operaciones del sistema un ingeniero de pruebas puede validar un sistema ejecutando pruebas de aceptacin compuestas de comandos de operacin sobre el sistema y observando/analizando los resultados obtenidos. Adems,
el frontend de operaciones podra almacenar los resultados de ejecucin de las pruebas, de manera que una evaluacin posterior de los mismos, permitiese determinar el
cumplimiento o no de los requisitos del sistema.
4.4.
121
requisitos tcnicos para el diseo y desarrollo de la solucin a ser implementada. El documento FS contiene una primera aproximacin al conjunto de requisitos tcnicos del producto, y el documento TS es la referencia tcnica para la aceptacin del producto final.
Los diferentes tipos de requisitos tcnicos que incluye el estndar ECSS en el documento FS y en el TS son los siguientes:
Requisitos funcionales. Definen funciones que debe realizar el producto, para conformar las necesidades y requisitos del usuario.
Requisitos de la misin. Requisitos relacionados con una tarea, una funcin o una
accin realizada por el producto.
Requisitos de interfaz. Requisitos relacionados con las caractersticas de interconexin o relaciones entre el producto y otros elementos.
Requisitos de entorno. Requisitos relacionados con un producto o el entorno del sistema durante su ciclo de vida. Esto incluye los entornos naturales (en sistemas de espacio, por ejemplo, interacciones de planetas, espacio libre) y los entornos inducidos
(en espacio, por ejemplo, radiacin, electromagnetismo, calor, vibracin y contaminacin).
Requisitos fsicos. Establecen las condiciones lmite para asegurar compatibilidad
fsica, y que no estn definidas por los requisitos de interface, requisitos de diseo y
construccin, o figuras referenciadas.
Requisitos operacionales. Requisitos relativos a la operatividad del sistema. Esto incluye perfiles operacionales, el entorno de utilizacin y eventos a los que debe responder (autonoma, control y contingencia) para cada perfil operacional. Por ejemplo: el producto debe ser diseado para aceptar control de la funcin de visin desde
el segmento de tierra.
122
del sistema, y todas las funciones realizadas por el sistema en respuesta a una entrada o
como soporte a una salida. Organiza los requisitos especficos en los siguientes grupos:
Interfaces externos. Proporcionan una descripcin detallada de todas las entradas y
salidas del sistema.
Funciones. Los requisitos funcionales definen las acciones que deben tener lugar en
el sistema para aceptar y procesar las entradas y para procesar y generar las salidas.
Requisitos de rendimiento. Especifican los requisitos numricos estticos y dinmicos en el software o en la interaccin humana con el software.
Requisitos lgicos de base de datos. Requisitos lgicos de toda la informacin a
almacenar en la base de datos.
Restricciones de diseo. Especifican restricciones de diseo impuestas por otros estndares, limitaciones hardware, etc.
Conformidad con estndares.
Atributos del sistema software: fiabilidad, disponibilidad, seguridad, mantenibilidad
y portabilidad.
Este estndar tambin establece diferentes formas de organizar (expresadas en forma de
plantillas de documento) los requisitos especficos anteriores en funcin de: modo de operacin del sistema (por ejemplo: funcionamiento normal, funcionamiento en modo pruebas,
etc.), tipos de usuario diferentes (con distintas funciones), etc.
desde un principio las necesidades y expectativas de los usuarios que utilizarn el sistema.
Esto llev a IEEE a definir el estndar 1362 [76] como gua que ayudase a definir un documento de operaciones, al que llam ConOps (Concept of Operations). Otros estndares
como ANSI/AIAA G-043-1992 [12] y MIL-STD-498 [123] tambin proponen la definicin de documentos de operacin equivalentes, al que llaman OCD (Operational Concept
Document).
Un documento ConOps describe cmo especificar las operaciones, pero no las operaciones en s. El documento debe incluir una visin general del sistema y especificar
el conjunto de stakeholders involucrados. De especial inters, es la identificacin de los
usuarios del sistema que interactuarn con el sistema: usuarios operacionales, de entrada
de datos, operadores del sistema, personal de soporte operacional, de mantenimiento del
software y formador. Un documento ConOps no ha de incluir especificaciones de diseo,
pero s ha de incluir escenarios operacionales, que juegan un papel importante para conocer
cmo los usuarios pueden operar e interactuar con el sistema. El INCOSE System Engineering Handbook [79] propone la definicin de un documento de operaciones ConOps
como parte de la especificacin de requisitos del sistema; y la gua Systems Engineering
Guidebook for ITS [35] plantea la definicin del concepto de operaciones como actividad
previa a la especificacin de requisitos del sistema, proporcionando una defincin inicial
del sistema.
El documento de requisitos del sistema tiene que contener toda la informacin necesaria
para poder especificar el modelo de operaciones del sistema. La existencia de un documento
de operaciones facilitar por tanto, especificar dicho modelo.
El conjunto de requisitos relacionados con la especificacin del modelo de operaciones
del sistema es un subconjunto de los requisitos del sistema:
(12)
requisitos de operacin. De los requisitos funcionales interesan aquellos que permitan establecer el tipo de elementos que componen el sistema, sus propiedades perceptibles y
las interrelaciones entre ellos observables desde el exterior. Los requisitos de operacin
incluirn la definicin de entradas aceptables y salidas factibles para cada elemento del
sistema.
A continuacin presentamos una correspondencia entre los requisitos funcionales y de
operacin indicados anteriormente y los estndares de requisitos ECSS-E10 Part6A [54] e
IEEE Std830 [77] respectivamente:
1. Requisitos funcionales.
En el estndar ECSS-E10 Part6A estn incluidos en los grupos de Requisitos
Funcionales y de Requisitos de Misin.
En el estndar IEEE Std830 estn incluidos en el grupo de requisitos denominado Funciones.
2. Requisitos de operacin.
En el estndar ECSS-E10 Part6A corresponden por un lado con los Requisitos de Interfaz, que describen caractersticas de interconexin o relacin del
producto con otros elementos, entendiendo que incluyen la descripcin de las
entradas y salidas del sistema. Y por otro lado, con los Requisitos Operacionales que contemplan los perfiles operacionales, el entorno de utilizacin y los
eventos asociados a cada perfil operacional.
En el estndar IEEE Std830 corresponden con el grupo de Interfaces Externos
que describe las entradas y salidas del sistema.
Los requisitos funcionales y de operacin incluidos en los requisitos del sistema, permitirn especificar cada uno de los componentes que conforman la definicin que se ha
realizado de sistema operable en el captulo anterior (pgina 100):
126
S o = (S , I f , O f )
Dnde:
S, se ha definido como sistema compuesto de elementos interconectados (pgina 96):
S = (, S E, RE , PR , I e , Oe , , BS )
I f , como conjunto de entradas aceptadas por los elementos del sistema y enviadas
por el operador desde el frontend de operaciones del sistema.
O f , como conjunto de salidas generadas desde los diferentes elementos del sistema
y observadas por el operador a travs del frontend de operaciones del sistema.
La tabla 1 muestra de forma esquemtica el conjunto de requisitos funcionales y de
operacin que permiten definir el modelo de operaciones de un sistema. Se ha incluido
tambin una columna que expresa el componente que cubre de la definicin indicada de
sistema operable.
4.5.1. Requisitos funcionales
El conjunto de requisitos funcionales del sistema contempla en principio toda la informacin necesaria para especificar el punto de vista del sistema incluida en la definicin
del Modelo de Operaciones del Sistema (MOS). Este punto de vista permite identificar los
elementos del sistema, sus propiedades perceptibles y las relaciones o conexiones entre el
conjunto de elementos interconectados que componen el sistema.
Los requisitos que permiten definir la vista del sistema comprenden:
1. Identificacin de los elementos o subsistemas que componen el sistema.
2. Lista de variables del entorno monitorizadas, controladas y monitorizadas/controladas por cada elemento, incluyendo el dominio de cada variable.
127
Requisitos Funcionales
Sistema Operable
Vm
Vc
V mc
SE
Interconexiones elementos
RE , PR ,
Requisitos de Operacin
Sistema Operable
Propiedades monitorizadas
Pm
E SE j
Propiedades controladas
PcE SE j
Pmc
E SE j
SE
If
Of
128
3. Relaciones o inter-conexiones (visibles desde el exterior) entre el conjunto de elementos interconectados que componen el sistema.
4.5.2. Requisitos de operacin
Los requisitos de operacin deben contemplar todas las interacciones permitidas u ofrecidas por el sistema hacia/desde un frontend de operaciones del sistema. Si el sistema est
compuesto de elementos o subsistemas es necesario definir el conjunto de interacciones
posibles para cada uno de los elementos.
El conjunto de requisitos de operacin tiene que permitir identificar para cada elemento
del sistema:
1. Las propiedades del elemento perceptibles por el operador:
monitorizadas: pm1 , pm2 , ..., pmn
controladas: pc1 , pc2 , ..., pcn
mc
mc
monitorizadas/controladas: pmc
1 , p2 , ..., pn
130
4.6.
Adems, el diagrama de clases reflejar las inter-relaciones entre elementos del sistema, que sean perceptibles por el operador del sistema.
2. Visin de interaccin del sistema perceptible por el operador
A partir de la especificacin de los requisitos necesarios para definir un MOS, se
puede obtener el modelo del comportamiento del sistema desde el punto de vista
de interaccin. En UML se puede modelar esta interaccin mediante los siguientes
diagramas:
Casos de uso.
Los diagramas de casos de uso permiten expresar la interaccin de los usuarios
con el sistema, en nuestro caso operadores del sistema. Adems permiten distinguir entre los diferentes tipos de operadores que interaccionan con el sistema.
La distincin de roles o perfiles para operar con el sistema permite determinar
el subconjunto posible de operaciones a realizar por cada tipo de operador del
sistema, as como la visin del sistema que tendrn y la posible informacin
recibida desde el sistema (notificaciones y alarmas generadas por el sistema).
As, la vista del sistema y el modo de interactuar con el sistema, podrn ser
diferentes para un perfil de ingeniero de pruebas que para un perfil de operador
especfico.
Diagrama de clases.
La funcionalidad incorporada a las clases por medio de mtodos, permite reflejar la capacidad de interaccin de un elemento del sistema (objeto de la clase)
con el exterior (frontend de operaciones o similar):
Comandos de operacin. Mtodos con visibilidad pblica, puesto que pueden
ser invocados desde el exterior.
Notificaciones, incluyendo las alarmas. Mtodos con visibilidad privada,
ya que no pueden ser invocados desde el exterior porque tienen su origen
132
en el elemento.
No obstante, habitualmente se utiliza la definicin de interfaces para expresar
la capacidad de interaccin del sistema. Una interfaz describe las operaciones
o mtodos visibles externamente de una clase u otra entidad que no especifica
la estructura interna. La definicin de una interfaz incluye nicamente las operaciones que admite y carece de atributos, asociaciones o estados. Una clase o
entidad UML puede admitir varias interfaces, disjuntas o solapadas. El diagrama de clases incluir:
Las interfaces que implemente cada elemento del sistema, incluyendo el
conjunto de operaciones del elemento accesibles desde el exterior. Cada
operacin corresponde a lo que se ha llamado comando de operacin. Una
operacin se define por un nombre, parmetros de entrada y un valor de
retorno que coincidir con la respuesta a un comando de operacin recibido
por el elemento del sistema.
Las interfaces usadas por cada elemento del sistema, e implementadas por
el frontend de operaciones. Estas interfaces son utilizadas por el sistema
para enviar al frontend de operaciones las notificaciones y alarmas que
genere. Las interfaces usadas en las interacciones entre elementos del sistema no son de inters en el modelado de las operaciones, ya que no son
visibles desde el exterior del sistema.
Secuencia.
Los diagramas de secuencia permiten establecer la secuencia de acciones y flujo
de informacin desde el operador hacia el sistema (operaciones o comandos)
y viceversa (respuestas, notificaciones y alarmas). Para definir un modelo de
operaciones nos basaremos en los diagramas que reflejen la interaccin entre
los actores o usuarios del sistema y el propio sistema. Sin embargo, dado que
el modelo de operaciones oculta el comportamiento interno del sistema, estos
133
134
Tambin se identifica el subconjunto de requisitos del sistema relacionados con la especificacin del modelo de operaciones de un sistema, distinguiendo entre requisitos funcionales y de operacin. Y por ltimo, se plantea cmo especificar el modelo de operaciones de un sistema mediante el lenguaje de modelado UML.
135
136
Captulo V
PROPUESTA DE REPRESENTACIN DEL MODELO
DE OPERACIONES DE UN SISTEMA
137
Perfil
UML Profile for CORBA
Descripcin
Proporciona un medio estndar para expresar la semntica de Corba IDL utilizando notacin UML, y soporte para expresar esta
semntica con herramientas UML.
Esta especificacin proporciona un medio estndar para expresar aplicaciones basadas en
CCM utilizando notacin UML y soportar
transformaciones de modelo MDA (Model
Driven Architecture) tales como PIM a PSM y
PSM a PIM. Tambin est diseado para trabajar con repositorios MOF.
El objetivo es simplificar la integracin de
aplicaciones proporcionando un estndar de
intercambio de metadatos para informacin
relativa al acceso a interfaces de aplicacin.
La idea del perfil EDOC es simplificar el desarrollo de componentes basados en sistemas
EDOC por medio de un marco de modelado,
basado en UML y conforme al OMG Model
Driven Architecture.
Esta especificacin define un conjunto de extensiones UML para representar conceptos de
calidad de servicio (Quality of Service) y tolerancia a fallos.
Especifica un perfil UML que define paradigmas de uso estndar para el modelado de aspectos de tiempo, schedulability, y rendimiento en sistemas de tiempo real.
Define un lenguaje para disear, visualizar,
especificar, analizar, construir y documentar los artefactos de sistemas de test. Es un
lenguaje de modelado de test que puede ser
utilizado con las principales tecnologas de
objetos y componentes, y aplicado a sistemas
de test en varios dominios de aplicacin.
139
aunque en este caso, la definicin de interfaces permite separar los aspectos internos y de
interaccin de las clases.
Se considera interesante disponer de un lenguaje de modelado que permita definir el
modelo de operaciones de un sistema de manera concisa. Se podra definir un nuevo lenguaje utilizando MOF, pero dado que UML incluye mecanismos de extensin propios para
definir nuevos lenguajes de modelado basados en l, se definir una extensin, un perfil
UML, que contemple las necesidades concretas de la operacin de sistemas planteadas en
el captulo anterior al definir el MOS.
Tal y como indican Fuentes y Vallecillo en [59], UML 2.0 plantea una serie de razones
para extender y adaptar un metamodelo ya existente, incluido el propio UML, y son vlidas
para el perfil de operaciones que se plantea:
1. Disponer de una terminologa y vocabulario propios del dominio de aplicacin relativos a las operaciones de sistemas.
2. Definir una nueva notacin para smbolos ya existentes, orientada al domino de aplicacin concreto, esto es, al modelado de las operaciones de un sistema.
3. Incorporar cierta semntica que no es posible expresar o se expresa vagamente con
UML.
4. Permitir aadir nuevas restricciones. Por ejemplo, una propiedad monitorizada no
puede tener asociada una operacin que implique cambio de valor en ella.
5. Incluir cierto tipo de informacin a un modelo que facilite o permita aplicar transformaciones a otros modelos.
Por todo lo anterior, se considera que la existencia de un perfil UML orientado a la
operacin de sistemas contribuir notablemente a la definicin de forma completa y uniforme del modelo de operaciones de un sistema. En la elaboracin del perfil de operaciones
140
de sistemas propuesto en este captulo se han seguido las recomendaciones propuestas por
Fuentes y Vallecillo [59] para la elaboracin de perfiles UML:
1. Disponer de la definicin del metamodelo relativo al dominio de aplicacin a modelar
con un perfil. En este caso, un metamodelo que incluye los aspectos del modelo de
operaciones del sistema definido.
2. Definir el perfil a partir del metamodelo anterior, incluyendo un estereotipo por cada
elemento del metamodelo que vaya a formar parte del perfil, y aadiendo los valores
etiquetados y restricciones correspondientes a atributos y restricciones en el metamodelo.
De esta forma, se define en primer lugar un metamodelo, descrito en el apartado 5.2, que
recoge el modelo de operaciones de un sistema. En segundo lugar, se ha definido un perfil
de operaciones de sistemas, descrito en el apartado 5.3, a partir del metamodelo anterior.
5.2.
142
Alarmas producidas por los elementos del sistema como consecuencia de cambios de
estado, de especial atencin o prioritarios, producidos en las variables que monitoriza
(Alarm). Corresponde al conjunto de alarmas A.
A continuacin se describen cada uno de los tipos de elementos que definen este metamodelo, agrupados respecto al sistema en s mismo y al conjunto de interacciones permitidas.
5.2.1. Vista del sistema
Como caractersticas bsicas de la definicin de sistema con elementos interrelacionados (pgina 96) tenemos las siguientes:
Pueden existir diferentes tipos de elementos y diferentes tipos de relaciones entre
elementos.
Un tipo de elemento viene definido por una serie de propiedades o atributos que
corresponden a variables de entrada (monitorizadas), de salida (controladas) o de
ambos tipos.
Un tipo de elemento determina el conjunto de tipos de relacin vlidos con los que
poder relacionar un elemento de un tipo con elementos de otro o del mismo tipo.
Un tipo de relacin determina el tipo de elementos que pueden ser relacionados, y
otros aspectos como cardinalidades mnimas y mximas.
El sistema puede disponer de un conjunto de reglas para los elementos y relaciones
que determinen la validez del modelo.
La vista del sistema, que determina los elementos del sistema y las propiedades que les
relacionan con su entorno, se ha representado por medio de las siguientes clases:
SystemElement
144
SeProperty
y de los siguientes tipos de datos:
ElementStatus
AccessPort
PropertyType
A continuacin se describe cada una de estos elementos.
5.2.1.1.
Clase SystemElement
Descripcin
Representa a los diferentes tipos de elementos, perceptibles por el operador, que componen un sistema.
Asociaciones
source: SystemElement[0..*]
Elementos del sistema con los que est relacionado un elemento como destino de la
relacin.
target: SystemElement[0..*]
Elementos del sistema con los que est relacionado un elemento como origen de la
relacin.
properties: SeProperty[1..*]
Propiedades del elemento que son perceptibles por el operador del sistema.
implements: InputInterface[1]
Interfaz de entrada que implementa el elemento del sistema para recibir entradas
desde el frontend de operaciones.
145
uses: OutputInterface[1]
Interface de salida que usa el elemento del sistema para enviar las salidas que produce
al frontend de operaciones del sistema, y que lgicamente debe ser implementado por
ste.
Atributos
id: Identifier
Identificador nico de cada elemento del sistema.
access: AccessPort
Informacin del elemento con la que establecer la interaccin desde el frontend de
operaciones.
status: ElementStatus
Estado del elemento en un momento dado desde el punto de vista de interaccin,
representado por la enumeracin ElementStatus (con valores activo o inactivo).
Restricciones
Un elemento del sistema no puede estar conectado consigo mismo.
5.2.1.2. Clase SeProperty
Descripcin
Esta clase representa las propiedades del sistema perceptibles por el operador del sistema. Una propiedad corresponde con una de las variables del entorno monitorizadas y/o
controladas por el elemento del sistema.
Asociaciones
146
inputs: InputOperation[0..*]
Entradas al elemento del sistema relacionadas con una propiedad concreta del elemento.
outputs: OutputOperation[0..*]
Salidas del elemento del sistema relacionadas con una propiedad concreta del elemento.
systemelement: SystemElement[1]
Esta clase participa en una relacin de composicin con la clase SystemElement.
Atributos
propertyname: String
Nombre de la propiedad perceptible del elemento del sistema que corresponde a una
variable monitorizada y/o controlada en el entorno.
datatype: DataType
Tipo de datos de la propiedad.
propertytype: PropertyType
Tipo de propiedad respecto a la interaccin con el entorno del sistema representado
por la enumeracin PropertyType, que incluye los tipos: Monitored, Controlled y
MonitoredAndControlled.
value: PropertyValue
Valor que tomar la propiedad en un instante dado respecto a la interaccin con el
entorno del sistema representado por la enumeracin PropertyValue.
Restricciones
Una propiedad de tipo Controlled correspondiente a una variable controlada, no
puede tener asociada operaciones de salida de tipo Notification o Alarm.
147
Refleja de forma abstracta el tipo de datos con el que se define la informacin necesaria para establecer una interaccin desde el frontend de operaciones con un elemento del
sistema.
5.2.1.4.
Enumeracin ElementStatus
La enumeracin ElementStatus contiene los posibles estados en los que puede estar un
elemento del sistema desde el punto de vista de operaciones del sistema.
Valores:
active
Indica que el elemento del sistema est activo u operativo.
innactive
Indica que el elemento del sistema est inactivo.
5.2.1.5. Enumeracin PropertyType
La enumeracin PropertyType contiene el tipo de propiedad de un elemento.
Valores:
Monitored
Indica la correspondencia con una variable monitorizada en el entorno.
Controlled
Indica la correspondencia con una variable del entorno controlada por el elemento
del sistema.
148
MonitoredAndControlled
Indica la correspondencia con una variable del entorno que es a la vez monitorizada
y controlada por el elemento del sistema.
5.2.1.6.
Refleja de forma abstracta el valor que tomar una propiedad del sistema en cada instante dado, y que corresponder al tipo PropertyType sobre el que est definida la propiedad.
5.2.2. Vista de interaccin
La vista de interaccin se ha representado por medio de las siguientes clases y tipos de
datos:
InputInterface
InputOperation
InputCmd
OutputInterface
OutputOperation
Response
Notification
Alarm
Tipo de datos PriorityType
A continuacin describimos cada uno de estos elementos.
149
5.2.2.1.
Clase InputInterface
Descripcin
Esta clase representa las interfaces de entrada que implementan los elementos del sistema. Una interfaz de entrada define las operaciones de entrada (clase InputOperation) que
un elemento del sistema ofrece al frontend de operaciones.
Asociaciones
implemented by: SystemElement[1]
Elemento del sistema que implementa la interfaz.
inputoperations[1..*]
Operaciones de entrada al sistema que incluye la interfaz.
Atributos
No se definen atributos.
Restricciones
No se definen restricciones.
5.2.2.2. Clase InputOperation
Descripcin
Esta clase determina las operaciones de entrada incluidas en la interfaz de entrada que
implementa un elemento del sistema. Se han considerado nicamente como operaciones de
entrada, comandos de operacin que se definen por medio de la clase InputCmd.
Asociaciones
properties: SeProperty[0..*]
Propiedades perceptibles del elemento del sistema que implementa la interfaz a la
que pertenece la operacin.
150
Atributos
No se definen atributos.
Restricciones
No se definen restricciones.
5.2.2.3.
Clase InputCmd
Descripcin
Esta clase representa los tipos de comandos de operacin que acepta un elemento del
sistema determinado, definidos en la interfaz de entrada que implementa el elemento. El
comando de entrada puede afectar a una o varias propiedades del elemento, o a ninguna.
Cuando el elemento del sistema ejecute un comando de entrada recibido podr generar una
respuesta si la especificacin del comando incluye un valor de retorno.
Asociaciones
response: Response[0..1]
Respuesta que puede ir asociada a un tipo de comando de entrada.
Atributos
No se definen atributos.
Restricciones
No se definen restricciones.
5.2.2.4.
Clase OutputInterface
Descripcin
Esta clase representa las interfaces de salida que usan los elementos del sistema. Una
interfaz de salida define las operaciones de salida (clase OutputOperation) que el frontend
de operaciones ofrece al elemento del sistema.
151
Asociaciones
used by: SystemElement[1]
Elemento del sistema que usa la interfaz.
outputoperations: OutputOperation[1..*]
Operaciones de salida incluidas en la interfaz.
Atributos
No se definen atributos.
Restricciones
No se definen restricciones.
5.2.2.5. Clase OutputOperation
Descripcin
Representa las salidas generadas desde los elementos del sistema. Recoge las respuestas
a comandos de entradas, las notificaciones y las alarmas.
Asociaciones
properties: SeProperty[1..*]
Propiedades del elemento del sistema que figuran en la operacin de salida que implementa el frontend de operaciones y usa el elemento del sistema.
Atributos
No se definen atributos.
Restricciones
No se definen restricciones.
152
5.2.2.6.
Clase Response
Descripcin
Subclase de la clase OutputOperation que define las respuestas generadas por el sistema
al ejecutar los comandos de entrada. Una respuesta tiene siempre su origen en un nico
comando.
Asociaciones
command: InputCmd[1]
Comando de entrada al que corresponde la respuesta.
Atributos
No se definen atributos.
Restricciones
Toda respuesta tiene que tener asociado un comando de entrada.
5.2.2.7.
Clase Notification
Descripcin
Subclase de la clase OutputOperation que representa las notificaciones que pueden producirse en los elementos del sistema como consecuencia de cambios de estado producidos
en las variables que monitoriza, y que no obedecen a la ejecucin de un comando de entrada
concreto.
Asociaciones
No se definen asociaciones.
Atributos
No se definen atributos.
153
Restricciones
1. Una notificacin no puede ir asociada a una propiedad controlada (tipoControlled).
2. Una notificacin puede ir asociada a propiedades monitorizadas (tipo Monitored) o
bien monitorizadas y controladas (tipo MonitoredAndCrontrolled).
5.2.2.8. Clase Alarm
Descripcin
Subclase de la clase OutputOperation que define las alarmas que pueden producirse
desde los elementos del sistema como consecuencia de cambios de estado, de especial
atencin o prioritarios, producidos en las variables que monitoriza.
Asociaciones
No se definen asociaciones.
Atributos
priority: PrioritytType
Valor que expresa la prioridad de una alarma con respecto al resto de alarmas que se
definan.
Restricciones
No se definen restricciones.
5.2.2.9. Tipo de datos PriorityType
Refleja el tipo de datos con el que se definir la prioridad de una salida de tipo alarma
en un dominio de aplicacin especfico.
154
5.3.
El objetivo de esta seccin, es formalizar una nueva extensin de UML 2 por medio
de un perfil que permita definir de forma explcita, completa y uniforme los aspectos de
operaciones en el modelado de sistemas. Este nuevo perfil al que llamaremos U2OP (UML
2 Operations Profile) se define a partir del metamodelo de operaciones del sistema definido
anteriormente, y se muestra grficamente en la figura 24.
El perfil U2OP se define dentro de un paquete UML estereotipado como profile, y
viene determinado por los siguientes tres tipos de elementos:
1. Estereotipos (stereotypes) que definen nuevos elementos de construccin.
2. Valores etiquetados o propiedades (tagged values) que definen nuevas propiedades.
3. Restricciones (constraints) que definen nuevas semnticas.
Este perfil de UML se definir siguiendo parcialmente la propuesta de Villarroel [169]
de utilizar para la definicin de una extensin UML, un esquema compuesto por los siguientes elementos:
Descripcin
Prerrequisitos de la extensin
Nuevos tipos de datos
Estereotipos / valores etiquetados
5.3.1.
Descripcin
Esta extensin de UML define un conjunto de tipos de datos, estereotipos, valores etiquetados y restricciones que nos permiten modelar de una misma manera los aspectos de
operaciones de un sistema. El objetivo del perfil definido es poder modelar sistemas con
155
156
elementos interconectados que acepten algn tipo de interaccin desde el exterior. La modelizacin del sistema es esencial para poder crear un frontend de operaciones de acuerdo a
las lneas bsicas expuestas en esta tesis.
El perfil permite definir las caractersticas comunes de los sistemas para los que se defina un frontend de operaciones. El perfil incluye: un nuevo tipo de datos, dos estereotipos
que representan los elementos del sistema y las conexiones entre ellos, valores etiquetados para los dos estereotipos y un conjunto de restricciones que definen la semntica del
modelo.
La figura 25 muestra el perfil de operaciones del sistema, equivalente al de la figura 24,
pero en el que se han incluido adems las restricciones definidas para cada elemento del
perfil.
5.3.2. Prerrequisitos
La definicin del perfil de sistema no tiene prerrequisitos, salvo los implcitos derivados de la existencia del propio lenguaje de modelado UML 2, y que debe contemplar el
metamodelo SystemOperations definido en la seccin anterior.
5.3.3. Nuevos tipos de datos
El perfil aade tres nuevos tipos de datos que son utilizados en la definicin de valores
etiquetados de los estereotipos. Estos tipos corresponden a enumeraciones relativas al estado de los elementos del sistema, informacin de conexin y prioridad en las alarmas. Los
tres tipos definidos son:
ElementStatus
AccessPort
PriorityType
157
5.3.3.1.
Enumeracin ElementStatus
Este nuevo tipo de datos corresponde a una enumeracin (clase base Enumeration) que
asociado a un elemento del sistema, indica el estado de interaccin en el que se encuentra.
Este estado, puede tomar uno de los siguientes valores:
active
El elemento est activo y listo para recibir operaciones y enviar notificaciones.
innactive
El elemento no est activo, no admite operaciones y tampoco puede enviar notificaciones.
noresponse
El elemento est en estado activo pero no responde al envo de operaciones.
locked
El elemento est activo pero bloqueado por un intervalo de tiempo que determina el
propio funcionamiento del sistema.
5.3.3.2.
Este tipo de datos con clase base dataType representa la especificacin de los puertos
o interfaces fsicos que disponga un elemento de un sistema para establecer comunicacin
(sncrona y/o asncrona) con otros elementos o con el frontend de operaciones del sistema.
5.3.3.3.
El tercer tipo de datos, definido tambin sobre la clase base dataType, representa la
forma de especificar las prioridades de las alarmas del sistema.
5.3.4. Estereotipos
Se han definido los siguientes estereotipos dentro del perfil U2OP:
159
1. U2OP_SystemElement
2. U2OP_VisibleRelation
3. U2OP_Monitored
4. U2OP_Controlled
5. U2OP_MonitoredAndControlled
6. U2OP_Input
7. U2OP_Output
8. U2OP_InputCmd
9. U2OP_Response
10. U2OP_Notification
11. U2OP_Alarm
5.3.4.1. Estereotipo U2OP_S ystemElement
Descripcin
Definido sobre la metaclase Class, representa un elemento del sistema con capacidad de
interaccin desde el frontend de operaciones.
Valores etiquetados
Para este estereotipo se han definido los siguientes valores etiquetados:
status: StatusElement[1]
Este valor etiquetado, definido con el tipo enumerado ElementStatus, permitir saber
en que estado de comunicacin se encuentra un elemento del sistema en un momento
dado.
160
access: AccessPort[0..*]
Definido como tipo de datos AccessPort, representa los puertos o interfaces de comunicacin que permiten la interaccin del elemento desde el exterior. La cardinalidad
mnima 0 indica sistemas en los que no sea necesario establecer una comunicacin
con el frontend de operaciones, por ejemplo, sistemas software con acceso desde el
frontend en modo local. La cardinalidad mxima * indica la existencia de diferentes
interfaces de comunicacin hacia el exterior del sistema.
Restricciones
Se han definido las siguientes restricciones:
Un elemento estereotipado SystemElement no puede implementar interfaces estereotipadas U2OP_Output.
5.3.4.2.
Estereotipo U2OP_VisibleRelation
Descripcin
Este estereotipo permite representar interconexiones entre los diferentes elementos que
compongan un sistema.
Valores Etiquetados
Para este estereotipo no se han definido valores etiquetados.
Restricciones
Una asociacin estereotipada visible:
Asocia nicamente elementos del sistema estereotipados U2OP_SystemElement.
No puede asociar un elemento consigo mismo.
161
Para conectar dos elementos entre s, el estado de ambos debe ser activo. Aunque en
realidad no es de aplicacin desde el punto de vista topolgico o de estructura sino
desde el punto de vista de operacin.
5.3.4.3. Estereotipo U2OP_Monitored
Descripcin
Representa una propiedad monitorizada por un elemento del sistema, es decir, de la que
se pueda obtener el valor que tenga en un instante dado pero no modificar su estado.
Valores Etiquetados
Se han definido los siguientes valores etiquetados:
input: U2OP_InputCmd[0..*]
Comandos de entrada asociados a la propiedad.
output: U2OP_Notification[1..*]
Notificaciones que reflejan cambios en los valores de las propiedades monitorizadas.
Restricciones
Una propiedad estereotipada Monitored:
No puede tener asociada una operacin estereotipada Input que modifique su estado.
Pertenece obligatoriamente a un elemento estereotipado SystemElement.
5.3.4.4.
Estereotipo U2OP_Controlled
Descripcin
Representa una propiedad controlada por un elemento del sistema, es decir, sobre la que
se pueda modificar su estado.
162
Valores Etiquetados
Se ha definido el siguiente valor etiquetado:
input: U2OP_InputCmd[1..*]
Comandos de entrada asociados a la propiedad, al menos debe haber uno, ya que es
una propiedad controlada por el sistema.
Restricciones
Una propiedad estereotipada Controlled:
No puede tener asociada una operacin de salida estereotipada Notification o Alarm.
Pertenece obligatoriamente a un elemento estereotipado SystemElement.
5.3.4.5.
Estereotipo U2OP_MonitoredAndControlled
Descripcin
Representa una propiedad que sea al mismo tiempo monitorizada y controlada por un
elemento del sistema, es decir, de la que pueda obtener el valor que tenga en un instante
dado y tambin modificar su estado.
Valores Etiquetados
Las propiedades definidas con este estereotipo incluyen los siguientes valores etiquetados:
input: U2OP_InputCmd[1..*]
Comandos de entrada asociados a la propiedad.
output: U2OP_Notification[1..*]
Notificaciones que reflejan cambios en los valores de las propiedades monitorizadas
y/o controladas.
163
Restricciones
Una propiedad estereotipada MonitoredAndControlled:
Pertenece obligatoriamente a un elemento estereotipado SystemElement.
5.3.4.6.
Estereotipo U2OP_Input
Descripcin
Representa una interfaz implementada por un elemento del sistema, e incluir el conjunto
de operaciones admitidas por el elemento.
Valores Etiquetados
No se han definido valores etiquetados para este estereotipo.
Restricciones
Una interfaz estereotipada U2OP_Input no puede ser implementada por un elemento que
no est estereotipado como SystemElement.
5.3.4.7.
Estereotipo U2OP_Output
Descripcin
Representa una interfaz utilizada por el sistema para enviar las salidas hacia el frontend de operaciones, siendo el frontend de operaciones el encargado de implementar las
operaciones que pueda contener.
Valores Etiquetados
No se han definido valores etiquetados para este estereotipo.
Restricciones
Una interfaz estereotipada U2OP_Output :
No puede ser implementada por un elemento estereotipado SystemElement, existiendo nicamente una relacin de uso.
164
5.3.4.8.
Estereotipo U2OP_InputCmd
Descripcin
Representa una de las operaciones de entrada incluidas en la interfaz de entrada implementada por un elemento del sistema.
Valores Etiquetados
Se ha definido el siguiente valor etiquetado:
output: U2OP_Response
Respuesta asociada a una operacin InputCmd de entrada al sistema.
Restricciones
Una operacin estereotipada U2OP_InputCmd:
Solo puede pertenecer a una interfaz estereotipada U2OP_Input.
Incluir como parmetro una propiedad estereotipada U2OP_Monitored o bien estereotipada U2OP_Controlled o U2OP_MonitoredAndCrontolled, que pertenecer al
elemento que implemente la interfaz a la que pertenezca la operacin.
5.3.4.9. Estereotipo U2OP_Response
Descripcin
Representa la respuesta devuelta por el sistema al ejecutar una operacin de entrada
U2OP_InputCmd.
Valores Etiquetados
Se ha definido el siguiente valor etiquetado:
input: U2OP_InputCmd[1]
Comando de entrada al sistema asociado a la respuesta.
165
Restricciones
Una operacin estereotipada U2OP_Response:
Solo puede pertenecer a una interfaz estereotipada U2OP_Output.
5.3.4.10.
Descripcin
Representa una notificacin enviada por el sistema como consecuencia del cambio de
estado producido en una propiedad monitorizada por el elemento.
Valores Etiquetados
No se han definido valores etiquetados para este estereotipo.
Restricciones
Una operacin estereotipada U2OP_Notification:
Solo puede pertenecer a una interfaz estereotipada U2OP_Output.
Incluir como parmetro una propiedad estereotipada como U2OP_Monitored o bien U2OP_MonitoredAndCrontolled, que pertenecer al elemento que implemente la
interfaz a la que pertenezca la operacin.
5.3.4.11.
Estereotipo U2OP_Alarm
Descripcin
Representa una notificacin especial o alarma enviada por el sistema como consecuencia
del cambio de estado producido en una propiedad monitorizada por el elemento.
Valores Etiquetados
Se han definido los siguientes valores etiquetados:
priority: PriorityType
Prioridad que se asigna a la alarma.
166
Restricciones
Una operacin estereotipada U2OP_Alarm:
Solo puede pertenecer a una interfaz estereotipada U2OP_Output.
Incluir como parmetro una propiedad estereotipada como U2OP_Monitored o bien U2OP_MonitoredAndCrontolled, que pertenecer al elemento que implemente la
interfaz a la que pertenezca la operacin.
167
168
Captulo VI
APLICACIN DEL MODELO DE OPERACIONES DEL
SISTEMA COMO SOPORTE PARA EL MODELADO
DEL FRONTEND DE OPERACIONES
169
6.1. Introduccin
En el captulo anterior se han definido un metamodelo y un perfil UML 2 que facilitan la
representacin del modelo de operaciones definido en esta Tesis. Tomando como base estas
propuestas de representacin del modelo de operaciones de un sistema, en este captulo
se plantea el modelado de un frontend de operaciones que posibilite la interaccin entre
operador y sistema.
Primeramente se presenta un metamodelo UML 2 orientado al modelado de la interaccin entre un frontend de operaciones y el sistema, basado en el modelo de operaciones
definido. A continuacin, se propone una arquitectura del frontend de operaciones basada en una serie de niveles de abstraccin en la interaccin entre operador y sistema. Y
por ltimo, se incluye una propuesta de comandos bsicos de operacin del sistema que
implementados por un frontend de operaciones faciliten la interaccin con el sistema.
En este metamodelo el SUO se representa nicamente con esta clase puesto que
pertenece al metamodelo SystemOperationsMetamodel descrito en el captulo anterior.
3. Las interfaces asociadas a la interaccin entre frontend de operaciones y sistema:
InputInterface. Interfaces de entrada que implementan los elementos del sistema para recibir entradas desde el frontend de operaciones.
OutputInterface. Interface de salida que usan los elementos del sistema para
enviar las salidas que produce al frontend de operaciones del sistema, y que
debe ser implementado por ste.
Adems, se han definido los siguientes tipos de datos:
Tipo de datos Identifier. Representa un tipo de datos que identifique de forma nica
los objetos de una clase.
Enumeracin ExecutionResult. Valores que indican si un comando de operacin se
ha llevado con xito o no por parte del sistema.
A continuacin se describen cada una de estas clases y tipos de datos, de forma anloga
a como se ha definido el metamodelo de operaciones del sistema en el captulo anterior, y
que coincide con el mtodo utilizado por OMG para definir el perfil U2TP [130]. En este
caso adems se ha incluido la descripcin de mtodos de las clases:
Descripcin
Asociaciones
Atributos
Mtodos
Restricciones
173
174
recibir comandos de entrada enviados desde el SOF. La interfaz incluir todas las
operaciones que correspondan a las entradas aceptadas por el sistema o elementos de
este.
ointerfaces: SystemOperationsMetamodel::OutputInterface[1..*]
Interfaz o interfaces implementadas por SOF y que usan los elementos del sistema
para enviarle las salidas que producen. La interfaz incluir todos los mtodos u operaciones que correspondan a las salidas de los elementos del sistema.
procedures: OperationsProcedure[0..*]
Procedimientos de operacin creados para ser ejecutados sobre el SUO, y que son
registrados junto con los resultados de sus ejecuciones en el repositorio del SOF.
Atributos
name: String
Nombre dado al frontend de operaciones.
description: String
Descripcin del frontend de operaciones.
mode: String
Modo en el que el frontend de operaciones acta con el sistema (modo test o modo
operacin).
accessport: SystemOperationsMetamodel:AccessPort
Informacin de acceso al SOF con la que establecer la comunicacin desde el sistema. Esta propiedad est definida sobre el tipo de datos AccessPort incluido en el
metamodelo SystemOperationsMetamodel.
175
Mtodos
Si bien en la definicin de un metamodelo no es habitual incluir mtodos en las clases
que lo definen, en este caso, se han incluidos algunos mtodos de la clase SOF, para orientar
cul sera la funcionalidad mnima que debera tener.
setMode (mode: String)
Activa el modo de funcionamiento del frontend de operaciones con el sistema, en
modo operacin o en modo test.
createProcedure (proc: OperationsProcedure)
Creacin de un procedimiento con comandos de operacin del sistema.
compileProcedure (proc: OperationsProcedure)
Compilar un procedimiento de comandos, conforme a la gramtica definida para el
dominio de aplicacin concreto del sistema bajo operacin.
executeProcedure (proc: OperationsProcedure)
Ejecutar un procedimiento de comandos sobre el SUO.
executeCommand (cmd: CommandExecution)
Enviar (ejecutar) un comando de operacin sobre el SUO.
updateSystemView()
Actualizar la vista de interaccin a partir de la informacin recibida desde el SUO
(cambios de estado en los elementos del sistema).
updateRepository()
Actualizar el repositorio del SOF a partir de la informacin recibida desde el SUO
(respuestas a comandos de operacin y/o notificaciones enviadas).
configureSUO()
Configurar la vista de elementos del sistema visible/accesible a un operador o rol
concreto.
176
Restricciones
Si modo = test, la interaccin con el SUO podr ser nicamente de validacin. Si
modo = operacion, la interaccin podr ser operacin y/o monitorizacin del SUO.
SOF puede interactuar con diferentes sistemas bajo operacin, por ejemplo un simulador del sistema o el sistema real, pero solo puede interactuar con uno al mismo
tiempo. As pues, en tiempo de ejecucin, estar asociado con un solo SUO. Por el
contrario, s puede haber ms de un operador trabajando con una misma instancia del
SOF.
6.2.1.2.
Clase Operator
Descripcin
El frontend de operaciones representa un medio mediante el cul un operador puede
interactuar con un sistema. Definimos esta clase para que quede clara la participacin de
un operador en el proceso de interaccin con un sistema.
Asociaciones
sof: SOF[1..*]
Frontend de operaciones, uno o varios, utilizados por un operador.
Atributos
name: String
Nombre del operador.
role: String
Rol del operacin, por ejemplo: operador, probador, administrador, etc.
Mtodos
No se han definido mtodos.
177
Restricciones
Se ha identificado una nica restriccin:
Un operador puede interactuar con el sistema en modo operacin y en modo validacin, pero no puede trabajar al mismo tiempo en los dos modos.
6.2.1.3. Clase SystemView
Descripcin
Vista o vistas del SUO ofrecidas por el frontend a los operadores. Si existen diferentes
roles de operacin en el SOF, stos pueden utilizar diferentes vistas del sistema. Una vista
del sistema incluir al menos un elemento del sistema.
Asociaciones
sof: SOF[1]
Objeto de la clase SOF a la que corresponde un objeto de la clase SystemView.
elements: SystemOperationsMetamodel:SystemElement[1..*]
Elementos del sistema que componen la vista de operador.
Atributos
id: Identifier
Identificador nico de la vista del sistema.
operator: Operator[0..*]
Operadores al que el SOF presenta la vista del sistema.
Mtodos
No se han definido mtodos.
178
Restricciones
No se han definido restricciones.
6.2.1.4.
Clase OperationsProcedure
Descripcin
Esta clase describe el contenido de un procedimiento de operaciones, creado por un
operador concreto. Un mismo procedimiento puede ejecutarse varias veces.
Asociaciones
executions: ProcedureExecution [0..*]
Conjunto de ejecuciones realizadas sobre el sistema, correspondientes a un mismo
procedimiento.
sof: SOF[1]
Frontend de operaciones desde el que se crea el procedimiento de operaciones del
sistema.
Atributos
id: Identifier
Identificador dado a cada procedimiento de operacin, que debe ser nico.
creator: Operator
Operador que crea el procedimiento.
creationdate: date
Fecha y hora de creacin del procedimiento.
content: SystemOperationsMetamodel:: InputOperation[1..*]
Secuencia de operaciones de entrada al SUO incluidas en el procedimiento de operaciones. Corresponde a un conjunto de objetos de la clase InputOperation definida
179
SystemOperations.
Mtodos
No se han definido mtodos.
Restricciones
Una ejecucin de un procedimiento ser nica, y corresponder a un nico procedimiento de operacin.
Se considera que no existe concurrencia en la ejecucin de procedimientos. Al mismo
tiempo, solo puede estar un procedimiento en ejecucin.
6.2.1.6.
Clase CommandExecution
Descripcin
Comandos de operacin enviados al sistema desde el frontend de operaciones.
Asociaciones
element: Element[1]
Elemento del sistema sobre el que se ejecuta el comando.
procedure: ExecutionProcedure[0..1]
Procedimiento del que procede el comando ejecutado.
Atributos
commandexecutionid: Identifier
Identificador nico por comando ejecutado.
command: SystemOperationsMetamodel::InputCmd
El comando de entrada al elemento del sistema.
181
executiondate: date
Instante de tiempo en el que se ejecuta el comando en el sistema.
executionresult: ExecutionResult
Tipo de resultado al ejecutar el comando. El conjunto de valores posibles de este
atributo viene definido por el conjunto enumerado ExecutionResult: ok, nook, noresponse.
response: SystemOperationsMetamodel::Response
Respuesta enviada por el sistema como consecuencia de ejecutar el comando de entrada. Corresponde a un objeto de la clase Response definida previamente en el metamodelo SystemOperations.
Mtodos
No se han definido mtodos.
Restricciones
Un comando de operacin enviado al sistema proceder de un procedimiento concreto.
El resultado producido al ejecutar un comando de operacin debe corresponder a uno
de los valores definidos en el conjunto enumerado ExecutionResult.
6.2.2. Sistema bajo operacin
El frontend de operaciones presentar una vista del SUO que muestre al operador la
composicin del sistema, as como las propiedades e inter-relaciones perceptibles de cada
elemento del sistema. Una vista del sistema puede comprender el sistema completo con
todos sus elementos o bien un subconjunto de ste. El SOF determinar la composicin de
la vista del sistema y de las operaciones que pueda realizar, en funcin de cada uno de los
roles de operacin definidos. SOF podra gestionar diferentes vistas del sistema al mismo
182
tiempo, permitiendo que varios operadores puedan estar monitorizando el sistema o incluso
realizando operaciones compatibles sobre l.
6.2.2.1.
Clase SystemElement
Descripcin
Con esta clase se ha representado el sistema bajo operacin (SUO) de forma completa,
abstrayndonos del resto de informacin, ya que se importa la clase SystemElement del
metamodelo SystemOperationsMetamodel definido previamente en el captulo anterior.
Asociaciones
iinterfaces: SystemOperationsMetamodel::InputInterface[1..*]
Interfaces implementados por los elementos del sistema y que usa el frontend de
operaciones para enviarles comandos de entrada. Estas interfaces incluirn todas las
operaciones relativas a las entradas aceptadas por los elementos del sistema. Corresponden a un conjunto de objetos de la clase InputInterface definida previamente en
el metamodelo SystemOperations.
ointerfaces: SystemOperationsMetamodel::OutputInterface[1..*]
Interfaces que usa el sistema y que implementa el SOF para recibir las salidas generadas por el sistema. Incluirn todas las operaciones que correspondan a las salidas
de los elementos del sistema, y se definen como un conjunto de objetos de la clase
OutputInterface definida previamente en el metamodelo SystemOperations.
views: SystemView[0..*]
Vistas del sistema definidas en el frontend de operaciones que incluyen los elementos
del sistema.
Atributos
183
id: SystemOperationsMetamodel::Identifier
Identificador nico del sistema.
access: SystemOperationsMetamodel::AccessPort[1..*]
Informacin de acceso al sistema con la que establecer la interaccin desde el frontend de operaciones. Cada elemento del sistema definir el conjunto de puertos de
acceso que le permitan establecer la comunicacin con el frontend de operaciones.
status: SystemOperationsMetamodel::ElementStatus
Estado del elemento en un momento dado desde el punto de vista de interaccin,
representado por la enumeracin ElementStatus.
Mtodos
No se han definido mtodos.
Restricciones
No se han definido.
6.2.3. Operaciones sobre el sistema
Comprende las interfaces que permiten la interaccin entre el sistema y el frontend de
operaciones, y que ya han sido definidas en el metamodelo SystemOperationsMetamodel.
6.2.3.1.
Interfaz InputInterface
Descripcin
Interfaz que usa SOF y que implementa el sistema para recibir comandos de entrada
enviados desde SOF. La interfaz incluir todas las operaciones que correspondan a las
entradas aceptadas por el sistema.
Asociaciones
184
elements: SystemOperationsMetamodel::SystemElement[1..*]
Elementos del sistema que implementan la interfaz.
sof: SOF[0..*]
Aplicaciones externas, como el frontend de operaciones, que utilizan la interfaz.
Atributos
La definicin de una interfaz no incluye atributos.
Mtodos
Ser en la implementacin de un dominio de sistema especfico, donde figuren las operaciones que acepte el sistema.
Restricciones
No se han definido.
6.2.3.2.
Interfaz OutputInterface
Descripcin
Interfaces implementadas por aplicaciones externas al sistema, como el frontend de operaciones, y que usa el sistema para enviarles las salidas que produce. La interfaz incluir
todas las operaciones que correspondan a las salidas de los elementos del sistema.
Asociaciones
elements: SystemOperationsMetamodel::SystemElement[0..*]
El sistema usa las interfaces implementadas por las aplicaciones externas para enviarles las salidas que genera.
sof: SOF[1..*]
Las aplicaciones externas al sistema, que implementan las interfaces de salida de los
elementos del sistema.
185
Atributos
La definicin de una interfaz no incluye atributos.
Mtodos
Ser en la implementacin del frontend de operaciones para un dominio de sistema especfico, donde figuren las operaciones que acepte el frontend de operaciones.
Restricciones
No se han definido.
6.2.4. Tipos de Datos
6.2.4.1. Tipo de datos Identifier
Tipo de datos que indica la identificacin de forma nica de los objetos de una clase.
6.2.4.2. Tipo de datos ExecutionResult
Enumeracin con los valores que representan si un comando se ha llevado con xito por
parte del sistema:
ok
nook
noresponse
186
1. Interaccin operador-sistema
2. Interaccin SOF-sistema
3. Comunicacin SOF-sistema
4. GUI orientado al operador del sistema
5. Ncleo del SOF
191
192
La arquitectura del SOF planteada es independiente del sistema con el que vaya a interactuar el frontend de operaciones en un dominio de aplicacin especfico. Esta independencia del dominio del sistema permitir una adaptacin del frontend de operaciones
a diferentes sistemas con un esfuerzo reducido. Por otra parte la arquitectura presentada
permite que los cuatro componentes identificados puedan estar distribuidos en diferentes
mquinas, facilitando la tele-operacin/ tele-monitorizacin del sistema.
6.3.6. Esquema de funcionamiento del SOF
En el metamodelo que refleja la interaccin entre el frontend de operaciones y el sistema, se ha definido la clase Procedure con un atributo content: Commands[..*]. Se
ha considerado que el operador enva las operaciones al sistema mediante procedimientos
compuestos de varios comandos de operacin, al menos uno. Siendo necesaria la existencia
de un lenguaje de operaciones especfico que defina el conjunto de operaciones que el operador pueda utilizar para interactuar con un sistema concreto. En principio, este lenguaje
ser dependiente del dominio de aplicacin, es decir, del sistema bajo operacin.
Los comandos de operacin incluidos en un procedimiento deben ser consistentes con
la gramtica del lenguaje de operaciones definido para interactuar con el sistema. Los comandos para obtener y asignar valores de propiedades de los elementos de un sistema
genrico podran seguir el siguiente patrn:
Obtener el estado o valor de propiedades monitorizadas de los elementos del sistema:
Sintaxis: GET <elementId><property>
Semntica: property tiene que corresponder a una propiedad monitorizada de
un elemento elementID existente en el sistema.
Asignar valores a variables controladas de los elementos del sistema:
Sintaxis: SET <elementId><property><value>
193
194
En este apartado se propone un conjunto de comandos bsicos de operacin que permite el entendimiento entre el frontend de operaciones y el sistema. La descripcin de este
conjunto ser lo suficientemente genrica para que pueda ser de aplicacin en diferentes
sistemas.
6.4.1. Sintaxis general
Cada accin de entrada y de salida definida en el modelo de operaciones del sistema
requerir de una especificacin gramatical que permita por medio de comandos o procedimientos de operacin definidos en el SOF, la interaccin con el sistema.
De acuerdo al metamodelo de SOF definido en este captulo, la gramtica incluir la
especificacin relativa a:
Comandos de entrada (Clase InputCmd).
Respuestas (Clase Response)
Notificaciones simples (Clase Notification).
Notificaciones de alarma (Clase Alarm).
Los cuatro tipos de acciones que intervienen en la interaccin entre el frontend de operaciones y el sistema, pueden expresarse gramaticalmente de la siguiente forma:
1. Comando de entrada
Un comando de operacin tiene como origen el frontend de operaciones y como
destino un elemento del sistema. Un comando de entrada tpico estar definido por:
Nombre del comando
Elemento del sistema al que afecta
Propiedad implicada del elemento y valor en su caso.
195
Sintaxis genrica:
<nombre_comando><elemento_sistema>[<propiedad>[<valor>]]
2. Respuesta
El sistema enva una respuesta al frontend de operaciones despus de ejecutar un
comando recibido desde ste. Una respuesta a un comando deber incluir una de las
siguientes opciones:
Confirmacin de la ejecucin correcta del comando, y adems, un valor concreto si el comando solicita el valor de alguna propiedad del elemento. El tipo
de datos correspondiente a dicho valor vendr definido por el dominio de aplicacin concreto.
Indicacin de ejecucin de comando errnea, y si el sistema lo permite, el tipo
de error producido mediante un cdigo preestablecido de error o bien mediante
una descripcin textual de ste.
Sintaxis genrica:
3. Notificacin simple
Una notificacin simple obedece a un evento producido en el sistema que afecta
por lo general al cambio de estado en un elemento concreto, o en alguna de sus
propiedades. Por ejemplo, el encendido o apagado de una mquina, o la variacin
de la temperatura monitorizada por una mquina. Una notificacin tiene por tanto el
196
<nombre_notificacion><elemento_sistema>[<propiedad><valor>]
4. Notificacin de alarma
Una notificacin de alarma es en todo similar a una notificacin simple, a excepcin
de que al tratarse de una situacin excepcional producida en el sistema debe tener un
tratamiento diferente y urgente por parte del operador del sistema.
Por tanto la sintaxis de una notificacin de alarma es similar a la de notificacin simple:
<nombre_alarma><elemento_sistema>[<propiedad><valor>]
197
Operacin
CreateSe
DeleteSe
Set
Get
Start
Finish
Wait
Timer
For
Repeat
Tipo
administracin
administracin
interaccin
interaccin
interaccin
interaccin
procedimiento
procedimiento
procedimiento
procedimiento
El frontend de operaciones tiene que mostrar al operador una representacin, normalmente grfica, del sistema (elementos que lo componen e interconexiones entre ellos) sobre
el que est operando. Esta representacin del sistema conforma una vista lgica del mismo.
La definicin de esta vista lgica requiere de la existencia de operaciones (lgicas) que
permitan configurarla, por medio de comandos de agregacin y eliminacin de elementos
del sistema. Las operaciones de administracin deben permitir al operador o administrador
del frontend de operaciones representar una vista del sistema real.
Estas operaciones podran estar embebidas en las opciones de configuracin del frontend de operaciones, y configurar o administrar el sistema sin utilizar comandos del lenguaje
de operacin.
198
6.4.3.1.
CreateSE
Descripcin:
Los elementos del sistema existen por si mismos con independencia de la existencia o no
de un frontend de operaciones. El frontend de operaciones requiere de una representacin
de los elementos que componen el sistema para que el operador pueda visualizar su composicin y estado en cada momento.
Esta operacin permite definir un elemento del sistema en la vista que observa un operador. En realidad define una correspondencia entre un elemento en la vista del frontend de
operaciones y un elemento fsico del sistema. La creacin de un elemento en la vista lgica del sistema, debera conllevar el intento de conexin o contacto con el elemento fsico
asociado, para comprobar si el elemento fsico indicado existe y es accesible.
Sintaxis:
CreateSE <elemento_sistema><tipoelemento><Id-fisico>[<puerto>]
dnde:
elemento_sistema: identificador del elemento del sistema al que va dirigido el comando.
tipoelemento: tipo del elemento a definir del sistema perceptible por el operador.
id-fisico: identificacin fsica del elemento para que el Gateway pueda establecer
comunicacin con l. Por ejemplo, direccin IP en comunicaciones TCP-IP.
puerto: puerto de comunicacin con el elemento del sistema, en caso de ser necesario.
Valor de retorno:
El elemento del sistema, tras ejecutar el comando debe retornar una respuesta de comando ejecutado correctamente, o el cdigo de error producido.
199
6.4.3.2.
DeleteSE
Descripcin:
Esta operacin tiene una funcionalidad opuesta a la anterior, eliminando un elemento de
la vista lgica del sistema que percibe un operador desde el frontend de operaciones.
Sintaxis:
DeleteSe <elemento_sistema>
dnde:
elemento_sistema: identificador del elemento del sistema al que va dirigido el comando
Valor de retorno:
El elemento del sistema, tras ejecutar el comando debe retornar una respuesta de comando ejecutado correctamente, o el cdigo de error producido.
6.4.4. Operaciones de Interaccin
Las operaciones de interaccin incluyen las operaciones o comandos bsicos que acepta
el sistema para interactuar con l, y que pueden ser comunes a muchos de los sistemas con
posibilidad de interaccin:
Set
Get
Start
Finish
Los comandos Set y Get deben permitir respectivamente asignar y obtener valores de las
propiedades perceptibles de los elementos del sistema. Los comandos Start y Finish deben
200
Set
Descripcin:
El objetivo del comando Set es asignar valores a los atributos o propiedades de los elementos del sistema.
Sintaxis:
SET <elemento_sistema><atributo><valor>
dnde:
elemento_sistema: identificador del elemento del sistema al que va dirigido el comando.
atributo: nombre del atributo objeto de la asignacin.
valor: valor a asignar.
Valor de retorno:
El elemento del sistema, tras ejecutar el comando debe retornar una respuesta de comando ejecutado correctamente, o el cdigo de error producido.
201
6.4.4.2.
Get
Descripcin:
Este comando debe permitir obtener el valor de los atributos o propiedades de los elementos del sistema.
Sintaxis:
GET <elemento_sistema><atributo>
dnde:
elemento_sistema: identificador del elemento del sistema al que va dirigido el comando.
atributo: nombre del atributo del que se quiere obtener el valor.
Valor de retorno:
El elemento del sistema, tras ejecutar el comando debe retornar una respuesta de comando ejecutado correctamente con el valor de la propiedad solicitada, o el cdigo de error
producido.
6.4.4.3. Start
Descripcin:
Este comando debe activar el elemento del sistema correspondiente para que se ponga
en funcionamiento.
Sintaxis:
START <elemento_sistema>
dnde:
202
Finish
Descripcin:
El comando Finish debe permitir finalizar el funcionamiento del elemento del sistema
especificado en el comando.
Sintaxis:
FINISH <elemento_sistema>
dnde:
elemento_sistema: identificador del elemento del sistema al que va dirigido el comando.
Valor de retorno:
El elemento del sistema, tras ejecutar el comando debe retornar una respuesta de comando ejecutado correctamente, o el cdigo de error producido.
6.4.5. Operaciones de procedimiento
Adems de las operaciones de interaccin, el operador que utilice el frontend de operaciones necesita otras operaciones a las que llamamos operaciones de procedimiento. Estas
operaciones permiten disponer de comandos que controlen de alguna manera la interaccin con el sistema, como bucles, condiciones de espera, etc. La siguiente lista contiene las
operaciones de procedimiento definidas:
203
Repeat
For
Wait
Timer
6.4.5.1. For
Descripcin:
Establece un bucle que ejecuta una serie de comandos un nmero determinado de veces.
Sintaxis:
For <times>
<Statements>
endFor
dnde:
times: numero entero mayor que cero, que indica el nmero de veces que se ha de
ejecutar el bloque de sentencias que incluye el comando.
statements: bloque formado por una o ms operaciones.
Valor de retorno:
En s este comando no tiene valor de retorno ya que no se ejecuta directamente en el
sistema. Es el frontend de operaciones el encargado de implementar el bucle.
6.4.5.2. Repeat
Descripcin:
Establece un bucle que ejecuta una serie de comandos un nmero determinado de veces,
mientras o hasta que se cumpla una condicin determinada.
204
Sintaxis:
Wait
Descripcin:
El objetivo de esta operacin es el de esperar hasta que se cumpla una determinada
condicin. Para ello los elementos del sistema implicados en la operacin deben estar en
ejecucin, y producir en algn momento una notificacin que satisfaga la condicin, y por
tanto finalizar la espera.
Sintaxis:
Wait <condition>
dnde:
condition: condicin de espera.
205
Valor de retorno:
En s este comando no tiene valor de retorno ya que no se ejecuta directamente en el
sistema. Es el frontend de operaciones el encargado de implementar la espera.
6.4.5.4. Timer
Descripcin:
El comando Timer representa temporizadores asociados a elementos del sistema o al sistema completo. Este comando realizar una espera en el frontend de operaciones hasta que
se cumpla el tiempo establecido como parmetro. Durante dicha espera, el frontend de operaciones no podr enviar nuevos comandos al sistema, pero si podr recibir notificaciones
enviadas desde l.
Para definir un comando de tipo Timer, podra utilizarse la especificacin de temporizadores definida en TTCN-3 [53] y U2TP [130].
Sintaxis:
Timer <time>
dnde:
time: tiempo total durante el cul estar activo el temporizador. Mediante un valor de
tipo decimal indica el tiempo en segundos.
Valor de retorno:
En s este comando no tiene valor de retorno ya que no se ejecuta directamente en el
sistema. Es el frontend de operaciones el encargado de implementar el temporizador.
del sistema definido en el captulo anterior, permite incorporar la informacin del modelo
de operaciones al modelo del sistema, pero no incluye ninguna referencia al frontend de
operaciones.
Al objeto de aplicar el metamodelo de operaciones ya definido, como soporte en el
modelado de un frontend de operaciones de dominio especfico, se define en este captulo
una propuesta de metamodelo UML que refleja la interaccin entre el frontend de operaciones y el sistema, tomando como base el metamodelo de modelo de operaciones de un
sistema definido en el captulo anterior. Este nuevo metamodelo refleja el sistema bajo operacin, el frontend de operaciones y las interfaces definidas entre ambos que posibilitan la
interaccin.
Por otra parte se describe una arquitectura conceptual del frontend de operaciones
definiendo los diferentes niveles de abstraccin existentes en la interaccin entre operador y sistema: interaccin operador-sistema, interaccin frontend-sistema, comunicacin
frontend-sistema, interfaz grfica de usuario orientada al operador del sistema, y ncleo del
frontend de operaciones.
Finalmente, se plantea un conjunto de comandos bsicos de operacin del sistema que
sea aplicable a diferentes dominios de aplicacin, compuesto por operaciones de administracin o configuracin, de interaccin y de procedimiento.
207
208
Captulo VII
APLICACIN DEL MODELO DE OPERACIONES A
UN CASO PRCTICO
209
7.1. Introduccin
En este captulo se presenta una aplicacin del modelo de operaciones de un sistema en
un caso prctico, en base a las aportaciones realizadas en este trabajo. El sistema elegido
para el caso prctico que se presenta corresponde al software que opera y monitoriza un
conjunto de mquinas de juego de azar interconectadas. Este tipo de sistemas tienen que
cumplir la normativa legal existente, y superar un proceso de certificacin por el organismo
oficial correspondiente para poder ser utilizados por el pblico autorizado (personas con
mayora de edad) en salas de juego.
Si bien las mquinas en su funcionamiento habitual interactan directamente con los
jugadores mediante dispositivos fsicos (botones, palancas, seales visuales y acsticas,
etc.) existen casos en los que dicha interaccin puede requerir de la existencia de un sistema
software. Uno de estos casos est relacionado con la validacin del sistema en procesos de
fabricacin, certificacin y revisiones peridicas. La validacin del sistema puede apoyarse
en la existencia de un modelo de operaciones que facilite la operacin de las mquinas
desde sistemas software, y que no requieran de personas y monedas fsicas para la llevar a
cabo la evolucin del juego.
Otro caso, es el de habilitar el juego de forma remota, de forma que la existencia de un
modelo de operaciones que permita establecer la interaccin con el sistema de juego sea
fundamental. Por ejemplo, jugadores que jueguen en diferentes sistemas fsicos al mismo
tiempo (de una misma sala o de varias salas diferentes) conectados por lneas de comunicacin. Incluso sistemas de mquinas de juego interconectadas con interaccin Web.
Por ltimo, destacar que el modelo de operaciones propuesto en este trabajo es aplicable a sistemas intensivos software que dispongan de una interfaz software que permita
interaccin con/desde el exterior. Este caso prctico representa un ejemplo de cmo aplicar
el modelo de operaciones propuesto en el proceso de desarrollo de sistemas con software,
sirviendo de gua para su aplicacin a sistemas con software en general.
210
En este captulo se presenta en primer lugar una descripcin del sistema objeto de estudio. En segundo lugar se describe el modelo del sistema y posteriormente, se ampla dicho
modelo para incluir los aspectos de operaciones del sistema. Y por ltimo, se analiza la
aportacin del enfoque basado en el modelo de operaciones en los procesos de desarrollo y
operaciones de sistemas.
7.2.
211
acumulado se concede individualmente por cada mquina (no existe un control en la concesin del premio por el hecho de estar interconectadas). Sin embargo la cantidad del premio
se calcula como un porcentaje del total del dinero ingresado en el conjunto de las mquinas
interconectadas.
As, como conjunto interconectado, el sistema estar compuesto por una serie de mquinas de juego de azar, a las que llamaremos Acumuladores, interconectadas a una mquina
o dispositivo central, a la que llamaremos Master. Ambos tipos de mquinas dispondrn de
tarjetas de entrada y salida con el software necesario para interactuar entre ellas. La figura
32 muestra la composicin del sistema para tres mquinas de tipo acumulador y una de tipo
master.
Las mquinas de tipo acumulador disponen de un contador de crditos y producen dos
tipos de premios:
Premio interno que proporciona la mquina individualmente.
Premio especial acumulado o jackpot acumulado, cuya cantidad viene determinada
por la mquina de tipo master, como un porcentaje de las cantidades ingresadas en
todas las mquinas interconectadas.
La mquina de tipo master no es una mquina de juego en s misma sino que acta como
controladora del premio especial acumulado, recibiendo de cada mquina acumulador los
crditos o cantidades que van ingresando y gestionando dicho valor de acumulado. Con
el total de crditos recibidos en todas las mquinas, el master calcula un porcentaje de
la cantidad total acumulada que ser la cantidad asociada al premio de tipo jackpot. El
algoritmo o mecanismo que otorga el premio jackpot a una mquina determinada no lo
facilita el fabricante, ya que es informacin confidencial. Cuando una mquina proporciona
el premio Jackpot, la mquina central master enva una seal de bloqueo a cada mquina
de juego. Posteriormente, la persona que haga las funciones de jefe de sala entregar el
premio, normalmente un cheque bancario, al jugador que lo consigui, e iniciar a travs
212
213
214
las apuestas efectuadas. En el caso de que est proyectada para acumular un porcentaje de lo apostado para constituir jackpots o premios especiales, esta acumulacin ser
adicional al porcentaje previsto en el prrafo anterior [RD 2110: Artculo 10(d)].
R6. Si el volumen de monedas del premio excediese de la capacidad del depsito
de reserva de pagos, los premios podrn ser pagados manualmente al jugador por
un empleado de la sala, en cuyo caso debern disponer de un avisador luminoso
y/o acstico que se active de manera automtica cuando el jugador obtenga dicho
premio. Dispondrn, adems, de un mecanismo de bloqueo que, en el caso previsto
anteriormente, impida a cualquier jugador seguir utilizando la mquina hasta que el
premio haya sido pagado y la mquina desbloqueada, por el personal al servicio de
la sala [RD 2110: Artculo 11(2)].
R7. El importe mximo del premio que pueda conseguirse por todos los conceptos a
travs de las mquinas interconectadas no podr ser superior a la suma de los premios
mximos del total de las mquinas interconectadas [RD 2110: Artculo 12(2)].
R8. Las mquinas de tipo B y C debern incorporar contadores que cumplan los
requisitos siguientes [RD 2110: Artculo 13(1)]:
1. Identifiquen la mquina en que se encuentran instalados.
2. Almacenen los datos correspondientes al nmero de partidas realizadas y premios obtenidos, de forma permanente y acumulada desde su primera instalacin.
La instalacin de los contadores no ser preceptiva para las mquinas de tipo C, si
el establecimiento, en que estn instaladas dispone de un sistema informtico central
autorizado previamente y conectado a las mquinas en el que queden registradas, al
menos, las mismas operaciones que los contadores individuales de las mquinas [RD
2110: Artculo 13(3)].
215
R9. Todos los modelos de mquinas de tipo B y C debern ser sometidos, con
anterioridad a su homologacin, a ensayo en entidad autorizada por la Comisin
Nacional del Juego [RD 2110: Artculo 18(1)].
R10. En la disposicin adicional primera del RD 2110/1998 se incluye la siguiente
terminologa:
1. Apuesta: cantidad de dinero, que el jugador arriesga a cambio de la posibilidad
de obtener un premio o ganancia.
2. Partida: todo conjunto de acciones o jugadas, que realiza el jugador entre la
introduccin del precio de la partida y su prdida o cobro del premio en su
caso.
3. Jugada: cada una de las intervenciones del jugador o cada uno de los lances que
se realizan en el transcurso de una partida.
7.2.3. Descripcin del problema a resolver
Todo sistema compuesto de mquinas de juego interconectadas tiene que ser certificado
antes de su utilizacin. Esta certificacin comprende la validacin del sistema respecto de
los requisitos enunciados anteriormente. La validacin del sistema se fundamenta en la
operacin del mismo. Esto es, para comprobar el cumplimiento de requisitos es necesario
tener el sistema en funcionamiento y realizar las acciones u operaciones pertinentes.
La interconexin de mquinas requiere una mutua comunicacin entre el dispositivo
central y las mquinas de juego participantes en la interconexin. Para ello:
1. El dispositivo central al que hemos llamado Master tiene que:
a) Almacenar el porcentaje de acumulado correspondiente al premio especial jackpot y actualizarlo continuamente recibiendo de cada mquina interconectada las
cantidades ingresadas.
216
Descripcin de la solucin
217
ejecucin de las pruebas de forma asistida mediante algn sistema software que permita interaccin con el sistema de mquinas de juego desde el exterior de las mismas. Esto evitara la necesidad de utilizar las interfaces fsicas de la mquina con
el jugador como botones, palancas, seales visuales y acsticas, etc. El software externo que posibilite la interaccin con el sistema constituira en s un frontend de
operaciones del sistema.
Esta solucin requiere de la existencia de algn tipo de interfaz en el sistema que
permita la interaccin con el sistema software externo al mismo. Para ello es preciso disponer de una interfaz software en cada una de las mquinas interconectadas
(incluido el Master) que acepte comandos de operacin desde el exterior y retorne
respuestas y notificaciones al frontend de operaciones.
La solucin que se ha descrito para la certificacin del sistema por medio de la validacin automtica o semi-automtica, est en lnea con la existencia de un frontend de operaciones que soporte la interaccin entre sistema y operadores que representen jugadores.
Un frontend de operaciones sera de aplicacin asimismo en el caso de que la solucin
buscada en lugar de ser la validacin del sistema fuese una forma de juego remota, donde
los jugadores no actuasen directamente sobre las mquinas sino que utilizasen el frontend
de operaciones para interactuar con ellas.
218
Req2. Es preciso insertar monedas en los acumuladores para poder jugar con ellos.
El coste de una partida en la mquina se denomina crdito. El jugador puede insertar
tantos crditos como desee en un acumulador.
Req3. El acumulador se pone a jugar cuando recibe la orden de inicio por parte
del jugador (por ejemplo, pulsando un botn, accionando una palanca o enviando la
orden correspondiente).
Req4. Una vez iniciado el juego en un acumulador, ste estar jugando hasta que
agote los crditos, o bien hasta que reciba la orden de finalizar el juego por parte del
jugador.
Req5. Los acumuladores proporcionan premios consistentes en dinero como resultado del juego realizado con ellos. Existen dos tipos de premios:
1. Premio al que llamaremos normal, obtenido como consecuencia del funcionamiento individual de la mquina.
2. Premio especial o jackpot, producido en un acumulador concreto como consecuencia de la interconexin de las mquinas de juego. Este premio corresponde a un porcentaje de las cantidades jugadas en todas las mquinas interconectadas.
Req 6. Si el volumen de monedas del premio excediese de la capacidad del depsito
de reserva de pagos, los premios podrn ser pagados manualmente al jugador por
un empleado de la sala, en cuyo caso debern disponer de un avisador luminoso
y/o acstico que se active de manera automtica cuando el jugador obtenga dicho
premio. Dispondrn, adems, de un mecanismo de bloqueo que, en el caso previsto
anteriormente, impida a cualquier jugador seguir utilizando la mquina hasta que el
premio haya sido pagado y la mquina desbloqueada, por el personal al servicio de
la sala [RD 2110: Artculo 11(2)].
219
Req7. El importe mximo del premio que pueda conseguirse por todos los conceptos
a travs de las mquinas interconectadas no podr ser superior a la suma de los premios mximos del total de las mquinas interconectadas [RD 2110: Artculo 12(2)].
Req8. Las mquinas de tipo acumulador incorporarn contadores que:
1. Identifiquen la mquina en la que se encuentran instalados.
2. Almacenen los datos correspondientes al nmero de partidas realizadas y premios obtenidos, de forma permanente y acumulada desde su primera instalacin.
diagrama de actividad
diagrama de secuencia
7.4.1. Diagrama de casos de uso
Como punto de partida en el modelado del sistema de mquinas de juego interconectadas se utiliza un modelo de casos de uso que define los requisitos generales del juego.
Este modelo de casos de uso plantea las interacciones de un jugador con el sistema, y en
particular con la mquina de juego, llamado acumulador. Los distintos actores y casos de
uso de dicho modelo se muestran en el diagrama de casos de uso de la figura 33.
El diagrama de casos de uso define los requisitos desde el punto de vista del juego para
una mquina de tipo acumulador, por lo que la mquina master se representa como un actor.
En concreto en dicho diagrama, se han representado los siguientes actores:
Player. Representa a la persona que juega con la mquina de juego. Fsicamente, un
jugador introduce monedas en la mquina, e interacciona con la mquina accionando
los botones o dispositivos de juego y obteniendo resultados visibles del juego, y en
caso de premio, el importe de ste en monedas. Si el premio obtenido es un premio
especial jackpot el responsable de la sala de juego le entrega la cantidad premiada
personalmente.
Master. Este actor representa a la mquina o dispositivo central en la interconexin
de las mquinas de juego.
Machines Responsible. Este actor representa a la persona encargada de la sala de
juegos y entre sus funciones se encuentra la de entregar personalmente la cantidad
del premio jackpot al jugador de la mquina de juego premiada. Y una vez hecha la
entrega, el responsable debe accionar el desbloqueo de las mquinas de juego para
que contine el juego.
221
222
223
1. El jugador inserta n crditos en la mquina (actividad Increase n Credits). En mquinas fsicas normalmente los crditos equivalen a monedas, por lo que el jugador
inserta monedas en la mquina que se traducen en crditos para jugar.
2. El jugador acciona los botones o dispositivos indicados para iniciar una jugada en la
mquina y siempre que el nmero de crditos sea suficiente la mquina iniciar la
jugada (actividad Play).
3. La mquina de juego comprueba el resultado de la jugada producindose una de las
siguientes situaciones:
a) El juego realizado por el jugador en la mquina no obtiene ningn tipo de premio como resultado.
b) El juego realizado por el jugador en la mquina obtiene un premio de la mquina
de juego (representado por la actividad NormalPrize). Este es un premio que
concede la mquina de forma independiente, es decir, no asociado a la interconexin de las mquinas de juego.
c) El juego realizado por el jugador en la mquina obtiene un premio que corresponde al premio especial jackpot (representado por la actividad Jackpot Prize).
Este es el premio especial asociado a la interconexin de las mquinas de juego,
calculado como un porcentaje del total del dinero ingresado en las mquinas de
juego. Este tipo de premio produce un bloqueo de todas las mquinas de juego
interconectadas, hasta que el responsable de la sala de juegos haga entrega personal de la cantidad de dicho premio al jugador agraciado.
4. Si quedan crditos suficientes en la mquina el jugador puede seguir jugando si lo
desea, en caso contrario finaliza la partida.
224
225
Asociaciones
accumulators: Accumulator [3..*]
Mquinas de juego interconectadas a travs de la mquina master. Existe una restriccin en la cardinalidad mnima, dado que el mnimo nmero de mquinas necesarias
para un sistema de mquinas de juego interconectadas es de tres segn marca la normativa legal en la que se han basado los requisitos del sistema.
accumulatorWiner: Accumulator [0..1]
Esta asociacin permite conocer al master qu mquina acumulador es la que ha
concedido el premio especial jackpot. La cardinalidad mnima es 0 puesto que el
premio jackpot no se concede de forma continuada; y mxima 1, puesto que en un
instante dado a lo sumo una mquina concede este tipo de premio.
Atributos
masterID: Identifier
Identificador de la mquina master.
accumulatedJackpot: Money
Cantidad de dinero acumulado para el premio especial jackpot.
jackpotState: boolean
Estado de juego respecto al premio jackpot.
Interfaces
La clase Master implementa la interfaz MasterBasicFunctionallity y adems usa la interfaz AccumulatorControl de cada una de las mquinas acumuladoras interconectadas.
MasterBasicFunctionallity
Interfaz implementada por la clase Master y que contiene las operaciones que ofrece
a la clase Accumulator.
227
AccumulatorControl
Interfaz que usa la clase Master para enviar operaciones a los acumuladores que
tenga conectados.
Mtodos
No se han definido mtodos.
7.4.2.3. Clase Accumulator
Descripcin
Representa el tipo de mquina de juego o acumulador, que interacta con el jugador.
Asociaciones
master: Master [1]
Dispositivo central al que est conectada la mquina acumulador.
masterJackpot: Master [0..1]
Establece la relacin con la mquina master para determinar la mquina acumulador
que ha obtenido el premio jackpot en un momento dado.
allGames: Game [0..*]
Representa todas las jugadas realizadas por la mquina de juego.
currenteGane: Game [0..1]
Jugada actual, es decir la que se est jugando en un momento dado. La cardinalidad
mnima 0 indica que una mquina puede no estar jugando en una instante dado.
Atributos
accumulatorID: Identifier
Identificador de la mquina de juego o acumulador.
228
maxPrize: Money
Valor mximo de dinero que puede conceder la mquina en un premio.
creditCounter: Money
Contador de crditos disponibles para jugar en cada instante.
playCounter: int
Nmero de jugadas realizadas en la mquina de juego desde su instalacin.
accumulatedDelivery: Money
Cantidad total de dinero en premios entregada por la mquina de juego desde su
instalacin.
state: AccumulatorState
Estado en el que se encuentra el acumulador: jugando, bloqueado, desbloqueado o
parado.
accumulatedJackpot: Money
Cantidad total de dinero destinada al premio especial jackpot en cada momento.
Mtodos
No se han definido mtodos.
Interfaces
La clase Accumulator implementa las interfaces AccumulatorControl y Play mediante
las cuales recibe entradas desde la mquina master y desde el exterior respectivamente. Y
usa la interfaz MasterBasicFunctionallity para enviar entradas a la clase Master.
AccumulatorControl
Interfaz implementada por la clase Accumulator para recibir entradas desde la clase
Master.
229
Play
Interfaz implementada por la clase Accumulator para recibir entradas desde el operador de la mquina, esto es, el jugador.
MasterBasicFunctionallity
Interfaz que usa la clase Accumulator para enviar entradas al master.
7.4.2.4.
Clase Game
Descripcin
Representa las jugadas realizadas en cada una de las mquinas de juego interconectadas.
Asociaciones
accumulator: Accumulator [1]
Mquina de juego a la que corresponde la jugada que representa el objeto de la clase
Play.
prize: Prize [0..1]
Premio obtenido en una jugada, en caso de haberlo. La cardinalidad mnima 0 expresa
la no consecucin del premio.
Atributos
combination: Combination
Combinacin de elementos o figuras obtenidas en la jugada, y que determinan la
consecucin o no de premio.
Mtodos
No se han definido mtodos.
230
7.4.2.5.
Clase Prize
Descripcin
Representa los premios obtenidos en las jugadas realizadas en cada una de las mquinas de juego interconectadas. El premio se especializa en dos subclases: premio normal
producido en la mquina con independencia de la interconexin con otras, o bien premio
jackpot que corresponde al premio especial derivado de la interconexin de las mquinas
de juego.
Asociaciones
play: Game [1]
Jugada en la que se ha obtenido el premio.
Atributos
amount: Money
Cantidad de dinero otorgada al premio.
Mtodos
No se han definido mtodos.
7.4.2.6.
Clase NormalPrize
Descripcin
Subclase de la clase Prize, que corresponde a un premio producido en la mquina independientemente de la interconexin con otras mquinas.
Asociaciones
No se han definido.
231
Atributos
No se han definido.
Mtodos
No se han definido.
7.4.2.7. Clase JackpotPrize
Descripcin
Subclase de la clase Prize, que corresponde a un premio especial producido en la mquina
de juego, asociado a la interconexin con otras mquinas. La cantidad de dinero correspondiente a este premio lo determina la mquina master como un porcentaje del total de dinero
ingresado en las mquinas de juego.
Asociaciones
No se han definido.
Atributos
No se han definido.
Mtodos
No se han definido.
7.4.2.8.
Interfaz MasterBasicFunctionallity
Descripcin
La clase Master implementa esta interfaz para que las mquinas de juego puedan interactuar con ella.
Operaciones
Las operaciones que ofrece el master a las mquinas de juego mediante esta interfaz son
232
las siguientes:
increaseJackpotAccum ( amnt: Money ) : void
Una mquina acumulador invoca esta operacin del master cuando recibe nuevos
crditos por parte del jugador. Tiene como parmetro de entrada la cantidad de dinero
ingresada en el acumulador y no tiene valor de retorno.
generalJackpot ( id : Identifier ) : void
Una mquina acumulador invoca esta operacin del master cuando concede el premio
especial jackpot. Con esta operacin el acumulador que ha dado el premio jackpot se
lo comunica al master, indicndole su identificador de mquina.
7.4.2.9.
Interfaz AccumulatorControl
Descripcin
La clase Accumulator implementa esta interfaz para que el master pueda enviar entradas
a los acumuladores.
Operaciones
Las operaciones que ofrece el master a las mquinas de juego mediante esta interfaz son
las siguientes:
updateJackpotAccum ( amnt : Money ) : void
La mquina acumulador que recibe esta entrada, actualiza el valor de su atributo
accumulatedJackpot al valor recibido en el parmetro amnt.
lock ( ) : void
La mquina acumulador que recibe esta entrada desde el master, se queda en estado
bloqueado hasta recibir una entrada de desbloqueo por medio de la operacin unlock.
unlock ( ) : void
233
La mquina acumulador que recibe esta entrada desde el master, pasa a estado desbloqueado o activo.
7.4.2.10.
Interfaz Play
Descripcin
Esta interfaz la implementa la clase Accumulator para que desde el exterior un operador,
haciendo las veces de jugador, pueda enviarle entradas.
Operaciones
Las operaciones que ofrece el acumulador a un jugador mediante esta interfaz son las
siguientes:
increaseCredits ( in amnt : Money ) : void
Cuando un acumulador recibe esta operacin modifica el valor de su contador de
crditos disponibles (atributo creditCounter) sumndole la cantidad dada por el parmetro de entrada amnt.
play ( in amnt : Money ) : Game
Esta operacin iniciada por un jugador pone a la mquina que la recibe en modo
juego. Recibe como parmetro la cantidad de crditos a jugar y devuelve el objeto de
la clase Game obtenido.
finish ( ) : Money
Al recibir esta operacin una mquina acumulador deja de jugar si estuviera jugando.
7.4.3. Diagrama de actividades
La figura 36 muestra un segundo diagrama de actividades del sistema, con mayor nivel de detalle que el presentado anteriormente en la figura 34 al describir el workflow del
sistema de juego.
234
235
236
Este diagrama de actividades define el workflow que se produce entre un jugador y una
mquina de juego o acumulador:
1. El jugador introduce monedas en la mquina de juego o acumulador aumentando el
contador de crditos de la misma.
2. El jugador presiona el botn, palanca o dispositivo de comienzo de juego existente
en la mquina.
3. La mquina de juego decrementa el nmero de crditos correspondiente al coste de
la partida.
4. La mquina de juego comunica al master el comienzo de la jugada, para que ste
incremente el valor acumulado del premio jackpot general a todas las mquinas interconectadas. El valor de este acumulado equivale a un porcentaje de las cantidades
jugadas en todas las mquinas interconectadas para cada ciclo de premio jackpot.
5. El master enva a cada una de las mquinas interconectadas el nuevo valor del acumulado del premio jackpot comn.
6. La mquina acumulador genera de forma aleatoria la combinacin asociada a la jugada realizada.
7. La mquina acumulador comprueba la existencia de premio en la jugada producida.
8. Si la jugada no obtiene premio, la mquina pasa a comprobar el estado del contador
de crditos (paso 12).
9. Si la jugada obtenida corresponde con alguno de los premios programados, la mquina
notifica al jugador el premio y cantidad obtenida. Por otra parte, actualiza el valor del
contador de premios entregados por la mquina.
237
238
obtenida en la jugada no tiene premio o tiene un premio de tipo normal. Por contra
si la combinacin corresponde a un premio especial jackpot pasa a estado jackpot.
Tambin podr pasar a estado locked en el caso de que alguna otra de las mquinas
acumulador conceda el premio jackpot.
3. jackpot. En estado jackpot manda un aviso a la mquina master indicndole la consecucin de este tipo de premio, y cuando la mquina master se lo indique pasar a
estado locked.
4. locked. La mquina est bloqueada impidiendo el juego. Pasa a estado unlocked
cuando se lo indique la mquina master.
5. unlocked. La mquina se encuentra en estado desbloqueado reanudando la posibilidad de juego con ella. Si la mquina acumulador fue la que concedi el premio
jackpot pasa a estado ready. En caso contrario, pasar a estado ready o estado
play en funcin del estado en el que se encontrase antes del bloqueo.
6. finished. La mquina finaliza la partida de juego. Si el jugador introduce monedas
comienza un nuevo ciclo de juego.
Esta seccin incluye la especificacin del modelo de operaciones para el sistema caso de
estudio, tomando como punto de partida la definicin de modelo de operaciones del sistema
realizada en el captulo 4. El modelo de operaciones del caso prctico se ha especificado
aplicando el perfil U2OP de operaciones del sistema, definido en el captulo 5. Se obtiene
como resultado un diagrama de clases decorado con los estereotipos definidos en el perfil
U2OP.
El modelo de operaciones del sistema caso de estudio se ha reflejado en el diagrama
de clases incluido en el modelo de sistema definido con anterioridad, figura 35. El modelo
de operaciones se incluye decorando el diagrama de clases por medio de los estereotipos y
tipos de datos incluidos en el perfil U2OP, tal y como muestra la figura 39.
Los cambios que se han aplicado al modelo de clases al ser decorado con los mecanismos de extensin definidos en el perfil U2OP, permiten identificar de forma clara en el
modelo:
1. Los diferentes elementos que componen el sistema por medio del estereotipo definido
como U2OP_SystemElement, y sus propiedades perceptibles que corresponden
con variables monitorizadas y/o controladas en el modelo de operaciones, por medio
de los estereotipos:
a) U2OP_Monitored
b) U2OP_Controlled
c) U2OP_MonitoredAndControlled
2. Las relaciones o conexiones existentes entre los diferentes elementos que componen
el sistema y que son visibles desde el exterior del sistema, por medio del estereotipo
U2OP_VisibleRelation.
3. Las interfaces implementadas por cada elemento del sistema con las entradas que
acepta, por medio del estereotipo U2OP_Input. Cada una de estas entradas corresponde con un comando de entrada estereotipado como U2OP_InputCmd.
241
4. Las salidas generadas por cada elemento del sistema con destino el frontend de operaciones, representadas por las interfaces que usa el elemento, por medio del estereotipo U2OP_Output. En estas interfaces se emplea por un lado el estereotipo
U2OP_Notification para las notificaciones y por otro, el estereotipo U2OP_Alarm
para las alarmas.
A continuacin se describen cada uno de los elementos del modelo del sistema que han
sido estereotipados con los estereotipos que define el perfil U2OP.
7.5.1. SystemElement
Con este estereotipo se han decorado las clases que representan los elementos que componen un sistema de mquinas de juego interconectadas, con capacidad de interaccin desde el exterior:
1. Mquina master
2. Mquina acumulador
7.5.2. VisibleRelation
Este estereotipo se aplica a aquellas relaciones entre los elementos que componen el
sistema que son perceptibles por el operador desde el exterior del sistema, esto es, desde el
frontend de operaciones. Se ha estereotipado nicamente como U2OP_VisibleRelation
la asociacin entre las clases Master y Accumulator que representa la conexin entre las
mquinas de tipo master y de tipo acumulador. La otra asociacin existente entre las clases
Master y Accumulator que representa la mquina acumuladora que ha conseguido el premio jackpot en un instante dado, no se ha identificado con este estereotipo puesto que es
interna al sistema, y no es de inters para el operador.
242
7.5.3. Monitored
Las propiedades del sistema que se han identificado como U2OP_Monitored para
cada uno de los tipos de elementos del sistema son las siguientes:
Clase Master
Para la clase Master se estereotipan como monitorizadas las siguientes propiedades:
accumulatedJackpot. El operador puede obtener la cantidad de dinero asignada en
cada momento por la mquina master al premio especial jackpot que conceden las
mquinas de juego.
jackpotState. El estado del master respecto a la concesin o no de premio especial
jackpot en alguna de las mquinas de juego interconectadas, puede ser consultado en
cualquier momento por el operador.
Clase Accumulator
De la clase Accumulator se tendr una monitorizacin de propiedades similar a la de la
mquina master:
state. El estado en el que se encuentra una mquina de tipo acumulador en cada
instante, con un dominio de valores que vendr definido en cada sistema en particular
por el tipo de datos AccumulatorState.
accumulatedJackpot. Valor del premio acumulado jackpot que proporcionar una
mquina de tipo acumulador al conceder el premio jackpot en un instante dado. Este
valor vara continuamente en funcin de los crditos jugados entre todas las mquinas
de tipo acumulador.
7.5.4. MonitoredAndControlled
Las propiedades del sistema identificadas como U2OP_MonitoredAndControlled son
las siguientes:
244
Clase Master
El elemento master no tiene ninguna propiedad controlada externamente por el operador.
Clase Accumulator
Una mquina de tipo acumulador tendr una nica propiedad controlada externamente
por el operador:
creditCounter. El operador modifica externamente la cantidad de crditos de una
mquina de tipo acumulador, incrementando el contador de crditos, y monitoriza
a su vez el valor del contador de crditos.
7.5.5. Input
Las interfaces estereotipadas como U2OP_Input se han aadido al diagrama de clases
como parte del modelo de operaciones del sistema. En el diagrama de clases inicial, antes
de ser decorado con el perfil U2OP, no figuran ya que representan la interaccin de entrada
con un frontend de operaciones del sistema.
Clase Master
Se ha estereotipado la interfaz Master_InputOperation implementada por la clase Master
como U2OP_Input. Esta interfaz define las operaciones de entrada que acepta dicha clase
desde el exterior.
Clase Accumulator
La interfaz Master_InputOperation que implementa la clase Accumulator se ha estereotipado como U2OP_Input porque contiene las operaciones de entrada que acepta desde el
exterior.
7.5.6. Output
Las interfaces estereotipadas como U2OP_Output, al igual que sucede con las estereotipadas como U2OP_Input, no figuran en el diagrama de clases inicial del modelo
245
del sistema, figura 35, ya que se incorporan al definir el modelo de operaciones del sistema, como forma de representar la interaccin de salida con un frontend de operaciones
del sistema.
Clase Master
Se ha estereotipado como U2OP_Output la interfaz Master_OutputOperation que usa
la clase Master para enviar al exterior las salidas que genera durante la operacin del sistema.
Clase Accumulator
Tambin se ha estereotipado como U2OP_Output la interfaz Accum_OutputOperation
que usa la clase Accumulator para enviar sus salidas al exterior.
7.5.7. CmdInput
Con el estereotipo U2OP_CmdInput se estereotipan las operaciones de entrada de
cada elemento del sistema, incluidas en las interfaces hacia el exterior que implementan.
Para cada uno de los dos tipos de elementos del sistema se han estereotipado las siguientes
operaciones de entrada.
Clase Master
Los comandos de operacin que acepta una mquina de tipo master son los siguientes:
Master_GetAccumulatedJackpot() : Money
Operacin que permite al operador conocer en un instante dado la cantidad de dinero
calculada por la mquina master para el premio especial jackpot que conceden las
mquinas de tipo acumulador.
Master_GetJackpotState() : boolean
Esta operacin permite conocer si el sistema se encuentra o no en un estado de concesin de premio jackpot por parte de alguna de las mquinas de juego.
246
Clase Accumulator
Los comandos de operacin que acepta una mquina de tipo acumulador son los siguientes:
Accum_GetCreditCounter() : Money
Por medio de esta operacin una mquina de tipo acumulador retorna el valor actual
de su contador de crditos.
Accum_SetCreditCounter( mon : Money ) : void
Con esta operacin la mquina acumulador acepta una nueva cantidad, pasada como
parmetro, en su contador de crditos.
Accum_GetJackpot() : Money
Esta operacin proporciona la cantidad de dinero que dar la mquina acumulador
en un instante dado al proporcionar un premio especial jackpot.
Accum_Start() : void
La mquina acumulador se pone a jugar siempre y cuando disponga de crditos, esto
es, si el valor del contador de crditos es igual o superior a la unidad.
Accum_Finish() : void
Con esta operacin una mquina acumulador finaliza el juego, an quedando crditos
en su contador de crditos.
7.5.8. Notification
Clase Master
La clase Master proporciona una nica salida hacia el frontend de operaciones en forma
de notificacin:
Master_Notif_Jackpot() : JackpotResult
247
La mquina master por medio de esta notificacin comunica al frontend de operaciones el resultado de un premio jackpot ocurrido en las mquinas de juego interconectadas. Dicho resultado, representado por un objeto de la clase JackpotResult
contiene el identificador de la mquina acumulador donde se ha producido el premio
y la cantidad de dinero correspondiente al premio.
Clase Accumulator
Los objetos de la clase Accumulator proporcionan las siguientes salidas hacia el frontend
de operaciones en forma de notificaciones:
Notif_Locked() : void
Esta notificacin avisa que la mquina acumulador pasa a estado bloqueado, impidiendo el juego.
Notif_Unlocked() : void
Esta notificacin avisa que la mquina acumulador pasa a estado desbloqueado, reanudando de nuevo el juego o quedando en disposicin de iniciar una nueva partida.
Notif_Jackpot() : Money
Comunica al frontend de operaciones que se ha producido un premio especial jackpot
en la mquina acumulador.
Notif_Credit() : Money
La mquina acumulador genera esta salida cada vez que vara el valor de su contador
de crditos.
7.5.9. Alarm
Clase Master
La clase master no tiene salidas de tipo alarma hacia el exterior.
248
Clase Accumulator
Se ha definido un nica salida de tipo alarma para la clase Accumulator:
Alarm_Credit0() : void
Esta alarma se produce cuando una mquina de tipo acumulador que est jugando se
queda sin crditos suficientes para continuar jugando.
7.6.
249
250
Captulo VIII
APLICACIN DEL MODELO DE OPERACIONES EN
PROCESOS DE DESARROLLO Y OPERACIN DE
SISTEMAS
251
252
253
sistema aporta mayor claridad al modelo de operaciones del sistema, ya que refleja
el conjunto de comandos accesibles desde el exterior y el conjunto de salidas que el
sistema puede enviar al exterior. Sin embargo sigue existiendo cierta dispersin, ya
que la definicin de interfaces suele incluir no solo los aspectos de interaccin con
el exterior, sino que incluye tambin los aspectos de interaccin interna con otros
elementos del sistema. La definicin explcita del modelo de operaciones mediante
el perfil U2OP proporciona ms semntica en la definicin de las interfaces y aporta
mayor claridad al conjunto de stakeholders.
En resumen, el modelado de sistemas habitualmente no contempla una definicin explcita de las operaciones del sistema, producindose una dispersin de la informacin de
las operaciones del sistema entre el conjunto de diagramas definidos, lo que dificulta su
comprensin.
Adems, al no ser el modelo de operaciones de un sistema un objetivo en s mismo, los
aspectos de operaciones del sistema se relegan a un segundo plano, ya que:
1. Los diagramas utilizados en la fase de anlisis no suelen incluir mtodos (operaciones) en las clases.
2. Hasta que no se llega al diseo hay muchos aspectos del modelo de operaciones que
no afloran.
Este trabajo plantea la definicin explcita del modelo de operaciones del sistema en
el proceso de desarrollo de sistemas. El modelo de operaciones complementa al modelo
del sistema aportando una definicin clara y concisa de la interaccin entre un sistema y un
frontend de operaciones de ste.
La especificacin del modelo de operaciones en las etapas iniciales del proceso de desarrollo permitir agilizar el desarrollo del sistema. Dicha especificacin proporciona la
base para disponer en etapas tempranas de una interfaz del sistema con el exterior y de un
254
frontend de operaciones del sistema. La existencia de ambos posibilita un desarrollo incremental del sistema, creando los componentes del sistema gradualmente, e integrndolos
con otros componentes ya creados o simulados.
La informacin incluida en el modelo de operaciones permite definir la interfaz software del sistema basado en sus entradas y salidas. Tambin sirve como soporte para crear
o adaptar el frontend de operaciones proporcionando:
1. La estructura de elementos y propiedades perceptibles del sistema.
2. La base para definir el lenguaje de operaciones para interactuar con el sistema.
Adems como valor aadido, la utilizacin del perfil UML de operaciones U2OP permite guiar la definicin del modelo de operaciones del sistema, aportando:
Una terminologa y vocabulario propios orientados a la operacin del sistema.
Ms semntica al modelo que la que permite el modelo o metamodelo del sistema.
Informacin de utilidad en la transformacin de modelos.
Por otra parte, consideramos que la utilizacin de un modelo de operaciones del sistema puede ser de aplicacin en diferentes metodologas de desarrollo de sistemas tanto
convencionales como giles.
8.2.
Los sistemas intensivos en software son cada da ms complejos, por lo que la industria
requiere de otros enfoques, prcticas y facilidades para probar y operar dichos sistemas. El
proceso de validacin y de forma relacionada las herramientas de validacin, ocupan una
posicin cada vez ms relevante en el contexto del conjunto de procesos del ciclo de vida,
ya que son muy cercanos a las salidas que el usuario final espera. La ejecucin sistemtica
255
256
notificaciones producidas en el sistema. Estos procedimientos representarn procedimientos de prueba en el caso de aplicar el frontend al proceso de pruebas del sistema, y representarn procedimientos de operacin en el caso de aplicarse a la operacin/monitorizacin
del sistema.
El frontend de operaciones representa en s una herramienta de operacin y/o pruebas
del sistema. La arquitectura conceptual del frontend definida en la seccin 6.3 (pgina
186) mediante cinco niveles de abstraccin, identifica cuatro componentes principales en
el frontend de operaciones: GUI, Frontend Engine, Repository Manager y Gateway. Esta
arquitectura es independiente del dominio del sistema bajo operacin, no as la herramienta
software que representa el frontend de operaciones. An as, la especificacin del modelo
de operaciones del sistema contribuir a reducir esfuerzos en la generacin o adaptacin
del frontend de operaciones para un sistema concreto, dado que:
Facilita la creacin de las interfaces software de operacin, llamadas OI (Operation
Interface) en la arquitectura conceptual del frontend de operaciones, para cada elemento del sistema, identificando las entradas y salidas para cada uno de ellos.
Sirve como base para definir la gramtica y lenguaje de operaciones del sistema,
proporcionando soporte en la generacin de los componentes Gateway y Frontend
Engine que tratan las entradas y salidas con el sistema.
Facilita la generacin de la GUI, identificando la vista del sistema perceptible por
el operador, esto es, elementos del sistema y sus propiedades perceptibles, as como
sus entradas y salidas representadas por comandos de operacin, respuestas, notificaciones y alarmas.
Independiza la parte del modelo de datos relativa a la interaccin entre sistema y
frontend de operaciones del dominio de aplicacin concreto, disendolo en base al
modelo de operaciones del sistema definido en esta tesis.
257
258
259
el cumplimiento del requisito R2 (pgina 218) que indica que el premio acumulado jackpot debe estar comprendido entre 600 y 2000 veces el premio de la partida
simple, cada jugador ha de introducir monedas en la mquina acumulador que est
probando, observar los resultados del juego y registrarlos de alguna manera para su
posterior tratamiento. El nmero de jugadas a realizar en cada mquina ser elevado,
ya que habr que esperar a que se produzca un nmero n de premios jackpot.
La validacin asistida por la herramienta de validacin, esto es, el frontend de operaciones, reduce notablemente el esfuerzo de realizacin de las pruebas, siendo necesario eso s, que los elementos del sistema (mquinas) dispongan de una interfaz
software de operacin que posibilite la interaccin con el frontend de operaciones.
En este caso ser necesaria una nica persona, un ingeniero de pruebas, que confeccione el procedimiento de pruebas incluyendo entre otros los comandos de operacin
como asignacin de crditos y de espera condicionada a la consecucin de premio especial jackpot por parte de un acumulador. Los resultados de la prueba, respuestas a
los comandos de operacin y notificaciones enviadas por el sistema se presentan en la
GUI del frontend al ingeniero de pruebas y se almacenan en la base de datos para su
posterior tratamiento. El ingeniero de pruebas puede lanzar la prueba un nmero n
de veces para ser ejecutada de forma automtica por el frontend sin requerir ninguna
accin suya. Adems, el almacenamiento de datos de las pruebas y sus resultados
posibilita la realizacin de pruebas de regresin.
2. Frontend de Operaciones como herramienta de operacin/monitorizacin del sistema
El frontend de operaciones como herramienta de operacin/monitorizacin permite
que los jugadores puedan jugar de forma remota, y que el responsable de las mquinas pueda monitorizar el sistema. Al igual que en el caso anterior, los elementos del
sistema han de proporcionar una interfaz software de operacin. El funcionamiento
260
es anlogo al caso anterior, el operador (jugador) por medio del frontend de operaciones enva comandos de operacin al sistema y recibe las respuestas y notificaciones del sistema, lo que le permite monitorizar el juego.
8.3.
261
262
del sistema, se muestra en la figura 41, en el que se identifican las siguientes etapas:
1. Definir el concepto de sistema a desarrollar.
2. Identificar los requisitos de los stakeholders.
3. Definir el conjunto de pruebas de validacin.
4. Especificar los requisitos del sistema.
5. Definir el modelo de operaciones del sistema.
6. Definir la interfaz de operacin para cada elemento del sistema que sea perceptible
por el operador, a partir del modelo de operaciones del sistema.
7. Generar el frontend de operaciones o herramienta de validacin del sistema, a partir
del modelo de operaciones del sistema.
8. Construccin y/o simulacin de los componentes del sistema.
9. Ejecucin de las pruebas de validacin de los elementos del sistema a travs del
frontend de operaciones y pruebas definidas. Una vez implementada la interfaz de
operacin de un componente del sistema puede definirse un simulador del mismo y
participar en la pruebas aunque todava no se haya implementado completamente el
sistema.
10. Y como actividad paralela a los pasos anteriores se establece la trazabilidad correspondiente desde requisitos a componentes de diseo, incluyendo pruebas de validacin.
El enriquecimiento del proceso de desarrollo propuesto se basa en dos aspectos principales en el desarrollo del sistema, directamente relacionados con el modelo de operaciones
del sistema definido en esta tesis:
263
Desarrollo incremental del sistema, soportado por la definicin del modelo de operaciones del sistema
Validacin del sistema, soportada por la generacin de una herramienta de validacin
basada en el modelo de operaciones.
8.3.1. Desarrollo incremental del sistema
En esta tesis concebimos un sistema software como un conjunto de componentes interrelacionados. La base para un desarrollo incremental es alcanzar una adecuada trazabilidad
entre requisitos de stakeholders, requisitos del sistema y el resto de componentes arquitectnicos y unidades de cdigo [51] [10].
Los componentes se desarrollan e integran con otros componentes ya desarrollados o
con componentes simulados para los cuales se tenga definida una interfaz de operacin.
As, las pruebas de validacin se pueden ejecutar, aunque algunos componentes todava no
se hayan desarrollado, realizando una simulacin de stos y especialmente de sus interfaces
de interaccin. Esto permite que el equipo de desarrollo pueda centrarse en los requisitos
de los stakeholders, y pueda detectar tempranamente errores.
El proceso de validacin se centra en la existencia de un frontend de operaciones que
permita describir operaciones y resultados. La existencia de este frontend de operaciones,
junto con la trazabilidad desde requisitos a pruebas de validacin, permite un desarrollo
incremental del sistema [3] [11] [10] [5].
Las interfaces de operacin de cada uno de los elementos que componen el sistema se
definen a partir del modelo de operaciones, que se obtiene de los requisitos del sistema.
Una vez definida la interfaz de operacin del sistema, se crea, genera o adapta el frontend de operaciones desde el cul se pueda operar con el sistema. Desde este frontend de
operaciones se llevan a cabo las pruebas de validacin al sistema.
El modelo de operaciones del sistema dirige la construccin del sistema, facilitando
la creacin de la interfaz de operacin del sistema. As, el equipo de desarrollo puede ir
264
implementando los componentes del sistema, utilizando sus interfaces de operacin para ir
validndolos. Para esto, es preciso que el conjunto de pruebas de validacin se definan lo
antes posible. De esta manera el desarrollo del sistema va dirigido por la propia validacin
de sistema, y soportado por la especificacin del modelo de operaciones del sistema como
elemento clave en el desarrollo, que facilita la creacin de la interfaz de operacin del
sistema y de la herramienta de validacin del sistema, esto es, del frontend de operaciones.
8.3.2. Validacin del sistema
Uno de los aspectos fundamentales en los que se basa el modelo de proceso que se
propone es en la existencia del frontend de operaciones como herramienta de validacin
y operacin del sistema. El frontend de operaciones orientado a validacin debe permitir
definir, almacenar y ejecutar pruebas de validacin sobre el sistema, obtener los resultados
producidos por el sistema, y mostrar y almacenar dichos resultados.
El proceso de validacin del sistema debe determinar si el sistema desarrollado satisface
o no los requisitos. En el modelo de desarrollo incremental propuesto, se produce una
iteracin entre los pasos 8 y 9 hasta alcanzar una validacin exitosa del sistema.
Para validar el sistema se necesita tener un entorno que permita ejecutar las pruebas de
validacin sobre el sistema. Las pruebas de validacin estn compuestas de operaciones que
se especifican siguiendo el lenguaje del modelo de operaciones. El frontend de operaciones
debe implementar una interfaz que le permita interactuar con el sistema, reflejada en el
modelo de operaciones. Pero no basta con la ejecucin de las pruebas de validacin, es
preciso registrar los resultados, para poder determinar el cumplimiento de los requisitos.
Una vez definido el modelo de operaciones, la validacin del sistema comprende las
siguientes etapas:
1. Definicin del conjunto de pruebas de validacin para validar los requisitos de operacin.
2. Establecimiento de trazas entre requisitos y pruebas de validacin, que permitan
265
266
Captulo IX
CONCLUSIONES
267
Es este captulo se analiza cmo se han cumplido los objetivos indicados en el primer
captulo de la tesis, se mencionan las principales aportaciones del trabajo de investigacin
y se exponen las lneas que permanecen abiertas para futuros trabajos.
E ,
,
,
.
268
2. Definir el concepto de modelo de operaciones de un sistema, de forma que permita la incorporacin del conocimiento de las operaciones de manera explcita
en el modelado del sistema. Se ha definido el concepto de modelo de operaciones
de un sistema (MOS) en el captulo 4. Dicho modelo se ha expresado en funcin de
las entradas y salidas del sistema respecto de la interaccin con el operador. Estas
entradas se han definido a su vez como comandos de operacin, y las salidas como
respuestas a comandos y notificaciones producidas internamente en el sistema.
Adems, se han identificado los posibles mbitos de aplicacin del modelo de operaciones de un sistema. Se indica cul debe ser el subconjunto de requisitos de un
sistema necesario para definir el modelo de operaciones concreto, y cmo han de
reflejarse en el modelado de un sistema por medio del lenguaje UML.
3. Proponer metamodelos que faciliten la representacin de las operaciones en el
proceso de modelado de sistemas, y de su desarrollo en general. Este objetivo
se ha alcanzado en tres etapas. Primeramente, en el captulo 5 se ha definido un
metamodelo para representar el modelo de operaciones de un sistema en UML, al
que hemos llamado SystemOperationsMetamodel. A partir de este metamodelo se ha
definido un perfil UML al que hemos llamado U2OP (UML 2 Operations Profile)
aplicable en el modelado de sistemas.
En segundo lugar, y ya en el captulo 6, se han marcado las pautas para la especificacin de un frontend de operaciones genrico; dicho frontend representa la interfaz
mediante la cual el operador interacta con el sistema. Para ello, por un lado se ha
aplicado el metamodelo de operaciones definido anteriormente, en la especificacin
de un frontend de operaciones genrico. De esta manera se ha conseguido definir
un metamodelo de frontend de operaciones del sistema, que refleja la interaccin
entre el operador y el sistema. Por otro lado, se ha realizado una aproximacin, en
varios niveles de abstraccin, orientada a describir la arquitectura genrica de un
269
270
Consideramos que estos objetivos parciales se han alcanzado con el trabajo realizado,
por lo que el objetivo principal marcado se ha conseguido. Del mismo modo, podemos
concluir que la hiptesis de partida ha sido probada y por tanto afirmamos que:
E , .
9.2.
Aportaciones a la investigacin
276
ofrezcan un marco para la integracin de requisitos del sistema con las pruebas de
aceptacin.
Relacin con la Tesis: La generacin de herramientas de operacin y validacin a
partir del modelo del sistema, plante la necesidad de aadir algn tipo de informacin y semntica adicional al modelo del sistema. Esto nos condujo a la idea de
modelar las interacciones entre un sistema y una herramienta software externa, como
inicio del modelo de operaciones de un sistema presentado en esta tesis.
5. Modeling Language Interpretation for Validation [11].
Pedro P. Alarcn, Juan Garbajosa, Agustn Yage, Alexei Lisounkin, G. Schreck
11th Annual International Workshop on Software Technology and Practice.
ISBN: 0-7695-2218-1
September 2003, Amsterdam, The Netherlands.
Resumen: Este artculo presenta una aproximacin a un lenguaje de modelado que
soporte la verificacin de modelos de sistemas, y la construccin de simuladores que
simulen el comportamiento del sistema. El lenguaje, llamado XNetMod, est basado
en XML y permite describir sistemas como conjuntos de elementos interconectados.
La verificacin de modelos se realiza con un algebra definida al efecto, y los simuladores se generan a partir de la definicin del modelo del sistema con el lenguaje
XNetMod.
Relacin con la Tesis: Al igual que en el artculo anterior, con este trabajo nos
planteamos sistemas compuestos por elementos interconectados, y avanzamos en la
construccin de simuladores a partir de modelos del sistema que nos permitieran
interaccionar con el sistema.
6. Construction of Verified Models for Systems Represented as Networks [177].
Agustn Yage, Pedro P. Alarcn, Juan Garbajosa, Alexei Lisounkin, Gerhard Schreck
277
The 2nd International Workshop on Verification and Validation of Enterprise Information Systems (VVEIS-2004).
ISBN: 972-8865-02-3
April 2004, Porto, Portugal.
Resumen: Este artculo presenta un lenguaje y un proceso para producir modelos
verificados para sistemas con elementos interconectados. Los modelos de sistemas
se especifican por medio de un lenguaje basado en XML, llamado XNetMod. Los
esquemas XML se derivan de modelos de sistema expresados en UML. El objetivo
principal del lenguaje XNetMod es el de soportar la simulacin del comportamiento
de sistemas por medio de esquemas verificados con en este lenguaje. El lenguaje y el
mtodo de construccin de modelo se han aplicado satisfactoriamente a diferentes
dominios de aplicacin, descritos en trminos de sistemas con elementos interconectados.
Relacin con la Tesis: Este trabajo plantea la representacin de sistemas como conjunto de elementos interconectados, definiendo un lenguaje para representarlos. Este
trabajo avanz en la lnea de considerar y modelar los sistemas como conjuntos de
elementos interconectados.
7. Automated Integrated Support for Requirements-Area and Validation Processes Related to System Development [10].
Pedro P. Alarcn, Juan Garbajosa, Alberto Crespo, Beln Magro.
Proceedings of the 2nd IEEE International Conference on Industrial Informatics (INDIN04).
ISBN-0-7803-8513-6
IEEE Press 2004. June 2004, Berlin, Germany.
278
Resumen: En lnea con trabajos anteriores, este artculo describe un modelo de procesos que plantea la mejora en la automatizacin del desarrollo de sistemas mediante la integracin de los procesos de anlisis de requisitos y pruebas de validacin
del sistema. Para ello, se plantea la integracin de herramientas externas de validacin, en un entorno de ingeniera de software orientado a documentos llamado
SEE. Esta integracin posibilita la definicin y ejecucin de procedimientos de prueba compuestos de comandos de operacin en el SUT (System Under Test) a travs
de TOPEN. En combinacin con la utilizacin de simuladores del SUT, esta aproximacin proporciona un buen soporte en procesos de desarrollo de sistemas.
Relacin con la Tesis: Se presenta cono aspecto clave en el desarrollo de sistemas,
el concepto de operaciones del sistema como soporte en el proceso de validacin.
La disponibilidad de un frontend de operaciones del sistema en las etapas iniciales
del desarrollo requiere que ste pueda generarse o adaptarse a partir de los modelos
iniciales del sistema. Para ello es fundamental que dicho modelo incluya los aspectos de operaciones del sistema y que el frontend de operaciones disponga de una
arquitectura independiente del dominio de aplicacin.
8. Automated Support for Requirements and Validation Test as Development Drivers
[5].
Pedro P. Alarcn, Juan Garbajosa, Alberto Crespo, Beln Magro.
Proceedings of the third Workshop on Systems Testing and Validation (SV04), in
conjunction with the 17th International Conference on Software and Systems Engineering and their Applications (ICSSEA04).
ISBN: 3-8167-6677-3
Proceedings Published by Fraunhofer IRB Verlag, Germany.
December 2004, Paris, France.
279
Resumen:En este artculo se presenta una aproximacin en la que la automatizacin de las pruebas de validacin constituye la lnea conductora en el desarrollo de
sistemas/software. El desarrollador o ingeniero de pruebas interacta con el sistema
a probar (SUT) desde un entorno de ingeniera del software (SEE) que integra el
entorno TOPEN. Las pruebas de aceptacin se asocian a los requisitos que validan,
en forma de procedimientos de comandos del lenguaje de operaciones del sistema
definido en TOPEN. Los procedimientos de prueba y los resultados de sus ejecuciones sobre el SUT se integran en los propios documentos del SEE. Se plantean
ciertos esquemas de documentos del SEE que permiten la integracin de los datos
de pruebas con los datos de desarrollo del sistema. La trazabilidad entre requisitos,
componentes desarrollados y pruebas de aceptacin juega un papel esencial en esta
integracin.
Relacin con la Tesis: La automatizacin de las pruebas de validacin se plantea
en trminos de existencia de un frontend de operaciones del sistema. Este frontend
de operaciones interacta directamente con el sistema por medio de un lenguaje de
operaciones definido entre ambos. El frontend puede integrarse en el propio entorno
de ingeniera del software utilizado por desarrolladores del sistema. Esta integracin
relaciona los requisitos del sistema con las pruebas de aceptacin de stos por medio
de esquemas de trazabilidad incorporados en los propios documentos.
9. Deploying Validation Tests in Systems Development [63].
Juan Garbajosa, Pedro P. Alarcn
3rd International Industrial Simulation Conference (ISC2005).
ISBN: 90-77381-18-X
June 2005, Berlin, Germany.
Resumen: En lnea con la aproximacin de automatizacin, descrita en anteriores
artculos, basada en la integracin de requisitos y pruebas de aceptacin se plantea
280
281
Relacin con la Tesis: El modelo de datos presentado en este artculo cubre la informacin aportada por el modelo de operaciones de un sistema. Este modelo define
datos para representar el sistema bajo operacin/prueba, para especificar y ejecutar
procedimientos de prueba u operaciones y para la evaluacin del resultado de los
datos obtenidos al ejecutar estos procedimientos sobre el sistema.
11. Analyzing and Systematizing Current Traceability Schemas [52].
Angelina Espinoza, Pedro P. Alarcn, Juan Garbajosa.
30th Annual NASA/IEEE Software Engineering Workshop.
ISSN: 1550-6215
April 2006, Columbia, USA.
Resumen: Este trabajo presenta un modelo de trazabilidad al objeto de utilizar de
forma destacada informacin de trazabilidad en procesos y tareas, tales como verificacin y validacin, y gestin de la configuracin. Este artculo analiza varias de
las aproximaciones de trazabilidad actuales para obtener sus caractersticas ms
relevantes, obtener solapamientos e inconsistencias entre ellas, y as intentar seleccionar las mejores prcticas de trazabilidad. Se identifican varios aspectos que
dificultan la adopcin de actividades de trazabilidad a gran escala, en la prctica
de la ingeniera de software/sistemas, tales como, la inexistencia de una definicin
de trazabilidad comnmente aceptada, una forma estndar de especificar la trazabilidad entre artefactos, y una clasificacin del tipo de trazabilidad. Finalmente se
proporciona una aproximacin para realizar una especificacin de esquema de trazabilidad e implementarla en el entorno de ingeniera del software SEE.
Relacin con la Tesis: Este artculo profundiza en la definicin de un esquema de
trazabilidad que incluya requisitos, pruebas y gestin de configuracin, y su incorporacin al entorno de ingeniera del software SEE. Este trabajo persegua profundizar
en un modelo de desarrollo dirigido por las pruebas de validacin integradas con los
282
requisitos que validan, por medio de trazas. La utilizacin de un frontend de operaciones, como TOPEN, para llevar a cabo la operacin y pruebas sobre el sistema a
probar, contina siendo una de las lneas conductoras en la investigacin que produjo
como resultado este artculo.
12. Analyzing and Systematizing Current Traceability Schemas [51].
Angelina Espinoza, Pedro P. Alarcn, Juan Garbajosa.
Proceedings of the 30th Annual NASA/IEEE Software Engineering Workshop.
ISBN: 0-7695-2624-1
IEEE Computer Society
2006, Washington, USA.
Resumen: El anterior artculo fue seleccionado para ser publicado por IEEE Computer Society, por lo que esta publicacin coincide con la anterior salvo algunos
cambios mnimos.
Relacin con la Tesis: La misma que la publicacin anterior.
13. TOPEN como Soporte para la Automatizacin de Especificaciones en TTCN3 [7].
Pedro P. Alarcn, Agustn Yage, Juan Garbajosa, Jessica Daz.
Taller sobre Pruebas en Ingeniera del Software PRIS 200, en conjuncin con las XI
Jornadas de Ingeniera del Software y Bases de Datos, JISBD06.
October 2006, Sitges, Spain.
Resumen: La complejidad creciente de los sistemas actuales intensivos en software
requiere de tcnicas que permitan aumentar la efectividad del proceso de pruebas.
TTCN-3 es un lenguaje de pruebas consensuado internacionalmente para definir
escenarios de pruebas de sistemas y sus implementaciones. TOPEN es un entorno
de validacin y operacin, diseado para facilitar el proceso de definicin y ejecucin de pruebas y procedimientos en sistemas complejos. Este artculo presenta
283
285
286
como sistemas que son capaces de gestionarse por s mismos. De forma que los
elementos que los constituyen ofrecen funcionalidades de monitorizacin, anlisis,
planificacin y ejecucin de operaciones de control para la gestin de recursos. Existen cuatro caractersticas distintivas de un sistema autonmico: auto-configurable,
auto-reparable, auto-optimizable, auto-protegible [18]. La definicin del modelo de
operaciones de un sistema que se propone en este trabajo coincide con este objetivo
ya que busca definir las entradas y salidas del sistema respecto a sus operadores y
ocultando su comportamiento y por tanto la complejidad del sistema.
7. Aplicacin del modelo de operaciones en procesos de validacin de sistemas intensivos software de nueva creacin o con componentes ya existentes, buscando la
generacin de herramientas de validacin basadas en dicho modelo e independientes
de las plataformas de los componentes que integren un sistema.
9.5.
Conclusiones finales
Esta tesis doctoral introduce una aproximacin para modelar de forma sistemtica las
operaciones en sistemas intensivos software. Se realiza una definicin conceptual de modelo de operaciones de un sistema, y basado en esta definicin se proponen un metamodelo
y un perfil UML para incorporar el modelado de las operaciones en el modelo de un sistema. Previamente a la definicin de modelo de operaciones se realizan una serie de definiciones sobre las que se apoya, entre las que destacan las de sistema operable y frontend de
operaciones. El modelo de operaciones se define en trminos de comandos de entrada al
sistema, y diferentes tipos de salidas del sistema clasificadas en respuestas, notificaciones
y alarmas. El modelo de operaciones que se presenta en este trabajo comprende una parte
esencial en el conocimiento de un sistema desde un punto de vista funcional, pero reducido
en tamao comparado con la especificacin completa del sistema. En esta lnea, se plantea
la utilizacin del modelo de operaciones del sistema y de herramientas basadas en este modelo, desde las etapas tempranas del ciclo de vida, como forma de enriquecer el proceso de
287
288
REFERENCIAS
[1] A, G. D. and D, A. J., Integrating status and event phenomena in formal specifications of interactive systems, in Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering (SIGSOFT 94), pp. 4452, ACM
Press, 1994. 2.6
[2] A, P. P. and G, J., Deployment and future development of topen,
a low-cost tele-testing validation environment, in 2nd ESA Space System Design,
Verification and AIT Workshop, (Noordwijk, The Netherlands), April 2003. 1.2, 2
[3] A, P. P. and G, J., Use of system models to automate the integration
requirements and validation tests, in 2nd Workshop on Systems Testing and Validation (STV03), in conjunction with the IEEE Software Technology and Practice
Workshop, STEP03, (Amsterdam, The Netherlands), September 2003. 1.2, 8.3.1, 4
[4] A, P. P. and G, J., Identifying application key knowledge through
system operations modeling, in Proceedings of the 6th IEEE International Conference on Cognitive Informatics (ICCI07), (Lake Tahoe, California), pp. 246254,
IEEE CS Press, August 2007. 1.1, 1.2, 15
[5] A, P. P., G, J., C, A., and M, B., Automated support for
requirements and validation test as development drivers, in Proceedings of the third
Workshop on Systems Testing and Validation (SV04), in conjunction with the 17th
International Conference on Software and Systems Engineering and their Applications (ICSSEA04), (Paris, France), December 2004. 1.2, 8.3.1, 8
[6] A, P. P., L, J. M., G, J., and M, J., Deployment of an
acceptance testing environment prototype: an architectural view, in First Workshop
on Systems Validation (SV02) in conjunction with the 15th International Conference
on Software and Systems Engineering and their Applications (ICSSEA02), (Paris,
France), December 2002. 1.2, 7.2.1, 1
[7] A, P. P., Y, A., G, J., and D, J., Topen como soporte para la
automatizacin de especificaciones en ttcn-3, in Taller sobre Pruebas en Ingeniera
del Software (PRIS 2006) dentro de JISBD06, (Sitges, Spain), October 2006. 1.2,
2.4.2.2, 13
[8] A, P. P., Y, A., G, J., and D, J., Topen como soporte para la
automatizacin de especificaciones en ttcn-3, REICIS: Revista Espaola de Innovacin, Calidad e Ingeniera del Software. http://www.ati.es, vol. 2, pp. 617, October 2006. 1.2, 2.4.2.2, 14
289
[9] A, P. P., Y, A., G, J., and D, J., Topen data model and analysis for system validation, in Proceedings of the Forth Workshop on Systems Testing
and Validation (STV06), in conjunction with the 13th Anual IEEE International
Conference and Workshop on the Engineering of Computer Based Systems (ECBS
2006), (Potsdam, Germany), March 2006. 1.2, 10
[10] A, P. P., G, J., C, A., and M, B., Automated integrated
support for requirements-area and validation processes related to system development, in Proceedings of the 2nd IEEE International Conference on Industrial Informatics (INDIN04), (Berlin, Germany), pp. 287292, IEEE Computer Society,
June 2004. 1.2, 8.3.1, 7
[11] A, P. P., G, J., Y, A., L, A., S, G., and E, J. L., Modeling language interpretation for validation, in Proceedings of the
Eleventh Annual International Workshop on Software Technology and Engineering
Practice: STEP03, pp. 247256, IEEE Computer Society, 2003. 2.6, 8.3.1, 5
[12] American Institute of Aeronautics and Astronomics (AIAA), ANSI/AIAA G-0431992 Version 1.50. Guide for the Preparation of Operational Concept Documents,
January 1993. 1.1, 2, 2.4.1, 2.6, 4.5
[13] A, E., B, L. C., H, S. E., and L, Y., The impact of uml documentation on software maintenance: An experimental evaluation, IEEE Transactions on Software Engineering, vol. 32, pp. 365381, June 2006. 2.5
[14] A, C. and K, T., Model-driven development: A metamodeling foundation, IEEE Software, vol. 20, no. 5, pp. 3641, 2003. 2.5
[15] A, D., L, F., M, M., and N, P., Action research, Communications
of the ACM, vol. 427, pp. 9497, 1999. 1.3
[16] B, P., D, Z. R., G, J., H, O., S, E., S,
I., and W, C. E., The UML 2.0 Testing Profile, in Proceedings of the 8th
Conference on Quality Engineering in Software Technology (CONQUEST 2004) in
Nuremberg (Germany), pp. 181189, ASQF e.V., Erlangen, September 2004. 2.4.2.2
[17] B, R. and P-H, J., Grounded action research: a method for understanding it in practice, Accounting, Management and Information Technology,
vol. 9, pp. 123, 1999. 1.3
[18] B, J., Understand the autonomic manager concept, IBM White paper, Feb 2004.
6
[19] B, J., A, M. S., R, S., and W, L.-C., A survey of hybrid techniques
for functional verification, IEEE Design & Test of Computers, pp. 112122, 2007.
2.3.1, 2.6
290
[20] BOE, Real decreto 2110/1998, de 2 de octubre, por el que se aprueba el reglamento
de mquinas recreativas y de azar, No. 248, pp. 3422734244, Boletn Oficial del
Estado de Espaa, Octubre 1998. 7.2.1, 1
[21] BOE, Orden de 26 de febrero de 2001 por la que se actualiza el precio de la partida y los premios mximos en las mquinas recreativas y se dictan las previsiones
necesarias para su adaptacin al euro, No. 53, pp. 78327833, Boletn Oficial del
Estado de Espaa, Marzo 2001. 7.2.1, 2
[22] B, M., A, P. P., G, J., and A, J., A low-cost documentcentric software/system engineering environment, in Proceeding of the International Conference on Software and Systems Engineering and their Applications (ICSSEA03), (Paris, France), December 2003. 9.3
[23] B, E. and S, R., Abstract State Machines. A Method for High-Level System
Design and Analysis. Springer, 2003. 2.2.6
[24] B, M., Characterizing the behavior of reactive systems by trace sets, Tech. Rep.
TUM-I9102, Technische Universitat Munchen, 1995. I, 2.2.3, 2.2.4, 2.2.4.1, 2.2.4.1,
3, 2.6, 3.2.2, 3.2.4, 3.2.4.1, 3.2.4.2
[25] B, M., A Logical Basis for Modular Software and Systems Engineering. Lecture
Notes of Computer Science 1521. Springer, 1998. 2.2.4
[26] B, M., Automotive software engineering, in Proceedings of the 25th International Conference on Software Engineering (ICSE03), (Portland, Oregon, USA),
pp. 719720, 2003. 2.2.4, 2.2.4.2
[27] B, M., Hierarchies of Models for Embedded Systems, in First ACM and IEEE
Conference on Formal Methods and Models for Co-Design, pp. 183190, IEEE
Computer Society, 2003. 2.2.4
[28] B, M., Architecture driven modeling in software development, Proceedings of
Ninth IEEE International Conference on Engineering Complex Computer Systems
(ICECCS04), pp. 312, 2004. 2.2.4, 2.2.4.2, 2.2.4.2
[29] B, M., The grand challenge in informatics: Engineering software-intensive
systems, IEEE Computer, vol. 39, no. 10, pp. 7280, 2006. 1.1
[30] B, M. and S, P., Systems engineering needs a formal basis, in Proceedings
of the 17th Digital Avionics Systems Conference (DASC98), vol. 1, (Bellevue, WA,
USA), pp. B14/1B14/8, Oct 1998. 2.2.4, 2.2.4.2
[31] B, M. and S, K., Specification and Development of Interactive Systems:
Focus on Streams, Interfaces, and Refinement. Springer, 2001. I, 2.2.3, 2.2.4, 2.2.4.2,
4, 2.2.4.2, 2.6, 3.2.3.1, 3.2.4.2
291
[32] B, M., Ontology i: The furniture of the world, vol. 3 of treatise on basic philosophy, reidel, dordrecht and boston, Reidel, Dordrecht, Boston, 1977. 2.2.1, 2.2.1,
3.2.2
[33] B, J., H, S., L, D., and J, F., Applying mda approach for
web service platform, in Proceedings of the IEEE Enterprise Distributed Object
Computing Conference (EDOC), (Monterey, CA, USA), pp. 5870, IEEE Computer
Society, 2004. 2.5
[34] C, J. and G, C., Deriving operation contracts from uml class diagrams, in
10th International Conference MoDELS 2007, vol. 4735 of Lecture Notes in Computer Science, pp. 196210, Springer, 2007. 2.3.3, 2.3.6
[35] C D T D R I,
Systems Engineering Guidebook For ITS. Prepared by ASE Consulting LLC, Knowledge Systems Design (KSD) and Siemens ITS; in association with R.C. Ice and Associate MetroStar Systems Inc., J and J Project Consultant and Jacoby Consulting,
January 2007. 1.1, 2.4.1, 1, 2.6, 4.5
[36] C, J. and H, M. D., Model checking interactor specifications, Automated Software Engineering, vol. 8, pp. 275310, 2001. 2.3.1, 2.6
[37] C, J., H, M. D., and L, K., Verifying user interface behaviour with
model checking, in Proceedings of the 2nd International Workshop on Verification
and Validation of Enterprise Information Systems (VVEIS04), pp. 8796, INSTICC
Press, 2004. 2.3.1, 2.6
[38] C, S. and W, R. J., Composition patterns: An approach to designing
reusable aspects, in Proceedings of the International Conference on Software Engineering (ICSE01), (Washington, DC, USA), pp. 514, IEEE Computer Society,
2001. 2.5
[39] C, C., J, T., M, H., and R, V., Integrating formal verification and conformance testing for reactive systems, IEEE Transactions on Software
Engineering, vol. 33, pp. 558574, August 2007. 2.3.1
[40] C, S. and R, J., Automatic test case generation from requirements
specifications for real-time embedded systems, in Proceedings of the IEEE International Conference on Systems, Man, and Cybernetics (SMC 99), vol. 5, pp. 784
789, IEEE Computer Society, October 1999. 2.5
[41] D, Z., Model-driven testing with uml 2.0, in Proceedings of the 2nd European
Workshop on Model Driven Architecture, 2004. 2.5
[42] D, Z. R., Analysis of the methods and processes for UML test profiles (Deliverable
D2.4.2). TTMEDAL Consorcium. http://www.tt-medal.org. 2.4.2.2
292
293
294
295
[80] ISO, ISO Std 10303 - STEP - AP 233. Application Protocol: System Engineering.
Requirements for a Data Exchange Facility. International Standardization Organization, Nov 2002. 2.5
[81] ISO, ISO /IEC 19761, Software Engineering - COSMIC-FFP - A Functional Size
Measurement Method, International Standardization Organization, 2003. 2.6
[82] ISO/IEC, ISO/IEC 12207:2002, Standard for Information Technology - Software
Lifecycle Processes. International Standards Organization, 2002. 1.1, 2.4, 3.2.3
[83] ISO/IEC, ISO/IEC 15288-2007 Systems engineering - System life cycle processes.
ISO, July 2007. http://www.15288.com. 1.1, 2.4, 3.2.3, 8.3
[84] ITU, Message Sequence Charts. International Telecommunications Union. Telecommunication Standardization Sector Recommendation Z.120, 2000. 2.3.2
[85] J, M., Jackson development methods: Jsp and jsd, Encyclopaedia of Software Engineering. John J Marciniak (ed.) John Wiley & Sons, vol. 1, 1994. 2.2.3
[86] J, M., Software Requirements and Specifications - A Lexicon of Practice,
Principles and Prejudices. Addison-Wesley, 1995. 2.3.2
[87] J, M., The world and the machine, in Proceedings of the 17th international
Conference on Software Engineering (ICSE 95), pp. 283292, ACM Press, 1995.
2.2.2, 3.2.2, 3.2.2, 3.2.3.1
[88] J, I., B, G., and R, J., The unified software development process.
Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1999. 3
[89] J, J., H, E., B, S., and G, M., The maturing systems engineering data exchange standard ap-233 and your role, in Proceedings of the 10th
Annual International Symposium of the International Council on Systems Engineering, INCOSE, pp. 823830, 2000. 2.5
[90] J, J., N, B., L, F., T, A., L, J.-L., C, L., I,
M., and H, D., The future systems engineering data exchange standard step
ap-233: Sharing the results of the sedres project, in Proceedings of the 10th Annual International Symposium of the International Council on Systems Engineering
(INCOSE 99), vol. 1, pp. 923931, June 1999. 2.5
[91] J, B., Compositional Verification of Distributed Systems. Ph.d. thesis Department of Computer Systems, Uppsala University, Uppsala, Sweden, 1987. 2.2.3,
2.2.4.1, 2.2.4.1, 2.3.1
[92] J, P. and E, C., Object-oriented integration testing, Communications of the ACM, vol. 37, no. 9, pp. 3038, 1994. 2.6
296
297
298
[115] M, E. and B, M., Service-Oriented Architecture (SOA): A Planning and Implementation Guide for Business and Technology. John Wiley & Sons, June 2006.
2.3.4
[116] M, H., Iso 10303 step. a key standard for the global market, ISO Bulletin,
pp. 913, April 2002. 2.5
[117] MN, A. and S, N., Methods of behaviour modelling. a commentary on
behaviour modelling techniques for mda. white paper (draft), Metamaxim Ltd.,
2004. 2.3.3, 2.3.6, 2.5, 2.6
[118] MN, A., Mda: The vision with
http://www.metamaxim.com, 2003. 2.5, 2.6
the
hole?,
Metamaxim
Ltd.
[119] M, S., G, J., S, J. L., and M, J., Un perfil uml para la definicin
de un lenguaje grfico de transformaciones basado en qvt, Actas de las XI Jornadas
de Ingeniera del Software y Bases de Datos, pp. 433442, 2006. 5.1
[120] M, S. J., C, A., and F, T., Guest editors introduction: Modeldriven development, IEEE Software, vol. 20, no. 5, pp. 1418, 2003. 2.5
[121] M, B., Applying design by contract, Computer, vol. 25, no. 10, pp. 4051,
1992. 2.3.3
[122] M, B., Object-oriented software construction (2nd ed.). Upper Saddle River,
NJ, USA: Prentice-Hall, Inc., 1997. 2.3.3, 2.6
[123] MIL-STD-498, MIL-STD-498 Software Development and Documentation - Operational Concept Description. United States Military Standard, December 1994. 1.1,
3, 2.6, 4.5
[124] M, S. P. and T, A. C., Extending the four-variable model to bridge the
system-software gap, in Proceedings of the 20th Digital Avionics Systems Conference (DASC01), vol. 1, pp. 1418, October 2001. 2.2.6, 2.6, 3.2.2
[125] M, B., T, R., S, E., and C, M., Meteosat second generation (msg) ground segment: the central facility concept, in Space Mission Operations and Ground Data Systems - SpaceOps 96, Proceedings of the Fourth International Symposium held 16-20 September 1996 in Munich, Germany. Edited by T.-D.
Guyenne. ESA SP-394. Paris: European Space Agency, 1996. 2.4.2
[126] NRO, NRO Concept of Operations Outline. Virginia Department of Transportation:
Northern Region Operations, June 2007. 2.4.1
[127] O, Z. and S, D., Modeling multimodal human-computer interaction, Computer, vol. 37, pp. 6572, September 2004. 2.3.5
[128] OMG, Meta Object Facility (MOF), version 1.4 specification. Document
formal/2002-04-03. Object Management Group, 2002. 2.4.2.2
299
[129] OMG, Model Driven Architecture Guide Version 1.0.1, Document omg/2003-06-01).
Object Management Group, June 2003. 2.5
[130] OMG, UML 2.0 Testing Profile, v1.0, Document formal/2005-07-07. Object Management Group, 2005. 2.4.2.2, 2.6, 6.2, 6.4.5.4
[131] OMG, Corba Component Model, V4.0, Document formal/2006-04-01. Object Management Group, 2006. 2.3.4
[132] OMG, Systems Modeling Language. Final Adopted Specification /06-05-04. Object
Management Group, May 2006. 2.5
[133] OMG, Unified Modeling Language: Superstructure, version 2.1.1. Object Management Group, February 2007. 2.3.2, 5.1
[134] P, M. P., T, P., D, S., and L, F., Service-oriented
computing: State of the art and research challenges, Computer, vol. 40, pp. 3845,
November 2007. 2.3.4
[135] P, D., Requirements documentation: A systematic approach. University of
Limerick, Department of Computer Science and Information Systems, February
2003. 2.2.6
[136] P, D. and M, J., Functional documentation for computer systems engineering, Technical Report CRL 237, vol. 2, September 1991. 2.2.6, 2.2.6, 2.6, 3.2.1,
3.2.2, 3.2.2, 3.2.4, 3.2.4.1, 3.2.4.1, 3.2.4.2
[137] P, D. and M, J., Functional documents for computer systems, Science
of Computer Programming, vol. 25, no. 1, pp. 4161, 1995. 2.2.6, 2.3.2, 2.6, 3.2.2
[138] P, C. and Z-S, O., Action research in graduate management programs, in World Congress on Action Research and Process Management - Conference Proceedings, pp. 6783, 1991. 2
[139] P, A. and R, R., On the synthesis of an asynchronous reactive module.,
in ICALP, vol. 372 of Lecture Notes in Computer Science, pp. 652671, Springer,
1989. 2.6
[140] P, A., Model-based testing, in Proceedings of the 27th International
Conference on Software Engineering (ICSE05), pp. 722723, May 2005. 2.5
[141] P, A., Model-based testing in practice, in Formal Methods, vol. 3582 of
Lecture Notes in Computer Science, pp. 537541, Springer Berlin, 2005. 2.5
[142] Q, A. and T, E., Specifying the semantics of operation contracts in
conceptual modeling, in Journal on Data Semantics VII, vol. 4244 of Lecture Notes
in Computer Science, pp. 3356, Springer, 2006. 2.3.3, 2.3.6
300
[143] R, A., S, P., M, A., and A, J., Early aspects: a model for
aspect-oriented requirements engineering, in Proceedings of the IEEE Joint International Conference on Requirements Engineering (RE02), IEEE Press, 2002. 2.5
[144] R, S. and S, R., Combining theorem proving with model checking through
predicate abstraction, IEEE Design and Test of Computers, vol. 24, pp. 112122,
April 2007. 2.3.1, 2.6
[145] S, S., Methodology for an organisational action research thesis, Action
research international, October 2001. 1.3
[146] S, T. K., Conceptual model of real-time systems: a perspective., in Proceedings of the 1995 ACM symposium on Applied computing (SAC95), (New York, NY,
USA), pp. 206209, ACM Press, 1995. I, 2.2.6, 8, 3.2.2, 3.2.2, 10
[147] S, S. and M, S., Object life cycles - modeling the world in states,
Yourdon Press/Prentice Hall, 1992. 2.2.3
[148] S, D. C., Guest editors introduction: Model-driven engineering, Computer,
vol. 39, no. 2, pp. 2531, 2006. 2.5
[149] S, E., What models mean, IEEE Software, vol. 20, no. 5, pp. 2632, 2003.
2.5, 2.6
[150] S, B., The pragmatics of model-driven development, IEEE Software, vol. 20,
no. 5, pp. 1925, 2003. 2.5
[151] S, S. and K, W., Model transformation: The heart and soul of
model-driven software development, IEEE Software, vol. 20, no. 5, pp. 4245,
2003. 2.5, 2.6
[152] S, S. and S, A., From use cases to system operation specifications,
in UML 2000 - The Unified Modeling Language. Advancing the Standard: Third
International Conference, vol. 1939 of Lecture Notes in Computer Science, pp. 1
15, Springer, October 2000. 2.3.3, 2.3.6
[153] S, H., R, Y., and P, J., Interaction Design beyond human-computer
interaction. 2nd Edition. John Wiley Sons Ltd., March 2007. 2.3.5
[154] S, B. L., E, M. H., and W, D. W., Part 3: Regional transportation
systems management: Investigation of the development and use of a concept of operations in traffic management systems, Transportation Research Record, vol. 1925,
pp. 236244, 2005. 2.4.1
[155] S, J., Model-integrated computing, IEEE Potentials, vol. 23, pp. 2830,
February 2004. 2.5
[156] S, G., Development of Operational Concept Descriptions (Analysing what
the customer needs). Tenix Defence Systems, Melbourne, Australia, 2001. 2.4.1
301
[157] S, A., On the effective use and reuse of hci knowledge, ACM Transactions
on Computer-Human Interaction, vol. 7, pp. 1971221, June 2000. 2.3.5
[158] S, J., Model integrated computing: foundations and applications, in
Proceedings of the 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS05), April 2005. 2.5
[159] T, C., D, A. M., and S, L., A storyboard tool to assist concept of operations development, Proceedings of the 2007 IEEE Aerospace
Conference, pp. 18, March 2007. 2.4.1, 2.4.1
[160] T, L., Z, T., O, B., C, A., and B, M., From
simulations to operations: Developments in test and verification equipment for
spacecraft. Data Systems In Aerospace (DASIA), NLR-TP-2001-323, France, June
2001. 1.1, 2.3.6
[161] T, V. and P, B., On comprehensive contractual descriptions of web services, in Proceedings of the 2005 IEEE International Conference on e-Technology,
e-Commerce and e-Service (EEE05) on e-Technology, e-Commerce and e-Service,
(Washington, DC, USA), pp. 444449, IEEE Computer Society, March 2005. 2.3.4
[162] U, S., C, R., K, J., and M, J., Goal and scenario validation:
a fluent combination, in Requirements Eng, pp. 123137, Springer-Verlag, 2006.
2.3.2
[163] U, S. and K, J., A workbench for synthesising behaviour models from
scenarios, in Proceedings of the 23rd International Conference on Software Engineering (ICSE01), (Washington, DC, USA), pp. 188197, IEEE Computer Society,
2001. 2.3.2
[164] U, S., C, R., K, J., and M, J., Fluent-based animation: Exploiting the relation between goals and scenarios for requirements validation., in
Proceedings of the IEEE International Conference on Requirements Engineering
Conference, pp. 208217, IEEE Computer Society, 2004. 2.3.2
[165] U, S., K, J., and M, J., Synthesis of behavioral models from scenarios., IEEE Transactions on Software Engineering, vol. 29, no. 2, pp. 99115,
2003. 2.3.2
[166] U, M., Position paper: Model-based testing, in Verified Software: Theories,
Tools, Experiments (VSTTE) conference, October 2005. 2.5
[167] V, V. K., B, G. C., and K, W. L., A data/knowledge
paradigm for the modeling and design of operations support systems, IEEE Transactions on Knowledge Data Engineering, vol. 9, no. 2, pp. 275291, 1997. 2.3.6
[168] V, M., C, C., S, W., and K, P., On-the-fly testing of reactive systems, tech. rep., Technical Report MSR-TR-2005-03, Microsoft Research,
January 2005. 2.2.4.1, 2.6
302
303
304