Sunteți pe pagina 1din 59

Sistema de verificacin de

componentes software
Tesis Doctoral
Agustn Cernuda del Ro
Universidad de Oviedo, junio de
2002
18-6-2002 Agustn Cernuda del Ro
Programa de la presentacin
1. El problema
2. Tcnicas relacionadas
3. Solucin aportada
4. Estudio prctico y resultados
5. Conclusiones y trabajo futuro
18-6-2002 Agustn Cernuda del Ro
Componentes software
Componente software (segn Szyperski)
Unidad de composicin con interfaces especificadas
contractualmente y dependencias contextuales
explcitas
Entendido como unidad de despliegue independiente
Frecuentemente...
Se piensa en ActiveX, CORBA o similares
Se equipara componente a objeto empaquetado
Beneficios esperados: ahorro de tiempo, mayor
fiabilidad
18-6-2002 Agustn Cernuda del Ro
Problemas del uso de
componentes en la prctica - I
Dados ciertos componentes correctos, ser
correcto el sistema resultante?
Errores derivados de la propia combinacin
Comportamiento emergente
Violacin de los requisitos de funcionamiento de
algn componente
Recursos para verificar la conexin entre
componentes
Frecuentemente, slo verificacin de signaturas
En algunos casos, mecanismos de tiempo de
ejecucin
18-6-2002 Agustn Cernuda del Ro
Problemas del uso de
componentes en la prctica - II
Verificacin de signaturas
Habitualmente, se limita al tipo y nmero de los
parmetros



OK
Especificacin
void f(int x, int y)
f(3, 5);
Uso
Especificacin
Que x sea siempre mayor
que y
void f(int x, int y)
f(3, 5);
Uso
OK?
void f(int x, int y)
{
...
assert(x <= y);
...
}
18-6-2002 Agustn Cernuda del Ro
Falta de mecanismos de
verificacin - I
Verificacin de signaturas
Muy limitada
Especificacin textual
Sujeta a ambigedades
No hay garantas de que se aplique
No se puede automatizar la verificacin
Cdigo de salvaguardia
Slo funciona en tiempo de ejecucin
Puede haber problemas que no se detecten
Semntica limitada (ej.: No utilizar en sistemas de
tiempo real)
18-6-2002 Agustn Cernuda del Ro
Falta de mecanismos de
verificacin - II
Muchos defectos se podran prever
Conocimiento a priori
Se pueden conocer propiedades indecidibles
Habitualmente se pierde
Necesidad de un mecanismo que permita
aprovechar el conocimiento a priori
Verificacin basada en ese conocimiento
18-6-2002 Agustn Cernuda del Ro
Falta de mecanismos de
verificacin - III
Se necesitara un sistema de verificacin:
Que pudiera utilizarse en tiempo de construccin del
software (no de ejecucin)
Automtico (la especificacin acompaara al
componente y se tendra en cuenta de forma
inmediata)
Susceptible de ser utilizado con facilidad en entornos
de produccin
Flexible (un mtodo general aplicable a diversos
aspectos y mbitos del desarrollo, con una semntica
abierta)
18-6-2002 Agustn Cernuda del Ro
Tesis - I
Es posible verificar, de manera esttica, automtica
y asequible que, hasta donde nos es posible asegurar
con el conocimiento disponible, al combinar ciertos
componentes software no se han violado las
condiciones de funcionamiento correcto de ninguno
de ellos.
18-6-2002 Agustn Cernuda del Ro
Tesis - II
Verificacin
Esttica sin poner el sistema en funcionamiento
(deteccin temprana de los defectos,
aprovechamiento del conocimiento disponible)
Automtica menor coste, mayor frecuencia, menor
ambigedad
Asequible
Tcnicas conocidas y viables
Comprendido y aplicado con facilidad por el personal tpico
General, flexible (retorno de inversin)
Esto exige un modelo sencillo
18-6-2002 Agustn Cernuda del Ro
Mtodo de trabajo
Proponer un modelo de verificacin que cumpla
los objetivos marcados

Probar la viabilidad tcnica de las herramientas
desarrollando prototipos con medios limitados

