CSharp Meeskond wipeAll

From EIK wiki

Meeskond ja liikmed

  • Meeskonna nimi: wipeAll
  • Meeskonna liikmed:
    • Vladimir Domaškin projektijuht

Kirjeldus

Käesoleva projekti raames on meeskonnale ülesandeks luua programm, mis hakkab haldama kõvakettaid. Täpne kirjeldus tuleb projekti analüüsis.

Tähtajad

Projekti tähtajad

  • 05.11.2012 - Meeskonna kokkupanek ja idee
  • 19.11.2012 - Analüüs
  • 10.12.2012 - Prototüüp
  • 17.12.2012 - Retsensioon
  • 07.01.2013 - Lõpptoode
  • Esitlus/Kaitsmine

Töökäik

05.11.2012

  • Meeskonna kokkupanek. Tegemist on eriotstarve projektiga, sellepärast meeskond koosneb ühest liikmest.

05.11.2012 - 11.11.2012

  • Projekti analüüs. Ülesannete paika panemine ehk milline võiks olla lõpptoode.

12.11.2012 - 18.11.2012

  • Kuna projekt hakkab kasutama andmebaasi siis meeskond tegeles andmebaasi arhitektuuri läbimõtlemisega ning loomisega. Samuti olid läbimõeldud peamised klassid mida hakkab programm kasutama.

19.11.2012

  • Analüüs

19.11.2012 - 25.11.2012

  • ...

Analüüs

Kõvaketaste haldamise süsteem

Ühes asutuses on olemas kõvaketaste kogum ca 150 tk, kus hoitakse tööks vajalike faile. Need failid on teistest kõvaketadest tehtud koopiad. On vaja kirjutada rakkendus mis haldaks kõvakettaid koos tõmmistega. Haldamise all mõeldakse eelkõige seda, et sisestatud andmete põhjal peaks rakendus näitama igaühe kõvaketta seisu. Mis koopiad ühel või tesisel kettal asuvad, millise tööga(teemaga) on need koopiad seotud, koopiate andmed näiteks koopia suurus, kopeerimise kuupäev kelle poolt on see tehtud, koopia räsi MD5 ning SHA-1, kõvaketta reaalne asukoht(võimalik, et asub teises asutuses) või mis töötaja käes see praegu realselt on. Üldiselt see rakendus peab andma ülevaadet ning statistikat kus mis asub ning mis kettal on vajalik vaba ruum, et saaks järgmist tõmmist sinna hoiule panna.

  • Rakenduse üldised võimalused:
    • Rakendus on eelkõige klient-server rakendus. Seoses sellega andmeid hoitakse andmebaasis.
    • Rakendusel peab olema autentimise võimalus, et kontrollida kas rakenduse kasutab õige isik. Seoses sellega rakendusel peab olema ka erinevate rollide süsteem. Kas kasutaja on administraator või tema on tavaline kasutaja. Ja sellest tulenevalt tema saab ka vastavad õigused.
    • Kuna tegemist on rakendusega mida hakkavad kasutama erinevad kasutajad siis rakednusel peaks olema ka oma logide süsteem kuhu salvestatakse kõike mida on rakenduse töö ajal toimunud.
    • Rakednus pakkub erineva statistika võimalust.
    • Rakendus peab võimaldama otsida andmebaasis.
    • Rakendus annab võimalust sooritada erinevad päringud andmebaasis: andmete sisestamine, muutmine ning kustutamine.

Rakenduse funktsionaalsus

Autentimine

Kuna tegemist on multiuser rakendusega mida hakkavad kasutama erinevad kastutajad, siis rakendus peab eristama milline kasutaja logib sisse. Lähtuvalt sellest, et kastuajad on palju peab programm oskama ka erinevaid õigusi kastuajatele andma. Administraator peab nägema kõike tavakasutaja aga ainult temale tööks vajalikke asju.

Kasutaja töölaud

Analüüsitav rakendus on eelkõige töö põhine rakendus ehk igal kasutajal on oma töölaud kus tema näeb ainult tema poolt loodud töid(projekte). Samuti töölaual on nähtav üldine statistika, et millised kõvakettad on tema töödega(projektidega) seotud. Millistel kõvakettadel asuvad temale kuuluvad failid(koopiad). Mis kõvakettal on hetkel vabaruumi ja kui palju. Jne. Kui tegemist on kasutajaga kellel on administraatori õigused siis tema peaks nägema peale enda asju ka teiste kasutajate asju ja vajadusel ka saaks tavakasutajate andmeid muuta.

Tavakasutaja

Saab luua uus töö(teema). Saab lisada sellele teemale tööks vajalike statistilisi andmeid ehk, mis kõvakettal vajalik tõmmis asub mis failidest see koosneb kui suur ta on. Samuti kopeerimise kuupäev ning MD5 ja SHA-1 räsi. Kui tegemist on töö lõpetamisega siis kasutaja saab kustuda andmebaasist seosed kõvakettaga, et vabastada ruum järgmisteks töödeks(tegelikult tavakasutaja ei saa andmebaasist midagi reaalselt kustutada lihtsalt andmete seis muutub mittekaktiivseks ning rakkendus arvab, et tegemist on kustutatud kirjega.) Samuti programm peab võimaldama anda välja statistikat tehtud tööle, et mida on tehtud kui palju kettaid on kopeeritud jne.

Administraator

Administraatoril võrreldes tavakasutajaga on peale tavakasutaja õiguste on veel õigus näha kõikide tavakstutajate töid vajadusel neid paranda. Samuti statistika osas teha väljavõtted nii ühe kasutaja kui ka kõikide kasutajate kohta ehk üldine statistika.

Adnmebaasi ülesehitus

  • Anmebaas koosneb järgmistes peamistest tabelitest:
    • Kasutajate tabel. Selles tabelis asub info kasutajte kohta nende õigused, kasutajatunnused ning paroolide hashid.
    • Teemade tabel. Siin paiknevad andmed teemade kohta. Kellele see teema kuulubmis kuupöeval on loodud kason aktiivne või ei ole jne.
    • Kõvakettaste register. See on selline tabel kus hoitakse andmeid kõvakettaste registriühikute kohta. Kõvaketsteregistri on vaja selleks, et seostada füüsiline kõvakettas (kus asuvad vajalikud failid) koos andmebaasiga. Igale kõvakettale või kavakettamassiivile on omistatud oma unikaalne registrinumber. Naiteks kõvaketas WD SN:WD1234567890 on andmebaasis HDD_05 jne. Juhul kui see kettas läheb katki siis seda saab asendada uue kõvakettaga.
    • Kõvakettaste tabel. On tabel kus hoitakseandmeid füüsiliste kõvakettaste kohta (mark, mudel, mahtuvus, seerianumber, liides jne).
    • Seoste tabel. Tabel kus hoitakse andmeid teemadega seotud kõvaketaste registriühikute kohta. Ühe teemaga võib seotud olla mitu erinevaid registriühikut.
    • Logide tabel. Hoitakse andmeid andmebaasi töö kohta.

Siin on toodud põhilised tabelid, mis olulised töö jaoks. Muidugi projekti töö käigus neid võib rohkem tulla.

Veahaldus

Et tagada rakenduse stabliset tööd sisse tuleb ka veahalduse süsteem. Kuna projekti aeg on piiratud ning valmis projekti ei saa igakülgselt ära testida, siis saab mõni erijuhus, mis annab programile vea teade kahe silma vahele jääda. Kuid üldistele vigadele(näiteks kasutaja sisestab int tüübi asmel string tüübi) peaks programmi veateadehaldus reageerima.

Logid

Kuigi logid on antud rakanduses tähtis osa siiski võivad need täies mahus realiseerimata jääda kuna projektil on tähtaajad ja selleks võib jääda vähe aega.

Kokkuvõte

Siin on toodud mõned tükkid rakenduse funktsionaalsusest. Kuid projekti töökaigus võib mõni kaduda või juurde tekkida.

Prototüüp

Lõpptoode