Effiziente Software Begutachtung im Detail

Die 3 Kernbereiche Architektur, Schnittstellen und Fremdprodukte werden detaillierter untersucht. Als Grundlage dient der Überblick.

Dieser Teil ist Technik lastig und setzt Programmierkenntnisse voraus.

Geschäftslogik

Die Geschäftslogik muss in sich gekapselt sein. Dies bedeutet, dass sie nicht weiss, wie die Daten gespeichert werden. Sie weiss nur, dass es eine interne Schnittstelle zur Speicherung gibt. Wie die konkrete Umsetzung aussieht (File, Datenbank), darf die Geschäftslogik nicht wissen. Somit kann auf einfache Weise eine Oracle-Datenbank durch eine mySQL-Datenbank ersetzt werden.

Die Geschäftslogik darf auch nicht wissen, ob sie von einer Webanwendung oder einer Mobile App verwendet wird. Oder ob es beides miteinander gibt. Ist diese Trennung garantiert, kann die Benutzeroberfläche ausgetauscht oder es können neue Benutzeroberflächen hinzugefügt werden.

Diese Abhängigkeiten können einfach geprüft werden: Gibt es einen technischen Verweis (Import) zur Datenhaltung oder Benutzeroberfläche? Falls ja, gibt es ein Problem.

Business Logik

Datenhaltung

Die Datenhaltung kümmert sich nur um das Speichern, Suchen und Lesen von Daten. Je nach Anwendung können folgende Punkte wichtig sein:

  • Schnelle Suche von Daten in grossen Tabellen oder in mehreren Tabellen (sog. Joins)
  • Schnelle Speicherung von mehreren tausend Datensätzen auf einmal (sog. Bulk Insert)

Es ist möglich, dass die Geschäftslogik (teilweise) in der Datenbank in Form von Stored Procedures vorhanden ist. Aus Sicht der Wiederverwendbarkeit und des einfacheren Verständnisses bevorzugt der Autor eine Lösung im Programmcode (Java, C#).

Benutzeroberfläche

Jede Art der Benutzeroberfläche hat ihre Eigenheiten. Gemeinsam ist, dass es für jede Art Fremdprodukte gibt, welche die Entwicklungszeit verkürzen und die Qualität steigern. Wenn es sich nicht um eine ganz einfache Benutzeroberfläche handelt, sollte ein Fremdprodukt eingesetzt werden. Sonst wird das Rad nochmals erfunden.

Je nach eingesetztem Fremdprodukt drängt sich eine gewisse technische Struktur auf. Es ist wichtig, diese Struktur festzulegen und einzuhalten. Bei einer Webanwendung mit Angular ist eine Unterteilung in Module, Komponenten, Modelle und Services zwingend. Sonst ist der Code schwer verständlich und kaum erweiterbar.

Schnittstelle Programm

Schnittstellen

Folgende Punkte sind zu beachten:

  • Versionierung: Im Lauf der Zeit gibt es Erweiterungen der Schnittstelle. Jede Erweiterung kann zu Inkompatibilitäten bei den Benutzern (meist andere Programme) führen. Ändert die Datenstruktur, weil es z.B. zusätzliche Daten gibt oder bestehende Daten wegfallen, hat das Auswirkungen bei den Benutzern. Deshalb ist eine Versionierung der Schnittstelle wichtig: Mehrere Versionen werden gleichzeitig unterstützt. So entscheiden die Benutzer selber, wann sie die neue Version verwenden. Ohne Versionierung müssen alle Benutzer gleichzeitig wechseln.
  • Robustheit / Fehlertoleranz: Beim Bezug von Daten muss damit gerechnet werden, dass der Inhalt stark variieren kann. Manchmal gibt es Fehler und es werden nicht alle Daten geliefert. Wichtig ist, dass versucht wird, möglichst alle Daten heraus zu bekommen. Fehler sollen möglichst genau dem Benutzer gemeldet und in ein Logfile geschrieben werden.
  • Kapselung: Bei Problemen mit der Schnittstelle darf nicht die gesamte Anwendung betroffen sein (und nicht mehr funktionieren). Die Datenstruktur der Schnittstelle darf z.B. in der Geschäftslogik nicht bekannt sein. Sonst führen Anpassungen in der Datenstruktur auch zu Anpassungen in der Geschäftslogik. Daten und Methoden der Schnittstelle müssen gekapselt sein.

Komplexe Fremdprodukte

Die einfachen Fremdprodukte werden nicht analysiert, weil diese zu wenig wichtig sind.

Wird ein Fremdprodukt an vielen Stellen in der Anwendung eingesetzt, macht eine Kapselung Sinn. Das kann z.B. ein eigenes Modul fürs Lesen und Erstellen von Excel-Files sein. Innerhalb dieses Moduls wird das Fremdprodukt eingesetzt. Anpassungen (z.B. neue Version) beschränken sich nur auf das eine Modul. Das Fremdprodukt kann auf diese Weise einfacher ausgewechselt werden.

Zusammenfassung

Je nach Komplexität der Anwendung dauert die detaillierte Analyse 1-3 Wochen. Das Resultat sind konkrete Aussagen, was gut ist und was verbessert werden soll. Die Verbesserungsvorschläge beinhalten eine grobe Aufwandschätzung. Das ist für die Planung und das weitere Vorgehen wichtig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.