Tarkvaranõuete analüüs näitega

Tarkvaranõue on funktsionaalne või mittefunktsionaalne vajadus, mis tuleb süsteemis realiseerida. Funktsionaalne tähendab kasutajale konkreetse teenuse pakkumist.

Näiteks pangarakenduse kontekstis on funktsionaalne nõue, kui klient valib "Vaata saldot", peab tal olema võimalik vaadata oma viimast kontojääki.

Tarkvaranõue võib olla ka mittefunktsionaalne, see võib olla jõudlusnõue. Näiteks mittefunktsionaalne nõue on see, et süsteemi iga leht peaks olema kasutajatele nähtav 5 sekundi jooksul.

Nii et põhimõtteliselt tarkvara nõue on a

  • Funktsionaalne või
  • Mittefunktsionaalne

vajadus mis tuleb süsteemi juurutada. Tarkvaranõuet väljendatakse tavaliselt väidetena.

 

Nõuete tüübid

  1. Ärinõuded: Need on kõrgetasemelised nõuded, mis on võetud projektide ärimudelist. Näiteks mobiilipangateenuste süsteem pakub pangateenuseid Kagu-Aasiasse. India puhul on ärinõue konto kokkuvõte ja rahaülekanne, Hiina puhul aga konto kokkuvõte ja arvete tasumine on ärinõue.
Riik Pangafunktsioone või -teenuseid pakkuv ettevõte
India Konto kokkuvõte ja rahaülekanne
Hiina Konto kokkuvõte ja Bill Makse
  1. Archikonstruktsiooni- ja disaininõuded: need nõuded on üksikasjalikumad kui ärinõuded. See määrab ettevõtte nõuete rakendamiseks vajaliku üldise disaini. Meie haridusorganisatsiooni jaoks on arhitektuuri ja disaini kasutusjuhtumiteks sisselogimine, kursuse üksikasjad jne. Nõue oleks selline, nagu allpool näidatud.
Panganduse kasutamise juhtum Nõue
Bill Makse See kasutusjuht kirjeldab, kuidas klient saab netipanka sisse logida ja seda kasutada Bill Maksemehhanism.

Klient näeb registreeritud arve esitajate tasumata arvete armatuurlauda. Ta saab lisada, muuta ja kustutada arve esitaja üksikasju. Klient saab erinevate arveldustoimingute jaoks seadistada SMS-i, e-posti märguandeid. Ta näeb varasemate tasutud arvete ajalugu.

Selle kasutusjuhtumiga alustajad on pangakliendid või tugipersonal.

  1. Süsteemi ja integratsiooni nõuded: Madalaimal tasemel on meil süsteemi- ja integratsiooninõuded. See on iga nõude üksikasjalik kirjeldus. See võib olla kasutajalugude kujul, mis tõesti kirjeldavad igapäevast ärikeelt. Nõuded on palju üksikasju, et arendajad saaksid alustada kodeerimist. Siin on näide Bill Maksemoodul, kus mainitakse a lisamise nõuet Biller
Bill Makse Nõuded
lisama Billtv
  • Kommunaalteenuste pakkuja nimi
  • Suhtekliendi number
  • Automaatsed maksed – jah/ei
  • Maksa kogu Bill - Jah ei
  • Automaatne maksepiirang – ära maksa, kui Bill on üle määratud summa

Mõnikord ei pruugi te mõne projekti puhul saada mingeid nõudeid ega dokumente, millega töötada. Kuid siiski on ka muid nõuete allikaid, mida saate nõude või teabe puhul arvesse võtta, et saaksite oma tarkvara või katsekujunduse nendele nõuetele tugineda. Nii et muud nõuete allikad, millele võite tugineda, on

Muud nõuete allikad

  • Teadmiste edasiandmine kolleegidelt või töötajatelt, kes juba selle projekti kallal töötavad
  • Rääkige projektist ärianalüütikule, tootejuhile, projektijuhile ja arendajatele
  • Analüüsige eelmist süsteemi versiooni, mis on juba süsteemi juurutatud
  • Analüüsige projekti vanemat nõuete dokumenti
  • Vaadake varasemaid veaaruandeid, mõned veaaruanded on muudetud täiustustaotluseks, mida saab rakendada praeguses versioonis
  • Vaadake installijuhendist, kui see on saadaval, et näha, millised installid on vajalikud
  • Analüüsige domeeni või valdkonna teadmisi, mida meeskond püüab rakendada

Olenemata nõuete allikast, dokumenteerige need kindlasti mingil kujul, paluge need teistelt kogenud ja asjatundlikult meeskonnaliikmetelt üle vaadata.

Kuidas nõudeid analüüsida

Mõelge näiteks haridustarkvarasüsteemile, kus õpilane saab registreeruda erinevatele kursustele.

Uurime, kuidas nõudeid analüüsida. Nõuded peavad säilitama oma nõude standardkvaliteedi, hõlmab erinevat tüüpi kvaliteedinõudeid

  • Atomic
  • Unikaalselt tuvastatud
  • täielik
  • Järjepidev ja üheselt mõistetav
  • Jälgitav
  • Esikohale seatud
  • Katsetatav

