Frage

Welche erfolgreichen Umwandlung / Rewrite haben Sie von Software durchgeführt Sie beteiligt waren? Was wo die Sprachen und Rahmen in den Prozess einbezogen? Wie groß war die Software in Frage? Schließlich, was ist das Top eines oder zwei, was Sie daraus gelernt mit dem Prozess beteiligt werden.

Dies ist auf diese Frage im Zusammenhang

War es hilfreich?

Lösung

Ich werde für "most abstrusen" hier:

  • Portiert einen 8080-Simulator geschrieben in FORTRAN 77 von einer DECsystem-10 Laufe TOPS-10 an einen IBM 4381 Mainframe VM / CMS.

Andere Tipps

schrieb ich 20.000 Zeilen Perl in jeder Datei "use strict" zu verwenden. Ich musste hinzufügen „meine“ überall es nötig war, und ich hatte den Fehler zu beheben, die während des Prozesses aufgedeckt wurden.

Das größte, was ich zu tun dies gelernt haben, ist: „Es dauert immer länger als man denkt.“

musste ich es auf einmal über Nacht erledigt werden, so dass die anderen Programmierer nicht unfixierten Code schreiben würden, um neuen, zugleich. Ich dachte, es würde schnell gehen, aber es kam nicht, und ich war Hacking noch drauf um 6 Uhr am nächsten Morgen.

Ich habe es komplett erhalten und überprüft in vor allen anderen, obwohl ihre Arbeit aufgenommen!

schrieb ich eine große Java-Web-Anwendung zu einer ASP.Net-Anwendung für eine Objektgesellschaft aus verschiedenen Gründen.

Die größte Sache, die ich gelernt habe, ist, dass, egal wie trivial das Merkmal des ursprüngliche System hatte, wenn es nicht in dem zweiten System ist, denkt der Kunde die Rewrite ein Fehler ist. Erwartungsmanagement ist alles, wenn das neue System zu schreiben.

Dies ist der Hauptgrund, warum Neufassungen sind so hart. Es den Kunden so einfach scheint ( „Gerade wieder das tun, was ich schon habe und ein paar Dinge hinzufügen“)

Die coolsten für mich, glaube ich, war die Hafen von MAME auf den iPod . Es war eine großartige Lernerfahrung mit Embedded-Hardware, und ich habe mit vielen tollen Menschen zu arbeiten. Offizielle Website .

Ich mache ein Umschreiben eines Inhouse Projektmanagement-System zu einem Standard-MVC-Modell. Sein in dem LAMP-Stack (PHP), und ich bin die Nähe des ersten Meilenstein.

Die Dinge, die ich daraus gelernt haben zur Zeit ist, wie einfach das Programm fühlt sich am Anfang und ich versuchte nicht Komplexität hinzuzufügen, bis ich muss.

Beispiel ist, dass ich zunächst die Funktionalität programmiert (wie ich ein Admin-Benutzer war) und dann, wenn das sortiert wird, fügt die Komplexität Einschränkungen von (Benutzerebenen usw.)

ich portierte / neu gestaltet / umschrieb ein 30.000-line MS-DOS C ++ Programm in eine ähnliche Länge aber viel mehr voll funktionsfähige und nutzbar Java Swing-Programm.

Ich habe gelernt, nie einen anderen Job Beteiligung C ++ oder Java zu nehmen.

ich portierte eine Client-Server Powerbuilder-Anwendung, ein paar hundert Bildschirme wert, in eine ASP.NET-Anwendung (C #).

Durch Leistung und Wartbarkeit Fragen, ich gegenüber dem Vorjahr hatte eine Tonne von Embedded SQL aus Skripte Powerbuilder bewegt und in gespeicherte Prozeduren.

Obwohl dies eine Menge würde von Ihnen zusammenzucken, in der Datenbank eine Menge von Business-Logik ist, bedeutet es die Powerbuilder App relativ „Licht“ war, und wenn wir das .Net vorderen Ende gebaut, könnte es die Vorteile der SQL nehmen Code-Basis und eine Vielzahl von Funktionen haben bereits gebaut und getestet.

sage nicht, würde ich empfehlen, Gebäude apps auf diese Weise, aber es funktionierte sicherlich zu unserem Vorteil in diesem Fall.

Wir haben in unserem Anwendungs-Framework ein Codegenerierungstool hatten das verwendet wurde, in textbasierten Datendateien, etwa 20 andere Anwendungen Gebrauch gemacht, es zu lesen.

Wir wollten Verwendung von XML-Datendateien anstelle von strukturierten textbasierte Dateien machen. Der ursprüngliche Code war ziemlich veraltet und schwierig zu warten. Wir ersetzten dieses Werkzeug durch eine Kombination von XSLT-Skripten und eine Utility-Bibliothek. Für die Utility-Bibliothek konnten wir die Verwendung von Code in dem alten Werkzeug machen.

Das Ergebnis war, dass alle 20 Anwendungen jetzt Nutzung entweder des veralteten textbasierten Dateiformat oder dem neuen XML-basierten Format machen könnte. Wir lieferten auch ein Wandlungs-Generation-Tool, die alten Datendateien neue XML-Datendateien umgewandelt.

Nach bringen aus einem oder zwei Release wir jetzt entschieden haben, dass wir nicht mehr das alte textbasierten Format unterstützen, und jeder ist in der Lage, ihre Daten in XML zu konvertieren.

Wir hatten kaum manuelle Konvertierungen zu tun,

Umbau der Haupt Firma App von Vornorm C ++ Standard C ++. Wir haben ein Kontingent Multimillionen-Dollar verkaufen hatte auf die es auf AIX arbeiten, und nachdem es zu betrachten wir entschieden, dass Standard-C ++ konvertieren würde genauso einfach sein wie die Umstellung auf IBMs traditionellen C ++.

Ich weiß nicht, die Zeilenzahl, aber der Quellcode lief auf Hunderte von Megabytes.

Wir haben Standard-Unix-Tools, dies zu tun, einschließlich vi und den verschiedenen Compilern.

Es dauerte ein paar Monate. Die meisten der Korrekturen waren einfache, vom Compiler gefangen und fast mechanisch fixiert. Einige von ihnen waren viel komplizierter.

Ich glaube, mein Hauptservice war: Ich auch nicht schrecklich mit Code in einer Sprache klug erhalten, die noch nicht standardisiert ist, oder wahrscheinlich Dinge auf unerwartete Weise ändern haben. Wir hatten viel graben in einigen der genialen Anpassungen / Missbrauch von C ++ zu tun Streams.

Vor zehn Jahren habe ich es geschafft, ein Team, das ein CAD-System von DOS in Windows-konvertiert. Die DOS-Version verwendet haus brauen Bibliotheken für Grafiken zeichnen, die Windows-Version verwendet MFC. Die Software war über 70,000 Zeilen C-Code zum Zeitpunkt der Umwandlung. Das Wichtigste, was wir in dem Prozess gelernt haben, ist die Macht der Abstraktion. Alle gerätespezifischen nicht tragbaren Routinen wurden in ein paar Dateien isoliert. Es war daher relativ einfach, die Anrufe an die DOS-basierte Bibliothek zu ersetzen, die durch den direkten Zugriff auf den Frame-Buffer mit Windows-API-Aufrufe ziehen würde. In ähnlicher Weise für die Eingabe ersetzt wir nur die Ereignisschleife, die für Tastatur und Mausereignisse überprüft, mit der Windows-Ereignisschleife entspricht. Wir setzten unsere Politik des nicht tragbare Isolierung (diesmal Windows) Code aus dem Rest des Systems, aber wir haben noch nicht gefunden dies besonders nützlich. Vielleicht wird ein Tag portieren wir das System auf Mac OS X und wieder dankbar sein.

Mehrere. Aber ich erwähnen ein.

Es war ein Performance-Modellierungswerkzeug. Teil delphi 1, Teil Turbo Pascal. Es brauchte eine Rewrite sonst war es nicht überleben würde. So haben wir begonnen, als ein Team von zwei, sondern nur überlebt, mich bis zum Ende. Und ich war bereit, vor Ablauf der Frist, -).

Mehrere Dinge, die wir haben:

  • Machen Sie es Multimodell. Das Original hatte viele Globals. Ich entfernte sie alle und Multi-Modell war leicht anzupassen.
  • Erweiterte Fehlermeldungen. Klicken Sie auf eine Nachricht und erhalten die Hilfe.
  • Viele Grafiken und Diagramme. Alle klickbare aufschlüsseln.
  • Simulation. Ändern Sie die Parameter im Laufe der Zeit und sehen, wie lange die aktuelle Konfiguration war genug.

Wir haben wirklich diese eine sauber gemacht und es bezahlt stark am Ende zurück. Eine solche große Lernerfahrung.

