La línea de investigación en Arquitectura de Software de nuestro grupo se enfoca en abordar los retos y oportunidades asociados al estudio de diferentes aspectos de la arquitectura de sistemas de software. Reconociendo que la arquitectura de software es un pilar fundamental para garantizar el cumplimiento de los atributos de calidad y la adaptabilidad en entornos modernos, nuestra investigación abarca un amplio espectro de temas clave, que incluyen:
• Decisiones de diseño arquitectónico: explorando estilos, tácticas y patrones que guían la estructura y el comportamiento de los sistemas de software.
• Atributos de calidad del software: analizando propiedades no funcionales como rendimiento, escalabilidad, seguridad, interoperabilidad, disponibilidad, confiabilidad, evolución, entre otros.
• Modelado y ejecución de arquitecturas de software: desarrollando modelos y prácticos para representar y ejecutar arquitecturas.
• Descripción y representación de arquitecturas de software: investigando lenguajes, herramientas y métodos que permitan comunicar arquitecturas de manera efectiva.
• Verificación, validación y evaluación de arquitecturas de software: asegurando que las arquitecturas cumplan con sus objetivos mediante técnicas de análisis y prueba.
• Enseñanza de la arquitectura de software: diseñando estrategias pedagógicas para formar la próxima generación de arquitectos de software.
A través de esta línea, buscamos no solo avanzar el conocimiento teórico en el campo, sino también generar un impacto práctico en la construcción de sistemas más robustos, eficientes y adaptables.
A lo largo de los años, se han propuesto varios métodos y frameworks para organizar, controlar, y mejorar los procesos de desarrollo de sistemas de software. Ninguno de estos métodos es mejor que los otros, cada uno tiene alcance limitado, y todos ellos tienen fortalezas y debilidades. Nuestro objetivo es estudiar estos métodos, evaluarlos, y también, proponer mejoras y adaptaciones a estos métodos y las herramientas que les dan soporte. El diseño de herramientas y tecnologías para dar soporte o automatizar las actividades de desarrollo de software es también un tema de esta línea de investigación. Temáticas asociadas:
• Metodologías de Desarrollo de Software
• Administración de Proyectos de Software
• Medición y Estimación de Software
• Aspectos Humanos de la Ingeniería de Software
El objetivo principal de la arquitectura empresarial es asegurar la correcta alineación entre los procesos de negocio y las tecnologías de la información, con el fin de lograr el cumplimiento de los objetivos estratégicos establecidos por la organización. Es por ello que la gestión de los procesos de negocio que operan en toda la organización, debe ser un punto de apoyo esencial para el cumplimiento de esos objetivos. Así, una correcta implementación de una arquitectura empresarial, alineada con el respectivo proceso de negocio y apalancada en una arquitectura orientada a servicios, son, hoy en día, una combinación clave que soporta la toma de decisiones estratégicas para responder rápida y eficazmente a los cambios organizacionales y de oportunidades que se producen en un entorno cada vez más globalizado. Temáticas asociadas:
• Sistemas de Información
• Procesos de Negocio
• Gestión de Procesos de Negocio
• Arquitectura Orientada a Servicios
La línea de investigación en Ingeniería de Software Dirigida por Modelos de nuestro grupo se centra en explorar los desafíos y oportunidades asociados con el uso de modelos como artefactos centrales en el diseño, desarrollo, análisis y mantenimiento de sistemas de software. Reconociendo que los modelos son esenciales para gestionar la complejidad y facilitar la automatización en la construcción de software, nuestra investigación abarca diversos temas clave, entre los que destacan:
• Lenguajes y notaciones de modelado: explorando y diseñando lenguajes de dominio específico, metamodelos y estándares que permiten representar distintos niveles de abstracción y aspectos del software.
• Transformaciones de modelos: investigando técnicas y herramientas para transformar modelos en otros modelos o en artefactos ejecutables, como código fuente, configuraciones de infraestructura o especificaciones de pruebas.
• Verificación y validación basadas en modelos: desarrollando métodos que permiten garantizar que los modelos cumplen con los requisitos funcionales y no funcionales del sistema, mediante simulaciones, análisis estático y pruebas automatizadas.
A través de esta línea de investigación, nuestro objetivo es avanzar en el conocimiento y las prácticas de la ingeniería de software, impulsando la adopción de enfoques dirigidos por modelos para construir sistemas más confiables, escalables y adaptables, al tiempo que promovemos la innovación en herramientas y métodos que faciliten su aplicación en contextos reales.
A lo largo de su vida, un sistema de software es continuamente actualizado con el propósito de atender los siempre cambiantes requisitos de su entorno de operación. Nuestro objetivo es analizar estos procesos de cambio, construir modelos para describir el pasado, presente y futuro de la evolución de un sistema de software; y diseñar e implementar herramientas que apoyen y permitan analizar estos procesos. El estudio de la evolución de un sistema de software es importante porque los costos más altos están asociados a tareas de adaptación y mantenimiento; y porque, su vida útil depende fuertemente de los enfoques y técnicas usadas para la implementación de los cambios requeridos, las mejoras, y las extensiones. Temáticas asociadas:
• Comprensión de Software
• Reingeniería
• Análisis y Métricas de Software
• Visualización de Software