Ohjelmistovaatimusten analyysi esimerkin avulla

โšก ร„lykรคs yhteenveto

Ohjelmistovaatimusten analyysi jakaa sidosryhmien tarpeet toiminnallisiin ja ei-toiminnallisiin lausekkeisiin, luokittelee ne liiketoiminta-, arkkitehtuuri- ja jรคrjestelmรคtasolla ja tarkistaa sitten jokaisen laatuominaisuuksien perusteella testattavan, trackรคyttรถkelpoinen, priorisoitu erittely.

  • ๐Ÿ“ Vaatimustyypit: Liiketoiminta-, arkkitehtuuri- ja suunnitteluvaatimukset sekรค jรคrjestelmรค- ja integraatiovaatimukset muodostavat kolme tasoa, jotka jรคsentรคvรคt jokaista ohjelmistospesifikaatiota.
  • ๐Ÿ”€ Toiminnallinen vs. ei-toiminnallinen: Toiminnalliset lauseet kuvaavat, mitรค jรคrjestelmรคn on tehtรคvรค, kun taas ei-toiminnalliset lauseet asettavat mitattavia suorituskyky-, tietoturva- ja kรคytettรคvyystavoitteita.
  • ๐Ÿ“š Vaihtoehtoiset lรคhteet: Tyรถtoverit, aiemmat julkaisut, vanhemmat vaatimusdokumentit, vikaraportit ja asennusoppaat toimittavat vaatimukset, kun viralliset ohjeistukset puuttuvat.
  • โœ… Laatuominaisuudet: Atomic, yksilรถllisesti tunnistettu, tรคydellinen, johdonmukainen, tracTestattava, priorisoitava ja testattava ovat seitsemรคn ominaisuutta, jotka jokaisen vaatimuksen on tรคytettรคvรค.
  • ๐Ÿ”— Pรคittรคin Trackyky: Liiketoimintavaatimukset kartoitetaan suunnitteluun, suunnittelusta koodiin ja koodista testitapauksiin, joten laajuus ja kattavuus pysyvรคt nรคkyvissรค koko projektin ajan.
  • ๐ŸŽฏ Testattava sanamuoto: Korvaa epรคmรครคrรคiset termit, kuten โ€jokainen sivuโ€ ja โ€hyvรคksyttรคvรค aikaโ€, nimetyillรค sivuilla ja mitattavissa olevilla tavoitteilla, kuten viidellรค sekunnilla.

Ohjelmistovaatimusten analyysi

Ohjelmistovaatimus on toiminnallinen tai ei-toiminnallinen tarve, joka on toteutettava jรคrjestelmรคssรค. Toiminnallinen tarkoittaa tietyn palvelun tarjoamista kรคyttรคjรคlle.

Esimerkiksi pankkisovelluksen yhteydessรค toiminnallinen vaatimus on, ettรค kun asiakas valitsee โ€Nรคytรค saldoโ€, hรคnen pitรคisi voida nรคhdรค viimeisin tilinsรค saldo.

Ohjelmistovaatimus voi olla myรถs ei-toiminnallinen, kuten suorituskykyvaatimus. Ei-toiminnallinen vaatimus voi esimerkiksi edellyttรครค, ettรค jรคrjestelmรคn jokainen sivu latautuu kรคyttรคjille viiden sekunnin kuluessa.

Periaatteessa ohjelmistovaatimus on a

  • Toiminnallinen tai
  • Ei-toiminnallinen

tarve joka on otettava kรคyttรถรถn jรคrjestelmรครคn. Ohjelmistovaatimukset ilmaistaan โ€‹โ€‹yleensรค lausekkeina.

Vaatimustyypit

LiiketoimintavaatimuksetNรคmรค ovat projektin liiketoimintatapauksesta poimittuja yleisiรค vaatimuksia. Esimerkiksi mobiilipankkipalvelujรคrjestelmรค tarjoaa pankkipalveluita Kaakkois-Aasiaan. Intian osalta liiketoimintavaatimukseksi on valittu tiliyhteenveto ja varojen siirto, kun taas Kiinan osalta se on tiliyhteenveto ja laskujen maksaminen.

Maa Yritys, joka tarjoaa pankkitoimintoja tai -palveluita
Intia Tilin yhteenveto ja varojen siirto
Kiina Tilin yhteenveto ja Bill Maksu

