Specifikáció és követelménymenedzsment

A specifikáció

A specifikáció célja a eladatot megoldó szoftver funkcióinak tisztázása, a rendszerre és a fejlesztésre vonatkozó elvárások megadása.

  • Feltérképezi a követelményeket felhasználói, valamint fejlesztői szemszögből, lépései:
    • megvalósíthatósági elemzés
    • követelmény megállapítás és elemzés
    • követelmény specifikáció
    • követelmény validáció
  • Eredménye a szoftver követelmény-leírása.

Megvalósíthatósági elemzés

A megvalósíthatósági elemzés (feasibility study) azt vizsgálja, hogy a szoftver megvalósítható-e, és üzletileg megtérül-e a befektetés, ezen belül:

  • Milyen erőforrások szükségesek, és ezek rendelkezésre állnak-e
  • Mi a megvalósítás költsége, időtartama
  • A fejlesztést követően a szoftver igényel-e üzemeltetést, karbantartást, és ez milyen költségeket jelent

Az elemzést gyorsan, alacsony költségek mellett kell elvégezni.

Amennyiben a fejlesztett szoftver egyedi, az elemzést ajánlattétel követi a vevők számára.

Követelmény feltárás és elemzés

A követelmények feltárása és elemzése (requirements elicitation and analysis) során követelményeket állapítunk meg, három lépésben:

  1. Kutatás: meglévő rendszerek, egyeztetés, interjúk a lehetséges felhasználókkal, kezdeti követelmények meghatározása.
  2. Osztályozás: a követelmények rendezése, csoportosítása, alrendszerekhez történő besorolás.
  3. Prioritizálás: fontossági sorrend felállítása, ütközések feloldása, szükségtelen, vagy megvalósíthatatlan követelmények elhagyása.

Követelmények feltárása

A követelmények feltárását és leírását számos tényező nehezítheti.

  • A vevők bizonytalanok az elvárásokban
  • A vevők nem egyértelműen fejtik ki az elvárásokat.
  • A vevők nem rendelkeznek informatikai ismeretekkel.
  • A vevők nem közvrtlenül a szoftver felhasználói, így a felhasználói igények eltérhetnek.
  • A körülmények változhatnak a specifikáció során

A követelmények alapján létrehozhatóak a rendszer modelljei, prototípusai, pl.:

  • Felhasználói felület terve, menürendszer
  • Egyszerűsített vizuális megjelenés, animáció

Követelmények típusai

  • Funkcionális:: a szoftver által nyújtott szolgáltatások, reakciók, viselkedések leírása
  • Nem funkcionális: megszorítások a szolgáltatásokra, a viselkedésre
    • Termék követelmények: hatékonyság (teljesítmény, méret), megbízhatóság, biztonság, hordozhatóság, felhasználhatóság.
    • Menedzselési követelmények: környezeti, működési, fejlesztési.
    • Külső követelmények.
Termék Követelmények
  • Hatékonyság: a szoftver által a hardver erőforrásokra (processzor, memória, merevlemez, sávszélesség) való támaszkodás mértéke, amelyet a lehető legkisebbre kell szabni.
  • Megbízhatóság: a szoftver által biztosított funkcionalitás garantálása (correctness) a környezetben bekövetkezett változások ellenére, abban az esetben is, amennyiben azok nem felelnek meg a specifikációban elvárt követelményeknek (robustness)
  • Biztonság: a szoftverben által tárolt adatok védelmének mértéke az illetéktelen hozzáféréssel szemben.
  • Hordozhatóság: szoftver kompatibilitásának mértéke különböző hardver és szoftver platformokkal, valamint az azokra történő átvitel könnyedségének mértéke.
  • Felhasználhatóság: a szoftver (használatának, telepítésének, üzemelésének) elsajátításának könnyedsége a különböző képzettségű és hátterű felhasználók számára; akadálymentesség.
Menedzselési követelmények
  • Környezeti:
    • a rendszer által igényelt hardver erőforrások
    • a rendszer használatához szükséges további szoftverek, amelyekkel együttműködik.
  • Működési:
    • a felhasználás paraméterei (gyakoriság, időtartam, felhasználók száma, rendelkezésre állás mértéke)
    • a felhasználók jellege (szaktudás, informatikai ismeretek)
  • Fejlesztési:
    • a fejlesztés módszertana, programozási paradigmái, szükséges eszköztára.
    • a felhasznált programozási nyelvek és könyvtárak.
