79
1 1 Kas yra menas? Ar galima programas traktuoti kaip meno kūrinius? Kuo programų sistemų inžinerija skiriasi nuo meno? (2) Yra du požymiai, skiriantys meną nuo kitų veiklų: kūrybinis veiklos pobūdis ir estetinė kuriamojo objekto vertė. Programas galima traktuoti kaip meno kūrinius, jei programuotojai programuoja siekiant estetinio vaizdo, originalumo, t.y. nesiekia, kad programas galima būtų tiražuoti dideliais tiražais, lengvai perdirbti jas į naujas programas. PSI skiriasi nuo meno: Kodas neturi estetinio vaizdo Meninę vertę gali suprasti nebent specialistas Apibrėžtumu, dokumentacija 2 Kas yra amatas? Amato ir meno panašumai bei skirtumai. Programinės įrangos kūrimas kaip amatas. Kuo programų sistemų inžinerija skiriasi nuo amato? (2) Amatas - tam tikrų praktinių įgūdžių reikalaujanti veikla. Gebėjimas gerai daryti kokį nors produktą, įgudžių visuma. Panašumai: Abiems reikalingas kūrybiškumas ir įgūdžiai, o taip pat tam tikros žinios. Abiejų mokomasi panašiai. Skirtumai: Amatas siejamas su praktinį panaudojimą turinčių daiktų darymu. Gaminama pagal užsakymą, lieka mažiau vietos kūrybinei veiklai. Programų kūrimas kaip amatas: Mažos įmonės užsiima programavimu kaip amatu. Tiesioginis bendravimas, supaprastinti sistemos darymo žingsniai, sistemos architektūra slepiasi kode (o ne dokumentuose). PSI skirtumai nuo amato: skiriasi sprendimų priėmimas (pagal griežtas taisykles), skiriasi mokymasis. 3 Kas yra mokslas? Ar galima programinės įrangos tyrinėjimus traktuoti kaip mokslą? Ar galima programų sistemų inžineriją traktuoti kaip mokslo šaką? (2) Mokslas - žinios arba žinių sistema apie bendrąsias tiesas arba apie bendruosius dėsnius, paprastai gautus ir patikrintus, panaudojant mokslinį metodą. Mokslas “maitina" inžineriją ir, mažesniu mastu, amatą bei meną. PSI galima traktuoti kaip mokslo šaką, bet tik iš dalies. PSI labiau yra orientuota į mokslo pasiekimų praktinį pritaikymą ir tiražavimą, o ne į tyrinėjimus. 4 Kas yra inžinerija? Inžinerijos ir mokslo panašumai bei skirtumai. Svarbiausi amato ir inžinerijos skirtumai. Kokios 1

PSI egzamino atsakymai

Embed Size (px)

DESCRIPTION

programų sistemos inzinerijos egzmainas

Citation preview

Page 1: PSI egzamino atsakymai

1

1 Kas yra menas? Ar galima programas traktuoti kaip meno kūrinius? Kuo programų sistemų inžinerija skiriasi nuo meno? (2)

Yra du požymiai, skiriantys meną nuo kitų veiklų: kūrybinis veiklos pobūdis ir estetinė kuriamojo objekto vertė. Programas galima traktuoti kaip meno kūrinius, jei programuotojai programuoja siekiant estetinio vaizdo, originalumo, t.y. nesiekia, kad programas galima būtų tiražuoti dideliais tiražais, lengvai perdirbti jas į naujas programas. PSI skiriasi nuo meno: Kodas neturi estetinio vaizdo Meninę vertę gali suprasti nebent specialistas Apibrėžtumu, dokumentacija

2 Kas yra amatas? Amato ir meno panašumai bei skirtumai. Programinės įrangos kūrimas kaip amatas. Kuo programų sistemų inžinerija skiriasi nuo amato? (2)

Amatas - tam tikrų praktinių įgūdžių reikalaujanti veikla. Gebėjimas gerai daryti kokį nors produktą, įgudžių visuma. Panašumai: Abiems reikalingas kūrybiškumas ir įgūdžiai, o taip pat tam tikros žinios. Abiejų mokomasi panašiai. Skirtumai: Amatas siejamas su praktinį panaudojimą turinčių daiktų darymu. Gaminama pagal užsakymą, lieka mažiau vietos kūrybinei veiklai. Programų kūrimas kaip amatas: Mažos įmonės užsiima programavimu kaip amatu. Tiesioginis bendravimas, supaprastinti sistemos darymo žingsniai, sistemos architektūra slepiasi kode (o ne dokumentuose). PSI skirtumai nuo amato: skiriasi sprendimų priėmimas (pagal griežtas taisykles), skiriasi mokymasis.

3 Kas yra mokslas? Ar galima programinės įrangos tyrinėjimus traktuoti kaip mokslą? Ar galima programų sistemų inžineriją traktuoti kaip mokslo šaką? (2)

Mokslas - žinios arba žinių sistema apie bendrąsias tiesas arba apie bendruosius dėsnius, paprastai gautus ir patikrintus, panaudojant mokslinį metodą. Mokslas “maitina" inžineriją ir, mažesniu mastu, amatą bei meną. PSI galima traktuoti kaip mokslo šaką, bet tik iš dalies. PSI labiau yra orientuota į mokslo pasiekimų praktinį pritaikymą ir tiražavimą, o ne į tyrinėjimus.

4 Kas yra inžinerija? Inžinerijos ir mokslo panašumai bei skirtumai. Svarbiausi amato ir inžinerijos skirtumai. Kokios inžinerinės disciplinos naudojamos visose inžinerijos šakose? (3)

Inžinerija: mokslo, formalių metodų, įrankių ir turimos patirties panaudojimas suprojektuotiems objektams kurti (gaminti). mokslo žinių ir klaidų ir bandymų metodo panaudojimas sistemoms projektuoti.Inžinerijos ir mokslo panašumai: gabūs mokytis profesionalai, teorijos naudojimas rezultatams pasiekti.Inžinerijos ir mokslo skirtumai: mokslas griežtesnis už inžineriją. Jame reikia ne tik pademonstruoti kad veikia, bet ir paaiškinti, kodėl taip veikia. Inžinerijoje rezultatai tiesiogiai siejami su ekonomika, naudojamasi ne tik teorija bet ir analize, remiamasi racionalumu.Svarbiausi amato ir inžinerijos skirtumai: Inžinerijos tikslumas ir smulkmeniškumas gamyboje, darbo metodai (formalūs ir griežtai aprašyti vs neformalūs ir intuityvūs). Daug griozdiškos dokumentacijos :)Inžinerinė disciplina, naudojama visose inžinerijos šakose: Sistemų inžinerija. Tai labai bendra disciplina. Ji nagrinėja bendruosius principus ir metodus, pritaikomus kuriant bet kurio pobūdžio sistemas, įskaitant verslo sistemas, informacijos sistemas ir programų sistemas.

1

Page 2: PSI egzamino atsakymai

2

5 Ką vadiname sistema? sistemos reikalavimais? sistemos interesų sritimi? aplinka? kontekstu? sistemos interfeisu? (2)

Sistema - tai kartu veikiančių dalių rinkinys, kuris, žiūrint iš pašalies, atrodo kaip viena visuma ir turi aiškias ribas. Pvz: komp. sistema, informacinė sistema, programų sistema, pastatas, auto.Sistemos reikalavimai - sutartimi arba kokiu nors kitu juridinę galią turinčiu dokumentu numatyta kuriamos sistemos savybė. (Tai, ko nori iš sistemos užsakovas.) Jie nesako, kokius konkrečius sprendimus naudoti, kuriant sistemą.Sistemos aplinka - daiktų, esančių sistemos išorėje ir arba ją veikiančių, arba jos veikiamų visuma.Sistemos kontekstas - tie sistemos aplinkos aspektai, nuo kurių, kaip manoma, priklauso sistemos sėkmė.Sistemos interfeisas - užsakovą dominančios funkcinės ir fizinės savybės, kurių negalime priskirti nei sistemai, nei jos aplinkai.

6 Kas tai yra modelis? Ką vadiname sistemos architektūra? Kas tai yra architektūrinis projektas? elgsenos projektas? (2)

Modelis - konkrečią tikslinę paskirtį turintis supaprastintas kokio nors originalo (realaus pasaulio sistemos) analogas, atspindintis to originalo struktūrą ir/arba elgseną.Sistemos architektūra - toks sistemos komponentų organizavimo būdas, kuris įgyvendina sistemos reikalavimus ir užtikrina jos sąveiką su aplinka.Architektūrinis sistemos projektas – tai koncepcinio lygmens struktūrinis kuriamos sistemos modelis, sudarytas tam, kad juo vadovaujantis sistema būtų konstruojama.Elgsenos projektas - aprašas, kaip, įgyvendindama reikalavimus, turėtų veikti sistema, sudarytas ja pasinaudoti norinčio vartotojo (jūzerio) terminais ir neliečiantis vidinių jos realizavimo detalių

7 Kuo skiriasi sistemos probleminė ir dalykinė sritys? (1)

Sistemos dalykinė sritis - sritis, kurioje naudojama sistema. Pvz: laikrodžio dalykinė sritis yra "matavimo prietaisai".Sistemos probleminė sritis - tikslinė sistemos paskirtis. Pvz: laikrodžio probleminė sritis yra "tikslaus laiko rodymas".

8 Ką vadiname sistemų inžinerija? technologiniu procesu? Sistemų inžinerijos kaip technologinio proceso traktuotė. (5)

Sistemų inžinerija - tarpdisciplininė inžinerijos mokslų šaka, kurioje visi sistemos kūrimo klausimai nagrinėjami labai bendru lygmeniu, atsiribojant nuo konkretaus sistemos pobūdžio.Technologinis procesas - sustruktūrinta matuojamų veiklų visuma, sukonstruota tikslu sukurti tam tikro pobūdžio išeigą, skirtą konkrečiam klientui arba parduoti rinkoje.SI (kaip technologinis procesas) – tai technologinis procesas, skirtas transformuoti operacinius vartotojo poreikius ir/arba sistemos reikalavimus į veikiančią sistemą. Šis procesas apima veiklas, susijusias su sistemos projektavimu ir projekto įgyvendinimu, įskaitant sistemos komponentų integravimą į vieną visumą.Technologinis SI procesas: Poreikiai -> Problema -> Alternatyvų analizė -> Sistemos modeliavimas -> Integravimas -> Diegimas -> Našumo matavimai -> Procesas ir produktas. Kiekvieną proceso žingsnį galima vertinti ir prireikus keisti (iki tobulybės arba kol atsibos ;) Problemos formulavimas pradedamas, aprašant arba planuojamas sistemos aukščiausiojo lygmens funkcijas, arba tas jau esamos sistemos savybes, kurias reikia pagerintiAlternatyvūs sistemos reikalavimų įgyvendinimo būdai (sistemos projektai) yra vertinami, vadovaujantis našumo ir kainos kriterijais. Dažniausiai, nei vienas iš būdų nėra pats geriausias. Viskas priklauso nuo prioritetų, suteikiamų vertinimo kriterijams.

2

Page 3: PSI egzamino atsakymai

3

Alternatyvūs sistemos reikalavimų įgyvendinimo būdai yra modeliuojami. Pasirinktosios alternatyvos modelis yra detalizuojamas ir juo yra naudojamasi visą tolimesnį sistemos kūrimo laikotarpį

Integravimas – tai komponentų jungimas į vieną veikiančią visumą, kuriančią reikiamus rezultatus. Jo metu taip pat yra konstruojami tiek išoriniai pačios sistemos, tiek ir vidiniai jos posistemių interfeisai.Sistemos diegimas – tai pradėjimas naudoti tiems tikslams, kuriems ji ir buvo kurta. Jis apima pradinius sistemos paleidimo darbus ir pradėjimą gaminti planuotą sistemos išeigą. Sistemos naudojimo ir priežiūros metu turi būti nuolat matuojamas jos našumasPakartotinas vertinimas atliekamas stebint sistemos išeigą ir panaudojant surinktą informaciją darbui tobulinti, keičiant sistemos įeigą arba darbo su ja procesą. Tai - vienas iš svarbiausiųjų inžinerijos metodų.

9 Funkcinė ir fizinė sistemos dekompozicija. Jų skirtumai (3)

Projektuojant sistemos architektūrą, ji yra suskaidoma į komponentus. Tai vadinama fizine sistemos dekompozicija. Tokia dekompozicija yra hierarchinė, nes sistema pradžioje yra skaidoma į stambius komponentus , po to šie yra skaidomi į smulkesnius ir tt iki kol sistema nėra suskaidoma į neskaidžius bazinius (primityviuosius) komponentus.Funkcinė dekompozicija - sistemos skaidymas i komponentus pagal atliekamas funkcijas, neatsižvelgiant į fizines dalis. Vienas fizinis komponentas gali vykdyti keletą funkcijų, bei atvirkščiai - vieną funkciją gali vykdyti keli fiziniai komponentai. Viena iš sistemų inžinieriaus užduočių yra atlikti kuriamos sistemos funkcinę dekompoziciją: (1) susieti sistemos funkcijas su jos (fiziniais) komponentais ir įsitikinti, kad už kiekvienos funkcijos vykdymą yra atsakingas konkretus komponentas (arba keli komponentai) (2) susieti sistemos funkcijas su jos reikalavimais (3) įsitikinti, kad sistema vykdys visas reikalingas užduotis ir nevykdys jokių nereikalingų užduočiųPvz: Funkcinė ir fizinė paukštuko :] dekompozicija. * Funkcija - pakilimas ir nusileidimas. Fizinis komponentas - kojos. * Funkcija - vietos ir greičio pojūtis. Fizinis komponentas - akys. * Funkcija - navigavimas. Fizinis komponentas - smegenys. * Funkcija - horizontalus judėjimas. Fizinis komponentas - sparnai. * Funkcija - vertikalus judėjimas. Fizinis komponentas - sparnai.

10 Ką vadiname (sistemos kūrimo) projektu? užduotimi? projekto vadyba? projekto rezultatais? kontroliniais taškais? (4)

Projektas – tai griežtai apibrėžtą tikslą turintis procesas, su tiksliai nustatytomis pradžios ir pabaigos datomis, nustatytu užduočių rinkiniu ir fiksuotu biudžetu.Užduotis – tai griežtai apibrėžtos apimties darbas, duodantis griežtai nustatytus rezultatus, pavestas atlikti vienam arba keliems projektą vykdančios grupės nariams.Projekto vadyba – projekto tikslų įgyvendinimą nustatytu laiku, neviršijant nustatyto biudžeto ir tenkinant kitus nustatytus reikalavimus užtikrinantis organizacijos resursų planavimo, naudojimo, valdymo ir kontrolės procesas. Vienas svarbiausių projekto vadybos uždavinių yra sukurti/suskaidyti kuriamą sistemą į komponentus (aparatūrą, programinę įrangą ir kt.) ir su kiekvienu komponentu susieti atitinkamas užduotis ar jų grupes.Rezultatai – tai, ką privalo sukurti ir pateikti projektas: dokumentai, produktai, paslaugos, procesai, savybės. Kontroliniai taškai – direktyvinės datos, kurioms turi būti gauti griežtai apibrėžti tarpiniai projekto rezultatai. Jie naudojami projekto progresui matuoti.

11 Kas vadimamas sistemos gyvavimo ciklu? gyvavimo ciklo modeliu? (2)

3

Page 4: PSI egzamino atsakymai

4

Sistemos gyvavimo ciklas - laikotarpis nuo sistemos sumanymo iki jos naudojimo pabaigos (demontavimo) momento. Jis skaidomas į stadijas (phases), kiekvienai iš kurių numatomi kontroliniai taškai.Sistemos gyvavimo ciklo modelis – tai formalizuotas sutvarkytos laiko atžvilgiu projekto stadijų ir jų tarpusavio sąryšių visumos aprašas. Tokį aprašą nesunku suprasti ir paaiškinti kitiems. Jis suskaido visą atliekamą darbą į pakankamai mažus, nesunkiai aprėpiamus ir valdomus vienetus.

12 Kas tai yra sistemos įgyvendinamumo analizė? Kokie jos tikslai?(2)

Įgyvendinamumo analizė – tai techninių ir ekonominių duomenų analizės procesas, atliekamas tikslu įvertinti sistemos įgyvendinamumo laipsnį. Įgyvendinamumas čia suprantamas kaip matas, nusakantis ne tik ar sistemą įmanoma sukurti, bet ir ar konkrečiai organizacijai yra verta ją kurti.

13 Kas yra sistema suinteresuotieji asmenys? užsakovas? (1)

Suinteresuotasis asmuo – bet kuris fizinis/juridinis asmuo (arba jų grupė), kuris domisi projekto išeiga ir daro tai arba: * todėl, kad projekto rezultatai turės jam kokį nors (teigiamą/neigiamą) poveikį * todėl, kad jis pats nori daryti projektui kokį nors poveikį.Užsakovas – subjektas, kurio poreikius yra siekiama patenkinti, vykdant projektą. Jis finansuoja projektą ir vertina bei naudoja projekto rezultatus.

14 Kas vadinama reinžinerija? atvirkščiaja inžinerija? sistemos projekto atkūrimu? (2)

Reinžinerija - egzistuojančios sistemos analizės ir modifikavimo procesas, atliekamas tikslu iš esmės pertvarkyti tą sistemą.Atvirkščioji inžinerija - dirbtinės egzistuojančios sistemos analizės procesas, atliekamas tikslu atkurti jos projektinę dokumentaciją.Sistemos projekto atkūrimas - ta atvirkščiosios inžinerijos proceso dalis, kuria, pasinaudojant žiniomis apie dalykinę sritį, išorine informacija ir dedukcija arba kitokiais samprotavimo būdais, iš tiesioginių nagrinėjamos sistemos analizės duomenų stengiamasi išgauti prasmingas aukštesniųjų lygmenų abstrakcijas, aprašančias tos sistemos sandarą ir veikimą.

15 Kas vadinama įmone? Kas tai yra įmonės sistema? funkcinis vienetas? organizacija? organizacinis procesas? (2)

Įmonė - viena ar daugiau organizacijų, jungiamų bendra paskirtimi, siekiais ar tikslais ir kuriančių kokią nors bendrą išeigą, pavyzdžiui, produktą ar paslaugas.Įmonės sistema - tarpusavyje susijusių verslo sistemų, palaikomų atitinkamų informacinių ir programų sistemų, rinkinys. Ji apima: * bent vieną verslo sistemą; * ją palaikančias informacines sistemas; * tų informacinių sistemų programinę įrangą.Funkcinis vienetas - agentas, gebantis vykdyti kokią nors operaciją (atlikti kokį nors darbą). Agentu gali būti asmuo, veikiantis tam tikrame vaidmenyje, padalinys, įrenginys, programų sistema ir pan.Organizacija - funkcinių vienetų rinkinys.Organizacinis procesas - procesas, skirtas kurti ir palaikyti organizacines struktūras.

16 Kas vadinama darbų srautu? (1)

Darbų srautu vadinama įmonėje vykdoma užduočių seka, skirta kokiai nors įmonės išeigai kurti. Pvz, leidyboje dokumentas gali būti automatiškai maršrutizuojamas taip, kad iš autoriaus nueitų redaktoriui, po to korektoriui ir t.t.

17 Kas vadinama verslo sistema? Verslo sistemos lygmenys. (3)

Verslo sistema – rinkinys tarpusavyje perpintų verslo procesų, vykdomų įmonės, siekiant tam tikrų, paprastai, ilgalaikių tikslų, tiesiogiai susijusių su tam tikrų gaminių gamyba arba/ir tam tikrų paslaugų tiekimu. Verslo sistema = verslo procesai + žmonės + informacija + technologijos. Ji

4

Page 5: PSI egzamino atsakymai

5

aprašo įmonės veiklas, reikalingas sukurti produktus bei teikiamas paslaugas. Apibendrinta verslo sistema: * Tyrimai/konstravimas - technologija, proceso ir produkto projektavimas, patentai * Gamyba - technologija, žaliavos, galingumai, patalpos, pirkimai * Marketingas - kainodara, reklama, pakavimas, prekės ženklai * Pardavimas, platinimas - pardavėjai, kanalai, prekių sąrašas, sandėliavimas, transportavimas * Paslaugos - garantijos, greitis, pateikimas, kainosVerslo sistemos lygmenys: 1 - kokybės (metodų) vadovas, 2 - procedūros, 3 - pareigybinės instrukcijos, 4 - išoriniai dokumentai.

18 Kas vadinama verslo procesu? kokie jo elementai? (3)

Verslo procesas - tarpusavyje perpintų veiklų rinkinys, kuris pradedamas vykdyti įvykus tam tikram įvykiui ir kuria konkrečius užsakovui reikalingus rezultatus. Verslo procesai turi įeigas ir išeigas. Proceso rezultatus visada galima identifikuoti ir skaičiuoti. Visi verslo procesai yra siejami su užsakovais ir jų poreikiais. Užsakovo požiūriu, proceso resultatai yra vienintelė priežastis, kodėl tas procesas apskritai egzistuoja.

19 Kas tai yra verslo inžinerija? Kaip tarpusavyje susiję verslo inžinerija ir sistemų inžinerija? (2)

Verslo inžinerija - inžinerinė metodika, įgalinanti apibrėžti, projektuoti ir kurti teisingai veikiančias verslo sistemas. Ji apima verslo procesų ir jiems vykdyti reikalingų resursų analizę, specifikavimą ir modeliavimą.Verslo inžinerija iš sistemų inžinerijos paveldi visas jos sąvokas ir visus jos metodus, tačiau sąvokos ir metodai yra suvokiami, tikslinami, konkretinami ir išplečiami, atsižvelgiant į konkrečios sistemų klasės, verslo sistemų, ypatumus.

20 Kas vadinama verslo procesų reinžinerija? VPR principai. (2)

Verslo proceso reinžinerija (VPR) - esminis verslo proceso pergalvojimas ir radikalus perprojektavimas siekiant reikšmingo to proceso našumo pagerinimo. Dažniausiai apima daugelį valdymo lygmenų, pradeda nuo tikslų ir rezultatų, o ne nuo atliekamų veiksmų.VPR principai: * Organizuok darbą pradėdamas nuo išeigos * Tobulink technologijas * Nustatyk su procesu susijusias problemas (pvz, per ilgai trunka, per brangus) ir jų priežastis (pvz, skaičiavimai atliekami rankiniu būdu)

21 Kas vadinama informacine sistema? IS komponentai. (2)

Informacinė sistema (IS) – tai verslo sistemos posistemis, apimantis komunikacinius ir informacinius verslo aspektus. Tai rinkinys darniai veikiančių komponentų, renkančių, apdorojančių, saugančių, surandančių ir paskleidžiančių informaciją bei duomenis, palengvinančius verslo planavimą, valdymą, koordinavimą ir analizę bei verslui reikalingų sprendimų priėmimą.IS komponentai: * Žmonės – naudotojai, vadybininkai, IS kūrėjai * Duomenys – medžiaga informacijai kurti * Technologija – techninė ir programinė įranga, palaikanti kitus IS komponentus

22 Kuo skiriasi duomenys ir informacija? (1)

Duomenys yra faktai apie įmonę ir jos atliekamas verslo transakcijas. Patys savaime duomenys yra mažai prasmingi ir naudingi. Informacija įprasmina duomenis. Duomenys įprasminami juos interpretuojant, tikslinant ir apdorojant.

5

Page 6: PSI egzamino atsakymai

6

23 Kas vadinama informacinių sistemų inžinerija? IS inžinerijos stadijos. Kaip tarpusavyje susiję informacinių sistemų inžinerija ir sistemų inžinerija? (2)