Archirakenne- ja suunnitteluvaatimuksetNรคmรค vaatimukset ovat yksityiskohtaisempia kuin liiketoimintavaatimukset ja ohjaavat ratkaisun arkkitehtuuria. Ne mรครคrittรคvรคt liiketoimintavaatimuksen toteuttamiseen tarvittavan kokonaissuunnittelun. Koulutusorganisaatiossa tyypillisiรค arkkitehtuurin ja suunnittelun kรคyttรถtapauksia ovat kirjautuminen, kurssitiedot ja ilmoittautuminen. Vaatimus olisi alla olevan mukainen.

Pankkitoiminnan kรคyttรถtapaus Vaatimus
Bill Maksu Tรคmรค kรคyttรถtapaus kuvaa kuinka asiakas voi kirjautua verkkopankkiin ja kรคyttรครค verkkopankkia Bill Maksutapa. Asiakas voi nรคhdรค rekisterรถityneiden laskuttajien maksamatta olevat laskut. Asiakas voi lisรคtรค, muokata ja poistaa laskuttajan tietoja. Asiakas voi mรครคrittรครค tekstiviesti- ja sรคhkรถposti-ilmoituksia eri laskutustoiminnoille. Asiakas voi tarkastella aiemmin maksettujen laskujen historiaa. Tรคmรคn kรคyttรถtapauksen aloittavat toimijat ovat pankkiasiakkaita tai tukihenkilรถstรถรค.

Jรคrjestelmรค- ja integrointivaatimuksetAlimmalla tasolla meillรค on jรคrjestelmรค- ja integraatiovaatimukset. Se tarjoaa yksityiskohtaisen kuvauksen jokaisesta vaatimuksesta. Se voidaan tallentaa kรคyttรคjรคtarinoina, jotka on kirjoitettu arkipรคivรคisellรค liiketoiminnan kielellรค. Vaatimukset sisรคltรคvรคt runsaasti yksityiskohtia, jotta kehittรคjรคt voivat aloittaa koodaamisen. The Bill Alla oleva maksumoduulin esimerkki nรคyttรครค laskuttajan lisรครคmisen vaatimuksen.

Bill Maksu vaatimukset
Lisรครค Billers Palveluntarjoajan nimi, asiakassuhteen numero, automaattiset maksut โ€“ kyllรค/ei, maksa kokonaan Bill โ€“ Kyllรค/Ei, automaattisen maksun raja โ€“ ร„lรค maksa, jos Bill on yli mรครคritellyn mรครคrรคn

Joskus projektia varten ei vรคlttรคmรคttรค saada lainkaan vaatimuksia tai dokumentteja, joiden kanssa tyรถskennellรค. Silti on olemassa muita vaatimustietolรคhteitรค, joihin voit luottaa ohjelmistosi tai testisuunnittelusi pohjana. Muut vaatimuslรคhteet, joihin voit luottaa, on lueteltu alla.

Muut vaatimusten lรคhteet

  • Tiedonsiirto kollegoilta tai tyรถntekijรถiltรค, โ€‹โ€‹jotka jo tyรถskentelevรคt projektin parissa
  • Keskustele projektista liiketoiminta-analyytikon, tuotepรครคllikรถn, projektipรครคllikรถn ja kehittรคjien kanssa
  • Analysoi jo toteutettua jรคrjestelmรคn aiempaa versiota
  • Analysoi projektin vanhempia vaatimusasiakirjoja
  • Revtarkastella aiempia virheraportteja; jotkin virheraportit muunnetaan parannuspyynnรถiksi, jotka voidaan toteuttaa nykyisessรค versiossa
  • Tarkista asennusoppaasta, jos sellainen on saatavilla, mitรค asennuksia tarvitaan.
  • Analysoi toimiala- tai toimialaosaamista, jota tiimi yrittรครค soveltaa

Kรคytitpรค mitรค tahansa vaatimusten lรคhdettรค tahansa, dokumentoi ne jaettuun muotoon ja anna kokeneiden tiimin jรคsenten tarkistaa ne.

Kuinka analysoida vaatimuksia

Tarkastellaan esimerkkiรค koulutusohjelmistosta, jossa opiskelija voi ilmoittautua eri kursseille.

Tutkitaanpa, miten vaatimuksia voidaan analysoida. Jokaisen vaatimuksen on tรคytettรคvรค joukko vakiolaatuominaisuuksia, joihin kuuluvat seuraavat:

  • Atomic
  • Yksilรถllisesti tunnistettu
  • Tรคydellinen
  • Johdonmukainen ja yksiselitteinen
  • Trackyvykรคs
  • Priorisoitu
  • Testattava

