Lenguaje de especificación
Transcript of Lenguaje de especificación
UNIVERSIDAD AUTONOMA DE CHIHUAHUA FACULTAD DE INGENIERIA
Lenguajes de Especificación SCR y RSML
Modelado y Análisis de Requerimientos de Software
Equipo #4 225690 Carlos Antonio Ibarra García
225654 Irving Manuel Canales Tarango 225673 Daniel Giovanni Nájera Chavira
28/11/2011
Se desarrolla un documento en el cual se describen los lenguajes de especificación SCR y RSML.
2
Tabla de contenido
Lenguaje de especificación ...................................................................................................................... 3
Diferencia entre lenguaje de especificación y lenguaje de programación .................................... 3
SCR .............................................................................................................................................................. 3
RSML ........................................................................................................................................................... 4
Súper estados ......................................................................................................................................... 5
Descomposición AND ............................................................................................................................ 6
Definición de transiciones ..................................................................................................................... 6
Tablas AND/OR ...................................................................................................................................... 7
Conclusiones............................................................................................................................................... 7
Recomendaciones ..................................................................................................................................... 8
Bibliografía .................................................................................................................................................. 8
3
Lenguaje de especificación
Un lenguaje de especificación o lenguaje de descripción es un lenguaje formal o
semi-formal cuya función es construir modelos de los sistemas que se desea
elaborar.
Diferencia entre lenguaje de especificación y lenguaje de programación
A diferencia de los lenguajes de programación, que son lenguajes interpretables o traducibles por una computadora hacia una representación ejecutable, los lenguajes de especificación no son por lo general utilizados para implementar el sistema, sino para especificarlo, conceptualizarlo o incluso validarlo, aunque también suelen ser legibles para un programa de computadora, que puede asistir en el proceso de validación.
SCR
En el campo de la Ingeniería de Requisitos, se han propuesto algunos esquemas
próximos a esta idea de especificación de interfaces. Uno de los primeros en hacerlo,
C. A. R. Hoare definía una especificación como un predicado cuyas variables
representan los aspectos observables del comportamiento del producto. Esto implica,
como es lógico, que el producto software contiene, además aspectos que no son
observables desde el entorno y que no deben figurar en la especificación.
El método SCR (Reducción del Coste del Software ha sido desarrollado para definir
formalmente los requisitos de un sistema hardware-software. Se basa en una notación
tabular, un modelo de maquinas de estados finitos y una serie de construcciones que
permiten especificar condiciones, eventos, modos de entradas y salidas. Los requisitos
se expresan por medio de relaciones matemáticas entre cuatro conjuntos de variables,
definidas en lo que se ha denominado el modelo tetra - variable formado por:
Variables monitorizadas; representan valores del entorno con capacidad de influencia
den el comportamiento del sistema.
Variables controladas; representan valores del entorno que serán controlados por el
sistema
NAT; es una función de los valores monitorizados a los valores controlados. Describe
las relaciones naturales entre variables monitorizadas y controladas. Por ejemplo,
descripción de restricciones debidas a las leyes de la física un otras causas localizadas
en el entorno del sistema.
4
REQ; función de los valores monitorizados a los valores controlados. Describe las
relaciones que el sistema debe mantener entre las variables monitorizadas y las
variables controladas, relaciones que por tanto no son ciertas en ausencia del sistema.
El método SCR distingue claramente entre los elementos de datos de entrada y salida,
por un lado y las relaciones Entrada y Salida por otro. Los elementos de entrada y
salida son los valores que los dispositivos de entrada salida leen y escriben
directamente. La relación entrada establece una correspondencia desde los valores
monitorizados del entorno a los datos de entrada. La salida establece una
correspondencia desde los datos de salida los valores controlados del entorno. El
comportamiento deseado, o sea, los requisitos se define básicamente mediante los
conceptos de valor monitorizado y valor controlado y no por medio de los datos de
entrada y salida. La especificación de entrada y salida es básicamente una
especificación orientada a interfaz y fuera a concentrarse en las relaciones causa-
efecto entre los fenómenos del entorno y el sistema.
RSML
Requirements State Machine Language (RSML). El lenguaje ha sido desarrollado por la
FAA para especificar los requerimientos del sistema TCAS II (Traffic Alert and Collision
Avoidance System) y está siendo utilizado por ellos para este propósito. El lenguaje
tiene una base formal y es adecuado para el análisis automatizado, pero también es
leído por expertos en aplicaciones con poca capacitación y formación matemática
mínima.
RSML el cual incluye muchas características desarrolladas por Harel para gráficos de
estado, por ejemplo, súper estados, descomposición AND, difusión de comunicación y
conectivas condicional.
RSML tiene algunas características únicas sintácticas y semánticas que se
desarrollaron para mejorar la legibilidad, capacidad de revisión, analizabilidad, y la
capacidad de manejar los sistemas complejos.
Una maquia de estados finitos simple es compuesta de estados conectados por
transiciones. Los estados principales son significados por los estados donde una
conexión de la transición no tiene ninguna fuente. En la figura 3, el estado Within-Limits
es el primer estado. Las transiciones definen como llegar de un estado a otro.
5
Súper estados
En RSML (y gráficos de estados), estados pueden ser agrupados dentro de súper
estados. Tales agrupaciones reducen el numero de transiciones permitiendo las
transiciones hacia y desde el súper estado en vez de requerir transiciones explicitas
hacia y desde todos los estados agrupados (sub estados). Los súper estados se
pueden introducir en dos maneras. Primero, la transición del súper estado puede
terminar en la frontera del súper estado (transición T1 en la figura 4). En este caso, un
estado predeterminado debe especificarse dentro del súper estado. En el ejemplo, el
estado Climb se introduce después de asumir la transición T1. Por otra parte, la
transición puede ser hecha a un estado en particular dentro del súper estado (transición
T2 en la figura 4). El súper estado mismo puede tener transiciones que termina en la
frontera y en cualquier número de los estados internos. El súper estado puede salir de
dos maneras (transiciones T3 Y T4 en la figura 4). Análogas a las transiciones en el
súper estado, las transiciones del súper estado puede tener su origen desde la frontera
o de un estado interior.
6
Descomposición AND
Una de las más importantes innovaciones en los gráficos de estado es a lo que Harel
llamo Estado paralelo, que contiene dos o más maquinas de estados separadas por
fronteras punteadas (figura 5). Cuando el estado paralelo S esta dentro, cada máquina
de estados A, B, C y D se introducen en el. Todas las maquinas de estado están fuera
cuando ninguna transición es tomada fuera del estado paralelo. El uso de los estados
paralelos reduce considerablemente el tamaño de la especificación.
Definición de transiciones
La definición de transiciones en RSML contiene cinco partes:
1.- La identificación (la fuente y el destino de la transición).
2.- La ubicación.
3.- La activación de eventos.
4.- La vigilancia de la condición.
5.- La acción de salida.
Las primeras partes son las únicas partes requeridas.
Las transiciones son tomadas a la ocurrencia del evento de disparo, siempre que la
condición de protección es la verdad. La condición de guardar define las condiciones
previas a la transición y se especifica el uso de tablas AND/OR. Las acciones de salida
identifican los eventos que se generan cuando la transición se toma. Estos eventos
generados pueden desencadenar transiciones en otras partes de la máquina de
estado. Este mecanismo de propagación de eventos se utiliza para secuenciar y
sincronizar la ejecución de las maquinas de estado paralelo en el modelo.
7
Tablas AND/OR
Muchos lenguajes basados en estados usan notación lógica estándar para describir la
vigilancia de las condiciones en las transiciones. Las tablas de AND/OR es una de
estas notaciones en donde se puede utilizar la representación tabular de forma normal
disyuntiva.
La columna de la izquierda en la tabla muestra las frases lógicas de la condición. Cada
una de las otras columnas representan una conjunción de esas frases que contiene los
valores lógicos de las expresiones (una columna denota el AND lógico de las frases en
el ancho de la columna), una columna se evalúa como verdadera si todos sus
elementos son verdaderos. Un punto denota “sin cuidado”. La colección de columnas
representa una disyunción (indicado por el OR por encima de las columnas). Por lo
tanto, si una de las columnas es cierta, entonces la condición de protección (la tabla) se
evalúa como verdadera.
Conclusiones
Es importante utilizar los lenguajes de especificación por que estos nos ayudan
especificar el sistema, conceptualizarlo o incluso validarlo, y también suelen ser
legibles para un programa de computadora, que puede asistir en el proceso
de validación.
8
Recomendaciones
Se recomienda buscar más información respecto a estos lenguajes de especificación,
así como dar un vistazo al documento: IEEE Transactions on Software Engineering
(TSE), que habla sobre el lenguaje y el enfoque de modelado.
Bibliografía
Alspaugh, T. A. (s.f.). Thomas A. Alspaugh. Recuperado el 22 de Noviembre de 2011,
de http://www.thomasalspaugh.org/pub/fnd/scr.html
Heitmeyer, C. L. (s.f.). United States Naval Research Laboratory. Recuperado el 22 de
Noviembre de 2011, de http://www.nrl.navy.mil/chacs/pubs/02-1221.1-1419.pdf
Reese, M. P. (1998). Experiences From Specifying the TCAS II Requirements Using
RSML. En 17th Digital Avionics Systems Conference.
Santillan, M., & Sharma, K. (s.f.). Software Engineering: Processes and Measurement
Research Group. Recuperado el 22 de Noviembre de 2011, de
http://wwwagse.informatik.uni-kl.de/teaching/re/ws2010/SCR_Abstract.pdf
Silva Vázquez, D. A. (s.f.). Archivo Digital UPM. Recuperado el 22 de Noviembre de
2011, de http://oa.upm.es/124/1/10200013.pdf