S inžinerija - inžinerinė metodika įgalinanti apibrėžti, projektuoti ir kurti teisingai veikiančias informacines sistemas.IS inžinerijos stadijos: * Planavimas – verslo problemos nustatymas, jos ribų nustatymas, jos sprendimo tikslų ir sprendimo strategijos planavimas * Analizė – reikalavimų, kuriuos turi tenkinti verslo problemos sprendinys, formulavimas ir analizė. * Projektavimas – problemą sprendžiančios sistemos projektavimas. * Realizavimas - sistemos sukonstravimas. * Priežiūra (palaikymas) – įgyvendinto sprendinio analizė, tikslinimas ir tobulinimas.IS inžinerija – tai bendrosios sistemų inžinerijos konkretizacija. Ji paveldi visas sistemų inžinerijos sąvokas ir metodus, tačiau sąvokos ir metodai yra suvokiami, tikslinami, konkretinami ir išplečiami, atsižvelgiant į konkrečios sistemų klasės - informacinių sistemų - ypatumus.

24 Kas vadinama IS kūrimo metodu? (1)

IS kūrimo metodas - tai integruotas procedūrų, technikų, produkto aprašų ir įrankių rinkinys, skirtas efektyviai, produktyviai ir sklandžiai palaikyti technologinį IS inžinerijos procesą.

25 Kas vadinama programine įranga? (1)

Programinė įranga - kompiuterinės programos bei kompiuterinės duomenų ir žinių bazės.26 Kas tai yra programinis produktas? (1)

Programinis produktas - rinkinys (o taip pat ir bet kuris to rinkinio elementas) kompiuterinių programų, jų naudojimo procedūrų ir su jomis susijusių dokumentų bei duomenų, skirtas pateikti užsakovui arba galutiniam vartotojui.

27 Programinio produkto pobūdis. (5)

Programinė įranga nematoma, jos negalima pačiupinėti. Programos struktūra paslėpta, jos elgsena - vienintelė pastebima išorinė apraiška. Programas sunku aprašyti ir vertinti.Programinės įrangos kūrimo pramonė reikalauja didelių darbo sąnaudų. Programuotojo darbą sunku automatizuoti.Programinė įranga nėra gaminama; ji projektuojama. Gamyba (kopijavimas) yra labai paprasta, kaina ir sudėtingumas slypi programinės įrangos kūrime.Tariamas darbo paprastumas: net ir neapmokyti žmonės gali sukurti ką nors veikiančio - trūkumai išryškėja gerokai vėliau. Nesunku keisti - tačiau žmonės gali ne iki galo suprasti kokias pasekmes turės pakeitimas.Programinė įranga veikdama “nesusidėvi”. Ji degeneruoja darant pakeitimus.Programinės įrangos projektavimas yra neįtikėtinai brangus. Taip yra todėl, kad programinė įranga yra ypatingai sudėtingas gaminys, ir todėl, kad praktiškai beveik visi programinės įrangos kūrimo projekto etapai traktuotini kaip projektavimo proceso žingsniai.Sudėtingumo kaina - programų sistema dažnai per sudėtinga, kad ją aprėptų ir perprastų vienas žmogus. Programas sunku aptarinėti.

28 Kodėl programinė įranga yra tokia sudėtinga? (2)

Programų sistemos sprendžia labai sudėtingus uždavinius. Jų kūrimo procesą sunku valdyti. Net ir mažos klaidos programose gali sukelti dideles pasekmes. Programinė įranga privalo aptarnauti sudėtingus išorinius interfeisus, veikti su realaus pasaulio fizinėmis sistemomis Nuolatiniai PĮ keitimai - užsakovai keičia reikalavimus ir nori vis naujo funkcionalumo, tech. įranga nuolat kinta. Pakeitimai daromi, net ir nesikeičiant funkcionalumo reikalavimams.

29 Kokias programinės įrangos rūšis jūs žinote? (2)

Sisteminė PĮ

6

Page 7: PSI egzamino atsakymai

7

Taikomoji(dalykinė) PĮ Užsakomoji PĮ Visuotinio naudojimo PĮ Laisvai platinama PĮ (shareware) Nemokama PĮ (freeware) Įterptoji PĮ (embedded software) Kritinė PĮ Realiuoju laiku veikianti PĮ Duomenų apdorojimo PĮ Grupinio naudojimo PĮ (groupware) Tarpinė PĮ (middleware) Ribinė PĮ (front-end software) Užslėptoji PĮ (back-end software) Aparatūrinė PĮ (firmware) Komponentinė PĮ (componentware)

30 Kokia programinė įranga vadinama sistemine programine įranga? (1)

Sisteminė PĮ - apima operacines sistemas, pagalbines programas, tvarkančias kompiuterių resursus. Sistemos PĮ sudaro programos, esančios tiesioginėje saveikoje su aparatūra.

31 Kokia programinė įranga vadinama taikomaja programine įranga? (1)

Taikomoji (dalykinė) PĮ - programa ar jų rinkinys, suprojektuoti spręsti dalykinio pobūdžio problemas, kylančias galutiniems vartotojams. Tai gali būti duomenų bazių valdymo programos, tekstų redagavimo programos, grafikos apdorojimo programos ir kt. Taikomoji PĮ negali veikti be sisteminės PĮ (tuo pačiu, be aparatūros).

32 Kuo skiriasi užsakomoji ir visuotino naudojimo programinė įranga? (1)

Užsakomoji PĮ kuriama kokrečiam užsakovui pagal jo poreikius, visuotino naudojimo PĮ parduodama visiems vienoda.

33 Kuo skiriasi laisvai platinama ir nemokama programinė įranga? (1)

Laisvai platinama PĮ paprastai yra mokama, skirta išbandymui ir po 2-4 savaičių nustoja veikti, jei neužsimokėta. Mažų mažiausiai, apribojamos jos funkcijos. Tuo tarpu nemokama PĮ galima naudotis neribotai.

34 Kokia programinė įranga vadinama įmontuota programine įranga? įmontuota programų sistema? (2)

Įterptoji (įmontuotoji) PĮ (embedded software) - į kokią nors aparatūrą (pvz., automobilį) montuojama PĮ. Ji yra sunkiai keičiama.

35 Kokia programinė įranga vadinama kritine programine įranga? Pateikite pavyzdžių (1)

Kritinė PĮ - PĮ, kurios trykiai padaro didžiulę žalą. Pavyzdžiui, branduolinį reaktorių valdanti PĮ, elektros tinkluose naudojama PĮ.

36 Kokie yra užsakomosios, visuotino naudojimo ir įmontuotosios programinės įrangos skirtumai? (3)

Užsakomoji PĮ - mažas tiražas, maži jos vykdymui išskirti procesoriaus resursai (pasaulio mastu), didelės darbo sanaudos PĮ sukurti (pasaulio mastu).Visuotinio naudojimo PĮ - vidutinis tiražas, dideli procesoriaus resursai, vidutinės darbo sanaudos PĮ sukurti.Įmontuotoji PĮ - didelis tiražas, maži procesoriaus resursai, mažos darbo sanaudos PĮ sukurti.

37 Kokia programinė įranga vadinama realaus laiko masteliu veikiančia programine įranga? realaus laiko programų sistema? (1)

7

Page 8: PSI egzamino atsakymai

8

Realaus laiko masteliu veikiančia PĮ vadinama programinė įranga, stebinti ir valdanti technines sistemas, kur turi būti griežtai fiksuotas reakcijos laikas ir didžiausia problema - saugumas.Realaus laiko programų sistema - sistema, reaguojanti į išorinio pasaulio įvykius per griežtai nustatytą (paprastai labai trumpą) laiką. Dažniausiai realaus laiko sistemos stebi arba valdo kokius nors įrenginius arba kokį nors išorinį procesą, vykstantį lygiagrečiai su programų sistemos veikimu.

38 Kokia programinė įranga vadinama duomenų apdorojimo programine įranga? (1)

PĮ, naudojama versle, kurios svarbiausios problemos yra skaičiavimų tikslumas ir duomenų saugumas.

39 Kokia programinė įranga vadinama grupinio naudojimo programine įranga? (1)

PĮ, padedanti organizuoti grupinį darbą kompiuterių tinkle (dažniausiai, organizacijos tinkle).40 Kokia programinė įranga vadinama tarpine programine įranga? (1)

PĮ, skirta organizuoti kelių skirtingų rūšių PĮ sąveikai, įskaitant informacijos mainus. Pvz, sąveikai tarp taikomosios PĮ ir operacinės sistemos (sisteminės PĮ).

41 Kuo skiriasi ribinė ir užslėptoji programine įranga? (1)

Ribinė PĮ (front-end) - tiesiogiai pasiekiama vartotojo, kuria jam prieigą prie resursų ir taikomosios PĮ. Užslėptoji PĮ (back-end) - tiesiogiai nepasiekiamas funkcionalumas, slypintis už taikomųjų programų. Pvz, duomenų bazės serveris.

42 Kokia programinė įranga vadinama aparatūrine programine įranga? (1)

Aparatūrinė PĮ - programinė įranga, saugoma nuo kompiuterio operatyviosios atminties nepriklausančiu būdu, paprastai, kaip mikroprogramos, įrašytos į ROM (skaitomąją atmintį). Paprastai vartotojams keisti aparatūrinės PĮ neleidžiama.

43 Kokia programinė įranga vadinama komponentine programine įranga? (1)

Komponentinė PĮ - programinė įranga, kuri yra projektuojama ir konstruojama taip, kad ją galima būtų panaudoti kaip komponentą kitose sistemose. Kuriant komponentinę PĮ, visų pirma yra siekiama standartizuoti komponentų interfeisus ir šitaip išvengti būtinybės jungiant komponentus naudoti kokią nors tarpinę PĮ.

44 Apibūdinkite svarbiausius programinės įrangos raidos etapus. (3)

1 etapas - paketinis darbo režimas, ribotas platinimas, užsakomoji PĮ 2 etapas - realaus laiko darbo režimas, laiko skirstymo sistemos, duomenų bazės, visuotinio naudojimo PĮ 3 etapas - išskirstytos sistemos, įmontuotas intelektas, pigi TĮ, dėmesys vartotojui 4 etapas - galingos darbo stotys, objektinės technologijos, ekspertinės sistemos, dirbtiniai neuroniniai tinklai, lygiagretieji skaičiavimai

45 Apibūdinkite svarbiausius techninės įrangos raidos etapus(3)

1 etapas - pikas 1945-1955 m. - tyrimams skirtos darbo stotys (mainframes). 2 etapas - pikas 1955-1966 m. - komercinės darbo stotys 3 etapas - pikas 1966-1977 m. - komercijai skirti mini-kompiuteriai 4 etapas - pikas 1977-2000 m. - asmeniniai kompiuteriai 5 etapas - pikas 2000- ... m. - internetas, visuotiniai skaičiavimai (lygiagretūs, išskirstyti, etc)

46 Kas vadinama programų sistema? (1)

Programų sistema - iš programinės įrangos komponentų sudaryta sistema.47 Kokias programų sistemų rūšis jūs žinote? (2)

Centralizuotos sistemos Decentralizuotos sistemos Autonominės sistemos Integruotosios sistemos

8

Page 9: PSI egzamino atsakymai

9

Didžiųjų ESM sistemos (mainframe systems) Paketinės sistemos (batch systems) Tiesioginės prieigos sistemos (on-line systems) Interaktyviosios (dialoginės) sistemos (interactive systems) Realaus laiko sistemos (real-time systems) Išskirstyta sistema (distributed systems) Personalinių kompiuterių sistemos (PC systems) Kliento serverio sistemos (client-server systems) Lygiųjų sistemos (peer-to-peer systems) Web sistemos (Web systems) Įmontuotosios (įterptosios) sistemos (embedded systems)

48 Kuo skiriasi centralizuotos ir decentralizuotos programų sistemos? (1)

Centralizuotose sistemose visi resursai ir valdymas yra centralizuoti. Decentralizuotose nėra išskirto komponento, administruojančio visos sistemos darbą.

49 Kokios programų sistemos vadinamos autonominėmis? (1)

Autonominė sistema - tokia programų sistema, kuri gali veikti viena pati, nes visi reikiami resursai yra jos viduje.

50 Kokios programų sistemos vadinamos integruotosiomis? (1)

Integruotoji programų sistema - tokia sistema, kurioje skirtingos dalykinės paskirties programos, kurios paprastai veikia kaip autonominės sistemos, nuo pat pradžios yra projektuojamos ir kuriamos taip, kad veiktų vienos sistemos sudėtyje.

51 Kokios programų sistemos vadinamos didžiųjų ESM sistemomis? personalinių kompiuterių sistemomis? (2)

Didžiųjų ESM sistema - sistema, veikianti kokioje nors didžiojoje ESM arba tokių kompiuterių tinkle. Vartotojai naudojasi tokia sistema per lokalius ar nutolusius terminalus, valdomus didžiosios ESM ir leidžiančius rašyti į ją duomenis, juos keisti bei peržiūrinėti. PK sistemos - sistemos, kurioms veikti pakanka personalinių kompiuterių teikiamų galimybių.

52 Kokios programų sistemos vadinamos paketinėmis sistemomis? (1)

Tai tokios programų sistemos, kurioms po to, kai jos pradėjo veikti, yra nereikalingas joks vartotojo įsikišimas. Jos veikia automatiškai. Pavyzdžiui, bankuose paketiniu režimu kiekvieną dieną yra apdorojami įrašai apie tą dieną vykdytas operacijas.

53 Kokios programų sistemos vadinamos tiesioginės prieigos sistemomis? (1)

Sistemos, kurios prijungtos prie tinklo arba per tinklą ir kuriomis vartotojas gali naudotis tiesiogiai. Pavyzdžiui, duomenų bazės.

54 Kokios programų sistemos vadinamos išskirstytomis sistemomis? (1)

Išskirstyta sistema - tai tokia sistema, kuri yra išskirstyta kompiuterių tinkle, t.y. veikia iš karto keliuose kompiuteriuose. Taigi, sistemos atliekamas darbas yra paskirstomas tarp kelių kompiuterių. Tai gali būti didžiosios ESM, personaliniai kompiuteriai arba abiejų tipų kompiuterių mišinys.

55 Kokios programų sistemos vadinamos kliento serverio sistemomis? (2)

Kliento serverio sistemos - išskirstytųjų programų sistemų klasė. Tokiose sistemose išskirstytus skaičiavimus atlieka dvi pagrindinės tarpusavyje tinklu susietų komponentų rūšys - klientai ir serveriai.Klientai veikia prie tinklo prijungtuose kompiuteriuose, naudojamuose prieigai prie bendro naudojimo resursų, dažniausiai personaliniuose kompiuteriuose.Serveriai veikia specializuotuose kompiuteriuose, vadinamuose serveriniais kompiuteriais, prijungtuose prie to pačio tinklo ir teikiančiuose klientams tam tikras paslaugas.

9

Page 10: PSI egzamino atsakymai

10

56 Kokios programų sistemos vadinamos lygiųjų sistemomis? (1)

Tai sistemos, kuriose informacijos vartotojai tuo pačiu yra ir informacijos tiekėjai. Informacijos mainai paprastai vyksta tarp dviejų partnerių. Dar daugiau, partneriai gali atsirasti ir dingti, o sistema bet kuriuo momentu gali užprašyti informacijos iš bet kurio tuo momentu prieinamo partnerio.

57 Kokios programų sistemos vadinamos Web sistemomis? (2)

Web sistemos - sistemos, veikiančios WWW (duh). Web sistemos susideda iš web serverio, web dokumentų ir web kliento.Web serverio PĮ veikia serveriniame kompiuteryje ir vykdo keletą funkcijų, įskaitant: * interfeiso su tinklu organizavimą * dokumentų saugojimą * interfeiso su išorinėmis programomis organizavimąWeb dokumentais paprastai vadinami HTML dokumentai.Web klientas – tai programų sistema, veikianti galutinio vartotojo kompiuteryje, turinčiame prieigą prie Web serverio. Dažnai vadinama naršykle.

58 Kas vadinama programų kūrimu? programų sistemos kūrimu?(1)

Programos kūrimas - veiklų seka, sukurianti programinį produktą. Ji apima naujų programų kūrimą, esamų programų modifikavimą, jų pakartotiną panaudojimą, reinžineriją, priežiūrą ir bet kokius kitus darbus, pasibaigiančius kokio nors programinio produkto sukūrimu.Programų sistemos kūrimas - tai procesas, kuriuo * vartotojų poreikiai pertvarkomi į programų sistemos reikalavimus; * programų sistemos reikalavimai paverčiami tos sistemos projektu; * projektas transformuojamas į programos kodą; * atliekamas to kodo testavimas, dokumentavimas ir sertifikavimas (leidimas eksploatuoti).

59 Ar „rašydami“ programą jūs ją projektuojate? Kuo skiriasi programų sistemos projektavimas ir programos kodavimas? (2)

Atsakymas ne iš skaidrių: Rašant programą, mintyse ji tam tikrame lygyje projektuojama – apmąstomos loginės sąsajos kode ir t.t.Citata iš skaidrių: „Programavimas – tai ne programų konstravimas; tai jų projektavimas!“Programų sistemos projektavimas yra programos planavimas ir dokumentavimas, programos kodavimas yra kodo rašymas pagal tokią dokumentaciją.

60 Kokie yra svarbiausieji PS inžinerijos ir programavimo skirtumai? (1)

Programavimas - dirba individai, kuriamos programos, trumpas gyvavimas, rašoma nuo pradžios, minimali priežiūros kaina.PS inžinerija - dirba kolektyvai, kuriamos sudėtingos PS, ilgas gyvavimas, naudojami jau paruošti komponentai, priežiūrai skiriama daugiausia pinigų.

61 Kas vadinama programų sistemų inžinerija? Apibūdinkite dabartinę PSI būklę (4)

Programų sistemų inžinerija yra disciplinuotas programų sistemų kūrimo būdas, apimantis: * programų sistemos reikalavimų nustatymą ir dokumentavimą, * fundamentinių projektavimo principų panaudojimą, * projektinių alternatyvų analizę, * vertinimus, ar galutinis produktas tikrai tenkina suformuluotus reikalavimus.Esama padėtis programų/programų sistemų kūrime * dažniausiai amatas * dažniausiai dirbama rinkai * retkarčiais inžinerija

62 Kuo skiriasi programų sistemų inžinerija, kompiuterių inžinerija ir teorinė informatika? (3)

10

Page 11: PSI egzamino atsakymai

11

PSI, lyginant su kompiuterių inžinerija, labiau domisi programine, o ne technine įranga ir koncentruojasi į didesnes taikomojo pobūdžio programas. Lyginant su teorine informatika, tai labiau praktinėms reikmėms pritaikytas mokslas, labiau akcentuojantis visą PĮ kūrimo procesą, nuo pradinės idejos iki galutinio produkto. Be to, tai griežtesnė disciplina, negu teorinė informatika, ji naudoja labiau susistemintas praktikas, padedančias užtikrinti kuriamų produktų patikimumą ir saugumą.

63 Kuo skiriasi programų sistemų inžineriaus, tradicinio inžinieriaus ir teorine informatika užsiiminėjančio mokslininko darbas? (2)

Mokslininkas, dirbantis teorinės informatikos srityje: * Kuria algoritmus; įrodinėja teoremas apie algoritmus; projektuoja programavimo, modeliavimo bei specifikavimo kalbas, kuria žinių vaizdavimo schemas, … * Dirba, neturėdamas griežtai nustatytų terminųTradicinis inžinierius: * Konkretaus užsakovo (darbdavio) pavedimu, sprendžia specifines savo dalykinės srities (pvz., statybos) inžinerines problemas * Yra kompiuterių, projektavimo kalbų, įrankių, technikų ir metodų vartotojasProgramų sistemų inžinerius: * Dirba daugelyje dalykinių sričių * Dirba pagal griežtai nustatytus terminus

64 Kaip yra tarpusavyje susiję programų sistemų inžinerija ir sistemų inžinerija? (2)

PS inžinerija – tai bendrosios sistemų inžinerijos konkretizacija. Ji numato, kaip panaudoti bendruosius sistemų inžinerijos metodus, kuriant programų sistemas. PSI iš sistemų inžinerijos paveldi visas jos sąvokas ir visus jos metodus, tačiau sąvokos ir metodai yra suvokiami, tikslinami, konkretinami ir išplečiami, atsižvelgiant į konkrečios sistemų klasės, programų sistemų, ypatumus.

65 Kokie yra svarbiausieji IS inžinerijos ir PS inžinerijos skirtumai?

ISI užsiiminėja tik informacijos apdorojimo sistemomis, PSI nagrinėjamų sistemų klasė šia prasme yra platesnė.PSI užsiiminėja tik programine įranga, todėl, kalbant apie informacijos apdorojimo sistemas, domimasi tik kompiuterizuotomis IS, tiksliau, tik tokių sistemų PĮ, paliekant nuošalyje kitus klausimus.Šia prasme ISI nagrinėjamų klausimų ratas yra platesnis, nes jis apima ir visus rankinio informacijos apdorojimo aspektusISI verslo, kultūros, socialiniai ir organizaciniai klausimai yra ne mažiau svarbūs už techninius klausimus

66 Kaip yra tarpusavyje susietos įmonės sistema, verslo sistema, informacinė sistema ir programų sistema? (2)

Įmonės sistema apima bent vieną verslo sistemą, ją palaikančias informacines sistemas ir tų informacinių sistemų programinę įrangą.

67 Kaip siejasi tarpusavyje sistemų inžinerija, verslo inžinerija, informacinių sistemų inžinerija ir programų sistemų inžinerija? (2)

Verslo, informacinių sistemų ir programų sistemų inžinerijos yra sistemų inžinerijos rūšys, konkretizuojančios ir išplečiančios bendrus sistemų inžinerijos sąvokas ir metodus, atsižvelgiant į konkrečios inžinerijos šakos ypatumus.Verslo, informacinių sistemų ir programų sistemų inžinerija palaiko ir leidžia pradėti sistemos kūrimo projektą.

68 Kokia PS vadinama didele? (1)

Programų sistema, turinti ne mažiau, kaip 50 000 vykdomojo kodo eilučių.69 Kas vadinama chroniška programavimo krize? (1)

11

Page 12: PSI egzamino atsakymai

12

Krizė kyla dėl šių didelių PS savybių: * Neužtikrina reikiamo funkcionalumo * Yra kuriamos per ilgai * Reikalauja per daug lėšų joms sukurti * Vykdymui reikalauja per daug resursų (laiko, atminties) * Yra nepatikimos * Negali evoliucionuoti ir prisitaikyti prie nuolat kintančių vartotojų poreikių

70 Chroniška programavimo krizė: funkcionalumo aspektas. (4)

Užsakovams pateiktos IS programinės įrangos funkcionalumas iš tiesų neatitika to, ką apie jį tvirtino vykdytojai. Netinkamo funkcionalumo priežastis yra atotrūkis* tarp verslo vizijos ir verslo procesų * tarp verslo procesų ir technologinės infrastruktūros * tarp tecnologijos naudojimo reikalavimų ir darbuotojų kompetencijos * tarp strateginių ir taktinių veiksmųKad problemos nebūtų, reikia:* susieti strategiją ir tikslus su vizija * projektuoti tokius verslo procesus, kurie padeda pasiekti norimus tikslus ir įgyvendinti verslo viziją * taip pertvarkyti organizacijos struktūrą, kad ji būtų suderinta su verslo procesais, strategija ir vizija * darbuotojų kompetencijos reikalavimus formuluoti atsižvelgiant į verslo procesų ir organizacinės struktūros ypatumus * technologinę infrastruktūrą projektuoti atsižvelgiant tiek į darbuotojų kompetenciją, tiek ir į organizacijos viziją, misiją, strategijas, tikslus, verslo procesus ir struktūrą * veikimo taktiką planuoti tik po to, kai verslo procesai, organizacijos struktūra, darbuotojų kompetencijos reikalavimai ir technologinė infrastruktūra yra suprojektuoti iki galo.

71 Chroniška programavimo krizė: kainos aspektas. (6)

* aparatūros kaina drastiškai sumažėjo, tuo tarpu PĮ tokiu pačiu greičiu didėja. * programinės įrangos kaina taip pat mažėjo, tačiau augo kuriamos programinės įrangos apimtys * Produkto kaina nusistovėjo, tačiau naujų versijų kurimas užima vis daugiau resursų. * Išlaidos PĮ auga apie 12% per metus. * JAV programinė įranga sudarė: 1980 m. 2% bendrojo nacionalinio produkto 1985 m. 8% bendrojo nacionalinio produkto 1990 m. 13% bendrojo nacionalinio produkto 1998 m. 38% bendrojo nacionalinio produkto * Net ir nedidelis darbo našumo augimas pasauliniu mastu ženkliai sumažintų išlaidas programinei įrangai! * JAV atlikti tyrimai (1995): dėl žlugusių PĮ kūrimo projektų per metus prarandama apie 81 milijardą JAV dolerių * Programos kodo eilutės kaina svyruoja nuo 100 iki 1000 JAV dolerių * Projektas dažnai užsitesia, viršija pradinį biudžetą virš 50%. * Augant PĮ kūrimo projekto dydžiui, išlaidos vienam funkciniam taškui taip pat didėja. (Užduotys sudėtingėja, tad jom įgyvendinti reik vis daugiau žmonių). * Dideliuose PĮ kūrimo projektuose taip pat ženkliai išauga ir pridėtinės išlaidos.

72 Kodėl PS yra tokios brangios? (5)

* Didėjant projektui, jis darosi sudėtingesnis

12

Page 13: PSI egzamino atsakymai

13

* Didėjant projektui, didėja užduočių skaičius * Didėjant projektui, didėja vykdytojų skaičius, o tuo pačiu ir išlaidos vadybai. * Kadangi PĮ kūrimo projektuose fiksuotos išlaidos yra minimalios, tokių projektų apimties didinimas dažniausiai ekonomiškai neatsiperka. * Programas nesunku pavogti, todėl gamintojai priversti mažinti jų kainas * Didelėse progamose klaidų taisymas labai brangus.

73 Chroniška programavimo krizė: ataskaita apie chaosą. (4)

1995m - 8380 projektų ataskaita:* 53% projektų vėluoja bei viršija pradinį biudžetą; * 16% sėkmingi; * 31% nebaigiami;2000m - 280000 projektų ataskaita:* 49% projektų vėluoja bei viršija pradinį biudžetą; * 28% sėkmingi; * 23% nebaigiami;1979 m. JAV Statistikos departamento studija atskleidė, kad pagal užsakymus kurtai PĮ:* 2% sukurta PĮ buvo naudojama be pakeitimų * 3% sukurta PĮ buvo naudojama ją šiek tiek perdarius * 45% pradėjus naudotis sukurta PĮ, jos buvo arba atsisakyta, arba ji buvo iš esmės perdaryta * 20% PĮ buvo sukurta, bet ja nepradėta naudotis * 30% PĮ apskritai nebuvo sukurta, nors vykdytojams už ją buvo sumokėta * Priežiūros kaštai viršija 60% visų programų sistemos kūrimo kaštų 20% klaidų taisymas 30% keitimai, susiję su reikalavimų ir/arba TĮ pokyčiais 50% tobulinimas (papildomas funkcionalumas) * Klaidų šalinimas projektavimo stadijoje gali kainuoti nuo 10 iki 100 kartų mažiau, nei klaidų šalinimas programavimo metu.

74 Chroniška programavimo krizė: baigimo terminai. (6)

* 2002 m. atlikta IT organizacijų apžvalga nustatė, kad: 78% organizacijų teisėsi teismuose su užsakovais; 56% iš jų dėl to, kad projekto baigimas nukelta net kelis kartus; * Netikslūs projekto kainos ir trukmės vertinimai sužlugdo daugelį projektų. Tenka spausti terminus, kad spėti pagal biudžetą. * Pradėjus vėluoti bandoma mažinti funkcionalumą, testavimą. (kas savo ruožtu gali dar labiau prailginti darbo laiką.)Vėluojama, nes:* blogas planavimas * neatliekamas reikalavimų valdymas * neatliekamas pokyčių valdymas * neatliekamas konfigūracijos valdymas * per mažas darbo našumas * prastas darbų koordinavimas * prastas projekto valdymas * vykdytojai per daug laiko sugaišta svarstymams ir aptarimams

75 Chroniška programavimo krizė: patikimumo aspektas. (6)

* 2002 m. atlikta IT organizacijų apžvalga nustatė, kad 78% organizacijų teisėsi teismuose su užsakovais 45% dėl to, kad dėl klaidų nebuvo galima naudotis programom. * Apie pusę naudojamų programų turi rimtų klaidų.

13

Page 14: PSI egzamino atsakymai

14

* Apie 90% trykių vyksta dėl ne daugiau kaip 10% programose esančių klaidų. * Patikimumas žemas, nes: blogas projektavimas technologinės disciplinos stoka nėra kokybės planavimo, kontrolės ir užtikrinimo * Patikimumo didinimas: Kolegų peržiūros (peer reviews) pašalina apie 60% klaidų Griežtai reglamentuotas programuotojo asmeninio darbo technologinis procesas gali sumažinti klaidų skaičių net 75%

76 Kaip suvaldyti chronišką programavimo krizę? Priklausomybių modelis. (4)

* Atsisakyti ikipramoninių darbo metodų. * Atotrūkių pašalinimas: Vizija ir siekiai Strategijos ir tikslai Verslo procesai Organizacinė struktūra Darbuotojų gebėjimai Technologinė infrastruktūra Taktika

77 Dvi skirtingos termino programų inžinerija prasmės. (1)

Terminas programų inžinerija (software engineering) buvo įvestas 1968 m. vykusioje pirmojoje NATO konferencijoje PS inžinerijos klausimais. Nuo pat pradžios šis terminas turėjo 2 skirtingas prasmes: * Siauroji prasmė: disciplinuotas principų, metodų ir įrankių naudojimas analizuojant kompiuterinių programų, jų eksploatavimo procedūrų ir jų dokumentacijos reikalavimus, visa tai projektuojant, realizuojant, eksploatuojant ir prižiūrint (McDermid, 1985) * Plačioji prasmė: disciplina, užsiimanti PS kūrimo technikomis (Ramamoorthy at all, 1984)Šios apibrėžtys yra visiškai skirtingos: * pirmojoje kalbama apie kompiuterines programas * antrojoje kalbama apie programų sistemas, turint omenyje, kad programų sistemas sudaro įvairūs skirtingos prigimties komponentai (failai, duomenų bazės, interfeisai, protokolai ir kt.) ir programos yra tik vienas iš komponentų.Šiame kurse PS inžinerija yra apibrėžiama šitaip: 1. PS inžinerija, kaip praktinė veiklos sritis, yra sistemų inžinerijos šaka, užsiimanti pramoninių PS kūrimu. 2. inžinerija, kaip mokslinė disciplina, yra inžinerinių mokslų šaka, nagrinėjanti pramoninių PS kūrimo principus, metodus, technikas, įrankius bei procedūras ir efektyvų viso to panaudojimą PS pramonėje.

78 Ką apima teoriniai PS inžinerijos pagrindai? Trumpai juos apibūdinkite. (3)

Teoriniai pagrindai: sąvokos, principai, paradigmos, modeliai, modeliavimo formalizmai, modeliavimo kalbos.

79 Ką apima inžineriniai PS inžinerijos pagrindai? Trumpai juos apibūdinkite.(3)

Inžineriniai pagrindai: tipiniai projektavimo sprendimai (design patterns), karkasai (frameworks), komponentai, įrankiai, technologijos

80 Ką nagrinėja programų inžinerija?(3)

* programų specifikavimas, programų projektavimas, programų moduliarizavimas, programų kodavimas ir kodo dokumentavimas, programų testavimas ir derinimas

14

Page 15: PSI egzamino atsakymai

15

81 Į kokias grupes yra skirstomi PS inžinerijos procesai? Trumpai apibūdinkite kiekvieną iš jų. (2)

PS inžinerijoje naudojami 3 tipų procesai:* baziniai (pirminiai) procesai (procesai, be kurių neįmanoma sukurti PS sistemos, ar pasinaudoti jau esančia); * pagalbiniai procesai (pagalbiniai procesai veikia bazinių procesų sudėtyje ir padeda užtikrinti jų kokybę bei sėkmę, bet, iš principo, be šių procesų galima apsieiti); * organizaciniai procesai (tai procesai, kuriais kuriamos, aptarnaujamos ir palaikomos organizacinės struktūros, skirtos PS kurti).

82 Kokie PS inžinerijos procesai yra vadinami baziniais procesais? Trumpai apibūdinkite kiekvieną iš jų. (3)

* analizė: ko nors esamo (proceso, veiklos, sistemos ir kt.) modeliavimas, atliekamas tikslu tai perprasti, * specifikavimas: ko nors, kas bus kuriamas, modeliavimas jo iš išorės stebimų savybių terminais, atliekamas tikslu suformuluoti to daikto projektavimo ir realizavimo tikslus ir ribojimus, * projektavimas: ko nors, kas bus kuriamas, modeliavimas jo vidinių savybių terminais, atliekamas tikslu kuo geriau įgyvendinti specifikacijos reikalavimus, projektavimas apima geriausio specifikacijos įgyvendinimo būdo parinkimą ir to būdo modeliavimą * realizavimas: ko nors, kas yra kuriama, specifikuotą to dalyko elgseną projektuotojo numatytu būdu įgyvendinančių dalių konstravimasprogramavimas yra vienas iš realizavimo subprocesų; jis suprantamas kaip projektavimo sprendimų užrašymas pasirinktajam procesoriui suprantamų instrukcijų seka;* surinkimas (integravimas): ko nors, kas yra kuriama, dalių jungimas į vieną visumą, * diegimas (preparation for operation): kam nors veikti reikalingų resursų akumuliavimas, to daikto pateiktis, instaliavimas ir pritaikymas konkrečiai darbo vietai, * aptarnavimas (operation): specifikacija numatytos kieno nors elgsenos palaikymo procesas, * priežiūra (maintenance): ko nors, kas jau yra sukurta ir naudojama, vidinių ar iš išorės stebimų savybių keitimo procesas, atliekamas nepažeidžiant to daikto vientisumo ir jo savybių darnos, * demontavimas (retirement): ko nors sukurto ir naudojamo laipsniškas naudojimo nutraukimasPS atveju – tai laipsniškas vienos veikiančios sistemos funkcijų perdavimo kitai veikiančiai sistemai procesas.

83 Kokie PS inžinerijos procesai yra vadinami pagalbiniais procesais? Trumpai apibūdinkite kiekvieną iš jų. (3)

* testavimas: empirinis tikrinimas, ar kas nors tenkina reikalavimus, kuriuos tas daiktas privalo tenkinti, * verifikavimas: ko nors, kas yra kuriamas, eilinio atlikto kūrimo žingsnio (pvz., operacijos) korektiškumo tikrinimo procesas, * vertinimas (validation): procesas, kuriuo siekiama nustatyti, ar kas nors tenkina realius to daikto vartotojų poreikius, * dokumentavimas: informacijos, sukauptos ką nors kuriant, fiksavimo procesas, * konfigūracijos valdymas: procesas, kuriuo siekiama, kad kas nors, kas yra kuriamas ir nuolat keičiamas, bet kuriuo laiku momentu turėtų visas savo sudėtines dalis, privalomas tam laiko momentui, ir kad tos dalys tarpusavyje būtų suderintos, * peržiūra (reviewing): procesas, kuriuo siekiama patikrinti, ar ko nors, kas yra kuriamas, kūrimas vyksta pagal numatytą planą, ar gauti visi plane numatyti rezultatai ir, jei to nėra, nustatyti nukrypimų nuo planuotos darbų eigos priežastis, * inspektavimas (auditing): procesas, kuriuo siekiama patikrinti, ar ką nors kuriant nenukrypstama nuo sandoriu, standartais ar kitais privalomais dokumentais nustatytų kokybės reikalavimų,

15

Page 16: PSI egzamino atsakymai

16

* problemų sprendimas (problem resolution): procesas, kuriuo siekiama išanalizuoti problemas (įskaitant nukrypimus nuo planuotos darbų eigos), nustatytas atliekant peržiūrą, inspektavimą ar kitus procesus, tų problemų prigimtį bei priežastis, ir tas problemas pašalinti.

84 Kokie PS inžinerijos procesai yra vadinami organizaciniais procesais? Trumpai apibūdinkite kiekvieną iš jų. (3)

* valdymas: kitų procesų iniciavimas, planavimas, vykdymas, kontrolė, vertinimas ir užbaigimas, * infrastruktūros kūrimas ir palaikymas: kitiems procesams vykdyti reikalingų sąlygų sudarymo procesas, * procesų tobulinimas: kitų procesų matavimo, kontrolės vertinimo ir gerinimo procesas, * apmokymas (training): procesas, kuriuo siekiama, kad kitus procesus vykdantys asmenys įgytų tam reikalingas žinias bei įgūdžius.

85 Kokios artifaktų grupės yra kuriamos PS inžinerijos procesais? Trumpai apibūdinkite kiekvieną iš jų. (3)

PS inžinerijos procesais kuriamos šešios artefaktų grupės:* preliminariniai dokumentai: tikslų specifikacijos, poreikių specifikacijos, verslo modeliai ir t.t.; * techniniai sistemos aprašai: reikalavimų specifikacijos, projektinės specifikacijos, kodas, vartotojo dokumentacija; * sistemos mazgai: posistemiai, moduliai, duomenų bazės ir t.t.; * sistemos ruošiniai (distributive versions): tai, iš ko generuojamos veikiančios sistemos; * galutiniai programiniai produktai: veikiančios sistemos; * pagalbinė medžiaga: planai, užduočių aprašai, ataskaitos ir t.t.

86 Kokios idealizuotos prielaidos daromos PS inžinerijoje? (3)

PS inžinerijoje, kaip ir kitose mokslinėse disciplinose, daromos tam tikros idealizuotos (neatitinkančios tikrovės) prielaidos, apie tai, kaip PS inžinerijos procesai vyksta praktikoje:* galima “įšaldyti“ sistemos reikalavimus, * galima sukurti neturinčius klaidų artefaktus, * galima sumodeliuoti sistemos elgseną trykių metu, * įmanoma surinkti pakankamai duomenų artefaktams vertinti.

87 Kokius PS inžinerijos principus žinote? (1).

* turinių atskyrimo (concern separation) principas, * dekompozicijos principas, * juodosios dėžės (black box) principas, * abstrakcijos principas, * unifikavimo (uniformity) principas, * struktūrizavimo principas, * sistemų atvirumo principas, * interfeisų komfortiškumo principas, * metaforizavimo principas, * reaktyvumo (agency) principas

88 Paaiškinkite kas tai yra turinių atskyrimo principas. (3)

Turinių atskyrimo principo esmę sudaro griežtas visa ko klasifikavimas ir tinkamas klasifikavimo požymių parinkimas. Neįvaldžius turinių atskyrimo principo, neįmanomi nei jokia inžinerinė veikla, nei joks tvarkingas mastymas apskritai. Taisyklė:* PS turi būti taip projektuojamos ir konstruojamos, kad dalykinės srities konceptai turėtų sistemoje tiesioginius atitikmenis. Sistemos dalių sąveika turi tiksliai atspindėti tų konceptų ryšius tai reiškia, kad PS turi būti kuriama remiantis atitinkamos dalykinės srities (verslo) koncepciniu modeliu,

16

Page 17: PSI egzamino atsakymai

17

ši taisyklė iš tiesų yra dalinis turinių atskyrimo principo atvejis, ji yra dar vadinama konceptualizavimo principu, bendruoju atveju turinių atskyrimo principo formuluotė yra gerokai bendresnė. * Konceptualizavimo principą pasiūlė Edward Yourdan ir Larry L. Constantine knygoje Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design (1979) vadovaujantis šiuo principu, yra ženkliai sumažinamos pastangos, reikalingos PS realizuoti, prižiūrėti ir perdaryti. PS realizavimo kaštai yra mažesni tuomet, kai sprendžiamos problemos dalys yra: aiškiai atskirtos viena nuo kitos, aprėpiamos,sprendžiamos nepriklausomai viena nuo kitos. PS priežiūra supaprastėja tuomet, kuomet tos sistemos dalys: atitinka sprendžiamos problemos dalis,yra aprėpiamos,gali būti keičiamos nepriklausomai viena nuo kitos. Sistemos reinžinerija supaprastėja, kuomet:sistemos struktūra atitinka sprendžiamos problemos struktūrą,sistemos dalis galima keisti nepriklausomai viena nuo kitos.

89 Paaiškinkite kas tai yra dekompozicijos principas. (3)

Dekompozicija – tai procesas, kuriuo didelės problemos suskaidomos į mažesnes, lengviau aprėpiamas dalines problemas. Taisyklė:* Visus sudėtingus PS inžinerijos procesais kuriamus objektus reikia skaidyti į kiek galima paprastesnes sudėtines dali (modulius) ir procesą, kuriuo kuriamas objektas, taikyti kiekvienam moduliui atskirai. Toks skaidymas vadinamas dekomponavimu. Nagrinėjamo proceso požiūriu visi moduliai turi būti vieno lygmens. Jie taip pat turi būti nepriklausomi, t.y. tokie, kad, atlikus norimus veiksmus su kiekvienu iš jų atskirai ir sujungus tokiu būdu gautus rezultatus į vieną visumą, būtų gautas pageidaujamas galutinis rezultatas. Procesas turi būti kartojamas tol, kol objektas nėra suskaidytas į primityvys, t.y. lengvai suvokiamas ir neskaidžias dalis * Dalys vadinamos neskaidžiomis, jei jų negalima toliau skaidyti, nepažeidžiant jų savarankiškumo Programuojant C kalba, sistema dekomponuojama į funkcijas ir abstrakčius duomenų tipus. Programuojant C++ arba Java kalba, sistema dekomponuojama į klases. * Kad dekompozicija būtų efektyvi, problemos dalys turi būti kiek galima labiau nepriklausomos (turinių atskyrimo principas) * Norint pritaikyti dekompozicijos principą, būtina atsakyti į šiuos klausimus:– Kaip skaidyti problemą? – Kokie problemos aspektai turi būti realizuoti vienoje sistemos dalyje, o kokie - skirtingose? – Kaip sieti sistemos dalis tarpusavyje ir kaip nuspręsti, kurios dalys turi būti susietos viena su kita, o kurios ne? – Kokia dalis vadinama maža? Kada baigti sistemos dekomponavimo procesą?* Atsakymai– Stipriai perpintos problemos dalys turi būti realizuojamos vienoje sistemos dalyje – Nesusijusios problemos dalys turi būti realizuojamos skirtingose sistemos dalyse – Mes siekiame taip organizuoti sistemą, kad nei viena sistemos dalis nebūtų didesnė, negu būtina atitinkamai problemos daliai išspręsti. – Sistemą būtina taip organizuoti, kad tarp jos dalys nebūtų siejamos tokiais ryšiais, kurie neatitinka problemos dalis siejančių ryšių.* Reziume: * Kuriant dideles PS, reikia:– jas dekomponuoti į komponentus, – specifikuoti kiekvieno interfeiso elgseną ir jo interfeisą, – kiekvieną komponentą kurti ir testuoti atskirai; – komponentus sujungti į bendrą sistemą tiktai po to, kai jie visi yra baigti testuoti.

17

Page 18: PSI egzamino atsakymai

18

* Privalumai: Programuotojas užsiiminėja vieno komponento detaliu projektavimu. Nuošalyje lieka dešimtys kitų komponentų su šimtais savo detalių, apie kurias jam nereikia galvoti projektuojant ir programuojant savąjį komponentą. Tai kitų programuotojų rūpestis.Paaiškinkite kas tai yra juodosios dėžės principas. (3)* Juodoji dėžė – tai tokia sistema (arba komponentas), apie kurią yra žinoma: jos įeiga, jos išeiga, kaip išeiga priklauso nuo įeigos, bet nieko nežinoma apie tai, kas vyksta jos viduje.Tai tokia sistema, kuria galima naudotis, nieko nežinant apie jos realizavimo būdą! * Programiškai realizuotų juodųjų dėžių charakteristikas galima suskirstyti į dvi grupes: 1. statines, 2.dinamines. * PS yra juodoji dėžė tokiu mastu, kokiu jos elgseną galima nusakyti įeigos (pradinių duomenų), išeigos (rezultatų) ir jas siejančio ryšio terminais. * Juodoji dėžė yra paprasčiausia iš visų galimų abstrakcijų, pasinaudojant kuria galima aprašyti sistemos veikimą, nieko nepasakant apie jos realizavimą.. * Juodosios dėžės principas įgalina paprastai ir išsamiai specifikuoti modulius, nurodant pradinius duomenis ir jų šaltinius (iš kur imti) bei rezultatus ir jų talpyklas (kur padėti) * Kadangi juodosiomis dėžėmis gali naudotis nežinant ir nesuprantant jų realizacijos, projektuojant sistemą jomis galima naudotis kaip koncepcinio lygmens tos sistemos komponentais.Taisyklė:* Jei, projektuojant sistemą, prisireikia kokios nors funkcijos ar galimybės, apibrėžkite ją kaip juodąją dėžę ir toliau naudokitės ta dėže, kol kas nesirūpindami apie tai, kaip ji bus realizuota * Žiūrint iš išorės, juodosios dėžės yra labai paprastos, todėl jas nesunku kombinuoti vieną su kita. Tačiau, tai teisinga tik tuo atveju, jei juodąja dėže nusakoma abstrakcija yra prasminga * Turi būti apibrėžtas aiškus įeigos ir išeigos ryšys. Dažniausiai, tą padaryti nėra paprasta, nes reikia atmesti daugybė realizacinio pobūdžio detalių, kurios neturi nieko bendro su abstrakcija (t.y. reikia atskirti turinius). * Įeigai turi priklausyti tik tai, ko tikrai reikia išeigai gauti. * Pagrindinis testas yra toks: ar paprasta nusakyti juodosios dėžės paskirtį? * Funkcinėms dėžėms, klausiama, ar galima aprašyt juodosios dėžės paskirtį veiksmažodžiu (dėžės pavadinimas), o jos įeigos ir išeigos parametrus daiktavardžiais. * Objektinės dėžės atveju, turi būti paprastai nusakoma, kas įvyks su objektu, gavus bet kurį juodosios dėžės apdorojamą pranešimą. * Kviečiantysis modulis kviečiamąjį modulį visuomet turi traktuoti kaip juodąją dėžę!Informacijos maskavimo (information hiding) principas yra dalinis juodosios dėžės principo atvejis* Jis formuluojamas taip: modulių (funkcijų, objektų) realizavimo detalės (duomenų struktūros, vidinės procedūros) turi būti paslėptos, nematomos išoriniam vartotojui, inkapsuliuotos modulio viduje. Tai galinga programavimo technika, be kita ko, padedanti žymiai sumažinti programos sudėtingumą.. Vienas iš pagrindinių informacijos maskavimo mechanizmų yra duomenų struktūrų inkapsuliacija.

90 Paaiškinkite kas tai yra abstrakcijos principas. (3)

Stengiantis dorotis su sudėtingumo, PS yra projektuojamos (o kartais ir realizuojamos) sluoksniais. Pavyzdžiui, gali pasitaikyti, kad projektuojant PS susiduriama su kokiais nors tos sistemos aspektais, kurių negalima vienareikšmiškai priskirti nei duomenų struktūroms, nei algoritmams. Idealiu atveju, būtų gerai, kad, projektuodamas kodą, programuotojas galėtų nuo tų aspektų atsiriboti, nekreipti į juos dėmesio.* Abstrakcija gaunama ignoruojant neesmines detales, paliekant tiktai esminius ko nors aspektus * Abstrahavimasis – tai apibendrinimo procesas. Jo metu ieškoma panašumų tarp daiktų. Abstrakcijos gaunamos jungiant panašius daiktus į grupes.Taisyklė:

18

Page 19: PSI egzamino atsakymai

19

