Süsteemi nõuete esiletoomine ja analüüs
Süsteemi nõuete esiletoomine ja analüüs
Süsteemi nõuete esiletoomine ja analüüs
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Süsteemi nõuete <strong>esiletoomine</strong> <strong>ja</strong><br />
analüüs<br />
Priit Potter<br />
16.09.2013
Priit Potter
Loengu plaan<br />
• Mis on nõue?<br />
• Millal on nõuete kogumine oluline?<br />
• Näited!<br />
• Kuidas nõudeid dokumenteerida <strong>ja</strong> esitada?<br />
• Prototüüpimise näiteid
IT-lahenduse tellimine<br />
Äri- / juhtimine<br />
„IT“
Kommunikatsioon <strong>ja</strong> vastutus<br />
Äriarendus<br />
Arendus,<br />
testimine<br />
jt<br />
Süsteemianalüüs
Analüütiku vastutus<br />
Analüütik vastutab selle eest, et<br />
telli<strong>ja</strong> saab süsteemi, mida va<strong>ja</strong>b
Infosüsteemi va<strong>ja</strong>dus
Nõuete kogumine<br />
(Loodava) Infosüsteemi kirjeldamine<br />
erinevatest aspektidest
Nõuded süsteemile<br />
• „Nõue“ ei ole äri poolt esitatav nõudmine!<br />
• Requirement: something required<br />
– something wanted or needed : necessity <br />
– something essential to the existence or occurrence of<br />
something else : condition
Nõuete olulisus<br />
• Nõuete kogumiku alusel koostatakse süsteem<br />
<strong>ja</strong> va<strong>ja</strong>likud lisatulemid.<br />
– Arenduse eelarve<br />
– Kasutusjuhud<br />
– Komponendi<br />
kirjeldused<br />
– Andmemudel<br />
– Programmikood<br />
– Paigaldamise skriptid<br />
– Automaattestid<br />
– Manuaalsed testid<br />
– Projekti aruanne<br />
– Jne…<br />
– Jne… vastavalt<br />
kliendiga<br />
kokkulepitule
• Nõuded autoremonditööko<strong>ja</strong> programmile?<br />
(täitsime loengus)<br />
– Veebipõhine kasuta<strong>ja</strong>liides<br />
– Riistvara piirangud<br />
– Autentimine<br />
– Kasuta<strong>ja</strong>le tema igapäevatöös mugav <strong>ja</strong> loogiline<br />
kasutada
Mis on nõue?<br />
• Nõude kolm baasomadust:<br />
– Ühene kontrollitavus – küsimusele „kas nõue on<br />
täidetud?“ peab saama võimalikult üheselt vastata “<strong>ja</strong>h”<br />
või “ei”<br />
– Kerge kontrollitavus – nõude kontroll ei tohi võtta<br />
palju aega<br />
– Sõnastuse lihtsus <strong>ja</strong> lühidus – nõude sisutekst ei<br />
tohiks olla pikem kui ~30 sõna
Kas need on head nõuded?<br />
• „Iseteenindus peab suutma vastu võtta 50<br />
liitumist tunnis“<br />
• „Koduleht peab olema ilus“<br />
• „Toetust ei maksta juhul, kui taotluse<br />
esitamisel on vähemalt ühel lapsevanemal<br />
võlgnevus Rae valla ees (sh maamaksu võlg)“<br />
• „Liitumise leht peab avanema väga kiiresti“<br />
• „Koduleht peab avanema kõigis maailma<br />
riikides“
Nõuete kogumik<br />
• Nõuete kogumiku moodustamisel on<br />
eesmärgiks:<br />
– Ühtlane kaetus – nõuete hulk peab ühtlaselt <strong>ja</strong><br />
piisava tihedusega katma kogu arendatavat<br />
teemat.<br />
– Piisav hulk – nõuete hulk peab olema piisavalt<br />
suur, et katta kõik oluline. Aga mitte liiga detailne!<br />
– Struktuurne <strong>ja</strong>otus – nõuete kogumik peaks<br />
olema hierarhiliselt struktureeritud.<br />
14
Nõuete kogumik<br />
Funktsionaalsed<br />
Mittefunktsionaalsed<br />
…<br />
Funktsionaalsus 1<br />
Kasutatavus<br />
…<br />
Funktsionaalsus 2<br />
Käideldavus<br />
…<br />
…<br />
…<br />
Jõudlus<br />
…<br />
Toetatavus<br />
…<br />
+
Nõuete kogumik<br />
• FURPS+<br />
– Functionality (funktsionaalsus)<br />
– Usability (kasutatavus)<br />
– Reliability (käideldavus)<br />
– Performance (jõudlus)<br />
– Supportability (toetus)<br />
– + (disain, tehnilise realiseerimise piirangud, liideste<br />
piirangud, majutuse piirangud jms)<br />
• … samas: oluline ei ole metoodika, vaid see, et<br />
kõik oluline saaks kir<strong>ja</strong>!<br />
16
Funktsionaalsed nõuded<br />
• Kirjeldus, kuidas süsteem peaks käituma<br />
kasuta<strong>ja</strong>poolsete või teisest süsteemist<br />
pärinevate sisendite peale.<br />
– „Võimaldab isikukoodi järgi võlgnevuste nimekir<strong>ja</strong><br />
filtreerida“<br />
– „Ei võta vastu taotlust kui laenusumma lahter on<br />
täitmata“<br />
– „Kuvab tähta<strong>ja</strong>ks tasumata arved punasena“<br />
17
Näide: lift<br />
18
Kasutatavus (usability)<br />
• Sobivus kasuta<strong>ja</strong> mõttemudeliga: millised<br />
kasuta<strong>ja</strong>d <strong>ja</strong> millises situatsioonis teie rakendust<br />
kasutavad?<br />
• Vahendid:<br />
– Esteetika (disain, pildid, ikoonid)<br />
– Õpitavus<br />
– Tagasiside aeg (response time)<br />
– Lihtne navigeerimine<br />
– Kasuta<strong>ja</strong>liidese ühtlus<br />
– Abiinfo, dokumentatsioon<br />
19
Kasutatavus: lift
Käideldavus (reliability)<br />
• Lubatav vigade arv ning tõsidus<br />
• Vigade esinemise vahele jääv a<strong>ja</strong>vahemik<br />
(MTBF – mean time between failures)<br />
• Taastamisele kuluv aeg<br />
• Service Level Agreement<br />
21
Jõudlus (performance)<br />
• Tegevuse kestus (keskmine, maks)<br />
• Tegevuste arv (tegevusi sekundis)<br />
• Võimsus (maks samaaegsete klientide arv)<br />
• Läbilaskevõime (lehekülgi või MB sekundis)<br />
• Piirkoormus, lubatavad jõudluse languse piirid<br />
kõrge koormuse tingimustes<br />
22
Toetatavus (supportability)<br />
• Kui palju raha peab kulutama süsteemi käigus<br />
hoidmisele?<br />
• Testitavus (vigade diagnoosimise lihtsus)<br />
• Hooldatavus (regulaarsed uuendused)<br />
• Konfigureeritavus (runtime vs koodis)<br />
• Laiendatavus<br />
• Lokaliseeritavus<br />
23
Nõuded: kokkuvõte<br />
• Hästi organiseeritud <strong>ja</strong> läbimõeldud nõuete<br />
kogumik:<br />
– Vähendab ümbertegemist <strong>ja</strong> sellest tekkivat stressi<br />
– Vähendab a<strong>ja</strong>kulu kõigis arenduse lõikudes<br />
– Aitab keskenduda olulisele<br />
• -> tagab süsteemi lõppkasuta<strong>ja</strong>le<br />
meeldivama/parema/efektiivsema lahenduse,<br />
mille tagajärjel suureneb süsteemi eesmärkide<br />
täitmine<br />
24
Nõuete olulisus<br />
• Nõuete kogumiku alusel koostatakse süsteem<br />
<strong>ja</strong> va<strong>ja</strong>likud lisatulemid.<br />
– Arenduse eelarve<br />
– Kasutusjuhud<br />
– Komponendi<br />
kirjeldused<br />
– Andmemudel<br />
– Programmikood<br />
– Paigaldamise skriptid<br />
– Automaattestid<br />
– Manuaalsed testid<br />
– Projekti aruanne<br />
– Jne…<br />
– Jne… vastavalt<br />
kliendiga<br />
kokkulepitule
Nõuete olulisus<br />
• Nõuded on aluseks töö tulemite<br />
vastuvõtmisel<br />
✓<br />
✓<br />
✓<br />
✓
Kui mahukas peaks olema hea<br />
nõuete kogumik?
Prototüüpimise plussid<br />
• Lahendus mõeldakse detailides läbi<br />
• Lõppkasuta<strong>ja</strong> saab „proovida“ funktsionaalsust<br />
enne realisatsiooni<br />
• Telli<strong>ja</strong>l <strong>ja</strong> täit<strong>ja</strong>l ühine nägemus lõpptulemusest<br />
• Telli<strong>ja</strong> <strong>ja</strong> täit<strong>ja</strong> saavad täpsemalt kokku leppida<br />
projekti skoobis ning vahetulemites<br />
• Mis on lihtsam <strong>ja</strong> mis keerulisem funktsionaalsus<br />
• Selgemalt saab eraldada, mis on muudatus, mis<br />
on puudujääk <strong>ja</strong> mis täit<strong>ja</strong> viga<br />
• Selgem ülevaade kui palju projektist valmis on
Visualiseerimise meetodid<br />
• Seinatehnika <strong>ja</strong> prototüübikaust<br />
– Tahvel seinal <strong>ja</strong> fotoaparaat<br />
– Paber, pliiats <strong>ja</strong> fotoaparaat<br />
– ...<br />
• Passiivsed kuvad eraldi dokumentides (failides)<br />
– Olemasolev rakendus <strong>ja</strong> „Paint“<br />
– Excel, Visio, jne<br />
– Tehniline ülesanne koos ekraanivaatega<br />
– ...<br />
• Infosüsteemi prototüüplahendused:<br />
– Prototüübimootorid<br />
– Lihtsamad HTML või klient-server rakendused<br />
– ...
Wireframe’i näited
Wireframe’i näited<br />
http://www.balsamiq.com/
Kokkuvõtteks<br />
• Efektiivseks süsteemianalüüsiks on va<strong>ja</strong>:<br />
– aru saada, milleks süsteem luuakse (!!)<br />
– head nõuete kogumikku<br />
– head viisi kliendiga skoobi jm detailide<br />
kokkuleppimiseks<br />
• Kasutage prototüüpimist!
Küsimused?<br />
Priit Potter<br />
priit@potter.ee