Probar la aplicabilidad de ese modelo a
problemas prcticos diferentes
18-6-2002 Agustn Cernuda del Ro
Tcnicas relacionadas
1. El problema
2. Tcnicas relacionadas
3. Solucin aportada
4. Estudio prctico y resultados
5. Conclusiones y trabajo futuro
18-6-2002 Agustn Cernuda del Ro
Mtodos formales
Especificacin formal de la interfaz
SDL, Estelle, Lotos / Z, VDM, B...
Especificacin
Refinamiento
Prueba de adecuacin
Problemas:
Asequibilidad (o percepcin sobre ella). Wing, Bowen & Hinchey,
Pressman, Parnas, Meyer, Szyperski...
Componentes
Conocimiento
Automatizacin y herramientas
Flexibilidad

18-6-2002 Agustn Cernuda del Ro
Anlisis esttico e
interpretacin abstracta
Evaluacin de cdigo fuente con algoritmos
Semntica menos precisa pero computable
Valores abstractos de variables
Convergencia
Cousot & Cousot, PAG, PolySpace...
Problemas
Componentes
Asequibilidad
Flexibilidad (alg. especficos, cdigo fuente)
18-6-2002 Agustn Cernuda del Ro
Especificacin semntica
Tcnicas para describir formalmente el
comportamiento de un lenguaje de
programacin
Posibilidad de trasladarlas al mbito de
componentes
Problemas
Legibilidad
Modularidad (hay trabajos prometedores)
Falta de madurez e implementaciones
18-6-2002 Agustn Cernuda del Ro
Especificacin de procesos
CSP (CCS, ACP, otros), -clculo, L-clculo,
derivados (Piccola, Pict, etc.)
Problemas
Orientadas a procesos (CSP y similares)
Notaciones formales (asequibilidad)
Flexibilidad
Bajo nivel
Orientados a concurrencia (Pict)
Orientados a composicin y no tanto a verificacin
(Piccola)
18-6-2002 Agustn Cernuda del Ro
Contratos
Varios enfoques
Unilateral (Meyer)
Bilateral (Wirfs-Brock, Reenskaug)
Contratos de reutilizacin (Vrije Universiteit Brussels)
Lenguaje Contract
Problemas
Meyer: estado concreto, verificaciones ejecutables
Wirfs-Brock, Reenskaug: centrados en anlisis/diseo
Contratos de reutilizacin: poca flexibilidad
Lenguaje Contract: no orientado a verificacin
18-6-2002 Agustn Cernuda del Ro
Estilos arquitectnicos
Incoherencias entre estilos arquitectnicos
(Carnegie Mellon)
ADLs (Wright, Aesop, Darwin, Rapide, UniCon...)
Problemas
Flexibilidad
Automatizacin
Anlisis esttico (limitado)
Asequibilidad (WRIGHT: notaciones basadas en CSP)
18-6-2002 Agustn Cernuda del Ro
Metodologas de anlisis y
diseo
OCL (Object Constraint Language)
Catalysis
Problemas
Orientados al modelado, no a la verificacin esttica
Automatizacin

18-6-2002 Agustn Cernuda del Ro
Plataformas de componentes
OSF/DCE (IDL)
COM, CORBA, JavaBeans
Estndares de cableado (Szyperski)
Ya funcionan (xito comercial)
Problemas
Orientados a la composicin, no a la verificacin
18-6-2002 Agustn Cernuda del Ro
Resumen de
tendencias
analizadas
18-6-2002 Agustn Cernuda del Ro
Solucin aportada
1. El problema
2. Tcnicas relacionadas
3. Solucin aportada
4. Estudio prctico y resultados
5. Conclusiones y trabajo futuro
18-6-2002 Agustn Cernuda del Ro
El modelo de componentes
Itacio
Un modelo de componentes que responda a los
requisitos de la tesis
Primera consideracin: definicin abierta de
componente
Uso del trmino distinto al habitual
Problema de nomenclatura, pero... difcil de evitar
Por qu Itacio?
Enterr en precioso mrmol para la mansin eterna
el tierno cuerpo de Itacio
18-6-2002 Agustn Cernuda del Ro
Componente - I
Entidad que consta de una frontera y un
conjunto de expresiones restrictivas
Frontera: consta de puntos de conexin
Fuentes
Sumideros
Expresiones restrictivas
Requisitos (para los sumideros)
Garantas (sobre las fuentes)
18-6-2002 Agustn Cernuda del Ro
Componente - II
Sumidero1 Sumidero2 Sumidero3
Fuente1 Fuente2
Signaturas
- Sumidero1(int)
- Sumidero2(int, char)
- Sumidero3(char)
Cdigo
Requisitos
- Sumidero1 debe ser menor que
Sumidero2 + Sumidero3
Garantas
- El valor de Fuente1 siempre estar
entre el de Sumidero2 y Sumidero3
Signaturas
- Sumidero1(int)
- Sumidero2(int, char)
- Sumidero3(char)
Cdigo

