Mètodes formals
En els sistemes de programari, els errors poden tenir conseqüències catastròfiques, sobretot en els sistemes crítics per a la seguretat, com els programes mèdics o aeroespacials. Les comprovacions i les revisions de codi poden reduir la taxa d’errors, però en alguns casos cal disposar d’un nivell de seguretat més alt. Amb aquesta finalitat, els mètodes formals formen part d’una categoria de tècniques que analitzen una descripció matemàtica del sistema per tal de garantir-ne l’exactitud. Algunes de les tècniques que s’utilitzen per a la verificació formal del programari són la comprovació de models, la demostració de teoremes i l’anàlisi estàtica. Un problema que tenen en comú tots aquests mètodes és la gran complexitat computacional, que en pot limitar l’aplicabilitat en exemples del món real. Aquesta línia de recerca té en compte els enfocaments pragmàtics per a garantir la qualitat dels sistemes de programari a escala industrial, i explora temes clau com la usabilitat, l’eficiència i l’aplicabilitat.
Enginyeria dirigida per models
El desenvolupament dirigit per models és un paradigma que promou l’ús de models de programari en totes les tasques de disseny de programes (enginyeria directa, enginyeria inversa, interoperabilitat...), com es fa habitualment en totes les altres disciplines d’enginyeria. Per exemple, intenta reduir els costos de desenvolupament centrant-se en la creació de models de programari (especificats en UML o per mitjà de llenguatges específics del domini) més que no pas en el codi i, un cop aquests models s’han validat, es basa en eines de generació de codi per a generar automàticament la implantació final d’aquests models. En aquesta línia de recerca explorem tècniques i eines per donar suport a tots els aspectes de l’enginyeria dirigida per models, incloent-hi la manipulació de models molt grans, els models heterogenis, el modelatge col·laboratiu i la descoberta de models (d’API a codi font).
Desenvolupament d’eines d’aprenentatge en línia
Un dels reptes en ensenyament és el d’aconseguir una formació de qualitat que sigui escalable. L’objectiu és automatitzar certes tasques repetitives, com ara la correcció d’exercicis o la resposta de preguntes freqüents, oferint a l’estudiant respostes personalitzades i que siguin útils en el seu procés d’aprenentatge.