LendBook: Difference between revisions
Created page with "Category:Programmeerimine CSharp keeles (2015) (Päevaõpe) == Meeskond == *''Egle Arge'' *''Liina Kolk'' == Projekti ülevaade == Luua raamatukogu tarkvara, mis võimal..." |
|||
(30 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
== Projekti ülevaade == | == Projekti ülevaade == | ||
Luua raamatukogu tarkvara, mis võimaldab hallata kodusolevaid raamatuid, neid välja laenutada, listist eemaldada ja ka juurde lisada. Laenutamise puhul on oluline, et iga kasutaja saaks luua endale konto ning et raamatutele saaks määrata tagastusaja (soovitavalt, et oleks võimalik iga raamatu puhul määrata/valida erinevat tagastusaega, mis võimaldaks pikemalt vajaminevat raamatut ka vajadusel kauem käes | Luua raamatukogu tarkvara, mis võimaldab hallata kodusolevaid raamatuid, neid välja laenutada, listist eemaldada ja ka juurde lisada. Laenutamise puhul on oluline, et iga kasutaja saaks luua endale konto ning et raamatutele saaks määrata tagastusaja (soovitavalt, et oleks võimalik iga raamatu puhul määrata/valida erinevat tagastusaega, mis võimaldaks pikemalt vajaminevat raamatut ka vajadusel kauem käes hoida). Iga kasutaja peab saama sisestada raamatuid, kuid samas võib olla ka lihtsalt laenutaja rollis, ilma oma raamatuid omamata. Raamatuid peab saama nime järgi otsida. | ||
Programmi eesmärk on võimaldada tutvusringkonnal kasutada kodus olemasolevaid raamatuid, ilma et peaks liigselt raamatuid ostma või ennast vaevama raamatukokku minekuga, kus sageli ei ole soovitud | Programmi eesmärk on võimaldada tutvusringkonnal kasutada kodus olemasolevaid raamatuid, ilma et peaks liigselt raamatuid ostma või ennast vaevama raamatukokku minekuga, kus sageli ei ole soovitud või vajaminevat raamatut üldse saadaval. Programm aitaks ka anda ülevaate raamatutest, mis kellelgi kodus on ning ehk panna ka rohkem mõtlema, kas kõiki neid raamatuid tegelikult vaja läheb ning kas mõnda raamatut on juba mitu tükki saanud, mis omakorda võimaldaks loobuda osadest raamatutest ja tekitaks seeläbi kodus ruumi juurde. | ||
== Kasutatav .NET tehnoloogia == | == Kasutatav .NET tehnoloogia == | ||
Kasutatav raamistik: .NET Framework 4.5 | Kasutatav raamistik: .NET Framework 4.5 | ||
Kasutatav tehnoloogia: C#, ASP.Net | Kasutatav tehnoloogia: C#, ASP.Net, Windows Presentation Foundation | ||
== Disaini ülevaade == | |||
Üldised disaini eesmärgid on: | |||
*Maksimaalne komponentide eraldatus üksteisest (kasutajaliides, sõnumi edastus, teenused, andmetele ligipääs) | |||
*Hoida teenuse kiht eraldi andmebaasis salvestatud detailidest ja kasutajaliidesest. | |||
All on toodud välja andmete liikumise diagramm, illustreerimaks süsteemi maksimaalse kasutusvõimekuse saavutamist. | |||
[[File:dataflow1.jpg|600px]] | |||
Siiski jääb töö käigus võimalus arendada välja programm, mis on ühe tasemeline, nagu on näidatud alljärgneval diagrammil. | |||
[[File:dataflow2.jpg|600px]] | |||
== Andmebaasi mudel == | |||
Alljärgnevalt on kujutatud andmebaasi mudel, mille loomisel on eelkõige arvestatud kindlalt planeeritud funktsionaalsustega. | |||
Seetõttu võib edaspidise arenduse käigus tekkida mõningaid muudatusi. | |||
[[File:ABTabel2.jpg|700px]] | |||
== Planeeritavad funktsionaalsused == | == Planeeritavad funktsionaalsused == | ||
Kindlad funktsionaalsused | '''Kindlad funktsionaalsused''' | ||
*Raamatute lisamine | *Raamatute lisamine | ||
*Raamatute laenutamine – algusaeg ja viimane tagastusaeg, kuid salvestada ka tegelik tagastusaeg | *Raamatute laenutamine – algusaeg ja viimane tagastusaeg, kuid salvestada ka tegelik tagastusaeg | ||
Line 22: | Line 40: | ||
*Aruannete loomine | *Aruannete loomine | ||
Võimalikud fuktsionaalsused (kui aega üle jääb) | |||
'''Võimalikud fuktsionaalsused''' (kui aega üle jääb) | |||
*Kui raamat on juba andmebaasis, pakkuda kasutajatele samade andmetega raamatuid ning lisada raamatu valikul üks ühik juurde | *Kui raamat on juba andmebaasis, pakkuda kasutajatele samade andmetega raamatuid ning lisada raamatu valikul üks ühik juurde | ||
*Automaatse meeldetuletuse saatmine laenajale, kui laenutustähtaeg on lähenemas | *Automaatse meeldetuletuse saatmine laenajale, kui laenutustähtaeg on lähenemas | ||
Line 29: | Line 48: | ||
*Võimalus lisada enda „sõpruskonna“ raamatukogu, sinna administraatori konto kaudu liikmeid juurde kutsudes (administraatoreid maksimaalselt 3) | *Võimalus lisada enda „sõpruskonna“ raamatukogu, sinna administraatori konto kaudu liikmeid juurde kutsudes (administraatoreid maksimaalselt 3) | ||
*Võimaldada hallata ka e-raamatuid (see selgelt ka välja toodud, et tegemist on e-raamatuga) ja neid välja laenutada | *Võimaldada hallata ka e-raamatuid (see selgelt ka välja toodud, et tegemist on e-raamatuga) ja neid välja laenutada | ||
*Võimalus lisada | *Võimalus lisada raamatu pilt ja sisututvustus | ||
*Võimalus lisada andmebaasi | *Võimalus lisada andmebaasi andmeid filmide kohta | ||
== Probleemid == | |||
Nii nagu igas tarkvara arendusprotsessis näeme ka meie, et ette võib tulla mitmesuguseid üldiseid probleeme: | |||
*Kuna tegemist on algajatega, siis on kindlasti probleemiks nn „puhta“ koodi kirjutamine, et sellest oleks lihtne ja loogiline aru saada kõigil osapooltel (näiteks peaksid muutujate/meetodite/klasside nimed olema arusaadavad). Kuid kuna seda unustavad teha ka juba väga kogenud arendajad, siis võib eeldada, et ka meil tuleb selliseid probleeme ette. | |||
*Ootus teha ära liiga palju erinevaid funktsioone. Kuigi analüüsis on kirjeldatud ära kindlad funktsionaalsused ja lisafunktsionaalsused, siis võime me siiski haarata liiga suure tüki ka lisafunktsionaalsustest, mille tõttu pruugib süsteem muutuda kasutuskõlbmatuks või mitte töötavaks. | |||
*Selle asemele, et tegeleda ühe funktsionaalsusega korraga võib juhtuda, et võtame ette liigselt paljud ja kuna rööprähklemine ei ole enamustel inimestest tugevaim külg, võib kogu süsteem kokku joosta ja töötavat lahendust valmis ei saagi. | |||
*Vähene suhtlus, mis võib viia tehtavast tööst valesti arusaamiseni või üksteise dubleerimiseni. | |||
*Aja valesti planeerimine, mille tõttu võib töö jääda viimasele minutile ja asjad ei saa tehtud. | |||
*Funktsionaalsuse raskustasemete valesti hindamise tõttu võib koormus langeda liigselt ühele meeskonnaliikmele. | |||
Lisaks võib probleeme tekitada varasema kasutamiskogemuse puudumine Visual Studio Online'ga. | |||
Arenduses näeme veaohtlikumate kohtadena aruande funktsionaalsuse realiseerimist ning raamatute otsingusüsteemi loomist (nt halb otsingualgoritm). | |||
== Prototüüp ja lõpptoode == | |||
Tehtud töö saab alla tirida [https://drive.google.com/folderview?id=0B56pZyJlRltNQXJzTnRuY3hnWE0&usp=sharing siit] | |||
(26.01.2016) | |||
== Arendusprotsess == | == Arendusprotsess == | ||
*'''05.10.2015''' - Meeskonna moodustamine ja arutelu projekti teema osas. Otsustasime tegeleda koduse raamatukogu rakendusega. | *'''05.10.2015''' - Meeskonna moodustamine ja arutelu projekti teema osas. Otsustasime tegeleda koduse raamatukogu rakendusega. | ||
*'''23.10.2015''' - Kasutatavate tehnoloogiate esialgne valik ja funktsionaalsuste kirjeldamine. Wiki lehe loomine. | *'''23.10.2015''' - Kasutatavate tehnoloogiate esialgne valik ja funktsionaalsuste kirjeldamine. Wiki lehe loomine. | ||
*'''25.10.2015''' - TFS konto loomine ja õppejõule ligipääsu andmine. | |||
*'''29.10.2015''' - Kokkusaamine: jätkus arutlus loodavate funktsionaalsuste ja disaini osas. | |||
*'''01.11.2015''' - Analüüsi osa lõpetamine. | |||
*'''11.11.2015''' - Lisatud uus andmebaasi mudel. | |||
*'''26.11.2015''' - Kokkusaamine: põgus tutvumine ASP.Net võimalustega ja järgnevate tegevuste planeerimine, et prototüüp õigeaegselt valmis saaks. | |||
*'''28.11.2015''' - Meeskonna PenguinHorde analüüsile lisatud retsensioon. | |||
*'''20.01.2016''' - Nonii, mis toimub? Kus on lõpptoode? ... working hard ... still working hard.... |
Latest revision as of 16:44, 26 January 2016
Meeskond
- Egle Arge
- Liina Kolk
Projekti ülevaade
Luua raamatukogu tarkvara, mis võimaldab hallata kodusolevaid raamatuid, neid välja laenutada, listist eemaldada ja ka juurde lisada. Laenutamise puhul on oluline, et iga kasutaja saaks luua endale konto ning et raamatutele saaks määrata tagastusaja (soovitavalt, et oleks võimalik iga raamatu puhul määrata/valida erinevat tagastusaega, mis võimaldaks pikemalt vajaminevat raamatut ka vajadusel kauem käes hoida). Iga kasutaja peab saama sisestada raamatuid, kuid samas võib olla ka lihtsalt laenutaja rollis, ilma oma raamatuid omamata. Raamatuid peab saama nime järgi otsida. Programmi eesmärk on võimaldada tutvusringkonnal kasutada kodus olemasolevaid raamatuid, ilma et peaks liigselt raamatuid ostma või ennast vaevama raamatukokku minekuga, kus sageli ei ole soovitud või vajaminevat raamatut üldse saadaval. Programm aitaks ka anda ülevaate raamatutest, mis kellelgi kodus on ning ehk panna ka rohkem mõtlema, kas kõiki neid raamatuid tegelikult vaja läheb ning kas mõnda raamatut on juba mitu tükki saanud, mis omakorda võimaldaks loobuda osadest raamatutest ja tekitaks seeläbi kodus ruumi juurde.
Kasutatav .NET tehnoloogia
Kasutatav raamistik: .NET Framework 4.5
Kasutatav tehnoloogia: C#, ASP.Net, Windows Presentation Foundation
Disaini ülevaade
Üldised disaini eesmärgid on:
- Maksimaalne komponentide eraldatus üksteisest (kasutajaliides, sõnumi edastus, teenused, andmetele ligipääs)
- Hoida teenuse kiht eraldi andmebaasis salvestatud detailidest ja kasutajaliidesest.
All on toodud välja andmete liikumise diagramm, illustreerimaks süsteemi maksimaalse kasutusvõimekuse saavutamist.
Siiski jääb töö käigus võimalus arendada välja programm, mis on ühe tasemeline, nagu on näidatud alljärgneval diagrammil.
Andmebaasi mudel
Alljärgnevalt on kujutatud andmebaasi mudel, mille loomisel on eelkõige arvestatud kindlalt planeeritud funktsionaalsustega. Seetõttu võib edaspidise arenduse käigus tekkida mõningaid muudatusi.
Planeeritavad funktsionaalsused
Kindlad funktsionaalsused
- Raamatute lisamine
- Raamatute laenutamine – algusaeg ja viimane tagastusaeg, kuid salvestada ka tegelik tagastusaeg
- Kasutajakontode loomine
- Raamatute nime järgi otsimine
- Aruannete loomine
Võimalikud fuktsionaalsused (kui aega üle jääb)
- Kui raamat on juba andmebaasis, pakkuda kasutajatele samade andmetega raamatuid ning lisada raamatu valikul üks ühik juurde
- Automaatse meeldetuletuse saatmine laenajale, kui laenutustähtaeg on lähenemas
- Võimalus programmi avades raamatu omanikul näha, kui raamatu tagastusaeg on lähenemas või juba möödas
- Kuva hoiatused, kui laenutaja laenutuste ajalugu on vilets või kui mõni raamat on tagastamata
- Võimalus lisada enda „sõpruskonna“ raamatukogu, sinna administraatori konto kaudu liikmeid juurde kutsudes (administraatoreid maksimaalselt 3)
- Võimaldada hallata ka e-raamatuid (see selgelt ka välja toodud, et tegemist on e-raamatuga) ja neid välja laenutada
- Võimalus lisada raamatu pilt ja sisututvustus
- Võimalus lisada andmebaasi andmeid filmide kohta
Probleemid
Nii nagu igas tarkvara arendusprotsessis näeme ka meie, et ette võib tulla mitmesuguseid üldiseid probleeme:
- Kuna tegemist on algajatega, siis on kindlasti probleemiks nn „puhta“ koodi kirjutamine, et sellest oleks lihtne ja loogiline aru saada kõigil osapooltel (näiteks peaksid muutujate/meetodite/klasside nimed olema arusaadavad). Kuid kuna seda unustavad teha ka juba väga kogenud arendajad, siis võib eeldada, et ka meil tuleb selliseid probleeme ette.
- Ootus teha ära liiga palju erinevaid funktsioone. Kuigi analüüsis on kirjeldatud ära kindlad funktsionaalsused ja lisafunktsionaalsused, siis võime me siiski haarata liiga suure tüki ka lisafunktsionaalsustest, mille tõttu pruugib süsteem muutuda kasutuskõlbmatuks või mitte töötavaks.
- Selle asemele, et tegeleda ühe funktsionaalsusega korraga võib juhtuda, et võtame ette liigselt paljud ja kuna rööprähklemine ei ole enamustel inimestest tugevaim külg, võib kogu süsteem kokku joosta ja töötavat lahendust valmis ei saagi.
- Vähene suhtlus, mis võib viia tehtavast tööst valesti arusaamiseni või üksteise dubleerimiseni.
- Aja valesti planeerimine, mille tõttu võib töö jääda viimasele minutile ja asjad ei saa tehtud.
- Funktsionaalsuse raskustasemete valesti hindamise tõttu võib koormus langeda liigselt ühele meeskonnaliikmele.
Lisaks võib probleeme tekitada varasema kasutamiskogemuse puudumine Visual Studio Online'ga.
Arenduses näeme veaohtlikumate kohtadena aruande funktsionaalsuse realiseerimist ning raamatute otsingusüsteemi loomist (nt halb otsingualgoritm).
Prototüüp ja lõpptoode
Tehtud töö saab alla tirida siit (26.01.2016)
Arendusprotsess
- 05.10.2015 - Meeskonna moodustamine ja arutelu projekti teema osas. Otsustasime tegeleda koduse raamatukogu rakendusega.
- 23.10.2015 - Kasutatavate tehnoloogiate esialgne valik ja funktsionaalsuste kirjeldamine. Wiki lehe loomine.
- 25.10.2015 - TFS konto loomine ja õppejõule ligipääsu andmine.
- 29.10.2015 - Kokkusaamine: jätkus arutlus loodavate funktsionaalsuste ja disaini osas.
- 01.11.2015 - Analüüsi osa lõpetamine.
- 11.11.2015 - Lisatud uus andmebaasi mudel.
- 26.11.2015 - Kokkusaamine: põgus tutvumine ASP.Net võimalustega ja järgnevate tegevuste planeerimine, et prototüüp õigeaegselt valmis saaks.
- 28.11.2015 - Meeskonna PenguinHorde analüüsile lisatud retsensioon.
- 20.01.2016 - Nonii, mis toimub? Kus on lõpptoode? ... working hard ... still working hard....