Meeskond MMA

From ICO wiki
Revision as of 22:50, 18 November 2012 by Ahokkone (talk | contribs) (→‎Ettejuhtuda võivad probleemid)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Teema: teeme loaprogrammi. Proovime võimalikult universaalse ja laiendatava teha. Et oleks võimalik väiksema vaevaga kasutusele võtta erinevates valdkondades: raamatukogu, kodu riiulid, poe ladu. Saaks hoida vajaliku infot igasuguste asjade kohta: kiibid, moosid jne, kasvõi sokid. Võib nimetada vastava valdkonna probleemi lahendamise raamistikuks. Proovime implementeerida ka mingi konkreetse laoeseme tüübi laoshoidmise äriloogika ja kasutajaliidese.


Analüüs

Tegemist on nõuete analüüsiga uue süsteemi loomiseks. Analüüs annab kirjelduse, mida uuest tarkvarast saada soovitakse.


Üldvaade

Järgnevalt esitatakse mõisted, eesmärgid, põhiprotsesside, põhiobjektide, sündmuste, tegutsejate ja infovajaduste loetelu. Joonised on koostatud UML keeles.


Taust

On hulk esemeid, väga erinevaid aga mingi sarnasuse alusel on nad paigutatud ühte piirkonda. Nende üle on raske arvet pidada. Puudub ülevaade kui palju on esemeid, kus nad asuvad, mis on nende esemete põhiinfo. Ei ole võimalik leida esemeid kindlate parameetrite järgi. Näiteks: lähiajal riknevad kaubad, takistid vahemikus 1...2k ohm, tõenäosusega x lähima n aja jooksul otsa saavad esemed piirkonnas y, omavahel sobivad esemed (alternatiivtooted) jne.


Mõisted

ladu
Asukoht, kus hoitakse asju
laoese
huvipakkuv asi, mille kohta on vaja infot hoida

Tegutsejad (kasutajad)

Süsteemi kasutajate rollid on järgnevad:

  • administraator
  • andmesisestaja
  • tavakasutaja (vaataja)

Protsesside loetelu

  • sisestamine
  • otsimine
  • ülevaade/statistika/aruanded

Toimimisobjektid

  • kasutaja
  • laoese
  • ladu / asukoht

Infovajaduste loetelu

laoeseme:

  • nimetus
  • kogus
  • ostu hind
  • asukoht
  • sisestamisaeg

laoesemete:

  • nimekiri
  • otsimisvõimalus

lao:

  • asukoht
  • pindade süstematiseerimse loogika

Infosüsteemi eesmärgid

Laotarkvara luuakse selleks, et võimaldada toiminguid laoesemete infoga. Kasutaja saab tarkvara kaudu otsida teda huvitavat eset, vaadata eseme infot, teostada komplekspäringuid leidmaks huvipakkuvaid esemeid, jagada infot, automatiseerida esemete haldamist. Iga eesmärgi kohta on määratud mõõdetav tulemus.


Eesmärk 1: talletada laoeseme infot

Eelis: on võimalik teostada laoeseme-põhiseid toiminguid

Mõõt: vähemalt 1-e laoesme info on võimalik salvestada baasi


Eesmärk 2: otsida esemeid põhitunnuste järgi, mis on üle terve süsteemi kohustuslikud

Eelis: ajasääst kasutajal

Mõõt: ese on nime või koodi järgi leitav


Eesmärk 3: otsingutulemustest saab omakorda otsida

Eelis: kasutajamugavus. Keerukad otsingud asenduvad korduvkasutatava põhimõttega

Mõõt: peale otsingut näidatakse leitud esemete parameetreid, mille seast saab omakorda välistada/otsida


Eesmärk 4: statistika/ülevaate võimaldamine

Eelis: selge ülevaade annab infot ja võimaldab inimesel avastada sisulisi vigu kõrgemal loogika tasemel

Mõõt: Vastav osa on loodud


Eesmärk 5: andmete ajaloo pidamine

Eelis: leiab infot ajalooliste esemete kohta

Mõõt: laos enam mitteolevad esemed on andmebaasis leitavad (ja kasutajaliideses)


Eesmärk 5.2: tegevuste ajaloo pidamine

Eelis: andmete muutmist saab seostada rollidega ja isikutega

Mõõt: salvestatakse tegevuse tüüp, aeg, laoeseme ja isiku andmed (viide või andmed)


Eesmärk 6: tagada andmete terviklikus

Eelis:

Mõõt: andmebaasis kasutatakse välisvõtmeid (foreign key)


Eesmärk 7: andmete juurdepääsu kontrollimine

Eelis: volitamata isikud ei saa teada salajast infot

Mõõt: loodud autentimine ja autoriseerimine (või liidestus olemasolevaga). Iga use-case kohta on juurdepääsu test-case (unit test)


Eesmärk 8: broneerimine

Eelis: teadmisi saab sisestada süsteemi enne sündmuse toimumist

Mõõt: on võimalik laoesemete väljavõtmist lukustada teiste eest. On võimalik laopindasid lukustada hõivamise eest


Eesmärk 9: liidestus teiste süsteemide ja arendajate gruppidega

Eelis: süsteem integreerub teiste süsteemidega läbi SOA, tekib sünergia. Väheneb andmete dubleerimine.

Mõõt: vähemalt laoesemete põhiandmed on kättesaadavad üle masinliideste (SOAP)


Eesmärk 10: andmete eksport

Eelis: võimaldab kasutajal andmeid töödelda mugavama või valdkonna spetsiifilisema tööriistaga

Mõõt: vähemalt laoeseme põhiandmeid saab eksportida kas XML või CSV formaadis. Nimekirjast keerukama (seostega) struktuuri puhul on eelistatud XML.


Eesmärk 11: ühte baasi kasutavad mitu kasutajaliidese "desktop" rakendust

Eelis: väheneb andmete dubleerimine, andmed mugavamalt hallatavad

Mõõt: kasutajaliidese ja rakendusserveri vahel ei kasutata SQL klienti. Selle asemel ühendub kasutaja rakendus serveris oleva rakendusserveriga teenusepõhiselt.


Eesmärk 12: laoesemete "template"-id

Eelis: suureneb laoesemete sisestamise efektiivus. Väheneb kasutaja ajakulu.

Mõõt: eeltäidetud vormi kaudu saab sisestada uut laoeset.

Funktsionaalne vaade

Kasutuslood

UML Use-case mudelid

(TODO)


Kasutuslood tekstina

Järgnevalt on toodud kasutuslugude mudelid tekstina.


Nimetus: Lao asukohtade sisestamine

Üldkirjeldus: defineeitakse laoesemete hoidmise asukohad

Kasutamise sagedus: harva, enamasti ühekordne tegevus

Eeltingimused: asukohtade süstematiseerimine on kokku lepitud


Nimetus: laoeseme sisestamine

Üldkirjeldus: laoeseme lisamine. Vajadusel seostamine olemasolevaga

Kasutamise sagedus: kasutatakse tihti. Vahel korratakse tegevust palju kordi.

Eeltingimused: lao asukohtade sisestamine


Nimetus: laoeseme sisestamine2

Üldkirjeldus: sisestatakse kasutades eeltäidetud vormi

Kasutamise sagedus: kasutatakse tihti

Eeltingimused: on loodud "template"-id või saab valida sisestatud laoeseme andmeid vormi eeltäitmiseks

Kirjeldus: Vastavalt lao tüübile võib esemete info korduda. Selleks on mõistlik luua abivahendid käsitöö vähendamiseks ja sisestamise kiiruse tõstmiseks. Kasutaja saab suure sagedusega korduvate tööde jaoks kasutada eeltäidetud vorme.


Nimetus: laoeseme kuvamine

Üldkirjeldus: sisestatud esemete vaatamine

Kasutamise sagedus: kasutatakse väga tihti

Eeltingimused: on esemeid sisestatud, mida kuvada


Nimetus: laoeseme otsimine

Üldkirjeldus: sisestatud esemete seast otsimine

Kasutamise sagedus: kasutatakse väga tihti

Eeltingimused: on esemeid sisestatud, mida otsida


Mittefunktsionaalne vaade

Andmetöötluse aeg
Enamus päringuid peaksid andmebaasist vastama alla 2 sek. Ressursinõudlikud detailse statistika päringud peaksid olema kasutajaliideses selgelt eristatavad.
Kasutajaliides peab olema mugav ja ajakohane.


Andmevaade

  • Konseptuaalmudel (TODO)
  • Andmemudel (TODO)

Ettejuhtuda võivad probleemid

  1. Kõikvõimaliku info leidmiseks esemete seast peab selle info sisestama laoeseme andmeid täites. Enamasti ei soovi kasutaja seda sisestada või ei ole sellise tegevuse tasuvus prognoositav. Teatud esemetel on väga erinevat tüüpi infot ja seda kõike ei olekski võimalik tarkvarasse implementeerida.
    Lahendused:
    • hoida vaid kõige rohkem vajaminevat: nimetus, asukoht, kogus, soetamise hind, unikaalne või klassifitseeriv kood
    • jätta mugav laiendusvõimalus arendajale
    • võtta kasutusele taksonoomia (kategoriseerimine, liigitamine). Tag-id on kasutaja hallatavad. [ http://en.wikipedia.org/wiki/Tag_%28metadata%29 ]
  2. Laoesemete atribuudid võivad muutuda laotarkvara teadmata kuna puudub jäik side mudeli ja tegeliku maailma vahel. Muutused võivad välja tulla pika aja möödudes ning võib tekitada kasutajale palju lisatööd - andmestiku sünkroniseerimist tegeliku maailma olukorrale vastavaks. See võib olla teatud juhul isegi võimatu kui ei ole enam võimalik luua füüsilist kontakti laoesemega. Näiteks: varastatud ese, aurustunud keemiline lurr jne. Teatud juhul ei ole enam võimalik tagantjärgi määrata andmeid ja neid tarkvara kaudu andmekogusse sisestada, kuigi tarkvara seda nõuab.
    Lahendused:
    • tarkvara ei tohiks liiga palju kasutajalt nõuda. Samas ei tohiks andmekogu (baasi) terviklikus kannatada. Kohustuslike andmete määramisel tuleb arvestada eriolukordadega
  3. Lahendus dubleerib paremat spetsiifilist rakendust. Näiteks failisüsteemi. Seda võib tihti näha multimeedia mängijatest/organiseerijatest. Võimaldavad palju sisuspetsiifilisi toiminguid kuid ese kaugeneb oma elementaarsetest toimingutest, mida võimaldab failisüsteem, kuna eset kasutatakse läbi spetsiifilise rakenduse.
    Lahendus:
    • hoida mõistliku piiri laoesemete tüüpidega
  4. Kasutaja soovib kasutada "native" kasutajaliidest. Eeldame, et põhiline sihtgrupp on MS Windows kasutajad.
    Lahendused:
    • .NET C#-is vastavad tehnoloogiad olemas: WPF, ...
    • Muude keskkondadega koostööks on SOA liidestus

Skoop ja piirangud

  • Ei ole võimalik mitmest kasutajaliidesest kasutada ühte keskset andmebaasi kuna puudub üle võrgu andmevahetuse kiht. Selleks on vaja eraldi rakendusserverit kuid see ei mahu aine skoopi.
  • Realiseeritakse ainult osa põhifunktsionaalsusest, rakendus jääb osaliseks ja edaspidi täiendamiseks. Tehakse ainult nö "proof of concept" prototüüp. Esialgses lahenduses puuduvad:


Must Have

  • Sisselogimise süsteem
  • Ladu, andmebaasi näol
  • Andmete sisestamine lattu
  • Laost toodete otsimine ja kuvamine kasutajale
  • Erinevad kasutajatüübid (rollid, õiguste süsteem)
  • Mugav kasutajaliides
  • Tegevuste kohta logi pidamine

Nice To Have

  • Lisada toodetest pildid
  • Veebiliides
  • Kuvada andmeid toodete, kohta erivate diagrammidena