Qualität in Softwarearchitektur erreichen


Hier finden Sie Praktiken, Taktiken und Strategien, um Qualität von Grund auf zu konstruieren.

Sicherheit

Sicherlich eines der schwierigsten Qualitätsziele. Ich rate Ihnen, im Falle hoher Sicherheitsanforderungen einen Experten für das Thema zu befragen…
* Schreiben Sie keine sicherheitsrelevanten Algorithmen selbst.
* Klären Sie die potenziellen Angriffsvektoren, gegen die Sie Ihr System wappnen müssen.
* Differenzieren Sie dabei interne und externe Angriffe.

Einige Literaturhinweise:
* M.Schumacher et. al: Security Patterns: Integrating Security and Systems Engineering (Wiley Software Patterns Series, 2006)
* Jon Erickson: Hacking: The Art of Exploitation, 2nd Edition, 2008
* W. Erteil: Angewandte Kryptogramme, Hanser-Verlag 2007.
* Bruce Schneder: Der Security-Guru hat eine Menge Bücher veröffentlicht, unter anderem "Secrets and Lies". Lesen Sie alles, was Herr Schneier veröffentlicht :-)

Fehlertoleranz und Robustheit

Siehe Robert Hanmer: Patterns for Fault Tolerant Software (Wiley Software Patterns Series).
Performance und Effizienz

Hierbei geht es meistens um die Verwaltung der in Ihrem System vorhandenen Ressourcen (etwa Prozessoren, Speicher, Netze, Bus-Systeme, Prozesse, Threads, Sockets)

Einen Überblick darüber finden Sie in Kirche/Jain: Pattern-Oriented Software Architecture, Vol.3 : Patterns for Resource Management, Addison-Wesley 2004.

Die Taktiken umfassen beispielsweise die Einführung von Redundanzen (etwa: Caching, Indexing), die Verbesserung von Ressourcenbeschaffung und -verwaltung sowie die Verteilung auf mehr oder andere Hardware. Ebenfalls gehört hierzu der alte Ratschlag "throw hardware at the problem" (Versuche zuerst, das Problem mit Hardware zu lösen).
Skalierbarkeit

A broad range of tactics and strategies support you in achieving scalability.
* split your work in concurrent chunks which can be distributed across machines.

Warum hier so wenig steht? So viel fehlt? Ihre wichtigste Frage nicht beantwortet wird?

Ich steht am Anfang - und sammle gerade passende Taktiken und Praktiken und verspreche, hier baldmöglichst nachzubessern.

Welche Q-Merkmale sind Ihnen besonders wichtig? Zu welchen Gebieten wünschen Sie sich Tipps und Taktiken? Schicken Sie mir eine EMail dazu...
Ergonomie und Benutzerfreundlichkeit

Oh jeh, Schönheit ist Geschmackssache. Dennoch gibt es eine Menge Ratschläge und Muster, die Ihnen beim Oberflächen und Interaktionsdesign Ihrer Systeme helfen können.

Siehe Jennifer Tidwell: Designing Interfaces von O'Reilly, oder die grundlegenden Prinzipien des Interaktionsdesigns von Constantine-Lockwood.
Verfügbarkeit

* Fehler erkennen
* Fehler beheben
* Nach Fehlern gültige Systemzustände wieder herstellen
* Fehlern vorbeugen