Esteu aquí

Contacte
Cabot Sagrera, Jordi

SOM és un equip de recerca conjunt d’ICREA i la UOC, amb seu a l’Internet Interdisciplinari Institute (IN3), situat en un magnífic barri de Barcelona. Ens interessa el camp dels sistemes i l’enginyeria del programari, sobretot la promoció de l’ús rigorós de models de programari i principis d’enginyeria en totes les tasques de disseny de programari, sempre tenint present l’element més impredictible de qualsevol projecte: les persones que hi estan involucrades. 

Línies de recerca

  • Mètodes formalsEn 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 verificacions i 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 pot limitar la seva aplicabilitat en exemples del món real. Aquesta línia de recerca tindrà en compte els enfocaments pragmàtics per garantir la qualitat dels sistemes de programari a escala industrial, i explorarà temes clau com la usabilitat, l’eficiència i l’aplicabilitat.
  • Enginyeria dirigida per modelsEl 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 implementació final d’aquests models. En aquesta línia de recerca explorem tècniques i eines per a donar suport a tots els aspectes de l’enginyeria dirigida per models, incloent-hi la manipulació de models molt grans, models heterogenis, modelatge col·laboratiu i descoberta de models (d’API a codi font).
  • Analítica de programariL’analítica de programari és l’estudi de totes les dades relacionades amb els programes i els seus processos d’enginyeria amb la finalitat d’entendre millor com es construeix el programari. L’objectiu és ser capaços de predir i millorar importants factors de qualitat dels artefactes de programari i conèixer les millors pràctiques dels projectes del passat (tant si han tingut èxit com si no). L’aprenentatge d’aquests factors es duu a terme per mitjà de la mineria massiva de repositoris de programari com GitHub (amb més de 30 milions de projectes en aquest moment). L’analítica de programari inclou l’anàlisi del codi del programa, però ens interessa especialment estudiar tots els aspectes socials i col·laboratius que giren al seu voltant (qui és la comunitat que construeix el programari, com s’organitzen, quines són les millors pràctiques que segueixen, etc.).