Analüüsige nõudeid

Mõistke seda näitega, siin näidatud tabelis on kolm veergu,

  1. Esimene veerg tähistab - "nõude kvaliteet"
  2. Teine veerg näitab - "halb nõue mõne probleemiga"
  3. Kolmas veerg on sama, mis teine ​​veerg, kuid – „teiserdatud heaks nõudeks”.
Nõue kvaliteet Halva nõude näide Hea nõude näide
Atomic
  • Õpilased saavad registreeruda bakalaureuse- ja magistriõppesse
  • Õpilased saavad registreeruda bakalaureuseõppe kursustele
  • Õpilased saavad registreeruda kraadiõppesse
Unikaalselt tuvastatud 1- Õpilased saavad registreeruda bakalaureuseõppe kursustele1- Õpilased saavad registreeruda kraadiõppesse
  1. Kursusele registreerumine
  2. Õpilased saavad registreeruda bakalaureuseõppe kursustele
  3. Õpilased saavad registreeruda kraadiõppesse
täielik Professori kasutaja logib süsteemi sisse, esitades oma kasutajanime, parooli ja muu asjakohase teabe Professori kasutaja logib süsteemi sisse, sisestades oma kasutajanime, parooli ja osakonna koodi
Järjepidev ja üheselt mõistetav Üliõpilasel on kas bakalaureuse- või kraadiõppe kursused, kuid mitte mõlemad. Mõned kursused on avatud nii bakalaureuse- kui ka magistriõppe lõpetajatele Üliõpilasel on kas bakalaureuse- või magistriõppe lõpetajad, kuid mitte mõlemad
Jälgitav Kas säilitada õpilaste teave kaardistatud BRD req.ID-ga? Säilitage õpilase teave – kaardistatud BRD nõudega ID 4.1
Esikohale seatud Registreeritud üliõpilane - Prioriteet 1 Säilitage kasutajateavet - Prioriteet 1 Registreeruge kursustele - Prioriteet 1 Kuva aruandekaart - Prioriteet 1 Registreerige üliõpilane-prioriteet 1. Kasutajateabe säilitamine - prioriteet 2. Registreeruge kursustele - Prioriteet 1 Kuva aruandekaart - Prioriteet3
Katsetatav Süsteemi iga leht laaditakse vastuvõetava aja jooksul Registreerige üliõpilased ja registreeruge kursustele. Süsteemi lehed laaditakse 5 sekundi jooksul


Nüüd mõistame kõiki neid nõudeid üksikasjalikult, alustades Atomjää.

Atomic

Atomic

Seega peaks iga teie nõue olema tuumakas, mis tähendab, et see peaks olema väga madala detailitasemega ja seda ei tohiks olla võimalik komponentideks eraldada. Siin näeme kahte nõuete näidet, aadressil Atomic ja üheselt tuvastatud nõuete tasemed.

Nii et jätkame haridusvaldkonna süsteemi ehitamise näitega. Siin on halb nõue "Õpilased saavad registreeruda bakalaureuse- ja magistriõppesse". See on halb nõue, sest see ei ole tuumakas, sest see räägib kahest erinevast üksusest bakalaureuse- ja magistriõppes. Nii et ilmselgelt pole see hea, vaid halb nõue, nii et kirjavahetuse hea nõue oleks selle eraldamine kaheks nõudeks. Nii et üks räägib registreerumisest bakalaureuseõppesse, teine ​​​​aga magistriõppesse registreerumisest.

Unikaalselt tuvastatud

Unikaalselt tuvastatud

Sarnaselt on järgmise kvaliteedinõudeks kordumatu tuvastamise kontrollimine. Siin on meil kaks eraldi nõuet, kuid mõlemal on sama ID#1. Seega, kui viitame oma nõudele viidates ID#-le, kuid pole selge, millist täpselt nõuet me viitame dokumendile või muule süsteemi osale, kuna mõlemal on sama ID#1. Eraldades kordumatu ID-ga, tagastatakse nii hea nõue uuesti jaotisesse 1 – kursusele registreerumine ja sellel on kaks nõuet: 1.1 id on registreerumine bakalaureuseõppesse ja 1.2 id on registreerumine magistriõppesse.

täielik

täielik

Samuti peaksid kõik nõuded olema täidetud. Näiteks siin ütleb halb nõue "professor kasutaja logib süsteemi sisse, esitades oma kasutajanime, parooli ja muu asjakohase teabe". Siin ei ole muu asjakohane teave selge, seega tuleks muu asjakohane teave nõude täielikuks muutmiseks selgelt välja tuua.

Järjepidev ja üheselt mõistetav

Järjepidev ja üheselt mõistetav

