Faits : A. Depuis 2004, Y._ SA (ci-après: l'acheteuse), ayant pour but la fabrication et le commerce de machines, utilisait un outil informatique commercialisé par X._ AG (ci-après: la venderesse), société ayant notamment pour but le développement et la distribution de solutions logicielles dans le domaine de la gestion des risques. En 2010, la venderesse a mis sur le marché une nouvelle version réseau (web) de son programme de gestion des opportunités et des risques. Le 12 juillet 2010, elle a présenté une offre à l'acheteuse pour un montant total de 62'500 fr., comprenant les postes suivants: 57'000 fr. à titre de redevance de licence (soit 30'000 fr. pour " X.N._ " et 27'000 fr. pour " X.M._ " en tenant compte d'un rabais de 10%); 2'500 fr. pour la préparation et l'installation du serveur; 9'000 fr. pour la formation à prodiguer par un employé de la venderesse (au tarif de 3'000 fr. par jour durant trois jours). Il était prévu d'installer le logiciel pour l'exercice "A._ 2010 ", soit un projet de présentation de la gestion des opportunités et des risques de la société acheteuse, en vue de son prochain conseil d'administration. Le nouveau programme devait être installé et prêt à fonctionner d'ici octobre 2010. Le 18 septembre 2010, la venderesse a adressé à l'acheteuse une facture d'acompte de 16'140 fr. Le logiciel a été installé le 23 septembre 2010. Par courriel du 24 septembre 2010, B._, représentant de la société acheteuse, a signalé à C._, représentant de la venderesse, que le programme souffrait de défauts majeurs, récapitulés dans un document annexé. Le 6 octobre 2010, B._ a adressé un nouveau courriel à C._ pour lui faire savoir que le système installé n'était toujours pas stable à 100% et qu'il ne pouvait procéder à l'exercice A._. Il attendait que la venderesse lui communique, d'ici au lendemain, s'il pourrait utiliser les nouveaux outils ou s'il était nécessaire, en vue de l'exercice A._ qui ne souffrait aucun retard, de continuer à travailler avec les anciens outils informatiques. Ce n'est que le 12 octobre 2010 que C._ l'a informé que la venderesse était toujours en train de travailler sur les problèmes rencontrés et qu'il a évoqué la possibilité de travailler avec l'ancien logiciel. Par courriel du même jour, B._ a communiqué à la venderesse que la société acheteuse avait assez perdu de temps avec le nouveau logiciel et qu'il avait décidé d'utiliser l'ancien programme pour la préparation de la gestion des risques. Par la suite, un employé de la venderesse a contribué à adapter, pour l'exercice A._ 2010, l'ancien outil informatique. Il résulte également de ce courriel que l'acheteuse n'a pas résilié le contrat du 12 juillet 2010, ni réclamé une réduction du prix, mais, qu'elle a enjoint la venderesse de procéder à la " réparation " (soit d'éliminer les défauts) du logiciel. L'acheteuse a explicitement demandé à la venderesse de l'aviser " comment et quand ceci est planifié " et, lui rappelant l'accord liant les parties, lui a suggéré de n'envoyer la facture finale (moins l'acompte initial déjà facturé) que lorsqu'elle aurait à sa disposition la version fonctionnelle. Trois semaines plus tard, l'acheteuse s'est acquittée de l'acompte de 16'140 fr. L'acceptation de l'offre par la venderesse n'étant pas discutée, on observe que les parties, en dérogation au système légal, ont conclu un accord visant la réparation (cf. aussi dans l'arrêt entrepris consid. 4.3 p. 18). S'agissant du logiciel à l'origine du litige (gestion des risques), l'état de fait contenu dans l'arrêt cantonal ne traite pas explicitement de la période située entre le 12 octobre 2010 et janvier 2012. Il résulte toutefois des pièces figurant dans le dossier cantonal (auxquelles la venderesse renvoie précisément; cf. infra consid. 3.1) que, durant cette période, la venderesse a sollicité plusieurs fois l'acheteuse pour la mise à jour du logiciel, comme celle-ci l'avait demandé le 12 octobre 2010. L'acheteuse n'y a pas donné suite et la venderesse n'a pas pu installer, dans les locaux de la société acheteuse, la version améliorée du logiciel. Le 9 janvier 2012, l'acheteuse a expliqué qu'elle avait passé beaucoup de temps à tenter de faire fonctionner le programme de gestion des risques, en vain, que de nombreux changements avaient eu lieu dans son organisation interne et que la question du traitement de l'exercice A._ dans le futur restait ouverte. Le 20 janvier 2012, elle a résilié tous les contrats conclus avec la venderesse (y compris celui conclu le 12 juillet 2010). La venderesse s'est alors opposée à la résiliation, le 2 mars 2012, considérant que l'acheteuse était en demeure et elle lui a fixé un délai de 14 jours pour formuler des propositions de dates auxquelles elle pourrait procéder à une nouvelle installation du logiciel, tout en précisant qu'elle s'attendait à ce que l'installation, y compris la formation et les essais, puisse être réalisée dans le courant du mois d'avril 2012. L'acheteuse ayant décliné la proposition de la venderesse, celle-ci a alors déclaré, le 12 avril 2012, résilier le contrat en application de l'art. 107 CO et elle a exigé le versement du montant de 61'560 fr. à titre de dommages-intérêts dans un délai de 14 jours, expliquant que l'acompte versé couvrait plus ou moins les coûts de ses travaux précédents (en particulier les travaux sur l'ancien logiciel). L'acheteuse n'est pas entrée en matière. B. Par demande du 4 octobre 2012, la venderesse a conclu au paiement immédiat de la somme de 61'560 fr. intérêts en sus. L'acheteuse a conclu au rejet de la demande. Par jugement du 8 septembre 2014, le Tribunal civil de l'arrondissement de la Broye et du Nord vaudois a rejeté la demande de la venderesse et mis les frais et les dépens à sa charge. Par arrêt du 21 avril 2015, la Cour d'appel civile du Tribunal cantonal vaudois a rejeté l'appel formé par la venderesse, confirmé le jugement de première instance et mis les frais et les dépens à la charge de l'appelante. C. La venderesse (recourante) exerce un recours en matière civile contre l'arrêt cantonal du 21 avril 2015. Elle conclut, sous suite de frais et dépens, à son annulation et à ce que l'acheteuse soit condamnée à lui verser le montant de 61'560 fr., intérêts en sus, subsidiairement au renvoi de la cause à l'autorité précédente. Elle reproche à celle-ci d'avoir établi les faits de façon inexacte (art. 97 LTF) et elle invoque une violation de l'art. 210 aCO (alors encore applicable), de l'art. 8 CC et de l'art. 55 al. 1 CPC. L'acheteuse (intimée) conclut au rejet du recours, sous suite de frais et dépens.