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

Assessments machen wir bei SOPHIST schon seit Jahren und das nicht nur für die Weihnachtsplanung.

Jedes Jahr im Dezember steht Weihnachten vor der Tür und wie alle Jahre wieder möchte jeder entspannt Weihnachten feiern und die Adventzeit genießen – doch ohne gute Vorbereitung sind die Aussichten eher düster.

Weiterlesen

SOPHIST – der Offene Trainingskatalog 2022

SEE THE FUTURE! Wir stellen Ihnen schon jetzt unseren neuen Trainingskatalog für das Jahr 2022 zur Verfügung. Planen Sie frühzeitig Ihre Teilnahme(n) an unseren erstklassigen Trainings rund um Requirements Engineering, Systems Engineering, Modellierung, Vorgehensmodelle und Business-Analyse. Wie Sie von SOPHIST erwarten dürfen, bieten wir Ihnen die gewohnt exzellente Qualität!

Weiterlesen

SOPHIST – der Offene Trainingskatalog 2021

Neues Jahr, neue Trainings! Der Trainingskatalog 2021 ist da! Auch in Zukunft bieten wir Ihnen die gewohnte SOPHIST-Qualität!

Wir bringen unser Wissen rund um Agiles RE, Systems Engineering und der Business Analyse in Nürnberg, Stuttgart, Frankfurt, München, Düsseldorf und Hamburg und natürlich per Online/Remote zu Ihnen!

Weiterlesen

Der EigenschaftsMASTER – Eine Anforderungsschablone für nicht-funktionale Anforderungen

Nach dem letzten Beitrag zum Thema Satzschablonen in dem wir über den neuen UmgebungsMASTER berichtet haben, möchten wir euch heute eine weitere Schablone für nicht-funktionale Anforderungen vorstellen, die wir überarbeitet haben: den EigenschaftsMASTER. Diesen verwendet man um, wie der Name schon sagt, um Eigenschaften des Betrachtungsgegenstands zu beschreiben.

Der alte EigenschaftsMASTER war zwar formal sehr gut hatte aber häufig das Problem dass Anforderungen in Teilen umständlich formuliert wirkten. Deshalb haben wir eine neue Schablone entwickelt bei der sich in Summe mehr Anforderungen sprachlich besser anhören, ohne dass die Schablone dabei an Wirkung verliert.

Weiterlesen