La computació ubiqua o pervasiva planteja proveir d'intel.ligència els nostres entorns desplegant en ells dispositius capaços de sensar la informació que els rodeja (tals com la temperatura, la localització dels usuaris, etc.) i de controlar els objectes quotidians (tals com llums, persianes, etc.). Un dels objectius més importants de construir aquests entorns és oferir servicis als usuaris que permeten automatitzar les farragoses tasques rutinàries que han de dur a terme cada dia. Aquesta automatització milloraria considerablement la qualitat de vida dels usuaris, permetent que es despreocupen de realitzar aquestes tasques i evitant que malbaraten el seu temps en portar-les a terme. A més, en automatitzar-se, les tasques poden ser executades oferint més confort als usuaris i de manera més eficient, reduint el consum de recursos naturals com energia i aigua. No obstant aixo, l'automatització de tasques és un tema complicat ja que, si es realitza erroniament, pot resultar molt molest per als usuaris. Si el sistema automatitza tasques que els usuaris no desitgen o les automatitzen d'una manera diferent de com ells volen, el resultat de l'automatització pot acabar sent intrusiu, interferint en els objectius dels usuaris, o sent fins i tot perillós. Per evitar aquestes conseqüencies no desitjades, les tasques han d'automatitzar-se atenent els desitjos i necessitats dels usuaris. Aquest és l'objectiu principal d'aquesta tesi: automatitzar les tasques rutinàries dels usuaris tal i com ells desitgen que siguen automatitzades. Per tal d'aconseguir-ho, proposem, d'una banda, dos models d'alt nivell d'abstracció per descriure les rutines. Aquests models proporcionen conceptes próxims als usuaris i així faciliten la seua participació en la descripció de les rutines. A més, els models estan dissenyats per ser interpretats per màquines, i per proporcionar informació prou precisa per fer-los directament executables. D'altra banda, proporcionem també una infraestructura de programari que és capaç d'executar els models interpretant-los en runtime. Això permet automatitzar les rutines tal i com estan descrites en els models. D'aquesta manera, els models constitueixen l'única representació de les rutines que han d'automatitzar-se, la qual cosa els converteix en els mitjans principals per a entendre-les i modificar-les. Això facilita considerablement l'evolució de les rutines per adaptar-les als canvis de comportament dels usuaris. Sense aquesta adaptació, l'automatització acabaria sent inútil i fins i tot una molèstia per als usuaris. En la nostra aproximació, l'evolució de les rutines es porta a terme per mitjà de l'adaptació dels models, ja que, quan aquests canvien, els canvis són tinguts en compte per la infraestructura de programari que els interpreta. Per tal de donar suport a aquesta evolució, proporcionem tant mecanismes d'alt nivell d'abstracció com una ferramenta gràfica que permet evolucionar les rutines en runtime per mitjà de la modificació dels models. El treball presentat en aquesta tesi ha sigut validat seguint una avaluació basada en casos d'estudi en la qual han participat usuaris finals. Aquesta validació prova que la proposta presentada és capaç d'automatitzar les tasques rutinàries que els usuaris volen i tal i com ells volen.