Question

Quelle conversion réussie / rewrite avez-vous fait des logiciels que vous participé? Que où les langues et le cadre impliqués dans le processus? Quelle était le logiciel en question? Enfin ce qui est en haut une ou deux choses que vous avez appris d'être impliqué dans le processus.

Ceci est lié à cette question

Était-ce utile?

La solution

Je vais pour "plus abstruse" ici:

  • Ported un simulateur écrit en 8080 FORTRAN 77 à partir d'un DECsystem-10 TOPS-10 à une course IBM mainframe 4381 en cours d'exécution VM / CMS.

Autres conseils

Je réécris 20.000 lignes de Perl à utiliser « use strict » dans chaque fichier. Je devais ajouter « mon » partout où il était nécessaire et je devais corriger les bugs qui ont été découverts au cours du processus.

La plus grande chose que j'ai appris de le faire est, « Il faut toujours plus que vous le pensez. »

Je devais le faire à la fois pendant la nuit afin que les autres codeurs ne seraient pas en train d'écrire une nouvelle, le code en même non fixé de temps. Je pensais que ce serait aller vite, mais il n'a pas, et j'étais encore Hacking sur elle à 6 heures le lendemain matin.

Je l'ai reçu complet et vérifié avant tout le monde a commencé autre travail bien!

Je réécris une grande application web java à une application ASP.Net pour une société immobilière pour diverses raisons.

La plus grande chose que j'ai appris est que, peu importe la façon dont trivial la fonction du système d'origine avait, si ce n'est pas dans le second système, le client pense que la réécriture est un échec. la gestion de l'espérance mathématique est tout lors de l'écriture du nouveau système.