18-6-2002 Agustn Cernuda del Ro
Sistema - I
Grafo finito
Nodos: componentes
Arcos: pares fuente/sumidero
Predicados auxiliares
Correccin topolgica de un sistema
No hay puntos de conexin aislados
No hay arcos repetidos
18-6-2002 Agustn Cernuda del Ro
Sistema - II
s1 vlido s1 positivo
s1 s2
f1 positivo s1 en [1..5] y s2 positivo
s1 s2
s1 s2
f1
f1 es 5
f1
f1 est en [10..20]
f1
......
? OK
vlido?
18-6-2002 Agustn Cernuda del Ro
Expresiones restrictivas
Requisitos y garantas: lgica de primer orden
Clusula Horn (CLP)
Programacin lgica
Gran flexibilidad para representar conocimiento
Ampliamente conocida (asequible)
Automatizable (procesos de inferencia definidos)
Herramientas disponibles y estables
CLP: Gran potencia y eficiencia
18-6-2002 Agustn Cernuda del Ro
Generacin de la base de
conocimientos - I
Recopilar las expresiones restrictivas de los
componentes del sistema
Modificarlas de modo que quede implcita la
informacin sobre topologa
De este modo, el proceso de inferencia se
remonta a los componentes implicados
18-6-2002 Agustn Cernuda del Ro
Generacin de la base
de conocimientos - II
s1 vlido s1 positivo
s1 s2
f1 positivo s1 en
[1..5] y s2 positivo
f1 f2
s1 s2
f1
f1 es 5
f1
f1 est en [10..20]
f1
......
A B
C
es 5
A
est en [10..20]
B
C
es positivo si
A
en [1..5]^
positivo
B
C
es vlido si
C
positivo
18-6-2002 Agustn Cernuda del Ro
Proceso de verificacin
Proceso de inferencia del motor CLP
Hiptesis del Mundo Cerrado (CWA)
Enfoque exigente: si no se satisface explcitamente un
requisito, se da por supuesto que se viola
El proceso de inferencia puede sealar qu
requisito no se cumple y por qu
Con un buen diseo de los predicados, el
sistema puede ofrecer explicaciones
El sistema y su diagnstico pueden
representarse grficamente
18-6-2002 Agustn Cernuda del Ro
Relacin con los objetivos
Sistema de verificacin
Como proceso de inferencia en lgica de primer orden
Verificacin esttica
Verificacin automtica
Modelo asequible
Gran simplicidad del modelo (mnimo de conceptos)
Simplicidad de la implementacin (CLP)
Verificacin basada en el conocimiento
disponible
Aprovechamiento del conocimiento
Gran flexibilidad y potencial de aplicacin
18-6-2002 Agustn Cernuda del Ro
Estudio prctico y resultados
1. El problema
2. Tcnicas relacionadas
3. Solucin aportada
4. Estudio prctico y resultados
5. Conclusiones y trabajo futuro
18-6-2002 Agustn Cernuda del Ro
Prototipos desarrollados
Itacio-SEDA
Basado en herramienta grfica propietaria
Motor de inferencia: ECLiPSe
Itacio-XJ
Datos: ficheros de texto
Representacin: Internet Explorer / VML
Motor de inferencia: ECLiPSe
Itacio-XDB
Datos: base de datos ODBC
Representacin: Internet Explorer / VML
Motor de inferencia: ECLiPSe
18-6-2002 Agustn Cernuda del Ro
Prototipo Itacio-SEDA
18-6-2002 Agustn Cernuda del Ro
Prototipo Itacio-XJ
18-6-2002 Agustn Cernuda del Ro
Prototipo Itacio-XDB
18-6-2002 Agustn Cernuda del Ro
Ejemplos: microcomponentes - I
Representar elementos bsicos de un lenguaje
(operadores, funciones, etc.)
Rudimentario sistema de generacin de cdigo
Dividir
op1 op2
Leer valor
res
Leer valor
res
res
Imprimir valor
val
Dividir
op1 op2
Leer valor
res
Leer valor
res
res
Imprimir valor
val
#include <stdio.h>
void main(void)
{
double val1;
scanf(%lf, &val1);
double val2;
scanf(%lf, &val2);
double res=val1/val2;
printf(%lf, res);
}
Denominado
r puede ser
0
18-6-2002 Agustn Cernuda del Ro
Ejemplos: microcomponentes -
II
Dificultades: generacin de cdigo (no era
objeto de la tesis)
Dividir
op1 op2
Leer valor
res
Leer valor
res
res
Imprimir valor
val
valido(op2):-
not igual_que(op2, 0).
...
...
18-6-2002 Agustn Cernuda del Ro
Segn Carine Lucas
Contrato de reutilizacin: conjunto de participantes con nombre,
clusula de relacin e interfaz.
Clusula de relacin: indicacin de que un participante conoce a
otro.
Interfaz: conjunto de descripciones de operaciones (nombre y
operaciones invocadas por esta).
Verificaciones de consistencia (no invocar operaciones
inexistentes, no eliminar operaciones en uso...)
Modificaciones a contratos
Modeladas como operadores (8 combinaciones)
Lucas propone reglas para operadores aplicables
Si se modela un sistema como contratos, con este modelo se
puede verificar la evolucin (usando las reglas establecidas)
Ejemplos: Contratos de
reutilizacin - I
18-6-2002 Agustn Cernuda del Ro
Modelando contratos en Itacio
El contrato es un componente
Cada modificacin es otro componente
La conexin entre contratos y sucesivas
modificaciones modela la evolucin del sistema
Los requisitos y garantas permiten validar las
operaciones realizadas
Ejemplos: Contratos de
reutilizacin - II
18-6-2002 Agustn Cernuda del Ro
Type=smplDrive
Sources=res
BEGIN_RESTRICTIONS
isContract($res$).
participant($res$, smplDriver).
participant($res$, smplCar).
acqRelationship($res$, smplDriver, myCar, smplCar).
operation($res$, smplDriver, go).
operation($res$, smplDriver, stop).
...
operationInvocation($res$, smplDriver, go, myCar, startEngine).
operationInvocation($res$, smplDriver, go, myCar, pushGasPedal).
...
END_RESTRICTIONS

