A szoftverfejlesztésben és a rendszermérnökségben a funkcionális követelmény egy rendszer vagy annak egy komponense funkcióját határozza meg, ahol a funkció a bemenetek és kimenetek közötti viselkedés összefoglalásaként (vagy specifikációjaként vagy kijelentéseként) írják le.[1]
A funkcionális követelmények magukban foglalhatnak számításokat, műszaki részleteket, adatkezelést és -feldolgozást, valamint egyéb speciális funkciókat, amelyek meghatározzák, hogy a rendszernek mit kell elérnie.[2] A viselkedési követelmények minden olyan esetet leírnak, amikor a rendszer használja a funkcionális követelményeket, ezeket a használati esetek rögzítik. A funkcionális követelményeket nem funkcionális követelmények (más néven "minőségi követelmények") támasztják alá, amelyek korlátokat szabnak a tervezésnek vagy a megvalósításnak (például teljesítménykövetelmények, biztonság vagy megbízhatóság). Általában a funkcionális követelményeket a "rendszernek meg kell tennie <követelmény>" formában, míg a nem funkcionális követelmények a "rendszernek<követelmény>" formában kell lennie.[3] A funkcionális követelmények megvalósításának tervét a rendszerterv részletezi, míg a nem funkcionális követelményeket a rendszer architektúrája részletezi.[4][5]
A követelménytervezésben a funkcionális követelmények meghatározzák a rendszer konkrét eredményeit. Ezt szembe kell állítani a nem funkcionális követelményekkel, amelyek az általános jellemzőket, például a költséget és a megbízhatóságot határozzák meg. A funkcionális követelmények vezérlik a rendszer alkalmazásarchitektúráját, míg a nem funkcionális követelmények a rendszer technikai architektúráját.
Egyes esetekben a követelményelemző használati eseteket generál a funkcionális követelménykészlet összegyűjtése és érvényesítése után. A funkcionális követelmények összegyűjtésének és megváltoztatásának hierarchiája tágabb értelemben a következő: felhasználó/ érdekelt felek kérése → elemzés → használati eset → beépítés. Az érintettek kérelmet nyújtanak be; a rendszermérnökök megpróbálják megvitatni, megfigyelni és megérteni a követelmény szempontjait; használati esetek, entitáskapcsolati diagramok és egyéb modellek készülnek a követelmény érvényesítésére; és ha dokumentálják és jóváhagyják, a követelményt végrehajtják/beépítik.[6] Minden használati eset viselkedési forgatókönyveket mutat be egy vagy több funkcionális követelményen keresztül. Az elemző gyakran azonban azzal kezdi, hogy előhívja a használati eseteket, amelyekből az elemző levezetheti azokat a funkcionális követelményeket, amelyeket meg kell valósítani ahhoz, hogy a felhasználó elvégezhesse az egyes használati eseteket.
Egy tipikus funkcionális követelmény tartalmaz egy egyedi nevet és számot, egy rövid összefoglalót és egy indoklást. Ezek az információk segítenek az olvasónak megérteni, miért van szükség a követelményre, és nyomon követni a követelményt a rendszer fejlesztése során.[7] A követelmény lényege a szükséges viselkedés leírása, amelynek világosnak és olvashatónak kell lennie. A leírt viselkedés származhat szervezeti vagy üzleti szabályokból, vagy felfedezhető a felhasználókkal, érdekelt felekkel és a szervezet más szakértőivel folytatott felhívások során.[7] A használati eset fejlesztése során számos követelményre derülhet fény. Amikor ez megtörténik, a követelményelemző létrehozhat egy ideiglenes követelményt névvel és összefoglalóval, és később utánanézhet a részleteknek, amelyeket akkor kell kitölteni, amikor jobban ismertek.
Ez a szócikk részben vagy egészben a Functional requirement című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.