Centro de Investigación en Métodos de Producción de Software - ProS

Principales cifras de actividad del último año

investigadores 21
subvenciones 171.773 €
contratación 61.174 €

Principales clientes

EMBALPACK LEVANTE, THE OPEN UNIVERSITY OF THE NETHERLANDS, ALGEMEEN

Líneas I+D+i

  • Desarrollo impulsado por modelos (MDD) y generación automática de código.
    Model Driven Development (MDD) es un enfoque para el desarrollo de sistemas de software basado en la separación entre la especificación de la estructura y la funcionalidad del sistema y la implementación final utilizando plataformas de implementación específicas. El objetivo es aumentar el nivel de abstracción en el desarrollo de software dando mayor importancia al modelado conceptual y el papel de estos modelos en el desarrollo de software. Usamos anotaciones de modelado conceptual orientado a objetos para especificar la estructura y funcionalidad del sistema que se construirá. También tenemos un modelo de presentación que nos permite especificar la forma en que un usuario final interactúa con el sistema para proporcionar y obtener datos e información. La especificación completa y precisa de los aspectos estáticos, dinámicos y de presentación del sistema de información en los modelos conceptuales permite la generación automática de código. Este proceso es un paso importante para la industria; En este contexto, tenemos experiencia en el desarrollo, la implementación y el uso de entornos avanzados de desarrollo de software que aseguran la generación de productos de software fácil, ágil y automática, que son la representación correcta de sus modelos conceptuales correspondientes. Además de estos modelos conceptuales, trabajamos con modelos especializados para aplicaciones web e inteligentes ambientales a nivel de requisitos de especificación con modelos organizacionales..
  • Ingeniería de métodos.
    Se han propuesto diferentes métodos y herramientas para el análisis, diseño, implementación y / o generación automática de sistemas de software en el contexto de varias áreas de investigación relacionadas con la construcción de software. Sin embargo, la mayoría de ellos ha sido vagamente definido y sin una base de ingeniería. Además, la evolución meteórica de los propios sistemas de software hace necesaria la revisión sin problemas de la idoneidad de los métodos y herramientas propuestos. Las características del método, como la agilidad o la adaptabilidad, pueden ser posiblemente requisitos ideales de los métodos para el desarrollo de nuevas tendencias de software. Por lo tanto, es necesaria una profunda revisión pragmática y social de estos métodos y herramientas, junto con una revisión del proceso y las técnicas aplicadas durante el diseño y la aplicación de los mismos. Esta línea de investigación tiene como objetivo estudiar de manera teórica y práctica los fundamentos de métodos, técnicas y herramientas para el desarrollo de software. Aplicamos la filosofía Model Driven; por lo tanto, la ingeniería de métodos basada en modelos da como resultado un paradigma para la ingeniería de métodos donde los modelos juegan un papel clave en el diseño, construcción y adaptación de métodos, técnicas y herramientas para el desarrollo de sistemas de software..
  • Ingeniería de requisitos y modelado organizacional.
    El modelado organizacional es una actividad vital para construir sistemas de software que estén alineados con los objetivos de la organización. La línea de investigación en modelado organizacional e ingeniería de requisitos promueve la alineación de varios modelos organizacionales para apoyar el desarrollo y la evolución organizacional. Nuestro objetivo en esta línea de investigación es enriquecer las tareas de ingeniería de requisitos con un conjunto de métodos, herramientas y técnicas para capturar las propiedades de los productos de software deseados. Esta línea de investigación se centra en la definición de métodos basados ""en paradigmas de ingeniería basados ""en modelos y basados ""en modelos. Como resultado, nuestros métodos automatizan los procesos de requisitos a código; estamos cerrando la brecha entre el espacio problemático y el espacio de la solución. Trabajamos en el diseño de nuevos lenguajes y notaciones de modelado que faciliten la especificación de requisitos de una manera ligera y modular. Nuestros métodos actuales respaldan la especificación de procesos comerciales desde una perspectiva comunicacional, perspectiva de objetivos y perspectiva de diseño. Las pautas de transformación de modelo a modelo respaldan el proceso desde los requisitos hasta el código. Nuestros métodos, técnicas y pautas se implementan en plataformas Eclipse..
  • Ingeniería web.
    Los métodos de ingeniería web basados en modelos han mejorado la calidad y la eficiencia del desarrollo de aplicaciones web. Estos métodos utilizan modelos conceptuales sólidos para reunir una rica especificación de la aplicación que se desarrollará. La principal ventaja de este enfoque es que a partir de esos modelos es factible generar sistemáticamente el código fuente que implementa la aplicación web especificada. Siguiendo esta línea de razonamiento, en esta área de investigación nos hemos ocupado de cómo construir modelos descriptivos y cómo transformar modelos en códigos web. Específicamente, hemos desarrollado enfoques para: (1) mejorar la recopilación de requisitos para los sistemas web, (2) proporcionar aplicaciones web adaptativas y accesibles, (3) generar servicios web de acuerdo con las mejores prácticas de la comunidad SOA y (4) incluir a los ricos interfaces y patrones de colaboración del dominio Web 2.0..
  • Inteligencia Ambiental.
    Inteligencia Ambiental (AmI) propone la creación de entornos inteligentes que se adapten a las necesidades, preferencias e intereses de las personas que viven allí, ayudándoles a llevar a cabo sus tareas diarias integrando la informática en el entorno de la persona, para que las computadoras no sean percibido como objetos diferenciados. Esta línea de investigación estudia y desarrolla métodos de Ingeniería de Software para proporcionar rigor al desarrollo de sistemas AmI. El objetivo general de la línea es aplicar los principios y técnicas del desarrollo impulsado por modelos para desarrollar este tipo de sistemas que mejoran su calidad, productividad y facilidad de mantenimiento. Todas estas características deseables se pueden lograr mediante el desarrollo de Lenguajes Específicos de Dominio (DSL), transformaciones de Modelo a Modelo y de Modelo a Texto, aplicando Líneas de Producto de Software a la producción de tales sistemas (para mejorar la reutilización y la productividad en dominios delimitados), y aplicar los principios de Computación Autónoma para poder implementar sistemas auto-configurables y dinámicos..
  • La interacción persona-ordenador.
    El diseño de un sistema de información implica una especificación estructural y funcional, así como una interacción precisa con los usuarios finales. Teniendo en cuenta el gran impacto que tienen las interfaces de usuario en el éxito o fracaso de los productos de software, esta línea de investigación combina la experiencia de modelado de interacción de la comunidad de ingeniería de software con estudios de la comunidad de interacción humano-computadora. Nuestro objetivo es especificar todas las características de interacción a través de modelos conceptuales que representan el sistema. Estos modelos tienen una vista abstracta donde las interfaces se definen independientemente de la plataforma, y ""una vista más concreta donde el analista puede especificar características que son específicas de la plataforma. El objetivo final es generar el código que implemente todas las características expresadas a través de ambas vistas (abstracta y concreta). La usabilidad se considera cuando se construyen modelos conceptuales. Proponemos un conjunto de primitivas conceptuales para representar las funciones de usabilidad con el objetivo de optimizar la usabilidad desde el punto de vista de los usuarios finales. También trabajamos con un método de obtención de requisitos para capturar los requisitos de usabilidad de los primeros pasos del proceso de desarrollo de software. Este método consiste en utilizar árboles de decisión para guiar las entrevistas con el usuario final con el objetivo de conocer sus preferencias visuales. El enfoque puede incluirse en un método basado en modelos de tal manera que estos requisitos generen parte del modelo conceptual. El enfoque se basa en preguntas textuales extraídas de alternativas de diseño. Los usuarios finales deben elegir qué alternativa es la más adecuada según sus requisitos (o restricciones). Las pautas de usabilidad pueden ayudar al usuario final a seleccionar una alternativa en toda la estructura del árbol. Al final del proceso, tenemos un diseño para nuestro sistema basado en los requisitos del usuario final. Finalmente, esta línea de investigación también realiza evaluaciones de usabilidad a través de heurísticas y con usuarios finales. Al final de las evaluaciones, informamos una lista de mejoras para mejorar la calidad del software..
  • Pruebas de software y calidad.
    Tendencias como la globalización, la estandarización y los ciclos de vida más cortos imponen grandes exigencias a la flexibilidad de la industria del software. Para competir y cooperar a escala internacional, es esencial un tiempo de salida al mercado en constante disminución y un nivel de calidad cada vez mayor. Las pruebas son en este momento la técnica de aseguramiento de la calidad más importante y utilizada en la industria. Sin embargo, la complejidad del software y, por lo tanto, de su cantidad de desarrollo está aumentando. Los sistemas modernos se vuelven más grandes y más complejos, ya que conectan grandes cantidades de componentes que interactúan de muchas maneras diferentes y tienen cambios constantes y diferentes tipos de requisitos (funcionalidad, confiabilidad, seguridad, etc.). El procesamiento de datos que afecta todos los aspectos de nuestra vida se distribuye cada vez más a través de nubes y dispositivos. Esto lleva a que surjan nuevas preocupaciones, como disponibilidad, seguridad y privacidad. En consecuencia, el desarrollo de sistemas rentables y de alta calidad abre nuevos desafíos que no pueden enfrentarse solo con los enfoques de prueba tradicionales. Se requieren nuevas técnicas para sistematizar y automatizar las pruebas a lo largo del software y el ciclo de vida del sistema. Aunque muchas herramientas de automatización de prueba están actualmente disponibles para ayudar en la planificación y control de pruebas, así como en la ejecución y supervisión de casos de prueba, todas estas herramientas comparten una filosofía pasiva similar al diseño de casos de prueba, selección de datos de prueba y evaluación de prueba. Dejan estas actividades cruciales, lentas y exigentes al probador humano. Esto no es sin razón; el diseño de casos de prueba y la evaluación de pruebas mediante oráculos son difíciles de automatizar con las técnicas disponibles en la práctica industrial actual. El dominio de las posibles entradas (posibles casos de prueba), incluso para un método, programa, modelo, interfaz de usuario o servicio trivial, suele ser demasiado grande para ser explorado exhaustivamente. En consecuencia, uno de los principales desafíos asociados con el diseño de casos de prueba es la selección de casos de prueba que son efectivos para encontrar fallas sin requerir que se lleve a cabo un número excesivo de pruebas. La automatización de todo el proceso de prueba requiere una nueva forma de pensar que va más allá del diseño de prueba o herramientas de ejecución de prueba específicas. Estos son los problemas en los que este grupo de investigación está trabajando. Uno de los resultados más interesantes del grupo es la herramienta TESTAR (testar.org) para realizar pruebas automatizadas a nivel de Interfaz gráfica de usuario..
  • Sistemas de información genómica.
    La modelización conceptual es esencial para especificar un sistema de información. Sin embargo, su aplicación no se limita a dominios relacionados con la informática. La medicina, la bioinformática y, más específicamente, la bioinformática aplicada a la Genómica Humana, son algunos de los campos que pueden aprovechar todos los beneficios que brinda el modelado conceptual. Debido al creciente interés del Genoma Humano en la comunidad científica, vale la pena analizar qué beneficios realmente impactan en la especificación de un sistema de información genómica. Esta línea de investigación se centra en traducir las técnicas satisfactorias y tradicionalmente bien aplicadas del desarrollo de software basado en modelos (MDSD) en el campo de la Bioinformática y sus aplicaciones en entornos clínicos. La idea principal es definir modelos que faciliten la comprensión de los complejos mecanismos biológicos asociados al Genoma Humano y su relación con enfermedades específicas. Estos modelos servirán para fines descriptivos, pero también como una guía para descubrir nuevos objetivos terapéuticos. El objetivo final de esta línea de investigación es definir nuevas estrategias científicas, así como nuevas herramientas de software que puedan ser utilizadas en la práctica por investigadores y médicos que dedican su investigación a la genómica humana y las enfermedades..