Järgmisena peaksid kõik nõuded olema järjepidevad ja üheselt mõistetavad, nii et näiteks siin on meil nõuded: "Üliõpilasel on kas bakalaureuseõppe või magistriõppe kursused, kuid mitte mõlemad" see on üks nõue, on veel mõni nõue, mis ütleb: "Mõnel kursusel on olema avatud nii bakalaureuse- kui ka magistriõppe üliõpilastele”.

Selle nõude probleem seisneb selles, et alates esimesest nõudest näib, et kursused jagunevad kraadiõppe ja kraadiõppe kursuste alla kahte kategooriasse ning üliõpilasel on võimalik valida kahest, kuid mitte mõlemast. Kuid kui lugeda muud nõuet, on see vastuolus esimese nõudega ja ütleb, et mõned kursused on avatud nii magistri- kui ka bakalaureuseõppe üliõpilastele.

Seega on ilmne muuta see halb nõue heaks nõudeks, milleks on "üliõpilasel on kas bakalaureuse- või kraadiõppe kursused, kuid mitte mõlemad". Mis tähendab, et iga kursus märgitakse kas bakalaureuseõppeks või kraadiõppeks

Jälgitav

Jälgitav

Iga nõue peaks olema jälgitav, kuna nõuete tasemed on juba erinevad, nägime juba, et meil olid ülaosas ärinõuded ja seejärel on meil arhitektuuri- ja disaininõuded, millele järgnesid süsteemiintegratsiooni nõuded.

Nüüd, kui muudame ärinõuded arhitektuuri- ja disaininõueteks või muudame arhitektuuri- ja disaininõuded süsteemiintegratsiooninõueteks, peab olema jälgitavus. Mis tähendab, et me peaksime suutma võtta kõik ärinõuded ja kaardistada need vastava ühe või mitme tarkvaraarhitektuuri- ja disaininõudega. Siin on näide halvast nõudest, mis ütleb: „Säilitada üliõpilasteave – vastendatud BRD req ID-ga?” nõude ID-d pole siin antud.

Nii et selle heaks nõudeks teisendamine ütleb sama asja, kuid see on kaardistatud nõude ID-ga 4.1. Seega peaks kaardistamine olema iga nõude jaoks olemas. Samamoodi on meil kõrge ja madala taseme vastendamise nõue, vastendus on olemas ka süsteemi ja integratsiooninõude vahel koodiga, mis seda nõuet rakendab, ning süsteemi ja integratsiooninõude vahel on vastendus testjuhtumiga, mis seda konkreetset nõuet testib. .

Seega on see jälgitavus kogu projekti ulatuses

Esikohale seatud

Esikohale seatud Registreeritud üliõpilane – 1. prioriteet
Kasutajateabe säilitamine – prioriteet 1
Registreeru kursustele – 1. prioriteet
Kuva aruandekaart – prioriteet 1
Registreerige õpilase prioriteet 1
Kasutajateabe säilitamine – prioriteet 2
Registreeru kursustele – 1. prioriteet
Kuva aruandekaart-Priority3

Seejärel tuleb iga nõue prioriteediks seada, nii et meeskonnal on juhised, milliseid nõudeid saab kõigepealt rakendada ja milliseid saab teha hiljem. Siin on näha õpilase registreerimise halb prioriteet, kasutajateabe haldamine ja igale nõudele on antud prioriteet-1. Kõik ei saa olla sama prioriteediga, seega saab nõudeid prioriteediks seada. Nii et siin on hea nõude näide registreerida üliõpilane ja registreeruda kursustele on kõrgeim prioriteet 1, samas kui kasutajateabe säilitamine on prioriteediga 2 allpool ja siis on meil aruande kaart prioriteet-3

Katsetatav

Katsetatav Süsteemi iga leht laaditakse vastuvõetava aja jooksul Registreerige üliõpilased ja registreeruge kursustele. Süsteemi lehed laaditakse 5 sekundi jooksul

Iga nõue peaks olema testitav, siin on halb nõue "iga süsteemi leht laaditakse vastuvõetava aja jooksul". Nüüd on selle nõudega kaks probleemi, esiteks on see, et iga leht võib olla palju, mis ajab testimispüüdlused õhku. Teine probleem on see, et öeldakse, et leht laaditakse vastuvõetava aja jooksul, milline on nüüd vastuvõetav ajavahemik? Kellele vastuvõetav. Seega peame mittetestitava argumendi teisendama testitavaks argumendiks, mis annab konkreetselt teada, millisest leheküljest me räägime "registreerige õpilane ja registreeruge kursustele" ning antakse ka vastuvõetav ajavahemik, mis on 5 sekundit.

Järeldus

Nii et me peame vaatama igat nõuet sobival tasemel. Näiteks kui kavatseme luua tarkvara, mis on seotud süsteemi- ja integratsiooninõuetega. Peame uurima tarkvaranõuete spetsifikatsioonides või kasutajalugudes toodud süsteemi- ja integratsiooninõudeid ning rakendama iga nõude kvaliteeti. Seejärel kontrollige, kas iga nõue on aatomiline, unikaalselt identifitseeritud ja täielik jne.