Re-schrieb ein System für ein Unternehmen, das Recht Rechnungen verarbeitet - das Original-System ist eine VB Ungeheuerlichkeit, die keine Ahnung von guten OO Prinzipien hatte - alles zusammen gemischt. Die HTML-tat SQL und SQL schrieb HTML. Ein großer Teil davon war ein benutzerdefinierte Regeln-Engine, die so etwas wie XML für die Regeln verwendet.

Zwei Teams haben die neu zu schreiben, die etwa 9 Monate in Anspruch nahm. Ein Team hat den Web-Frontend und den Backend-Workflow, während das andere Team (das war ich auf), um die Regel-Engine neu geschrieben. Das neue System wurde in C # geschrieben und wurde Test zuerst getan. Das Hinzufügen von neuen Regeln für das System als ich war getan Schmutz einfach, und es war alles prüfbar. Auf dem Weg dorthin haben wir Dinge wie das Unternehmen von VSS zu SVN konvertieren, die kontinuierliche Integration implementieren, automatisieren die Bereitstellung und lehren die anderen Entwickler, wie TDD und andere Scrum / XP Praktiken zu tun.

Managing Erwartungen waren entscheidend durch das Projekt. einen Kunden hat, die versierte über Software war sehr hilfreich.

Mit einer Mischung aus großem Maßstab (end-to-end) Tests zusammen mit umfassenden Modul- und Integrationstests geholfen Tonnen.

Converted vBulletin, die in PHP in C # / Asp.NET geschrieben. Ich bin ziemlich vertraut mit beiden Sprachen, aber PHP ist die Hände nach unten den Gewinnern für diese Software zu bauen. Der größte Schmerz in der Rückseite wurde, um für den Aufruf der Vorlagen ein C # -Äquivalent von PHP eval () zu tun.

Es war meine erste Herausforderung bei dem Versuch, eine Umwandlung zu tun. Ich habe gelernt, dass ich mehr Erfahrung mit C # müssen und dass es von Grund auf neu zu schreiben ist nur die einfachere Route manchmal.

konvertierte ich einen dynamischen Build-Prozess geschrieben vollständig in Perl zu einer C # / Net-Lösung mit einer Workflow-Engine ein Mitarbeiter entwickelt hatte, mit. (Die in der Beta noch war - so hatte ich einige Verfeinerungen zu tun). Das gab mir die Chance hat hinzufügen ausfallsicher und Failover-Funktionalität für den Build-Prozess.

Bevor Sie fragen - nein -. Die Microsoft Workflow-Stiftung kann nicht verwendet werden, da Sie nicht dynamisch einen Prozess während seiner Laufzeit ändern können

Was ich gelernt habe:

  • die Perl-Entwickler hassen
  • Prozessoptimierung eines wf-Motor
  • mit
  • ausfallsichere und Failover-Strategien
  • einig C # zwickt;)

Am Ende bedeckt es etwa 5k - 6k (einschließlich der wf-Motor) LoC Herkunft von 3 200 LoC Perl-Dateien. Aber es hat Spaß gemacht - und viel besser am Ende;)

Konvertieren theoretisch portable C-Code in theoretisch portablen C-Code auf allen Architekturen eine Änderung der Hardware zu unterstützen, die die Firma X-Dollar pro Gerät speichert.

Die Größe variiert - das ist ein gemeinsames Bedürfnis, und ich habe kleine und große Projekte durchgeführt

.

Ich habe gelernt, mehr tragbaren C-Code zu schreiben. Eleganz ist groß, aber wenn es darum geht bis zu ihm der Compiler kümmert sich um Performance und der Code sollte so einfach und handlich wie möglich sein.

eine Simulation in Fortran 77 geschrieben Portiert (obwohl er in den 90er Jahren geschrieben wird) zu C / Java, weil das Original nur auf kleine Datenmengen gearbeitet. Ich habe gelernt, O-Notation nach mehrmaligen zu lieben, warum gerade zu erklären, zu Beginn des Programms der gesamte Datentabelle in den Speicher zu bewegen war nicht maßstab gehen.

Migration der B-2 Stealth Bomber Mission Software von JOVIAL bis C. 100% vollautomatische Konvertierung. Im Ernst!

Hauptlektion:. konfigurierbare automatische Konvertierung-Tools ist ein großer Gewinn

Siehe DMS Software Reengineering Toolkit .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top