* Kiekvieną PS inžinerijos procesą bet kuriam juo kuriamam objektui taikyk iteratyviai, kiekvienoje iteracijoje nagrinėdamas objektą vis didesniu detalumu ir ignoruodamas tas detales, kurios nėra svarbios to nagrinėjimo lygmens (t.y. einamosios iteracijos) tikslų požiūriu. * Bet kuri sistema turi keletą abstrakcijos lygmenų * Programų sistemose abstrakcijos lygmenys dažniausiai yra tapatinami su modulių lygmenimis (t.y. jie išlieka veikiančioje sistemoje) * Tačiau kartais abstrakcijos lygmenys esti tik projektinėje dokumentacijoje (t.y. veikiančioje sistemoje jų nebelieka).Nuoseklių tikslinimų (stepwise refinement) principas yra specialus abstrakcijos principo atvejas* Nuoseklūs patikslinimai - tai pažingsninis procesas, taikant kurį yra imama programos (modulio) funkcija ir dekomponuojama į subfunkcijas. Tęsiant šį procesą, galų gale yra gaunami reikiamos programos (modulio) kodo operatoriai. * Tai iteratyvusis procesas, kurio kiekvienoje iteracijoje tyrime vis detalesnį ir detalesnį programos tekstą. * Dekomponuodami į vis smulkesnes ir smulkesnes subfunkcijas, mes vis tikslau ir tiksliau užrašome sprendžiamos problemos sprendimo algoritmą, t.y. žingsnis po žingsnio atliekame nuoseklius algoritmo tikslinimus.

91 Paaiškinkite kas tai yra pažingsninių patikslinimų principas. (3)

Nuoseklių tikslinimų (stepwise refinement) principas yra specialus abstrakcijos principo atvejas* Nuoseklūs patikslinimai - tai pažingsninis procesas, taikant kurį yra imama programos (modulio) funkcija ir dekomponuojama į subfunkcijas. Tęsiant šį procesą, galų gale yra gaunami reikiamos programos (modulio) kodo operatoriai. * Tai iteratyvusis procesas, kurio kiekvienoje iteracijoje tyrime vis detalesnį ir detalesnį programos tekstą. * Dekomponuodami į vis smulkesnes ir smulkesnes subfunkcijas, mes vis tikslau ir tiksliau užrašome sprendžiamos problemos sprendimo algoritmą, t.y. žingsnis po žingsnio atliekame nuoseklius algoritmo tikslinimus. * Didelės ir sudėtingos programos gali turėti daug tikslinimo lygmenų Pradiniai patikslinimai yra labai bendri ir ne daug ką skiriasi nuo specifikacijos, vėlesni yra vis labiau ir labiau panašūs į galutinį programos kodą Tarpiniuose lygmenyse operatoriai atitinka tam tikrus programus gabalus, bet tie gabalai dar yra nepakankamai detalizuoti, kad juos jau būtų galima užrašyti kokia nors programavimo kalba. Žemiausiojo lygmens operatoriai yra transformuojami į kokios nors programavimo kalbos operatorius (arba jų sekas).

Taisyklė: Pradėk problemos nagrinėjimu ir pasiūlyk bendrą “problemos atakos planą”, t.y. pačią bendriausią problemos sprendimo algoritmą. Algoritmas turi būti sudarytas vadovaujantis funkciniu požiūriu, t.y. išreikštas užduočių, kurias atlikus bus gautas norimas rezultatas, terminais 2. Po to, žingsnis po žingsnio, “tikslink” pasiūlytą algoritmą, dekomponuodamas užduotis į použduotis. Tikslinimas tęsiamas tol, kol galų gale použduotys yra išreiškiamos pasirinktąja programavimo kalba* Tikslinimo procesas susideda iš 2 dalių: Analizės: kiekviename žingsnyje problemos sprendimo būdas analizuojamas vis didesniu ir didesniu detalumu; Sintezės: lygiagrečiai su analizės procesu žingsnis po žingsnio konstruojamas problemos sprendimo algoritmas.3. Nuoseklius tikslinimus galima traktuoti kaip sąvokų hierarchijos konstravimą* Problemos sprendimas aprašomas vartojant daugeliu būdų realizuojamos probleminės kalbos sąvokas.

19

Page 20: PSI egzamino atsakymai

20

* Žingsnis po žingsnio tos sąvokos yra išreiškiamos per paprastesnes ir galų gale yra pereinama prie kokios nors universaliosios programavimo kalbos sąvokų. * Galima sakyti, kad šitaip mes pasirinkome tam tikrą probleminės kalbos realizavimo būdą ir realizavome tą kalbą pasirinktosios programavimo kalbos priemonėmis

92 Kas tai yra procedūrinė abstrakcija? (3)

procedūrinė abstrakcija: moduliai suvokiami kaip procedūros, Panagrinėkime skaičių kėlimo kvadratu uždavinį. Vietoje to, kad kiekvieną kartą rašyti išraišką x * x, paimkime paimkime funkcinę juodąją dėžę (ji realizuojama procedūra), kurios įeiga yra skaičius, o išeiga – to skaičiaus kvadratas.* Funkcija – viena iš svarbiausių skaičiavimo mokslinių idėjų Funkcija inkapsuliuoja kokį nors algoritmą. Tuo algoritmu programoje galima pasinaudoti iškviečiant funkciją (darant nuorodą į jos vardą) ir pateikiant reikalingus pradinius duomenis (funkcinės dėžės įeigą). * Procedūrinės abstrakcijos privalumai:maskuojamos algoritminės detalės,palengvėja programos teksto skaitomumas, programuojant, sudaroma galimybė galvoti apie bendrą algoritmo schemą, atidedant jo realizavimo detales vėlesniam laikui,sukuriami daugkartinio panaudojimo komponentai (funkcijų bibliotekos), kuriais galima pasinaudoti ir kitose programose,sudaroma galimybė tobulinti funkcijos realizaciją, nedarant jokių kitų pakeitimų programoje,vardai lokalizuojami funkcijos viduje, projektuoptojui suteikiama galimybė projektuoti funkcinių (leksinių) agregatų terminais, palengvėja PS šeimų projektavimas.Taisyklė:* Apibrėžk formalius parametrus, parašyk atitinkamą algoritmą realizuojančios procedūros kūną. * Suteik procedūrai vardą. * Paslėpk algoritmines detales nuo vartotojo, leisdamas jam kviesti procedūrą pagal vardą.

93 Kas tai yra duomenų abstrakcija? (3)

duomenų abstrakcija: sudėtingos duomenų struktūros,* Duomenų abstrakcija grindžiama turinių atskyrimo principu: griežtai vienos nuo kitų yra atskiriamos abstrakčiosios duomenų tipo savybės ir konkrečios to tipo realizavimo detalės. Abstrakčiosios savybės yra tos, kurias privalu žinoti tam, kas tuo duomenų tipu nori pasinaudoti (duomenų tipo interfeisas). Realizavimo detalių besinaudojančiajam žinoti nereikia, jos gali būti keičiamos, pavyzdžiui, norint padidinti programos darbo našumą. Tokie pakeitimai tampa lokalūs, nedaro jokio poveikio likusiai programos daliai, nes jie nekeičia abstrakčios duomenų tipo elgsenos. * Duomenų abstrakcija duoda galimybe agreguoti duomenis ir dirbti tų agregatų terminais duomenų agregatas gali būti vėl traktuojamas kaip primityvus objektas ir agreguojamas kartu su kitais objektais, šitaip kuriant aukštesnio lygmens duomenų agregatus.

Procedūrinėmis ir duomenų abstrakcijomis grindžiamas objektinis projektavimas. Čia leidžiama į vieną visumą agreguoti funkcinius ir duomenų agregatus. Šitaip kuriamos objektinės juodosios dėžės (objektai), realizuojančios vartotojo apibrėžtus probleminio pobūdžio duomenų tipus* Objektinio programavimo teorijoje, abstrakcija suprantama kaip galimybė apibrėžti objektus, representuojančius abstrakčius “aktorius“, galinčius– atlikti tam tikrą darbą, – pranešti apie savo būseną, – tą būseną keisti, – “komunikuoti" su kitais tos pačios PS objektais* Abstraktieji duomenų tipai (ADT) – tai matematinės duomenų ir ant tų duomenų apibrėžtų operacijų specifikacijos. Jie yra abstraktūs ta prasme, kad dėmesys sutelkiamas į operacijas,

20

Page 21: PSI egzamino atsakymai

21

ignoruojant jų realizavimo detales. Realizuojant programoje, ADT pateikia interfeisus, maskuojančius jų realizavimą. * Tipiniai ADT pavyzdžiai:– Eilutė – Sąrašas – Stekas (dėklas) – Eilė – Kompleksinis skaičius* Yra, nors ir gana subtilus, skirtumas tarp abstraktaus duomenų tipo ir jam realizuoti naudojamos duomenų struktūros. There is a distinction, although sometimes subtle, between the abstract data type and the data structure used in its implementation. Pavyzdžiui, ADT Sąrašas galima realizuoti masyvu arba susiejant sąrašo elementus nuorodomis. ATD Sąrašas turi tiksliai apibrėžtas operacijas (pridėti elementą, išmesti elementą ir t.t.), o nuorodomis susieti sąrašo elementai (sąrašinė duomenų struktūra) yra viena iš duomenų struktūrų, panaudojant kurią galima gana paprastai tas operacijas realizuoti. Kadangi ATD Sąrašas labai dažnai yra šitaip realizuojamas, tai pradedama tuos dalykus painioti ir pradedama sąrašines duomenų struktūras vadinti sąrašais. Tačiau tai yra skirtingi dalykai. * Reziume:– Duomenų struktūros konstruojamos remiantis sandorio principais (įsipareigojama nekeisti interfeiso) – Su duomenų struktūromis yra susiejamos jomis manipuliuoti skirtos procedūros* Paprastai rekursyviosios procedūros slepia rekursyviasias duomenų struktūras

94 Kas tai yra valdymo abstrakcija? (3)

valdymo abstrakcija: aukšto lygmens programavimo kalbų valdymo struktūros,* Mašininėse kalbose valdymo struktūros yra labai primityvios ir konkrečios. * FORTRAN, BASIC ir kitos ankstyvosios programavimo kalbos, iš esmės, mėgdžiojo mašininių kalbų valdymo struktūras. * Neturint abstraktesnių valdymo struktūrų, programose daroma daug klaidų ir negalima adekvačiai aprašyti programos operatorius siejančius loginius ryšius.Valdymo abstrakcijos pavyzdžiai* Šakojimo struktūros:– if-then – if-then-else – switch * Ciklai– while – do-while – for * Valdymo perdavimas– goto – exit – return – break – continue – call

95 Kas tai yra virtualioji mašina? (3)

Virtualiosios mašinos: programiškai realizuoti kompiuteriai, emuliuojami jūsų realaus kompiuterio.Virtualioji mašina – tai abstrakcija, realizuojama panaudojant "realią" TĮ ir "realią" operacinę sistemą.

21

Page 22: PSI egzamino atsakymai

22

* Operacinė sistema (Windows, Linux ir kt.) taip pat yra virtualioji mašina. * Virtualios mašinos yra kuriamos panaudojant realią aparatūrą, kiekviena iš jų veikia nepriklausomai nuo kitų tame pačiame kompiuteryje veikiančių kitų virtualiųjų mašinų. Iš karto gali veikti kelios tos pačios mašinos kopijos. * Virtualiosios mašinos leidžia programoms ignoruoti TĮ ypatumus ir vykdyti tas programas skirtingose platformose, jei jos emuliuoja tą pačią virtualią mašiną. Be to, šitaip viename realiame kompiuteryje gali egzistuoti skirtingos, tarpusavyje nesuderinamos, programavimo ar skaičiavimo aplinkos. Virtualioji mašina realizuojama programiškai, šitaip paprastai realizuojamas apatinis PS abstrakcijos lygmuo. Virtualioji mašina realizuojama panaudojant kitas abstrakcijas (procedūrinę, duomenų, valdymo, įrenginio). Ji nuslepia nuo PS konkrečios platformos detales. Keliant PS į kitą platformą, pakanka perrašyti tik jos virtualiąją mašiną. Aukštesni lygmenys nekinta, nes nekinta abstrakčiosios mašinos interfeisai (jos API). * Virtualioji mašina. Pavyzdžiai:Assemblerio mašina, C++ mašina, Buhalterinių skaičiavimų mašina* Virtualioji mašina yra programiškai sukuriama fikcija. Ji gali būti kuriama panaudojant ne tik realią, bet ir kitą abstrakčią mašiną.– Virtualioji mašina vykdo jai parašytas programas panašiai kaip ir realus kompiuteris. Taigi, programa “nežino”, kad ją vykdo virtuali mašina ir tuo nesidomi. Pakol virtuali mašina reaguoja į programos veiksmus kaip reali mašina (išlieka juodąja dėže), ją galima traktuoti kaip realų kompiuterį..* Virtualiosios mašinos ir realaus kompiuterio interfeisą galima traktuoti kaip API.– Šį netradicinį API sudaro pertraukimai, kreipiniai į BIOS ir I/O prieigas (ports). Jei Windows gali kokiu nors būdu tobulai emuliuoti tokį API, programa veikianti Windows mašinoje elgsis taip, tarsi ją vykdytų realus kompiuteris.

96 Paaiškinkite kas tai yra unifikavimo principas. (3)

* Unifikavimas – tai nebūtinų skirtumų (nevienodumu) pašalinimas. Tai taip pat svarbus PS inžinerijos principas. Jis sako, kad PS turi būti taip projektuojama ir konstruojama, kad ji būtų vienalitė. Tam turi būti numatyti atitinkami standartai.Taisyklė:* Taikyk visiems tos pačios rūšies artefaktams (moduliams, komponentams, dokumentams ir t.t.) vienus ir tuos pačius standartus. Beasmenis (egoless) programavimas yra specialus unifikavimo principo taikymo atvejas Žmogiškasis faktorius diktuoja tam tikras kodo rašymo taisykles * Pramonines PS kuria grupės, su tuo pačiu kodu skirtingais laiko momentais dirba skirtingi žmonės; * Grupės nariai turi skaityti vieni kitų kodą, jį vertinti; * Visa tai reiškia, kad kodavimo negalima palikti asmeninei kiekvieno programuotojo nuožiūrai. Kodas turi būti nuasmenintas, rašomas vadovaujantis vidiniais firmos standartais.

97 Paaiškinkite kas tai yra struktūrizavimo principas. (2)

Taisyklė:Visus artefaktus konstruok iš tipizuotų, patikimų elementų, kurių savybės yra gerai žinomos ir patikrintos. Pavyzdys: D-struktūros* Įrodyta, kad bet kuriai loginio pobūdžio problemos sprendimui aprašyti pakanka šių valdymo abstrakcijų: sekos, šakojimosi ir ciklo * Šią teoremą įrodė matematikai Bohm ir Jacopini (1966)

98 Paaiškinkite kas tai yra sistemų atvirumo principas. (2)

Taisyklė:Konstruok sistemas tik iš komponentų, tenkinančių atvirųjų sistemų standartus

22

Page 23: PSI egzamino atsakymai

23

* Šis principas riboja juodųjų dėžių naudojimą tam tikra šių dėžių (atvirųjų sistemų) klase * Atvirųjų sistemų privalumai: bet kurio komponento realizaciją galima keisti (nekeičiant jo kontraktinius įsipareigojimus aprašančios specifikacijos); vienoje sistemoje galima kombinuoti skirtingų gamintojų gaminamus komponentus.

99 Paaiškinkite kas tai yra interfeisų komfortiškumo principas. (2)

Interfeiso komfortiškumo principas: Visi PS vartotojo interfeisai turi būti komfortiški, t.y. jie turi būti pritaikyti konkretiems vartotojams (user-friendly), adaptyvūs, lengvai panaudojami (easy to use) kuo mažiau varginti vartotojus ir nesukelti jiems psichologinio diskomforto* Sakoma, kad interfeisas yra pritaikytas konkretiems vartotojams (user-friendly), jei jis taip suprojektuotas, kad yra intuityviai suprantamas vidutiniam vartotojui ir aiškina pats save (self-explanatory). * Sakoma, kad interfeisas yra lengvai panaudojamas (easy to use), jei juo naudojantis iš vartotojo nereikalaujama jokių bereikalingų veiksmų.Paaiškinkite kas tai yra metaforizavimo principas. (3)Bendruoju atveju: Metafora – žodžio reikšmės perkėlimas nuo vieno dalyko į kitą, siekiant antrąjį apibūdinti. Metafora kartais vadinama paslėptu palyginimu, tai lyginimas be jungiamųjų žodelių, nurodančių gretinimo motyvus. Pvz.: laivo nosis, dienos senatvė, gyvenimo saulėlydis PS kontekste:Metafora – tai vieno objekto idėjos nusakymas kito, gerai žinomo objekto terminais. Metafora vieno objekto esmė nusakoma tapatinant ją su tam tikromis kito objekto savybėmis. Taisyklė:* Konstruok vartotojo interfeisą kaip dalykinės srities metaforą, sudarytą atsižvelgiant į vartotojų mentalitetą, tradiciją ir patirtį. * Metaforos yra tam tikros abstrakcijos. Jos naudojamos kaip priemonė susieti tokius techninius ir sudėtingus dalykus kaip PĮ su vartotojo kasdieninio pasaulio realijomis * Panaudojant metaforas, yra konceptualizuojami ir vizualizuojami dalykinės srities objektai ir su jais atliekami veiksmai * Metaforos ypač naudingos, jei dalis ar visi vartotojo interfeise vaizduojamų objektų vartotojams yra nauji ir neįprasti (pavyzdžiui, tokie dalykai, kaip failas, serveris) * Gera metafora padeda vartotojui susieti jam nežinomus objektus su žinomais * Gerų metaforų pavyzdžiai: Darbo stalo metafora (pvz., MS Windows), įstaigos metafora (pvz., MS Office), e-pašto metafora (pvz., Pegasus Mail), kompiuterinių lentelių metafora (pvz., MS Excel), lentelės metafora (reliacinėse DB), formos metafora. * Kartais projektuotojai teigia, kad jų suprojektuotame interfeise apskritai nėra metaforų. Tačiau šitaip būti negali. Kokia nors metafora visuomet panaudojama. Kitas dalykas, ar projektuotojas ją parinko sąmoningai, ar ne ir ar ji yra tinkamai parinkta. Problema ne tame, kad reikia naudoti metaforas, bet tame, kad jas reikia parinkti tinkamai ir kruopščiai suprojektuoti!Rekomendacijos: – Įsitikink, kad metafora atitinka vartotojų prielaidas – Vizualiai metafora nebūtinai visuomet turi būti tiksli – Kuo metafora paprastesnė, tuo ji geresnė. – Metaforų ieškok kasdieninėje vartotojo darbo aplinkoje – Dažniausiai prisireikia daugiau nei vienos metaforos – Metafora apimk ne tik vaizdą, bet ir fukcionalumą – Suvok, kokia metafora naudojiesi, projektuodamas interfeisą – Nepersistenk, besistengdamas vizualizuoti visus objektus – Labai svarbu prisiminti, kad vartotojas nori matyti kaip skirtingus tuos objektus, kurie yra skiriami vykdant jo atliekamas užduotis, o ne tuos, kurie skirtingai realizuojami sistemoje! Metaforos konstruojamos analizuojant vartotojo užduotis ir jo vartojamą terminiją, o ne klasifikuojant PS objektus!

23

Page 24: PSI egzamino atsakymai

24

Paaiškinkite kas tai yra reaktyvumo principas. (6)Reaktyvumo (agency) principas - Agentinis ryšys sukuriamas tuomet, kuomet viena esybė įgalioja kitą esybę veikti jos vardu (pvz., verslo transakcijose)* Taisyklė: PS turi būti projektuojama kaip tikslingai veikiantis agentas. Tai reiškia, kad sistema privalo nuolat analizuoti dalykinės srities “reikalų būklę” ir tikslingai (arba bent jau iš anksto numatytu būdu) reaguoti į visas susidariusias “nenormalias” situacijas. * Agentas suvokiamas kaip esybė, kuri, pasinaudodama savo sensoriais, geba stebėti savo aplinką ir kuri, panaudodama turimus efektorius, gali daryti tai aplinkai kokį nors poveikį. >>Russel and Norvigs * Autonominis agentas – tai sistema, kuri yra situatizuota aplinkoje, yra tos aplinkos dalis, suvokia tą aplinką ir joje veikia. >>Franklin * Mes domėmis sėkmingai veikiančiais rationaliais agentais (agentais “veikiančiais teisingai”) * Tikra reaktyvioji PS yra sistema, demonstruojanti refleksyvią (“sąlyga-veiksmas”) elgsenąPavyzdys: e-pašto sistema Pegasus Mail (nuolat tikrina vartotojo pašto dėžutę ir rodo kiek joje yra neskaitytų žinučių).* Reaktyviojoje sistemoje iš anksto numatyta, kaip sistema turi reaguoti (kokių veiksmų imtis) į kiekvieną potencialiai galimą situaciją. Sistemoje nėra modeliuojama nei jos aplinka, nei PS, su kuriomis ji komunikuoja, todėl reaktyvioji sistema negali prognozuoti savo veiksmų pasekmių. Todėl ji neturi ir galimybių planuoti, kokį veiksmą geriau būtų atlikti. Reaktyvioji sistema neatlieka jokių išankstinių samprotavimų. Ji paprasčiausiai reaguoja į susidarančias situacijas iš anksto numatytu būdu. Proaktyvioji PS - tai sistema, kuri realizuoja savo tikslingą elgseną perimdama iniciatyvą. Proaktyvioji sistema neleidžia susidaryti nepageidaujamoms situacijoms, iš anksto imdamasi atitinkamų priemonių. Planuojanti PS - tai proaktyvioji sistema, kuri proaktyviąją elgseną realizuoja panaudodama “tikslų ir priemonių” samprotavimo metodą (means-end reasoning) * Racionalius, tikslingus veiksmus atliekantis agentas turi naudotis išreikštiniu būdu užduotu simboliniu modeliu, modeliuojančiu: dalykinę sritį (aplinką), jo gebamus atlikti veiksmus, tikslus, kurių jam privalu siekti; * nagrinėdamas potencialias galimybes (alternatyvius tikslus), sprendžia ką jam daryti ir įsipareigoja siekti pasirinktųjų tikslų; panaudodamas tikslų ir priemonių samprotavimo metodą (means-end reasoning), sudarinėja savo veiksmų planus (leistinų veiksmų grandines), kaip pasiekti pasirinktus tikslus ir galbūt tuos planus optimizuoja arba našumo, arba laukiamos naudos požiūriu. * Projektavimas, nenaudojant reaktyvumo principo –projektuotojas iš anksto numato visas situacijas ir sistemos reakcijas į jas. * Projektavimas, naudojant reaktyvumo principa – projektuotojas projektuoja tokią sistemą, kuri pati sprendžia, ką reikia padaryti, kad artėti prie numatytų tikslų. * Agentinė PS inžinerija (APSI) – tai nauja PS kūrimo paradigma, susiformavusi objektinės PS inžinerijos (OPSI) pagrindu. * APSI akcentuoja PS autonomiškumą, tarpusavio sąveiką, intelektuališkumą ir proaktyvumą.Išvardinkite populiariausias PS inžinerijos paradigmas. (1).* Paradigma “iš viršaus žemyn” (top-down approach) * Paradigma “iš apačios aukštyn” (bottom-up approach) * Riešuto paradigma (bootstrap approach) * Iteracinė paradigma (prototyping) * Evoliucinio kūrimo paradigma (incremental development) * Programų šeimų paradigma (domain/application engineering) * Komponentinė paradigma (reuse-based development) * Sintezės paradigma (formal development)Paaiškinkite “iš viršaus žemyn” paradigmą. (2)

24

Page 25: PSI egzamino atsakymai

25

