Cada vegada més els sistemes de programari necessiten adaptar el seu comportament dinàmicament com a resposta a esdeveniments de la seua pròpia infraestructura o de l’entorn físic que els envolta. L’adaptabilitat s’està convertint en una capacitat bàsica per als sistemes de programari, particularment per a aquells sistemes altament dinàmics, com és el cas dels sistemes sensibles al context o els sistemes ubicus. No obstant, aquests sistemes han arribat a un nivell de complexitat on l’esfoç requerit per a mantindre-los operatius es massa elevat. Mitjançant l’automatització de tasques com la instal·lació, l’adaptació o la reparació, la Computació Autònoma proposa entorns de computació que evolucionen sense la necessitat d’intervenció per part dels usuaris. No obstant, malgrat que existeix una raonable quantitat de treball en disseny teòric d’arquitectures, la Computació Autònoma ha estat criticada com “un tema massa ambiciós” a causa de la falta d’implementacions que materialitzen les idees proposades. A més, la naturalesa dels sistemes de Computació Autònoma (on el seu estat canvia en temps d’execució d’una manera dinàmica) planteja un gran desafiament per a suportar el desenvolupament d’aquest tipus de sistemes mitjançant guies, tècniques i eines. Aquesta tesi mostra que la combinació de les idees principals del Desenvolupament de Programari Dirigit per Models (models com artefactes de primer ordre) i les Línies de Producte de Programari (gestió de la variabilitat) pot jugar un paper important cap a la implementació de les propietats d’autogestió proposades per la Computació Autònoma. La proposta presentada proposa sistemes que són capaços de modificar el seu propi comportament d’acord a canvis en el seu entorn. Açò s’aconsegueix emprant models de variabilitat com si fossen les polítiques que dirigeixen la reconfiguració autònoma del sistema en temps d’execució. Sota un conjunt de comandaments de reconfiguració, els components que formen l’arquitectura de programari cooperen dinàmicament per a permetre canviar el sistema d’una configuración a una altra. Aquest treball també proporciona la implementació d’un Motor de Reconfiguracions basat en Models (MoRe per les seues sigles en anglés) que materialitza les idees proposades. Donat un esdeveniment de context, MoRe consulta els models de variabilitat per a determinar com ha d’evolucionar el sistema i després proporciona mecanismes per a modificar l’arquitectura del sistema en conseqüència. El treball presentat ha estat validat des de tres perspectives diferents: (1) escalabilitat de la proposta, (2) riscos basats en la seguretat de les reconfiguracions i (3) nivel de comportament autònom aconseguit. Aquesta avaluació va ser realitzada amb la participació d’usuaris mitjançant el cas d’estudi d’un Hotel Intel·ligent que utilitzava dispositius reals. Els experiments mostren que la proposta obté resultats satisfactoris respecte a escalabilidad i risc de les reconfiguracions; no obstant això, vam trobar alguns escenaris que van requerir un major nivell de detall per a definir el comportament autònom, ja que aquests escenaris entraven en conflicte amb algunes preferències dels usuaris. Encara que aquests escenaris podien ser abordats mitjançant components específics per als casos no suportats, no sembla realista construir característiques del sistema per a satisfer a cada usuari de forma individual. La nostra intenció és centrar-nos en generalitzacions i abstraccions que siguen vàlides per al conjunt total d’usuaris, cercant un equilibri entre personalització i reutilització.