analüüsi kontekstis 7.Oskab kirjeldada, analüüsida, hallata ning selgitada infosüsteemi/arenduse osapoolte nõudeid ja eesmärke, mõisteid, kasutuslugusid ja kasutajaliideseid. 8.Oskab ühendada tekstilist ning graafilist (sealhulgas UML) modelleerimist, ning päringute (vaadete) koostamist (valdkonnamudeli alusel nõuete modelleerimiseks). 9.Oskab püstitada ülesannet disainerile (disainer-programmeerijale). 10.Tunneb iteratiivse arendusprotsessi UP põhiloogikat ning oskab näha süsteemianalüüsi distsipliine (ärimodelleerimine ja kasutusjuhtude keskne nõuete analüüs) selle terviku osadena. 11. Oskab hallata (iteratiivse arendamise käigus tekkivaid) mudelite versioone ja muudatusi. 12. Oskab retsenseerida kaastudengite töid (antud aine raames) M. Roost , TTÜ Informaatikainstituut, Loengukonspektid aines Süsteemianalüüs, 2014 õppeaine sisu lühikirjeldus: Valdkonna analüüs
järgmised: * Inception (algfaas, visioon) * Elaboration (täpsustamine/viimistlemine, arhitektuur) * Construction (konstrueerimine, valmistegemine) * Transition (Siire, üleviimine, rakendamine) Millistes eelnimetatud faasides ei tohiks põhimõtteliselt tegelda enam kontseptuaalse süsteemianalüüsiga, vaid ainult disaini, realiseerimise ja rakendamisega (vastamisel lähtuge aine konspektis ja C. Larmani raamatus olevast UP tõlgendusest iteratiivse ja agiilse protsessina)? Valige (ainus) õige vastus järgnevate vastusevariantide hulgast: Täpsustamise (Elaboration), Konstrueerimise ja Siirde faasis ei tohi põhimõtteliselt enam tegeleda kontseptuaalse süsteemianalüüsiga, see peab juba varem tehtud olema. Siirde faasis ei tohi põhimõtteliselt enam tegelda kontseptuaalse süsteemianalüüsiga, see peab juba varem tehtud olema. Konstrueerimise ja Siirde faasis ei tohi põhimõtteliselt enam tegelda kontseptuaalse
järgmised: * Inception (algfaas, visioon) * Elaboration (täpsustamine/viimistlemine, arhitektuur) * Construction (konstrueerimine, valmistegemine) * Transition (Siire, üleviimine, rakendamine) Millistes eelnimetatud faasides ei tohiks põhimõtteliselt tegelda enam kontseptuaalse süsteemianalüüsiga, vaid ainult disaini, realiseerimise ja rakendamisega (vastamisel lähtuge aine konspektis ja C. Larmani raamatus olevast UP tõlgendusest iteratiivse ja agiilse protsessina)? Valige (ainus) õige vastus järgnevate vastusevariantide hulgast: Täpsustamise (Elaboration), Konstrueerimise ja Siirde faasis ei tohi põhimõtteliselt enam tegeleda kontseptuaalse süsteemianalüüsiga, see peab juba varem tehtud olema. Siirde faasis ei tohi põhimõtteliselt enam tegelda kontseptuaalse süsteemianalüüsiga, see peab juba varem tehtud olema. Konstrueerimise ja Siirde faasis ei tohi põhimõtteliselt enam tegelda kontseptuaalse
(aga mittetäielik PS tulemus ei ole prototüüp, tulemus on tootmiskvaliteediga alamhulk lõppsüsteemist EHK iteratsiooni tulemus on tükike lõpp-produktist). Tavaliselt iga iteratsioon võtab ette uued nõuded ja laiendab süsteemi, samas saab ka olemasolevat tarkvara täiustada. Iga iteratsioon sisaldab oma nõuete analüüsi, disaini ja testimist. Asi on jagatud 4 faasi mis koosnevad omakorda iteratsioonidest. Kose mudeli faasid = iteratiivse protsessi distsipliinid (sarnaseid arendustegevusi ühendav valdkond). Faasid ja distsipliinid on ristuvad read-veerud, sest igas faasis tehaks korraga mitme distsipliinide tegevusi. Klassikalises mõistes analüüs on kaks ülemist rida Kolmas rida (analüüs & disain) on puhas disain Paindlik - nõuete valmimine ei pane neid nö lukku, kui vaja siis muudetakse. Muudatusi On hea teha ja kohanemine on lebo, sest iteratsioonid on lühikesed, iga samm
ühekorraga. Iteratiivne arendus on nö muutmisstrateegia, kus nähakse ette olemasolevate süsteemi osade ümbertegemine ja parandamine. Alternatiivne strateegia oleks planeerida tegevused selliselt, et kõik tehtaks õigesti esimesel katsel Ian Sommerville järgi on iteratiivne arendusmudel pigem üldine nimetus mitmele nn hübriidmudelile (sh inkrementaal- ja spiraalmudel). Sõna "iteratiivne" rõhutab seda, et tegevused selles mudelis korduvad. Sõltumata tähendusest, mis pannakse iteratiivse arenduse taha, on inkrementaalne arendus erinevates allikates üsna üheselt kirjeldatud. Inkrementaalne arendus võib olla nii plaanipärane kui ka paindlik. Mudel näeb ette ehitada valmis algul väike osa süsteemist ning seda järgnevalt mitmes etapis laiendada. Inkrementaalne lähenemine võimaldab arendajatel ja ka tulevastel süsteemi kasutajatel varajastest iteratsioonidest õppida, saada tagasisidet veel siis kui on võimalik teha
* Inception (algfaas, visioon) * Elaboration (täpsustamine/viimistlemine, arhitektuur) * Construction (konstrueerimine, valmistegemine) * Transition (Siire, üleviimine, rakendamine) Millistes eelnimetatud faasides ei tohiks põhimõtteliselt tegelda enam kontseptuaalse süsteemianalüüsiga, vaid ainult disaini, realiseerimise ja rakendamisega (vastamisel lähtuge aine konspektis ja C. Larmani raamatus olevast UP tõlgendusest iteratiivse ja agiilse protsessina)? Valige (ainus) õige vastus järgnevate vastusevariantide hulgast: Täpsustamise (Elaboration), Konstrueerimise ja Siirde faasis ei tohi põhimõtteliselt enam tegeleda kontseptuaalse süsteemianalüüsiga, see peab juba varem tehtud olema. Siirde faasis ei tohi põhimõtteliselt enam tegelda kontseptuaalse süsteemianalüüsiga, see peab juba varem tehtud olema.
f(n)
Selle mudel: Requireme Anaysis & nts Design Planni Implementa ng tion Initial Planning Evaluati Testin on g Deploym ent Iteratiivse arendamise eelised ja puudused Eelised: o Klient saab anda tagasisidet kogu tarkvaraprotsessi jooksul o Kliendi tagasisidet on odavam arvestada-peab vähem ümber tegema o Klient saab hakata tarkvara varem kasutama
· Tarkvara loomisel ei oska me täna öelda, mida soovime kahe aasta pärast teha. · Pidevalt muutuva keskkonnaga kohanemiseks on sobilik tarkvara arendamise spriaalmudel. · Tuleb püstitada viis olulist eesmärki: 1. Protsessi peab juhtima süsteemi arhitektuur. See nõuab kompromissi leidmist kasutaja nõudmiste, tarkvaratehnoloogiliste võimaluste ja eeldatava süsteemi eluea vahel. 2. Luua tuleb iteratiivse elutsükli toetamise mehhanismid, mille eesmärgiks on riskide hajutamine. Võimaldab muudatusi võimalikult valutult süsteemi integreerida. 3. Kasutada võimalikult palju komponentidel põhinevat tarkvara arendamist. Liikuda tuleb lähtekoodi kirjutamiselt valmiskomponentide integreerimise ja vajadusel loomise poole. Komponent võib olla nii lähtetekst, .dll või eraldi käivitatav programmimoodul. 4
ODBC või JDBC Füüsiline disain Vastus 5 Mitme-pärimise võimalusega arvestamine Füüsiline disain Kasutajaliidese tegemisel sobiva teegi valik – Java AWT, Vastus 6 Swing, Witget jne. Küsimus 7 Iteratiivse ja inkrementaalse projekti puhul kehtivad järgmised väited: Vali üks või enam: a. Erinevad süsteemi osad asuvad erinevates arendusfaasides b. Analüüsi ja disaini erinevus on täpselt määratav c. Erinevad süsteemi osad läbivad erinevad iteratsioonid d. Analüüsi ja disaini erinevus on ähmane Küsimus 8 Loogilise ja füüsilise disaini kohta kehtivad järgmised väided Vali üks: a. Nii loogiline kui ka füüsiline disain arvestavad realisatsiooni ja platvormi eripärad b
Gradientmeetod: Olgu optimeerimisülesande sihifunktsiooniks (y1, y1, ..., yn). Kui see funktsioon on pidev ja diferentseeruv, siis on ka olemas gradient. Mingis suvalises punktis y(j) kujutab ta endast osatuletiste veeruvektorit. grad = = Funktsiooni gradient on suunatud funktsiooni kiireima kasvamise (tõusu) sihis. Gradiendile vastassuunalist vektorit nimetatakse antigradiendiks, mis on suunatud kiireima languse sihis. Selle järgi saab hinnata, kui kaugel ollakse iteratiivse arvutuse käigus optimumist. Kui piirangud ei sega, on optimumi kohas gradiendi pikkus 0. Gradientmeetodi algoritm: 1. Antakse ette iteratsiooni nr j=1 ja lähtepunkt y1(j), y2(j), ..., yn(j) 2. Arvutatakse gradient grad(y(j)) 3. Arvutatakse gradiendi pikkus |grad| 4. Kontrollitakse optimumi tingimuste täitmist. Kui piirangud puuduvad, siis kontrollitakse gradiendi pikkust |grad| , ette antud täpsus 5. Kui tingimused on täidetud, siis LÕPP. Kui ei, siis edasi
• Iga tarkvaraprotsessi etapp peab olema lõpetatud enne kui alustatakse järgmist etappi. Eelised: • Plaanipärane arendus aitab koordineerida arendustööd suurte süsteemide loomisel, kui süsteemi arendatakse erinevates kohtades. Modifitseeritud kose mudel: igast etappist saab minna ühele eelmistest etappidest ja sealt juba alla poole liikuda. Agiilne tarkvaraprotsess: planeerimine toimub sammude kaupa töö käigus. Iteratiivse mudeli kohaselt koosneb kogu protsess mitmest järjestikusest tsüklist (iteratsioonist), mis kõik sisaldavad • analüüsi, • disaini, • programmeerimist, • testimist kuid erinevates tsüklites on rõhk erinevatel sammudel. Eelised: • Klient saab anda tagasisidet kogu tarkvaraprotsessi jooksul; • Kliendi tagasisidet on odavam arvestada – peab vähem ümber tegema;
Nooled on mõlemas suunas. isegi kui asi on live’s, saab nõuete juurde tagasi tulla. Aga nende muutmisel tuleb jälle kõik sammud sama kose mudeli alusel läbi käia. Ei ole piisavalt agiilne, iteratiivne. 22. Mis on iteratiivne arendamine? Eelised ja puudused? Agiilne on iteratiivse arendamise üks alamliik. Eelised: ● Klient saab anda tagasisidet kogu tarkvaraprotsessi jooksul ● Kliendi tagasisidet on odavam arvestada – peab vähem ümber tegema ● Klient saab hakata tarkvara varem kasutama Puudused: ● Tarkvaraprotsess ei ole läbipaistev ega lõpuni dokumenteeritud ● Tarkvarasüsteemi struktuur degradeerub (entroopia ehk korrastamatus suureneb ja
Kui see vastust ei tea, edastatakse päring juurserverile, mis omakorda küsib autoritatiivse nimeserveri käest (teab autoritatiivse nimeserveri aadressi) ja siis edastab selle kohalikule nimeserverile. Autoritatiivne nimeserver säilitab hosti jaoks hostinime ja IP-aadressi ning käitub enamasti ka kohaliku nimeserverina. Rekursiivse päringu korral küsib nimeserver juurserveri käest, see omakorda teise nimeserveri käest ning info kättesaamisel liigub see täpselt sama teed pidi tagasi. Iteratiivse päringu korral edastab juurserver nimeserverile vaid serveri, kes antud aadressi teab. Selline päring koormab juurserverit vähem. 11 Serverite koormuse vähendamiseks ja päringute kiiremaks tegemiseks kasutatakse ka cahce’mist, st et nimeserver jätab kord juba küsitud aadressi mõneks ajaks meelde ja järgmine klient saab vastuse kiiremini kätte.
•F(n) lehte = F(n) rida programmi •F(n) -1 sisemist sõlme = 2(F(n) -1) rida programmi •Kokku 3 F(n) -2 rida programmi time (n) = 3 F(n) -2 time (5) = 3 * 5 -2 = 13 time (45) > 1000000000 •Samu tegevusi korratakse ja see võtab aega, elik on kallis! ITK 2007, Kalev Pihl Sissejuhatus informaatikasse 12 Näite lõpp läheneb int fib(int n) { int f[n+1]; f[1] = f[2] = 1; for (int i = 3; i <= n; i++) f[i] = f[i-1] + f[i-2]; return f[n]; } •Tegemist on iteratiivse algoritmiga korduvad arvutused tehakse tsüklis ITK 2007, Kalev Pihl Sissejuhatus informaatikasse 13 Eelviimane näite slaid •Iteratiivse programmi puhul peame arvutama kokku, kui mitu korda mingit rida täidetakse: –kolm rida täidetakse alati –tsükli esimest rida täidetakse n-1 korda –tsükli teist rida täidetakse n-2 korda –kokku täidetakse : time(n) = 3 + (n-1) + (n-2) = 2n rida time(45) = 90 (üle 10 miljoni korra kiiremini) •Mahuline keerukus