Co je nefunkční požadavek v softwarovém inženýrství?
⚡ Chytré shrnutí
Nefunkční požadavky specifikují atributy kvality, jako je výkon, bezpečnost, použitelnost, spolehlivost, škálovatelnost a přenositelnost, definují, jak dobře se musí softwarový systém chovat, a mění vágní očekávání na měřitelné, testovatelné a vymahatelné inženýrské cíle v průběhu celého životního cyklu dodávky.
Co je to nefunkční požadavek?
A Nefunkční požadavek (NFR) specifikuje atribut kvality softwarového systému. NFR posuzují systém na základě responzivity, použitelnosti, zabezpečení, přenositelnosti a dalších atributů kvality, které jsou klíčové pro úspěch. Běžným příkladem nefunkčního požadavku je, "Jak rychle se web načítá?" Nesplnění nefunkčních požadavků vytváří systémy, které uživatele frustrují.
Nefunkční požadavky v softwarovém inženýrství kladou omezení na návrh systému v rámci agilního backlogu. Například web by se měl načíst do tří sekund, když počet souběžných uživatelů překročí 10 000. Popis nefunkčních požadavků je stejně důležitý jako zachycení funkčních požadavků.
Typy nefunkčních požadavků
Hlavní kategorie nefunkčních požadavků jsou:
Typy nefunkčních požadavků
- Použitelnost
- Spolehlivost
- Ovladatelnost
- Obnovitelnost
- Bezpečnost
- Data Integrity
- Kapacita
- dostupnost
- Škálovatelnost
- Interoperabilita
- Spolehlivost
- Udržitelnost
- Soulad s předpisy
- Environmentální omezení
Příklady nefunkčních požadavků
Zde jsou praktické příklady nefunkčních požadavků:
- Uživatelé musí po prvním úspěšném přihlášení změnit původní heslo a původní heslo nesmí být nikdy znovu použito.
- Zaměstnanci nesmí aktualizovat informace o svém vlastním platu a jakýkoli takový pokus musí být nahlášen správci bezpečnosti.
- Každý neúspěšný pokus uživatele o přístup k datové položce se zaznamená do auditní stopy.
- Webové stránky by měly podporovat 20 milionů souběžných uživatelů bez zhoršení doby odezvy.
- Software by měl být přenositelný, aby přechod z jednoho operačního systému na druhý nezpůsoboval žádné problémy.
- Ochrana informací, vývoz omezených technologií a práva duševního vlastnictví musí být auditovatelné.
Funkční vs. nefunkční požadavky
Hlavní rozdíly mezi funkčními a nefunkčními požadavky jsou:
| parametry | Funkční požadavek | Nefunkční požadavek |
|---|---|---|
| Co je to? | Sloveso | Atributy |
| Požadavek | Je to povinné | Není to povinné |
| Typ snímání | Je zachycen v případě použití. | Je zachycen jako atribut kvality. |
| Konečný výsledek | Funkce produktu | Vlastnosti produktu |
| Zachycení | Snadno zachytitelné | Těžko zachytitelné |
| Objektivní | Pomáhá vám ověřit funkčnost softwaru. | Pomáhá vám ověřit výkon softwaru. |
| Oblast zaměření | Zaměřte se na požadavky uživatele | Soustředí se na očekávání uživatele. |
| Dokumentace | Popište, co produkt dělá | Popisuje, jak produkt funguje |
| Typ testování | Funkční testování jako je systémové, integrační, komplexní testování, testování API atd. | Nefunkční testování, jako je výkon, stres, použitelnost, testování zabezpečení atd. |
| Provedení testu | Test Provedení se provádí před nefunkčním testováním. | Po funkční zkoušce |
| Informace o výrobku | Vlastnosti produktu | Vlastnosti produktu |
Výhody nefunkčních požadavků
Hlavní výhody Nefunkční testování jsou:
- Nefunkční požadavky zajišťují, aby systém dodržoval právní předpisy a předpisy.
- Chrání spolehlivost, dostupnost a výkon systému.
- Nabízejí dobrý uživatelský zážitek a snadnou obsluhu.
- Formují bezpečnostní politiku softwaru.
Nevýhody nefunkčních požadavků
Mezi běžné nevýhody nefunkčních požadavků patří:
- Nefunkční požadavky mohou ovlivnit několik softwarových subsystémů vysoké úrovně.
- Vyžadují zvláštní pozornost během architektury a návrhu na vysoké úrovni, což zvyšuje náklady.
- Implementace se zřídka mapuje na jediný softwarový subsystém.
- Jakmile je fáze architektury dokončena, je těžké je modifikovat.
Model FURPS+ pro klasifikaci nefunkčních požadavků
FURPS+ je nejpoužívanější taxonomie pro nefunkční požadavky. Původně byla vyvinuta ve společnosti Hewlett-Packard a seskupuje atributy kvality do pěti hlavních kategorií a dále doplňuje omezení označená znaménkem „+“. Model pomáhá obchodním analytikům vyhnout se přehlédnutí celé třídy požadavků.
- Funkce: Možnosti, zabezpečení a opakovaná použitelnost, které jdou nad rámec základního seznamu funkcí.
- Použitelnost: Lidské faktory, estetika, konzistence, dokumentace a responzivita uživatelského prostředí.
- Spolehlivost: Dostupnost, průměrná doba mezi poruchami, obnovitelnost, předvídatelnost a přesnost.
- Výkon: Rychlost, propustnost, kapacita, škálovatelnost a spotřeba zdrojů při zátěži.
- Podporovatelnost: Testovatelnost, flexibilita, instalovatelnost, lokalizovatelnost a udržovatelnost dodaného systému.
- Plus (+): Návrh, implementace, rozhraní a fyzická omezení, jako jsou požadované platformy, standardy nebo hardware.
Týmy, které mapují každý nefunkční požadavek do kategorie FURPS+, s menší pravděpodobností dodají systém, který sice splňuje funkce, ale selhává ve výkonu, zabezpečení nebo udržovatelnosti.
Jak psát testovatelné nefunkční požadavky
Dobře napsaný nefunkční požadavek je měřitelný, ověřitelný a časově omezený. Vágní tvrzení jako „systém musí být rychlý“ nebo „aplikace by měla být bezpečná“ jsou aspirace, nikoli požadavky. Postupujte podle níže uvedených kroků a převeďte záměr do testovatelné NFR.
- Identifikujte atribut kvality. Zařaďte problém do kategorie FURPS+, aby tým věděl, zda se jedná o požadavek na výkon, použitelnost, bezpečnost nebo spolehlivost.
- Vyberte metriku. Každý NFR potřebuje jednotku – milisekundy, požadavky za sekundu, souběžné uživatele, procentuální dostupnost nebo standard shody, jako je ISO 27001.
- Nastavte číselnou prahovou hodnotu. Nahraďte „rychlý“ za „méně než 400 milisekund na 95. percentilu“. Nahraďte „vysoce dostupný“ za „99.9% měsíční dostupnost“.
- Popište stav. Uveďte zátěž, prostředí nebo segment uživatelů, na který se prahová hodnota vztahuje, například „během špičky prodeje s 10 000 souběžnými uživateli“.
- Definujte metodu ověřování. Všimněte si typu testu – zátěžový test, penetrační test, experiment chaosu, audit přístupnosti – a nástroje, který prahovou hodnotu potvrdí.
- Použijte kontrolu SMART. Před zařazením do nevyřízených záležitostí ověřte, zda je požadavek specifický, měřitelný, dosažitelný, relevantní a časově ohraničený.
Příklad přepsání: „Systém musí být rychlý“ se změní na „Stránka pokladny musí reagovat za méně než 500 milisekund na 95. percentilu s 5 000 souběžnými uživateli, ověřenými JMeter „zátěžové testování každé verze.“ Revidované prohlášení umožňuje vývojářům navrhovat pro danou verzi, testerům ji ověřit a vlastníkům produktů ji přijmout bez námitek.


