KövetelményA mérnöki tudományban a követelmény olyan szükséglet, amelyet egy adott elemnek ki kell elégítenie ahhoz, hogy elfogadható legyen. A követelményeket számos mérnöki területen alkalmazzák, beleértve a mérnöki tervezést, a rendszertervezést, a szoftvertervezést, a vállalati tervezést, a termékfejlesztést és a folyamatoptimalizálást . A követelmény egy viszonylag tág fogalom, amely leírhat bármilyen szükséges vagy kívánt funkciót, attribútumot, képességet, jellemzőt vagy minőséget egy rendszer esetében, hogy értéket és hasznosságot nyújtson egy ügyfél, szervezet, felhasználó vagy más érdekelt fél számára. A specifikáció vagy "spec" egy követelményrendszer, amelyet jellemzően a fejlesztők használnak a termékfejlesztés tervezési szakaszában, valamint a tesztelők az ellenőrzési folyamat során. Az iteratív és inkrementális fejlesztéseknél, mint például az agilis szoftverfejlesztés, a követelmények a tervezéssel és megvalósítással párhuzamosan alakulnak ki. A vízesés modellnél a követelmények a tervezés vagy a megvalósítás megkezdése előtt teljesülnek. A kifejezés eredeteA követelmény kifejezést legalább az 1960-as évek óta használják a szoftvermérnöki közösségben. [1] Az Útmutató a Business Analysis Body of Knowledge® 2. verziójához (BABOK) [2] szerint a követelmény a következő:
Ez a meghatározás az IEEE 610.12-1990: IEEE Standard Glossary of Software Engineering Terminology szabványon alapul. [3] Rendszer vs. folyamati követelményekA követelmények két területre vonatkoznak:
A termék- és folyamatkövetelmények szorosan összefüggenek; a termékkövetelményről azt lehet mondani, hogy meghatározza a folyamatkövetelmény támogatásához szükséges automatizálást, míg a folyamatkövetelményről azt lehet mondani, hogy meghatározza a termékkövetelmény támogatásához szükséges tevékenységeket. Például egy maximális fejlesztési költségkövetelmény (folyamatkövetelmény) előírható a maximális eladási ár követelményének (termékkövetelmény) elérésének elősegítése érdekében; azt a követelményt, hogy a termék karbantartható legyen (termékkövetelmény), gyakran bizonyos fejlesztési stílusok (pl. objektumorientált programozás ), stílus-útmutatók vagy egy felülvizsgálati/ellenőrzési folyamat (folyamatkövetelmények) követésének előírásával oldják meg. A követelmények típusaiA követelményeket általában a fejlesztési folyamat különböző szakaszaiban előállított típusokba sorolják, a taxonómia az alkalmazott általános modelltől függ. Például a következő sémát az International Institute of Business Analysis dolgozta ki a Business Analysis Body of Knowledge-ban [4] (lásd még a FURPS-t és a követelmények típusait ).
A jó követelmények jellemzőiA jó követelmények jellemzőit a különböző írók eltérően fogalmazzák meg, és általában minden író az általános vitához vagy az adott technológiai területhez leginkább megfelelő jellemzőket emeli ki. A következő jellemzők azonban általánosan elismertek. [7] [8]
Számos további tulajdonságot kell figyelembe venni, amelyek hozzájárulnak a követelmények minőségéhez. Ha a követelményekre az adatintegritás szabályai vonatkoznak (például), akkor a pontosság/helyesség és az érvényesség/jogosultság is méltó tulajdonságok. A nyomon követhetőség megerősíti, hogy a meghatározott követelmény kielégíti az igényt (nem több - és nem kevesebb, mint amennyi szükséges). A fentiekhez néhányan hozzáteszik az Externally Observable (külsőleg megfigyelhető) tulajdonságot is, vagyis a követelmény olyan jellemzőt határoz meg, amely a termék külsőleg megfigyelhető vagy a felhasználó által tapasztalható tulajdonsága. Az ilyen jogvédők azzal érvelnek, hogy azok a követelmények, amelyek a belső architektúrát, tervezést, megvalósítást vagy tesztelési döntéseket határozzák meg, valószínűleg korlátozások, és egyértelműen a követelmények dokumentum korlátozások részében kell szerepelniük. Az ellentétes nézet az, hogy ez a perspektíva két ponton kudarcot vall. Először is, a perspektíva nem ismeri fel, hogy a felhasználói élményt a felhasználó által nem érzékelhető követelmények támogathatják. Például a geokódolt információk felhasználó számára történő bemutatására vonatkozó követelményt támogathatja egy külső, harmadik fél üzleti partnerrel való interfész követelménye. Az interfész a felhasználó számára észrevehetetlen lesz, bár az interfészen keresztül kapott információk bemutatása biztosan nem lesz az. Másodszor, egy korlátozás a tervezési alternatívákat korlátozza, míg egy követelmény a tervezési jellemzőket határozza meg. Például, egy webszolgáltatási interfész kiválasztását előíró követelmény különbözik egy olyan korlátozástól, amely a tervezési alternatívákat a Single Sign-On architektúrával kompatibilis módszerekre korlátozza. IgazolásMinden követelménynek ellenőrizhetőnek kell lennie. A leggyakoribb módszer a tesztelés. Ha ez nem lehetséges, akkor más ellenőrzési módszert kell alkalmazni (például elemzés, bemutató, ellenőrzés vagy a tervezés felülvizsgálata). Bizonyos követelmények már szerkezetüknél fogva nem ellenőrizhetők. Ide tartoznak azok a követelmények, amelyek szerint a rendszer soha vagy mindig nem mutathat fel egy adott tulajdonságot. Ezeknek a követelményeknek a megfelelő tesztelése végtelen tesztelési ciklust igényelne. Az ilyen követelményeket át kell fogalmazni, hogy ellenőrizhetők legyenek. Amint fentebb említettük, minden követelménynek ellenőrizhetőnek kell lennie. A nem funkcionális követelményeket, amelyek szoftverszinten nem ellenőrizhetők, továbbra is meg kell őrizni a vevői szándék dokumentációjaként. Azonban ezeket olyan folyamatkövetelményekhez lehet kapcsolni, amelyek gyakorlati módon biztosítják ezek teljesítését. Például a hátsó ajtóktól való mentességre vonatkozó nem funkcionális követelmény kielégíthető, ha lecseréljük a páros programozás használatára vonatkozó folyamatkövetelményre. Az egyéb nem funkcionális követelmények más rendszerelemekre vonatkoznak, és ezen a szinten ellenőrizhetők. Például a rendszer megbízhatóságát gyakran rendszerszintű elemzéssel igazolják. A bonyolult biztonsági követelményeivel rendelkező repüléselektronikai szoftvernek követnie kell a DO-178B fejlesztési folyamatát. Olyan tevékenységek, amelyek a rendszer- vagy szoftverkövetelmények levezetéséhez vezetnek. A követelménytervezés magában foglalhatja a projekt megvalósíthatósági tanulmányát vagy koncepcionális elemzési szakaszát, valamint a követelmények feltárását (az érdekelt felek igényeinek összegyűjtése, megértése, áttekintése és megfogalmazása), valamint követelményelemzést, [9] elemzést (konzisztencia és teljesség ellenőrzése), specifikációt. (a követelmények dokumentálása) és az érvényesítés (a meghatározott követelmények helyességének ellenőrzése). [10] [11] A követelmények hajlamosak a kétértelműségre, hiányosságra és következetlenségre. Az olyan technikák, mint a szigorú ellenőrzés, bizonyítottan segítenek kezelni ezeket a problémákat. A követelmények szakaszában feloldható kétértelműségek, hiányosságok és következetlenségek általában nagyságrendekkel kevesebbe kerül kijavítása, mintha ugyanezeket a problémákat a termékfejlesztés későbbi szakaszaiban találnák. A követelményelemzés ezen problémák megoldására törekszik. A mérnöki tervezés során figyelembe kell venni azt a kompromisszumot, amely a túl homályos követelmények és azok között van, amelyek annyira részletesek, hogy
Az agilis megközelítések ezeknek a problémáknak a leküzdésének módjaként fejlődtek ki, a követelmények magas szintű alapozásával és a részletek kidolgozásával a just-in-time vagy az utolsó felelős pillanatban . Dokumentációs követelményekA követelményeket általában a különböző érintettek közötti kommunikáció eszközeként írják le. Ez azt jelenti, hogy a követelményeknek könnyen érthetőnek kell lenniük mind a hétköznapi felhasználók, mind a fejlesztők számára. A követelmény dokumentálásának egyik gyakori módja annak meghatározása, hogy mit kell tennie a rendszernek. Példa: "A vállalkozónak legkésőbb xyz dátumig kell leszállítania a terméket." Az egyéb módszerek közé tartoznak a használati esetek és a felhasználói történetek . Változások a követelményekbenA követelmények általában idővel változnak. A meghatározás és jóváhagyás után a követelményeknek a változásvezérlés alá kell tartozniuk. Sok projekt esetében a követelmények a rendszer elkészülte előtt módosulnak. Ennek oka részben a számítógépes szoftverek összetettsége és az a tény, hogy a felhasználók nem tudják, mit akarnak, mielőtt látnák. A követelményeknek ez a jellemzője követelménykezelési tanulmányokhoz és gyakorlatokhoz vezetett. ProblémákVersengő szabványokSzámos versengő nézet létezik arra vonatkozóan, hogy mik is a követelmények, és hogyan kell őket kezelni és használni. Az iparágban két vezető szervezet az IEEE és az IIBA. Mindkét csoportnak eltérő, de hasonló meghatározása van arra, hogy mi is az a követelmény. A szoftverkövetelmények szükségességével és hatásaival kapcsolatos vitákSok projekt úgy sikerült, hogy a követelményeket illetően alig vagy egyáltalán nem volt egyetértés. [12] Egyes bizonyítékok azt mutatják továbbá, hogy a követelmények meghatározása csökkentheti a kreativitást és a tervezési teljesítményt [13] A követelmények hátráltatják a kreativitást és a tervezést, mivel a tervezőket túlságosan lefoglalják a megadott információk. [14] [15] [16] Általánosabban fogalmazva, egyes kutatások azt sugallják, hogy a szoftverkövetelmények olyan illúziók, amelyeket a tervezési döntések követelményként való téves ábrázolása hozott létre olyan helyzetekben, ahol nincsenek nyilvánvaló követelmények. [17] Eközben a legtöbb agilis szoftverfejlesztési módszer megkérdőjelezi a szoftverkövetelmények szigorú előzetes leírásának szükségességét, amit mozgó célpontnak tekintenek. Ehelyett az extrém programozás például informálisan írja le a követelményeket felhasználói történetek segítségével (rövid összefoglalók, amelyek egy indexkártyára illeszkednek, és elmagyarázzák, hogy mit kell tennie a rendszernek), és a fejlesztő kötelességének tekinti, hogy közvetlenül kérjen magyarázatot az ügyféltől. Az agilis módszertanok automatizált elfogadási tesztek sorozatával próbálják rögzíteni a követelményeket. A követelmények kúszásaHatókör csúszás léphet fel az idő múlásával változó követelmények miatt. A Követelménykezelésben a követelmények módosítása megengedett, de ha nem követik megfelelően nyomon, vagy a megelőző lépéseket (üzleti célok, majd felhasználói követelmények) nem korlátozza további felügyelet, vagy nem kezeli költségként és potenciális programhibaként, akkor a követelmények módosítása könnyű és valószínű, hogy megtörténik. Könnyen előfordulhat, hogy a követelményváltozások gyorsabban mennek végbe, mint ahogy a fejlesztők képesek lennének munkát végezni, és ennek eredményeként a visszafelé mutató erőfeszítés. Több követelmény szerinti taxonómiaA követelményekre vonatkozóan többféle besorolási rendszer létezik attól függően, hogy melyik keretrendszeren belül működik valaki. (Például az IEEE meghatározott szabványai, szemben az IIBA vagy az Egyesült Államok Védelmi Minisztériumának (U.S. DoD) megközelítéseivel). Különböző nyelvek és folyamatok különböző helyszíneken vagy a hétköznapi beszédben zavart és eltérést okozhatnak a kívánt folyamattól. FolyamatkorrupciókAz emberek által irányított folyamat ki van téve a kormányzás emberi hibáinak, ahol a kényelem, a vágyak vagy a politika kivételekhez vagy a folyamat egyenes felforgatásához vezethetnek, és eltérhetnek a tankönyv szerint a folyamattól. Példák erre:
Lásd még
FordításEz a szócikk részben vagy egészben a 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. Hivatkozások
Külső linkek |
Portal di Ensiklopedia Dunia