DE | EN

RASAS

ReqIF as a Service

Was ist RASAS?

RASAS steht ausgeschrieben für „ReqIF as a Service“, bewegt sich also im ReqIF-Kontext. ReqIF ist ein XML-basierter Dateiformatstandard für Anforderungsdokumente. Das zentrale Anliegen des ReqIF-Standards ist die Interoperabilität zwischen verschiedenen Softwarewerkzeugen aus dem Bereich des Requirements Engineering und damit einhergehend auch die Austauschbarkeit der Dokumente zwischen Organisationen. Mit RASAS unterstützt Individual Standard IVS als Mitglied des ReqIF Implementor Forums (ReqIF IF) dieses zentrale Anliegen, ermöglicht allerdings eine für die maschinelle Verarbeitung fortschrittlichere Art des Datenaustauschs.

Anstatt ReqIF-Dateien zwischen Softwarewerkzeugen auszutauschen, propagiert RASAS einen Service-basierten Ansatz, konkret REST. REST fußt auf einem Client/Server-Modell, d.h. ein Server stellt einen Service zur Verfügung, dem Clients vier unterschiedliche Arten von Anfragen stellen können. Beispiele für solche Anfragen sind:

  • CREATE: Erstelle eine neue SPECIFICATION mit dem Namen „abc“
  • READ: Gib mir das SPEC-OBJECT mit ID „123“
  • UPDATE: Ändere den Wert des ENUM-VALUES mit der ID „456“ auf „xyz“
  • DELETE: Lösche die SPEC-RELATION mit der ID „789“

Bei diesen Arten von Operationen spricht man auch von CRUD-Operationen. Die Kommunikation mit einem REST-Service wird üblicherweise per HTTP(S) umgesetzt - so auch bei RASAS. Dies bedeutet: Anfragen werden vom Client in Form von URLs, gegebenenfalls mit Parametern ergänzt, über die HTTP-Methoden GET (entspricht dem READ), PUT (entspricht UPDATE), POST (entspricht CREATE) oder DELETE gesendet.

Was ist aber RASAS nun konkret? RASAS ist schlichtweg die standardkonforme Spezifikation einer REST-API für ReqIF-Dokumente. Die Spezifikation entspricht den Regeln der OpenAPI-Spezifikation für REST-APIs (ehemals bzw. auch unter dem Namen Swagger bekannt).

RASAS stellen wir als Open Source frei zur Verfügung und ermutigen die Requirements-Engineering-Community, an der Weiterentwicklung der Spezifikation mitzuwirken und mit ihren Softwarewerkzeugen neben einem dateibasierten ReqIF-Austausch auch auf eine moderne, mit diversen Vorteilen behaftete REST-Schnittstelle zu setzen.

Vision

Wir möchten dazu beitragen, das Requirements Engineering maximal interoperabel zu gestalten. Dazu gehört, dass Werkzeuge zum Anforderungsmanagement (RM-Tools) untereinander möglichst einfach Daten austauschen können. Unterschiedliche Organisationen, insbesondere Zulieferer und OEMs, nutzen oftmals unterschiedliche Werkzeuge zum Anforderungsmanagement. Ohne einheitliche Schnittstellen oder Austauschformate gestaltet sich eine Zusammenarbeit in der Regel schwierig. Neben Anforderungsmanagementwerkzeugen gibt es im Requirements Engineering zudem noch etliche weitere Arten von Werkzeugen („Third-Party Tools“) - beispielsweise zur Prüfung und Analyse von Dokumenten. In der Praxis sind derlei Werkzeuge heute noch oft an bestimmte Anforderungsmanagementwerkzeuge gebunden - von Interoperabilität keine Spur.

Mit RASAS verfolgen wir folgendes Zielbild: Anwendungen, die (Anforderungs-)Daten verwalten und diese nach außen verfügbar oder sogar von außen veränderbar machen wollen, implementieren einen Service (Server) auf RASAS-Basis. Anwendungen, die auf den Service einer anderen Anwendung zugreifen möchten, implementieren einen Client auf RASAS-Basis. In manchen Fällen wird eine Anwendung sowohl einen Service als auch Client benötigen. Ein Anforderungsmanagementwerkzeug beispielsweise möchte seine Daten u.U. nach außen anbieten und von außen modifizierbar machen (Service) - aber zusätzlich auch Daten von anderen Anforderungsmanagementwerkzeugen importieren können (Client), z.B. im Zuge des Austauschs von Anforderungen zwischen Auftraggeber und Auftragnehmer.

Sind diese Voraussetzungen bei Anforderungsmanagementwerkzeugen gegeben, vereinfacht sich die Entwicklung von Third-Party-Tools ungemein. Sie müssen lediglich einen RASAS-konformen Client integrieren. Und sind somit automatisch nicht nur mit einem bestimmten Anforderungsmanagementwerkzeug kompatibel, sondern mit allen, die RASAS unterstützen.

Warum RASAS?

Der größte Vorteil eines REST-basierten Austauschs von ReqIF-Daten im Vergleich zu einem dateibasierten Austausch liegt auf der Hand: Während eine ReqIF-Datei stets als Ganzes transferiert wird, können über eine REST-API viel kleinteiligere Transferaktionen stattfinden (siehe die zuvor angebrachten Beispiele für CRUD-Operationen). Dies wirkt sich nicht nur auf die übertragene Datenmenge aus, sondern ermöglicht für die Softwarewerkzeuge auch eine viel direktere Nachvollziehbarkeit und Verarbeitung von Änderungen sowie lokalere Validierungsmöglichkeiten.

Alternativ können in diversen Werkzeugen mittels OSLC zwar einzelne Anforderungen abgefragt werden, aber leider ist OSLC nicht so ausdrucksstark wie ReqIF (z.B. weil Hierarchien fehlen). Der Fokus von OSLC liegt eher auf der Verlinkung von ALM-Artefakten. OSLC ist dadurch abstrakter bzw. allgemeingültiger. Dies erschwert zu einem gewissen Grad auch die Entwicklung von Requirements-Engineering-Werkzeugen, welche mit der fachlich konkreteren Abbildung von Anforderungsdokumenten im ReqIF-Datenmodell deutlich besser zurechtkämen.

Ein weiterer technischer Vorteil von RASAS besteht in der Berücksichtigung des OpenAPI-Standards und dem, was die dazugehörige Toolwelt (Swagger) bietet. Aus der RASAS-Spezifikation lässt sich nämlich vollautomatisch Schnittstellen-Code und -Dokumentation generieren - sowohl für einen Service/Server als auch für einen Client, und dies in einer großen Anzahl unterschiedlicher Programmiersprachen und ausgerichtet auf viele verschiedene Frameworks/Bibliotheken. Dies reduziert die Integration von RASAS in ein Softwarewerkzeug im Großen und Ganzen auf die Implementierung von Datenmappings und Validierungslogik (siehe Details).

Download

RASAS ist als Open Source unter der Apache-Lizenz Version 2.0 verfügbar. Mit einem Klick auf den folgenden Link erhalten Sie weitere Details hierzu.

Copyright 2018 Individual Standard IVS GmbH

Licensed under the Apache License, Version 2.0 (the “License”); you may not
use this file except in compliance with the License. You may obtain a copy
of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.

Klicken Sie auf die untenstehende Schaltfläche, um RASAS herunterzuladen.

Details

Sowohl Client als auch Service/Server können automatisch aus der REST-Spezifikation von RASAS generiert werden. Hierfür können die Open Source Tools von Swagger genutzt werden. Zum Einen gibt es einen Web-Editor, der online oder offline betrieben werden kann und über den die Generierung angestoßen werden kann. Alternativ lässt sich ein kommandozeilenbasiertes Java-Programm, der Swagger Code Generator, nutzen, um die Generierung durchzuführen. Ein generierter Client verfügt über Funktionen, die bereits voll funktional sind und direkt in einer Anwendung genutzt werden können, um auf einen Service zuzugreifen. Ein generierter Service hingegen enthält API-Methoden, deren Body leer ist und die befüllt werden müssen (Implementierung der Daten-Anbindung und ggf. Validierung).

Der Zugriff auf einen fertigen RASAS-konformen Service erfolgt über die Angabe einer URL. Hierzu muss der Hostname und Port des Services bekannt sein. Läuft der Service auf dem selben Rechner wie die Client-Anwendung, lautet der Hostname „localhost“. Im Folgenden ist ein Beispiel des Zugriffs auf einen Service zu sehen. Als Client dient hierbei ein herkömmlicher Web-Browser.

In diesem Beispiel liefert die URL https://localhost:8081/v1/reqif/specifciations eine Rückgabe im JSON-Format, welche alle SPECIFICATIONS eines ReqIF-Dokuments enthält. Die Rückgabe ist navigierbar, d.h. ein Klick auf die URL einer ATTRIBUTE-DEFINITION würde zu deren Definition führen. Operationen der Art CREATE, UPDATE und DELETE können (zu Testzwecken) nicht direkt über den Web-Browser durchgeführt werden. Hierfür lässt sich allerdings eine Web-Oberfläche nutzen, die Swagger bei der Service-Generierung direkt mit erzeugt.

Die Individual Standard IVS GmbH hat zudem eine Referenz-Implementierung eines RASAS-Service geschaffen. Dieser Service verwendet als Datenbasis im Backend eine ReqIF-Datei, d.h. die über den Service bezogenen Daten werden aus dieser Datei bezogen und Änderungen über den Service werden in diese Datei übertragen. Im Folgenden ist die Oberfläche dargestellt, mit welcher dieser Service konfiguriert, gestartet und gestoppt werden kann. Bei Interesse demonstrieren wir Ihnen diese Referenzimplementierung gerne und geben Einblicke in die Umsetzung.

Feedback

Haben Sie Fragen oder benötigen Unterstützung bei der Nutzung von RASAS? Dann wenden Sie sich bitte per E-Mail an rasas[at]individual-standard.com.

Bitte berücksichtigen Sie, dass die aktuelle Version der RASAS-Spezifikation noch keinen Anspruch auf Vollständigkeit hinsichtlich der Möglichkeiten, welche ReqIF bietet, erhebt. Fehlt Ihnen etwas in der Spezifikation oder haben Sie Ideen/Vorschläge zur Verbesserung/Erweiterung? Auch dann wenden Sie sich bitte an die zuvor genannte E-Mail-Adresse.