Külső követelmények
  • Jogszabályoknak való megfelelés
  • Etikai kérdések a felhasználó adataival, és azok továbbadásával szemben.
  • Tulajdonjogi kérdések a begyűjtött adatokkal, az esetleges külső fejlesztésekkel kapcsolatban.

Követelmény specifikáció

A követelmény specifikáció (requirements specification) az elemzés során kapott információt alakítjuk át egységes alakba.

A felhasználói szinten csak alapjaiban, a fejlesztői szinten részletesen megadjuk.

A leírás történhet:

  • Beszélt nyelven
  • Formalizált leírással
  • Formális matematikai leírással
  • Formális leírónyelvek segítségével
  • Metrikák segítségével

Használati esetek

A használati esetek (use case) diagramja azt ábrázolja, miként működik együtt a felhasználó a rendszerrel.

Szabványos módja a funkcionális követelmények leírásának.

A diagram elemei:

  • Aktor: a felhasználó, aki a rendszert használja
  • Funkció: a rendszer egy szolgáltatása, viselkedési mintája
  • Reláció: kapcsolat a funkció és az aktorok között

A relációk típusai:

  • Használat: az aktor igénybe veszi a rendszer egy funkcióját. (csak aktor és funkció között)
  • Általánosítás: egyik funkció, vagy aktor egy bővebb halmaz, mint a másik.
  • Tartalmazás: egyik funkció részét képzi egy másik funkciónak.
  • Kiterjesztés: egyik funkció kiterjesztése egy másik funkcióval.
  • Előfeltétel: egy funkciónak meg kell előznie egy másik funkciót
  • Rákövetkezés: egy funkciót követ egy másik

Felhasználói történetek

A funkciók részletesebb kifejtését teszik lehetővé a felhasználói történetek.

A felhasználók által végzett tevékenységsorozatokat és azok lehetséges kimeneteleit adják meg különböző szituációkban.

A történetben azonosítunk egy szerepkört (user role) és egy célt, valamint megindokoljuk a cél szükségesség.

Egy történetre egy, vagy több esetet írhatunk fel, amelyben adott környezetben (given) egy tevékenységet végzünk (when), és erre valamilyen hatást (then) várunk.

Az eseteket úgy kell megfogalmaznunk, hogy az összes körülményt és lehetséges bemenetet figyelembe vesszük.

  • Különös tekintettel a hibalehetőségekre (pl. hibás bevitel)
  • Az egyes történetek egyúttal megadják a végleges alkalmazás funkcionális teszteseteit.

Követelmény validáció

A követelmények validációja (requirements validation) ellenőrzi a megadott specifikáció valószerűségét, konzisztenciáját és teljességét.

Mivel a követelményeknek ellenőrizhetőnek kell lennie, alkalmasnak kell lennie tesztesetek előállítására.

A validáció eredményezhet:

  • Prototípust, amelynek célja a követelmények teljesíthetőségének rövid távú ellenőrzése.
  • Teszteseteket, amelyek a végleges alkalmazáson ellenőrzik a követelmények teljesülését elsősorban a funkcionális követelményekre.

Követelmény-leírás

A követelmény-leírás tartalmazza a szoftver

  • Célját, helyét, szükségességét, előzményeit, előnyeit
  • A funkcionális és nem funkcionális követelmények leírását felhasználói és fejlesztői szemszögből.
  • A rendszer átfogó architektúráját és modelljeit
  • Áttekintést az implementáció és az evolúció számára
  • Fogalomjegyzéket

A követelmény-leírás felépítése:

  1. előszó (célközönség, dokumentum-történet)
  2. bevezetés (szoftver célja, helye, szükségessége, előnyei)
  3. fogalomtár (technikai áttekintés)
  4. követelmények felhasználói leírása
  5. rendszer architektúra (magas szintű áttekintés)
  6. követelmények fejlesztői leírása
  7. rendszer modellek (pl. felület terv, adatformátum leírás)
  8. rendszer evolúció (várható fejlesztések, karbantartás)
  9. függelék (pl. adatbázis terv, becsült hardver szükségletek)
  10. tárgymutató

Források