Froschs Blog

Computer und was das Leben sonst noch so zu bieten hat

Zur Website | Impressum

Software-Portierung

19. März 2012 um 23:07 Uhr von Atari-Frosch

So, jetzt brauch ich mal Followerpower, allerdings nicht für mich, ich bin in dieser Sache nur Gateway.

[Update 2012-03-25 13:55] Der Auftrag ist vergeben, danke für alle Rückmeldungen und Weiterleitungen! [/Update]

Eine Firma verwendet noch eine alte DOS-Software, um ihre Artikel, Kunden, Rechnungen etc. zu verwalten. Die Software wurde speziell für diese Firma geschrieben, allerdings ist ihnen der Programmierer mittlerweile abhanden gekommen. 😉 Einen Source-Code gibt es „natürlich“ nicht. Ob es Dokumentation gibt, ist noch nicht bekannt, aber ich habe da so gewisse Zweifel. Daher ist nicht einmal die Sprache erkennbar, wobei ich auf C tippe. Die Dateien, in welchen die Daten gespeichert werden, sehen ihren Extensions und auch ihren Innereien nach sehr nach dBase-Gedöns aus.

Der PC, auf dem das ganze läuft, ist am Auseinanderfallen, und daher möchte man die Gelegenheit ergreifen, die gesamte Anwendung auf ein moderneres System zu portieren. Am Ende soll die Anwendung auf drei PCs laufen, wobei die Datenbank dann zentral auf einer Kiste liegen soll – natürlich mit den bisher eingepflegten Daten.

Zunächst wollte man aber das alte Teil als Einzelplatzanwendung, also wie bisher, in einem Emulator auf einem modernen PC laufen lassen. Man hatte es bereits in der dosbox unter Windows 7 versucht, aber da wirft die Software Fehlermeldungen: Sie kann einige Dateien nicht finden.

Ich habe die Ursprungssoftware hier mal testweise in der dosbox unter Linux laufen gelassen. Dabei tauchen dieselben Fehlermeldungen auf: Es werden einige Indizes und Tabellen nicht gefunden, obwohl sie vorhanden sind. Diese Fehler treten aber offenbar nur in Emulatoren und an der Win7-Eingabeaufforderung auf, nicht jedoch auf dem auseinanderfallenden PC. Ich habe auf Groß-/Kleinschreibung getippt, denn die Dateinamen werden teils in Kleinbuchstaben gesucht, sind aber nur in Großbuchstaben vorhanden; Umbenennen hat jedoch nichts gebracht, auch nicht nach einem Neustart der dosbox.

Gesucht wird also ein Programmierer, der diese Software nur aufgrund dessen, was sie tut und anzeigt, auf ein aktuelles Betriebssystem umschreiben und die vorhandenen Daten aus dem dBase-Format in ein moderneres Datenbankformat konvertieren kann. Ob das dann unter Windows 7 sein muß oder ob es auch unter Linux sein darf, kann man mit dem Auftraggeber sicher diskutieren. Das ganze soll natürlich nicht kostenlos sein!

Die auftraggebende Firma befindet sich im Raum Erlangen und befaßt sich mit Bodenbelägen.

