Dienstleistung systemnahe Softwareentwicklung
Für ORCUS liegen die wirklich spannenden Programmierthemen im systemnahen Umfeld.
Die Analyse bestehender Infrastruktur und das Erarbeiten von Architektur und Design-Ansätzen sorgen für einen nachvollziehbaren Prozess.
Referenzimplementierungen werden typischer Weise im Rahmen von Last- und Performancetests validiert.
Wir bieten geradlinige Lösungen für Ihre Systemdienste und Basisfunktionalität.
Eine adäquate Implementierung, Test und Dokumentation sind dabei für uns selbstverständlich.
Softwareentwicklung bedeutet für ORCUS auch immer unseren Beitrag zu einem geordneten Entwicklungsprozess.
Neben der Implementierung unterstützen wir Sie bei
- Analyse
- Migration
- Middleware
- Services
- Libraries
- OS-Extensions
Finite-state machines
Im systemnahen Bereich herrscht Parallelität und nichts ist wirklich gewiss.
Führen Laufzeitfehler zu einem undefiniertem Verhalten von systemrelevanter Software, ergeben sich latent weitreichende Auswirkungen.
Eine Anwendung muss damit den Fehlerfall zusammen mit Maßnahmen zum Wiederanlaufen genauso wie die Umsetzung fachlicher Anforderungen implementieren.
Analog muss eine Anwendung robust gegenüber einer fehlerhaften Nutzung sein und damit auch Kenntnis über aktuell zulässige Operationen und Zugriffe besitzen.
Durch die Entwicklung der letzten Jahre bestätigt sich auch die Notwendigkeit Anwendungen gegenüber unberechtigten Zugriffen zu schützen. Im Idealfall werden nicht nur Kontextinformationen protokolliert und der Zugriff verhindert, sondern auch noch ein optionales Monitoring getriggert.
Mit einem konventionellen Ansatz bei der Realisierung muss man einen erheblichen Implementierungs- und Pflege-Aufwand betreiben. Fachlichen Teile der Anwendung sind typischerweise zwischen dem rein "organisatorischen" Code für die Behandlung von Ausnahmesituationen eingebettet und schwer zu warten. Die fachliche Logik der Anwendung kann ggf. selbst nicht mehr einfach nachvollzogen werden und wird latent fehleranfällig.
Allen Teilanforderungen ist gemeinsam, dass sie mögliche Teilzustände des Systems darstellen und sich damit gut durch hierarchischen finite-state machines abbilden lassen.
Für die Zustandssteuerung können wir Ihnen ein zu Ihrer Softwarearchitektur passendes Framework mit Komponenten-Templates bereitstellen. Die Funktionalität zur Definition von Zugriffsrechten, Integration von nachgelagerten Diensten - wie Logging oder Monitoring-Trigger - wird in der Frameworkbasis bereitgestellt.
Ursachen (fr)agiler Softwareentwicklung
Abseits aller Kreativität muss Software eine gestellte technische Aufgabe lösen.
Funktionalität wird durch rein manuelles Testen und Debuggen soweit überarbeitet, dass die geforderten Aufgaben erfüllt werden.
Der definierte Umgang mit Fehlersituationen - deren Detektion, ggf. Protokollieren oder das Auslösen von Monitoring-Events - und Maßnahmen zum Wiederanlaufen werden im günstigsten Fall im Rahmen der Entwicklung für auftretende Fälle berücksichtigt.
Reviews oder automatisierte White- oder Blackbox-Tests über die vollständige Funktionalität entfallen wegen kurzfristiger Realisierungsziele.
Mit steigender Komplexität der Implementierung wird sich zunehmend auf neue Funktionalität konzentriert. Oft ist es auch mit manuellen Mitteln einfach nicht mehr möglich, alle Testklassen und -fälle einer Anwendung zu testen.
Es liegt in der Natur systemnaher Software, dass diese - z.b. im Rahmen von Updates - von Änderungen an benutzten Funktionalitäten und Schnittstellen betroffen ist. Um die Stabilität der Software nach externen Änderungen zu gewährleisten sind erneute Freigabetests obligatorisch.
Liegen keine auswertbaren Test-Reports vor, kann das Verhalten der Software nur sehr aufwendig manuell verifiziert werden. Im Ergebnis wird man sich auf einen Minimal-Test der wichtigsten Funktionalität beschränken - und 'hoffen' ...
Stabile Softwareentwicklung
Automatisierte Tests mit einem nachfolgenden Soll-Ist-Vergleich sind ein wichtiges Instrument der Qualitätssicherung.
Werden in Testfällen Fehlersituationen provoziert, ergibt sich zwangsläufig eine Steigerung der Codequalität.
Mittelfristig werden Entwickler durch den Wegfall vermeidbarer Debug-Sitzungen zur Analyse der vollständigen Funktionalität entlastet.
Änderungen an der Systemumgebung oder die Nutzung auf einer anderen Plattform können unmittelbar validiert werden.
Eine Anwendung, die auch mit Fehlerzuständen umgehen kann, steigert damit auch die Verfügbarkeit und Stabilität abhängiger Dienste. Potentielle Fehler lassen sich bereits im Vorfeld finden und beseitigen. Der Wartungsaufwand zur Fehlerbereinigung im installierten System sinkt. Zusätzlich kann Kontextinformation im Fehlerfall gewonnen werden, die sonst nicht oder nur eingeschränkt verfügbar ist.
Nutzen Sie unsere Werkzeuge und Vorgehensmodelle und sparen Sie wirklich Zeit bei solidem Output. So können mit unserer Testumgebung selbst die Klassen-Interna von ActiveX- und COM-Komponenten oder auch Scripte automatisiert auf Report-Basis ausgewertet werden. Der Test wird integraler Bestandteil Ihres Make- und Deployment-Prozesses!
Unsere Lösungen sind offen - wir auch.