Taikant šią paradigmą* sistemos kūrimas pradedamas jos vartotojo interfeisų projektavimu, be to, nustatomi iš išorės stebimos sistemos elgsenos vertinimo kriterijai; kitaip tariant, PS traktuojama kaip juodoji dėžė; * po to žingsnis po žingsnio judama žemyn, kiekviename žingsnyje visų pirma nustatant, ką tame žingsnyje nagrinėjami komponentai darys ir kokius interfeisus jie turės, ir tik po to pradedant galvoti, kaip reikia realizuoti jų elgseną (funkcijas) * projektavimas baigiamas “nulipus” iki kompiuterinės platformos lygmens ir suformulavus kompiuterinės technologijos reikalavimus, garantuojančius suprojektuotų interfeisų veikimą ir norimą sistemos elgseną.* Vadovaujantis šia paradigma, galima apsisaugoti nuo vartotojų turimos PS vizijos iškraipymų, dažnai atsirandančių kuriant sistemas kitais būdais. Tačiau, ir vadovaujantis šia paradigma, vartotojų vizija gali būti iškreipta, jei, kaip tai neretai atsitinka, analitikai iki galo neperpras vartotojų poreikių. * “Iš viršaus žemyn” paradigmoje intensyviai naudojami abstrakcijos ir dekompozicijos principai * Paradigma pritaikyta projektuotojams, gebantiems projektuoti komponentus, tenkinančius iš anksto užduotas specifikacijas. * Projektavimo sprendimai priimami vadovaujantis funkciniais kriterijais problema dekomponuojama į komponentus (modulius, duomenų struktūras ar kt.), komponentai realizuojami panaudojant žemesnio lygmens (patikslintus) komponentus, kurie vis labiau ir labiau atspindi tikslinės kompiuterinės platformos ypatumus.Paaiškinkite “iš apačios aukštyn” paradigmą. (2)Taikant šią paradigmą* sistemos kūrimas pradedamas nuo kompiuterinės platformos. Kompiuterinė platforma užduoda rinkinį griežtai apibrėžtų sąvokų, per kurias galima išreikšti sudėtingesnes įvarių dalykinių ir probleminių sričių sąvokas; * po to konstruojamos vis abstraktesnės ir abstraktesnės sąvokos, kuriomis galų gale pavyksta aprašyti PS sprendžiamą problemą. Taigi, yra parenkama kompiuterinė technologija, o po to sprendžiama kaip šios technologijos priemonėmis kurti reikiamą PS.* Tai viena iš populiariausių PS kūrimo paradigmų * Ši paradigma neblogai tinka nedidelėms PS kurti. Projektuojant sudėtingesnes PS, dėl iš anksto daromų technologinių prielaidų dažniausiai yra iškraipoma vartotojų turima PS vizija, nes suprojektuojami tokie sistemos interfeisai, kuriuos patogu realizuoti turimomis technologinėmis priemonėmis, o ne tokie, kurie būtų patogūs vartotojui. * Projektavimo “iš apačios aukštyn” paradigma grindžiama intensyviu abstrakcijos principo ir konkatenacijos operacijos naudojimu * Projektavimas pradedamas nusakant bendrais bruožais sistemos programinę realizaciją t.y. nusprendžiant, kokios procedūros ir duomenų struktūros galėtų būti naudingos, konstruojant reikiamą PS. * Toliau žingsnis po žingsnio vyksta konkatenacijos procesas vietoje to, kad leistis nuo uždavinio prie programavimo kalbos, kaip tai daroma taikant “iš viršaus žemyn” paradigmą, nuo programavimo kalbos yra kilama prie uždavinio, vienas po kito konstruojant abstrakcijos lygmenis (juos galima traktuoti kaip programavimo kalbas) vis labiau ir labiau pritaikytus sprendžiamam uždaviniui aprašyti. * Procesas užbaigiamas, suprojektavus probleminio pobūdžio komponentus panaudojus kuriuos galima įgyvendinti užduočių formulavimo kalbą (vartotojo interfeisus) * Paradigma pritaikyta projektuotojams, kurie linkę visų pirma įvertinti komponento, kurį jie rengiasi projektuoti, technologinį tinkamumą (našumą ir pan.) kuriamai programų sistemai. * Projektavimo sprendimai priimami vadovaujantis technologiniais kriterijais

25

Page 26: PSI egzamino atsakymai

26

komponentai kombinuojami, norint gauti aukštesnio lygmens komponentus, kurie, manoma, yra “tinkamesni“ vartotojo interfeisams įgyvendinti, nes yra labiau probleminio (ne technologinio) pobūdžio.Palyginkite “iš viršaus žemyn” ir “iš apačios aukštyn” paradigmas. (2)* Rekomenduojama vadovautis “iš apačios aukštyn” paradigma, kuomet norima sukurti PS sprendžiančią bendresnę problemą negu problema, kurią sprendžia kokia nors jau esama PS. * Kaip jau minėta, svarbiausias paradigmos trūkumas yra tas, kad apatiniuose abstrakcijos lygmenyse priimti technologiniai sprendimai paveikia visą PS, įskaitant vartotojo interfeisus vadovaujantis “iš viršaus žemyn” paradigma, pradedama ne nuo technologinių sprendimų, jie atidedami vėlesniam laikui. * Lipant “iš viršaus žemyn” galima nenulipti į turimą kompiuterinę platformą. Lipant “iš apačios aukštyn” galima neužlipti į sprendžiamą problemą. Todėl praktikoje dažniausiai abi paradigmos yra derinamos viena su kita.Paaiškinkite riešuto paradigmą. (2)* PS kuriama kaip specializuota virtualioji mašina, turinti visas duomenų struktūras ir komandas, pritaikytas reikiamai problemai spręsti, o taip pat tą problemą sprendžiančią programą. * Po to, žingsnis po žingsnio konstruojamos naujos, žemesnio lygmens virtualiosios mašinos, skirtos aukštesnio lygmens mašinoms įgyvendinti * Kiekviena tokia mašina patikslina (realizuoja) aukštesnio lygmens virtualiosios mašinos komandas ir duomenų struktūras. * Procesas baigiamas tada, kada visos aukštesnio lygmens mašinos komandos ir duomenų struktūros yra realizuotos kokia nors programavimo kalba * Iš esmės, tai specialus paradigmos “iš viršaus žemyn” atvejas: Kiekvienas abstrakcijos lygmuo čia projektuojamas kaip virtualioji mašina. Pagrindinė idėja yra palaipsniui pertvarkyti probleminio pobūdžio virtualiąją mašiną į kompiuterinės platformos lygmens mašiną. * Riešuto paradigmą galima traktuoti ir kaip specialų paradigmos “iš apačios aukštyn atveją”: šiuo atveju PS pradedama kurti nuo vadinamojo “branduolio”, t.y. virtualiosios mašinos, realizuojančios bazines sistemos funkcijas; šios mašinos kalba programuojamos papildomos funkcijos, t.y. kuriama nauja virtualioji mašina, kuri tarsi “kevalas” padengia “branduolį”; procesas tęsiamas tol, kol sukuriama sistema, tenkinanti turimą reikalavimų specifikaciją.

100 Paaiškinkite iteracinę paradigmą.(2)

Vadovaujantis šia paradigma:* kuriamas ir testuojamas būsimosios PS prototipas (funkciniu ar kitais požiūriais neišbaigta PS); * prototipas perdirbamas į labiau išbaigtą variantą (naują prototipą); * procesas tęsiamas kol galų gale sukuriama išbaigta PS, tenkinanti reikalavimų specifikaciją.

101 Paaiškinkite evoliucinę paradigmą. (2)

* Sistema yra kuriama kaip užsakovui vienas po kito pateikiamų papildinių (increments) seka suprojektavus visos sistemos architektūrą, kuriami ir pateikiami užsakovui tos sistemos “branduolys” (svarbiausios funkcijos) ir jo papildiniai; kiekvienam papildiniui rengiama jo reikalavimų specifikacija ir jo projektinė dokumentacija; kol kuriamas naujas papildinys, vartotojai dirba su einamąja PS versija ir išryškina jos trūkumus. * Evoliucinė paradigma yra panaši į iteracine, tačiau yra sukuriama geriau struktūrizuota PS ir jos kūrimo procesą yra lengviau valdyti PS funkcionalumas pateikiamas užsakovui anksčiau (nors ir dalimis); pradiniai papildiniai vaidina prototipų vaidmenį, nes padeda patikslinti vėlesnių papildinių reikalavimus; sumažėja projekto žlugimo rizika; galima geriau išbandyti (daugiau testavimo) svarbiausias sistemos funkcijas.

102 Kas tai yra ekstremalusis programavimas? (2)

26

Page 27: PSI egzamino atsakymai

27

* Specialus (šiuo metu labai populiarus) evoliucinės paradigmos atvejas, numatantis, kad kuriami ir užsakovui pateikiami labai maži papildiniai, grindžiamas nuolatiniu kodo tobulinimu, tiesioginiu vartotojo dalyvavimu PS kūrimo procese ir programavimu poromis; priskiriamas prie “agiliųjų metodų” * termino “ekstremalus” dėl neigiamų asosiacijų pradedama atsisakyti. * Programavimas poromis: prie ekrano sėdi dviese ir kartu rašo programą; šitaip vienas kitą tikrina ir išvengia daugelio klaidų; be to, kiekvieną programą žino mažiausiai du žmonės ir, jei vienam kas nors atsitiko, kitas gali tą programą keisti ir taisyti.

103 Paaiškinkite komponentinę paradigmą. (2)

Sistema renkama iš turimų komponentų * grindžiama daugkartiniu rinkoje parduodamų komponentų panaudojimu; * didelę svarbą įgyja komponentų integravimo metodai; * labai svarbu, kiek reikia pastangų komponentui perprasti.PS kūrimas pradedamas komponentų analize ir jų reikalavimų keitimu.Dažniausiai iš komponentų surenkama tiktai tam tikra kuriamos PS dalis, todėl komponentinė paradigma turi būti kombinuojama su kitomis paradigmomis.

104 Paaiškinkite programų šeimų paradigmą. (3)

* Programų šeima apibrėžiama, apėbrėžiant tam tikroje dalykinėje srityje jos sprendžiamų uždavinių (problemų) klasę * Tai specialus komponentinės paradigmos atvejas, numatantis sprendžiamų problemų klasės nustatymą, šią problemų klasę sprendžiančių sistemų apibendrintos architektūros projektavimą, programų šeimos ruošinio (reikalavimai, projektinė dokumentacija, kodas, vartotojo dokumentacija) kūrimą, konkrečių sistemų generavimą iš to ruošinio. * Kadangi šeimai priklausančios programos turi daug bendrų savybių, prasminga jas apjungti, kad būtų galima pakartotinai panaudoti ne tik kodą, bet ir reikalavimus, architektūrą bei vartotojo dokumentacijos komponentus. * Vadovaujantis šia paradigma, sistemos kūrimo procesas skyla į dvi dalis: 1. bendrybių paieška ir realizavimas (šeimos inžinerija; domain engineering) ir 2.konkrečių PS kūrimas (sistemos inžinerija; application engineering). * Bendrybės (commonality) – tai savybės, kurias turi visos tai šeimai priklausančios PS bendrybės tai ir yra tai, kas gali būti daug kartų panaudota pakartotinai (kiekvienai tai šeimai priklausančiai sistemai); tuo pačiu bendrybės nustato šeimos ribas, nes per jas nusakoma tai šeimai priklausančių sistemų aibė. * Šeimos inžinerija: Tam tikrai kokios nors dalykinės srities problemų klasei kuriamas programų šeimos ruošinys. * Sistemos inžinerija: Iš ruošinio sukuriama konkreti tam tikrai dalykinei sričiai skirta PS.

105 Paaiškinkite karkaso paradigmą. (3)

* Tai specialus programų sistemų šeimos paradigmos atvejas. Dirbant pagal šią paradigmą, ruošinys yra kuriamas kaip objektinis ar kitoks PS sistemos architektūrinis karkasas (apibendrinta parametrizuota PS); konkreti PS sistema yra kuriama konkretizuojant karkasą (suteikiant parametrams konkrečias reikšmes) ir užpildant jį konkrečiu funkcionalumu;šitaip, pavyzdžiui, kuriamos vadinamosios verslo procesų valdymo sistemos (ERP paketai). * Architektūrinis karkasas yra tam tikri PS “griaučiai”: realizuojamos duomenų struktūros, modulių interfeisai, jų sąveika ir kiti konstrukciniai PS ypatumai; tačiau pats karkasas nėra užpildytas jokiu konkrečiu funkcionalumu t.y. jame pačių modulių realizacijos nėra. * Objektinis karkasas kuriamas kaip tarpusavyje susietų abstrakčiųjų klasių rinkinys abstrakčiosios klasės naudojamos paveldėjimo hierarchijoms konstruoti; jos neturi realizacijų, jose apibrėžtos tik virtualios operacijos;

27

Page 28: PSI egzamino atsakymai

28

* t.y. karkase klasių realizacijos nėra. * Objektiniai karkasai iš esmės skiriasi nuo klasių bibliotekų bibliotekos tiražuoja programų kodą, karkasai realizuoja ir tiražuoja PS šeimai būdingas architektūrines bendrybes (tipinius projektavimo sprendimus); naudojant klasių biblioteką valdymo srautas teka į vieną pusę: iš klasių biblioteką naudojančios programis į bibliotekos klases; naudojant objektinį karkasą, valdymo srautas yra abipusis, nes, viena vertus, programos klasės paveldi abstrakčiųjų karkaso klasių ypatumus, o, kita vertus, virtualiosios operacijos, panaudojant dinaminio susiejimo mechanizmą (dynamic binding), susiejamos su jas realizuojančiu kodu programos vykdymo metu. * Norint karkaso pagrindu sukurti konkrečią PS šeimos sistemą reikia sukurti karkaso klasėmis numatytą funkcionalumą realizuojantį kodą (karkaso užpildą) paprastai kartu su karkasu yra tiražuojamas ir standartinis užpildas (arba bent jau jo dalis); realizuojant konkrečią PS, standartinis užpildas gali būti visas arba iš dalies pakeistas nestandartine, tai konkrečiai sistemai būdinga realizacija.

106 Paaiškinkite sintezės paradigmą. (2)

* Dirbant pagal šią paradigmą, formali (matematinė) sistemos specifikacija pagal formalias taisykles (automatiškai) transformuojama į veikiančią PS transformavimas atliekamas per kelis tarpinius žingsnius; transformacijos neįneša klaidų, todėl kodas visuomet atitinka sistemos specifikaciją; todėl atpuola būtinybė testuoti šitaip gautą kodą. * Problemos: reikalingi specialūs įgūdžiai ir aukšta kvalifikacija; sudėtinga formaliai specifikuoti kai kuriuos sistemos aspektus, pavyzdžiui, vartotojo interfeisą; darant sistemos pakeitimus, prireikia sukurti naujas transformacijas ir įrodyti jų teisingumą; kaip taisyklė, nepavyksta keisti šitaip kuriamų sistemų mastą (does not scale). * Taikymų sritis: Kritinės sistemos.

107 Iš kokių dalių susideda reikalavimų inžinerija? (1)

Reikalavimų inžinerija apima* poreikių analizę; * reikalavimų analizę; * reikalavimų specifikavimą.

108 Kokiais tikslais atliekama reikalavimų inžinerija? (1)

Pagrindinis RI uždavinys yra transformuoti operacinius poreikius (vartotojų reikalavimus) į PS reikalavimus.

109 Paaiškinkite operacinių reikalavimų ir sistemos reikalavimų skirtumus. (1)

* Operaciniai reikalavimai išplaukia iš vartotojų veiklos poreikių (operacinių poreikių) Tai reiškia, kad analitikas, bendraudamas su vartotojais ir užsakovais, privalo išsiaiškinti jų poreikius ir dokumentuoti tuos poreikius forma, lengvai suvokiama tiek vartotojams ir užsakovams, tiek vykdytojo organizacijos vadovybei, tiek ir PS inžinieriams. * PS reikalavimai išplaukia iš operacinių reikalavimų Tai reiškia, kad analitikas privalo [transformuoti] poreikių specifikaciją į PS reikalavimų specifikaciją ir suformuluoti tuos reikalavimus taip, kad jie būtų lengvai suvokiami tiek vartotojams ir užsakovams, tiek vykdytojo organizacijos vadovybei, tiek ir PS inžinieriams.

110 Paaiškinkite, kuo svarbūs operaciniai reikalavimai. (2)

Bene pats svarbiausias PS kūrimo žingsnis yra perteikti tų, kuriems reikia kuriamos sistemos (vartotojų), operacinius poreikius tiems, kas ją kurs (PS inžinieriams).

28

Page 29: PSI egzamino atsakymai

29

111 Kokiu tikslu rengiamas dokumentas „Verslo poreikių specifikacija“ ir kas jame rašoma? (2)

* VPS paskirtis yra aprašyti pačias bendriausias operacines būsimos sistemos savybes – t.y. kaip ja bus naudojamasi versle ir ką verslas iš to laimės. * Dokumentas naudojamas visų projekto dalyvių (vartotojų, užsakovo, vykdytojų ir kt.) siekiamiems tikslams koordinuoti bei derinti. * VPS – tai dokumentas, aprašantis: sistemos paskirtį (verslo terminais); operacinius reikalavimus (poreikius); planuojamą sistemos naudojimo scenarijų; sistemos aplinką (operacinę ir aptarnavimo); pirminę sistemos įgyvendinamumo analizę.

112 Kuo skiriasi siekis (misija) ir vizija? (2)

* Siekis – kokia užsakovo instancijos (pvz., organizacijos, įmonės) paskirtis? Ko ji siekia? (Trumpai, tiek vidiniam, tiek ir išoriniam skaitytojui suprantamomis formuluotėmis) * Vizija – kokia mūsų užsakovo instancija (pvz. organizacija) norėtų būti po 5-10 metų? (Trumpas, motyvuotas, visų pirma, vidiniam skaitytojui.) Iš šio aprašo išplaukia ir būsimos sistemos vizija, nusakanti tos sistemos paskirtį ir kūrimo tikslus (verslo terminais).

113 Kas tai yra SSGG analizė? Kokiu tikslu ji atliekama? (2)

Išorinės ir vidinės aplinkos analizė yra svarbi vizijos formulavimo ir strategijos planavimo proceso dalis:* verslo požiūriu vidiniai aplinkos veiksniai paprastai yra skirstomi į verslo stipriąsias (strengths; S) ir silpnąsias (weaknesses; W) puses; * verslo požiūriu išoriniai aplinkos veiksniai paprastai yra skirstomi į galimybes (opportunities; O) ir grėsmes (threats; T).Atliekama, norint išsiaiškinti teigiamas ir neigiamas išorinės aplinkos tendencijas, galinčias paveikti verslo proceso efektyvumą.

114 Kas vadinama stipriosiomis verslo pusėmis? (1)

Verslo stipriosios pusės yra jo turimi resursai ir galimybės, kuriomis galima pasinaudoti siekiant konkurencinių pranašumų. Pavyzdžiui:* patentai; * įtvirtinti brendai; * gera reputacija tarp klientų; * firminės (kitiems nežinomos) technologijos, leidžiančios ką nors padaryti pigiau; * geroje vietoje (pavyzdžiui, miesto centre) esanti buveinė.

115 Kas vadinama silpnosiomis verslo pusėmis?(1)

Stipriųjų pusių nebuvimas traktuojamas kaip silpnoji pusė, pavyzdžiui:* veikla neapsaugota patentais; * nėra įtvirtintų brendų (liet. prekinių vardų, ženklų); * bloga reputacija tarp klientų; * aukšta gamybos savikaina; * blogoje vietoje esanti buveinė. * nebuvimas galimybių naudotis svarbiausiais pardavimo tinklais

116 Kas vadinama neišnaudotomis verslo galimybėmis? (1)

Pozityvios išorinės aplinkos tendencijos traktuojamos kaip neišnaudotos galimybės, galinčios pagerinti verslo proceso efektyvumą. Kitaip – bet kuris išorinis verslo proceso veiksnys, potencialiai padedantis tam procesui greičiau ar efektyviau siekti norimų verslo tikslų.

117 Kas vadinama verslo grėsmėmis? (1)

29

Page 30: PSI egzamino atsakymai

30

Negatyvios išorinės aplinkos tendencijos traktuojamos kaip grėsmės, galinčios trukdyti verslo proceso efektyvumui. Kitaip – bet kuris išorinis verslo proceso veiksnys, kaip nors ribojantis to proceso galimybes pasiekti norimus verslo tikslus ar sukuriantis tam kokias nors kliūtis.

118 Paaiškinkite išorinės analizės esmę.(3)

Išorinės analizės metu visas dėmesys sutelkiamas į verslo proceso aplinką:* kokios yra pagrindinių varžovų vizijos? * ar analizuojamo verslo vizija sugretinama su jo varžovų vizijomis? * jei ne: ar yra svarbūs argumentai pasirinkti visiškai skirtingą viziją?

119 Kokie verslo aspektai analizuojami atliekant išorinę analizę? Trumpai apibūdinkite kiekvieną iš aspektų. ~(5)

Keturi analizės matmenys* įeigos logistika: tiekėjai, tiekimo problemos, tiekimo grėsmės; * išeigos logistika: platintojai, perpardavinėtojai, užsakovai, klientai, platinimo bei pardavimo problemos ir grėsmės; * teisinis reguliavimas: teisiniai ir privatumo apsaugos klausimai, su jais siejamos problemos ir grėsmės; * išorinis vertinimas (įvaizdis): vertintojai, įvaizdžio problemos ir grėsmės;

120 Paaiškinkite vidinės analizės esmę.(3)

Vidinės analizės metu sprendžiama, kokie procesai ir kokiais aspektais yra susiję su siekio įgyvendinimu, bei nustatoma, kas ir kokiu mastu turi būti analizuojama. Stengiamasi atsakyti į šiuos klausimus:* kokia yra funkcinė analizuojamos dalykinės srities struktūra ir kaip tos funkcijos tiesiogiai ar netiesiogiai palaiko suformuluotą strategiją; * kokie vidiniai procesai naudojami funkcijoms realizuoti; * kokios užduotys atliekamos vykdant vidinius procesus; * kokie agentai organizuoja analizuojamų procesų vykdymą, kokia atsakomybė tenka kiekvienam iš jų ir kokias užduotis jie atlieka; * kaip keisis tų agentų veiksmai (kokią naudą jie turės) įdiegus kuriamąją programų sistemą.

121 Paaiškinkite, kas tai yra penkios Porter’io jėgos. (3)

Penkios Porter’io jėgos* Prieš pradedant analizuoti verslo problemas ir grėsmes, kartais yra naudinga pažvelgti iš platesnės perspektyvos ir pabandyti suvokti, kas galėtų paveikti tą verslą kaip visumą * Vienas iš būdų tai padaryti yra pasinaudoti penkių Porter’io jėgų modeliu, padedančiu suvokti bendrą verslo proceso kontekstą; * Iš esmės, Porter‘io modelis nagrinėja verslo ‘pajėgumą' ir artimiausias atakas, galinčias sugriauti tą verslą; * Trumpas ‘įtariamųjų’ sąrašas yra toks: varžovai; klientai ir užsakovai; tiekėjai; ‘pakaitalus’ tiekiančios bendrovės; bendrovės ‘galinčios išstumti’ verslą ir kaip galima nuo jų apsisaugoti (kaip stabdyti jų plėtrą).

122 Koks vaidmuo išorinėje analizėje tenka sėkmės matams? Pateikite tokių matų pavyzdžių. (4) (atsakyta, manau, nepilnai)

* Verslo sėkmės matai naudojami verslo aspektams (veiksniams) matuoti, norint nustatyti, kiek sėkmingai tas verslas vyksta * Išorinės analizės metu verslo problemos aptinkamos atliekant to verslo efektyvumo matavimus ir vertinimus. * Stengiamasi atsakyti į šiuos klausimus: Kiek sėkmingai vyksta verslas? Ar yra pasiekiami verslo tikslai?

30

Page 31: PSI egzamino atsakymai

31

123 Paaiškinkite, kaip traktuojamos verslo stipriosios ir silpnosios pusės vidinės analizės metu. (3)

Nagrinėjant stipriąsias puses, galima rasti nepanaudotą potencialą bei nustatyti tas turimas kompetencijas, kurios praeityje prisidėjo prie verslo sėkmės. Nagrinėjant silpnąsias puses, galima rasti našumo spragas, pažeidžiamas (silpnas) vietas bei neteisingas esamų strategijų prielaidas (t.y., problemų priežastį).

124 Kokie metodai naudojami vidinei analizei atlikti? (2)

* Išteklių auditas; * kaštų ir pelno analizė; * lyginamoji analizė (benchmarking); * vertės grandinės analizė; * tiekimo grandinės analizė.

125 Kas tai yra strategija? Koks strategijos ir vizijos ryšys? (2)

Strategija – darnus rinkinys tarpusavyje integruotų veiksmų, kuriais siekiama konkurencinėje kovoje maksimaliai išnaudoti turimus pranašumus. Strategija – priemonė, principų rinkinys, kuriais vadovaujantis siekiama išpildyti viziją.

126 Kokius strategijų tipus žinote? Trumpai juos apibūdinkite. (2)

* Korporacijos lygmens strategijos: nusako kaip siekiama pertvarkyti visą verslą – tai ilgalaikės ir labai bendros strategijos. * Konkuravimo strategijos: nusako kokiu būdu bus varžomasi su konkurentais. * Funkcinio lygmens strategijos: nusako ko turi siekti organizacijos funkciniai padaliniai (buhalterija, atsiskaitymų skyrius ir t.t.)

127 Kokias konkuravimo strategijas žinote? Trumpai jas apibūdinkite. (3)

Bendrosios Michael Porter‘io strategijos:* kaštų lyderio strategija: siekiama turėti kuo mažesnius gamybos bei pardavimo kaštus ir pardavinėti gaminius bei paslaugas pačiomis mažiausiomis kainomis; * išskirtinumo strategija: siekiama teikti unikalius, vartotojų ypač vertinamus ypatumus turinčius gaminius bei paslauga; * fokusavimo strategija: kaštų lyderio arba išskirtinumo strategija, taikoma kokiam nors siauram rinkos segmentui (specialaus pobūdžio klientams).

128 Kas tai yra SSGG matrica? (2)

Tai tam tikru būdu pateikiama SWOT analizės rezultatų sąranka, pagal kuria yra patogu formuoti strategiją. Išskiriamos 4 tipų strategijos:* „stiprybė-galimybė“: numato naudoti galimybes gerai palaikomas verslo stipriųjų pusių; * „silpnybė-galimybė“ – galimybes, prieš tai pašalinus silpnąsias verslo puses, trukdančias sėkmingai pasinaudoti tomis galimybėmis; * „stiprybė-grėsmė“ – kaip verslas gali pasinaudoti savo stipriosiomis pusėmis išorinėms grėsmėms (problemoms) pašalinti; * „silpnybė-grėsmė“ – gynybinius veiksmus, padedančius išvengti dėl verslo silpnųjų pusių kylančių išorinių grėsmių (problemų).

129 Kokias korporacijos lygmens strategijas žinote? Trumpai jas apibūdinkite. (4)

* Verslo augimo strategijos: sutelkties strategija – verslas sutelkiamas pagrindinei gaminių (paslaugų) šeimai ir ieškoma augimo būdų didinant šios gamybos apimtis; vertikalaus integravimo s. (perimama įeigos ir/arba išeigos logistika), horizontalaus integravimo s. (perimamos varžovų įmonės); plėtros s. (koncentrinė pl., konglomeratinė pl.); verslo internacionalizavimo s. (decentralizuotas verslas, globalizuotas v., transnacionalinis v.).

31

Page 32: PSI egzamino atsakymai

32

* Stabilumo strategijos – verslo siekis išlaikyti esamą dydį ir esamas operacijų apimtis. 2 pagr. rūšys: Stabilus augimas (s. nenumato jokių šuolių. Stengiamasi dirbti beveik kaip visuomet tik truputį geriau) Atsitraukimo (pofit) strategija. Rūšys: pasipelnymo (harvest); žaidimo pabaigos (endgame) * Verslo atnaujinimo strategijos – taikoma, kada pelnas mažėja, trūksta apyvartinių lėšų; klientus perima kiti; du strategijos tipai (abiems reikia sumažinti kaštus ir restruktūrizuoti verslą): išlaidų mažinimo (retrenchment) – trumpalaikė, kuria siekiama pašalinti silpnąsias verslo puses; atgaivinimo (turnaround) – jei situacija besanti rimtesnė – imamasi kardinalesnių priemonių.

130 Kas tai yra verslo procesų reinžinerija? (1)

Tai verslo procesų apgalvojimas iš naujo ir toks jų radikalus perprojektavimas, kad iš esmės pakistų tokie verslo parametrai kaip kaštai, kokybė, darbų trukmė ir pan.

131 Kuo ypatingos viešojo administravimo įstaigų ir pelno nesiekiančių organizacijų strategijos? (3)

Šių org. veiklos sėkmingumą vertinti sunkiau negu komercinėse organizacijose, nes daug sunkiau sugalvoti tinkamą matų sistemą.* Tokiose organizacijose vadovybė linkusi galvoti apie tai, kaip gauti daugiau išteklių, o ne apie tai, kaip tikslingiau tuos išteklius naudoti. Dažniausiai tokiose organizacijose formuluojamos funkcinio lygmens strategijos, numatančios kaip gerinti jų padalinių darbą (organizacijos misijos požiūriu). * Nepakankami resursai ir išoriniai ribojimai (viešųjų pirkimų tvarka, samdymas pagal konkursus ir kt.) stipriai apriboja strategines galimybes. Tačiau ir viešojo administravimo bei pelno nesiekiančios organizacijos, panašiai kaip komercinės organizacijos, varžosi dėl resursų bei užsakymų.

132 Pagal kokią schemą vyksta poreikių analizė? (4)

* Pradedant nuo verslo tikslų: Išorinė analizė (problemos, grėsmės, galimybės) -> Vidinė analizė (problemų priežastys) -> Strategija (kaip pagerinti verslą?) Tikslų medis (kaip įgyvendinti strategiją?) -> Operaciniai poreikiai (kokių IT paslaugų reikia?) -> Scenarijus (kaip naudotis sistema?) -> Įgyvendinimo planas (ko reikia scenarijui įgyvendinti?) * Pradedant nuo sistemos: Programų sistema –(įgyvendina)–> Informacinės ir skaičiavimo paslaugos (operaciniai poreikiai) –(paremia)–> Potiksliai –(sudaro)–> Tikslų medis –(įgyvendina)–> Verslo tobulinimo strategija –(sprendžia)–> Verslo problemos

133 Kas vadinama tikslų medžiu? (3)

Medis, pavaizduojantis pasirinktos strategijos strateginius tikslus bei iš jų išplaukiančius operacinius tikslus. Skaitant medį nuo šaknies iki lapų, išreiškiama, kaip tikslai yra pasiekiami; skaitant nuo lapų iki viršūnės – kodėl tokie operaciniai tikslai pasirinkti.

134 Paaiškinkite termino operacinis poreikis prasmę. (2)

Operacinis poreikis (vartotojo reikalavimas) – tai skaičiavimo arba informacinė paslauga (dalykinė programa, duomenų bazė, interneto tinklalapis ar kt.), padedanti vartotojams pasiekti numatytus operacinius tikslus. Operacinius poreikius galima traktuoti kaip pačius bendriausius PS reikalavimus.

135 Kas tai yra sistemos naudojimo scenarijus? Kokia informacija jame pateikiama? Kokiems tikslams jis naudojamas? (4)

Sistemos naudojimo scenarijus aprašo kuriamą sistemą ir jos aplinką, įskaitant ja besinaudojančių agentų elgseną, o taip pat visą kontekstinę informaciją, reikalingą pirminei įgyvendinamumo analizei atlikti.* SNS aprašo kaip bus dirbama organizacijoje po to, kai PS bus sukurta ir įdiegta; * SNS nusako pačius bendriausius vartotojo interfeisų reikalavimus ir sistemos darbo vietų reikalavimus; * SNS aprašomas UML sekų diagramomis; * kas daroma, atliekant rankines operacijas;

32

Page 33: PSI egzamino atsakymai

33

* sistemos sąveika su liktinėmis (legacy) PS; * agentai, jų vaidmenys ir jų darbo aplinka.

136 Kokius veiksmus apima scenarijaus įgyvendinimo veiksmų planas? Kokia informacija reikalinga jam parengti? Kokia jo įgyvendinimo schema. (4)

Veiksmai:* reikiamos TĮ ir PĮ pirkimas; * kompiuterių tinklo kūrimas; * personalo mokymas; * instrukcijų, įsakymų ir kitų reikalingų dokumentų parengimas.Reikia palyginti esamą padėtį su scenarijuje pateiktais darbo vietų reikalavimais Įgyvendinimo schema:Inovaciniai slenksčiai \ Sistemos naudojimo scenarijus –> Veiksmų planas -> Plano įgyvendinimas -> Naudojama sistema Esamos situacijos aprašas //

137 Kokiais tikslais atliekama įgyvendinamumo analizė? Į kokius vadovybei svarbius klausimus ji atsako? (2)

Įgyvendinamumo analizės tikslas yra įsitikinti, kad sistemą galima sukurti ir kurti ją tikrai verta. Analizė turi atsakyti vadovybei į šiuos klausimus:* Ar projektas įgyvendinamas? * Kokiais alternatyviais būdais jį galima įgyvendinti? * Kokiais kriterijais vadovautis parenkant alternatyvą? * Kuri alternatyva geriausia?

138 Kokie yra įgyvendinamumo aspektai? (2)

* Operacinis (ar veiks?) * Techninis (ar „išneš“ technologijos?) * Ekonominis (ar grįš investicijos?) * Plano (ar galima pabaigti laiku?) * Teisinis etinis (ar projektas nepažeis kokių nors teisės ar pripažintų etinių normų?)

139 Kas vadinama operaciniu įgyvendinamumu? (3)

Ar užsakovas pajėgus eksploatuoti sistemą? Ar scenarijus iš tiesų veiks? Ar vartotojai suinteresuoti laikytis scenarijumi nustatytų darbo taisyklių? (pvz., darbo su klaviatūra apimtys, kompiuterių baimė, tradicijos, korporacinė kultūra ir pan.) PS naudojamos tam tikrame socialiniame ir organizaciniame kontekste. Tai gali paveikti sistemos reikalavimus (pvz., interfeiso reikalavimus) ar netgi lemti projekto sėkmę.

140 Kas vadinama techniniu įgyvendinamumu? (4)

* Ar galima turimomis technologijomis sukurti reikiamą sistemą? * Ar galima sistemą integruoti su kitomis naudojamomis sistemomis? * Ar vykdytojai pajėgūs sukurti sistemą? * Ar organizacijos turima (galima įsigyti) TĮ tinkama sistemai veikti? * Ar sistemos kūrimo technologiją vykdytojai jau yra išbandę kurdami kitas panašias sistemas? * Ar operaciniams reikalavimams reikės kurti naujus algoritmus ar kokias nors naujas duomenų įvesties arba išvesties technologijas? * Ar bus naudojama kokia nors nauja, neišbandyta TĮ? * Ar reikės naudotis kokiais nors neišbandytais komponentais? * Ar nereikės naudotis vykdytojų neišbandyta DBVS? * Ar nereikės kurti kokių nors labai specializuotų, neįprastų interfeisų (pvz., skaityti daviklių rodmenis)?

33

Page 34: PSI egzamino atsakymai

34

* Ar nereikės kurti tokių komponentų, kokių vykdytojai dar nėra kūrę? Koks tokių komponentų procentas? * Ar nereikės naudoti anksčiau nenaudotų analizės, projektavimo ar testavimo metodų? * Ar nebus naudojamos retai naudojamos PS paradigmos (pvz., sintezės paradigma) arba kokie nors sudėtingi metodai (duomenų analizės metodai, dirbtiniai neuroniniai tinklai ar pan.)? * Ar sistemai nėra keliami išskirtiniai našumo reikalavimai? * Ar užsakovai neabejoja operacinių reikalavimų įgyvendinamumu?

141 Kas vadinama ekonominiu įgyvendinamumu? Kokia išlaidų ir pajamų analizės esmė? (5)

* Daugeliui projektui tai pats svarbiausias įgyvendinamumo aspektas! * Analizuojama, ar gauti privalumai tikrai pakankami tokioms investicijoms. * Kiekvienai sistemos reikalavimų alternatyvai vertinami jos kaštai ir privalumai. * Tai vadinama išlaidų ir pajamų analize.Šios analizės tikslas yra atsakyti į klausimus:* Ar projektas pateisinamas (pelnas viršys išlaidas)? * Ar numatomų investicijų pakanka projektui įgyvendinti? * Už kokią mažiausią sumą galima sukurti priimtiną sistemą? * Sunkumai – identifikuoti ir įvertinti visas išlaidas ir pajamasIr pajamos, ir išlaidos gali būti netiesioginės arba sunkiai įvertinamos, sunku taip pat vertinti pagal daugelį kriterijų vertinamas alternatyvas.

142 Kokios pajamų ir išlaidų rūšys yra analizuojamos išlaidų ir pajamų analizės metu? (4)

Galima tokia iš sistemos gaunama nauda:* Piniginė: (galima apskaičiuoti pinigine išraiška); * Įvertinama: (galima įvertinti, bet ne pinigais); * Neapčiuopiama: (negalima įvertinti nei vienu, nei kitu būdu).Pajamų (naudos) rūšys:* Naujos ar tobulesnės galimybės; * Efektyvesnės operacijos; * Didesnis tikslumas; * Greitesnis sprendimų priėmimas; * Išlaidų taupymas!Išlaidų rūšys* TĮ (techninė įranga), įskaitant serverius; * PĮ (programinė įranga) – sistemai kurti, aptarnauti, dokumentuoti, personalui mokyti ir t.t.; * Eksploatavimo kaštai (priežiūra, ..); * Papildomas personalas (sistemai administruoti, duomenims ruošti ir t.t.); * Diegimo išlaidos; * Pradinės investicijos.

143 Kokios veiklos vykdomos atliekant poreikių ir išlaidų/pajamų analizes? (3)

* Verslo problemų ir grėsmių nustatymas ir išsiaiškinimas; * Alternatyvių verslo tobulinimo strategijų formulavimas; * Sistemos naudojimo scenarijų sudarymas (bent po vieną kiekvienai strateginei alternatyvai); * Strategijos alternatyvų (ir atitinkamų naudojimo scenarijų) analizė pagal šiuos kriterijus: resursų poreikis; kūrimo ir eksploatavimo kaštai; projekto trukmė. * Alternatyvių (tai pačiai strategijai) sistemos naudojimo scenarijų vertinimas: išlaidų ir pajamų analizė kiekvienam scenarijui; investicijų grąžos skaičiavimas; alternatyvų ir išlaidų/pajamų sugretinimo lentelė; Geriausios strategijos ir geriausio scenarijaus parinkimas. * Gali paaiškėti, kad nei vieno iš siūlomų scenarijų negalima įgyvendinti dėl: per didelių inovacinių slenksčių; per didelių kaštų; apribojimų resursams; techninių priežasčių; juridinių ribojimų.

34

Page 35: PSI egzamino atsakymai

35

144 Kas tai yra konteksto analizė? Kas tai yra sistemos naudojimo diagrama? Kas tai yra sistemos teikiamos naudos diagrama? (?)

Konteksto analizė atliekama tikslu atsakyti į šiuos klausimus:* Kaip PS padės verslui? * Kokias užduotis ir kokiu mastu ji padės vykdyti? * Kokią konkrečią naudą iš to gaus agentai?Sistemos naudojimo diagrama – tai užduočių diagrama, papildyta komentarais, aprašančiais kokiu mastu kuriama PS palaikys kiekvienos verslo užduoties vykdymą. Sistemos teikiamos naudos diagrama – tai užduočių diagrama, papildyta komentarais, aprašančiais ką išloš kiekvienas iš vartotojų, įdiegus kuriamą PS.

145 Kas vadinama modeliu? (2)

Modelis – tai aiškiai nusakytą tikslinę paskirtį turintis supaprastintas sistemos, proceso, reiškinio ar kokio nors kito originalo analogas, tapatus tam originalui modeliavimo tikslų požiūriu.Modelis pateikiamas forma, patogia naudotis modeliavimo tikslams.

146 Kas vadinama abstrakčiuoju modeliu? (2)

Abstrakčiuoju modeliu vadinamas teisingų tvirtinimų (teoremų) ir galbūt teiginių apie originalo statines ir dinamines charakteristikas rinkinys. Tvirtinimai ir teiginiai užrašomi kokia nors modeliavimo kalba (pvz., UML).

147 Kokiems tikslams naudojami modeliai programų sistemų inžinerijoje? (4)

PS inžinerijoje modeliai yra naudojami keliems tikslams: 1. Atskleisti ir tiksliai aprašyti verslo sistemų struktūrą ir elgseną (modeliuoti verslą tikslu atlikti vidinę analizę). 2. Tiksliai aprašyti būsimos PS reikalavimus ir jos struktūrą bei elgseną (įvairiais abstrakcijos lygmenimis) ir tuo pačiu sudaryti prielaidas visiems projekto dalyviams tiksliai ir vienareikšmiškai susitarti kokia ta sistema turėtų būti (reikalavimų modeliavimas, atliekant koncepcinį projektavimą). 3. Apgalvoti PS projektą. 4. Aprašyti projektavimo sprendimus. 5. Generuoti įvairius tarpinius darbo rezultatus. 6. Organizuoti, ieškoti, filtruoti, analizuoti ir redaguoti informaciją apie dideles sistemas. 7. Ekonomiškai vertinti skirtingus projektavimo sprendimus. 8. Kuriamai sistemai įgyvendinti.

148 Kiek lygmenų turi programų sistemų inžinerijoje naudojami modeliai? Kodėl? (4)

Priklausomai nuo modeliavimo tikslų modeliai gali įgyti skirtingus pavidalus ir būti pateikiami skirtingais abstrakcijos lygmenimis.Ankstyvosiose projekto stadijose kuriami aukšto abstrakcijos lygmens modeliai padeda projekto dalyviams mąstyti kryptingai ir išryškina svarbiausias sistemos savybes. Tokie modeliai aprašo sistemos reikalavimus ir naudojami kaip išeities taškas PS projektavimui.Laikui bėgant, modeliai evoliucionuoja. Konkretesni modeliai yra išvedami iš abstraktesnių. Laikui bėgant, pridedama vis daugiau ir daugiau detalių, atsiranda variantai:* reikalavimų * struktūrinio * detali specifikacijos * veikimo bei naudojimo pavyzdžių * sistemos aspektų aprašų

149 Kas vaizduojama modeliuose? Semantika ir pateiktis. (2)

Modeliai turi du aspektus: 1. Semantinė informacija (semantika)

35

Page 36: PSI egzamino atsakymai

36

Semantinis modelio aspektas aprašo PS kaip loginių konstrukcijų (klasių, asociacijų, būsenų, pranešimų, užduočių) tinklą. Dažnai semantinė informacija tapatinama su pačiu modeliu. Semantinis modelis turi sintaksinę struktūrą, taisykles, nusakančias, kokie modeliai yra sintaksiškai teisingi ir vykdymo dinamiką. Kiekvienas iš šių aspektų dažniausiai yra aprašomas atskirai, tačiau visi jie yra persipynę vienas su kitu ir yra to paties modelio dalys. 2.Vizualinė pateiktis (notacija) Vizualizuojant modelį, semantinė informacija pateikiama pavidalu, pritaikytu peržiūrinėti ir redaguoti tą informaciją. Vizualizuojant, modelis pateikiamas žmogui lengvai suprantama forma. Jokia papildoma informacija nėra pridedama, tačiau esama informacija organizuojama kitaip, negu ji yra saugoma kompiuteryje (ten ji saugoma forma, patogia apdoroti tą informaciją kompiuteriu). Tinkama parinkta notacija įgalina lengvai skaityti modelį!

150 Kas tai yra UML™? (2)

Unified Modelling Language™ (UML) – tai standartinė grafinė kalba, pritaikyta specifikuoti, vizualizuoti, projektuoti, konstruoti ir dokumentuoti artefaktus, sukuriamus, kuriant PS, bet taip pat ir verslo bei kitas neprogramines sistemas. Ši kalba grindžiama objektine paradigma ir yra esminis patikimų ir lengvai prižiūrimų PS kūrimo įrankis.

151 Išvardinkite UML™ diagramas ir trumpai apibūdinkite kiekvienos diagramos paskirtį. (4)

Elgsenos diagramos* Užduočių diagramos - modeliuoja globalų (stambaus plano) požiūrį į sistemą, apibūdina sąveiką su sistema per jos interfeisus, aprašo sistemos funkcionalumą kaip diskrečių užduočių (verslo transakcijų) rinkinį. * Sąveikos diagramos (Sekų diagrama, Ansamblių diagrama) - aprašo, kaip užduotys realizuojamos per objektų tarpusavio sąveikąStatinės struktūros diagramos:* Klasių diagrama - aprašo sistemos tipų struktūrą * Objektų diagrama - konkreti klasių diagramos realizacija pasirinktu laiko momentu. Ji naudojama klasių diagramai iliustruoti. * Paketų diagrama - parodo sistemos vidinę organizaciją. Sistemos struktūrines dalis atitinka paketai, į juos dedami tų dalių modeliai, priklausomybės tarp paketų modeliuoja dalių sąryšius.Dinaminio modeliavimo diagramos:* Būsenų diagrama - aprašo individualių objektų elgseną, modeliuoja sistemos dinaminę elgseną * Veiklos diagrama - būsenų diagramų porūšis, parodantis veiklos būsenų (būsenų, kuriose kas nors yra padaroma) sekas.Realizavimo diagramos:* Komponentų diagrama - parodo iš kokių fizinių komponentų yra sudaryta sistema * Išdėstymo diagrama - parodo, kaip kompiuterių tinkluose fiziškai išdėstomi sukurtos sistemos komponentai

152 Kokiems tikslams naudojamos UML™ diagramos kuriant programų sistemas? (2)

UML diagramos naudojamos trims skirtingiems tikslams:* Koncepciniam modeliavimui: modeliuoti realaus pasaulio sistemas (pvz., verslo sistemas); * Kuriamoms sistemoms (pvz., PS) specifikuoti, jas projektuoti koncepciniu ir architektūriniu lygmenimis; * Kuriamoms sistemoms realizuoti: projektuoti eskiziniu ir detaliuoju lygmenimis.

153 Išvardinkite užduočių diagramos elementus ir paaiškinkite kaip jie vaizduojami. (5)

Užduočių diagramos elementai:

36

Page 37: PSI egzamino atsakymai

37

* Sistema * Užduotys užduotys použduotys plėtiniai išplėtimo taškai * Agentai (aktoriai) * Ribojimai (taisyklės, aprašančios ką galima ir ko negalima daryti. Rašomi skliaustuose {}. Galima naudoti OCL (object constraints language). Aprašo predikatus, kurie turi būti teisingi.) * Asociacijos (jungia agentus su jų vykdomomis užduotimis) sąveika apibendrinimas (rodo, kad viena užduotis yra panaši į kitą, bet yra šiek tiek bendresnė) pastabos ryšys * Priklausomybės (parodo, kad vieno elemento apibrėžties pokyčiai iššaukia kito elemento apibrėžties pokyčius) include (use) (rodo, kad viena užduotis naudojasi kita užduotimi kaip použduotimi) extend (rodo, kad viena užduotis praplečia kitą. Labiau formalizuota už apibrendrinimą) * Paketai (koncepcinio lygmens konstrukcija; naudojamas projektavimo metu. Grupuoja modelio elementus) * Pastabos (galima įrašyti bet kokį tekstą, su objektų susiejamos pastabos ryšiu. Šiuo ryšiu galima susieti ir ribojimus) * Tekstiniai paaiškinimai (neprivalomi)

154 Kokia užduočių diagramų paskirtis? (3)

Užduočių diagrama pateikia išorinį sistemos vaizdą.155 Kaip reikia patikslinti užduočių diagramas, aprašant kas vyksta vykdant užduotį? (2)

Užduočių diagramų prasmė patikslinama kitomis elgsenos diagramomis, aprašančiomis užduočių vykdymą.

156 Koks sistemos aspektas aprašomas užduočių diagramomis ? (1)

Užduočių diagramomis modeliuojamas globalus (stambaus plano) požiūris į sistemą, paprastai jis vadinamas išoriniu požiūriu.

157 Ką užduočių diagramose vaizduoja užduotis? (1)

UML konstrukcija užduotis (use case) aprašo kokį nors bendrą sistemos funkcionalumą (verslo transakcijas, procesus)

158 Kas užduočių diagramose gali būti vaizduojama kaip agentas? (1)

Agentas yra bet kas, kas yra sistemos išorėje ir kartu su sistema dalyvauja užduoties vykdyme. Tai gali būti vartotojas arba kita sistema. Agentas privalo turėti vardą.

159 Kokiems tikslams užduočių diagramose agentas naudoja užduotį? (1)

Agentas “naudoja" užduotis savo tikslams pasiekti. Pagal tai, kokias užduotis agentas atlieka, nusakomas jo vaidmuo sistemoje

160 Kaip užduočių diagramose aprašomas agento vaidmuo sistemoje? (1)

Agentas su užduotimi jungiamas sąveikos (interaction) asociacija161 Kokias asociacijų rūšis galima naudoti užduočių diagramose? (2)

Sąveikos asociacijaApibendrinimo asociacijaPastabos ryšio asocijacija

162 Kas užduočių diagramose vaizduojama «include» ryšiu? (1)

37

Page 38: PSI egzamino atsakymai

38

«include» ryšys aprašo vienos ar kelių užduočių naudojamas použduotis.163 Kas užduočių diagramose vaizduojama «extend» ryšiu? Kas vadinama išplėtimo

tašku? (3)

«extend» ryšys aprašo neprivalomas (vykstančias prie tam tikrų sąlygų) použduotis. Išplėtimo taškas parodo, į kurią užduoties vietą turi būti įterptas plėtinys (išplečiančioji užduotis).

164 Kas užduočių diagramose vaizduojama apibendrinimo ryšiu?(1)

Apibendrinimo asociacija – tai neformalus būdas pavaizduoti, kad viena užduotis yra panaši į kitą, bet, funkcionalumo požiūriu, yra už ją šiek tiek bendresnė.Konkretesnė užduotis paveldi bendresnės užduoties funkcionalumą ir jį kuo nors šiek tiek papildo.

165 Išvardinkite sekų diagramos elementus ir paaiškinkite kaip jie vaizduojami. (6)

* Vaidmenys Agentai (actors) Objektai * Pranešimai sinchroniniai asinchroniniai konstruktoriai destruktoriai rekursyvūs signalai return * Gyvavimo atkarpos (lifelines) * Aktyvumo stulpeliai (activity boxes) * Išsišakojimai (forks) * Jungimosi taškai (joins) * Šakos (branches) * Valdymo gijos (threads of control) * Ribojimai Laiko * Paketai * Pastabos * Tekstiniai paaiškinimai (neprivalomi)

166 Kokia yra sekų diagramų paskirtis? (4)

Sekų diagramos aprašo objektų komunikavimą laiko tėkmėje, atliekamą keičiantis tarpusavyje pranešimais.Sekų diagrama paprastai vaizduoja kokios nors užduoties įvykių srautą.

167 Kas sekų diagramose vadinama gyvavimo atkarpa? (1)

Objektų rolės vaizduojamos gyvavimo atkarpomis:Brūkšnine linija vaizduojami objekto pasyvaus egzistavimo periodai Aktyvaus egzistavimo (veikimo) periodai vaizduojami aktyvumo stulpeliais (siaurais stačiakampiais).Kiekvienas aktyvus objektas turi savo nuosavą valdymo giją, vykdomą lygiagrečiai su kitų aktyvių objektų valdymo gijomis

168 Kaip sekų diagramose yra modeliuojami objektai? (1)

Sekų diagramoje po kiekvienu objektu vaizduojama jo gyvavimo atkarpa, parodanti objekto aktyvumo periodus.

38

Page 39: PSI egzamino atsakymai

39

169 Kas vadinama pranešimu? Kaip sekų diagramose yra modeliuojami pranešimai? Kokias pranešimų rūšis galima modeliuoti sekų diagramose? (3)

Objektai komunikuoja tarpusavyje keisdamiesi pranešimais;Pranešimai išdėstomi iš viršaus žemyn ta tvarka, kuria jie yra siunčiami;* Return pranešimas * Rekursyvusis pranešimas * Asinchroninis pranešimas * Sinchroninis pranešimaspranešimas gali būti signalas (t.y. išreikštinė, įvardinta, asinchroninė objektų sąveika) arba call tipo pranešimas, t.y. sinchroninis pranešimas.

170 Kaip sekų diagramose yra modeliuojami konstruktoriai ir destruktoriai? (2)

Naujo objekto kūrimas (konstruktorius) modeliuojamas kaip kuriančiojo objekto generuojamas įvykis, adresuotas kuriamojo objekto klasei (o ne objektui, kaip kiti pranešimai).{apie destruktorius nėra}

171 Kaip sekų diagramose yra modeliuojamas šakojimasis? (2)

Išsišakojimą galima modeliuoti pranešimus suskirstant į nuoseklaus vykdymo valdymo gijas.Pačios gijos gali būti vykdomos lygiagrečiai.Gijos sinchronizuojamos ribojimais užduodamais ant pranešimų parametrų.

172 Kas vadinama ansambliu? (1)

Ansamblį sudaro ansamblio dalyviai ir tik to ansamblio kontekste turintys aiškiai apibrėžtą prasmę tuos dalyvius siejantys sąryšiai.

173 Išvardinkite ansamblių diagramos elementus ir paaiškinkite kaip jie vaizduojami.. (6)

* Vaidmenys Agentai Objektai Aktyvūs objektai Multiobjektai * Pranešimai * Sąryšiai * Reikalavimai * Paketai * Pastabos

174 Kokia yra ansamblių diagramų('comunication diagram') paskirtis? (4)

Kaip ir sekų diagramose, jose parodoma, kaip objektai komunikuoja laiko tėkmėje.Tačiau, skirtingai negu sekų diagramose, laikas parodomas ne specialia ašimi, bet pranešimų numeravimo tvarka.Jose parodomi objektų tarpusavio sąryšiai, bet pranešimų išsidėstymas laike matosi blogiau.Objektai komunikuoja tarpusavyje keisdamiesi pranešimais. Return, sinchroniniai, asinchroniniai, rekursyvūs pranešimai, signalai. Siunčiant pranešimą valdymo srautas perduodamas gavėjui. Ansamblių diagramose perduodami pagal sąryšius, numeruojami jų perdavimo eilės tvarkai parodyti.

175 Kaip ansamblių diagramose yra modeliuojami konstruktoriai ir destruktoriai? (2)

Vykdymo metu sukuriamiems objektams nurodoma savybė {new};Vykdymo metu sunaikinamiems objektams nurodoma savybė {destroyed};Vykdymo metu sukuriamiems ir sunaikinamiems objektams nurodoma savybė {transient}.

39

Page 40: PSI egzamino atsakymai

40

176 Kas vadinama multiobjektu? Kaip multiobjektai yra modeliuojami ansamblių diagramose? (2)

Multiobjektai vaizduoja asociacijos “daugelis” gale esančias objektų aibes.Jie naudojami parodyti operacijas, atliekamas ne su paskirais objektais, bet su visa objektų aibe.Tai tas pats, kaip asociacija su kardinalumu “daug”, naudojama prieigai prie ja siejamų objektų.

177 Kuo skiriasi aktyvieji ir pasyvieji objektai? Kaip modeliuojami aktyvieji objektai sekų diagramose ir kaip jie modeliuojami ansamblių diagramose? (3)

Aktyviuoju vadinamas objektas, kuriam perduota valdymo gija ir kuris gali inicijuoti valdymo veiklas.Pasyviuoju vadinamas objektas, disponuojantis duomenimis, bet negali inicijuoti valdymo veiklų.Ansamblių diagramose aktyvieji objektai vaizduojami paprastų objektų žymenimis, pastorinant jų linijas.

178 Kaip ansamblių diagramomis yra aprašomi tipiniai projektavimo sprendimai? (3)

A collaboration can be used to specify the implementation of design constructs. For this purpose it is necessary to specify its context and interactions. It is also possible to view a collaboration as a single entity from the outside. For example, this could be used to identify the presence of design patterns within a system design. A pattern is a parameterized collaboration; in each use of the pattern, actual classes are substituted for the parameters in the pattern definition.Note that patterns as defined in Design Patterns by Gamma, Helm, Johnson, and Vlissides include much more than structural descriptions. UML describes the structural aspects and some behavioral aspects of design patterns, but UML notation does not include other important aspects of patterns, such as usage trade-offs or examples. These must be expressed in text or tables.

179 Išvardinkite klasių diagramos elementus ir paaiškinkite kaip jie vaizduojami. (7)

* Klasės * Objektai * Interfeisai * Metaklasės * Abstrakčiosios klasės * Šablonai * Utilitos * Paketai * Pastabos * Ribojimai * Asociacijos Apibendrinimas Klasifikavimas Kompozicija Agregavimas * Priklausomybės

180 Kokia yra klasių diagramų paskirtis? (4)

Klasės – objektinio projektavimo pagrindas. Jomis aprašomi sistemoje leistinų objektų tipai ir juos siejantys statiniai ryšiai.Klasė - tai modelio konstrukcija, kuria modeliuojama atitinkama dalykinės srities esybėKlasė turi tam tikrą verslo funkcionalumą, vadinamą metodais (operacijomis), ir unikalias, tik jai būdingas struktūrines savybes, vadinamas atributais.

181 Kas vadinama klase? Kas vadinama atributu? Kas vadinama operacija? Kaip klasių diagramose modeliuojamos klasės? (4)

40

Page 41: PSI egzamino atsakymai

41

Klasė - tai modelio konstrukcija, kuria modeliuojama atitinkama dalykinės srities esybė.Atributai aprašo informaciją, kurią klasė turi apie savo objektus.Operacijos – tai klasės vykdomi procesai.

182 Kaip nustatyti, kokios klasės turi būti modeliuojamos klasių diagrama? (2)

Kokios klasės yra reikalingos, nustatoma nagrinėjant sekų diagramose pavaizduotus objektus. Pavadinimai klasėms suteikiami naudojantis dalykinės srities terminų žodynu (jis yra vadinamas ontologija) arba pasirinktąja dalykinės srities metaforą.

183 Kaip nustatyti, kokius atributus turi turėti modeliuojama klasė? (2)

Atributai nustatomi nagrinėjant pranešimų parametrus ir “prieš” bei “po” sąlygas sekų diagramose.184 Kaip nustatyti, kokias operacijas turi turėti modeliuojama klasė? (2)

Operacijas galima nustatyti nagrinėjant sekų diagramas.185 Kaip nurodomas klasės elementų matomumas? Kokios yra klasės elementų

matomumo rūšys? (2)

matomumas vardas: tipas = standartinė reikšmėmatomumas pavadinimas (parametrų sąrašas) : rezultato tipaspublic (+), private (-), protected (#) ar package (~).

186 Kas vadinama statiniais nariais? Kaip jie modeliuojami klasių diagramose? (2)

Statiniais klasės nariais (pačios klasės savybėmis) galima naudotis net ir tuomet, kuomet klasė yra tuščia.Klasės apraše statiniai nariai yra pabraukiami.

187 Kas vadinama parametrizuotomis klasėmis (šablonais)? Kam jų reikia? Kaip jos modeliuojamos klasių diagramose? (4)

Tipizuotose programavimo kalbose šablonai dažniausiai yra naudojami skirtingų tipų objektų rinkiniams aprašyti.Koncepciniame modeliavime be jų galima ir apseiti, nes čia objektų rinkinius galima modeliuoti ir kitais būdais.Eskizinio ir detalaus projektavimo metu šablonus rekomenduojama naudoti tuomet, kuomet juos palaiko pasirinktoji programavimo kalba, pvz., C++.

188 Kuo skiriasi klasė ir tipas? (3)

Tipas:* protokolas, kurį supranta objektas; * leistinų operacijų rinkinys.Klasė:* realizavimo konstrukcija; * realizuoja vieną ar kelis tipus.Javoje tipai aprašomi interfeisais, C++ - abstrakčiosiomis klasėmis.

189 Kokios klasės vadinamos abstrakčiomis? Kam jų reikia? Kaip jos modeliuojamos klasių diagramose? (3)

Abstrakčioji klasė – tai tokia klasė, kuri turi tik signatūrą (t.y. aprašą), bet neturi realizacijos (gali turėti dalinę realizaciją). Jų funkcionalumu galima pasinaudoti tik jas išplėtus. Abstrakčiųjų klasių pavadinimai rašomi kursyvu.

190 Kas vadinama asociacijomis? Kam jų reikia? Kaip jos modeliuojamos klasių diagramose? (4)

Asociacija parodo, kad dvi klases sieja tam tikras ryšys. Asociacijos turi du galus. Jie vadinami asociacijos vaidmenimis. Kiekvienas vaidmuo turi pavadinimą, kardinalumą, navigavimo kryptį ir tipą.

41

Page 42: PSI egzamino atsakymai

42

* Kardinalumas nurodo, kiek tame vaidmenyje esančių objektų gali būti susieti asociacijos generuojamu sąryšiu. Pvz: Mokyklą lanko daug Studentų (sąryšis daug su vienu, *:1). Pvz2: Bet kuris Studentas lanko tik vieną Mokyklą (1:*). * Navigavimo kryptis: kartais vaidmeniui yra dedama rodyklė, nurodanti navigavimo kryptį. Ji nustato, kuri iš klasių yra atsakinga už ryšio tarp klasių palaikymą. Pvz: klasė Mokykla yra atsakinga už žinojimą, kurie Studentai ją lanko. * Tipas: Vaidmenys priklauso vienam iš trijų tipų: asociacija, kompozicija, agregavimas.

191 Kuo skiriasi agregavimas ir kompozicija? Kokia šių asociacija paskirtis? Kaip jos modeliuojamos klasių diagramose? (4)

Kompozicija – tai agregavimo rūšis, susiejanti agregatą ir jo dalis visam jų gyvavimo laikui. Naikinant kompoziciją, yra sunaikinamos ir visos jos dalys. Vienu metu objektas gali priklausyti tik vienai kompozicijai.Agregatuose tas pats objektas gali iš karto priklausyti keliems agregatams. Pavyzdžiui, ta pati siena tuo pat metu gali būti kelių kambarių dalis. Sunaikinus agregatą, dalis gali išlikti.

192 Kas vadinama kvalifikuotomis asociacijomis? Kokia šių asociacija paskirtis? Kaip jos modeliuojamos klasių diagramose? (4)

Kvalifikuota asociacija – tai binarinė asociacija, bent viename savo gale turinti atributų sekciją (kvalifikatorių). Asociacija gali turėti kvalifikatorius ir abiejuose galuose, bet taip esti labai retai.Atributų sekcijoje įrašomi vienas ar daugiau atributų, kuriuos galima panaudoti kaip indeksus pereinant asociacija iš kvalifikuotos klasės į tikslinę klasę, esančią kitame asociacijos gale.

193 Kas vadinama asociacijos klase? Kokia tokių klasių paskirtis? Kaip jos modeliuojamos klasių diagramose? (4)

Asociacijos klasė – tai konstrukcija, turinti ir klasei ir asociacijai būdingus ypatumus, kitaip tariant - tai asociacija, kuri tuo pat metu yra ir klasė. Ji nusako, kokias savybes turi asociacija.

194 Paaiškinkite kuo skiriasi asociacijos ir operacijos. (3)

Asociacijos modeliuoja nuolat tarp objektų egzistuojančius sąryšius.Operacijos sąryšius tarp objektų kuria ir naikina dinamiškai.

195 Kas vadinama apibendrinimo ryšiu? Kokiems tikslams naudojami tokie ryšiai? Kaip jie modeliuojami klasių diagramose? (4)

Apibendrinimo ryšys: sieja poklasį ir klasę (klasė yra bendresnė poklasio versija). Šis ryšys dažnai yra vadinamas ‘is-a’ ryšiu.Atvirkščias ryšys (t.y. klasę ir jos patikslintą versiją (poklasį) siejantis ryšys) yra vadinamas specializavimo (porūšio) ryšiu. Poklasis paveldi visas klasės savybes:* atributus * operacijas * agregavimo bei kompozicijos ryšius * kitas asociacijas

196 Kas vadinama priklausomybe? Kaip yra modeliuojamos priklausomybės klasių diagramose? (4)

Priklausomybė - tai silpnesnė ryšio forma. Pavyzdys: klientą ir tiekėją sieja priklausomybė, jei klientas apie tiekėją nieko nežino. Tai naudojimo ryšys, parodantis, kad kokio nors daikto specifikacijos pokyčiai padaro poveikį kitam, jį naudojančiam, daiktui

197 Išvardinkite priklausomybių rūšis ir paaiškinkite kokiems tikslams naudojama kiekviena iš priklausomybių rūšių. (7)

«trace»: skirtingų modelių elementų koncepcinė priklausomybė.

42

Page 43: PSI egzamino atsakymai

43

«refinement»: priklausomybė tarp dviejų skirtingų to paties koncepto versijų, pavyzdžiui, apibrėžtų skirtinguose abstrakcijos lygmenyse ar skirtingose projekto stadijose.«realisation»: specifikaciją ir jos realizaciją siejanti priklausomybė.«trace», «refinement», «realisation» ir «derivation» priklausomybės yra abstrakcijos priklausomybės; jos sieja dvi to pačio dalyko versijas.«derivation»: elementą ir iš jo išskaičiuotą (išvestą) elementą siejanti priklausomybė.«usage»: teiginys, kad vieno elemento elgsena ar realizavimo būdas veikia kito elemento elgseną ar realizavimo būdą.«access»: leidimas vienam paketui prieiti prie kito paketo turinio.«binding»: reikšmių priskyrimas parametrams.«call»: viena klasė kviečia kitos klasės operaciją.«friend»: leidimas elementui prieiti prie kito elemento, nepriklausomai nuo jo matomumo, turinio.«import»: leidimas paketui prieiti prie kito paketo turinio ir pridėti to paketo vardų aliasus į savo vardų erdvę.«instantiation»: vienos klasės metodas kuria kitos klasės objektus.«send»: signalo siuntėją ir jo gavėją siejanti priklausomybė.«instance of»: parodo, kad vienas elementas yra kito elemento egzempliorius. Griežtai kalbant, tai yra ne priklausomybė, bet metaryšys.«parameter»: operaciją ir jos parametrus siejanti priklausomybė.

198 Kokiems tikslams yra naudojamos realizavimo priklausomybės? Kaip jos modeliuojamos? (4)

Naudojama susiesti specifikacijai su jos realizacija199 Kaip UML™ kalboje yra suprantami interfeisai? Kam jie reikalingi? Kaip jie

modeliuojami? (4)

Interfeisas – tai objekto elgsenos aprašas, pateikiamas atskirai nuo to objekto realizacijos ar būsenos. Interfeisas yra realizacijos neturinti klasė.Interfeisą gali realizuoti viena ar kelios klasės ir kiekviena iš jų privalo realizuoti interfeise specifikuotas operacijasInterfeisai neturi iš jų išeinančių asociacijų.

200 Paaiškinkite kuo skiriasi asociacijos ir priklausomybės. (3)

Asociacija parodo, kad dvi klases sieja tam tikras ryšys.Priklausomybė - tai silpnesnė ryšio forma, naudojimo ryšys, parodantis, kad kokio nors daikto specifikacijos pokyčiai padaro poveikį kitam, jį naudojančiam, daiktui

201 Kas UML™ kalboje yra vadinama utilitomis? Kam jų reikia? Kaip jos modeliuojamos klasių diagramose? (3)

Utilita yra globaliųjų kintamųjų ir procedūrų grupavimo priemonė.Tai ne realaus pasaulio modeliavimo, bet techninė konstrukcija, įvesta tik patogumo dėlei.Ji žymima klasės žymeniu, nurodant rūšį «utility».

202 Kas UML™ kalboje yra vadinama metaklasėmis? Kam jų reikia? Kaip jos modeliuojamos klasių diagramose?(3)

Metaklasės – tai tokios klasės, kurių realizacijomis yra ne objektai, bet klasės.Metaklasės žymimos klasės žymeniu, nurodant rūšį «metaclass». Metaklases turi tokios kalbos, kaip Smalltalk, kuriose su klasėmis galima dirbti kaip su objektais.

203 Kas UML™ kalboje yra vadinama objektu? Kam jie naudojami? Kaip jie modeliuojami? (3)

Objektas - klasės egzemliorius, turintis būseną (konkrečias atributų reikšmes)204 Paaiškinkite kuo skiriasi klasių ir objektų diagramos. (3)

43

Page 44: PSI egzamino atsakymai

44

Objektu vardai pabraukti, su pavadinimu po dvitashkio: studentas:petras205 Kas vadinama sudėtiniu objektu? Kam reikalingi tokie objektai? Kaip jie

modeliuojami? (3)

Sudėtiniai objektai – tai objektai, sudaryti iš tampriai tarpusavyje susietų vidinių dalių.Tokie objektai yra sudėtinių klasių realizacijos.Jie primena ansamblius, bet vaizduojami kaip statiniai modeliai ir modeliuojami panaudojant kompozicijas.

206 Išvardinkite būsenų diagramos elementus ir paaiškinkite kaip jie vaizduojami. (6)

* Būsenos pradinė galinė sudėtinė (nested) * Perėjimai (transitions) vidiniai sudėtiniai nupjauti (stubbed) * Valdančiosios piktogramos signalo siuntimas signalo gavimas atidėtas įvykis * Ribojimai perėjimo sąlyga when after * Veiksmai enter exit do on send aprašai * Pastabos * Įvykiai keičiantys įvykiai signalai kvietimai (call) laiko įvykiai * Šakojimai valdymo iššakojimas lygiagrečios gijos sinchronizacija

207 Kokia yra būsenų diagramų paskirtis? (4)

Nusako sistemos elgseną aprašant, kokias vidinių operacijų sekas iššaukia išoriniai stimulaiParodo:* Visus tai klasei darančius poveikį įvykius. * Visas galimas tos klasės objektų būsenas.Naudojama:* Kryžminiam sekų diagramos tikrinimui. * Operacijų trigeriams/parametrams/ribojimams nustatyti. * Sistemos interfeisui projektuoti.

44

Page 45: PSI egzamino atsakymai

45

208 Kas vadinama būsena? Kaip nustatyti, kokias būsenas turi objektas? Kaip modeliuojamos būsenos? (6)

Būsena - objekto “nuotrauka” (jo atributų reikšmių visuma) kokiu nors to objekto gyvavimo laikotarpiui priklausančiu laiko momentu. Būsena gali būti susieta su veikla, aprašančia vykdomą funkciją. Būsena vaizduoja objekto gyvavimo periodui priklausantį laiko intervalą, kurio metu objektas tenkina tam tikras sąlygas, vykdo tam tikrus veiksmus ar laukia kol įvyks koks nors įvykisPradinė yra būsena, kurioje prasideda modeliuojama objekto elgsena.* Klasės būsenų diagrama privalo turėti vieną ir tik vieną pradinę būseną. * Joje neleidžiami įvykių trigeriai. * Joje gali būti duota šakojimosi sąlyga. * Objektai negali užsilaikyti pradinėje būsenoje.Pabaigos būsenoje pasibaigia elgseną modeliuojančios būsenų mašinos veikimas. Klasės būsenų diagrama gali turėti kelias pabaigos būsenas.Būsena žymima stačiakampiu su užapvalintais kampais. Žymuo turi vieną arba daugiau sekcijų: pavadinimo ir vidinio perėjimo.

209 Paaiškinkite, kas vadinama perėjimu, perėjimo sąlyga ir perėjimo veiksmu. (4)

Perėjimo ryšys vaizduoja dvi objekto būsenas siejantį sąryšįPerėjimo veiksmas (transition action) – tai nepertraukiama operacija, vykstanti perėjimo metu.Perėjimo sąlyga (transition guard) aprašo, kokia sąlyga turi būti patenkinta, kad įvyktų perėjimas. Vienu metu gali vykti tik vienas perėjimas. Tai reiškia, kad perėjimo sąlygos negali persidengti.Vidinis perėjimas – tai toks perėjimas, kuriam suveikus liekama toje pačioje būsenoje.Tokiais perėjimais yra modeliuojami įvykiai, kuriems įvykus objekto būsena nepakinta.Įėjimas į būseną (išskyrus grįžimą iš žemesnio lygmens būsenų) ir išėjimas iš būsenos (išskyrus atvejus, kai einama į žemesnio lygmens būsenas) yra vaizduojami kaip vidiniai perėjimai, žymimi tarnybiniais žodeliais “entry” ir “exit” atitinkamai, tačiau tai nėra tikri vidiniai perėjimai.

210 Kas vadinama sudėtiniu perėjimu? Kokia tokių perėjimų paskirtis? Kaip jie modeliuojami būsenų diagramose? (5)

Sudėtinis perėjimas turi keletą pradinių ir/arba keletą tikslinių būsenų. Tokie perėjimai naudojami valdymą išskaidyti į kelias gijas (nepanaudojant lygiagrečių būsenų) ir/arba tokioms gijoms sinchronizuoti.

211 Kas vadinama nukirstuoju perėjimu? Kokia tokių perėjimų paskirtis? Kaip jie modeliuojami būsenų diagramose? (5)

Stubbed transitions Įdėtinės būsenos gali būti suspaustos. Perėjimai į įdėtinę būseną yra vaizduojamas kaip perėjimas į pačią detaliausią iš matomų suspaustosios būsenos būsenų. Toks perėjimas, jeigu jis neišeina iš neturinčios žymės galinės būsenos ir neįeina į neturinčią žymės pradinę būseną, gali (bet neprivalo) būti pavaizduotas kaip išeinantis iš nuokirtos (stub) arba į ją įeinantis. Nuokirtos vaizduojamos mažu vertikaliu brūkšneliu, apimančiosios būsenos viduje. Nuokirta parodo, kad perėjimas eina į suspaustąją būseną arba iš jos. Perėjimas iš nuokirtos į pradinę būseną ir perėjimas iš galinės būsenos į nuokirtą yra neleistini.

212 Kas vadinama vidiniu perėjimu? Kokia tokių perėjimų paskirtis? Kaip jie modeliuojami būsenų diagramose? (5)

Vidinis perėjimas – tai toks perėjimas, kuriam suveikus liekama toje pačioje būsenoje. Tokiais perėjimais yra modeliuojami įvykiai, kuriems įvykus objekto būsena nepakinta.

45

Page 46: PSI egzamino atsakymai

46

Įėjimas į būseną (išskyrus grįžimą iš žemesnio lygmens būsenų) ir išėjimas iš būsenos (išskyrus atvejus, kai einama į žemesnio lygmens būsenas) yra vaizduojami kaip vidiniai perėjimai, žymimi tarnybiniais žodeliais “entry” ir “exit” atitinkamai, tačiau tai nėra tikri vidiniai perėjimai.Perėjimas iš būsenos atgal į tą pačią būseną (perėjimas į save) taip pat nėra vidinis perėjimas

213 Kas vadinama sudėtine (įdėtine) būsena? Kokia tokių perėjimų paskirtis? Kaip jos modeliuojamos būsenų diagramose? (6)

Diagramoms supaprastinti, UML numato sudėtines (įdedamas viena į kitą) būsenas. Šis mechanizmas leidžia pavaizduoti būseną skirtingais abstrakcijos lygmenimis.Būsena gali būti dekomponuota į nuoseklias (IR) arba alternatyvias (ARBA) būsenas.

214 Kas vadinama įvykiu? Kokiems tikslams jie naudojami modeliuose? Kaip jie modeliuojami būsenų diagramose? (6)

Įvykis – tai koks nors reikšmingas atsitikimas, galintis iššaukti perėjimą iš vienos būsenos į kitą.215 Kaip būsenų diagramose yra modeliuojamas šakojimasis? (2)

Perėjimas gali būti padarytas sudėtingesniu, įvedant sąlygos žymenų medį. Tai ekvivalentu paprastų perėjimų rinkiniui (jį sudaro to medžio atkarpos), kuriame kiekvienas perėjimas pažymėtas visų sąlygų konjunkcija.

216 Kas vadinama būsenos istorijos indikatoriumi? Kam jų reikia? Kaip jie modeliuojami būsenų diagramose? (4)

Perėjus į indikatorių vedančiu perėjimu, yra atkuriama indikatoriaus kompleksinėje srityje (t.y. įskaitant visas būsenas, iš kurių galima pereiti į indikatorių) objekto turėta paskutinė būsena; pereinant į atkurtą būseną, yra atliekami visi veiksmai, kuriuos reikia atlikti pereinant į tą būseną. Indikatorius ‘H’ atkuria to paties lygmens būsenas.Greta paviršinio būsenos istorijos indikatoriaus galima naudotis ir giluminiu būsenos istorijos indikatoriumi. Jis žymimas ‘H*’. Jis atkuria indikatoriaus kompleksinėje srityje objekto turėtą paskutinę bet kurio lygmens būseną.Būsenos srityje gali būti abu, paviršinis ir giluminis, istorijos indikatoriai.Indikatoriaus galiojimo sritis yra būsenos sritis, kurioje jis pavaizduotas. Į indikatorių gali būti pereinama pagal perėjimus iš bet kurio būsenų skaičiaus. Iš indikatoriaus gali išeiti ne daugiau kaip vienas žymės neturintis perėjimas; jei į būsenos sritį niekuomet nebuvo įeita, šis perėjimas identifikuoja nutylimą “ankstesnę būseną”.

217 Kaip būsenų diagramose yra modeliuojami konstruktoriai ir destruktoriai? (4)

Pranešimo pavadinimo vietoje nurodomas <> (konstruktoriui) arba <> (destruktoriui)218 Išvardinkite veiklos diagramos elementus ir paaiškinkite kaip jie vaizduojami. (5)

Būsenos* pradinė (juodas rutuliukas) * veiksmo (staciakampis apvaleis kampais) * galinė (juodas rutuliukas apvestas juoda linija)Šakojimas (branching)* nuoseklus šakojimas (sprendimo priėmimas) * iššakojimas (fork) * sujungimas (join) * suliejimas (merge)Atsakomybės juostos (swimlines) Veiklos Objektai (kvadratas)* už veiksmą atsakingas objektas * objektų srautas * objekto būsena

46

Page 47: PSI egzamino atsakymai

47

Perėjimai (rodyklės)PaketaiPastabos (tekstas su linija jungianti komentuojama objekta, burbuliukas linijos gale)Valdančiosios piktogramos* signalo siuntimas * signalo gavimas * atidėtas įvykis * laiko įvykis

219 Kokia yra veiklos diagramų paskirtis? (4)

Veiklos diagramos – tai būsenų diagramų porūšis, skirtas parodyti veiklos būsenų (būsenų, kuriose kas nors yra padaroma) sekas.* Apskritai, veiklos diagrama yra Petri tinklas, tačiau dažniausiai tai yra paprastesnis atvejis, būtent, baigtinė būsenų mašina. * Šiose diagramose dėmesys sutelkiamas į valdymo ir objektų srautus, kuriamus atliekant vidinį apdorojimą (o ne išorinių įvykių pasekmėje, kaip būsenų diagramose). * Diagramoje galima parodyti lygiagrečias bei nuo sąlygų priklausančias elgsenas. * Dažniausiai veiklos diagrama aprašo kokios nors klasės objektų kitimą (pvz., juos apdorojant verslo sistemoje) arba kokios nors užduoties ar operacijos realizavimo būdą.

220 Kas vadinama veiksmo būsena? Kokiems tikslams naudojamos tokios būsenos? Kaip jos modeliuojamos veiklos diagramose? (3)

Terminas veiksmo būsena yra trumpinys, kuriuo apibūdinamos būsenos, slepiančios savyje kokį nors vidinį veiksmą ir turinčios bent vieną perėjimą į kitą būseną, inicijuojamą išreikštiniu būdu nespecifikuoto vidinio veiksmo baigimo įvykio (jei perėjimai yra sąlyginiai, jų gali būti keli). Veiksmo būsenos žymimos stačiakampiu su užapvalintais galais. Veiksmas aprašomas žymens viduje* Nereikalaujama, kad veiksmas diagramoje būtų unikalus.

221 Kam veiklos diagramose yra reikalingi sprendimų priėmimai ir kaip jie yra modeliuojami? (3)

Jei perėjimai priklauso nuo ant apdorojamo objekto užduotų predikatų, diagramoje turi būti numatytas sprendimo, kurį perėjimą parinkti, priėmimas.* Sprendimo priėmimą galima pavaizduoti pažymint perėjimus atitinkamomis *sąlygomis (kaip būsenų diagramose). * Sprendimo priėmimą taip pat galima pavaizduoti rombu, į kurį įeina vienas ar daugiau lankų ir iš kurio išeina du ar daugiau lankų, pažymėtų atitinkamomis sąlygomis, nepriklausančiomis nuo išorinių įvykių. * Atitinkamos šakos pabaiga taip pat gali būti pažymėta rombu.

222 Kaip veiklos diagramose yra modeliuojamas šakojimasis? (2)

Iššakojimas parodo, kad paprastas perėjimas į būseną iššaukia kelis perėjimus iš tos būsenos. Jie vyksta lygiagrečiai. Jei veiklos turi būti sinchronizuotos, reikalingas sujungimas sujungiantis iššakojimo išskaidytą valdymo srautą. Iššakojimas reikalingas tuomet, kuomet paprastas perėjimas išsišakoja į kelias šakas. Šakos turi būti pažymėtos nepersikertančiomis sąlygomis, leidžiančios parinkti vieną ir tiktai vieną iš jų.

223 Kas vadinama atsakomybės juostomis? Kokia jų paskirtis? Kaip jos modeliuojamos veiklos diagramose? (3)

Veiksmai gali būti grupuojami į atsakomybės juostas (swimlanes)Atsakomybės juosta - tai tam tikra paketo rūšis, skirta organizuoti atsakomybes už veiklas klasės viduje.* Atsakomybės juostos verslo modelyje dažniausiai sutampa su organizaciniais padaliniais.

47

Page 48: PSI egzamino atsakymai

48

* Veiklos diagrama gali būti padalinta į “atsakomybės juostas”, juostos viena nuo kitos skiriamos ištisinėmis vertikaliomis linijomis. * Kiekviena atsakomybės juosta apima atsakomybę už dalį diagrama aprašomų veiklų ir gali būti įgyvendinta vienu ar keliais objektais.

224 Kas tai yra veiksmų ir objektų srautai? Kaip jie modeliuojami veiklos diagramose? (4)

Veiklas realizuoja objektai, jos manipuliuoja objektais. Yra dvi objektų rūšys:* Objektai, atsakingi už veiksmo vykdymą. * Objektai, kurių reikšmes veiksmas naudoja arba sukuria. Pastarieji modeliuojami pranešimais siuntinėjamais tarp objekto, kurio pokyčius modeliuoja diagrama, ir objektų, kurie yra naudojami kaip diagramoje modeliuojamų veiksmų įeiga ar išeiga.Objektai (vaizduojami stačiakampiais), pereina iš veiksmo į veiksmą punktyrinių rodyklių pagalba. Tas pats objektas dažniausiai naudojamas kaip vieno veiksmo išeiga ir vieno ar daugiau veiksmų įeiga.

225 Kas tai yra valdančiosios piktogramos? Kokiems tikslams jų reikia? Kaip jos naudojamos veiklos diagramose? (6)

Panaudojant valdančiąsias piktogramas, galima užduoti tam tikrą su perėjimais siejamą informaciją.* Signalo gavimas: Žymimas įgaubtuoju penkiakampiu, gautu trikampį iškerpant iš stačiakampio. Signalo signatūra rašoma penkiakampio viduje.(pacman.. tik kampuota galva.. :)) * Signalo siuntimas: Žymimas iškiliuoju penkiakampiu, gautu sujungus stačiakampį ir trikampį. Signalo signatūra rašoma penkiakampio viduje. * Laiko įvykiai: Tai kalendoriniai įvykiai, įvykus kuriems turi būti pradėti vykdyti koks nors veiksmas ar kokia nors veikla.vazduojamas dviem trikampiais (smelio laikrodzio pavidalas.)

226 Išvardinkite komponentų diagramos elementus ir paaiškinkite kaip jie vaizduojami. (5)

Komponentai (staciakampis, su dveim mazasi pailgais saciakampeleis gulinciaiis ant didelio staciakampio kairiosios linijos)* Sistemos išdėstymo mazgai (deployment nodes) * Interfeisai * Priklausomybės * Paketai * Pastabos * Ribojimai

227 Kokia yra komponentų diagramų paskirtis? (4)

Komponentų diagrama parodo iš kokių fizinių komponentų yra sudaryta sistema. Komponentas: PĮ vienetas, kuris turi būti išskirstytas* pradinio kodo komponentas, * vykdymo meto komponentas, * vykdomasis komponentas.Kad būtų galima parodyti, kokie komponentai kokiame tinklo mazge (kompiuteryje) vykdomi, komponentų diagramose leidžiama kombinuoti sistemos išdėstymo mazgus ir komponentus.

228 Kas vadinama komponentu? Kaip komponentų diagramose yra modeliuojami komponentai? (4)

Komponentai - tai vykdomi kodo blokai, teikiantys vieną ar daugiau paslaugų, kiekviena iš kurių per paprastą interfeisą pateikia tam tikrą funkcionalumą. Interfeisai išlieka nepakeisti net ir tuomet, kuomet paslaugos teikiamas funkcionalumas pakinta. Komponentų diagramose vaizduojami tik tipai, ne konkretūs komponentų egzemplioriai.

229 Kuo skiriasi komponentų modeliavimas komponentų ir išdėstymo diagramose. (4)

48

Page 49: PSI egzamino atsakymai

49

išdėstymo diagramos parodo fizinius PĮ ir TĮ komponentų sąryšius, kur yra patalpinti išskirstytos sistemos komponentai. tuo tarpu komponentų diagramose parodomi loginiai risiai, kvietimai, per interfeisus.

230 Kas vadinama sistemos išdėstymo mazgu? Kaip komponentų diagramose yra modeliuojami tokie mazgai? (4)

Išdėstymo mazgas vaizduojamas staciakalmiu, jame dedami komponentai fizishkai ja mpriklausantys. pvz mazgas gali būti : web serveris, jo viduje guli komponentai: IIS servise.

231 Kuo skiriasi sistemos išdėstymo mazgų modeliavimas komponentų ir išdėstymo diagramose? (4)

Čia pusė beveik iš lempos Išdėstymo:* Mazgai vaizduoja tik vykdymo metu egzistuojančius komponentus. Šitas tai biškį iš lempos * Kokią nors sistemos dalį vykdantis vienetas, paprastai, kompiuteris ar kokia nors kita techninė įranga. * Mazgų viduje gali būti parodyti komponentų egzemplioriai; taip parodoma, kad komponentas yra patalpintas tame mazge arba jame veikia.Gal labiau tiktų, kad komponentų diagramoje nurodoma statinė struktūra (tipai), o išdėstymo - dinaminė (egzemplioriai, kurių vardai pabraukiami objektas:komponentas)

232 Paaiškinkite kuo skiriasi komponentai ir paketai. (4)

Paketai* Naudojami struktūrizuoti UML modelius. * UML pradinio teksto blokas.Komponentai* “Fizinė, keičiama modeliuojamos sistemos dalis, įgyvendinanti tam tikrą interfeisų rinkinį ir tenkinanti tais interfeisais apibrėžtus reikalavimus”, Pavyzdžiai:COM+ komponentai, CORBA komponentai, .NET komponentai, Java Beans...

233 Paaiškinkite kuo skiriasi komponentai ir klasės. (4)

Ir klasės, ir komponentai turi pavadinimus ir realizuoja interfeisus. Klasė* Loginė abstrakcija. * Atributų ir operacijų agregatas.Komponentas* Fizinis daiktas realiai egzistuojantis kompiuteryje. * Fiziškai pakuoja logines abstrakcijas (klases, interfeisus, …) * Turi tik operacijas (pasiekiamas per komponento interfeisą).

234 Išvardinkite išdėstymo diagramos elementus ir paaiškinkite kaip jie vaizduojami. (5)

* Sistemos išdėstymo mazgai * Jungtys (connections) * Komponentai * Interfeisai * Priklausomybės * Apibendrinimo ryšiai * Paketai * Pastabos * Ribojimai * Asociacijos * Agentai

235 Kokia yra išdėstymo diagramų paskirtis? (4)

49

Page 50: PSI egzamino atsakymai

50

Išdėstymo diagrama parodo, kaip kompiuterių tinkluose fiziškai išdėstomi sukurtos sistemos komponentai, t.y. parodo, kokia techninė įranga naudojama sistemai vykdyti ir kaip visa tai yra susieta į vieną visumą* Sistemos išdėstymo mazgas - kokią nors sistemos dalį vykdantis vienetas, paprastai, kompiuteris ar kokia nors kita techninė įranga. * Jungtis - mazgų jungtys parodo sistemos komunikavimo maršrutus (interaction paths).Parodo vykdymo metu veikiančios kompiuterinės sistemos konfigūraciją ir ten veikiančius programinius procesus* Diagrama parodo kaip sistema yra išdėstyta tinkluose. * Ji parodo fizinius PĮ ir TĮ komponentų sąryšius. * Ji parodo kur yra patalpinti išskirstytos sistemos komponentai.

236 Kas vadinama komponentu? Kaip komponentai yra modeliuojami išdėstymo diagramose? (4)

Komponentai - tai vykdomi kodo blokai, teikiantys vieną ar daugiau paslaugų, kiekviena iš kurių per paprastą interfeisą pateikia tam tikrą funkcionalumą. Interfeisai išlieka nepakeisti net ir tuomet, kuomet paslaugos teikiamas funkcionalumas pakinta.Išdėstymo diagramose vaizduojami konkretūs komponentų egzemplioriai.

237 Kas vadinama sistemos išdėstymo mazgu? Kaip sistemos išdėstymo mazgai yra modeliuojami išdėstymo diagramose? (? (4)

Išdėstymo mazgai - mazgai, vaizduojantys komponentų egzemplioriusMazgas – tai vykdymo meto fizinis objektas naudojamas kaip vienas iš vykdančiosios sistemos resursų. Jis turi teikti bent jau atmintį, tačiau dažniausiai pateikia ir kokį nors procesorių. Mazguose gali būti ne tik skaičiuojamieji resursai, įskaitant mechaninius, bet ir žmogiškieji. Mazgai gali vaizduoti tiek tipus, tiek ir egzempliorius.`

238 Kas vadinama sistemos išdėstymo mazgų jungtimi? Kaip tokios jungtys yra modeliuojamos UML™ kalbos priemonėmis? (4)

Mazgų jungtys parodo sistemos komunikavimo maršrutus (interaction paths).Mazgai gali būti jungiami su kitais mazgais asociacijomis. Asociacijoms galima nurodyti rūšis, apibūdinančias komunikavimo maršruto pobūdį.

239 Išvardinkite paketų diagramos elementus ir paaiškinkite kaip jie vaizduojami.. (3)

* Paketai * Priklausomybės * Pastabos * Ribojimainepaaiškinta, kaip naudojami

240 Kokia yra paketų diagramų paskirtis? (4)

Paketų diagramos skirtos modeliuoti fizinius objektinių sistemų aspektus. Diagramoje parodoma paketų rinkinio organizacija ir priklausomybės tarp paketų.

241 Kas UML™ kalboje yra vadinama paketu? Kam naudojami paketai? Kaip jie vaizduojami UML™? (3)

Turinti pavadinimą konstrukcija, apjungianti kokį nors UML konstrukcijų (įskaitant kitus paketus) į vieną visumą.Priklausomybės sąršiai tarp paketų - atsiranda tuomet, kuomet yra priklausomybė tarp kokių nors tų paketų klasių.

242 Kaip aprašomas paketo elementų matomumas paketo išorėje? Kokios yra matomumo rūšys? (2)

50

Page 51: PSI egzamino atsakymai

51

Paketo elementų matomumas iš paketo išorės aprašomas nurodant prieš elemento vardą matomumo žymenį:* ‘+’ (public), * ‘-’ (private), * ‘#’ (protected).

243 Kas vadinama paketo prieigos maršrutu? Kokiems tikslams ir kaip yra naudojami prieigos maršrutai? (2)

Prieigos maršrutas (pathname) nusako kaip, pradedant nuo sistemos šakninio paketo (arba nuo kurio nors kito taško) prieti iki norimo modelio elementoPrieigos maršrutą sudaro paketų vardai, skiriami vienas nuo kito ženklu ‘::’

244 Kas UML™ kalboje yra vadinama pastaba? Kokiems tikslams yra naudojamos pastabos? (2)

Specialus grafinis žymuo, kuriame galima pateikti tekstąir kitokią informaciją.Tekstas gali aprašyti ribojimus, komentarus, metodo kūną arba žymėtasias reikšmes.Pastabos su jose aprašomu modelio elementu (objektu, ryšiu ir kt.) susiejama specialiu pastabos ryšiu.

245 Kokiems tikslams UML™ yra naudojami ribojimai? Kaip užrašomi ribojimai? Kas tai yra OCL? (4)

Ribojimai – tai taisyklės, aprašančios ką galima ir ko negalima daryti. Ribojimai aprašo prasminius modelio elementų ryšius arba, kitaip tariant, teiginius bei predikatus, kurie privalo būti teisingi. Jei taip nėra, modeliuojama sistema tampa nekorektiška. UML neapima tokių pažeidimų pasekmių vertinimo.Kai kurie ribojimai (pavyzdžiui, “or” ribojimas asociacijoms) yra apibrėžti pačioje UML, kitus turi apibrėžti modeliuotojas.Ribojimai visuomet užrašomi skliausteliuose ({}).Ribojimus galima aprašyti laisvos formos tekstu arba specialiai tam skirta objektinių ribojimų aprašymo kalbaOCL (object constraints language)Su atitinkamu modelio elementu ribojimas susiejamas pastabos ryšiu.

246 Kas UML™ yra vadinama konstrukcijos rūšimi? Kam UML™ reikalingos konstrukcijų rūšys? (2)

Rūšis (stereotype) apibrėžia naują UML konstrukcijų klasę, kuria galima naudotis tame modelyje, kuriame ji apibrėžta.Galima apibrėžti tik kokios nors jau egzistuojančios konstrukcijų klasės poklasį. Dažniausiai poklasio konstrukcijos nuo klasės konstrukcijų skiriasi jų panaudojimo taisyklėmis. Tokios konstrukcijos gali turėti papildomus ribojimus.Rūšys (stereotypes) yra vienas iš UML plėtros mechanizmų.Rūšis užrašoma tarp prancūziškų kabučių

247 Kokiems tikslams UML™ yra naudojami savybių sąrašai? Kas vadinama žyme? žymėtąja reikšme? (3)

Savybė – tai su UML konstrukcija susieta reikšmė; ji gali būti užduota metamodelio atributu, asociacija arba žymėtąja reikšme (tagged value). Beveik visoms UML konstrukcijoms kalboje jau yra apibrėžtos tam tikros savybėsŽymėtoji reikšmė – tai pora “vardas=reikšmė” (vardas vadinamas žyme (tag)). Ją galima apibrėžti bet kuriai UML konstrukcijai.Panaudojant žymėtųjų reikšmių mechanizmą galima apibrėžti papildomas savybes

51