← Alle Beiträge

Open-Needs-DB wird gefördert

· 6 Min. Lesezeit

  • open-needs
  • requirements
  • sphinx-needs

Dieser Beitrag erschien ursprünglich auf Englisch. Zum Original

Der Prototype Fund unterstützt und finanziert die Open-Needs-DB von März bis September 2022.

Das Bundesministerium für Bildung und Forschung hat das Programm ins Leben gerufen, um Entwicklerinnen und Entwickler in Deutschland beim Bau digitaler Prototypen zu fördern – in den Bereichen Civic Tech, Data Literacy, IT-Sicherheit und Software-Infrastruktur.

Prototype Fund Federal Ministry of Education and Research

Die Open-Needs-DB wird eine REST-basierte Datenbank für Anforderungen und ähnliche Objekte. Sie bringt keine einzelne Oberfläche mit, sondern soll Oberflächen in verschiedenen Tools und Bereichen ermöglichen. Geplant sind:

  • Web-App: eine einfache React-Anwendung, um Elemente der Datenbank anzulegen und anzuzeigen.
  • Sphinx-Needs: Needs aus einer Open-Needs-DB lesen oder in ein Sphinx-Projekt importieren.
  • VS-Code-Plugin: beim Schreiben von Needs-basierten Inhalten in Sphinx und anderen Dokumentationsprojekten Informationen zu vorhandenen Needs bekommen.

Ziel der Open-Needs-DB ist es, Anforderungen und ähnliche Objekte zwischen Projekten zu teilen und Vorschläge zu machen – auf Basis eines Vergleichs zwischen einem Zielprojekt und verwandten Projekten.

Die Entwicklung startet vielleicht schon etwas vor März 2022, vor allem, weil die Community von Sphinx-Needs dringend einen zentralen Dienst braucht, um Anforderungen in größeren Projekten zu speichern und zu pflegen.

Geplant sind diese Technologien:

Unsere Bewerbung

Falls du wissen willst, wie unsere Bewerbung aussah – hier ist sie.

Projekttitel: Open Needs DB

Beschreibe dein Projekt kurz.

Die „Open Needs DB“ ist eine Datenbank für Anforderungen, Spezifikationen und ähnliche Objekte.

Sie soll bei der sauberen, umfassenden und sicheren Erstellung von Anforderungen und Co. in Projektdokumentationen unterstützen.

Das Projekt soll im Rahmen des Open-Source-Projektes „Sphinx-Needs“ umgesetzt werden, welches sich um die Erstellung und Verwaltung von Anforderungen in Dokumentation nach dem Docs-as-Code-Ansatz kümmert.

„Open Needs DB“ soll inhaltlich bei der Erstellung unterstützen, indem ähnliche Anforderungen aus anderen Projekten als Beispiel dienen oder auf fehlende Details hingewiesen wird. Neben einer API soll auch eine Extension für VS Code bereitgestellt werden.

Welchem gesellschaftlichen Themenfeld ordnest du dein Projekt zu?

Sicherheit

Welche gesellschaftliche Herausforderung willst du mit dem Projekt angehen?

Softwareprojekte so zu entwickeln, dass diese sicher sind, wird bei der heute notwendigen Komplexität immer schwieriger. Oft ist bei Themen wie Datensicherheit oder auch Sicherheit für Leib und Leben ein Expertenwissen notwendig, welches häufig nicht zur Verfügung steht.

Hinzu kommt die oft notwendige Dokumentation und die Erbringung von Nachweisen, dass diese Projekte nach einem akzeptierten Standard entwickelt wurden.

Da die Dokumentation z. B. von Anforderungen zu den eher ungeliebten Tätigkeiten von SW-Entwickler/innen gehört, wird diese oft vernachlässigt oder bei Budget- und Zeitknappheit stark beschnitten.

Leider sind Anforderungen und ähnliche Objekte selten durch eine API zugänglich oder so aufbereitet, dass diese technisch auswertbar und wiederverwendbar sind. Dadurch erschwert sich für diese Art von Informationen ein offener Austausch, wie er sonst schon gelebt wird (z. B. SW-Bibliotheken).

All dies erschwert SW-Teams weltweit die sichere Entwicklung ihrer Lösungen. Und vor allem Open-Source-Projekte leiden aufgrund der knappen Zeit ihrer Community stark darunter.

„Open Needs DB“ soll es ermöglichen, dass Projekte passende Anforderungen und Co. einfach und schnell von anderen Projekten übernehmen können, um eine sichere Entwicklung zu gewährleisten.

Welchem technischen Themenfeld ordnest du dein Projekt zu?

Anwendungen

Wie willst du dein Projekt technisch umsetzen?

Das schon vorhandene Projekt „Sphinx-Needs“ stellt die Funktionen zur Erstellung von Anforderungen und für deren Export in eine JSON-Datei zur Verfügung.

„Open Needs DB“ wird einen Importer für diese JSON-Datei anbieten, um die Daten in eine dokumentenbasierte DB (MongoDB oder ElasticSearch) zu übernehmen.