est la plus grande réécritures raison sont si difficiles. Il semble si facile au client ( «Il suffit de refaire ce que j'ai déjà et ajouter quelques petites choses »)

Le plus cool pour moi, je pense, était le port de MAME à l'iPod . Ce fut une grande expérience d'apprentissage avec le matériel embarqué, et je suis arrivé à travailler avec beaucoup de gens formidables. site officiel.

Je suis en train de faire une ré-écriture d'un système managment projet Inhouse à un modèle MVC plus standard. Son dans la pile LAMP (PHP) et je suis proche de la 1ère étape.

Les choses que j'ai appris de ce moment est la simplicité du programme se sent au début et j'ai essayé de ne pas ajouter de la complexité jusqu'à ce que je dois.

L'exemple est que je programmé toutes les fonctionnalités d'abord (comme je l'ai été un administrateur) et lorsque cela est triés, ajouter la complexité d'avoir des restrictions (niveaux d'utilisation, etc.)

Je Ported / remodelé / récrit un programme MS-DOS 30 000 en ligne C ++ dans une même longueur, mais beaucoup plus riche en fonctionnalités et programme Java Swing utilisable.

J'appris à ne jamais prendre un autre emploi impliquant C ++ ou Java.

Je Ported un serveur client application Powerbuilder, quelques centaines d'écrans valeur, dans une application ASP.NET (C #).

En raison de problèmes de performance et maintenabilité, j'ai eu au cours de l'année précédente déplacé une tonne de SQL embarqué de scripts PowerBuilder et dans les procédures stockées.

Bien que cela ferait beaucoup d'entre vous grimacer, ayant beaucoup de logique métier dans la base de données, cela signifie l'application Powerbuilder était relativement « léger » et quand nous avons construit l'avant .Net, il pourrait tirer profit de SQL codebase et ont beaucoup de fonctionnalités déjà construit et testé.

Ne dis pas que je vous recommande applications bâtiment de cette façon, mais il a certainement travaillé à notre avantage dans ce cas.

Nous avons un outil de génération de code dans notre cadre d'application qui a été utilisé pour lire dans les fichiers de données à base de texte, de 20 autres applications en usage.

Nous voulions utiliser des fichiers de données XML au lieu de fichiers à base de texte structuré. Le code original était tout à fait obsolète et difficile à maintenir. Nous avons remplacé cet outil par une combinaison de scripts XSLT et une bibliothèque utilitaire. Pour la bibliothèque utilitaire que nous pourrions utiliser un code dans l'ancien outil.

Le résultat a été que toutes les 20 applications pouvaient désormais utiliser soit le format de fichier texte obsolète ou le nouveau format basé sur XML. Nous avons également livré un outil de génération de conversion qui convertit les anciens fichiers de données vers de nouveaux fichiers de données XML.

Après avoir porté un ou deux version, nous avons décidé que nous ne soutiendrons plus l'ancien texte format basé et tout le monde est en mesure de convertir leurs données au format XML.

Nous n'avons à peine à faire des conversions manuelles,

Converti la principale application de l'entreprise de pré-C ++ standard à la norme C ++. Nous avons eu une vente de plusieurs millions de dollars dépend le faire fonctionner sous AIX, et après l'avoir examiné, nous avons décidé que la conversion à la norme C ++ allait être aussi facile que la conversion en C ++ traditionnel d'IBM.

Je ne sais pas le nombre de lignes, mais le code source couru à des centaines de méga-octets.

Nous avons utilisé des outils Unix standard pour ce faire, y compris vi et les compilateurs assortis.

Il a fallu quelques mois. La plupart des correctifs étaient simples, ceux pris par le compilateur et presque mécaniquement fixes. Certains d'entre eux étaient beaucoup plus compliquées.

Je pense que mon principal emporter était: Ne soyez pas trop terriblement intelligent avec le code dans une langue qui n'a pas encore été normalisé, ou est susceptible d'avoir les choses changent de manière inattendue. Nous avons dû faire beaucoup de creuser dans certaines des adaptations / abus ingénieux de flux C ++.

Il y a dix ans, j'ai réussi une équipe qui a converti un système de CAO de DOS à Windows. La version DOS utilisée bibliothèques pour brasser maison dessin graphique, la version de Windows utilisée MFC. Le logiciel était d'environ 70,000 lignes de code C au moment de la conversion. La chose la plus importante que nous avons appris dans le processus est le pouvoir de l'abstraction. Toutes les routines non-portables spécifiques à l'appareil ont été isolés dans quelques fichiers. Il est donc relativement facile de remplacer les appels à la bibliothèque sous DOS qui attirerait en accédant directement à la mémoire tampon de trame avec des appels API Windows. De même, pour l'entrée que nous venons substituait la boucle d'événements qui vérifiait pour clavier et souris événements, avec la boucle d'événements Windows correspondant. Nous avons poursuivi notre politique d'isolement du code non portable (cette fois Windows) du reste du système, mais on n'a pas encore trouvé cela particulièrement utile. Peut-être un jour nous le système le port Mac OS X et être reconnaissant à nouveau.

Plusieurs

. Mais je mentionne un.

Il est un outil de modélisation de la performance. Partie 1 delphi, une partie du turbo pascal. Il avait besoin d'un autre rewrite il ne va survivre. Nous avons donc commencé comme une équipe de 2, mais ne m'a survécu jusqu'à la fin. Et j'étais prêt avant la date limite, -).

Plusieurs choses que nous avons fait:

  • Faites multimodèle. L'original avait beaucoup de globals. Je les ai enlevé tous et modèle multi était facile à adapter.
  • Messages d'erreur étendus. Cliquez sur un message et obtenir l'aide.
  • Beaucoup de graphiques et des diagrammes. Tous cliquable à percer vers le bas.
  • Simulation. Modifier les paramètres au fil du temps et de voir combien de temps la configuration actuelle était suffisante.

Nous avons vraiment fait celui propre et payé lourdement à la fin. Une telle grande expérience d'apprentissage.

Re-écrit un système pour une entreprise qui traite les factures juridiques - le système original était une monstruosité VB qui avait aucune idée de bons principes OO - tout a été mélangé. Le code HTML fait SQL et le SQL écrit HTML. Une grande partie de celui-ci était un moteur de règles personnalisées qui a utilisé quelque chose comme XML pour les règles.

Deux équipes ont fait la ré-écriture, ce qui a pris environ 9 mois. Une équipe a l'avant Web et le flux de travail de back-end, tandis que l'autre équipe (que j'étais) récrit le moteur de règles. Le nouveau système a été écrit en C #, et a fait des tests en premier. L'ajout de nouvelles règles au système quand nous avons fait était la saleté simple, et il était testable. Le long de la façon dont nous avons fait des choses comme transformation de la compagnie VSS à SVN, mettre en œuvre l'intégration continue, d'automatiser le déploiement, et enseigner aux autres développeurs comment faire TDD et d'autres pratiques Scrum / XP.

Gestion des attentes était cruciale dans le projet. Avoir un client qui a été averti au sujet du logiciel a été très utile.

Avoir un mélange de tests à grande échelle (de bout en bout) ainsi que des tests unitaires complets et d'intégration. Tonnes aidé

Converti vBulletin qui est écrit en PHP en C # / Asp.NET. Je suis assez familier avec les deux langues, mais PHP est les mains vers le bas le gagnant pour la construction de ce logiciel. La plus grosse douleur à l'arrière a été besoin de faire un C # équivalent de eval () de PHP pour appeler les modèles.

Ce fut mon premier défi en essayant de faire une conversion. J'ai appris que je besoin de plus d'expérience avec C # et écrire à partir de zéro est juste la route plus facile parfois.

Je converti une accumulation processus dynamique complètement écrit en Perl à une solution Net C # / en utilisant un flux de travail moteur, un collègue a mis au point. (Qui était encore en version bêta - donc je devais faire quelques améliorations). Cela m'a donné l'oppertunity d'ajouter fail-safe et fail-over fonctionnalité au processus de construction.

Avant de vous demander - pas -. Le flux de travail Microsoft Foundation ne peut pas être utilisé puisque vous ne pouvez pas changer dynamiquement un processus au cours de son exécution

Ce que j'appris:

  • à la haine le développeur Perl
  • processus d'optimisation à l'aide d'un moteur wf
  • sécurité intrinsèque des stratégies et fail-over
  • quelques modifications C #;)

A la fin, il a couvert environ 5 km - 6k (y compris le moteur wf) origine LoC à partir de 3 200 LoC fichiers Perl. Mais il était amusant - et beaucoup mieux à la fin;)

Conversion du code C théoriquement portable en code C portable théoriquement sur les architectures pour supporter un changement de matériel qui permet d'économiser les dollars société X par unité.

La taille varie - c'est un besoin commun, et je l'ai fait petits et grands projets

.

J'ai appris à écrire un code plus portable C. L'élégance est grande, mais quand il vient jusqu'à ce que le compilateur prend en charge la performance, et le code doit être aussi simple et portable que possible.

Ported une simulation en Fortran 77 (en dépit d'être écrit dans les années 90) à C / Java, car le seul d'origine a travaillé sur de petits ensembles de données. J'ai appris à aimer la notation grand O après plusieurs d'expliquer pourquoi juste déplacer l'ensemble de la table de données en mémoire au début du programme a été ne va pas à l'échelle.

Migration B-2 logiciel de mission de bombardier furtif de JOVIAL à C. 100% de conversion entièrement automatisée. Sérieusement!

leçon principale:. à l'aide des outils de conversion configurables automatisés est une grande victoire

Voir DMS Software Reengineering Toolkit .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top