Ejemplos: Contratos de
reutilizacin - III
18-6-2002 Agustn Cernuda del Ro
Ejemplos: Contratos de
reutilizacin - IV
18-6-2002 Agustn Cernuda del Ro
Ejemplos: Diagnstico remoto
de equipos - I
18-6-2002 Agustn Cernuda del Ro
Ejemplos: Diagnstico
remoto de equipos - II
Las expresiones restrictivas realizan comprobaciones
reales en el equipo cliente (enlazando CLP con DLLs)
18-6-2002 Agustn Cernuda del Ro
Ejemplos: WaveX - I
Sistema de procesamiento de sonido en tiempo real
Basado en componentes (efectos, transformaciones)
Combinaciones no vlidas (imposible verificacin
meramente local)
Necesidad de sistema de ayuda al usuario
18-6-2002 Agustn Cernuda del Ro
Ejemplos: WaveX - II
18-6-2002 Agustn Cernuda del Ro
Ejemplo
s:
WaveX
- III
18-6-2002 Agustn Cernuda del Ro
Ejemplos: Modelo de Hamlet et
al
Un modelo de fiabilidad para componentes
software
Cada componente tiene asociada una hoja de
transformacin que indica cmo transforma los
dominios de entrada en los de salida
Cada componente tiene tambin una tasa de
fallos asociada a cada combinacin de
subdominios
Expresando esta informacin como expresiones
restrictivas, se puede reflejar este modelo en
Itacio
18-6-2002 Agustn Cernuda del Ro
Ejemplos: Compatibilidad
entre protocolos - I
Verificaciones temporales (ordenacin de
llamadas)
Los contratos de reutilizacin no lo reflejan
Modelo de Yellin y Strom
Especificar protocolos indicando las transiciones
posibles (es decir, el orden de invocacin admitido en
cada componente para sus operaciones)
Algoritmo para verificar la compatibilidad de los
protocolos de dos componentes
Susceptible de ser modelado en Itacio?
18-6-2002 Agustn Cernuda del Ro
Ejemplos: Compatibilidad entre
protocolos - II
ys_collaboration($file$).
ys_states($file$, initFile, [], [createdFileObj,
openingFile, openFile,readingFile, endOfFile,
notReadingFile]).
ys_sent_message($file$, openFileError).
ys_sent_message($file$, openFileOk).
...
ys_received_message($file$, fileConstructor).
ys_received_message($file$, fileDestructor).
...
ys_transition($file$, initFile, +, fileConstructor,
createdFileObj).
ys_transition($file$, createdFileObj, +,
fileDestructor, initFile).
...
18-6-2002 Agustn Cernuda del Ro
Ejemplo: Compatibilidad
entre protocolos - III
Son compatibles componentes con estos protocolos?
18-6-2002 Agustn Cernuda del Ro
Ejemplo: Compatibilidad
entre protocolos - IV
18-6-2002 Agustn Cernuda del Ro
Conclusiones y trabajo futuro
1. El problema
2. Tcnicas relacionadas
3. Solucin aportada
4. Estudio prctico y resultados
5. Conclusiones y trabajo futuro
18-6-2002 Agustn Cernuda del Ro
Conclusiones
Basndose en:
Interpretacin de los resultados obtenidos
Anlisis del estado del arte
Escrutinio pblico
Se concluye que:
Es posible verificar, de manera esttica, automtica y asequible
que, hasta donde nos es posible asegurar con el conocimiento
disponible, al combinar ciertos componentes software no se han
violado las condiciones de funcionamiento correcto de ninguno
de ellos.
18-6-2002 Agustn Cernuda del Ro
Aportaciones
Tecnologa de componentes software
Estudio especfico de alternativas
Definicin abierta de componente
Gestin del conocimiento aplicada
Modelo de componente que permite incorporar conocimiento
Esquema de generacin de la BC para inferencias
Ingeniera del software
Mtodo de modelado de componentes para verificacin y con las
restricciones descritas (gran flexibilidad y generalidad)
Ejemplos de aplicacin de modelo de componentes a campos
diversos
Sistema de verificacin plenamente viable en la prctica
Diversos prototipos
18-6-2002 Agustn Cernuda del Ro
Trabajo futuro - I
Mejoras
Gestin del conocimiento
Correccin de las especificaciones
Razonamiento aproximado / probabilstico
Relajacin del criterio de correccin topolgica
Relacin con la Ingeniera del Software
Herramientas de produccin (no prototipos)
Integracin con procesos de desarrollo
Nuevos campos de aplicacin del modelo
Ingeniera inversa para bsqueda de defectos
Bsqueda de componentes
Anticipacin y ayuda al diseo
Relacin entre expresiones restrictivas y cdigo fuente
18-6-2002 Agustn Cernuda del Ro
Trabajo futuro - II
Relacin con tcnicas formales
Especificacin de la semntica del modelo mediante semntica
mondica reutilizable
Modelado de los componentes mediante semntica modular
Creacin de lenguaje independiente y extensible de propsito
especfico
Adaptacin de una tcnica de especificacin semntica al trabajo
con componentes
18-6-2002 Agustn Cernuda del Ro
Fin de la
presentacin

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