PDF de programación - Métodos Formales Orientados a Objetos

Imágen de pdf Métodos Formales Orientados a Objetos

Métodos Formales Orientados a Objetosgráfica de visualizaciones

Publicado el 3 de Mayo del 2017
1.170 visualizaciones desde el 3 de Mayo del 2017
269,6 KB
20 paginas
Creado hace 21a (15/10/2002)
Métodos Formales Orientados a Objetos



Francisco José Galán Morillo
José Miguel Cañete Valdeón

Dept. Lenguajes y Sistemas

Informáticos

ETSI Informática

Av. Reina Mercedes s/n, 41012 Sevilla

954552773

[email protected]



ÍNDICE


1. Introducción.
2. Definición de Método Formal Orientado a Objetos.
3. Descomposición en temas.
4. Justificación.
5. Matriz temas-referencias.
6. Lecturas recomendadas.
Apéndice A-Lista de otras lecturas recomendadas.



1. INTRODUCCIÓN

El área de los Métodos Formales Orientados a Objetos (MFOO en
adelante) se ocupa de la descripción de software de manera
precisa y rigurosa. Tal objetivo obliga a la utilización de lenguajes
de especificación de software de naturaleza matemática.
Es interesante destacar, que en los últimos años se ha evidenciado
un acercamiento entre dos comunidades de ingeniería de software
aparentemente muy distintas: la “comunidad de los métodos
formales” y la “comunidad de los métodos convencionales”.
Syntropy [CoD94] y Catalysis [SoW98] representan dos buenos
ejemplos de este acercamiento. Históricamente, los métodos
formales centraron sus objetivos en la calidad, descuidando, en
gran medida, el entorno en el que debían aplicarse. La falta de
educación general y el déficit de herramientas los convirtieron en
recursos bastante ideales y difíciles de manejar. Si embargo, esta
crítica no recae sólo en el debe de los métodos formales. La
sistematización progresiva de la producción de software necesita
de notaciones expresivas y, evidentemente, formales. No hay
automatización sin formalización. El camino, sin duda, es largo y
las fertilizaciones cruzadas entre ambas comunidades, serán
necesarias.
La organización del presente documento es la siguiente: en la
sección 2 se establecen la definición de método formal orientado a
objetos, para ello, se definen los conceptos formal y orientación a
objetos. A continuación, se establece una organización del
conocimiento en el área MFOO mediante una descomposición en
temas. La descomposición distingue conceptos básicos y
fundamentales, conocimientos sobre formalismos matemáticos y

métodos formales orientados a objetos. La sección 4 establece una
justificación razonada de la descomposición. La sección 5 permite
al lector identificar rápidamente las referencias de interés para un
determinado tema. Finalmente, se establece una selección de las
referencias recomendadas.


2. DEFINICIÓN DE MÉTODO FORMAL
ORIENTADO A OBJETOS

Un MFOO es un conjunto de técnicas de modelado para
especificar, desarrollar y verificar sistemas software mediante el
uso del lenguaje matemático y características orientadas a
objetos [FM].
Por sistema software orientado a objetos se entiende, de forma
general, a toda colección de objetos que colaboran entre sí para
conseguir un propósito (objetivos del sistema software).
Muchos de los métodos formales presentes en la literatura
aparecen como métodos formales extendidos con conceptos de
orientación a objetos. Es decir, la existencia de un lenguaje formal
suele ser previa a la existencia del lenguaje orientado a objetos.
Este hecho ha condicionado en gran medida las diferentes
propuestas y así queda reflejado en el presente documento.
Dada la diversidad de trabajos y formalismos existentes en la
actualidad, es necesario establecer qué se entiende por formal y
qué se entiende por orientación a objetos. El término formal
queda caracterizado por la categoría de modelos matemáticos
utilizados. Ejemplos de formalismos son: lógica de primer orden,
álgebras, redes de Petri y lógica temporal. Por otra parte, el
término orientado a objeto queda caracterizado por los conceptos
de objeto, ocultación, interacción, abstracción, concurrencia,
clase, herencia, (sub)tipo y genericidad.
Los formalismos basados en lógica de primer orden y teoría de
conjuntos [MaW85] permiten especificar el sistema mediante un
concepto formal de estado y operaciones sobre estados. Con este
propósito, datos y relaciones/funciones se describen en detalle y
sus propiedades se expresan en lógica de primer orden. La
semántica de los lenguajes está basada en la teoría de conjuntos.
Durante el diseño e implementación del sistema, los elementos
descritos matemáticamente pueden modificarse preservando las
características esenciales de la especificación inicial.
Los formalismos algebraicos [EhM85]proponen la descripción de
estructuras de datos estableciendo el nombre de los diferentes

fórmulas,

semánticas:

generalmente,

