Descripción del proyecto
EN EL DESARROLLO DE SOFTWARE A NIVEL INDUSTRIAL, EL PROCESO DE VALIDACION COBRA CADA DIA UNA MAYOR IMPORTANCIA. SE ESTIMA QUE LA PROPORCION DEL COSTE DE VALIDACION ES MAYOR DEL 50% DEL COSTE TOTALDE DESARROLLO DE SOFTWARE. CON EL AUMENTO DE COMPLEJIDAD, EL USO CADA VEZ MAS EXTENDIDO DE LA CONCURRENCIA Y LA UTILIZACION DE SOFTWARE EN CONTEXTOS CRITICOS, LA TENDENCIA ES SIN DUDA A AUMENTAR DICHA PROPORCION. RESULTA POR TANTO CADA VEZ MAS NECESARIO ESTUDIAR Y DESARROLLAR TECNICAS QUE PERMITAN AUTOMATIZAR, AL MENOS PARCIALMENTE, EL PROCESO DE VALIDACION DE SOFTWARE CONCURRENTE.EL PROYECTO TELCO TIENE COMO OBJETIVO FUNDAMENTAL EL ESTUDIO Y DESARROLLO DE TECNICAS ESCALABLES PARA LA VALIDACION DE APLICACIONES CONCURRENTES, CONSIDERANDOSE TANTO EL MODELO DE CONCURRENCIA DEOBJETOS CONCURRENTES COMO EL MULTI-HILO.LAS CARACTERISTICAS INHERENTES DEL MODELO DE LOS OBJETOS CONCURRENTES HACEN MAS SENCILLO EL RAZONAMIENTO FORMAL ACERCA DE SU COMPORTAMIENTO. ES POR ELLO QUE, COMO METODOLOGIA GENERAL EN ESTESUB-PROYECTO, CONSIDERAREMOS PRIMERAMENTE ESTE MODELO DE CONCURRENCIA A LA HORA DE DESARROLLAR NUESTRAS TECNICAS DE VALIDACION. DADO QUE EL MODELO MULTI-HILO ES AUN EL MODELO DE CONCURRENCIA MAS AMPLIAMENTE UTILIZADO, ESTUDIAREMOS POSTERIORMENTE LA EXTENSION DE LAS TECNICAS PROPUESTAS PARA SU APLICACION EN EL MODELO MULTI-HILO.COMO TECNOLOGIA DE BASE SE UTILIZARA LA TECNICA DE LA EJECUCION SIMBOLICA DE PROGRAMAS. LA EJECUCION SIMBOLICA ES UNA TECNICA DE ANALISIS DE PROGRAMAS QUE CONSISTE EN EJECUTAR UN PROGRAMA USANDO VALORES SIMBOLICOS (O VARIABLES) EN LUGAR DE VALORES CONCRETOS. AL UTILIZAR VALORES SIMBOLICOS LA EJECUCION PASA A SER INDETERMINISTA AL TENERSE QUE CONSIDERAR TODAS LAS POSIBLES DECISIONES(COMPATIBLES CON DECISIONES ANTERIORES) EN CADA BIFURCACION DEL PROGRAMA. COMO RESULTADO, LA EJECUCION SIMBOLICA ACUMULA UN SISTEMA DE RESTRICCIONES PARA CADA CAMINO DEL PROGRAMA. EN ESENCIA, LA EJECUCION SIMBOLICA PERMITE HACER RAZONAMIENTOS SOBRE PROGRAMAS A BASE DEOBSERVAR SUS POSIBLES COMPORTAMIENTOS. DADO QUE EL NUMERO DE COMPORTAMIENTOS DE UN PROGRAMA ES EN GENERAL INFINITO RESULTA NECESARIO ESTABLECER ALGUN CRITERIO DE TERMINACION. LA EJECUCION SIMBOLICA SE PUEDE USAR COMO TECNOLOGIA DE BASE TANTO PARA LA VERIFICACION COMO LA VALIDACION DE PROGRAMAS. EN EL CASO DE LA VERIFICACION DE PROGRAMAS NORMALMENTE LA ESTRATEGIA DE TERMINACION SUELE ESTAR BASADA EN LA DEFINICION DE ALGUN TIPO DE ABSTRACCION JUNTO CON LA DE UN OPERADOR DE PUNTO FIJO, LO QUE PERMITE EN GENERAL HACER RAZONAMIENTOS ABSOLUTOS EN CUANTO A LACORRECCION DE LOS PROGRAMAS. EN EL CASO DE LA VALIDACION DE PROGRAMAS, NORMALMENTE SE ESTABLECE ALGUN CRITERIO DE RECUBRIMIENTO QUE DEFINE UN SUBCONJUNTO FINITO DE LAS RAMAS DE EJECUCION ACONSIDERAR. ESTA INCOMPLETITUD LLEVA COMO CONSECUENCIA QUE ESTAS TECNICAS NO PUEDAN NUNCA DEMOSTRAR LA AUSENCIA DE ERRORES EN PROGRAMAS, SINO SOLO SU PRESENCIA. ESTA CARACTERISTICA ES A LA VEZ EL GRAN DEFECTO Y TAMBIEN LA RAZON DE LA APLICABILIDAD EN LA PRACTICA DE ESTAS TECNICAS.ES BIEN CONOCIDO QUE LA ESCALABILIDAD ES EL PROBLEMA FUNDAMENTAL A LA HORA DE APLICAR LA EJECUCION SIMBOLICA EN CONTEXTOS REALISTAS (SOFTWARE A NIVEL INDUSTRIAL). EN ESTE SENTIDO SE ESTUDIARAN UNA SERIEDE TECNICAS COMPLEMENTARIAS QUE PERMITAN PALIAR ESTE PROBLEMA.