Sunteți pe pagina 1din 9

Métodos Formales

y Tecnologías
Orientadas a Objetos
José Nelson RESUMEN
Pérez Castillo
Este artículo discute el uso de métodos forma- rios años en la Facultad de Ingeniería de la
les en procura de los más altos niveles de cali- Universidad Distrital, específicamente en la
dad en el desarrollo de software. Se muestra un Maestría en Teleinformática, en donde se les
panorama de los principales conceptos de las conoce como Técnicas de Especificación For-
tecnologías orientadas a objetos y de los méto- mal para software de comunicaciones, siendo
dos formales haciendo un recorrido de la in- las más representativas: ASN.1, SDL y LOTOS.
vestigación y las tendencias principales en este
importante campo de la ingeniería de software. El incentivo fundamental para el trabajo de in-
vestigación sobre métodos formales en la in-
Palabras claves: Métodos formales, Z++, geniería de software, fue la creciente certeza de
VDM++, Object-Z, tipos, categorías, tecnolo- que únicamente los enfoques formales en la
gías orientadas a objetos. especificación, verificación, análisis, implemen-
tación, prueba y operación de los sistemas
informáticos, podría proporcionar los medios
FORMAL METHODS para controlar la complejidad creciente de los
AND OBJECT TECHNOLOGY sistemas de información actuales y de la inter-
conexión de sistemas abiertos. Esto significa
que los métodos formales, se están convirtien-
This paper reviews the use of for mal
do en una herramienta de uso común para to-
approaches in securing better quality software.
dos aquellos involucrados en el ciclo de desa-
It overviews the main concepts of the object
rrollo de sistemas de alta calidad, lo que impli-
techonology and formal methods, and conduct
ca que tales métodos formales tengan que ser
Los métodos a brief survey of research into the principal
estables, cuestión que puede garantizarse úni-
formales, son el strands in this important field of the software
camente mediante su estandarización. El
resultado del engineering.
CCITT y la ISO proporcionan el ambiente na-
trabajo de varias Keywords: Formal methods, Z++, VDM++,
tural para dicho proceso [1].
décadas sobre Object-Z, types, category theory, object
technology
lenguajes de
especificación RAZONES EN PRO DE LOS
formal y
INTRODUCCIÓN MÉTODOS FORMALES
métodos
rigurosos para
El estudio sistemático y uso intensivo de méto- Los métodos formales, son el resultado del tra-
el desarrollo de
dos formales en la ingeniería de software, es bajo de varias décadas sobre lenguajes de espe-
sistemas de cificación formal y métodos rigurosos para el
una disciplina que se ha abordado hace ya va-
computación.
10
Ingeniería
Los orígenes de desarrollo de sistemas de computación. La esen- CONCEPTUALIZACIÓN
la investigación cia de tales lenguajes y métodos la constituye DE LOS DENOMINADOS
sobre métodos un soporte matemático que busca asegurar
precisión y tratabilidad. Las descripciones con-
MÉTODOS FORMALES
formales, se
remontan a la vencionales, generalmente se dan en lenguaje
Los orígenes de la investigación sobre méto-
década de los natural o en diagramas, pero es complicado
dos formales, se remontan a la década de los
setenta, con los hacer que estas no sean ambiguas y por tanto
setenta, con los trabajos de Dijkstra y Hoare
trabajos de difíciles de analizar. Los errores y las omisio-
sobre verificación y desarrollo de programas y
Dijkstra y Hoare nes en los sistemas de computación son costo-
los de Scott, Stratchey y otros sobre semánticas
sobre sos de rectificar y pueden poner en peligro su
de programas. Un avance importante lo cons-
verificación y vida útil y apropiado funcionamiento [2]. Las
tituyó el desarrollo de lenguajes matemáticos
desarrollo de técnicas formales se justifican particularmente,
para la verificación de programas, como lo fue-
programas y los para sistemas con los siguientes atributos:
ron las notaciones Z [3] y VDM [4]. El lenguaje
de Scott, Z fue creado por J. R. Abrial, luego fue expan-
Complejos: muchos sistemas, de por sí son
Stratchey y dido y aplicado industrialmente por otros
complejos y la tendencia es producir sistemas
otros sobre desarrolladores durante la década de los ochen-
cada vez con mayor complejidad.
semánticas de ta, gracias al Grupo de Investigación en Pro-
programas. gramación de Oxford, que hizo de los métodos
Concurrentes: son sistemas que exhiben pa-
formales un elemento clave de su trabajo. Por
trones complejos de comportamiento y poten-
su parte, el lenguaje VDM fue desarrollado ini-
cialmente interferentes que deben ser entrela-
cialmente en los laboratorios de IBM en Viena
zados. La concurrencia surge en sistemas dis-
y por el grupo de la Universidad de Manchester
tribuidos, sistemas en tiempo real, diseño de
liderado por Cliff Jones, quien los convirtió en
hardware y procesamiento en paralelo.
el centro de atención de sus investigaciones y
esfuerzos por lograr instrumentos de desarro-
Calidad crítica: son sistemas cuyas fallas no
llo, que condujeron al logro de la herramienta
son peligrosas, pero cuya confiabilidad es alta-
conocida como Mural [5] y al proceso de
mente importante; ejemplos de esto son las apli-
estandarización adelantado por la ISO [6].
caciones financieras, las de telecomunicaciones
y los sistemas operativos.
Tanto Z como VDM, son lenguajes de especi-
ficación formal “basados en modelos”, es de-
Protección crítica: son sistemas que contro-
cir, utilizan la teoría de conjuntos y la lógica,
lan actividades vitales tales como la defensa, la
para construir modelos abstractos de los siste-
medicina, la industria nuclear, las telecomuni-
mas que se requieran, mediante el uso de con-
caciones y la gestión del tráfico aéreo.
juntos, secuencias, funciones, etc.
Seguridad crítica: con el uso extendido de las
En contraste, los métodos “algebraicos” tales
tecnologías computacionales puede ser esencial
como OBJ, PLUSS [7], LARCH [8] y FOOPS
impedir el uso no autorizado de información o
[9] usan lógica de ecuaciones para proveer des-
facilidades de computación, por motivos de
cripciones de sistemas implícitas y abstractas.
seguridad y confidencia comercial o privacidad
personal.
Las álgebras de procesos, constituyen el funda-
mento de los métodos formales orientados a la
Estandarizados: los estándares, en particular
solución de problemas de concurrencia. Los
los internacionales, suelen ser ampliamente uti-
principales formalismos son CSP [10], CCS [11]
lizados y deben ser interpretados uniformemen-
y el cálculo-π [12]. El fundamento de estas
te, si se quiere que tengan algún valor.
álgebras es el concepto abstracto de “proceso”,
11
Ingeniería
definido como un componente que puede re- directamente a través del concepto de
accionar a eventos externos, generarlos y reali- “metaclase” para cada clase y los métodos de la
zar el procesamiento interno requerido. Cada metaclase. El polimorfismo se trata a través de
lenguaje proporciona los significados a proce- la jerarquía de tipos.
sos específicos, los combina y razona respecto
a sus propiedades. Aplicaciones importantes El álgebra de procesos, también puede usarse
de CSP incluyen el desarrollo de la unidad de de modo orientado a objetos de la manera como
punto flotante INMOS T800 [13] y el lenguaje se indica en [22]. Más recientemente, el cálcu-
OCCAM. lo-π se utilizó para dar una base semántica a
una extensión orientada a objetos de VDM [23].
Los lenguajes CCS y el cálculo-π, han servido Las álgebras de procesos son muy efectivas en
como vehículos para un trabajo teórico exten- la captura de algunos aspectos dinámicos de
so. Las ideas de las álgebras de procesos “pu- sistemas de objetos, pero el tratamiento de da-
ras”, también han contribuido al desarrollo de tos complejos requiere, bien sea un lenguaje de
lenguajes híbridos como LOTOS [14], OBJSA especificación adicional para estos datos o una
[15] y RSL [16], en donde un componente de codificación altamente compleja de datos a ma-
álgebra de procesos se combina con un lengua- nera de procesos, como en el cálculo-π
je de especificación de datos (algebraico en el
caso de LOTOS, tanto algebraico como basa-
do en modelos en el caso de RSL). LOTOS se MÉTODOS FORMALES
usa ampliamente en el campo de las telecomu- EN TECNOLOGÍAS DE OBJETOS
nicaciones y RSL por su parte ha sido el tema
de proyectos de industrialización a gran escala,
Los seguidores de los métodos formales y los
financiados por la Unión Europea.
expertos en tecnologías de objetos, investigan
actualmente de qué manera las especificacio-
Los formalismos basados en modelos, se usan
nes formales pueden complementar el desarro-
ampliamente de manera conjunta con las tec-
llo orientado a objetos o por lo menos, cómo
nologías orientadas a objetos, a través de len-
pueden ayudar a clarificar las semánticas de las
guajes tales como Object-Z [17], VDM++ [18]
notaciones y conceptos orientados a objetos
y métodos tales como Syntropy [19] (que usa
[24]. Ejemplos de dicho trabajo son: el modelo
notación Z) y Fusion [20] (relacionado a VDM).
de objetos esencial del OMG que hace uso de
Si bien estos formalismos son efectivos en la
Z [25], la formalización de la notación OOA
modelación de estructuras de datos, como con-
mediante Z y los métodos Syntropy [19] y
juntos y relaciones entre conjuntos, no son los
Fusion [20].
más idóneos para la captura de mecanismos
sofisticados como son el enlace dinámico y el
La integración de las técnicas formales, dentro
polimorfismo, en tecnologías orientadas a ob-
de los métodos orientados a objetos, es parte
jetos.
de un área general de trabajo conocida como
Cada lenguaje integración de métodos [25]. El uso industrial
Los formalismos algebraicos se han usado me-
proporciona de los métodos formales con frecuencia se al-
nos frecuentemente con las tecnologías de ob-
canza gracias a dicha integración. En [27] se
los significados jetos. El ejemplo más importante de tal combi-
indica que el 31% de aquellas compañías que
a procesos nación es el lenguaje FOOPS y el formalismo
aplicaron métodos formales lo hicieron en con-
específicos, OOZE [21] en el que la lógica de ecuaciones
junto con métodos diagramáticos semiformales.
los combina se combina con un mecanismo de estructura-
Este criterio tiene ventajas decisivas en térmi-
y razona ción de módulos. Los aspectos dinámicos de
nos de la minimización de las interrupciones a
respecto a sus los sistemas de objetos, tales como el conjunto
las prácticas de desarrollo existentes.
propiedades. de objetos existentes de una clase, se manejan
12
Ingeniería
Tanto Fusion En la integración se han seguido dos enfoques y permite el uso de las notaciones Z sobre es-
como Syntropy, básicos: tos diagramas, para especificar precondiciones
son parte de y postcondiciones, invariantes y restricciones.
una tendencia • Uso de notación matemática para mejorar las Una característica importante de Syntropy es
hacia un mayor representaciones diagramáticas, teniendo en su énfasis en eventos más que en mensajes, para
grado de cuenta, que el desarrollo se realiza predomi- la modelación de los requerimientos del siste-
abstracción en la natemente con uso de las últimas. ma. Un evento puede involucrar cualquier can-
especificación de tidad de objetos (por ejemplo, puede disparar
objetos, fuera de • Uso de un proceso de traducción, a partir de una transición de los diagramas de estado de
los conceptos de los modelos diagramáticos de análisis hacia varias clases de objetos). Esta sincronización
métodos y paso notaciones formales, tales como un lenguaje (no dirigida) entre objetos más tarde puede
de mensajes. de especificación orientado a objetos. El de- implementarse como el paso dirigido de men-
sarrollo se logra fundamentalmente usando sajes (llamada de métodos). Esto es análogo a
las notaciones formales. la sincronización, mediante acciones en el
Object Calculus, descrito en [30], y a diferen-
El primer enfoque es más adecuado para un “ri- cia de Fusion, se da un tratamiento al problema
guroso” aunque no completo, desarrollo orien- de concurrencia. Syntropy, nació después de
tado a objetos, dado que las notaciones muchos años de experiencia en consultoría y
diagramáticas, no soportan una prueba o una ha sido utilizado en aplicaciones financieras crí-
verificación. El segundo es más adecuado cuan- ticas en el Reino Unido.
do se desarrollan sistemas altamente integrados.
Tanto Fusion como Syntropy, son parte de una
Como ejemplos del primer enfoque pueden ci- tendencia hacia un mayor grado de abstracción
tarse a Fusion y Syntropy, descritos más ade- en la especificación de objetos, fuera de los
lante. En [28] se encuentra un ejemplo del se- conceptos de métodos y paso de mensajes.
gundo enfoque, que hace uso de B AMN como Ambos enfoques usan conceptos (operaciones
el lenguaje formal. En [24], se encuentra otro del sistema en Fusion, eventos en Syntropy) en
ejemplo que hace uso de este enfoque, recu- la etapa de análisis, que permiten una especifi-
rriendo a LOTOS. cación flexible de los elementos de un sistema,
sin un compromiso prematuro con una arqui-
Fusion se generó a partir del trabajo de tectura particular de objetos o de definiciones
Coleman, Dollin y otros en Hewlett Packard dentro de clases particulares.
Labs sobre la mejora a notaciones formales
orientadas a objetos tales como los diagramas La herramienta Venus para OMT y VDM++,
de estado [20]. Se proveen notaciones semifor- provee soporte para el uso combinado de téc-
males (inglés estructurado) para precondiciones, nicas formales y técnicas digramáticas orienta-
postcondiciones e invariantes de operaciones y das a objetos, de manera altamente integrada
se hace uso de los conceptos básicos de especi- [31] y está diseñada como una extensión de una
ficaciones formales (abstracción, refinamiento herrmienta CASE, ampliamente utilizada para
mediante el modelo de exclusión, especificación OMT, permitiendo a los usuarios de técnicas
de operaciones haciendo uso de precondiciones orientadas a objetos, incrementar la formalidad
y postcondiciones), sin adoptar notación mate- de sus desarrollos de manera gradual. Es posi-
mática. ble producir una especificación OMT del con-
junto de clases, atributos y asociaciones en un
Syntropy es un método más reciente en la mis- sistema, generar un esquema de clases VDM++
ma dirección, que combina los diagramas de a partir de la especificación, mejorar estas cla-
estado y las notaciones del modelo de objetos ses y entonces traducir de regreso la especifica-
de OMT [29], con los diagramas de interacción ción mejorada dentro de una vista OMT. La
13
Ingeniería
Las técnicas ventaja de este enfoque, es que las herramien- tenido sus principales aplicaciones en sistemas
formales tas de análisis y edición más apropiadas, pue- de transporte seguros [37]. El lenguaje
permiten un den usarse sobre las diferentes vistas SmallVDM [28], combinó una estructuración
significado (diagramáticas vs formales) del sistema. Por lo basada en objetos derivada de Smalltalk con la
preciso para general, es más efectivo crear y modificar una notación VDM. Otros trabajos que proveen
mecanismos jerarquía de clases, usando un editor de unas extensiones mínimas a Z y que permiten
complejos diagramas que a través de una herramienta ba- un estilo de especificación orientado a objetos,
orientados a sada en texto. incluyen a [38].
objetos tales
como la La traducción de notaciones diagramáticas a no- Los investigadores y seguidores de las tecnolo-
agregación o taciones formales, tales como las realizadas por gías de objetos, se encaminaron en la dirección
Venus, proveen una interpretación particular y de mecanismos orientados a objetos, porque és-
los diagramas
semánticas propias a las primeras. Entonces al tos parecen complementar de modo natural los
de estado.
concepto no bien definido de “agregación” en lenguajes de especificación basados en mode-
orientación a objetos, se le puede dar un signi- los [39] y [28], apoyándose en las siguientes ra-
ficado preciso, mediante la traducción a un len- zones:
guaje formal como LOTOS [24], VDM++ o • La orientación a objetos estimula la creación
Z++. En VDM++, la interpretación se hace a de abstracciones y las técnicas formales pro-
través del concepto de “herencia indexada”. veen los mecanismos para describir de modo
preciso dichas abstracciones.
Similarmente, las ambigüedades de la notación
de diagramas de estado, puede resolverse me- • La orientación a objetos provee los mecanis-
diante una interpretación formal tal como la que mos de estructuración y las disciplinas de de-
se propone en [32] para RTL. Por ejemplo, los sarrollo requeridas para escalar hacia técni-
métodos de Booch [33] y OMT, toman diferen- cas formales en grandes sistemas.
tes interpretaciones considerando si los even-
tos son encolados, ignorados o si arriban en el • Las técnicas formales permiten un significa-
momento cuando el objeto destino no está en do preciso para mecanismos complejos orien-
un estado, en el cual puedan ser aceptados. tados a objetos tales como la agregación o
los diagramas de estado.