conjuntos de datos, funciones básicas y propiedades. No hay
concepto de estado modificable en el tiempo. Las propiedades se
describen mediante
ecuaciones.
Diferentes modelos semánticos se han propuesto para caracterizar
las especificaciones algebraicas: modelos iniciales, finales y laxos.
Los modelos iniciales identifican términos cuya igualdad puede
ser probada desde los axiomas. Los modelos finales identifican
términos diferentes cuya desigualdad puede ser probada desde sus
axiomas y los modelos laxos identifican todas las álgebras cuyos
elementos pueden denotarse con términos sin variables. Para
describir sistemas (de estructuras de datos) se propone una amplia
gama de operadores de composición y parametrización.
Los formalismos basados en redes de Petri [MaP91] establecen la
noción de estado de un sistema mediante lugares que pueden
contener marcas. Un conjunto de transiciones (con pre y post
condiciones) describe la evolución del sistema entendida como
consumo y producción de marcas en varios puntos de la red.
Existe una extensa literatura sobre las redes de Petri y sus
caracterizaciones
semántica de entrelazado y
semántica basada en concurrencia real.
Los formalismos basados en lógica temporal [MaP91] se usan
para describir sistemas concurrentes y reactivos. Un aspecto
común asociado a las diferentes lógicas temporales es la noción de
tiempo y estado. Una especificación escrita en lógica temporal
describe las secuencias admisibles de estados (incluyendo estados
concurrentes) para el sistema especificado.
Por otra parte, con el propósito de unificar terminologías sobre
conceptos básicos orientados a objetos se proponen las siguientes
definiciones:
Objeto: entidad discreta con límites bien definidos e identidad
que encapsula estado y comportamiento [RJB99].
Ocultación: habilidad para ocultar el estado de los objetos para el
exterior, la única forma de interactuar con un objeto es a través de
unos de sus servicios (comportamiento) [GBD+97].
Interacción: Especificación de la comunicación entre objetos. Se
proponen dos modelos:
interacción
asíncrona [RJB99].
Abstracción: Características esenciales de un objeto que lo
distingue de otros. Las características esenciales son relativas al
observador [Boo94].
Concurrencia: La realización de dos o más actividades durante el
mismo intervalo de tiempo [RJB99].
Clase: Habilidad para describir aspectos comunes de objetos
(intensión) y habilidad para describir colecciones existentes de
objetos (extensión) [GBD+97].
Herencia: La reutilización o modificación de una clase para
obtener otra nueva [GBD+97].


interacción síncrona e

Subtipo: Dada una jerarquía de tipos, todo subtipo respeta el
principio de sustitución respecto al tipo padre en la jerarquía. El
principio de sustitución se puede establecer a tres niveles: nivel
débil (sólo se consideran los perfiles de las operaciones), nivel
fuerte (se considera además la semántica de las operaciones) y
nivel observacional (sólo se consideran un subconjunto de las
operaciones) [GBD+97].
Genericidad: Capacidad para establecer descripciones parametri-
zables de clases y tipos [GBD+97].


3. DESCOMPOSICIÓN DE TEMAS

Actualmente, los MFOOs representan un área de investigación
joven y en continua evolución. Por ello, muchas de las referencias
utilizadas en este estudio son artículos de investigación.
Los MFOOs representan un área de conocimientos exigente
porque obligan a amalgamar conocimientos de índole matemático-
deductivos, conocimientos sobre diseño de sistemas OO y
conocimientos sobre modelos de producción de software OO. Por
lo tanto, la aproximación al tema debe hacerse de forma
incremental. Inicialmente se necesita introducir los principios
básicos y generales sobre
los conocimientos previamente
aludidos. Posteriormente, se asume que los MFOOs se encuentran
fuertemente influenciados por el modelo matemático subyacente y
por tanto, existe la necesidad de conocer dichos modelos.
Finalmente, una vez sentadas las bases, se presentan los MFOOs
más representativos en la literatura. La figura 1 muestra una
descomposición de temas por niveles.
Nota: para precisar la localización de un tema en una determinada
referencia se anexa a la referencia el rango de capítulos donde se
encuentra. Por ejemplo, [Men87:1-2,7] significa referencia
Men87, capítulos 1, 2 y 7.
3.1 Conceptos Básicos.

Los conceptos básicos no sólo incluyen fundamentos matemáticos
y sobre orientación a objetos sino también fundamentos sobre
procesos de producción de software. Un déficit detectado en la
bibliografía es la falta de guías para aplicar MFOOs. Muchas
referencias sobre métodos formales se puede catalogar como
referencias
escasamente
constructivas (no definen la forma de utilizarlo para
  • Links de descarga
http://lwp-l.com/pdf3289

Comentarios de: Métodos Formales Orientados a Objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad