La línea principal de investigación es el diseño y análisis de arquitecturas de sistemas. El objetivo de esta línea es identificar, mediante técnicas semi-automatizadas, problemas de calidad en el diseño de sistemas de software (por ej., sobre atributos de calidad como performance, escalabilidad, y/o smells o anomalías de código). Estos problemas, a veces configuran anti-patrones en dichos diseños.

Se puede analizar un sistema ya en funcionamiento para conocer qué fallas tiene, y también “reconstruir” su diseño. Es deseable que estos análisis puedan hacerse en etapas tempranas del proceso de desarrollo de software. No obstante, muchos de los problemas de calidad se dan cuando el sistema ya está implementado (es decir, en etapas tardías del desarrollo), y entonces solucionarlos requiere realizar refactorings.

En general cuando una empresa llega a consultar por este tipo de análisis, el sistema ya tiene algún tipo de problema que se manifiesta en su implementación. Las soluciones que han aplicado originalmente tienden a ser de corto plazo, y no se suele pensar en una evolución y crecimiento del sistema a mediano o largo plazo. Esto se conoce como deuda técnica.

Se han desarrollado técnicas para detectar los problemas anteriores mediante herramientas de asistencia. Por ejemplo, para priorizar los problemas, o para buscar refactorizaciones (para problemas muy concretos). Las técnicas están basadas en heurísticas, y también en el uso de Inteligencia artificial (IA). De hecho, la minería de patrones (o anti-patrones) se puede ver como una tarea de data mining sobre el código fuente, u otros artefactos (por ej. requerimientos textuales). En general estas herramientas pueden recomendar refactorizaciones sobre los problemas planteadas anteriormente, ya sea a nivel código o a nivel diseño.

Algunas líneas de investigación son:

  • Diseño y análisis de arquitecturas de sistemas.
  • Análisis de Anomalías de Código relevantes a la Arquitectura de Software.
  • Refactoring de Sistemas de Software.
  • Análisis de Trazabilidad Guiado por Atributos de Calidad (actualmente descontinuado)
  • Evolución de diseño y mantenibilidad de sistemas.
  • Backtesting y bots para fintech
  • Interpretabilidad de optimizaciones (automatizadas) de arquitectura
  • Servicios Web.
  • Calidad en microservicios para migración de arquitectura.

Algunos proyectos relacionados con estas líneas son:

  • Optimización Web con Javascript. Sadosky Fase 0 junto a la empresa Beereal.
  • Diseño de una arquitectura de trading/backtesting. Sadosky Fase 0 junto a la empresa ArQuants.
  • Desarrollo de algoritmos de trading para opciones binarias. Sadosky Fase 0 con la empresa Epidata.

Actualizado: