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.
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
Seuraava taulukko havainnollistaa kutakin ominaisuutta kolmella sarakkeella:
- Ensimmรคinen sarake osoittaa - "laatuvaatimus"
- Toinen sarake osoittaa - "huono vaatimus jossain ongelmassa"
- 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
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
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
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
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
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.