TECNOLOGÍAS ORIENTADAS La primera extensión totalmente orientada a


objetos de Z fue el lenguaje Object-Z [17] y
A OBJETOS EN MÉTODOS caracteriza los siguientes aspectos claves, de la
FORMALES estructuración orientada a objetos:
• Encapsulación de datos y operaciones den-
Las limitaciones de Z y VDM, para la especifi- tro de módulos que además definen tipos.
cación de grandes sistemas de manera modu-
lar, condujeron a diferentes investigaciones con • La posibilidad de creación de subclases de
el propósito de añadir mecanismos de clases, por medio del mecanismo de herencia
estructuración a estos lenguajes. Por ejemplo, y la habilidad para usar operaciones
en [34] se hizo la propuesta de adicionar un polimórficamente, entre una subclase y sus
mecanismo de “capítulos” para descomponer superclases.
las especificaciones Z dentro de módulos, y [35]
identificaron un enfoque similar, usando una • La habilidad para usar instancias de clases den-
combinación de HOOD y Z. Abrial y otros en tro de otras clases (composición de clases).
BP Research, desarrollaron una extensión ba-
sada en objetos de Z, conocida como la nota- No obstante esto, inicialmente se restringió la
14 ción de la Máquina Abstracta B [36], que ha composición, de modo que fuese acíclica (la
Ingeniería
clase A podría no contener una instancia de una nuos a discretos de un sistema [47] y la defini-
clase B, si B contuviera una instancia de A u ción de refinamiento y subtipificación en la pre-
otras situaciones cíclicas). Se encontró que la sencia de concurrencia y comportamiento de
orientación a objetos provee ventajas en térmi- tiempo real.
nos de convergencia con los conceptos de do-
minio. Z no es ideal como base para un lenguaje de
especificación orientado a objetos debido a su
Otras extensiones a Z tales como Z++[40], complejidad semántica, particularmente en el
MooZ [41], OOZE [21] y ZEST [39], se desa- cálculo de esquemas. Algunos intentos para
rrollaron en los años 1989 a 1991. De estos, mezclar el cálculo de esquemas y la llamada a
OOZE se distingue como el único lenguaje que métodos, han conducido a una complejidad
se basa en un enfoque de especificación sintáctica excesiva, como en el caso de Z++ y
algebraica, que hace uso de OBJ y FOOPS Object-Z. Ambos lenguajes cambiaron
como su fundamento pero con una sintaxis si- sustancialmente la sintaxis y la interpretación
milar a Z. En el mundo de VDM, el lenguaje de los esquemas de Z, con el propósito de lo-
Fresco se desarrolló como un medio de pro- grar un formalismo adecuado.
veer un soporte de especificación y verificación
formal para el desarrollo con Smalltalk [42]. En ciertos casos los problemas de combinar la
orientación a objetos y la especificación formal,
Varios de estos lenguajes se generaron de modo se deben al lenguaje de programación que
particular en los campos de las telecomunica- instrumenta varios de los conceptos de la orien-
ciones y del control de procesos. El trabajo de tación a objetos. La invocación de métodos en
BT haciendo uso de ZEST es notable a este particular, se interpreta de una manera
respecto, y fue tan exitoso que ZEST ahora se procedimental y la tarea de encontrar una abs-
utiliza con preferencia a lenguajes de especifi- tracción adecuada de la llamada a métodos o
cación más tradicionales en telecomunicaciones de usarlos de una manera declarativa (como pre-
tales como LOTOS y SDL [43]. Los conceptos dicados sobre el proveedor de pre y pos esta-
de identidad de objetos y de estructuras de com- dos) aún no está enteramente resuelta. Debido
posición cíclicas fueron introducidos en Z++ y a que VDM contiene un sublenguaje procedi-
Object-Z [44]. mental, resulta más simple proveer una combi-
nación de especificación formal y orientación a
El lenguaje VDM++ representa un enfoque objetos a este nivel. Los mecanismos de
significativamente más ambicioso con base en modularidad de VDM son aún más primitivos
las ideas de VDM, Smalltalk y la extensión que los de Z, y han sido remplazados comple-
DRAGOON de Ada [45]. Incluye concurren- tamente por los mecanismos de orientación a
cia y características de sincronización al estilo objetos en VDM++.
Ada, trazas (como en CSP) y aspectos de tiem-
Una desventaja po real tomados de las ideas de Hayes [46]. Una desventaja significativa con el uso de
significativa con Como en el caso de Fusion y ZEST, la partici- estructuración orientada a objetos, es el grado
el uso de pación de una compañía importante (en este al cual esto complica el razonamiento acerca de
estructuración caso CAP Gemini) ha provisto rutas directas las especificaciones, por las siguientes razones:
para aplicaciones industriales significativas [47].
orientada a
Los aspectos de concurrencia y tiempo real, se • El polimorfismo y el enlace dinámico, hacen
objetos, es el
contemplan dentro de Z++, de una manera más difícil el control de la versión de un método,
grado al cual
declarativa gracias al uso de lógica de tiempo que será realmente ejecutada, en una invoca-
esto complica el
real [48]. La investigación de extensiones simi- ción particular [49].
razonamiento lares para Object-Z continúa. Aspectos desta-
acerca de las cados en el tratamiento de tiempo real y concu- • La herencia, puede ser usada para fragmentar
especificaciones rrencia, son la transformación de modelos conti- la definición de un método a través de mu-
15
Ingeniería
chas clases, haciendo su significado difícil de misos y los requerimientos de comportamiento
determinar [50]. de los métodos, que se interpretan como sím-
bolos de acción en la lógica, mientras que los
Además, algunos lenguajes orientados a obje- atributos se interpretan como símbolos de
tos estimulan el uso amplio de los alias y de atributos (que son distintos de las variables en
redes interconectadas de objetos [51]. el sentido lógico, dado que no pueden ser cuan-
tificados y tienen valores dependientes del tiem-
Hasta hace poco, no existían semánticas for- po).
males para un lenguaje de especificación orien-
tado a objetos. Ahora, esto ha sido parcialmen- Los modelos teóricos de conjuntos de la orien-
te remediado con un sistema de razonamiento tación a objetos [56], proveen un medio para
y semánticas axiomáticas provistas por Object- discutir la identidad de los objetos y aspectos
Z [52] y Z++ [40] y unas semánticas de nota- tales como la migración de subtipos [57], don-
ción para MooZ [53]. de un objeto puede ser considerado como de
diferentes subtipos de una clase en diferentes
momentos. Las clases se modelan como con-
FUNDAMENTOS DE juntos de entidades de objetos. Una definición
LOS MÉTODOS FORMALES clara de subtipificación y refinamiento no
emerge necesariamente de tales nociones debi-
do a problemas que involucran clases definidas
Varias áreas de las matemáticas proporcionan
recursivamente.
el andamiaje formal para la tecnología de obje-
tos: la lógica, la teoría de tipos, la teoría de cate-
La teoría de tipos ha sido estudiada extensi-
gorías [15] y el álgebra de procesos [54]. La ló-
vamente como base para las semánticas de la
gica provee una forma de describir y razonar
orientación a objetos. En [58] y [59] se dan ejem-
acerca del comportamiento de los objetos y de
plos del enfoque teórico de tipos. Este enfoque
las clases a un nivel que es razonablemente
interpreta clases como tipos (tales como tipos
transparente y entendible. La teoría de catego-
recursivos y polimórficos o como tipos cuanti-
rías provee un marco matemático general en el
ficados existencialmente), y provee respuestas
cual varias clases de estructura, pueden ser des-
definitivas a los problemas de subtipificación.
critas de modo natural. Mediante el desarrollo
El trabajo en esta área, incluye el cálculo de
de estructuras de teorías lógicas, se ha probado
objetos [60], en el que por analogía con el uso
que es posible proveer una caracterización con-
del cálculo-λ para definir las semánticas de los
cisa de diversas estructuras que se usan en tec-
lenguajes funcionales, las semánticas de la orien-
Un objeto nologías orientadas a objetos.
tación a objetos se expresan en un cálculo ba-
puede ser sado en los conceptos de método, objeto y tipo
considerado El álgebra de procesos provee una forma alter-
como elementos primitivos. Este formalismo
como de nativa de caracterización, mediante la conside-
puede usarse para darle un significado a las ex-
diferentes ración de las clases y los objetos como proce-
tensiones del paradigma orientado a objetos, por
subtipos de sos y mediante el uso del álgebra para combi-
ejemplo “métodos como objetos”.
una clase en narlos de diversas maneras. El cálculo-π, es
particularmente relevante para expresar las
diferentes Un enfoque lógico, donde las clases se inter-
semánticas orientadas a objetos, por que su uso
momentos. pretan como teorías, provee una definición apa-
del paso de nombres entre procesos, es análo-
Las clases se rentemente natural de subtipificación y refina-
go a la reconfiguración dinámica en sistemas
modelan como miento como extensión teórica. Así, la clase D
de objetos.
conjuntos de es una subclase de la clase C, si satisface todas
El enfoque lógico se ejemplifica en [30]. Las
entidades de los requerimientos de C, a través de la traduc-
especificaciones de lógica temporal de primer
objetos. orden, definen las propiedades de los objetos,
ción sintáctica. Esta definición cumple con los
16 principios de subtipificación informales de [61].
incluyendo los efectos, las restricciones de per-
Ingeniería
En un lenguaje Sin embargo, para propósitos prácticos, la exten- a la entrada de datos que a la velocidad que
de especifi- sión teórica no puede ser usada de por sí, en cam- puede alcanzarse por vía secuencial. Además,
cación, las bio, se usa un conjunto de pruebas que general- varios objetos pueden estar sobre el mismo
clases de mente son suficientes pero no necesarias, para la procesador y entonces pueden considerarse
objetos suptipificación o refinamiento a sostener. Estas como parte del mismo proceso. En un lengua-
representan pruebas son descompuestas sobre la base de enti- je de especificación, las clases de objetos repre-
entidades dades de clase, y son similares a las de [62]. sentan entidades conceptuales y de diseño, mien-
conceptuales tras que los procesos son una entidad más rela-
y de diseño, Las distinciones entre subtipificación y refina- cionada a la implementación del sistema.
mientras que miento han sido clarificadas recientemente. En
los procesos algunos enfoques de modelación, estos concep-
son una tos han sido combinados, mientras que en otros, CONCLUSIONES
entidad más tal como en el álgebra de procesos de LOTOS,
relacionada a la con frecuencia no es claro qué definición de La combinación de técnicas formales y de las
“simulación de procesos” debería usarse como tecnologías orientadas a objetos, ha alcanzado
implementación
la base de verificación [63]. Similarmente, la de- avances significativos en ambos campos y ha
del sistema.
terminación del concepto correcto de bisimu- conducido a una mayor diseminación del tra-
lación para el cálculo-π aún es un área activa de bajo en métodos formales, que de otra manera
investigación [64]. podría no haber ocurrido. Por ejemplo, las pre-
sentaciones sobre el cálculo de objetos, han te-
El refinamiento puede verse como una forma nido un lugar preeminente en las conferencias
de subtipificación (es decir, extensión teórica), OOSPLA, TOOLS y ECOOP.
pero con restricciones adicionales. En particu-
lar, no está permitido introducir nuevos méto- Los retos futuros para las técnicas formales en
dos externos en el refinamiento de clases, aun- tecnologías de objetos incluyen un tratamiento
que nuevos métodos internos puedan ser defi- formal de patrones [67] y marcos (arquitectu-
nidos. El concepto de adecuación de VDM (es ras específicas de dominio para sistemas de
decir, para todo estado abstracto existe un esta- objetos en ese dominio). Además, las herramien-
do concreto bajo la interpretación datos de cla- tas de soporte para métodos formales consti-
ses y atributos [4]), también se requiere para tuyen un área de gran interés para la futura adop-
refinamiento pero no para subtipificación. ción a escala industrial de estos métodos, en
pos de la mejor calidad del software.

CONCURRENCIA
REFERENCIAS
Es conocido que los objetos, debido a su inde- [01] Pérez C. J. N. Línea de investigación en administración de redes.
pendencia y al aislamiento de su estado inter- Universidad Distrital Francisco José de Caldas, Facultad de
Ingeniería, Maestría en Teleinformática, Junio de 1992.
no, de la interferencia por otros objetos, son [02] Pérez C. J. N. Sistema Integrado de Pruebas, Análisis y Gestión de
unidades apropiadas de ejecución concurrente. Redes (SIPAG). Universidad Distrital Francisco José de Cal-
das, Facultad de Ingeniería, Maestría en Teleinformática,
Como ejemplos de algunos intentos por inte- Noviembre de 1994.
grar los conceptos de concurrencia y la orienta- [03] Spivey M. The Z notation: A reference manual. Prentice Hall,
2nd edition, 1992.
ción a objetos pueden citarse la notación POOL [04] Jones C. Systematic software development using VDM. Prentice
[65], DRAGOON [66] y VDM++. Hall International. (2nd edition), edition 1992.
[05] Ritchie B. Proof with Mural. Rutherford Appleton Laboratory,
Informatics Department, Chilton, Didcot, Oxon OX11
Sin embargo, el ajuste entre objetos y procesos 0QX, UK, 1993.
[06] Andrews D. J. Information Techonology Programming Langauges -
no es exacto. En particular, los objetos pueden VDM-SL; First Commitee Draft Standard: CD 13817-1, docu-
ser concurrentes internamente, si representan mento iso/iec jtcl/sc22/wg19 n-20, Noviembre de 1993.
[07] Ehrig H. y Mahr B. Fundamentals of algebraic specification2.
un sistema que debe responder más rápidamente Springer-Verlag 1990.
17
Ingeniería
[08] Guttag J. Abstract data types and the development of data structures. En Programming [42] Wills A. Capsules and types in Fresco: Program verification in Smalltalk. En P.
Language Design. Los Alamitos, CA: IEEE Computer Society Press, 1980 America, editor, ECCOP’91 Proceedings, volume 512 of Lecture Notes in
[09] Goguen J. y Ginali S. A categorical approach to general systems theory. En G. Klir, Computer Science, págs. 59-76. Springer-Verlag, 1991.
Editor, Applied General Systems Research, págs. 257-270. Plenum, 1978. [43] Moller-Pedersen B et al. Relational and tutorial on osdl: An object-oriented extension
[10] Hoare, C. Communicating sequential processes. Prentice Hall, 1985. of sdl. Computer Networks and ISDN Systems, 13(2): 97-117, 1987.
[11] Milner R. Communication and concurrency. Prentice Hall, 1991. [44] Lano K. Refinement in object-oriented specification languages. En D. Till. Editor, 6th
[12] Milner R. The polyadic p-calculus: A tutorial. En M. Broy, editor, Logic and Refinement Worshop. Springer-Verlag, 1994.
Algebra of Specification, 1992. [45] Atkinson W. D. et al, Modal action logic for the specification and validation of safety.
[13] May D. Use of formal methods by silicon manufacturer. En C. A. R. Hoare, editor, En Mathematical Structures for Software Engineering. The Institute of
Developments in Concurrency and Communication, capítulo 4, págs. 107- Mathemtics and its Applications Conference Series 27, Clarendon Press,
129. Addison Wesley, 1990. 1991.
[14] Brinksma E. Information Processing Systems - Open Systems Interconnection - LO- [46] Hayes J. y Mahony B. A case study in timed refinement: A mine pump. IEEE
TOS - A formal descripción technique based on the temporal ordering of observation, Software, 18(9), Septiembre de 1992.
ISO 8807, 1988. [47] Durr E. y Dusink E. The role of VDM++ in the development of a real-time
[15] Goguen J. y Diaconescu R. Towards an algebraic semantics for the object paradigm. tracking and tracing system. En J. Woodcock and P. Larsen, Editors, FME’93
En Harmut Ehrig and Fernando Orejas Editors, Recent Trends in Data Lecture Notes in Computer Science. Springer Verlag, 1993.
Type Specification. Srpinger-Verlag Lecture Notes in Computer Science, [48] Lano K. Reactive system specification and refinement. En TAPSOFT’95, Volume
785, 1994. 915 of Lecture Notes in Computer Science. Springer-Verlag, 1995.
[16] George C. et al. The RAISE specification language. Prentice Hall, 1992. [49] Ponder C. y Bush B. Polymorphism considered harmful. ACM Sigplan Notices,
[17] Carrington D., et al. Object-Z: An object oriented extension to Z, En Formal 27(6), Junio de 1992.
Description Techniques, II (FORTE’89), págs 281-196. North-Holland, 1990. [50] Wide N. y Huit R. Maintenance support for object-oriented programs. En Proceedings
[18] Durr E. y Katwinjk J. VDM++: a formal specification language for object-oriented of Conference on Software Maintenance. IEEE Computer Society Press,
design. En TOOLS Europe’92 págs: 63-77, 1992. 1991.
[19] Cook S. y Daniels J. Designing Object Systems: object-oriented modelling with Syntropy. [51] Hogg J. Islands: Aliasing protection in object-oriented languages. En OOSPLA’91
Prentice Hall, 1994. Proceedings. Springer-Verlag, 1991.
[20] Coleman D. et al. Object oriented development: The Fusion method. Prentice Hall - [52] Smith G. A logic for object-Z. En Z User Meeting’95. Lecture Notes in
object-oriented series, 1994. Computer Science. Springer-Verlag, 1995.
[21] Alencar A. J. y Goguen J. A. OOZE: An object-oriented Z environment. En P. [53] Lin T. A formal semantics for MooZ, PhD Thesis. Technical Reports, DI/UFPE,
America, editor, ECOOP’91 Proceedings, volumen 512 de Lecture Notes Recife/PE, Brazil, 1994.
in Computer Science, págs. 180-199. Springer-Verlag. Julio de 1991. [54] Hennesy M. Algebraic theory of processes. The MIT Press, 1988.
[22] Hoare C. Communicating sequential processes. Prentice Hall, 1985. [55] Malcom G. y Goguen J. Proving correctness of refinement and implementation.
[23] Jones C. An object-based design method for concurrent programs. Technical Reports Technical monograph PRG-114, Programming Resarch Group, Oxford,
UMCS-92-12-1, Department of Computer Science, University of University, 1994.
Manchester, 1992. [56] Maung I. et al. Towards a formatization of programming by difference. En FME’94
[24] Moreira A. M. D. y Clark R. G. Combining object-oriented analysis and formal Proceedings. Springer-Verlag, 1994.
description techniques. En M. Tokoro and R. Pareschi, editors, 8th European [57] Wieringa R. et at. Roles and dynamic subclasses: a modal logic approach. En
Conference on Object-Oriented Programming: ECCOP’94, LNCS 821, págs. ECCOP’94 Proceedings. Springer-Verlag, 1994]
344-364. Springer-Verlag, Julio de 1994. [58] Cook W. y Palsberg J. A. A denotational semantics of inheritance and its correctness.
[25] Houston I. Formal specification of the OMG Core Object Model. Technical Report Proceedings of International Confeence on Object-oriented programming,
IBM UK, Hursely Park, 1994. systems and languages, 24(10): 433-443. Special Issue of SIGPLAN Noteces,
[26] Semmens L. et al. Integrated structured analysis and formal specification techniques. 1989.
The Computer Journal, 35(6), 1992. [59] Hense A. Denotational semantics of an object-oriented language with explicit wrapper.
[27] Austin S. y Parkin G. I. Formal methods: a survey. Technical report, National Physical BCS Formals Aspects of Computing, 5:181-207, 1993.
Laboratory, Queens Road, Tedington, Middlesex, TW11 OLW, Marzo de [60] Abadi M. y Cardelli L. An imperative object calculus. En P.D. Mosses, M. Nielsen,
1993. y M. I. editores, TAPSOFT’95, volumen 915 de Lecture Notes in Computer
[28] Lano K. y Haughton H. Object-oriented specification case studies. Prentice Hall, Science. Springer-Verlag, Mayo de 1995.
first edition, 1993. [61] Liskov B. Data abstraction and hierarchy. En OOSPLA’87 (Addendum to
[29] Rumbaugh J. et al. Object-oriented modelling and design. Prentice-Hall, 1991. proceedings): ACM SIGPLAN Notices, 23(5): 17-34, Mayo de 1988.
[30] Fiadeiro J. y Maibaum P. Towards object calculi. Technical Report, Imperial [62] Liskov B. y Wing J. Family values: A behavioral notion of subtyping. Technical
College, 1991. Report CMU-CS-93-187, School of Computer Science Carnegie Mellon
[31] LeBlanc P. VENUS User manual combined use of OMT and VDM++. Technical University, 1993.
Report afro/verilog/plb/um/v2,3, Verilog, 1995. [63] Thomas M. y Kirkwood C. Experiences with specification and verification in LO-
[32] Barroca L. M. et al. The architectural specification of an avionic subsystem. En IEEE TOS. En Industrial-Strength Formal Specification Techniques. IEEE Press,
Workshop on industrial-trength formal specification techniques, págs. 17- 1995.
29. IEEE Press, 1995. [64] Lin T. Complete inference systems for weak bisimulation equivalences in the p-calculus.
[33] Booch G. y Bryan D. Software Engineering inb Ada, cuarta edición. Benjamin/ En TAPSOFT’95, volume 915 of Lecture Notes in Computer Science.
Cummings, 1994. Springer-Verlag, Mayo de 1995.
[34] Sampaio A. y Meria S. Modular extensions to Z. En VDM and Z, volume 428 [65] America P. Pool-t: a parallel object oriented language. En Object Oriented Concu-
of Lecture Notes in Computer Science. Springer-Verlag, 1990. rrente Programming. MIT Press, 1987.
[35] Iachini P. y Giovanni R. HOOD and Z for the development of complex software [66] Atkinson C. Object Oriented Reuse, Concurrency and Distribution, ACM Press:
systems. En VDM and Z VDM 90, volumen 428 de Lecture Notes in Computer Addison Wesley, 1991.
Science, págs. 262-289. Springer-Verlag, 1990. [67] Goldberg A. y Robson D. Smalltalk-80: The language and its implementation.
[36] Haugton H. y Lano K. B Abstract machine notation: a reference manual. Mc Addison Wesley, 1983.
Graw Hill, 1995.
[37] Bowen J. y Stavridou V. Safety-critical systems, formal methods and standars. Soft-
ware Engineering 1993.
[38] Hall A. Specificying and interpreting class hierarchies in Z. En 8th Z User Meeting, José Nelson Pérez Castillo
Workshop in Computing, Springer-Verlag, 1994. Profesor Universidad Distrital Francisco José de Caldas
[39] Cusack E. Object-oriented modelling in Z. En P. America, editor, ECOOP’91 Investigador Centro de las Telecomunicaciones CINTEL.
Proceedings, Lecture Notes in Computer Science. Springer Verlag, 1991. Ingeniero de sitemas y Magister en Teleinformática de la UD.
[40] Lano K. Z++, an object oriented extension to Z. In J. Nicholls, editor, Z User Especialista en Sistemas de Información Geográfica, Teledetección y Cartogra-
Meeting, Oxford, UK Workshops in Computing. Springer-Verlag, 1991.
fía, Universidad de Alcalá de Henares, España
[41] Meira S. R. L. y Cavalcanti A. L. C. Modular object-oriented Z specifications. En Z
Doctor en Informática, Universidad de Oviedo, España.
User Meeting 1990, Workshops in Computing, págs 173-192. Springer-Verlag,
1991. e-mail: jonepe@cc-net.net
18
Ingeniería

S-ar putea să vă placă și