Domeenimudel Domeen ==Valdkond. UP (ja RUP) kontekstis me nimetame domeeni mudeliks kontseptuaalsete klassidiagrammide vormis staatilist esitust valdkonna objektmudelist. Iteratiivses arendusprotsessis UP Kui muidu tegelesime ärisüsteemide mõistete ja objektide (registrid) äriprotsesside modelleerimisega, siis nüüd modelleerime neid konkreetse iteratsiooni tarkvara nõuete ja kasutusjuhtude kontekstis suurema täpsusega. Domeenimudelid tehakse peamiselt detailimisfaasis (elaboration) iteratiivselt. Algfaasis tehtav domeenimudeli eskiis on kasulik, kuid tõestamata kvaliteediga. PS. Seda saab teha ka siis, kui äriprotsesse pole eelnevalt kirjeldatud. Põhisammud 1. Identifitseerida kontseptuaalsed klassid, mis on seotud jooksva iteratsiooni nõuetega. 2. Luua esialgne domeeni mudel (just selle iteratsiooni fookuses olevate nõuete ja kasutusjuhtude jaoks. 3. Eristada korrektseid ja mittekorrektseid atribuute. 4
• Nõuete analüüs, • komponentide analüüs (mis komponendid on vaja ehitada, kuidas komponentidest kõige effektiivsem süsteem kokku panna), • nõuete muutmine (et läheks vastavusse komponentidega mis saame kasutada), • süsteemi kaevandamine (komponentide koorduvkasutamisega), • arendamine ja integratsioon, • süsteemi valideerimine ja testimine. Seda protsessi võib teha nii kosemudeli moodi kui ka iteratiivselt. Eelised: • Väiksemad riskid; • Spetsialistide parem kasutamine; • Parem vastavus standarditele; • Kiirem arendusprotsess. Puudused: • Suuremad hoolduskulud; • Komponentide teegi ülalpidamine; • Korduvkasutatavate komponentide leidmine, neist arusaamine ja nende kohandamine. Tarkvara arenduskulud – Arenduskulud ja Evolutsiooni-hoolduse kulud. Kulud sõltuvad arendatava
mudelite loomiseks Miks on mudeleid vaja – soodustada diskussiooni loodava süsteemi üle, aitab dokumenteerida, detailne esitlus, millest saab genereerida süsteemi realisatsiooni Tarkvaratehnikas on 3 vaadet: omaniku vaade kavandaja vaade ehitaja vaade Tarkvaraprotsessi etapid Nõuete esiletoomine ja analüüs Kavandamine e. disain Realiseerimine Testimine Hooldus ja evolutsioon Neid etappe tehakse iteratiivselt järjest läbi Modelleerimine – igas faasis on oma tehised (mudelid, dokumendid ja programmikood) Süsteemi käitumise analüüs 1. kokku tuleb leppida põhieesmärk ehk ülemise taseme eesmärk Tegevusdiagramm näidatakse tegevusi, mida süsteemiga toetatakse Kasutusjuht – Kasutusjuhtu saab esitada ka tabelina, kus iga tegevuse kohta on detailne info (actor, data, response, comments) Struktuuri analüüs – Mis osadest süsteem koosneb ja kuidas need on omavahel seotud?
Milliste meetmetega leevendada riske ? Mil moel on see arhitektuur edasiminek viimase kandidaadi/baas arhitektuuri suhtes ? Agiilne praktika Arhitektidel on alandlikkust tunnistada et nad ei oska vee peal käia. Arhitektid osalevad aktiivselt arendustegevuses. Nad on meeskonna konsultandid. Arhitektidel on alandlikkust tunnistada, et nad ei oska tulevikku ennustada. Küll aga on nad enesekindlad selles, et homseid probleeme saab lahendada homme. Arhitektuur tekib iteratiivselt koos arendusega. Dokumenteeri nii palju kui on vaja kommunikatsiooniks. Mudeleid kommunikeeritakse avalikult kõigile osapooltele, ka poolikuid, et saada tagasisidet. Arhitektuuri kontrollitakse eksperimentidega. 7. Loeng - Architecture of software systems Key questions of software architecture Regardless of the method used, it must respond to certain key questions. Ability to move up and down the abstraction layers The reasons: · Complexity management
1. võrgu väljundvektori väärtuste arvutamine olemasolevate parameetrite alusel; 2. võrgu vea arvutamine lähtudes õpetamismeetodi poolt määratud kriteeriumist (Näiteks, arvutatud võrgu väljundväärtuse ja etteantud etalonväärtuse vahe); 3. võrgu parameetrite väärtuse ümberarvutamine lähtudes õpetamismeetodi poolt määratud algoritmist. Kõik kolm nimetatud sammu moodustavad ühe õpetamise perioodi (epoch, ). Õpetamise perioodid korduvad iteratiivselt seni kuni saavutatakse võrgu väljundi vajalik täpsus või võrgu väljundi täpsus lakkab paranemast (s.t. veafunktsioon on saavutanud lokaalse miinimumi). Õpialgoritmi valik sõltub kasutatavas närvivõrgust (erinevad õpialgoritmid erinevate närvivõrgu arhitektuuride jaoks) ja lahendatavast probleemist. Järgnevas vaatleme lühidalt kõige levinumaid õpialgoritme. Enamuses otsesuunatud ja tagasisidestatud närvivõrkude rakendustes kasutatakse nn. vea
arhitektuur arendamisele o Arhitektidel on alandlikkust tunnistada, et nad ei oska vee peal käia o Arhitektid osalevad aktiivselt arendustegevuses. Nad on meeskonna konsultandid o Arhitektidel on alandlikkust tunnistada, et nad ei oska tulevikku ennustada. Küll aga on nad enesekindlad selles, et homseid probleeme saab lahendada homme o Arhitektuur tekib iteratiivselt koos arendusega o Valguskiirus. Dokumenteeri nii palju kui on vaja kommunikatsiooniks o Mudeleid kommunikeeritakse avalikult kõigile osapooletele, ka poolikuid, et saada tagasisidet o Arhitektuuri kontrollitakse eksperimentidega Loeng 4 Disain- Erik Jõgi [email protected] Miks disain loeb? o Kestvus – koodi kasutatakse aastaid ja aastaid o Puhas kood (Clean Code)
1. võrgu väljundvektori väärtuste arvutamine olemasolevate parameetrite alusel; 2. võrgu vea arvutamine lähtudes õpetamismeetodi poolt määratud kriteeriumist (Näiteks, arvutatud võrgu väljundväärtuse ja etteantud etalonväärtuse vahe); 3. võrgu parameetrite väärtuse ümberarvutamine lähtudes õpetamismeetodi poolt määratud algoritmist. Kõik kolm nimetatud sammu moodustavad ühe õpetamise perioodi (epoch, ). Õpetamise perioodid korduvad iteratiivselt seni kuni saavutatakse võrgu väljundi vajalik täpsus või võrgu väljundi täpsus lakkab paranemast (s.t. veafunktsioon on saavutanud lokaalse miinimumi). Õpialgoritmi valik sõltub kasutatavas närvivõrgust (erinevad õpialgoritmid erinevate närvivõrgu arhitektuuride jaoks) ja lahendatavast probleemist. Järgnevas vaatleme lühidalt kõige levinumaid õpialgoritme. Enamuses otsesuunatud ja tagasisidestatud närvivõrkude rakendustes kasutatakse nn. vea
saadavad andmeid, ilma et üksteist liiga palju segaks (nagu klassiruumis otsustab õppejõud, kes võib rääkida, muidu kõik mölisevad samal ajal). Multipöördusprotokollid jagunevad üldiselt kolme klassi: 1. Channel Partitioning Protocols - kanalit (kas sagedust või aega) jaotatakse osadeks FDM (Frequency Division Multiplexing) - jagab sageduse erinevatele seadmetele TDM (Time Division Multiplexing) - annab iteratiivselt igale seadmele väikse ajalõigu Vaata 9. teemat FDM ja TDM seletusteks. CDMA (Code Division Multiple Access) - igale seadmele antakse erinev kood, mille abil kodeeritakse saadetavad bitid selliselt ära, et kõik seadmed saavad samal ajahetkel andmeid saata, ilma et kokkupõrked andmeid kanali peal rikuks. 2. Random Access Protocols - iga seade üritab oma andmeid saata, kui tekib
karakteristikud. Näiteks, eeldatakse et muutuja w väärtustel on ühesugune tõenäosus. 25. Mittelineaarse planeerimise ülesannete iseärasused. Gradient ja gradientmeetodid (tuua ära lihtsaim algoritm). Ülesandes on mittelineaarsed kas sihifunktsioon või lisatingimused. Lahendamine on tavaliselt küllaltki keeruline sest: 1. Optimeerimisarvutused peavad algama lubatavast piirkonnast; 2. Optimaalne lahend võib asuda lubatavate lahendite piirkonna mistahes punktis; 3. Arvutus toimub iteratiivselt, iteratsioonide arv võib olla väga suur; 4. Tulemuseks saadakse lokaalne optimum ja mitte alati pole võimalik teada, kas see on ka globaalne. Lisatingimusteta optimeerimisülesannete lahendusmeetodid: Kriitilised punktid, kus võib asuda funktsiooni (y) optimum on järgmised: 1. Punktis, kus on katkevuskoht; 2. Punktid, kus funktsioon on pidev, kuid tuletis puudub; 3. Punktid, kus '=0 Lahendusskeem: 1. Ülesande matemaatilise mudeli koostamine; 2. Optimaalsustingimuste tuletamine; 3
Sellise puhvri olemasolu võimaldab samaaegselt sooritada andmeedastusi struktuurides register-mälu ja register-aritmeetikakonveier. Nende kahe struktuuri talitlus toimub kattuvalt. Vektorregistrikogumil on vähemalt 2 lugemis- ja 1 salvestusport. 53. Tüüpilised vektorkäsud. Vektorkäskude vorming Kui mittevektorarvutis sooritatakse operatsioon vektorandmetega, näiteks A +B = C, tsüklilise operatsioonina, kus iteratiivselt liidetakse andmevektorite A ja B elemente, siis vektorarvutis sooritatakse see operatsioon ühe käsuga. Käsukood määrab läbiviidava infoteisenduse (liitmine, lahutamine, korrutamine jms). Ülejäänud väljad käsuvormingus määratlevad, kus asuvad lähteandmed (allikas 1 ja 2), kuhu salvestatakse tulem ning kui pikad (mitme elemendilised) on kasutatavad andmevektorid. Kui programmi tsüklites esineb tingimusi („if“-avaldis), siis ei saa neid programmiosi töödelda
Ehitamise etapp · Vajamineva tarkvara kirjutamine, testimine ja kasutujuhendi koostamine 4.2 Arendusprotsessi meeskond Arendusprotsessi meeskonna moodustavad: · projektijuht · süsteemianalüütik · tellija pädevusalade esindajad · andmebaasidisainer · kasutajaliidese disainer · 2 programmeerijat · testija 4.3 Arendusprotsessid Süsteemi arendatakse iteratiivselt. Soovituslik iteratsioonide (kasutusjuhtude) realiseerimine on järgmine: · Töötajate valimine ja lepingute sõlmimine · Koostööpartnerite valimine ja lepingute sõlmimine · Konto taotlemine · Kliendi info salvestamine · Tellimise info salvestamine · Laenutuse info salvestamine · Kliendi info kustutamine · Koostööpartnerite lepingute lõpetamine · Töötajate lepingute lõpetamine
kasutame · Protseduurid turvaintsidentide ärahoidmiseks · Protseduurid turvaintsidentidele reageerimiseks - kellele teatada (töö sisekorra eeskirjas) · Igale objektile on määratud turbe eest vastutaja · Aluseks igasugusele infoturbealasele tegevusele asutuses - millised on turvanõuded? isikuandmete käitlemine jms; osad nõuded tulenevad seadusest (osa andmeid tuleks talletada krüpteeritud kujul) · Turvalisus on protsess, mitte valmis saav asi. Seetõttu on ka turvapoliitika iteratiivselt uuenev. Riskianalüüsiga ei ole võimalik hinnata kõiki kasutatavaid rakendusi (erinevad lugematul hulgal alamrakendusi ja teeke). TCSEC (Trusted Computer System Evaluation Criteria) turvaklassid · TCSEC -- USA kaitseministeeriumi vanem turvanormistik ("vikerkaarevärvilised raamatud") · D -- minimaalne kaitse (sisuliselt turbeta süsteem) - pisikesed ühe kasutaja süsteemid; seade on ühe inimese käes ja teisele ei anna või seade paikneb ühes kindlas ruumis
Agiilne praktika ● Arhitektidel on alandlikkust tunnistada et nad ei oska vee peal käia (ei ole jumalad) ● Arhitektid osalevad aktiivselt arendustegevuses (et tajuda probleeme, mis valitud arhitektuur põhjustab). Nad on meeskonna konsultandid ● Arhitektidel on alandlikkust tunnistada, et nad ei oska tulevikku ennustada. Küll aga on nad enesekindlad selles, et homseid probleeme saab lahendada homme ● Arhitektuur tekib iteratiivselt koos arendusega ● Valguskiirus. Dokumenteeri nii palju kui on vaja kommunikatsiooniks. ● Mudeleid kommunikeeritakse avalikult kõigile osapooltele (tiim, klient, DBAd jt), ka poolikuid, et saada tagasisidet ● Arhitektuuri kontrollitakse eksperimentidega 49 107. Veebirakenduse arhitektuur. ! Arhitektuuri point