Analysoi vaatimukset

Seuraava taulukko havainnollistaa kutakin ominaisuutta kolmella sarakkeella:

  1. Ensimmรคinen sarake osoittaa - "laatuvaatimus"
  2. Toinen sarake osoittaa - "huono vaatimus jossain ongelmassa"
  3. Kolmannessa sarakkeessa sama vaatimus on โ€muunnettu hyvรคksi vaatimukseksiโ€.
Vaatimus Laatu Esimerkki huonosta vaatimuksesta Esimerkki hyvรคstรค vaatimuksesta
Atomic Opiskelijat voivat ilmoittautua perustutkinto- ja jatko-opintoihin Opiskelijat voivat ilmoittautua kandidaattitason kursseille. Opiskelijat voivat ilmoittautua jatko-opintojen kursseille.
Yksilรถllisesti tunnistettu 1- Opiskelijat voivat ilmoittautua kandidaattitason kursseille. 1- Opiskelijat voivat ilmoittautua jatko-opintoihin. Kurssille ilmoittautuminen. Opiskelijat voivat ilmoittautua kandidaattitason kursseille. Opiskelijat voivat ilmoittautua jatko-opintojen kursseille.
Tรคydellinen Professorin kรคyttรคjรค kirjautuu jรคrjestelmรครคn antamalla kรคyttรคjรคtunnuksensa, salasanansa ja muut asiaankuuluvat tiedot Professorin kรคyttรคjรค kirjautuu jรคrjestelmรครคn antamalla kรคyttรคjรคtunnuksensa, salasanansa ja laitoskoodinsa
Johdonmukainen ja yksiselitteinen Opiskelijalla on joko perustutkinto- tai jatkokurssit, mutta ei molempia. Jotkut kurssit ovat avoimia sekรค perustutkintoa suorittaville ettรค jatko-opiskelijoille Opiskelijalla on joko perustutkinto- tai jatkotutkinto, mutta ei molempia
Trackyvykรคs Sรคilytetรครคnkรถ opiskelijatiedot BRD:n req.ID-kartoituksella? Sรคilytรค opiskelijatiedot - Kartoitettu BRD:n vaatimukseen ID 4.1
Priorisoitu Rekisterรถitynyt opiskelija - Prioriteetti 1. Kรคyttรคjรคtietojen yllรคpito - Prioriteetti 1. Kursseille ilmoittautuminen - Prioriteetti 1. Arviointikortin tarkastelu - Prioriteetti 1 Rekisterรถi opiskelija - Prioriteetti 1. Yllรคpidรค kรคyttรคjรคtietoja - Prioriteetti 2. Ilmoittaudu kursseille - Prioriteetti 1. Nรคytรค raportti - Prioriteetti 3
Testattava Jokainen jรคrjestelmรคn sivu latautuu hyvรคksyttรคvรคssรค ajassa Rekisterรถi opiskelija ja ilmoittaudu kursseille. Jรคrjestelmรคn sivut latautuvat 5 sekunnissa

Ymmรคrrรคmme jokaisen nรคistรค ominaisuuksista tarkemmin, aloittaen Atomic.

Atomic

Atomic

Jokaisen vaatimuksen tulisi olla atomi, eli sen on oltava mahdollisimman yksityiskohtainen eikรค sitรค voida jakaa edelleen komponentteihin. Seuraavissa esimerkeissรค vertaillaan atomi- ja ei-atomisia vaatimuksia.

Jatketaan koulutusjรคrjestelmรคesimerkillรค: Tรคssรค huono vaatimus on โ€Opiskelijat voivat ilmoittautua sekรค perustutkinto- ettรค jatko-opintoihinโ€. Tรคmรค on huono vaatimus, koska se ei ole atomaarinen โ€“ se sekoittaa kaksi eri kokonaisuutta, perustutkinto- ja jatko-opinnot. Vastaava hyvรค vaatimus jakaa sen kahdeksi vaatimukseksi. Toinen vaatimus kattaa ilmoittautumisen perustutkinto-opintoihin ja toinen jatko-opintoihin.

Yksilรถllisesti tunnistettu

Yksilรถllisesti tunnistettu

