Project status: In Arbeit

Open Needs DB

Wir bauen (deine) Datenbank für sichere Softwareentwicklung.

Daniel Woste, Marco Heinemann
#Round11  #Anwendungen  #Sicherheit 

Welche gesellschaftliche Herausforderung adressiert euer Prototyp?

Softwareprojekte zu entwickeln ist heutzutage oft ein Balanceakt zwischen Sicherheitsstandards und vorausgesetzter technologischer Komplexität. Häufig ist bei Themen wie Datensicherheit oder Sicherheit der Nutzer*innen kein ausreichendes Expert*innenwissen im Entwicklungsprozess präsent. Außerdem wird die notwendige Datendokumentation oft aufgrund von Budget- und Zeitknappheit vernachlässigt. So können keine Nachweise erbracht werden, um zukünftige Softwareprojekte auf Basis der akzeptierten (Sicherheits-)Standards zu entwickeln. Zuletzt sind (System-)Anforderungen o.Ä. selten durch API zugänglich oder so aufbereitet, dass diese technisch auswertbar und wiederverwendbar sind. Durch all diese Faktoren wird der Wissensaustausch hinsichtlich Datensicherheit in Softwareentwicklung erschwert – und letztendlich auch die sichere Implementierung dieser Projekte.

Die ‘Open Needs DB’ ist eine Datenbank für Anforderungen und Spezifikationen, die bei der sauberen, umfassenden und sicheren Erstellung von Projektdokumentationen unterstützen. Das Projekt soll im Rahmen des Open-Source-Projektes ‘Sphinx-Needs’ umgesetzt werden und zielt auf inhaltliche Unterstützung im Entwicklungsprozess, indem es als Datenbank ähnliche Anforderungen aus anderen Projekten entweder als Inspiration bereitstellt oder damit auf fehlende Details in der Softwareentwicklung hinweist.

Wie geht ihr das Problem an?

Das bereits vorhandene Projekt ‘Sphinx-Needs’ stellt die Funktionen zur Erstellung von Anforderungen und für deren Export in einer JSON-Datei zur Verfügung. ‘Open needs DB’ bietet einen Importer für diese JSON-Datei an, um die Daten in eine dokumentbasierte Datenbank (MongoDB oder ElasticSearch) zu übernehmen. Ein Full-Text-Search-Server indiziert diese Daten und ermöglicht damit die Suche nach Keywords oder Text-Ähnlichkeiten.

Hierbei ermöglicht eine einfache webbasierte Oberfläche (Flask) eine erste Suche. Flask und die dazugehörigen Plugins dienen auch für die Bereitstellung der REST-API, die die Integration der Suche in andere Anwendungen ermöglicht. Um die Daten der ‘Open Needs DB’ direkt bei der Erstellung von Anforderungen mit ‘Sphinx-Needs’ nutzen zu können, wurde ein Plugin als externe Integration für die Entwicklungsumgebung VS-Code erstellt.

An wen richtet sich euer Tool?

Zielgruppe dieses Projektes sind Entwickler*innen, Projektmanager*innen und Ingenieur*innen, die in kommerziellen, akademischen oder öffentlichen Projekten Dokumentationen für Anforderungen und Spezifikationen pflegen oder lediglich lesen müssen.