Wie eine Konzeptdatenbank die Arbeit eines Entwicklers erleichtern kann

Von Andreas Bihler , 09.05.2019, 11:45
Konzeptdatenbank

Wiederverwendbarkeit von Softwarearchitekturkonzepten

Entwurf durch Routine statt Entwurf durch Innovation

Bei der Neuentwicklung und dem Entwurf von Softwarelösungen treten bestimmte Aspekte (crosscutting aspects) immer wieder auf, häufig sogar in ähnlicher Art und Weise. Beispiele hierfür sind Logging, das Persistieren von Daten oder die Ausnahme- und Fehlerbehandlung. Das Entwicklungs-Team muss sich zu Beginn eines Individual-Softwareprojekts fragen, welche dieser Aspekte zu betrachten sind und was noch viel wichtiger ist, wie diese umgesetzt werden sollen. Gerade bei noch wenig erfahrenen Entwicklern birgt eine unbedachte Auswahl der Umsetzungsstrategie eines Aspekts hohe Risiken. Nicht nur der Realisierungsaufwand kann deutlich höher als notwendig sein. Eine falsche initiale Entscheidung kann sich negativ auf die gesamte Softwarearchitektur auswirken und eine spätere Wartung und Weiterentwicklung erschweren.

Das zugrundeliegende Problem ist der Wunsch von Entwicklern nach neuen Innovationen und Lösungen zu ähnlichen und wiederkehrenden Anforderungen desselben Aspekts. Dies führt jeweils zu neuen Lösungen für gleichartige Ausgangssituationen, was mit den oben beschriebenen Problemen einhergeht. Der Ansatz von Gernot Starke zur Förderung von „Entwurf durch Routine“ statt „Entwurf durch Innovation“ adressiert diese Problematik.[1] Dabei wird bei ähnlichen Anforderungen zu besagten wiederkehrenden Aspekten auf bewährte Lösungen zurückgegriffen, die mit geringem Aufwand an das aktuelle Projekt adaptiert werden. Dies ermöglicht eine schnellere Umsetzung auf Basis erprobter Konzepte.

 

Lösungskonzepte als Beschreibung für wiederkehrende Aspekte

Ein Lösungskonzept, im Weiteren nur noch Konzept genannt, besteht aus den nachfolgend aufgezählten Bestandteilen.

  • Die Qualitätsanforderungen, die die Umsetzung des Konzepts notwendig machen oder beeinflussen
  • Der betroffene wiederkehrende Aspekt
  • Eine Beschreibung der Umsetzung inklusive Einsatzanleitungen für die korrekte Nutzung der Lösung
  • Verwendete Technologien
  • Codeausschnitte und andere Anhänge wie UML-Diagramme
  • Verweise auf weiterführende Informationen
  • Meta-Daten zum Ersteller bzw. Änderer des Konzepts, um einen persönlichen Austausch zu ermöglichen

 

Abbildung 1: Modell für ein Lösungskonzept und dessen Bestandteile
Abbildung 1: Modell für ein Lösungskonzept und dessen Bestandteile

 

 

Speicherung der Konzepte in einer Konzeptdatenbank

Um die Konzepte und deren Bestandteile wiederverwenden zu können, müssen sie in einem System gespeichert werden, das deren Verwaltung und Suche ermöglicht. Bei der Frage, wie ein solches System technologisch und grafisch auszusehen hat, gibt es verschiedene Alternativen, von denen allerdings keine als Patentlösung proklamiert werden kann.

 

Abbildung 2: Screenshot aus dem Prototyp der Konzeptdatenbank
Abbildung 2: Screenshot aus dem Prototyp der Konzeptdatenbank

 

Um die Einsatzmöglichkeiten einer solchen Konzeptdatenbank in Aktion zu sehen, wurde eine Webanwendung auf Basis von Spring Boot als Prototyp implementiert. Mit diesem kann die grundsätzliche Funktionalität demonstriert sowie das Verständnis für Konzepte und deren Bestandteile geschärft werden. Neben den grundlegenden Funktionsbausteinen Anlegen, Ändern und Speichern, spielt vor allem die Suche nach einem passenden Konzept eine zentrale Rolle. Ausgehend von den Qualitätsanforderungen, dem betroffenen Aspekt und/oder anderen Rahmenbedingungen, wie Technologie-Vorgaben, wird dem Nutzer eine Liste von möglichen Lösungskonzepten präsentiert. Die Wahl für eines davon kann dann aufgrund der darin enthaltenen Beschreibung oder auch nach direkter Kommunikation mit den Erfassern der Konzepte, die in den Meta-Daten gespeichert sind, erfolgen.

Ist die Wahl auf eine der in der Konzeptdatenbank enthaltenen Lösung gefallen, ermöglicht die Einsatzanleitung, kombiniert mit Codeausschnitten, Bildern und Verweisen, eine schnelle Umsetzung einer erprobten Umsetzungsvariante. Ein Export der Konzeptbeschreibung vereinfacht zudem die notwendigen Dokumentationstätigkeiten im Rahmen einer Architekturdokumentation wie arc42, in dem solchen Konzepten ein eigenes Kapitel gewidmet wird.[2]

 

Nutzerakzeptanz als Schlüssel zum Erfolg

Selbstverständlich ist die Umsetzung mit einer eigenen Webanwendung nicht für jeden die optimale Lösung. Wichtig ist vielmehr, dass die Wahl auf ein System oder Produkt fällt, das eine breite Akzeptanz der Nutzer erfährt. So können durchaus auch bereits in einem Unternehmen oder einer Organisation etablierte Wissensdatenbanken wie Wikis genutzt werden, sofern die Regeln und Verantwortlichkeiten für das Speichern von Architekturkonzepten kommuniziert und anerkannt sind. Die Qualität einer Konzeptdatenbank hängt stark davon ab, inwiefern sie bei Entwicklern und Architekten im Softwareentwicklungsprozess eingebunden ist und dort als Wissensquelle für Konzepte, aber auch als Ablage für neue oder angepasste Konzepte dient. Nur so werden die Elemente in der Wissensdatenbank aktuell gehalten und gleichzeitig um neue Lösungen ergänzt.

Die Idee einer solchen Konzeptdatenbank bietet über die „Standardfunktionalitäten“ hinaus noch zahlreiche denkbare Erweiterungsmöglichkeiten. Von einer Versionierung, über Kommentar und „Like“-Funktionen, bis hin zur Umsetzung verschiedener Schnittstellen zur Anbindung weiterer Systeme ist vieles denkbar. Der Kerngedanke und die zugrundeliegende Motivation aber sollten stets dieselben sein: Eine Erleichterung des Entwurfsprozesses bei gleichzeitiger Erhöhung der Software-Qualität durch die Wiederverwendung etablierter Lösungskonzepte.

 

[1] Starke, Gernot (2014), Effektive Software-Architekturen. Ein Praktischer Leitfaden, Seite 188f.; 6. Auflage, Carl Hanser Verlag, München.

[2] https://arc42.de/template [06.03.2019], Kapitel 8: Konzepte

Neuen Kommentar schreiben

Ich habe die Datenschutzhinweise zur Kenntnis genommen. Ich stimme zu, dass meine Angaben und Daten zur Beantwortung meiner Anfrage elektronisch erhoben und gespeichert werden.