Seuraava laatuattribuutti on yksilรถllinen tunniste. Huonossa esimerkissรค kahdella erillisellรค vaatimuksella on sama ID#1. Jos tiimi viittaa vaatimukseen sen ID:llรค, on epรคselvรครค, kumpaa nรคistรค kahdesta tarkoitetaan. Hyvรคssรค vaatimuksessa ne on ryhmitelty osioon 1 โ€“ Kurssille ilmoittautuminen, ja siihen kuuluvat alavaatimukset 1.1 (ilmoittautuminen perustutkinto-opintoihin) ja 1.2 (ilmoittautuminen jatko-opintoihin).

Tรคydellinen

Tรคydellinen

Jokaisen vaatimuksen tulee olla tรคydellinen. Esimerkiksi tรคssรค huonossa vaatimuksessa sanotaan, ettรค "professorikรคyttรคjรค kirjautuu jรคrjestelmรครคn antamalla kรคyttรคjรคtunnuksensa, salasanansa ja muut asiaankuuluvat tiedot". "Muut asiaankuuluvat tiedot" on epรคmรครคrรคinen. Tรคydellinen vaatimus listaa tarkat kentรคt, kuten laitoksen koodin, jotka professorin on annettava.

Johdonmukainen ja yksiselitteinen

Johdonmukainen ja yksiselitteinen

Jokaisen vaatimuksen tulee olla johdonmukainen ja yksiselitteinen. Huonossa esimerkissรค yhdessรค vaatimuksessa todetaan: โ€Opiskelijalla on joko perustutkinto- tai jatko-opintoihin liittyviรค kursseja, mutta ei molempiaโ€, kun taas toisessa vaatimuksessa todetaan: โ€Jotkut kurssit ovat avoimia sekรค perustutkinto- ettรค jatko-opiskelijoilleโ€.

Ensimmรคinen vaatimus tarkoittaa, ettรค kurssit jaetaan kahteen eksklusiiviseen kategoriaan, mutta toinen vaatimus on ristiriidassa sen kanssa avaamalla jotkin kurssit molemmille ryhmille.

Hyvรค vaatimus ratkaisee ristiriidan toteamalla selvรคsti, ettรค jokainen kurssi merkitรครคn joko kandidaatti- tai maisterivaiheen kurssiksi ja ettรค opiskelija voi ilmoittautua vain yhden kategorian kursseille.

Trackyvykรคs

Trackyvykรคs

Jokaisen vaatimuksen on oltava tracmahdollista, koska vaatimuksia on useilla tasoilla: liiketoiminnan, arkkitehtuurin ja suunnittelun sekรค jรคrjestelmรคn ja integraation tasolla.

Kun muunnat liiketoimintavaatimuksen arkkitehtuuri- ja suunnitteluvaatimuksiksi tai arkkitehtuuri- ja suunnitteluvaatimukset jรคrjestelmรค- ja integraatiovaatimuksiksi, tracSuoritettavuus on sรคilytettรคvรค. Jokaisen liiketoimintavaatimuksen tulisi vastata yhtรค tai useampaa arkkitehtuuri- ja suunnitteluvaatimusta. Huonossa esimerkissรค โ€Yllรคpidรค opiskelijatietoja โ€“ yhdistetty BRD-pyyntรถtunnukseen?โ€ vaatimuksen tunnus puuttuu.

Hyvรค vaatimus tallentaa saman lausekkeen, mutta se on eksplisiittisesti yhdistetty BRD-vaatimukseen ID 4.1. Jokaisella vaatimuksella on oltava tractoimintakykykarttapingJรคrjestelmรค- ja integrointivaatimusten tulisi myรถs vastata niitรค toteuttavaa koodia ja niitรค todentavia testitapauksia.

TracToimivuus ulottuu siis koko projektin ajan pรครคstรค pรครคhรคn.

Priorisoitu

Jokainen vaatimus on priorisoitava, jotta tiimi tietรครค, mitรค toteutetaan ensin ja mikรค voi odottaa. Huonossa esimerkissรค Rekisterรถi opiskelija, Yllรคpidรค kรคyttรคjรคtietoja, Ilmoita kursseista ja Nรคytรค raportti on kaikki asetettu prioriteettitasolle 1. Mikรครคn ei voi olla prioriteettitasolla 1, joten vaatimukset on asetettava realistisesti jรคrjestykseen. Hyvรคssรค esimerkissรค Rekisterรถi opiskelija ja Ilmoita kursseista -toiminnolle annetaan korkein prioriteettitaso 1, Yllรคpidรค kรคyttรคjรคtietoja -toiminnolle prioriteettitaso 2 ja Nรคytรค raporttitasolle prioriteettitaso 3.

