Reise durch Toolistan

Kategorien von Werkzeugen

Tabelle 1 zeigt, welche Kategorien von Werkzeugen wir für wesentlich halten. Sie finden jeweils einige unvollständige Beispiele für Entscheidungskriterien.

Tabelle 1: Werkzeugkategorien

Modellierungswerkzeuge Unterstützung bei Entwurf und Kommunikation von Softwarearchitekturen, z. B. mit UML oder SYSML. Ggf. Ausgangspunkt für Codegenerierung.

Beispiele für Entscheidungskriterien:

Mehrbenutzerfähigkeit, Modellvalidierung, Unterstützung von Code- und Reportgeneratoren, Export/Import von Modellen mit anderen Werkzeugen, Unterstützung von Reverse Engineering.

Werkzeuge zur statischen Codeanalyse Bewertung von Quellcode bezüglich Qualitätseigenschaften (etwa: strukturelle Komplexität).

Analyse, ob der Quellcode den Vorgaben der Architektur hinsichtlich statischer Struktur und Abhängigkeiten entspricht.

Beispiele für Entscheidungskriterien: Automatisierbarkeit, Aufbereitung und Visualisierung der Ergebnisse, Flexibilität hinsichtlich der Analysekriterien und Metriken.

Werkzeuge zur dynamischen Analyse (Profiler, Simulatoren) Untersuchung bestehender Softwaresysteme bezüglich Laufzeiteigenschaften, Performance, Ressourcenbedarf.
Beispiele für Entscheidungskriterien: Keine Verfälschung der Messergebnisse durch das Werkzeug, Aufbereitung und Visualisierung der Ergebnisse, Beschränkung auf einzelne Systemteile, Messung in verteilten, heterogenen Umgebungen.
Generierungswerkzeuge Vorgabe und Erzeugung von Rahmen oder Gerüsten für die Implementierung, Übereinstimmung von Architektur- und Implementierungsmodellen sicherstellen, automatisierte Erzeugung von Artefakten niedriger Abstraktionsebene aus textuellen oder grafischen Modellen.

Beispiele für Entscheidungskriterien: Konfigurierbarkeit der Codegenerierung, Vorgabe von Metamodellen und Generierungsschablonen, Unabhängigkeit von der Zielplattform, Trennung zwischen generierten und manuell erstelltem Code.

Werkzeuge zum Anforderungsmanagement Unterstützung bei der Analyse, Darstellung sowie Management von Anforderungen.

Beispiele für Entscheidungskriterien: Mehrbenutzerfähigkeit, Austauschbarkeit der Daten mit anderen Werkzeugen im Entwicklungsprozess, Traceability zwischen Anforderungen, Architektur und Code.

Dokumentationswerkzeuge Beschreibung und Kommunikation aller Aspekte der Architektur.

Beispiele für Entscheidungskriterien: Mehrbenutzerfähigkeit, Versionierbarkeit der Dokumente, automatisierte Generierung aktueller Dokumentation aus Architekturmodellen, zielgruppengerechte Wahl von Detaillierungsgrad und Umfang, Unterstützung von verteilten Reviews.

Build-Werkzeuge Unterstützung von Kompilierung, Paketierung, Deployment und Test, Überprüfung auf Einhaltung struktureller Vorgaben, Auslösung und Durchführung von Unit und ggfs. Integrationstests.

Beispiele für Entscheidungskriterien: Anpassbarkeit, Konfigurierbarkeit des Build, Integrierbarkeit unterschiedlicher Technologien, Unterstützung von Staging-Konzepten, Erweiterbarkeit, Auswert- und Verteilbarkeit der Ergebnisse. Siehe auch [1].

Werkzeuge für Konfigurations- und Versionsmanagement Versionierung sämtlicher Ergebnisse von Architektur und Entwicklung, Erstellung von Versionen, Revisionen und Konfigurationen, explizte Zuordnung einzelner Elemente zu einer Konfiguration, Rekonstruktion beliebiger Konfigurationen.

Versionsmanagementwerkzeuge sind wie Sicherheitsgurt, Airbag und Rückspiegel beim Autofahren: Ohne ist fahrlässig!

Beispiele für Entscheidungskriterien: Stabilität und Robustheit, Integration mit anderen Werkzeugen (Build-Management, Issue-/Bugtracker, Anforderungs- und Dokumentationswerkzeug etc), Verfügbarkeit von Clients für unterschiedliche Betriebssysteme, Einsatz in heterogenen Umgebungen, Unverfälschbarkeit der eingecheckten Artefakte, Sicherheit.

Programmiersprachen, Entwicklungsumgebung, Compiler, Debugger Sollte wie selbstverständlich zum soliden Fundament von Softwarearchitekten gehören. Überblick in [2].
Technische Frameworks für Infrastrukturaufgaben, wie Persistenz, Transaktionen, Logging, Sicherheit etc Hilft Ihnen bei der Festlegung technischer Konzepte, bei der Entscheidung für Technologien oder Technologie-Stacks.

Wichtige Basis für Wiederverwendung und Risikominderung, weil Sie nicht alles im Team selbst entwickeln müssen (siehe auch „Der Ignorant“). Lesetipp für Datenbanken: [3].

Kommentare

Schreibe einen Kommentar

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