A követelmények nyomon követhetősége a követelménykezelés egyik aldiszciplínája a szoftverfejlesztés és rendszermérnöki tevékenységek során. A nyomon követhetőség általános értelemben az IEEE Systems and Software Engineering Vocabulary szerint az alábbiak szerint definiálható: (1) az a fok, amelyben kapcsolat hozható létre a fejlesztési folyamat két vagy több terméke között, különösen azok a termékek között, amelyek előd-utód vagy elsődleges-alárendelt viszonyban vannak egymással; (2) a származási utak (felfelé) és a kiosztási vagy lefutási utak (lefelé) azonosítása és dokumentálása a munkatermékek hierarchiájában; (3) az a mérték, amelyben minden egyes elem egy szoftverfejlesztési termékben igazolja a létezésének okát; és (4) észlelhető kapcsolatok kialakítása két vagy több logikai entitás között, mint például követelmények, rendszerelemek, ellenőrzések vagy feladatok.
A követelmények nyomon követhetősége különösen az alábbiak szerint definiálható: "az a képesség, amely leírja és követi egy követelmény életútját mind előre, mind visszafelé irányban (azaz az eredetétől kezdve, a fejlesztésén és specifikálásán keresztül, az azt követő bevezetéséig és használatáig, valamint ezen fázisok bármelyikében történő folyamatos finomításig és iterációig)". A követelménymérnöki területen a nyomon követhetőség arra irányul, hogy megértsük, miként alakulnak át a magas szintű követelmények – célkitűzések, célok, törekvések, elvárások, üzleti igények – fejlesztésre kész, alacsony szintű követelményekké. Ezért elsősorban az információrétegek közötti kapcsolatok kielégítésére összpontosít (más néven műtermékek). A nyomon követhetőség azonban dokumentálhatja a különböző fejlesztési artefaktumok közötti kapcsolatokat is, mint például követelmények, specifikációs állítások, tervek, tesztek, modellek és kifejlesztett komponensek.Pinheiro F.A.C. and Goguen J.A., "An object-oriented tool for tracing requirements", IEEE Software 1996, 13(2), pp. 52-64 Például bevett gyakorlat az ellenőrzési kapcsolatok rögzítése annak bizonyítására, hogy egy követelményt egy bizonyos tesztműtermék igazol.
A nyomon követhetőség különösen fontos a biztonság szempontjából kritikus rendszerek fejlesztésekor, ezért azt olyan biztonsági irányelvek írják elő, mint a DO178C, ISO 26262 és IEC61508 . Ezen iránymutatások általános követelménye, hogy a kritikus követelményeket ellenőrizni kell, és ezt az ellenőrzést nyomon követhetőségen keresztül kell igazolni.
Nyomon követés a követelmények felé és túl Előkövetelmények nyomon követése. követelmények különböző forrásokból származnak, mint például az üzleti személy, aki a terméket megrendeli, a marketing menedzser és a tényleges felhasználó. Ezek az emberek mind különböző követelményeket támasztanak a termékkel szemben. A követelménykövetés segítségével egy megvalósított szolgáltatás visszavezethető ahhoz a személyhez vagy csoporthoz, aki a követelményfelismerés során azt kívánta. Ez felhasználható a fejlesztési folyamat során a követelmény rangsorolására, meghatározva, hogy a követelmény mennyire értékes egy adott felhasználó számára. Emellett a bevezetés után is használható annak megértésére, hogy miért voltak bizonyos, felhasználói vizsgálatok során nem használt funkciók eredetileg szükségesek.
Utókövetelmények nyomon követése. Nem csak a követelményeket kell nyomon követni, hanem azok kapcsolatait is minden hozzájuk kapcsolódó artefaktummal, mint például modellek, elemzési eredmények, tesztesetek, teszteljárások, teszteredmények és mindenféle dokumentáció. Még az embereket és felhasználói csoportokat is, amelyek a követelményekhez kapcsolódnak, nyomon kell követni. A követelmények megvalósulnak a tervezési artefaktumokban, a megvalósításban, és végül ellenőrzésre kerülnek. Az utóbbi szakaszokhoz kapcsolódó artefaktumokat is vissza kell vezetni a követelményekhez. Ez általában egy követelménykövetési mátrixon keresztül történik.
A nyomon követhetőség megteremtése a követelményeken túlmenően a tervezési, megvalósítási és ellenőrzési műtermékekig nehézzé válhat. Például szoftverkövetelmények megvalósítása során a követelmények egy követelménykezelő eszközben lehetnek, míg a tervezési artefaktumok egy tervezési eszközben találhatók. Továbbá a megvalósítási artefaktumok valószínűleg forrásfájlok formájában lesznek, amelyek különböző módokon és különböző szinteken kapcsolhatók össze. Az ellenőrzési artefaktumok, mint például a belső tesztek vagy formális ellenőrző eszközök által generált artefaktumok is nyomon követhetők.
A repository vagy eszközköteg integrációja jelentős kihívást jelenthet a nyomon követhetőség fenntartása terén egy dinamikus rendszerben.
Nyomon követhetőségi információk használata A nyomon követhetőség alkalmazása, különösen, ha a követelményeken túlmenően a eszközáncban található összes műterméket követi, számos előnnyel járhat:
Változások hatáselemzése – ha egy követelmény megváltozik, a nyomkövetési linkek tájékoztatnak a kapcsolódó és függő artefaktumokról. Ezek az artefaktumok könnyen ellenőrizhetők, és szükség esetén módosíthatók. Ez csökkenti annak valószínűségét, hogy kapcsolódó artefaktumok figyelmen kívül maradnak. Lefedettség-elemzés – a nyomon követhetőség biztosítja, hogy egyetlen követelmény se maradjon figyelmen kívül. Különösen a biztonságkritikus termékek tanúsítása során szükséges igazolni, hogy minden követelmény megvalósult. Projektállapot elemzés – a projekt állapotának nyomon követése lehetséges: a nyomon követhetőségi adatok elemzése lehetővé teszi a követelmények teljesítési állapotának megtekintését. A linkek nélküli vagy hiányos nyomkövetési lánccal rendelkező követelmények (például megvalósítási követelmények, de tesztek nélkül) azt jelzik, hogy további munkára van szükség. A hiányzó linkek megmutatják, hogy mely konkrét artefaktumok hiányoznak és melyeket kell megvalósítani. Termékelemek újrafelhasználása – lehetőség van a követelmények és a hozzájuk kapcsolódó artefaktumok csomagokba rendezésére. Ezek a csomagok különböző termékekhez használhatók. Kapcsolatok megőrzése – gyakran egy projekt vagy termék ismerete bizonyos személyek fejében van. A nyomon követhetőség használatával ez a tudás megőrződik azáltal, hogy vizualizáljuk a különböző artefaktumok közötti kapcsolatokat. Ez a tudás megmarad, még akkor is, ha egy személy elhagyja a projektet. Tesztoptimalizálás – a követelmények, a forráskód, a tesztesetek és a teszteredmények összekapcsolásával könnyen azonosítható a forráskód érintett részei, ha a tesztek sikertelenek. Továbbá a redundáns tesztesetek azonosíthatók és kiküszöbölhetők.
A nyomon követhetőség által támogatott fejlesztési tevékenységekről és azok relevanciájáról teljesebb áttekintést adunk.
A nyomon követhetőségi információk gyakorlati felhasználása Kiterjedt tanulmányok dokumentálják a nyomon követhetőségi információk rögzítésének hatékonyságát, de nehézségeit is:
A nyomon követhetőség felgyorsítja és javítja a fejlesztési tevékenységeket - Egy 71 résztvevővel végzett tanulmány, amelyben forráskód változtatásokat hajtottak végre nyomon követhetőség támogatással és anélkül, kimutatta a nyomon követhetőség előnyeit. A fejlesztők 24%-kal gyorsabban és 50%-kal pontosabban teljesítették a feladatokat nyomon követhetőség támogatással. A teljesebb nyomon követhetőség segít elkerülni a szoftverhibákat - 24 közepes és nagy méretű nyílt forráskódú projekt fejlesztési adatainak elemzése során statisztikailag szignifikáns kapcsolatot találtak a rögzített nyomon követhetőségi információk teljessége és a fejlesztett forráskód hibaaránya között. A teljesebb nyomon követhetőséggel rendelkező komponensek kevesebb hibát (azaz bogarat) mutattak. A megfelelő nyomon követhetőség elérése nehéz – Az Egyesült Államok Élelmiszer- és Gyógyszerügyi Hatóságánál (FDA) 2013-ban az orvostechnikai eszközök szoftvereinek forgalomba hozatal előtti tesztelésének elemzése jelentős hiányosságokat tárt fel az előírt és a benyújtott nyomon követhetőségi információk között. A szabványnak megfelelő nyomon követhetőség felé való törekvés gyakran "nagy befagyasztást" eredményez. Nagy befagyasztás, mivel a cégek célja, hogy elkerüljék a további fejlesztéseket, mert az újratanúsítás óriási erőfeszítéssel jár.
A nyomon követhetőségi információk megjelenítése A nyomon követhetőség egyik célja a műtermékek közötti kapcsolat vizualizálása. A nyomkövetési hivatkozások számának és összetettségének növekedésével a nyomon követhetőség vizualizációs technikáira van szükség. A vizualizáció tartalmazhat információkat a műtermékekről (pl. műtermék típusa, metaadatok, attribútumok) és hivatkozások (pl. link típusa, metaadatok, link erőssége).
A nyomon követhetőségi információk gyakori megjelenítései a mátrixok, grafikonok, listák és hiperhivatkozások .
Nyomon követhetőségi mátrix – A nyomon követhetőségi mátrix egy táblázatszerű ábrázolás, amely az oszlopokban ábrázolt egyik típusú műtermékeket (pl. követelmények) leképezi a sorokban ábrázolt másik típusú műtermékekre (pl. forráskód). A cellák két műtermék közötti nyomot jelenítenek meg, ha kitöltöttek, vagy nem nyomot, ha üresen hagyják. A nyomon követhetőségi mátrixok előnye, hogy a műtermékek közötti összes kapcsolat egy pillantással látható. A szűrők segítenek csökkenteni a megjelenített információk mennyiségét. A nyomon követhetőségi mátrixok alkalmasak menedzsment feladatokra. Az iparban azonban a projektek gyakran több ezer műtárgyból állnak: a táblázatok nagyon nagyokká és zavaróvá válhatnak. Nyomon követhetőségi gráf – A nyomon követhetőségi gráfban a műtermékek csomópontokként jelennek meg. A csomópontokat élek kötik össze, ha létezik nyomkövetési kapcsolat a műtermékek között. A grafikonok különösen alkalmasak fejlesztési feladatokra. Lehetővé teszik a hivatkozások feltáró jellegű áttekintését, és magas információértési arány jellemzi őket. A grafikonon való navigálással könnyen azonosíthatóak a hiányzó hivatkozások, ami a szükséges műtermékek létrehozásához szükséges. Lista – A listák egy bejegyzésben ábrázolják a nyomon követési linkeket. Ez a bejegyzés tartalmazhat információkat a forrás és a cél artefaktumról, valamint attribútumokról. Különösen alkalmasak, amikor több különböző artefaktumra vonatkozó tömeges műveleteket kell végrehajtani. Szűrők és rendezési mechanizmusok lehetővé teszik a megjelenített információk kezelését. Azonban a fent leírt vizualizációkhoz képest a listák kevésbé alkalmasak projektmenedzsment, fejlesztési és tesztelési feladatok végrehajtására. Hiperhivatkozás – A hiperlinkek összekapcsolják a kapcsolódó artefaktumokat, és lehetővé teszik a "ugrást" egy forrás artefaktumtól egy kapcsolódó artefaktumig. Ez a vizualizáció akkor alkalmas, ha részletes információkra van szükség egy artefaktumról, mivel lehetővé teszi az artefaktumok natív környezetben való navigálását. A hiperlinkek önálló használatának hátránya, hogy sok navigációs erőfeszítést igényel a linkek állapotának áttekintése, mivel a kapcsolódó artefaktumok nem kompakt módon vannak vizualizálva.
A vizualizációk kombinálhatók sajátos korlátaik leküzdésére.
Műszaki megvalósítás
Kézi nyomon követhetőség A nyomon követhetőség úgy valósul meg, hogy teljesen manuálisan vagy eszközökkel, például táblázatként a Microsoft Excelben rögzíti a nyomokat. Bár széles körben alkalmazzák, ez a folyamat nehézkes, hibás, és gyakran olyan nyomon követhetőségi információkhoz vezet, amelyek a különféle fejlesztési eszközök és a nyomon követendő műtermékek jellemzően nagyon magas száma miatt nem megfelelő minőségűek.
Eszköz által támogatott nyomon követhetőség Az eszköztámogatott nyomon követhetőség megköveteli, hogy a fejlesztési információkat, amelyek egy teljes fejlesztőeszköz-lánc mentén szóródnak szét, homogenizálják és összesítsék. Az alábbi megközelítések léteznek ennek az állapotnak az eléréséhez: