[ca] Durant l'última dècada, moltes universitats, centres de recerca i empreses privades han començat a desenvolupar els seus petits satèl·lits. Aquests sistemes espacials, avantatjosos en quant a temps i cost de desenvolupament, han estat possibles gràcies a la miniaturització de diverses tecnologies hardware (sistemes encastats, components COTS) i l'aplicació de dissenys modulars. No obstant això, aquest esforç s'ha centrat principalment en l'arquitectura del hardware, i no s'ha abordat des de la perspectiva de l'arquitectura del software. Els objectius d'aquesta tesi són dos. Per una banda, aquest treball se centra en els aspectes software dels nano-satèl·lits a través de l'anàlisi de les arquitectures implementats en missions de nano-satèl·lits actuals. Aquesta anàlisi ha permès la elaboració d'un marc d'avaluació que abasta cinc atributs de qualitat i que està concebut particularment per aquests tipus sistemes espacials. El resultat d'aquest estudi preliminar convergeix en la definició d'un conjunt de criteris de disseny que s'han aplicat en el desenvolupament de l'arquitectura software de propòsit general per nano-satèl·lits presenta en aquesta tesi. Per una altra banda, aquest treball ha consistit en el disseny i implementació d'un dels components essencials en el sistema d'autonomia d'un satèl·lit: un planificador de tasques. Escrit en Prolog en la seva totalitat i adoptant el paradigma de programació de restriccions, aquest treball detalla el desenvolupament i les proves efectuades d'un planificador de tasques multi-recurs totalment elàstic basat en prioritats que s'ha integrat dins de l'arquitectura de software per nano-satèl·lits i que permet operar la nau amb una intervenció humana mínima.

[en] During the last decade, many universities, research centers and private companies have started developing their miniature satellites. These small spacecraft, advantageous in terms of development-costs and -times, have been enabled by the miniaturization of several hardware technologies (embedded systems, COTS components) and the application of modularity-driven designs. However, this effort has been mainly focused on the hardware architecture but scarcely approached from the software architecture perspective. The purpose of this thesis is twofold. On the one hand, this work focuses on the software aspects of nano-satellites through the analysis of software architectures implemented in current nano-satellite missions. Such analysis allowed the generation of an evaluation framework which encompasses five quality attributes and which is targeted for these particular kinds of space systems. The result of this preliminary study converged in the definition of a set of design criteria that have been applied in the development of the general-purpose nano-satellite software architecture presented in this dissertation. One the other hand, this work consisted in the design and implementation of a core component in satellite autonomy systems: a task scheduler. Entirely written in Prolog and using constrain programming paradigm, this work details the development and test of a multi-resource fully-elastic priority-based task scheduler which has been integrated within the nano-satellite software architecture and which allows to operate the spacecraft with minimum human intervention.