Süsteemi nõuete esiletoomine ja analüüs
Süsteemi nõuete esiletoomine ja analüüs
Süsteemi nõuete esiletoomine ja analüüs
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
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