vaste question.
deja commencer par faire toute la spécification de ton application en diagrames UML est un bon depart. Ca permet d'avoir une vue d'enssemble du logiciel avant qu'il soit codé. Ensuite essaye de voir comment tu pourais y ajouter des fonctionnalités, ect.
Un autre point important pour la réutilisation des sources est d'etre consciencieux dans l'ecriture du code, c'est a dire, TOUT commenter (et bien commenter), conserver les meme normes d'indentations, de nommage des variables des méthodes, des classes...
Un code bien ecrit et bien documenté sera bien plus facil a reprendre meme si il n'est pas optimisé qu'un super code incompréhensible.