Ein Full-Text-Search-Server wird diese Daten indizieren und die Suche nach Keywords oder Text-Ähnlichkeiten ermöglichen. Als technische Lösung hierfür kann ElasticSearch oder Sphinx-Search dienen.

Eine einfache webbasierte Oberfläche (Flask) soll eine erste Suche ermöglichen. Flask und zugehörige Plugins sollen auch für die Bereitstellung einer REST-API dienen, die die Integration der Suche in andere Anwendungen ermöglicht.

Als erste externe Integration soll ein Plugin für die Entwicklungsumgebung VS Code erstellt werden, um die Daten der „Open Needs DB“ direkt bei der Erstellung von Anforderungen mit „Sphinx-Needs“ nutzen zu können.

Weitere Ideen wie der Betrieb einer frei zugänglichen „Open Needs DB“-Instanz, bei der sich Projekte mit ihren Anforderungen (needs.json-URLs) registrieren können, sind interessant, aber ein langfristiges Thema und daher kein Ziel innerhalb des geförderten Projektzeitraumes.

Hast du schon an der Idee gearbeitet? Wenn ja, beschreibe kurz den aktuellen Stand und erkläre die geplanten Neuerungen.

Für die Idee „Open Needs DB“ wurden bis jetzt nur Konzepte skizziert und ein erster Importer für Daten aus einer „needs.json“ nach ElasticSearch entwickelt.

Das prozesstechnisch vorgelagerte Open-Source-Projekt „Sphinx-Needs“ existiert seit über 4 Jahren und wurde durch mich gegründet. Auch heute noch bin ich der Haupt-Maintainer der Software.

„Sphinx-Needs“ ist schon produktiv und wird weltweit eingesetzt. Öffentlich z. B. von der Organisation ONAP, einem Projekt der Linux Foundation. Vor allem aber wird es von zahlreichen Unternehmen intern eingesetzt. Namentlich sind hier Projekte von OEM- und Tier-1-Unternehmen der Automobilbranche bekannt.

Link zum bestehenden Projekt (falls vorhanden)

https://sphinxcontrib-needs.readthedocs.io/en/latest/

Welche ähnlichen Ansätze gibt es schon und was wird dein Projekt anders bzw. besser machen?

Es gibt kommerzielle Requirement-Tools, die hauptsächlich über grafische User-Interfaces benutzt werden müssen. Ein Ansatz, der vor allem den Docs-as-Code-Ansatz verfolgt und dessen erstellte Daten frei verteilt und wiederverwendet werden können, ist nicht bekannt.

Wer ist die Zielgruppe und wie soll dein Projekt sie erreichen?

Zielgruppe sind Entwickler, Projektmanager und Ingenieure, die in kommerziellen, akademischen oder öffentlichen Projekten Dokumentationen für Anforderungen und Spezifikationen pflegen oder auch nur lesen müssen.

Dank der engen Verzahnung mit „Sphinx-Needs“ kann auf eine existierende Community aufgebaut werden, sodass der Kontakt zu ersten Anwendern gesichert ist.

Auch der Kontakt in die Industrie existiert, sodass „Open Needs DB“ auch als unternehmensinterne Instanz schnell zum Einsatz kommen könnte. Anfragen zu ähnlichen Funktionen gab es bei „Sphinx-Needs“ schon öfters.

An welchen Softwareprojekten hast du / habt ihr bisher gearbeitet?

Marco und ich sind seit 10 Jahren Tool-Entwickler und erstellen alles von Skripten für CI-Systeme bis zu Web-Apps für Geschäftsdaten.

Im Open-Source-Umfeld:

  • Sphinx-Needs
  • Sphinx-Test-Reports: importiert Testergebnisse, stellt sie über Sphinx-Needs in Dokumentationen dar und macht sie verlinkbar, z. B. mit Spezifikationen.

Ansonsten kommen immer mal wieder Bug-Reports und Bugfixes in diversen Open-Source-Projekten vor.

Bewerbt ihr euch als Team um die Förderung?

Ja – Daniel Woste und Marco Heinemann.

Wie viele Stunden wollt ihr in den 6 Monaten Förderzeitraum insgesamt an der Umsetzung arbeiten?

980

Skizziere kurz die wichtigsten Meilensteine, die im Förderzeitraum umgesetzt werden sollen.

  1. Auswahl einer DB für die Needs-Dokumente und eines Text-Search-Servers
  2. Erstellung eines Importer-Skriptes
  3. Festlegung und Umsetzung von zusätzlichen Text-Klassifizierungen (z. B. Keyword-Stärke)
  4. Erstellung einer REST-API
  5. Umsetzung einer kleinen Web-App zur Anzeige und Suche
  6. Erstellung einer VS-Code-Extension
  7. Erweiterung von „Sphinx-Needs“ zur Einbindung einer „Open Needs“-Instanz (für Need-Imports oder Need-Verlinkung), falls die Zeit reicht

Alle Beiträge