Professional Documents
Culture Documents
Este capítulo se concibe como una exposición sobre la situación actual en cuanto al
empleo de entornos multidisciplinares en el desarrollo de SW para SCDTR. Esta
exposición se hace de forma progresiva.
Se inicia con una descripción de la ciencia básica sobre dos conceptos abstractos
identificados como necesarios para el entorno en el primer capítulo: el Modelado y
el empleo de Lenguajes Formales como mecanismo de expresión de instancias de
modelos. Se repasarán, entre otras, nociones como vista, abstracción o instancia,
por un lado, y léxico, sintaxis o semántica por el otro. Así mismo, se introducirán
los fundamentos de dos tecnologías estándar aplicables en cada uno de estos dos
campos: el lenguaje de modelado UML y el lenguaje formal XML, respectivamente.
El interés en este punto no va más allá de conocer las ventajas que estas
tecnologías pueden aportar para ubicarlas con criterio en el entorno, pero será en
otros capítulos donde se profundice sobre las características más específicas de las
técnicas seleccionadas.
2.2.2 EBNF
2.2.3 XML
22..11 M
MOOD
DEEL
LAAD
DOO
Pág. 2-1
Capítulo 2: Estado del Arte
Información Datos
Tal y como muestra la Tabla 2-1, en cada nivel de define una nueva entidad (meta-
dato, modelo, meta-modelo,…) que es empleada en el nivel superior para generar
otra entidad más abstracta (modelo agrupando meta-datos, meta-modelo
agrupando modelos,…). Además, la adecuada expresión de esta jerarquía de
abstracciones está directamente relacionada con el uso de lenguajes formales. En
cada nivel de abstracción se genera el lenguaje que sirve para describir los
elementos del nivel inmediatamente inferior. Por esa razón, un modelo no pasará a
constituirse en agregación formal de meta-datos hasta que no exista un meta-
Pág. 2-2
Capítulo 2: Estado del Arte
De una manera burda, se pueden asemejar estos niveles de abstracción con los
empleados en la definición de los lenguajes de programación de alto nivel, tal y
como muestra la Tabla 2-2:
ENTIDADES
NIVELES LENGUAJES
MANEJADAS
Lenguaje programación Sentencias control flujo, Lenguaje para la descripción de programas como
variables, tipos,… modelos de ejecuciones
Pág. 2-3
Capítulo 2: Estado del Arte
Pág. 2-4
Capítulo 2: Estado del Arte
• Vista Lógica. Está pensada para que el usuario final pueda describir la
funcionalidad deseada. Se realiza una descomposición del sistema siguiendo la
filosofía de Orientación a Objetos (abstracción, encapsulado y herencia). La
notación gráfica empleada se compone de diagramas de clases y patrones para
la descripción estática y máquinas de estados finitos para describir el
comportamiento dinámico. Los elementos de su notación son:
Pág. 2-5
Capítulo 2: Estado del Arte
o Conectores: relaciones
Tal y como resume la Figura 2-2, cada vista tiene un perfil de usuario y una
notación gráfica especializada (formada siempre por un conjunto de componentes y
conectores) para resolver sus necesidades expresivas. Además, se establece un
proceso de desarrollo porque está predefinido el orden en el cual se deben utilizar
cada una de las vistas para modelar el sistema; se comienza siempre por la vista
lógica y se termina en la física, pero se tiene en cuenta en cada vista lo que se
haya generado en las anteriores. En definitiva, se avanza hacia una descripción
completa del sistema aportando detalles al todo desde perspectivas particulares.
Pág. 2-6
Capítulo 2: Estado del Arte
Pág. 2-7
Capítulo 2: Estado del Arte
Rumbaugh
Booch Jacobson
Odell Meyer
Pre- and Post-conditions
Shlaer-Mellor
Object life cycles UML Harel
State Charts
Gamma et. al.
Frameworks, patterns,
notes Wirfs-Brock
Embly Responsabilities
Singleton classes Fusion
Operation descriptions,
message numbering
Pág. 2-8
Capítulo 2: Estado del Arte
Pág. 2-9
Capítulo 2: Estado del Arte
• Diagramas de Comportamiento:
o Estados
o Actividad
• Diagramas de Implementación:
o Componentes
o Despliegue
La Figura 2-4 muestra las relaciones que se establecen entre estos tipos de
diagramas. Otra posible clasificación de los diagramas UML los divide en:
Pág. 2-10
Capítulo 2: Estado del Arte
Diagramas de
Distribución
Diagramas de C
Clases Ó
D
I
Casos de Diagramas de G
Diagramas de
Uso Secuencia O
Componentes
Diagramas de
Colaboración Diagramas de
Estados
Diagramas de
Actividad
El modelo de los Casos de Uso comprende los actores (agente, persona o cosa que
solicita un servicio al sistema o actúa como catalizador para que ocurra algo), el
sistema y los propios Casos de Uso.
Un Caso de Uso describe una situación de uso del sistema interactuando con
actores. Se determinan observando y precisando, actor por actor, las secuencias de
interacción desde el punto de vista del usuario. Examinando estas secuencias de
interacción, que expresan las necesidades funcionales de los actores, se determina
el conjunto de funcionalidades del sistema. La Figura 2-5 ilustra un ejemplo de
diagrama de casos de uso.
Pág. 2-11
Capítulo 2: Estado del Arte
Caso de uso
Actor
Caso de uso
Actor
Actor
Caso de uso
Actor
Caso de uso
Un Diagrama de Clases presenta las clases y objetos del sistema con sus
relaciones estructurales y de herencia.
Pág. 2-12
Capítulo 2: Estado del Arte
1 .. 4 1 .. 2 1
1 * *
Clase 1 * Clase 1 * Clase
{disjunta, completa} *
1
Clase Clase Clase
Los Diagramas de objetos que contienen objetos y enlaces son instancias de los
Diagramas de Clases que contienen clases y asociaciones. Por lo tanto, debe existir
coherencia entre ambos.
Los objetos interactúan para realizar colectivamente los servicios ofrecidos por las
aplicaciones. De ahí que se modelen las interacciones.
Pág. 2-13
Capítulo 2: Estado del Arte
Mensaje
Mensaje
Mensaje
Mensaje
Mensaje
Mensaje
Mensaje
Pág. 2-14
Capítulo 2: Estado del Arte
N: mensaje :Objeto
Actor N: mensaje
:Objeto
N: mensaje
N: mensaje
N: mensaje
Actor
N: mensaje
N: mensaje :Objeto
N: mensaje
:Objeto
El estado está caracterizado parcialmente por los valores de los atributos del
objeto. Cada objeto está en un estado en cierto instante y la transición entre
estados, que es instantánea, se debe a la ocurrencia de eventos. Los estados inicial
y final están diferenciados del resto.
Pág. 2-15
Capítulo 2: Estado del Arte
Transición
Estado Transición Estado
Transición Transición
Estado
Actividad
Actividad
Actividad
Actividad
Actividad
Actividad Actividad
Actividad Actividad
Actividad
Pág. 2-16
Capítulo 2: Estado del Arte
Por otra parte, los distintos componentes pueden agruparse en paquetes, según un
criterio lógico, para simplificar la implementación. Son paquetes estereotipados en
<<subsistemas>> para incorporar la noción de biblioteca de compilación y de
gestión de configuración.
físico.
Pág. 2-17
Capítulo 2: Estado del Arte
Nodo Componente
Componente
Componente
Nodo
Componente Componente
Nodo Componente
Componente Componente
Pág. 2-18
Capítulo 2: Estado del Arte
El ciclo de vida para UML consiste en una serie de ciclos cada uno de los cuales
produce una nueva versión del producto, es decir, se basa en la evolución de
prototipos ejecutables. Cada ciclo está compuesto por fases y cada una de estas
fases está compuesta por un número de iteraciones.
Fases
Actividades
Estudio de Elaboración Construcción Transición
oportunidad
Requisitos
Una iteración en la
fase de elaboración
Análisis
Diseño
Implementación
Pruebas
Tal y como refleja la Figura 2-13, las fases son las siguientes:
Pág. 2-19
Capítulo 2: Estado del Arte
Una de las razones de la rápida extensión en los últimos años del lenguaje de
modelado UML es su gran capacidad expresiva. UML dispone de potentes recursos
expresivos que le permiten describir sistemas provenientes de ámbitos muy
diversos. En esta generalidad del estándar radica su flexibilidad y capacidad de
adaptación, pero también es ésa una de sus debilidades. Un lenguaje genérico
proporciona un punto inicial común para la descripción de todo tipo de sistema,
pero ese lenguaje único no puede abordar la descripción detallada de sistemas muy
diferentes entre sí, para ello se requiere de capacidades expresivas especializadas,
y no genéricas. Por tanto, UML se consolidará como estándar universal para el
modelado en la medida en la que sea capaz de conjugar una gramática genérica
con unas capacidades expresivas especializadas y extensibles para cubrir el
modelado detallado de cualquier sistema.
Tal y como muestran las investigaciones de otros autores (Egyed 2000), UML 1.4
no ha logrado aún solucionar satisfactoriamente el objetivo de aunar lo genérico y
lo particular bajo un mismo lenguaje de modelado estándar. Aunque próximas
versiones prometen avanzar más en esta línea, los mecanismos de creación de
perfiles estándar (estereotipos y tagged values) y las reglas OCL (Object Constraint
Language) no han satisfecho todas las expectativas.
Pág. 2-20
Capítulo 2: Estado del Arte
Por ello, se ha planteado el uso de complementos a UML como los lenguajes ADL
(Architecture Description Language). Son lenguajes especializados en problemas
concretos y, por tanto, muy potentes en el análisis y simulación de esos casos. La
creación de perfiles UML basados en ADLs permite aumentar la capacidad de
análisis específico, ya que los ADL cumplen en pequeños nichos especializados lo
que se espera que UML pueda llegar a cumplir en el futuro de manera genérica
(modelado, análisis, validación).
Aún así, las inconsistencias expresivas que permite el propio núcleo de UML hacen
que la extensión a través de perfiles no deje de ser un parche. UML puede verse
como una colección de vistas gráficas débilmente integradas, lo cual facilita su
generalidad, pero permite la existencia de incoherencias entre vistas, posibilitando
que el modelo total sea incoherente, no válido o formalmente incorrecto. Algunas
de las potenciales inconsistencias que se han detectado son las siguientes (Egyed
2000):
Pág. 2-21
Capítulo 2: Estado del Arte
Pág. 2-22
Capítulo 2: Estado del Arte
Cada vista supone una representación del sistema manejable desde el punto de
vista de uno de los individuos interesados, una descripción parcial del modelo en el
contexto de un individuo. El conjunto de todas las vistas debería representar un
modelo coherente y sin contradicciones, pero no es así debido a que existen
“agujeros” entre el conjunto de vistas UML y el modelo formal que pretenden
representar. Estos agujeros se pueden presentar en la forma de inconsistencias
Pág. 2-23
Capítulo 2: Estado del Arte
dentro de una misma vista, entre vistas de igual tipo o entre vistas de diferente
tipo.
Pág. 2-24
Capítulo 2: Estado del Arte
1
Middleware. SW para comunicar una aplicación con la red en un sistema distribuido o para
comunicar aplicaciones diferentes tanto en función como en plataforma de ejecución
Pág. 2-25
Capítulo 2: Estado del Arte
OMG rediseña su estrategia y nace MDA (Millar y Mukerji 2001), que se convierte
en la arquitectura base para sus estándares desde septiembre de 2001. MDA unifica
los espacios del modelado y del middleware (no necesariamente CORBA) y permite
mantener el SW desarrollado, adaptarlo y añadirle nuevas tecnologías y productos
COTS.
El mapeo desde PIM (y a través de PSM) a una plataforma soportada por MDA está
definido en las especificaciones OMG, y por tanto, implementado por herramientas
que facilitan la tarea.
La descripción del PIM se hace en UML (otro estándar de OMG) porque se muestra
como el candidato ideal:
Pág. 2-26
Capítulo 2: Estado del Arte
Para dar coherencia global a la arquitectura MDA surgen otros estándares como:
Pág. 2-27
Capítulo 2: Estado del Arte
Las relaciones entre todos estos estándares (Figura 2-18) serán reforzadas y
dotadas de mayor consistencia a través de las acciones futuras que planifica OMG
(llevadas a cabo por ‘task forces’):
Definir IDL CORBA, CORBA, UML y CWM como modelos acordes con MOF, es
decir, definirlos en los términos de MOF. Esto implica:
Pág. 2-28
Capítulo 2: Estado del Arte
en código, así como dar soporte a una ingeniería inversa consistente. Se han
generado perfiles para CORBA e IDL.
Pág. 2-29
Capítulo 2: Estado del Arte
MOF describe los conceptos empleados para construir modelos para aplicaciones
concretas. Por otra parte, también define un repositorio para meta-modelos y
modelos. Esto permite almacenar los modelos UML de manera formal, así como
definiciones de tipos de datos empleados en aplicaciones concretas.
Con el mapeo de MOF a CORBA IDL se definen interfaces que permiten al cliente
crear, acceder o cambiar la información descrita por el modelo. Se maneja la
información pero se mantiene la consistencia estructural y lógica, y los requisitos
establecidos en el modelo de información
En MOF, como en UML, se emplea OCL (Object Constraint Language) para expresar
requisitos adicionales sobre los datos. Un requisito se compone de nombre,
lenguaje, expresión, política de evaluación y conjunto de elementos implicados.
○ M1. Modelos UML. Interfaces IDL. XMI permite leer y escribir documentos
XML desde aquí
○ M2. Metamodelos UML. Metamodelos IDL. XMI genera DTD o Schema desde
aquí
Donde el nivel inferior M0 puede alinearse con aquella entidad que se pretenda
modelar. Si se pretende modelar una base de datos, M0 estará constituido por la
información a almacenar; si se modelan las aplicaciones diseñadas por una
empresa, M0 estará constituido por casos concretos de aplicaciones, etc.
Pág. 2-30
Capítulo 2: Estado del Arte
Se está trabajando en alinear los niveles de abstracción de UML 2.0 y MOF 2.0 para
ciertos propósitos, como pueda ser el empleo de UML como lenguaje para
representar modelos MOF. Aunque MOF suponga un nivel de abstracción mayor la
diferencia no importa si no se usan múltiples niveles de abstracción. Si las
aplicaciones intercambian información en un nivel de abstracción definido por un
modelo basta con UML.
El flujo de XMI se modela con el conjunto de datos XML, por eso XMI también
constituye un mapeo de UML (y CWM) a XML. MDA hará uso de XMI cuando se
defina el mapeo de un PIM a plataformas basadas en XML.
XMI está limitado en el sentido de que se preocupa de los conceptos que describen
el estado de los objetos, no el comportamiento. XMI sí puede ser empleado para
guardar todas las partes de un modelo UML pero al salvar una instancia de una
clase UML se guardan sólo los valores de las características estructurales.
XMI es necesario porque XML no es orientado a objeto. Por tanto, existe más de un
modo de mapear objetos a XML y se requiere de un estándar. XMI elige uno de los
posibles mapeos y lo estandariza. Para intercambiar objetos entre aplicaciones, que
en principio pueden estar escritas en diferentes lenguajes de programación, es
necesario:
Pág. 2-31
Capítulo 2: Estado del Arte
UML resuelve la primera parte del problema, pues ofrece una definición y
representación independiente de objeto. En cuanto a la segunda parte, XML parece
ser la solución porque ofrece un formato estándar para la representación de
información, sin embargo, no supone de por sí un mapeo biunívoco para los
objetos.
Doc API
XML
XML
Elementos Código Objetos
XML propio aplicación
Doc SW
XMI
XMI
Objetos
aplicación
Figura 2-20. Mapeo con APIs XML y con XMI.
2
Se dice de la correspondencia matemática que asocia cada uno de los elementos de un conjunto con
uno, y solo uno, de los elementos de otro conjunto, y cada elemento de este último con uno, y solo uno,
de los elementos de aquél.
Pág. 2-32
Capítulo 2: Estado del Arte
Sin embargo, XMI no pretende suponer un corsé para los programadores y ofrece
margen de maniobra en algunas cuestiones. Aunque existe un modo estándar por
defecto de expresar las cosas, que será el preferido cuando se busque
compatibilidad entre aplicaciones, también se puede afinar la generación
automática de código XMI para modular cuestiones como el mapeo opcional de
atributos UML a elementos ó atributos XML o el uso de tagged values para
personalizar la creación automática de schemas.
Generación de código para manejar datos con ese modelo UML. El código
generado está personalizado para un modelo. Se generará por completo
cada vez que cambie el modelo.
Pág. 2-33
Capítulo 2: Estado del Arte
Cabe hacer un comentario al respecto del nivel de abstracción con el que se vaya a
usar XMI. XMI permite el intercambio de metamodelos, modelos o datos en formato
XML, pero según la naturaleza de la información intercambiada se distingue una
arquitectura de tres ó cuatro niveles:
9 Permite el trabajo con datos y con metadatos. Por estar relacionado con
MOF y poder estar éste alineado en diferentes niveles de abstracción.
Pág. 2-34
Capítulo 2: Estado del Arte
Mientras que UML 1.4 tenía como objetivo principal la respuesta a las necesidades
clásicas de la industria del SW, UML 2.0 se plantea cubrir otros campos como el
modelado de negocio, de sistemas de tiempo real, basado en componentes, etc. El
mecanismo estándar para extender las capacidades de UML a cada uno de estos
campos específicos es el de los perfiles y este mecanismo se ve mejorado en la
nueva versión. En general, se mejora la escalabilidad y usabilidad del lenguaje en
todos los ámbitos.
Pág. 2-35
Capítulo 2: Estado del Arte
UML 2.0 promete convertirse en una solución general, haciendo innecesario el uso
de extensiones de su metamodelo para tratar los problemas específicos de
dominios específicos.
Pág. 2-36
Capítulo 2: Estado del Arte
22..22 L
LEEN
NGGU
UA ESS F
AJJE FOOR
RMMA
ALLE
ESS
Pág. 2-37
Capítulo 2: Estado del Arte
Gramática:
Cada regla tiene a la izquierda un símbolo que designa una categoría sintáctica y a
la derecha una secuencia de uno o más símbolos. Cada símbolo puede ser a su vez
terminal o no-terminal. Un símbolo terminal (lexema) es una parte de la
sentencia sin estructura sintáctica interna (por ejemplo, un identificador o un
operador). Un símbolo no-terminal es la parte izquierda de alguna regla. Por
ejemplo, a continuación se presentan dos reglas de la gramática EBNF, que definen
cómo es un comentario en XML:
La primera regla define Char como uno de los caracteres definidos por un número
hexadecimal acorde con Unicode. Los tramos válidos se expresan entre corchetes y
el símbolo ‘|’ representa un OR lógico. La segunda regla describe Comment como
una cadena ‘<!- -‘, seguida de un número indefinido de ocurrencias Char excepto el
‘-‘ ú ocurrencias ‘-‘ y un carácter distinto de ‘-‘, y terminado por la cadena ‘-->’. Es
decir, no puede haber dos guiones seguidos dentro del comentario.
Pág. 2-38
Capítulo 2: Estado del Arte
Sintaxis:
Análisis léxico:
Semántica:
Pág. 2-39
Capítulo 2: Estado del Arte
Metasintaxis (sintaxis para describir otras sintaxis) formal para expresar gramáticas
libres de contexto. Es una de las notaciones metasintácticas más empleadas para
especificar la sintaxis de los lenguajes de programación. EBNF es una extensión.
Lenguaje natural:
Metadatos:
Lexema:
Símbolo:
Alfabeto:
Ontología (Informática):
Pág. 2-40
Capítulo 2: Estado del Arte
Los programas informáticos pueden utilizar así la ontología para una variedad de
propósitos, incluyendo el razonamiento inductivo, la clasificación, y una variedad de
técnicas de resolución de problemas. Típicamente, las ontologías en los
ordenadores se relacionan estrechamente con vocabularios fijos --una ontología de
fundacional -- con cuyos términos debe ser descrito todo lo demás. Debido a que
esto puede ocasionar representaciones pobres para ciertos dominios de problemas,
se deben crear esquemas más especializados para convertir en útiles los datos a la
hora de tomar decisiones en el mundo real.
Web Semántica:
La Web Semántica es una visión de futuro propuesta por Tim Bernes-Lee. Consiste
en construir una agrupación de documentos estructurada de forma que se facilite el
acceso y el rastreo automático de la información de un modo más coherente al que
hoy en día utilizan las herramientas de búsqueda web.
• Agentes automáticos para ejecutar tareas que empleen los metadatos para
dar servicio a los usuarios de la Web Semántica.
Pág. 2-41
Capítulo 2: Estado del Arte
2.2.2 EBNF
EBNF (Extended Backus-Naur Form) es una colección de reglas denominadas
producciones (Aho et al 1986). Toda regla describe un fragmento específico de
sintaxis. Un documento es válido si puede ser reducido, a través de la aplicación
repetida de reglas, a una única regla específica (sin lexema en su parte izquierda).
Ejemplo:
La regla 1 indica que una Palabra es una Consonante, seguida de una o más
Vocales y terminada por una Consonante. La regla 2 define Consonante como una
letra diferente de a, e, i, o, u. La regla 3 define Vocal como cualquiera de las letras
a, e, i, o, u.
Empleando las reglas del ejemplo se pueden realizar validaciones sobre instancias
concretas. Por ejemplo, ¿es ‘dos’ una Palabra?:
• según la regla 2, ‘d’ es una Consonante, por tanto dos: Consonante ‘o’
‘s’
• según la regla 3, ‘o’ es una Vocal, por tanto dos: Consonante Vocal ‘s’
Siguiendo el mismo análisis ‘seis’, ‘rey’ ó ‘diez’ son Palabras, pero ‘mesa’ ó
‘tres’ no lo son.
Pág. 2-42
Capítulo 2: Estado del Arte
2.2.3 XML
Uno de los logros más importantes en el diseño de XML (eXtensible Markup
Language) es hacerlo fácil de usar por las herramientas de compilación modernas.
Parte de este logro se fundamenta en la expresión de la sintaxis de XML en EBNF.
XML está definido con una gramática EBNF de 89 reglas. Aunque las reglas son más
complejas que las del ejemplo visto en el apartado anterior, el mismo tipo de
análisis permite a un parser XML determinar cuándo un documento XML es
sintácticamente correcto.
Pág. 2-43
Capítulo 2: Estado del Arte
</AGENDA_TELEFONOS>
Pág. 2-44
Capítulo 2: Estado del Arte
9 Todas las etiquetas o marcas deben ser entendidas por el procesador XML
(lo que no sean etiquetas serán datos) y empiezan por “<” acabando en “>”.
Un documento XML será válido si, además de estar bien formado, respeta la
estructura y restricciones que le imponga su schema asociado. En resumen, el
parser XML debe comprobar los siguientes aspectos para determinar como válido
un documento:
Ahora bien, no existe una forma única de escribir schemas, existen varios
lenguajes de schema, que se emplean para la definición de schemas. El más
antiguo y sencillo de ellos es el lenguaje DTD (Document Type Definition).
Pág. 2-45
Capítulo 2: Estado del Arte
una de ellas con los elementos y atributos ya referidos. Supone una especie de
plantilla o patrón que deberán cumplir todas las agendas descritas en este
lenguaje.
Agenda.dtd
Un parser XML no sólo lee el documento XML para llevar a cabo su validación,
además permite la accesibilidad de las aplicaciones a los datos. Para llevar a cabo
esta funcionalidad el parser debe implementar alguno de los APIs (Application
Program Interface) estandarizados para el acceso a datos XML: SAX ó DOM.
Un parser SAX (Simple API for XML) genera eventos en varios puntos del
documento (principio y fin del documento, de cada elemento, etc). El programador
puede así escribir el código que trata cada uno de estos eventos (handlers) y
decidir así qué hacer con la información.
DOM (Document Object Model) es una recomendación oficial del W3C que define un
interfaz (independiente de plataformas y lenguajes) para permitir a los programas
el acceso y actualización de estilo, estructura y contenido de documentos XML. Al
procesar un documento con un parser DOM se obtiene una estructura en árbol con
todos los elementos del documento (ver Figura 2-23).
Pág. 2-46
Capítulo 2: Estado del Arte
Además del tipo de API que implementen, otros criterios para la clasificación de
parsers XML son su capacidad de validación (no todos la poseen) o el lenguaje de
programación particular empleado (Java, C++, Perl, Python).
Pág. 2-47
Capítulo 2: Estado del Arte
Transf.xsl
Cada regla afecta a uno o varios elementos del documento. El efecto de las reglas
es recursivo, de forma que un elemento situado dentro de otro también es
transformado. Las reglas de transformación no tienen efectos laterales, el resultado
debe ser el mismo independientemente del orden en que se disparen las reglas.
Una regla no puede modificar el árbol producido por otra, sólo puede añadir nuevos
nodos al resultado.
Pág. 2-48
Capítulo 2: Estado del Arte
Siempre existe un modelo que subyace a cualquier lenguaje, y si bien UML permite
capturar la semántica de un sistema gráficamente (representación adecuada para
consumo humano), la información expresada en XML es más fácilmente procesada
por las aplicaciones, portable entre sistemas y serializable para su transmisión.
Por estas razones, se definen otros mapeos como el de Carlson (2001). Carlson
define un mapeo bidireccional propio a través de un perfil UML (estereotipos,
tagged values y constraints). Esto permite al usuario elegir entre la generación que,
por defecto, aplica el perfil o la generación personalizada mediante el uso de
estereotipos. Los estereotipos permiten definir qué requisitos del modelo UML
quiere trasladar al schema y cómo de estricto desea que sea éste.
Los schemas generados desde este perfil particular son un refinamiento de los que
genera XMI. Es decir, desde un mismo modelo UML se puede generar bien el DTD
que proporciona XMI (pues no hace caso a los estereotipos), o bien el schema
particular del perfil (aplicando las restricciones que marcan los estereotipos).
Instancias válidas contra el schema del perfil lo serán también contra el DTD de
XMI, pero no a la inversa.
3
Society for Worldwide Interbank Financial Telecommunication. Organización dedicada al
desarrollo y promoción de la interacción global y estandarizada entre las transacciones
financieras internacionales a través de un lenguaje común.
4
United Nations Centre for the Facilitation of the Administration, Commerce and Transport.
Pág. 2-49
Capítulo 2: Estado del Arte
La utilización de UML para describir lenguajes XML aporta las siguientes ventajas:
9 Generación de los schemas y las clases Java que vayan a manejar esos
datos desde un modelo común. Se logra la creación automática de datos
portables y código portable para la gestión de esos datos, evitando errores
con la introducción de modificaciones. Esto facilita mucho el mantenimiento
y la reutilización.
Pág. 2-50
Capítulo 2: Estado del Arte
Pág. 2-51
Capítulo 2: Estado del Arte
Pág. 2-52
Capítulo 2: Estado del Arte
22..33 H
HEERRRRAAM
MIIE
ENNT
TAASS E
ESSPPEECCÍÍFFIICCAASS D
DEED
DOOM
MIIN
NIIO
O
INCOSE es una organización sin ánimo de lucro fundada en 1990 para promocionar
la aplicación de aproximaciones interdisciplinares orientadas a la construcción de
sistemas más eficaces. Bajo el nombre de Ingeniería de Sistemas agrupan al
conjunto de disciplinas que permiten desarrollar sistemas con éxito. Se intenta
definir las necesidades del cliente y las funcionalidades del sistema en etapas
tempranas del ciclo de desarrollo, documentar los requisitos y diseñar pruebas de
validación que consideren el problema completo, tanto desde el punto de vista
técnico como de negocio. Para esta concepción de la Ingeniería de Sistemas,
INCOSE define la siguiente taxonomía de herramientas:
Herramientas de Gestión:
○ Gestión de la configuración
○ Gestión de riesgos
○ Seguimiento de defectos
Herramientas de Ingeniería:
○ Diseño de sistemas
∗ Modelado
− Estructural
− De comportamiento (dinámico ó estático)
− Prototipado de HMI (Human Machine Interface)
5
The International Council on Systems Engineering (www.incose.org).
Pág. 2-53
Capítulo 2: Estado del Arte
∗ Diseño
− Simulación
− Análisis numérico
− Específicas de dominio
− Medida de la efectividad
○ Ingeniería de requisitos
∗ Gestión
− Clasificación
− Captura e identificación
− Trazabilidad
∗ Generación
○ Validación de diseños
∗ Análisis de threads
− Medición
− Análisis de rendimiento
○ Comunicación
∗ Interpersonal
∗ Recuperación de información
− Servicios de directorio
− Transferencia de ficheros
− Servicios de información
− WWW
○ Análisis de datos
∗ Hojas de cálculo
∗ Reducción de datos
∗ Visualización de datos
○ Publicación electrónica
∗ Publicación técnica
Pág. 2-54
Capítulo 2: Estado del Arte
∗ Ilustración técnica
○ Visualización electrónica
∗ De bases de datos
○ Administración de sistemas
○ Soporte de redes
○ Gestión de productos
Estas herramientas permiten entender las necesidades del usuario, lo que supone el
punto de partida para el desarrollo de la aplicación adecuada, y al mismo tiempo,
proporcionan el patrón sobre el que medir el éxito logrado en la implementación
final. La gestión de requisitos consiste en la captura, almacenamiento, gestión
(organización, trazabilidad, análisis y visualización) y diseminación de información.
Pág. 2-55
Capítulo 2: Estado del Arte
9 ¿Hemos terminado?
Pág. 2-56
Capítulo 2: Estado del Arte
6
Además de CACE (Computer-Aided Control Engineering), también se habla de CACSD
(Computer-Aided Control System Design).
Pág. 2-57
Capítulo 2: Estado del Arte
del lugar de las raíces, diagramas de Bode, Nyquist y Nichols, diseño por
ubicación de polos, etc.
Pág. 2-58
Capítulo 2: Estado del Arte
RTF (Real Time Framework, ver anexo A.2). Entorno construido alrededor
de Matlab añadiéndole funcionalidades de las que no dispone pero que son
necesarias para el desarrollo de SCDTR. Durante los primeros años de
desarrollo de esta tesis ésta es la aproximación que se eligió. Se seleccionó
Matlab como núcleo del entorno por ser la herramienta CACE de mayor
aceptación, por agrupar disciplinas diversas y facilitar la adaptación a las
necesidades propias. Se consideraron de interés las toolboxes Simulink,
StateFlow y RTW, y sobre esa base se aumentaron las funcionalidades para
cubrir las necesidades de los SCDTR:
7
Computer-Aided Software Engineering.
Pág. 2-59
Capítulo 2: Estado del Arte
o BERTA (Basic Environment for Real Time Análisis, ver anexo A.1)
para realizar análisis de peores tiempos de respuesta extremo a
extremo y simulación de escenarios concretos de activación en
sistemas distribuidos sobre los buses CAN o Profibus.
Pág. 2-60
Capítulo 2: Estado del Arte
Como conclusión de este apartado, se puede resumir que las herramientas CACE no
se limitan a realizar un limitado número de funcionalidades estrictamente
relacionadas con el control, sino que intentan adaptarse a las necesidades de los
desarrolladores y añaden funcionalidades paralelas al control pero necesarias para
la implementación de sistemas. Esta tendencia ha supuesto un acercamiento a
otros dominios y ha impulsado la creación de algunos entornos multidisciplinares
que toman como núcleo una herramienta CACE para complementarla con
desarrollos ad hoc. Estas experiencias anteriores no aconsejan asociar el núcleo del
entorno a ningún producto comercial. La arquitectura general y el funcionamiento
interno del entorno multidisciplinar deben ser independientes de cualquier
herramienta.
Pág. 2-61
Capítulo 2: Estado del Arte
8
DDE (Dynamic Data Exchange) provee de un conjunto de protocolos para permitir el
intercambio de información entre aplicaciones a través de memoria compartida y con un
modelo cliente / servidor.
9
OPC (OLE for Process Control), estándares abiertos para conectividad e interoperatividad
en el mundo de la automatización industrial.
10
COM (Component Object Model), arquitectura SW de Microsoft para construir aplicaciones
basadas en componentes. DCOM es una extensión para soportar objetos distribuidos.
Pág. 2-62
Capítulo 2: Estado del Arte
Pág. 2-63
Capítulo 2: Estado del Arte
Como conclusión de este apartado, se puede resumir que también las herramientas
específicas de sistemas distribuidos intentan adaptarse a las necesidades de los
desarrolladores y ampliar el espectro a campos limítrofes: interfaz a herramientas
CACE como Matlab para contrastar las comunicaciones con el comportamiento
funcional del nodo, integración de las comunicaciones con el sistema operativo
(osek/vdk), desarrollo de SW embarcado para la comunicación, etc. Este es un
Pág. 2-64
Capítulo 2: Estado del Arte
campo de interés evidente porque tras diseñar el algoritmo de control hay que
distribuirlo en los diferentes nodos en los que se ejecutará, elegir los sensores,
actuadores y topología de red que lo una todo, configurar los nodos, fijar el mapeo
de señales a mensajes, configurar los servicios de red que se usarán, valorar
latencias, ver el efecto que tienen sobre el rendimiento del algoritmo de control,
valorar la interacción con los servicios que se usen del Sistema Operativo, etc.
Pero, al igual que ocurría con las herramientas CACE, estas aplicaciones son
bastante cerradas y sólo se comunican entre sí las del mismo fabricante (para
favorecer el negocio propio), o a lo sumo, implementan algún interfaz propietario a
alguna otra herramienta. Además, es razonable que no vayan a alcanzar el mismo
grado de calidad en campos paralelos como los del control o el desarrollo SW. Por
lo tanto, sigue pareciendo mejor la opción de hacer colaborar estas herramientas
con las herramientas CACE dentro de un entorno abierto y flexible en el que cada
herramienta realice la labor para la que está concebida.
Pág. 2-65
Capítulo 2: Estado del Arte
Respecto a las herramientas que los especialistas de tiempo real emplean para
desarrollar sus aplicaciones, no es sencillo estudiarlas de forma aislada debido a su
diversidad. Un criterio para su clasificación puede ser la fase del desarrollo en la
que se emplean, ya que existen herramientas para cubrir las fases de especificación
de requisitos, modelado, análisis, diseño o implementación. Sin embargo, también
existen herramientas que cubren varias fases, por lo que no parece este criterio el
más significativo. Debido a que una de las características fundamentales de estos
sistemas es el aseguramiento del cumplimiento de requisitos temporales, la fase de
análisis se antoja fundamental, y de hecho, casi siempre influye en las demás. Por
ejemplo, se deben introducir en el modelo del sistema aquellos datos que van a ser
necesarios para el análisis, o se diseña el sistema con un estilo de arquitectura sólo
si es analizable con un determinado método asociado ó se implementa el sistema
sólo con algunos de los recursos del lenguaje de programación (aquéllos recogidos
en los supuestos del análisis).
Pág. 2-66
Capítulo 2: Estado del Arte
Pág. 2-67
Capítulo 2: Estado del Arte
Pág. 2-68
Capítulo 2: Estado del Arte
Pág. 2-69
Capítulo 2: Estado del Arte
Pág. 2-70
Capítulo 2: Estado del Arte
Por último, existen otras herramientas que se ocupan únicamente de la parte más
crítica, la del análisis. Parten de un sistema ya diseñado y se analizan las
características temporales del mismo para asegurar su planificabilidad. La labor de
la herramienta empieza y termina en el análisis por lo que es responsabilidad del
usuario la adecuada descripción del sistema en los términos que la herramienta le
exige, así como el uso correcto de los resultados que se infieren. Ejemplos:
BERTA (Basic Environment for Real Time Análisis, ver anexo A.1). Es una
herramienta para realizar análisis de peores tiempos de respuesta extremo a
extremo y simulación de escenarios arbitrarios de activación en sistemas
distribuidos sobre los buses CAN o Profibus.
Pág. 2-71
Capítulo 2: Estado del Arte
actual de UML dista mucho de ser el lenguaje más adecuado para la descripción de
Sistemas de Tiempo Real. Sobre este punto se discutirá en el siguiente apartado.
Pág. 2-72
Capítulo 2: Estado del Arte
Pág. 2-73
Capítulo 2: Estado del Arte
9 Estandarización de la documentación
9 Aumento de la portabilidad
Pág. 2-74
Capítulo 2: Estado del Arte
recursos humanos y técnicos. Tiene como pilares los conceptos de calidad total y
mejora continua.
9 Está controlado: Los cambios y puestas al día del proceso son revisados,
aprobados y comunicados oportunamente a todos los usuarios.
Pág. 2-75
Capítulo 2: Estado del Arte
Con excepción del Nivel 1, cada uno de estos Niveles de Madurez está compuesto
por un cierto número de Áreas Claves de Proceso (KPA, Key Process Area). Cada
KPA identifica una agrupación de actividades y prácticas relacionadas, las cuales
cuando son realizadas en forma colectiva permiten alcanzar las metas
fundamentales del proceso. Las KPAs identifican los aspectos que deben tratarse
para conseguir un determinado nivel de madurez.
Nivel primero o inicial, en que los procesos son inmaduros, nunca han sido
medidos ni controlados. El proceso es ocasional, caótico, ideado ad hoc en cada
proyecto y el éxito depende del esfuerzo individual.
○ Gestión de requisitos
Pág. 2-76
Capítulo 2: Estado del Arte
○ Programa de entrenamiento
○ Revisión de pares
Pág. 2-77
Capítulo 2: Estado del Arte
○ Prevención de defectos
La ubicación del proceso SW de una organización dentro de uno de los niveles CMM
es importante para ilustrar en qué punto está y cuáles deben ser sus siguientes
objetivos. Al mismo tiempo, permitirá decidir el grado de uso de una herramienta
CASE porque toda herramienta CASE puede ser considerada como centrada en el
Proceso, en el sentido de que su principal papel es el soporte de algún Proceso de
Desarrollo de SW o de una parte de él. De hecho, el Proceso de Desarrollo
soportado puede ser un criterio de clasificación de herramientas CASE, ya que todo
el funcionamiento interno de la herramienta gira alrededor del Proceso. Un Proceso
define quién está haciendo qué, cuándo y cómo alcanzar un determinado objetivo.
Sirve como guía para todos los participantes (clientes, usuarios, desarrolladores y
directivos).
Pág. 2-78
Capítulo 2: Estado del Arte
Las prestaciones ofrecidas en general por las herramientas CASE pueden resumirse
en la siguiente lista:
Pág. 2-79
Capítulo 2: Estado del Arte
Figura 2-28. Clasificación de herramientas CASE en base a las fases del ciclo de
vida cubiertas.
Sin embargo, dependiendo de qué fases del ciclo de vida cubra la herramienta,
pueden distinguirse las siguientes categorías (ver Figura 2-28):
UPPER CASE (CASE superior). Son productos que cubren las primeras fases
del ciclo de vida: planificación, análisis y diseño. Pueden correr en máquinas
independientes a la máquina donde se vaya a ejecutar la aplicación, aunque la
codificación debe desarrollarse de forma independiente, usando la
documentación generada por la herramienta.
Pág. 2-80
Capítulo 2: Estado del Arte
I-CASE ó CASE integrado. Comprende todos los elementos del CASE superior
y del CASE inferior e intentan así cubrir todas las fases.
Los entornos I-CASE persiguen cubrir todo el ciclo de vida de una aplicación, desde
la fase de análisis hasta la codificación y mantenimiento (algunas de ellas incluyen
también la fase de planificación estratégica). Combinan diferentes herramientas y
diferentes elementos de información, de tal forma que permiten el cierre de la
comunicación entre herramientas, entre el personal involucrado y a lo largo de todo
el proceso de ingeniería del software.
• permitir que los usuarios de cada herramienta tengan una visión consistente
de la interfaz hombre-máquina.
Pág. 2-81
Capítulo 2: Estado del Arte
Interfaz Usuario
Metadatos (Metamodelo)
Repositorio
información
Así mismo, para evitar las desventajas encontradas en entornos I-CASE en cuanto
a dependencia de un solo fabricante, debería fundamentarse en una arquitectura:
Pág. 2-82
Capítulo 2: Estado del Arte
Pág. 2-83
Capítulo 2: Estado del Arte
Por extensión, también se denominan ADLs a los entornos que, además de editores
gráficos y textuales, añaden otras funcionalidades como compiladores,
comprobadores de requisitos, simuladores, etc. Existen múltiples ejemplos de ADLs
desarrollados por Honeywell (Meta-H), Carnegie-Mellon (ACME, AESOP, UNICON y
WRIGHT), Universidad de Texas (GEN-VOCA), Universidad de Stanford (RAPIDE),
Universidad de California Irvine (xADL), Imperial College (Darwin), etc.
Pág. 2-84
Capítulo 2: Estado del Arte
ADML
(components, connectors, ports, roles, properties, systems, representation maps
Pág. 2-85
Capítulo 2: Estado del Arte
Pág. 2-86
Capítulo 2: Estado del Arte
22..44 A
APPRRO
OXXIIM
MAAC
CIIO
ONNE
ESS A
ALLA
A
IIN
NTTE
EGGR
RAAC
CIIÓ
ÓNND
DEEH
HEERRRRAAM
MIIE
ENNT
TAASS
Pág. 2-87
Capítulo 2: Estado del Arte
Pág. 2-88
Capítulo 2: Estado del Arte
2.4.1.1 NetBeans
9 Editor
9 Gestión de configuración
9 Generación de wizards para guiar a los usuarios en las tareas más complejas
9 Gestión de almacenamiento
Sobre el runtime se hacen correr los módulos propios (ficheros .jar) que
implementan la funcionalidad específica y han sido desarrollados en el IDE. El
resultado final puede distribuirse o venderse. Los módulos, que poseen ficheros con
información sobre sus contenidos, interactúan con los APIs de NetBeans.
Pág. 2-89
Capítulo 2: Estado del Arte
2.4.1.2 Ptolemy
Pág. 2-90
Capítulo 2: Estado del Arte
o SR (Synchronous/Reactive).
Pág. 2-91
Capítulo 2: Estado del Arte
Pág. 2-92
Capítulo 2: Estado del Arte
Pág. 2-93
Capítulo 2: Estado del Arte
Pág. 2-94
Capítulo 2: Estado del Arte
Cada nivel se describe en términos del superior (Figura 2-32). Por ejemplo, un
lenguaje de máquinas de estados finitos se describe en UML instanciando los
conceptos básicos de GME (Figura 2-33).
2.4.2.2 Eclipse
Pág. 2-95
Capítulo 2: Estado del Arte
Another
Eclipse Platform
Tool
Plug-in Workspace
Development Debug
Environment
(PDE)
Their
Platform Runtime Tool
Eclipse Project
La arquitectura (ver Figura 2-34) está basada en plugins Java que permiten la
integración de herramientas manipulando tipos de contenidos arbitrarios. El plugin
es la unidad mínima de funcionalidad en Eclipse, puede abarcar desde un editor
HTML completo hasta una acción para crear ficheros ZIP. Los plugins no tienen
porqué estar aislados entre sí, pueden comunicarse a través de puntos de
extensión. Cada plugin tiene un manifiesto expresado en XML (declaración de sus
puntos de extensión y sus interconexiones a otros plugins) y su propio java class
loader.
Además, existen otros bloques comunes como son los de ayuda al usuario o los de
internacionalización (10 idiomas soportados en la última versión).
Pág. 2-96
Capítulo 2: Estado del Arte
Standard Java2
Java VM
Virtual Machine
Figura 2-35. JDT y PDE sobre Eclipse.
○ Cobol IDE.
Pág. 2-97
Capítulo 2: Estado del Arte
Pág. 2-98
Capítulo 2: Estado del Arte
Pág. 2-99