16 Kommentare zu “Software-Portierung”

  1. Mahnny quakte:

    Vielleicht hülfe es, wenn man das alte System in eine richtige Virtuelle Maschine packt?


  2. vera quakte:

    Zeig mal ein Stück Code.


  3. frosch quakte:

    @vera: Es gibt keinen Code. Es gibt nur ein paar .EXE-Dateien. Sonst wär’s ja zu einfach.

    Mittlerweile denke ich, das ganze packt man am besten in eine Webanwendung. Hat den Vorteil, daß man sich nicht an ein Betriebssystem bindet. Außerdem kann man dann nicht den Code verstecken 🙂


  4. Zensurgegner quakte:

    Ich kann mich dunkel erinnern, das die alten DBASE/CLIPPER-Anwendungen ein paar Umgebungsvariablen brauchten um ihre Dateien zu finden. Kuck mal auf der alten Kiste nach…


  5. Programmierer quakte:

    Der Firma sollte klar sein das ein Freelancer einen gewissen Stundenlohn hat, gehen wir mal von ca. 120 Stunden aus, ohne die SW zu kennen, bei einem Stundenlohn von im schnitt 63€ sind das 7560€ die zu zahlen wären.
    Is die Firma überhaupt bereit den entsprechenden Preis für ein „modernes“ System zu zahlen? Ist ihr das überhaupt klar was das bedeutet?
    Mal eben ist das sicher nicht.
    Mein Vorschlag, wie auch bereits erwähnt, virtualisieren, einfach das ganze laufende System in eine VM packen, gut is.
    Kostet weniger und alles bleib wie es ist und niemand muss eingearbeitet werde etc.
    Niemand wird denen ein „modernes“ System bauen (können) was sich wie das „alte“ anfühlt…


  6. frosch quakte:

    @Programmierer: Das ist denen sicher klar, daß das nicht zum Nulltarif zu haben ist. Ebenso, daß das nicht „mal eben” geht.

    Das derzeitige System will man trotzdem nicht weiterverwenden. Typische DOS-Software der späten 80er, frühen 90er Jahre mit den eingeschränkten Möglichkeiten dieser Zeit. Ich hab das hier zur Ansicht herbekommen, das will man wirklich heutzutage nicht mehr verwenden müssen.

    Daß das „Look & Feel” das gleiche sein muß, habe ich auch nicht behauptet. Aber die Funktionalität muß (mindestens) die gleiche sein. Wie gesagt, ich gehe mittlerweile davon aus, daß eine Webanwendung im Intranet da die beste Lösung ist, dann gibt es keine (bzw. kaum eine) Abhängigkeit von einem bestimmten Betriebssystem, und der Quellcode liegt auch gleich mit vor.

    @Zensurgegner: Danke, guter Hinweis. Ich kann selbst nicht an das Ausgangssystem heran, denn ich bin ja in Düsseldorf, während die betroffene Firma in Bayern sitzt. Ich wurde nur um Mithilfe gebeten und habe zu dem Zweck zur Ansicht das Ursprungsprogramm bekommen; hab den Tip aber weitergegeben.


  7. Zensurgegner quakte:

    @Programmierer: Die 100 Stunden gehen alleine schon für die Analyse der bisherigen Funktionalität drauf. Denn die werden sicherlich zusätzlich zum normalen Angebot/Auftrag/Lieferschein/Rechnung Ablauf einige Firmen- und Branchenspezifische Dinge implementiert haben. Sonst hätten sie damals schon ein Standardpaket kaufen können.

    Einem Kunden die gewünschte/benötigte Funktionalität aus der Nase zu ziehen ist eine sehr undankbare Aufgabe. Du denkst du hast alles, schreibst das Pflichtenheft, programmierst los und irgendwann heisst es: Jaa, aber in dem Fall muss aber das und das passieren. Wieso haben Sie das nicht vorher gesagt? Der Fall kommt so selten vor, da haben wir gar nicht mehr dran gedacht. Und so was passiert in so einem Projekt nicht nur einmal.


  8. Lord_Pinhead quakte:

    Oha, das hab ich das letzte mal 2005 machen können 😀
    Ähnliche Ausgangslage: Altes DOS ERP/WAWI System in Cobol geschrieben, aber mit einzelnen Dateien als „Datenbank“, also tausend von .txt Dateien wollten eingelesen und in eine Datenbank portiert werden.

    Ok, wie geht man da am besten ran: Du hast es schon gesagt, ab ins Web damit.
    Pflichtenheft dürfte klar sein: Datenübernahme, Features, ggfl. gleich Erweiterungen und Verbesserungen einplanen.

    Ich würde ein MVC Framework hernehmen, sprache hierbei egal, ich mach CakePHP mit Scriptsprache PHP auf einem Apache irgendwo im Firmennetz in einer VM zusammen mit einer MySQL Datenbank.
    Zuerst einmal die DBASE Datenbank dumpen, dafür gibt es sicherlich noch ein paar Clients von Borland mit dennen ich die Datenbank und deren Aufbau anzeigen lassen oder ggfl. auch in eine CSV Datei dumpen könnte. Dann kann man entweder Datenbankverbesserungen durchführen oder einfach 1:1 importieren, den CakePHP Bäcker drüberlaufen lassen der meine Modelle, Controller und Views erstellt, die Usertabelle erstellt und Benutzer angelegt, ein Template gebaut und gut ist die Sache.
    Wenn man eben gleich dabei ist, kann man ein paar Userwünsche mit einbringen, dass muss man beim Datenimport nur bedenken.

    Nebenbei bemerkt gibt es sogar eine Anbindung für PHP an DBASE -> http://www.php.net/manual/de/book.dbase.php
    Dann einfach die Datenbank öffnen und einen dbase_get_header_info drauf losgelassen und schon hat man seine benötigten Infos.
    Unter Linux kannst du sogar mit dem Tool file das ganze prüfen welche Version es ist, also file mydb.dbf

    Wenn die Firma allerdings gleich einen „richtigen“ Client will, wäre eine RCPortal Anwendung mit SOAP Schnittstelle (Apache Axis) am Server eine Idee, spart viel Zeit 🙂


  9. frosch quakte:

    @Zensurgegner: Nö, das ist eigentlich alles 08/15-Kram und überhaupt nichts Branchenspezifisches dabei. Eher vermute ich, daß der Kunde neue Funktionen mit drinhaben will. Möglicherweise hat der vorherige Programmierer denen das halt aufgeschwätzt, weil man sich kannte usw., und da sie dort in der Firma nach dem, was ich bislang gehört habe, keine Ahnung vom Thema haben, haben sie sich halt drauf verlassen, was der „EDV-Profi” erzählt hat. Das Pflichtenheft aus dem, was da ist, schreib ich Dir in weniger als einem Tag zusammen, auch komplett ohne Doku.

    Beratungsbedarf dürfte natürlich trotzdem da sein, sonst kommt am Ende wieder ein 1990er-Programm bei raus 😉


  10. Frank quakte:

    Schau mal hier, ob Du was findest, daß da weiterhelfen könnte.
    http://freedos.org/software/
    FRANK


  11. Mahnny quakte:

    Bei mir geht der Link nur mit www:
    http://www.freedos.org/software/


  12. frosch quakte:

    @Frank @Mahnny: Kann ich mir wohl sparen. Der Tip von Zensurgegner mit der Umgebungsvariable war schon gut, aber es war wohl eine zu niedrige Anzahl von Filehandlern. Es wurden wohl für das System zu viele Dateien geöffnet. Der Fehler würde also unter jedem DOS passieren. Und zum Rest schreib ich jetzt wohl doch mal ein Update 🙂

    BTW, Freedos müßte das DOS in der dosbox sein, wenn ich das richtig mitbekommen habe.


  13. Frank quakte:

    Hallo Frosch,
    Freedos ist ein Clon, von MS-Dos. Das kannst Du ganz normal installieren, als Betriebssystem. Die Entwickler da, haben dafür massig freie Software geschrieben, die gröstenteils, auch unter MS-Dos läuft. Keine Dos-Box. Das Grundgerüst ist aber die Dosbox, bei wine, für Linux.
    Gruß FRANK


  14. Frank quakte:

    gröstenteil muß natürlich größtenteils lauten. Ein bischen Ehrgeiz, muß schon sein.
    Gruß FRANK


  15. Frank quakte:

    Hallo Frosch,
    mich plagt noch mal die Neugier.
    Also autoexec.bat und config.sys angepasst und gut war. Oder?
    Gruß FRANK


  16. frosch quakte:

    @Frank: Ich habe noch keine Rückmeldung diesbezüglich erhalten. Genaugenommen hab ich seit Tagen gar nichts mehr von der Sache gehört, zumindest nicht von dem Kontaktmenschen, der mich ursprünglich deswegen angerufen hatte. Ich tippe mal drauf, daß der noch anderweitig zu tun hat.


Kommentieren

Bitte beachte die Kommentarregeln!

XHTML: Du kannst diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>