Elektroonilise ajalehe projekti aruanne Oleg Mürk
Sisukord 1 Sissejuhatus 2 2 Eesmärk 3 3 Talitluse mudel 4 3.1 Talitlusobjektmudel..................................... 4 3.2 Talitlusloomudel...................................... 5 3.3 Talitluse realisatsioon.................................... 6 4 Nõuete spetsifikatsioon 7 4.1 Loogiline andmemudel................................... 7 4.2 Funktsionaalsed nõuded................................... 8 4.2.1 Kasutaja kasutuslood................................ 9 4.2.2 Töötaja kasutuslood................................ 10 4.2.3 Toimetaja kasutuslood............................... 12 4.2.4 Administraatori kasutuslood............................ 14 4.3 Mitte-funktsionaalsed nõuded............................... 15 4.3.1 Lugeja ligipääsupoliitikad............................. 15 4.3.2 Jõudlus....................................... 15 5 Analüüs: loogiline andmemudel 16 6 Analüüs: lugeja moodul 19 6.1 Staatiline Struktuur..................................... 19 6.1.1 Liidesed....................................... 19 6.1.2 SessiooniHaldur.................................. 20 6.1.3 Põhihaldurid.................................... 21 6.1.4 Taaskasutatavad haldurid.............................. 26 6.2 Käitumine.......................................... 28 7 Analüüs: töötaja moodul 30 8 Teostus- ja levitus- mudel 31 1
Peatükk 1 Sissejuhatus Antud dokument esitab elektroonilise ajalehe projekti (fiktiivseid) tulemusi ning sisaldab järgnevaid osi: eesmärk, talitluse mudel (business model), nõuete spetsifikatsioon (requirements specification), analüüsimudel (analysis model), teostus- ja levitus- mudel (implementation and deployment model). Nende sisu vastab üldjoontes vastavatele RUP i artefaktidele. 2
Peatükk 2 Eesmärk Luua elektroonilise ajalehe tarkvara, mis võimaldaks avaldada artikleid ning lasta inimestel neid lugeda ja kommenteerida. Peab toetama artiklite koostamise, toimetamise, kinnitamise ning avaldamise protsessi. Artiklitel võivad olla atribuudid nagu pealkiri, kuupäev, autorid, rubriigid. Artikleid peab olema võimalik avaldada nii eraldi kui ka ajalehe numbri sees. Peab võimaldama tekitada vaateid, kus esitataks erinevate kriteeriumitele vastavaid artikleid. Peab toetama väljaannete arhiivi kuupäevade kaupa ning võimaldama artiklite täistekstiotsingut. Peab eristama erinevate õigustega lugejaid (tasuta, tasunud, jne) ning käituma lähtudes vastava lugejate liigi jaoks määratud ligipääsupoliitikast: millal ja milliseid artikleid saab vaadata, kas näidata reklaami, jne. 3
Peatükk 3 Talitluse mudel Selles peatükis kirjeldame loodava elektroonilise ajalehe üldisi toimimise printsiipe. 3.1 Talitlusobjektmudel <<business entity>> Rubriik Üks lehe number alamrubriik <<business entity>> Väljaanne <<business entity>> Artikkel <<business entity>> Kommentaar Artikkel võib olla sidumata väljaandega. Sellisel juhul on ta kättesaadav omaette. Joonis 3.1: Põhimõisted Joonisel 3.1 on esitatud relevantsed põhimõisted: Väljaanne - üks ajalehe number. Artikkel - artiklid võivad kuuluda väljaannetesse, kuid ei pruugi. 4
Rubriik - artikleid klassifitseeritakse hierarhilistesse rubriikidesse. Kommentaar - artiklitega võivad olla seotud kommentaarid. <<business worker>> Töötaja <<business worker>> Toimetaja Joonis 3.2: Põhitöötajad Joonisel 3.2 on esitatud elektroonilise ajalehe protsessi põhitöötajad: Töötaja - funktsiooniks on artiklite koostamine. Toimetaja - funktsiooniks on artiklite toimetamine, nende kinnitamine, sidumine väljaannetega ning avaldamine. 3.2 Talitlusloomudel <<business actor>> <<business use case>> Ajalehe lugemine Lugeja <<business use case>> Ligipääsupaketi ostmine Joonis 3.3: Lugeja talitluslood Joonisel 3.3 on esitatud loodava süsteemi ainuke talitlusaktor Lugeja ning tema talitluslood: Ajalehe lugemine - saab navigeerida väljaannetes ja artiklites, lugeda ning kommenteerida neid. Ligipääsupaketi ostmine - selleks, et lugeda ajalehte peab ostma ligipääsupaketi, kuigi on võimalik, et on olemas ka vaikimisi tasuta ligipääs. 5
3.3 Talitluse realisatsioon Toimetaja tegevused Lugeja tegevused Artikli saatmine kinnitamisele Artikli ülevaatamine [sobib] Artikli kinnitamine [ei sobi] Artikli koostamine Artikli parandamine Artikli lisamine väljaanetesse Lugemine Kommenteerimine Artikli kommenteerimine Töötaja tegevused Artikli avaldamine Artikli tagaslükamine Joonis 3.4: Elektroonilise ajalehe põhiprotsess Joonisel 3.4 on esitatud elektroonilise ajalehe põhiprotsess. 6
Peatükk 4 Nõuete spetsifikatsioon Selles peatükis kirjeldame nõuded elektroonilise ajalehe tarkvarale. 4.1 Loogiline andmemudel Rubriik +nimetus : String Vaata olekuskeemi Vaata olekuskeemi alamrubriik Artikli sisu Väljaanne +aeg : Date Artikkel hetkeseis avaldatud versioon +aeg : Date +pealkiri : String +kokkuvõte : String +tekst : String Kommentaar autor Inimene Kommentaarid võivad olla kas seesmised või välised +on seesmine : boolean +pealkiri : String +sisu : String +aeg : Date autor +nimi : String +email : String Joonis 4.1: Loogiline andmemudel Joonisel 4.1 on esitatud elektroonilise ajalehe loogiline andmemudel: Väljaanne - üks ajalehe number, joonisel 4.2 on esitatud selle olekuskeem. 7
Artikkel - joonisel 4.3 on esitatud artikli olekuskeem, artikli sisust võib olla kaks versiooni: hetkeversioon ning avaldatud versioon. Artikli sisu - artikli sisu, mis ei ole seotud ajalehe protsessi korraldamisega. Rubriik - artikleid klassifitseeritakse hierarhilistesse rubriikidesse. Kommentaar - artikli kommentaar, võib olla kas seesmine või väline (lugejate jaoks). Inimene - süsteemis esinev inimene: kas lugeja või töötaja. Avaldamata Avaldatud Muudatused avaldatud väljaandes on kohe nähtavad lugejale Joonis 4.2: Väljaande olekud Artiklit võib avaldada ainult kinnitatud olekus Kinnitatud Koostamisel Saadetud kinnitamisele Kinnitama peab toimetaja Tagasilükatud Joonis 4.3: Artikli olekud 4.2 Funktsionaalsed nõuded Selles sektsioonis esitame süsteemi funktsionaalsed nõuded. Süsteemi aktorid on esitatud Joonisel 4.4: 8
Lugeja - ajalehe lugeja. Töötaja - ajalehe töötaja, kelle põhifunktsiooniks on artiklite koostamine. Toimetaja - ajalehe töötaja, kelle põhifunktsiooniks on artiklite toimetamine, kinnitamine, nende sidumine väljaannetega ning avaldamine. Administraator - toetav aktor, kelle funktsiooniks on loodava süsteemi töös hoidmine. Lugeja Töötaja Toimetaja Administraator Joonis 4.4: Aktorid 4.2.1 Kasutaja kasutuslood Navigeerimine artiklites Artikli lugemine Navigeerimine väljaandes Artikli kommentaaride lugemine Lugeja Navigeerimine väljannete arhiivis Artikli kommenteerimine Artikli otsing Joonisel 4.5 on esitatud lugeja kasutuslood: Joonis 4.5: Lugeja kasutuslood 9
Navigeerimine artiklites - lugeja saab vaadata artiklite nimekirju, mis on piiratud etteantud rubriigiga ning ajavahemikuga. Artikleid esitatakse sorteerituna kronoloogilises järjekorras. Navigeerimine väljaandes - lugeja saab navigeerida rubriikide hierarhias ning vaadata hetkel valitud rubriigiga ning selle alamrubriikidega seotud artikleid, mis kuuluvad väljaandesse. Artiklite järjekord on määratud toimetaja poolt. Navigeerimine väljaannete arhiivis - lugeja saab valida väljaannet kuupäeva järgi. Artikli otsing - lugeja saab sooritada täistekstiotsingut üle kõikide artiklite. Artikli lugemine - lugeja saab lugeda artiklit. Artikli kommentaaride lugemine - artikli kommentaare esitatakse kronoloogilises nimekirjas. Artikli kommenteerimine - lugeja saab lisada kommentaari artikli kohta. Esimeses kahes kasutusloos iga artikli kohta näidatakse tema pealkiri, kuupäev, autorid, kokkuvõte ning kommentaaride arv. Lugejaks registreerimine Lugeja Ligipääsupaketi ostmine Joonis 4.6: Lugeja ülejäänud kasutuslood Joonisel 4.6 on esitatud lugeja ülejäänud kasutuslood: Lugejaks registreerumine - enne ajalehe lugemist peab registreeruma lugejaks, kuigi ajalehte võib lugeda ka anonüümselt. Ligipääsupaketi ostmine - lugeja saab osta endale paketi, mis määrab tema ligipääsuõigusi (vaata Sektsiooni 4.3.1). 4.2.2 Töötaja kasutuslood Joonisel 4.7 on esitatud töötaja artiklitega soetud kasutuslood: Navigeerimine artiklites - sarnane vastava Lugeja kasutuslooga, kuid lisaks on näha artikli staatus (koostamise seis, kas on avaldatud) ning saab filtreerida nende tunnuste järgi. 10
Navigeerimine artiklites Artikli vaatamine Artikli kommentaaride vaatamine Töötaja Artikli kommenteerimine Artikli koostamine Artikli saatmine kinnitamisele Artikli viimine olekusse koostamisel Joonis 4.7: Töötaja artiklitega seotud kasutuslood 11
Artikli vaatamine - sarnane vastava Lugeja kasutuslooga, kuid on näha artikli staatust, ning saab vaadata nii jooksvat seisu kui ka avaldatud versiooni. Artikli kommentaaride vaatamine - sarnane vastava Lugeja kasutuslooga, kuid saab näha ka seesmiseid kommentaare. Artikli kommenteerimine - sarnane vastava Lugeja kasutuslooga, kuid saab koostada ka seesmiseid kommentaare. Artikli koostamine - töötaja saab koostada artiklit: määrata selle pealkirja, kuupäeva, autoreid, rubriike, kokkuvõtet, sisu. Artiklit saavad modifitseerida ainult selle autorid ning toimetaja. Artikli saatmine kinnitamisele - artikli autor saab viia artiklit olekust Koostamisel olekusse Saadetud kinnitamisele. Tüüpiliselt tegeleb toimetaja ainult sellises olekus artiklitega. Artikli saatmine kinnitamisele - artikli autor saab viia artiklit tagasi olekusse Koostamisel. Rubriikide vaatamine Navigeerimine väljaannetes Töötaja Väljaande vaatamine Joonis 4.8: Töötaja kasutuslood Joonisel 4.8 on esitatud töötaja ülejäänud kasutuslood: Rubriikide vaatamine - töötaja saab vaadata rubriikide hierarhiat. Navigeerimine väljaannetes - sarnane vastava Lugeja kasutuslooga. Väljaande vaatamine - saranane vastava Lugeja kasutuslooga. 4.2.3 Toimetaja kasutuslood Joonisel 4.9 on esitatud toimetaja rubriikidega soetud kasutuslood: Rubriikide haldamine - toimetaja saab redigeerida rubriikide hierarhiat. Joonisel 4.10 on esitatud toimetaja artiklitega soetud kasutuslood: 12
Rubriikide haldamine Toimetaja Joonis 4.9: Toimetaja rubriikidega seotud kasutuslood Artikli kinnitamine Artikli tagasiükamine Toimetaja Artikli avaldamine Artikli tagasivõtmine Joonis 4.10: Toimetaja artiklitega seotud kasutuslood 13
Artikli kinnitamine - toimetaja saab viia artiklit olekust Saadetud kinnitamisele olekusse Kinnitatud. Sellises olekus saab artiklit avaldada. Artikli tagasilükkamine - toimetaja saab viia artiklit olekust Saadetud kinnitamisele olekusse Tagasilükatud, mis tähendab seda, et autorid peavad artiklit parandama. Artikli avaldamine - toimetaja saab muuta artiklit lugejatele kättesaadavaks. Artikli kuulumist väljaannetesse määratakse mujal. Artikli tagasivõtmine - toimetaja saab võtta avaldatud artiklit tagasi, pärast mida ei ole artikkel enam lugejatele nähtav. Väljaande koostamine Väljaande avaldamine Toimetaja Väljaande tagasivõtmine Joonis 4.11: Toimetaja väljaannetega seotud kasutuslood Joonisel 4.11 on esitatud toimetaja väljaannetega soetud kasutuslood: Väljaande koostamine - toimetaja valib millised artiklid lähevad väljaandesse. Lisaks saab määrata artikli kaalu. Lugejale näidatakse artikleid kaalude vähenemise järjekorras (võrdsete kaalude puhul kronoloogilises järjekorras). Väljaande avaldamine - toimetaja saab muuta väljaannet nähtavaks lugejatele. Kõik muudatused väljaandes on koheselt nähtavad lugejatele. Väljaande tagasivõtmine - toimetaja võib otsustada võtta väljaannet tagasi, pärast mida ei ole väljaanne enam lugejatele nähtav. 4.2.4 Administraatori kasutuslood Joonisel 4.12 on esitatud administraatori kasutuslood: Töötajate haldamine - registreerib ning haldab töötajaid, määrab nende ligipääsuõigusi (töötaja, toimetaja). 14
Töötajate haldamine Lugejate haldamine Administraator Lugejate ligipääsupoliitika haldamine Joonis 4.12: Administraatori kasutuslood Lugejate haldamine - kuigi lugejate haldamine peab olema automatiseeritud, peab administraatoril olema võimalus hallata lugejaid ka käsitsi. Lisaks saab kustutada lugejaid, kes pole ammu ajalehte lugenud. Lugejate ligipääsupoliitika haldamine - vaata Sektsioon 4.3.1 4.3 Mitte-funktsionaalsed nõuded 4.3.1 Lugeja ligipääsupoliitikad Lugeja ligipääsupoliitika P seisneb järgnevas: Kas näidata reklaami. Artiklitel ja väljaannetel on ligipääsutasemet määrav atribuut: lihtne, tavaline, kõrge, ekstra. Artikleid ja väljaandeid tasemega Q saab lugeda T P (Q) ajaühikut pärast nende avaldamist. Lugejad saavad osta endale teatud ajavahemikus ligipääsupaketi, mis seisneb teatud ligipääsupoliitika rakendamises. Pakette müüakse päevahinna alusel. Artikkel või väljaanne on kättesaadav mingil hetkel kui vähemalt ühe ostetud paketi ligipääsupoliitka lubab seda. Reklaami ei näidata kui vähemalt üks ostetud pakettidest seda lubab. 4.3.2 Jõudlus Süsteem peab toetama 10000 lugeja ning 100 töötaja samaaegset tööd, kusjuures tihti kasutatavate operatsioonide latentsus ei tohi ületada ühte sekundit. 15
Peatükk 5 Analüüs: loogiline andmemudel Joonisel 5.1 on esitatud nõuete analüüsis kirjeldatud loogilise andmemudeli edasiarendus. Järgnevas kirjeldame ainult erinevused: Inimene - inimesi eristatakse atribuudi kasutajanimi järgi. Artikkel - omab atribuuti seis, mis määrab selle seisu. ArtikliSisu - tekst ja kokkuvõte hoitakse eraldi klassis Dokument. Kommentaar - atribuut onseesmine määrab, kas tegemist on seesmise või välise kommentaariga. Väljaanne - atribuut onavaldatud määrab, kas väljaanne on avaldatud. ArtikkelVäljaandes - määrab seda, et Artikkel kuulub Väljaandesse, kusjuures atribuut kaal määrab artikli kaalu väljaandes. Joonisel 5.2 on esitatud ligipääsukontrolliga seotud andmemudel: TöötajaRoll - seotud Inimesega, kui ta on töötaja. Atribuut ontoimetaja määrab kas tegemist on toimetajaga. LugejaRoll - seotud Inimesega, kui ta on lugeja. LigipääsuPakett - üks võimalik ligipääsupakett, mida lugeja saab osta. Atribuut onaktiivne määrab, kas seda paketi saab osta hetkel. Atribuut näidatareklaami määrab kas näidata reklaami. Paketid on järjestatud atribuudi tase järgi. LigipääsuTase - üks võimalik ligipääsutase, millega klassifitseeritakse artikleid ja väljaandeid. Tasemed on järjestatud atribuudi tase järgi. LigipääsuOoteaeg - määrab antud LigipääsuTaseme ooteaega antud LigipääsuPaketis. Kui mõnes paketis puudub ooteaeg mõne taseme jaoks, siis loetakse selle väärtuseks. OstetudPakett - näitab, et Lugeja on ostnud LigipääsuPaketi teatud ajavahemikuks. 16
Väljaanne +aeg : Date +onavaldatud : boolean Rubriik +nimetus : String alamrubriik ArtikkelVäljaandes +kaal : int Artikkel +seis : int hetkeseis tekst avaldatud versioon ArtikliSisu +aeg : int kokkuvõte +pealkiri : String Dokument autor Kommentaar +onseesmine : boolean +aeg : Date +pealkiri : String +sisu : String autor Inimene +kasutajanimi : String +nimi : String +email : String Joonis 5.1: Loogilise andmemudeli põhiklassid 17
TöötajaRoll +ontoimetaja : boolean Inimene +kasutajanimi : String +nimi : String +email : String LugejaRoll Kui mõne taseme jaoks ooteaeg puudub, loetaksese selle väärtuseks lõpmatust. OstetudPakett +algus : Date +lõpp : Date LigipääsuTase +tase : int +nimetus : String Artikkel +seis : int LigipääsuOoteaeg +ooteaeg : Date Väljaanne +aeg : Date +onavaldatud : boolean LigipääsuPakett +onaktiivne : boolean +tase : int +nimetus : String +näidatareklaami : boolean +hindpäevas : double Joonis 5.2: Loogilise andmemudeli ligipääsuga seotud klassid 18
Peatükk 6 Analüüs: lugeja moodul Selles peatükis kirjeldame lugeja funktsionaalsuse analüüsi. 6.1 Staatiline Struktuur Selles sektsioonis kirjeldame loodava süsteemi staatilist struktuuri. 6.1.1 Liidesed KLHaldur +annavaade() : Vaade Kasutajaliidese (KL) haldur +kuva() Vaade Kontroller +töötlesündmust() Joonis 6.1: Liidesed Süsteemis esinevad peamised liidesed on esitatud Joonisel 6.1: KLHaldur - kasutajaliidese haldur, mis vastutab mingi konkreetse kasutajaliidese funktsionaalsuse realiseerimise eest. Vaade - miski, mis oskab ennast kuvada. KLHalduri käest saab küsida Vaadet meetodiga annavaade(). Kontroller - miski, mis töötleb sissetulevaid kasutajaliidese sündmuseid. Enamasti seotud konkreetse Vaatega. 19
Nende liideste detailid sõltuvad suuresti platvormist ning kasutajaliidese ehituse põhimõtetest (veeb, aknad, jne). 6.1.2 SessiooniHaldur SessiooniHalduriLiides +annakasutajainfo() +näitaväljaanne() +näitaartikkel() +näiteartikkelväljaandes() SessiooniHaldur KLHaldur +annavaade() : Vaade PõhiKLHaldur +annavade() : Vaade +annamenüü() : Vaade Joonis 6.2: SessiooniHaldur Vaatleme Joonist 6.2: süsteemi keskseks klassiks on SessiooniHaldur, mis vastab ühe kasutaja sessioonile süsteemis. SessiooniHaldur realiseerib liidest KLHaldur. Liides PõhiKLHaldur on liidese Haldur alamliides ning omab ühte lisameetodit annamenüü(). Nagu näeme hiljem SessiooniHaldur agregeerib endas mitu haldurit, sealhulgas PõhiKLHaldurit, ning tegeleb nende töö koordineerimisega. Juhitavad haldurid suhtlevad SessiooniHalduriga liidese SessiooniHalduriLiides kaudu. Joonisel 6.3 on esitatud haldurid, mille juhtimisega tegeleb SessiooniHaldur: SisseLogimiseHaldur - tegeleb kasutaja sisselogimisega. ReklaamiHaldur - tegeleb reklaami kuvamisega. LigipääsuPakettideHaldur - võimaldab kasutajal näha oma ligipääsupakette ning osta neid juurde. RegistreerimiseHaldur - võimaldab anonüümsel kasutajal registreeruda. ArtikliPõhihaldur - võimaldab kasutajal lugeda ühte artiklit. 20
ArtikliPõhihaldur SisseLogimiseHaldur LigipääsuPaketideHaldur ArtikliteHaldur KLHaldur +annavaade() : Vaade SessiooniHaldur näitab PõhiKLHaldur +annavade() : Vaade +annamenüü() : Vaade ArtikliteOtsinguHaldur ReklaamiHaldur VäljaandeHaldur RegistreerimiseHaldur VäljaanneteHaldur Joonis 6.3: SessiooniHalduri struktuur ArtikliteHaldur - võimaldab kasutajal navigeerida artiklites. ArtikliteOtsingHaldur - võimaldab kasutajal otsida artikleid. VäljaandeHaldur - võimaldab kasutajal lugeda väljaannet. VäljaanneteHaldur - võimaldab kasutajal navigeerida väljaannetes. Paljud nendest halduritest vastavad ühele konkreetsele kasutusloole. Joonisel 6.4 on esitatud SessiooniHalduri seesmine ehitus. SessiooniHaldur koosneb SessiooniVaatest ning SessiooniKontrollerist, mille funktsiooniks on vastavalt halduri kuvamine ning kasutajaliidese sündmuste töötlemine. Lisaks agregeerib SessiooniHaldur klassi KasutajaInfo, mille funktsiooniks on kasutajainfo pakkumine. See realiseerib ka liidest KasutajaInfoLiides, mille kaudu pääsevad kasutajainfole ligi juhitavad haldurid. 6.1.3 Põhihaldurid Selles alamsektsioonis kirjeldame põhihaldurite struktuuri. VäljaandeHaldur Joonisel 6.5 on esitatud VäljaandeHaldur. VäljaandeHaldur realiseerib liidest PõhiKLHaldur ning omab viidet SessiooniHalduriLiidesele. Lisaks on olemas seos näidatava Väljaandega ning hetkel aktiivse Rubriikiga. 21
KasutajaInfoLiides +annakirje() +annaligipääsuooteaeg() +näidatareklaami() SessiooniVaade +kuva() Vaade KasutajaInfo SessiooniHaldur SessiooniKontroller Kontroller +töötlesündmust() Joonis 6.4: SessiooniHalduri seesmine ehitus PõhiKLHaldur +annavade() : Vaade +annamenüü() : Vaade SessiooniHalduriLiides +annakasutajainfo() +näitaväljaanne() +näitaartikkel() VäljaandeHaldur näitab Väljaanne +aeg : Date +onavaldatud : boolean +näiteartikkelväljaandes() aktiivne Rubriik +nimetus : String Joonis 6.5: VäljaandeHaldur 22
VäljaandeHaldur VäljaandeRubriikideHaldur VäljaandeArtikliteHaldur ArtikliHaldur +näitasisu() +näitkommentaarid() Sellest saab menüü ArtikliKokkuvõteHaldur ArtikliKokkuvõteHalduriKlient +näitasisu() +näitkommentaarid() Joonis 6.6: VäljaandeHalduri struktuur Joonisel 6.6 on esitatud VäljaandeHalduri struktuur: VäljaandeRubriikideHaldur - näitab hetkel aktiivse rubriigi alamrubriike ning artiklite arvu nendes. Täidab menüü funktsioone. VäljaandeArtikliteHaldur - võimaldab kasutajal navigeerida hetkel aktiivse rubriigi artiklites. Artiklite kokkuvõtete kuvamiseks kasutab ArtikliKokkuvõteHaldurit ning suhtleb sellega liidese ArtikliKokkuvõteHalduriKlient kaudu. ArtikliHaldur - näitab hetkel valitud artiklit. Lõpuks, Joonisel 6.7 on esitatud VäljaandeHalduri seesmine ehitus: vaade ja kontroller. ArtikliteHaldur Joonisel 6.8 on esitatud ArtikliteHaldur. ArtikliteHaldur realiseerib liidest PõhiKLHaldur ning omab viidet SessiooniHalduriLiidesele. Lisaks on olemas seos ning hetkel aktiivse Rubriikiga. Joonisel 6.9 on esitatud ArtikliteHalduri struktuur: ArtikliteRubriikideHaldur - näitab hetkel aktiivse rubriigi alamrubriike. Täidab menüü funktsioone. ArtikliKokkuvõteHaldur - selle abiga kuvatakse artiklite kokkuvõtteid. Suhtlus sellega käib liidese ArtikliKokkuvõteHalduriKlient kaudu. ArtikliHaldur - näitab hetkel valitud artiklit. Lõpuks, Joonisel 6.10 on esitatud ArtikliteHalduri seesmine ehitus: vaade ja kontroller. 23
VäljaandeVaade +kuva() Vaade VäljaandeHaldur VäljaandeKontroller Kontroller +töötlesündmust() Joonis 6.7: VäljaandeHalduri seesmine ehitus PõhiKLHaldur +annavade() : Vaade +annamenüü() : Vaade SessiooniHalduriLiides +annakasutajainfo() +näitaväljaanne() +näitaartikkel() +näiteartikkelväljaandes() ArtikliteHaldur aktiivne Rubriik +nimetus : String Joonis 6.8: ArtikliteHaldur 24
ArtikliteHaldur ArtikliHaldur +näitasisu() +näitkommentaarid() ArtikliteRubriikideHaldur ArtikliKokkuvõteHaldur ArtikliKokkuvõteHalduriKlient +näitasisu() +näitkommentaarid() Sellest saab menüü Joonis 6.9: ArtikliteHalduri struktuur ArtikliteVaade +kuva() Vaade ArtikliteHaldur ArtikliteKontroller Kontroller +töötlesündmust() Joonis 6.10: ArtikliteHalduri seesmine ehitus 25
Ülejäänud põhihaldurid Ülejäänud põhihaldurid kirjeldatakse järgmises iteratsioonis. 6.1.4 Taaskasutatavad haldurid Selles alamsektsioonis kirjeldame taaskasutatavate haldurite struktuuri. ArtikliHaldur KLHaldur +annavaade() : Vaade +kuva() Vaade Artikkel +seis : int ArtikliHaldur +näitasisu() +näitkommentaarid() Kontroller +töötlesündmust() Joonis 6.11: ArtikliHaldur Joonisel 6.11 on esitatud ArtikliHaldur, mille funktsioonis on ühe artikli ning selle kommentaaride kuvamine. ArtikliHaldur realiseerib liidest KLHaldur ning hoiab viidet kuvatavale Artiklile. ArtikliHaldur realiseerib ise liidesed Vaade ja Kontroller, sest enamus tööst on delegeeritud alamhalduritele ning nende liideste realiseerimine on triviaalne. ArtikliHaldur omab kahte meetodit: näitasisu() ning näitakommentaarid(), mille kaudu määratakse kas näidata artikli sisu või kommentaarid. Joonisel 6.13 on esitatud ArtikliHalduri struktuur: ArtikliSisuHaldur - kuvab artikli sisu. ArtikliKommentaarideHaldur - kuvab artikli kommentaare. ArtikliKommenteerimiseHaldur - võimaldab kommenteerida artiklit. 26
ArtikliHaldur +näitasisu() +näitkommentaarid() ArtikliSisuHaldur ArtikliKommnetaarideHaldur ArtikliKommenteerimiseHaldur Joonis 6.12: ArtikliHalduri struktuur ArtikliKokkuvõteHalduriKlient +näitasisu() +näitkommentaarid() ArtikliKokkuvõteVaade +kuva() Vaade Haldur +annavaade() : Vaade ArtikliKokkuvõteHaldur Artikkel +seis : int ArtikliKokkuvõteKontroller Kontroller +töötlesündmust() Joonis 6.13: ArtikliHaldur 27
ArtikliKokkuvõteHaldur Joonisel 6.13 on esitatud ArtikliKokkuvõteHaldur, mille funktsiooniks on artikli kokkuvõte kuvamine. ArtikliteKokkuvõteHaldur suhtleb oma omanikuga liidese ArtikliKokkuvõteHalduriKlient kaudu, mis omab kahte meetodit: näitasisu() ning näitakommentaarid(), mille kaudu saab teatada, et kasutaja soovib näha vastavalt artikli sisu või kommentaare. Ülejäänud haldurid Ülejäänud haldurid kirjeldatakse järgmises iteratsioonis. 6.2 Käitumine Joonisel 6.14 on esitatud süsteemi käitumise põhistenaarium SessiooniHalduriga ning VäljaandeHalduriga: 1. Süsteem loob SessiooniHalduri eksemplari. 2. Süsteem saadab SessiooniKontrollerile teadet töötlesündmust. Selle peale luuakse VäljaandeHaldurit. 3. Süsteem saadab SessiooniHaldurile teadet annavaade. 4. Süsteem saadab SessiooniVaatele teadet kuva. 28
süsteem : : SessiooniHaldur : SessiooniVaade : SessiooniKontroller töötlesündmust : : VäljaandeHaldur : VäljaandeVaade : VäljaandeRubriikideHaldur annavaade : kuva : annavaade : kuva : annamenüü : annavaade : kuva : Joonis 6.14: Süsteemi põhistenaarium 29
Peatükk 7 Analüüs: töötaja moodul Tehakse järgmises iteratsioonis. 30
Peatükk 8 Teostus- ja levitus- mudel Lugeja klientmoodul Töötaja klientmoodul Lugeja servermoodul Töötaja servermoodul Andmete moodul Joonis 8.1: Teostusmudel Joonisel 8.1 on esitatud planeeritav teostusmudel. Andmete moodul tegeleb andmete haldamisega. Lugeja funktsionaalsus on löödud lahti kaheks osaks: Lugeja servermoodul ja Lugeja klientmoodul. Samuti on tehtud ka töötaja funktsionaalsusega: Töötaja servermoodul ja Töötaja klientmoodul. Joonisel 8.2 on esitatud planeeritav levitusmudel. 31
Lugeja arvuti Töötaja arvuti Lugeja klientmoodul Töötaja klientmoodul Lugejate server Töötajate server Lugeja servermoodul Töötaja servermoodul Andmete server Andmete moodul Joonis 8.2: Levitusmudel 32