Projekt

APX Portierung

Konzept zur Portierung vorhandener Software von Windows auf Linux und anschließende Umsetzung

Beratung, Softwareentwicklung
Leistung

Metallindustrie
Branche

Keyfacts

Herausforderung

Modernisierung und Portierung eines komplexen Codegenerators zur Steuerung von Walzwerken, lauffähig auf allen Plattformen (verschiedene Versionen von Windows und Linux).

Lösung

  • prototypische Umsetzung der Portierungen, um mögliche Problemstellungen im Vorfeld zu identifizieren
  • Machbarkeitsanalyse und Umsetzungskonzept

  • anschließende Durchführung der Portierung mit Anpassung des Codes an modernes C++

  • Wissenstransfer

Technologie

cmake, C++, GCC

Die Ausgangslage

Bei diesem Projekt entstand zunächst ein Konzept als Entscheidungsgrundlage, ob und wie eine Portierung einer vorhandenen Softwarelösung zur Steuerung von Walzwerken von Windows auf Linux umgesetzt werden kann. Im zweiten Schritt wurde das Konzept mit allen angebotenen Umfängen umgesetzt.

Eine der größten Herausforderungen war die Portierung eines vorhandenen, komplexen Codegenerator. Dieser musste für modernes C++ angepasst werden und auf allen Plattformen, verschiedene Versionen von Windows und Linux, lauffähig sein. Die Umsetzung und insbesondere der Test dieser Komponente gestaltete sich aufgrund der großen Komplexität schwierig.

Die Lösung

Vor der eigentlichen Umsetzung wurden in enger Zusammenarbeit mit dem Kunden ein Konzept und eine prototypische Umsetzung der Portierungen durchgeführt, um die grundsätzliche Machbarkeit zu prüfen und um etwaige Hürden zu enttarnen.

Die Software besteht aus mehreren Schichten, die wiederum in einzelne Bibliotheken und Anwendungen aufgeteilt sind. Diese einzelnen Schichten, ihren Umfang und Bedeutung zu kennen, war für die Bewertung des Portierungsaufwandes von entscheidender Wichtigkeit. Daher wurden Teile aus allen Schichten in der Konzeptphase prototypisch portiert.

Bei der vollumfänglichen Umsetzung sollte nach Möglichkeit nur der Code portiert werden, der von den Schichten tatsächlich verwendet wird. So wird unnötiger Aufwand vermieden und nur die Teile des Codes angepasst, welche wirklich verwendet werden. Mit dieser Strategie sollte auch die Qualitätssicherung für die durchzuführenden Änderungen einfacher werden.

Aufgrund der Test-Portierung und unserer Analyse, bei der sich zeigte, dass die Handschriften der kundenseitigen Entwickler mal mehr, mal weniger stark zeigten, konnten wir zudem weitere Handlungsempfehlungen aussprechen:

  • Einführung neuer Software-Qualitätsstandards
  • Einführung von Code-Reviews
  • Einführung von statischer Codeanalyse
  • Integration von automatisierten Tests
  • Updaten der Boost Bibliothek
  • Nutzung von Compiler-Flags zur Qualitätssicherung
  • Generelle Empfehlungen für modernes C++

Mit dem Abschluss dieser ersten Phase wurde dem Kunden ein technisches Konzept präsentiert, welches auch als Basis eines Zeit- und Ressourcenplan für die Umsetzung diente.

Auf dieser Grundlage entschied sich unser Kunde für eine Umsetzung. Die Umsetzung konnte im eng gesteckten Zeitrahmen mit allen angebotenen Umfängen zur Zufriedenheit des Kunden umgesetzt werden. Während dieses Projektes erfolgte zudem ein Wissenstransfer an den Kunden für die angewandten Techniken wie cmake und C++ 17.

Sie wollen mit Ihrem Softwareprojekt durchstarten?

Oder wollen Sie mehr über uns erfahren? Sprechen Sie uns einfach an, wir beantworten Ihre Fragen gerne.

Jetzt Kontakt aufnehmen

Weitere Projekte