Blogeinträge
share

prognostica und Softwareentwicklung

Neben der Entwicklung von Prototypen bieten wir auch eine voll funktionsfähige Enterprise-Lösung an, die regelmäßig auf den neuesten Stand gebracht wird. Wir zeigen Ihnen, wie ein modularer Aufbau, Code Reviews und Continuous Integration die langfristige Qualität unserer Software sicherstellen und die Wartung erleichtern können.

Liebe Besucher des ProgBlogs,

die prognostica bietet neben Beratungsleistungen und der Umsetzung von Lösungen für individuelle Problemstellungen auch standardisierte Softwaremodule an. In unserem Leistungsportfolio befindet sich daher die ganze Bandbreite von Prototypen- bis Enterprise-Entwicklungen. Doch was gibt es in der Softwareentwicklung eigentlich zu beachten und wie wird dies in unserem Hause umgesetzt?

Verschiedene Lösungsstadien der Softwareentwicklung

Zunächst einmal unterscheiden wir bei der prognostica zwischen Prototypen und Enterprise-Lösungen. Prototypen variieren je nach Anforderung in ihrer Ausbaustufe. Sie reichen von einem einfachen Mockup, über den voll funktionsfähigen Prototypen bis hin zur Produktionsreife. Jedes dieser Stadien unterscheidet sich in seinen Dimensionen hinsichtlich der Funktionalität, Dokumentation oder des Testens. Beispielsweise existiert beim Mockup lediglich ein Modell mit Bezug zu dem zu lösenden Problem. Dieses kann z. B. Software-Code oder nur eine Skizze sein. Es wird noch nicht das Problem gelöst, sondern lediglich eine Grundlage für die weitere Anforderungsaufnahme gelegt. Der produktionsreife Prototyp hingegen ist voll funktionsfähig und mit einer umfangreichen Liste von Fällen getestet. Zudem ist der Code für zukünftige Erweiterungen aufbereitet und dokumentiert.

Eine Enterprise-Entwicklung, wie es beispielsweise unser Lighthouse ist, steht im Vergleich zu den Prototypen für ein noch höheres Maß an Qualität und Nachhaltigkeit in der Softwareentwicklung. Neben der eigentlichen Funktionalität der entwickelten Lösung stehen diese Gütekriterien an erster Stelle.

Modularer Aufbau bringt Vorteile mit sich

Im Gegensatz zum Prototypen kann hier der Code modular getestet und wiederverwendet werden. Ein modularer Softwareaufbau bedeutet, dass die Implementierung in mehrere logische Blöcke eingeteilt wird. Mit diesem Standard können entscheidende Vorteile erzielt werden: Doppelter Quellcode wird vermieden und die mittel- und langfristige, effiziente Wartbarkeit der Anwendung sichergestellt. Zudem ist es durch die klar umrissenen Aufgaben der Module möglich, einzelne Bereiche gegebenenfalls auszutauschen, ohne dass andere Teile der Software ersetzt werden müssen.

Code Reviews und Konventionen räumen auf

Ein weiterer wichtiger Aspekt, um die Qualität unserer Programmcodes zu sichern, sind sogenannte Code Reviews. Hierbei wird der zuvor verfasste Code durch einen unabhängigen Kollegen oder mit Hilfe eines Tools überprüft. Bei uns setzen wir hauptsächlich auf erstere Variante, die zwar oft eine ganze Menge an Zeit einfordert, gleichzeitig aber mehrere Vorteile bietet: Einerseits werden so funktionale und stilistische Fehler im Code ausgemerzt, andererseits wird Wissen und Know-how über den aktuellen Stand der Lösung innerhalb der Firma geteilt. Dadurch können weitere Fehler vermieden und somit die Entwicklung nachhaltig verbessert werden. Während des Reviews orientiert sich der Gutachter an sogenannten Konventionen, die vor allem die Verständlichkeit des Codes und so auch die zukünftige Wartbarkeit garantieren sollen.

Code-Reviews sind ein wichtiges Werkzeug, denn die Fehlerquote von Quellcode, welcher durch mindestens einen weiteren Entwickler überprüft wurde, ist spürbar niedriger als wenn nur ein Entwickler daran arbeitet.

Beständigkeit durch Continuous Integration

Ein weiterer Gesichtspunkt der Qualitätssicherung ist die Continuous Integration. Dabei wird jeder Stand der Entwicklung vollautomatisiert kompiliert, umfangreich dokumentiert, getestet und paketiert. Die Funktionstests reichen hierbei von schlanken Unit Tests über umfangreiche Integration Tests bis hin zu Tests in unterschiedlichen Laufzeitumgebungen. Zur Einordnung: Eine Unit ist in unserem Lighthouse meistens eine einzelne Funktion oder Methode, bei einem Integration Test werden hingegen mehrere Units miteinander getestet. Zum Beispiel wird das ganze System mit einer Vielzahl an Beispielzeitreihen aufgerufen. Integrationsprobleme können so rechtzeitig erkannt und behoben werden. Die Funktion der Anwendung ist durch die Continuous Integration zu jeder Zeit zuverlässig sichergestellt und neue Anpassungen sind möglich ohne die bisherige Funktionalität zu beeinflussen. Darüber hinaus wird in diesem Prozess auch die Einhaltung der Konventionen in Form von sogenannten Style Checks automatisiert überprüft.

Continuous Integration Pipeline

Continuous Integration Pipeline mit Style Checks, Unit und Integration Tests und Continuous Delivery

Bei der Continuous Delivery gehen wir sogar noch einen Schritt weiter und sorgen dafür, dass die Software nach der Integration automatisiert auf die Entwicklungs-, Test-, Integrations- und Produktivumgebung geladen wird. Die Auslieferung von Patches und Updates kann auf diese Weise erheblich beschleunigt werden.

Anfänglicher Aufwand trägt später Früchte

Ohne Frage nehmen die Tests und Code Reviews in der Durchführung viel Zeit und Aufwand in Anspruch. Letztendlich führen diese Maßnahmen jedoch zu einer höheren Qualität der Software, die sich in frühzeitiger Fehlererkennung, niedrigen Fehlerraten im Betrieb und kleineren Aufwänden bei Anpassungen zeigt. Auch bei der Softwareentwicklung ist es wie so oft im Leben: Qualität und Präzision zahlen sich auf lange Sicht immer aus.



Haben Sie Fragen oder Anregungen zum heutigen Blogbeitrag? Dann hinterlassen Sie uns einfach einen Kommentar auf Twitter, Xing oder LinkedIn oder schreiben Sie uns eine E-Mail an business.development@prognostica.de.

Lernen Sie mehr über unsere state-of-the-art Enterprise-Software für Zeitreihenvorhersagen:

Vorheriger Eintrag: Trainieren, Testen, über Kreuz

Um über weitere Beiträge, bevorstehende Events und neue Produkte der prognostica informiert zu bleiben, melden Sie sich für unseren Newsletter an:

Jetzt für den Newsletter anmelden

Kontakt

prognostica GmbH
Berliner Platz 6
D-97080 Würzburg
P: +49 931 497 386 0

Ihr Partner für Predictive Analytics und Data Science.

Weitere Angaben, u. a. zum Datenschutz, finden Sie in unserem Impressum und unserer Datenschutzerklärung.

Folgen Sie uns!

© 2019 prognostica GmbH