Descripción del proyecto
EN LOS ULTIMOS AÑOS, EL GRUPO SOLICITANTE HA DISEÑADO E IMPLEMENTADO COMPLEJOS SISTEMAS DISTRIBUIDOS EN DISTINTOS AMBITOS USANDO EL PARADIGMA FUNCIONAL DISTRIBUIDO, APOYADO POR LOS METODOS, TECNICAS Y COMPONENTES DESARROLLADOS EN PROYECTOS DE INVESTIGACION PREVIOS, CON UN NOTABLE IMPACTO EN EL SECTOR INDUSTRIAL, LA NATURALEZA DECLARATIVA Y EL NIVEL DE ABSTRACCION PROPORCIONADO POR EL PARADIGMA FUNCIONAL PERMITEN REDUCIR NOTABLEMENTE LA COMPLEJIDAD DEL SOFTWARE Y FACILITA LA INCLUSION DE TECNICAS FORMALES DENTRO DEL CICLO DE DESARROLLO, PERMITIENDO LA IDENTIFICACION Y DEFINICION DE PROPIEDADES DE INTERES A SATISFACER POR EL SOFTWARE, FRECUENTEMENTE, INCLUSO USANDO EL ENFOQUE DECLARATIVO, EL SOFTWARE RESULTANTE ES DEMASIADO COMPLEJO PARA SER SOMETIDO DE FORMA PRACTICA A UNA VERIFICACION/VALIDACION DIRECTAMENTE; EN ESTOS CASOS, UNA ESTRATEGIA INTERESANTE CONSISTE EN DESARROLLAR UN MODELO QUE SIMPLIFIQUE LA REALIDAD Y ACTUAR SOBRE EL MODELO EN LUGAR DE SOBRE EL SISTEMA REAL, DE ESTA EXPERIENCIA ACUMULADA EN EL DESARROLLO DE SISTEMAS REALES, SE IDENTIFICAN ALGUNOS RETOS NO RESUELTOS QUE LIMITAN LA APLICACION DE ESTAS TECNICAS A UN ESPECTRO MAS AMPLIO DE PROBLEMAS: (A) EL DESARROLLO DE COMPONENTES CRITICOS EFICIENTES, QUE OBLIGA A UN OSCURO DESARROLLO DE BAJO NIVEL O A UN ESFUERZO EN EL AJUSTE/OPTIMIZACION DE LOS COMPILADORES Y SISTEMAS EN TIEMPO DE EJECUCION FUNCIONALES, Y (B) INTEGRACION DE COMPONENTES, POSIBLEMENTE HETEROGENEOS EN SISTEMAS COMPLEJOS, LA DEFINICION DE MODELOS UTILIZANDO LENGUAJES DECLARATIVOS (FUNCIONALES, EN NUESTRO CASO ERLANG O HASKELL) Y PROPIEDADES SOBRE LOS MISMOS RESULTA EXTREMADAMENTE INTERESANTE COMO ELEMENTO PARA VALIDAR EL SISTEMA REAL, POR EJEMPLO MEDIANTE LA GENERACION AUTOMATICA DE CASOS DE PRUEBA COMO PROPONE LA HERRAMIENTA QUICKCHECK, POR TODO ELLO, EN EL PROYECTO AMBITIIONS SE PERSIGUE EXPLORAR EL DESARROLLO BASADO EN MODELOS USANDO LENGUAJES FUNCIONALES PARA SUPERAR EN PARTE ESTAS DIFICULTADES, INCREMENTANDO LA CONFIANZA EN LA CORRECCION TANTO DE MODULOS DESARROLLADOS A BAJO NIVEL (TIPICAMENTE C), BIEN USANDO UN MODELO DEL COMPONENTE DE BAJO NIVEL PARA POSTERIORMENTE VALIDARLO EXHAUSTIVAMENTE O TRABAJANDO EN EL SISTEMA EN TIEMPO DE EJECUCION DE UN LENGUAJE DECLARATIVO PARA HACER MAS EFICIENTE EL PROPIO MODELO, ASI COMO EN LA INTEGRACION DE COMPONENTES, DEFINIENDO UN MODELO QUE DESCRIBA LA INTERACCION ENTRE COMPONENTES Y USANDOLO COMO DIRECTOR DE LAS DISTINTAS PRUEBAS DE INTEGRACION,LOS OBJETIVOS CONCRETOS PERSEGUIDOS POR AMBITIIONS SON (A) DEFINICION DE METODOS, TECNICAS Y HERRAMIENTAS PARA EL DESARROLLO DE COMPONENTES EFICIENTES IMPLEMENTADOS EN LENGUAJES DE BAJO NIVEL Y SU VALIDACION A PARTIR DE PROPIEDADES DEFINIDAS SOBRE UN MODELO DECLARATIVO; (B) DEFINICION DE TECNICAS, METRICAS Y HERRAMIENTAS DE PROFILING EN EL BACKEND DE UN LENGUAJE FUNCIONAL PARALELO PARA EXPLOTAR ARQUITECTURAS DISTRIBUIDAS/PARALELAS/MULTICORE; (C) DEFINICION DE UN LENGUAJE DE ESPECIFICACION DE PROPOSITO ESPECIFICO QUE MODELE LAS INTERACCIONES ENTRE COMPONENTES DE UN SISTEMA Y LA DEFINICION DE METODOS, TECNICAS Y HERRAMIENTAS PARA REALIZAR PRUEBAS DE INTEGRACION Y DE SISTEMAS; Y (D) APLICACION DE LOS RESULTADOS ANTERIORES A CASOS DE ESTUDIO CONCRETOS QUE PERMITAN DEMOSTRAR LA VIABILIDAD DE LA PROPUESTA EN ENTORNOS REALES,UNO DE LOS OBJETIVOS CLAVE DEL PROYECTO ES QUE LOS RESULTADOS TENGAN UN IMPACTO INDUSTRIAL, POR ESO SE INCLUYEN 3 EPOS CON TRES PUNTOS DE VISTA DISTINTOS ACERCA DE LOS RESULTADOS DEL PROYECTO,