Testattava

Jokaisen vaatimuksen tulisi olla testattavissa. Huono esimerkki, โ€jรคrjestelmรคn jokainen sivu latautuu hyvรคksyttรคvรคssรค ajassaโ€, ei ole testattavissa kahdesta syystรค. Ensinnรคkin โ€jokainen sivuโ€ voi tarkoittaa kymmeniรค sivuja, mikรค paisuttaa testaustyรถtรค. Toiseksi โ€hyvรคksyttรคvรค aikaโ€ on mรครคrittelemรคtรถn โ€“ kenelle se on hyvรคksyttรคvรค ja mitรค vertailuarvoa vasten? Hyvรค vaatimus korjaa molemmat ongelmat nimeรคmรคllรค sivut (โ€rekisterรถidy opiskelijaksi ja ilmoittaudu kursseilleโ€ -sivut) ja asettamalla mitattavan viiden sekunnin tavoitteen.

UKK

Tekoรคlytyรถkalut ryhmittelevรคt sidosryhmien palautteen, merkitsevรคt epรคselvรคn kielen ja havaitsevat pรครคllekkรคisiรค tai puuttuvia vaatimuksia laajoissa lรคhtรถtasoissa. Liiketoiminta-analyytikot tarkistavat edelleen jokaisen ehdotuksen kyselytietuetta vasten ennen kuin se lisรคtรครคn hyvรคksyttyjen vaatimusten joukkoon.

GitHub Copilot ja GPT laativat kรคyttรคjรคtarinoita, hyvรคksymiskriteerejรค ja liiketoimintasรครคntรถjรค lyhyiden kehotteiden pohjalta. Liiketoiminta-analyytikko tarkistaa jokaisen tuotoksen laatuominaisuuksien, kuten atomitason, testattavuuden ja luotettavuuden, perusteella. tractoteutettavissa ennen kuin siitรค tulee hyvรคksytty vaatimus.

Ohjelmistovaatimusten mรครคrittely (Software Requirements Specification) on virallinen asiakirja, joka listaa jรคrjestelmรคn toiminnalliset vaatimukset, ei-toiminnalliset vaatimukset, rajapinnat ja rajoitukset. Useimmat tiimit noudattavat IEEE 830- ja ISO 29148 -standardeja SRS:รครค kirjoittaessaan.

Vaatimusten kerรครคmisessรค eli selvittรคmisessรค kerรคtรครคn raakatietoja sidosryhmiltรค. Vaatimusanalyysissรค nรคmรค tarpeet sitten jรคrjestetรครคn, tarkennetaan ja tarkistetaan seitsemรครค laatuominaisuutta vasten, jotta toimitustiimi saa selkeรคt ja testattavat lausunnot.

Kรคytรค tekniikoita, kuten MoSCoW (Must, Should, Could, Would), Kano-analyysi, painotettu pisteytys tai viivรคstyskustannukset. Yhdistรค liiketoiminnan arvo toimitustyรถhรถn ja -riskiin ja sovi sitten tilaus sponsorin ja tuoteomistajan kanssa ennen kehityksen aloittamista.

Vaatimukset TracToimivuusmatriisi linkittรครค jokaisen vaatimuksen sen suunnitteluelementtiin, koodikomponenttiin ja testitapaukseen. Se antaa eteen-, taaksepรคin- ja kaksisuuntaisen trackรคytettรคvyys, joten mitรครคn ei jรครค huomaamatta, ylirakenneta tai toimiteta ilman vastaavaa testiรค.

Epรคselvรค sanamuoto, priorisoimattomat ruuhkat, puuttuvat tracSujuvuus, ratkaisuideoiden yhdistรคminen liiketoiminnan tarpeisiin ja laajuuden jรครคdyttรคminen ilman muutostenhallintaa ovat virheitรค, jotka aiheuttavat eniten uudelleentyรถstรถรค, aikataulun venymistรค ja tuotantovirheitรค.

Suosittuja tyรถkaluja ovat Jama Connect, IBM OVET, Modern Requirements varten Azure DevOps, Jira ja Xray, Visure Requirements ALM ja Blueprint. Tiimit valitsevat alustan sรครคntelytarpeiden, tiimin koon ja resurssien syvyyden perusteella. tracvaadittava toimivuus.

Tiivistรค tรคmรค viesti seuraavasti: