Drei Mythen rund um A SPICE

In unserer neuen Serie möchten wir Ihnen über A SPICE erzählen.
Den Anfang machen wir mit einer kurzen Einführung und Allgemeinen Informationen . Das A steht übrigens für Automotive :-)
Den Rest erfahren Sie natürlich auch.

Also klären wir doch erstmal die Frage: „Was ist Automotive SPICE?„.

Automotive Software Process Improvement and Capability Determination, kurz Automotive SPICE, ist zweifellos ein wichtiges Werkzeug zur Verbesserung der Systementwicklungsprozesse in der Automobilindustrie. Es bietet eine strukturierte und standardisierte Herangehensweise, um die Qualität und Effizienz in der Entwicklung zu steigern.

Die Kernbedeutung von Automotive SPICE lautet zusammengefasst:

Weiterlesen

FURPS+

Was ist das?
Was kann das?

FURPS+: Ein Framework für Qualitätsanforderungen in der Softwareentwicklung

In der Welt der Softwareentwicklung spielen Qualitätsanforderungen eine entscheidende Rolle. Um sicherzustellen, dass Softwareprodukte den Anforderungen der Nutzenden gerecht werden und die gewünschten Funktionalitäten bieten, bedarf es einer strukturierten Herangehensweise speziell im Bereich des Nicht-funktionalen. In diesem Blogbeitrag stellen wir ein bewährtes Modell zur Bewertung und Verbesserung der Software-Qualitätsanforderungen vor.

Was ist FURPS+?

FURPS steht für Functionality (Funktionalität), Usability (Benutzerfreundlichkeit), Reliability (Zuverlässigkeit), Performance (Leistungsfähigkeit) und Supportability (Wartbarkeit). Das „+“ in FURPS+ hilft uns auch bei der Berücksichtigung von weiteren Aspekten wie:

• Designanforderungen
• Implementierungsanforderungen
• Schnittstellenanforderungen
• Physische Anforderungen

Es handelt sich um ein umfassendes Framework, das von Robert Grady bei Hewlett-Packard entwickelt wurde und als Leitfaden für die Entwicklung von Softwareprodukten dient.

Funktionalität (Functionality):

Die Funktionalität einer Software bezieht sich auf die Erfüllung der funktionalen Anforderungen. Das bedeutet, dass die Software die gewünschten Aufgaben und Funktionen erfüllen muss, um den Anforderungen der Nutzenden gerecht zu werden. Ein Schwerpunkt liegt auf der Spezifikation, Implementierung und Prüfung der Funktionalität, um sicherzustellen, dass sie korrekt und vollständig ist. Beispielsweise die funktionale Vollständigkeit oder auch die funktionale Adäquatheit ist hierzu sinnvoll mit Anforderungen zu spezifizieren.

Benutzerfreundlichkeit (Usability):

Benutzerfreundlichkeit bezieht sich auf die einfache und intuitive Bedienung einer Software. Hier ist eine sorgfältige Gestaltung der Benutzeroberfläche entscheidend, damit Nutzende die Software effizient und effektiv verwenden können. Aspekte wie Navigation, Anordnung der Funktionen und die Verständlichkeit der Benutzeroberfläche spielen dabei eine wichtige Rolle. Zu spezifizierende Anforderungen können beginnen bei generellen Bedienkonzepten bis hin zu konkret designten Oberflächen (UI, GUI) bspw. mittels Prototypen (Wireframen oder Mockups).

Zuverlässigkeit (Reliability):

Zuverlässigkeit ist ein kritischer Aspekt jeder Software. Hier geht es um die fehlerfreie Arbeitsweise und die Erfüllung der gestellten Aufgaben. Die Identifizierung und Behebung von Fehlern sowie die Vermeidung von Abstürzen oder Datenverlusten sind zentral. Tests und Überwachungsmechanismen tragen dazu bei, die Zuverlässigkeit sicherzustellen. Anforderungen hierzu sollten immer spezifische Werte enthalten – achten Sie also darauf, keinerlei Adjektive/Adverbien in Ihrer Anforderungsspezifikation zu verwenden.

Leistungsfähigkeit (Performance):

Leistungsfähigkeit bezieht sich auf die Geschwindigkeit, Antwortzeit und Skalierbarkeit einer Software. Eine optimierte Codebasis und Algorithmen sind entscheidend, um eine schnelle und effiziente Arbeitsweise zu gewährleisten. Die Messung und Überwachung der Leistung helfen dabei, Engpässe zu identifizieren und die Leistung zu verbessern. Anforderungen können einerseits spezifisch zu einzelnen Funktionen formuliert werden oder andererseits als recht generische Performance-Klassen als Stellvertreter für eine Gruppe von Funktionen (dies spart viel Zeit beim Anforderungen spezifizieren).

Wartbarkeit (Supportability):

Wartbarkeit beschreibt die Fähigkeit, eine Software effizient zu warten und zu aktualisieren. Eine modulare und gut strukturierte Softwarearchitektur erleichtert Entwicklern Änderungen und Fehlerbehebungen. Dokumentation, Kommentierung und bewährte Entwicklungspraktiken spielen hierbei eine wichtige Rolle. Beachten Sie hierbei, dass nicht die „üblichen Verdächtigen“ Stakeholder wie fachlich orientierte EndanwenderInnen diese Anforderungen benennen, sondern Beteiligte Personen aus den Bereich IT-Betrieb und -Service oder auch -Test.

Das FURPS+ Framework bietet einen umfassenden Ansatz zur Qualitätssteigerung Ihrer Anforderungsspezifikationen in der Softwareentwicklung. Es unterstützt Entwickler dabei, die Anforderungen an (Qualität der) Funktionalität, Benutzerfreundlichkeit, Zuverlässigkeit, Leistungsfähigkeit und Wartbarkeit zu erfüllen. Durch die Anwendung dieses Frameworks können Softwareentwicklungsprojekte effizienter gestaltet werden, da die Qualitätsanforderungen von Anfang an vollständiger berücksichtigt werden. Die Verwendung dieses Frameworks ermöglicht es Ihnen, Softwareprodukte von hoher Qualität zu liefern, die den Erwartungen der Benutzenden hinsichtlich vor allem nicht-funktionaler Aspekte zielgerichtet entsprechen.

Quellen:

FURPS+ von Robert Grady, Hewlett Packard:
https://www.researchgate.net/figure/Mccalls-Triangle-Quality-FURPS-SOFTWARE-QUALITY-MODEL-The-FURPS-model-was-initially_fig1_331305223

Arc42:
FURPS+ for Classifying Requirements:
https://quality.arc42.org/articles/quality-models#eeles

Wie war das jetzt noch mal mit Assessment-Unterstützung?

Wir SOPHISTen sind bekannt für unser Know-how, unsere Methodenentwicklung und unsere Expertise im Requirements Engineering und im Systems Engineering. Aber was viele nicht wissen, ist, dass wir auch seit mehr als 25 Jahren unsere Kunden bei Assessments unterstützen. Oder präziser ausgedrückt, wir führen bei und mit unseren Kunden sogenannte Vor-Assessments durch. Sei es nun als Vorbereitung, um eine Zertifizierung eines gewissen Standards wie A-SPICE im Automobilbereich oder VAIT-Vorgaben im Versicherungsbereich zu erhalten oder um auf ein „etwas unfreiwilliges“ Assessment einer Behörde gut vorbereitet zu sein.

Wir haben im vergangenen halben Jahr insgesamt 4 Artikel über Assessments bzw. Vor-Assessments veröffentlicht, um etwas tiefer zu beleuchten, wie SOPHIST dabei helfen kann.

Ein halbes Jahr ist eine lange Zeit und vielleicht haben Sie ja einen der Artikel verpasst oder vielleicht wurden Sie nicht schlau daraus.

Genau deswegen gibt es jetzt eine kleine Zusammenfassung, bei der wir jeweils noch kurz auf die einzelnen Artikel eingehen.

Weiterlesen

Das richtige Vorgehen bei Auswahl und Definition von Qualitätskriterien

In unserer Artikel-Serie zu den Qualitätskriterien von Anforderungen sind wir mit diesem Artikel bereits beim vierten und letzten Artikel angekommen.
Im ersten Artikel haben Sie erfahren, wozu Qualitätskriterien eingesetzt werden.
Kurze Wiederholung: Zur Verbesserung des Verständnisses über Systemeigenschaften, Systemfunktionen und -verhalten aller Stakeholder, welche über Anforderungen kommuniziert werden.

Im zweiten Artikel haben wir Ihnen gezeigt, dass Qualitätskriterien für die Einschätzung und Bewertung von Anforderungen wichtig sind. Es geht also um die Qualität von Anforderungen.

Und im dritten Artikel haben Sie gelernt, wie Sie die Qualitätskriterien für die Bewertung von Anforderungen einsetzen und welche Regeln Sie zur Verbesserung der Anforderungen ableiten können.

Im heutigen und damit letztem Artikel dieser Blogserie lernen Sie ein Vorgehen kennen, um entsprechend der gewünschten Qualitätsziele der Anforderungen die entsprechenden Qualitätskriterien auszuwählen und dazu messbare Subkriterien und Regeln abzuleiten.

Qualitätsziele definieren

Falls Sie schon mal nach Qualitätskriterien gegoogelt oder verschiedene Quellen konsultiert haben, waren Sie sicher überrascht, wie sich die Qualitätskriterien in den unterschiedlichen Quellen unterscheiden.

Ein pragmatischer Ansatz ist es, die ausgewählten Qualitätskriterien nach den Qualitätszielen auszurichten, die Ihre Anforderungen erfüllen sollen. Sie werden gleich feststellen, dass sich die Qualitätsziele teilweise mit den Namen der Qualitätskriterien decken, doch vielmehr geht es um die Denkweise und um einen pragmatischen Ansatz, der dahintersteht.
Was macht also die Qualität einer Anforderung aus?

Weiterlesen

Zurück an die Uni?

Eine kleine Geschichte eines SOPHIST-Beraters aus der Ich-Perspektive.

„Ähm, ja, kann ich gerne machen.“ Hörte ich mich sagen, als ich gefragt wurde, ob ich nicht einen Vortrag an der Hochschule Coburg, Fakultät Maschinenbau und Automobiltechnik halten möchte.

Was ich sonst noch so dachte, weiß ich gar nicht mehr so genau- eine Mischung aus Vorfreude und Spannung- es sind ja immerhin 4 Jahre vergangen seit meinem Examen… Ein paar Wochen zogen ins Land und auf einmal war er da, der Tag, an dem ich, in veränderter Rolle, zurück an die Uni musste.

Aufgeregt war ich nur wenig, insbesondere weil der Prof, mit dem ich schon ein paarmal hin und her geschrieben hatte, um die Inhalte zu klären, einen sehr netten Eindruck gemacht hat.
Und dann stand ich auch schon im Eingangsbereich der Hochschule in Coburg.

Kleines Selfie zur Erinnerung :-)

„Also dann, auf gehts und rein zu meinen Studierenden“ – Modul zum Requirements Engineering für Master-Studiengänge Maschinenbau, Automobiltechnik und Wirtschaftsingenieurwesen.

Ich wusste, dass die 15 Teilnehmenden gut vorbereitet sind und dass der Prof unser Buch „Requirements-Engineering und -Management – 7. Auflage“ als Grundlage für den Lehrplan herangezogen hat. Ihm war wichtig, dass ich nicht nur fachliche Inhalte vermitteln würde, sondern auch etwas Interaktives mitbringe und ein bisschen aus der Praxis erzähle. 90 Minuten Vortragszeit waren angesetzt. In Absprache mit dem Prof habe ich die Thematik „RE im agilen Kontext“ tiefer beleuchtet– die Folien die ich hierfür verwendet habe sind übrigens in unserem 10-Pager „Agiles RE“ zu finden (der richtig gut ist – also downloaden)  und dazu habe ich als interaktives Element noch unser bekanntes Cooperative-Game durchgeführt.

Die Zeit war echt knapp bemessen (in unseren Trainings habe ich immer 2-3 Tage Zeit) und ich weiß gerade gar nicht mehr, wie ich es geschafft habe auch noch von meiner aktuellen Beratungstätigkeit zu erzählen. Momentan bin ich in einem agilen Projekt in einem Automobilkonzern tätig– nicht immer leicht in einem Umfeld, in dem viele schwergewichtige Prozesse einzuhalten sind.

Meine Aufgaben: methodische Beratung für den Bau und Roll-Out einer konzernweiten Gesetzesdatenbank, als Product-Owner-Support mit ein paar Scrum-Master-Tätigkeiten (Komplexitätsmanagement, Prozessverbesserung, Schulungen ausarbeiten, Roll-out planen, Moderationen, etc.).

Irgendwie bin ich im Vortrag gerade erst so richtig warm geworden und hätte noch viel mehr erzählen können, aber Schwups, die Zeit war um.

Ich war beeindruckt, wie gut sich die Teilnehmenden in der Welt des RE schon auskannten. Ebenso war ich überrascht, wie einfach alles war. Die „Connection“ zu den Studierenden war von Anfang an da. Die Prüfungen am Semesterende allerdings, überlasse ich dann doch gerne dem Professor.

Fazit: War nice, gerne wieder! DANKE an dieser Stelle an den Prof und an die Hochschule Coburg.

Euer SOPHIST,

Joachim Halmen