Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Programų sistemų inžinerija
2 – 4 paskaitos Inžinerija, sistemų inžinerija,
programų sistemos
Skaidrės paruoštos remianti prof. A.Čaplinsko medžiaga
Planas
Menas, amatas, mokslas ir inžinerija
• Kas yra menas? Ar galima programinę įrangą traktuoti kaip “estetinį objektą“? Programinės įrangos traktuotės kaip meno formos trūkumai.
• Amatas ir amatininkai. Kas yra amatas? Programinės įrangos kūrimas kaip amatas. Amatas ir grupinis darbas.
• Kas tai yra mokslas? Programavimas kaip mokslas.
• Kas tai yra inžinerija? Programinės įrangos kūrimas kaip inžinerinė veikla. Inžinierius kaip profesija. Inžinerija ir mokslas. Inžinerija ir amatas. Dokumentavimas. Projektavimas. Technologinis procesas.
2
Planas
Sistemos ir sistemų inžinerija
• Kas vadinama sistema? Natūraliosios ir dirbtinės
sistemos. Modelis. Interesų sritis, aplinka, kontekstas,
reikalavimai, interfeisai, architektūros, architektūros
projektavimas, elgsenos projektavimas
• Kas vadinama sistemų inžinerija? Technologinis sistemų
inžinerijos procesas. Projektas ir projekto vadyba.
Sistemos gyvavimo ciklas. Įgyvendinamumo analizė.
Suinteresuotieji asmenis. Reinžinerija. Atvirkštinė
inžinerija.
3
Planas
Įmonių sistemų inžinerija
• Įmonė ir įmonės sistema, darbų srautai, verslo sistema, verslo procesas
• Verslo inžinerija, verslo procesų reinžinerija
• Informacinė sistema: samprata, duomenys ir informacija, komponentai; IS inžinerija
• Programų sistema, programų sistemų kūrimas, programų sistemų inžinerija, IS inžinerija ir PS inžinerija, programavimas ir programų sistemų inžinerija, įmonių sistemų inžinerija.
4
Pagrindinis klausimas
• 1944-1960: Programinės įrangos kūrimas traktuojamas kaip
taikomosios matematikos šaka (vėliau: teorinė informatika)
– Ar tikrai programinės įrangos kūrimas yra mokslo šaka?
• 1960-1968: Programinės įrangos kūrimas traktuojamas kaip tam
tikra amato ar netgi meno rūšis
– Ar tikrai programinės įrangos kūrimas yra tam tikras
amatas?
– Ar tikrai programinės įrangos kūrimas yra tam tikra meno
rūšis?
• Po 1968: Programinės įrangos kūrimas traktuojamas kaip inžinerijos
rūšis
– Ar tikrai programinės įrangos kūrimas yra tam tikra
inžinerijos rūšis? 5
Pagrindinis klausimas
• Kas per veikla yra programų sistemų kūrimas?
Ar tai menas, mokslas ar inžinerinė veikla?
– Ar programų sistemas kuriančius žmones reikia
licencijuoti, kaip tai yra daroma su kitų šakų
inžinieriais?
6
Problema • Požiūris į tai, kokio pobūdžio veikla mes užsiimame,
apsprendžia tai, kokią programų sistemų konstravimo
metodika reikėtų naudotis:
– supaprastintos (lightweight) metodikos pabrėžia amato
aspektą;
– loginis (formalusis) požiūris pabrėžia mokslinį aspektą;
– sudėtingos (heavyweight) metodikos pabrėžia inžinerinį
aspektą.
7
Menas ir amatas • Menai ir amatai apima platų spektrą užsiėmimų bei
pomėgių, susijusių su įvairių daiktų darymu rankiniu
būdu, pasinaudojant asmeniniais įgūdžiais bei
mokėjimais.
• Amatai yra skirstomi į "tradicinius" (daiktų darymas
tradiciniais būdais) ir kitus.
– Kai kurie amatai praktikuojami šimtmečiais, kiti
yra naujųjų laikų išradimas.
9
Menas
3 tema 10
Guseppe
Arcimboldo
Vasara (1573),
portretas iš
daržovių, Luvras
Komponentinė inžinerija?
Menas • “Sąmoningo įgūdžių ir kūrybinės vaizduotės
panaudojimo procesas, ypač, gaminant
estetinio gėrėjimosi objektus”
Merriam-Webster OnLine
Yra du požymiai, skiriantys meną nuo kitų veiklų:
• kūrybinis veiklos pobūdis
• estetinė kuriamojo objekto vertė.
11
Menas • Ar galima traktuoti programinę įrangą kaip "estetinio
gėrėjimosi objektą“?
– Nuo pat pačios programavimo eros pradžios tam tikras
žmonių skaičius manė, kad taip. Programos kodas jiems
buvo "estetinio gėrėjimosi objektas“.
– Programuotojai neretai koduoja algoritmus naujais būdais
vien tik dėl “estetinių tikslų", kartais netgi paprasčiausios
operacijos, reikalaujančios fiksuoto vykdymo laiko, yra
įgyvendinamos taip įmantriai, kad jų vykdymo laikas tampa
polinominiu.
12
Menas • “Kas tai yra teorinė informatika (computer science)?
Kas skiria ją nuo kitų disciplinų, su kuriomis ji yra susijusi? Kas gi ta jungianti gija, susiejanti skirtingus dalykus į vieną discipliną? Mano atsakymas paprastas: tai menas programuoti kompiuterį. Tai menas projektuoti programas efektyviais ir elegantiškais būdais sprendžiančias teorinius ir praktinius, didelius ir mažus, paprastus ir sudėtingus uždavinius”
C.A.R. (Tony) Hoare
13
Menas • Taigi, kai kurie programuotojai ir netgi informatikos srities
mokslininkai traktuoja programų kūrimą kaip individualų
kūrybinį darbą.
• Tokie programuotojai nesiekia rašyti programas taip, kad jas
būtų galima tiražuoti dideliais tiražais, lengvai perdirbti jas į
naujas programas ar pasinaudoti jų sugalvotais sprendimais.
Jie siekia originalumo.
• Tokiems programuotojams programos yra meno kūriniai,
kuriami dėl jų pačių estetinės vertės.
• Vienok, visuomenei reikia ko kito. Jai reikia lengvai
panaudojamų ir lengvai perprantamų inžinerinės veiklos
gaminių, kurie tenkintų jos funkcinius poreikius ir palengvintų
kasdieninį gyvenimą 14
Menas • Taigi, programavimą galima suvokti kaip meno rūšį.
Tačiau:
– tokių meno kūrinių rinka yra labai maža (tik
programuotojai geba skaityti kodą ir tik labai kvalifikuoti
ekspertai gali įvertinti jo estetinę vertę)
– programavimui kaip menui yra būdingi tie patys trūkumai
kaip ir kitoms meno rūšims: iš to beveik neįmanoma
pragyventi ir, ypač programavimo atveju, mažai tikėtina
rasti kokį nors mecenatą, remiantį tokią veiklą
15
Amatas
16
Marilyn Fromherz. Šilkinis švarkas,
išaustas iš dvigubai
perpintų šilko gijų)
Kas tai? Menas,
konstravimas ar
amatas? Viskas iš
karto!
Amatas
17
Menas ar amatas? Abu!
Darius Dailininkas, Raudonoji
Pelike figūra, 340 - 330 metai
prieš mūsų era, neglazūruotas
molis, 24 colių aukštis, J. Paul
Getty Museum
Amatas • Amatas - tai įgūdžių ir išmanymo naudojimas,
kūriniams ar konstrukcijoms kurti.
– tam tikrų įgūdžių reikalaujanti praktinio pobūdžio
veikla.
• Amatininkas – asmuo, turintis specialius
mokėjimus ir įgūdžius, reikalingus kokiam
nors amatui (kalvis, siuvėjas, mūrininkas ir
pan.)
18
Amatas • Daugumai amatų reikia įgūdžių ir talento, tačiau bet kurio
amato pagrindų gali išmokti praktiškai kiekvienas
• Pramoninė revoliucija ir nuolat didėjanti gamybos procesų mechanizacija palaipsniui sumažino ar iš viso eliminavo įgudusių amatininkų poreikį ir šiandien amatai dažniausiai praktikuojami dėl pomėgio.
• Terminu amatas taip pat apibūdinama tokių meno kūrinių
darymas, kurie yra techninio pobūdžio, kuriami rankiniu būdu, panaudojant specialią įrangą, ir kuriems sukurti reikalingos sunkiai formalizuojamos specialaus pobūdžio žinios bei įgūdžiai.
19
Amatas Menas ir amatas
– Menas paprastai siejamas su tik estetinę vertę turinčių
daiktų kūrimu.
– Amatas yra siejamas su praktinį panaudojimą turinčių
daiktų darymu.
– Abiems reikalingas kūrybiškumas ir įgūdžiai, o taip pat tam
tikros žinios.
– Taigi, abiejų mokomasi panašiai: praktikuojamasi, kad įgyti
įgūdžius, skaitoma literatūra, reikalingas meistras,
duodantis nurodymus ir taisantis klaidas .
20
Amatas Menas ir amatas
– Skirtumai išryškėja, pradėjus nagrinėti tikslus:
• Menas siekia estetinių tikslų
• Amatas siejamas su praktinėmis reikmėmis, kas riboja
kūrybos laisvę
• Amatininkai dažniausiai dirba pagal užsakymus
21
Amatas • Programinės įrangos kūrimas kaip amatas dažniausiai
praktikuojamas mažuose kolektyvuose.
– Tai būdinga ir kitoms šakoms. Automobilių pramonė tapo
tokia, kokia ji yra šiandien, tik todėl, kad Fordas nuėjo nuo
amato.
• Darbas paprastai daromas naudojantis supaprastintomis
metodikomis.
– mažuose kolektyvuose svarbiausią vaidmenį vaidina
tiesioginis tarpusavio bendravimas, kuris yra efektyvesnis
už formalizuotą bendravimą naudojant dokumentus, tačiau
yra neįmanomas dideliuose kolektyvuose.
22
Amatas • Mažuose kolektyvuose paprastai susitariama apie
galutinį produktą (programos kodą) ir nesukama sau
galvos dėl brėžinių, formalumų ir pan.
– Tai labai primena amatininko darbą. Jis išmano savo darbą,
supranta apie medžiagas ir instrumentus ir gali imtis
užsakymo be kokių nors tyrimų ar formalumų.
– Tai, kad jis gerai žino visas galimas nesėkmes, padeda jam
išvengti nesklandumų ir apsisaugoti nuo nesėkmių.
23
Amatas
Amato ypatumai:
– Amatininko talentas
– Intuicija ir grubi jėga
– Atsitiktinė sėkmė
– Mokymas prie progos
– Individualus gaminių naudojimas
24
Mokslas • “Žinios arba žinių sistema apie bendrąsias
tiesas arba apie bendruosius dėsnius,
paprastai gautus ir patikrintus, panaudojant
mokslinį metodą”
Merriam-Webster OnLine
– mokslas “maitina" inžineriją ir, mažesniu mastu,
amatą bei meną
25
Mokslas • Programinės įrangos tyrimai be abejo gali būti mokslo dalis
– Yra tokių fundamentinių tyrimų, tiek teorinės informatikos,
tiek ir grynosios matematikos srityse (tam tikra prasme,
programavimas yra taikomosios matematikos šaka, nes
programinę įrangą galima aprašyti grynai matematiniais
terminais)
– Teorinės matematikos tyrimai yra gana perspektyvūs
programų našumo, patikimumo ir kai kuriose kitose panašaus
pobūdžio tradicinės inžinerijos nagrinėjamose srityse;
– Yra ir šiek tiek įdomių inovatyvių tyrimų (objektinis
programavimas, RISC architektūros, funkcinės kalbos ir kt.).
26
Mokslas
Mokslo ypatumai:
– Gabūs, mokyti žmonės
– Detalios teorijos
– Uždara bendruomenė
– Rezultatai tiesiogiai nesiejami su ekonomika
– Nedidelio masto eksperimentai
27
Mokslas ar inžinerija? • “Profesionali programavimo praktika turi būti
grindžiama matematinėmis teorijomis ir
perimti geriau susiformavusių inžinerijos šakų
tradicijas. Sėkmės galima tikėtis tik tobulinant
mokymą”
28
C.A.R. Hoare, 1984
Inžinerija
30
Šoninė nava: ilga,
siaura erdvė kurioje
nors bažnyčios
pagrindinės navos
pusėje, paprastai, tarp
kolonų arba piliorių ir
išorinės sienos.
Inžinerija
Išskyrus gamtos kūrinius, viskas, kas mus supa, yra
suprojektuota žmonių.
Projektavimas - pagrindinis inžinerijos uždavinys.
32
Inžinerija • Termino „inžinerija“ etimologija
– Kilęs iš lotyniško ingenium, reiškia kažką
panašaus į genealią idėją, genialumo blyksnį
– Terminas sukurtas 16-ame amžiuje.
Inžinieriais vadinti žmonės, kuriuos mes
vadintume menininkais išradėjais.
33
Inžinerija Inžinerija t.y.:
– mokslo, formalių metodų, įrankių ir turimos patirties panaudojimas suprojektuotiems objektams kurti (gaminti).
– mokslo žinių ir klaidų ir bandymų metodo panaudojimas sistemoms projektuoti
– Ko nors, ką bet kuris kvailys (ar daug tokių aplinkui?) gali padaryti už du dolerius, padarymas už vieną dolerį ir geriau.
34
Inžinerija
• Inžinerija padeda masiškai gaminti tai, ką gali padaryti ir amatas (mastelis).
• Daugumoje atveju “mokslo ir matematikos" naudojimas inžinerijoje nepadeda žmonijai padaryti ką nors naujo, bet tik padaro gaminamus gaminius prieinamus visiems.
• Inžinieriai tai tie, kas mokslo atradimus paverčia masinės gamybos metodais.
35
Inžinerija • Sėkmę inžinieriams užtikrina tikslumas ir smulkmeniškumas:
– Jei amatininkas gali klaidžioti, bandyti, suklysti ir vis tik padaryti kokybiškus daiktus, tai inžinierius tokios prabangos neturi: su gamybos linija negalima eksperimentuoti; Arba viskas dirba kaip reikia, arba įvyksta žlugimas.
• Griežtumas ir mastas pasiekiami ne už dyką: tai pasiekiama neformalius darbo metodus keičiant (dažniausiai, brangiais) formaliais metodais ir tiesioginį bendravimą keičiant tomais rašytinių dokumentų, aprašančių darbo procedūras, standartus, gaminių projektus, planus ir kt.
36
Inžinerija • Dideli programuotojų kolektyvai naudoja sudėtingas,
gremėzdiškas programų kūrimo metodikas, panašias į
tas, kurios yra naudojamos kitose inžinerijos srityse:
– dokumentai rengiami, tikrinamas jų korektiškumas ir
kokybė, jie “paleidžiami į darbą”.
– Jei mažų “amatininkiškų" kolektyvų projektiniai
sprendimai paslėpti programos kode, tai didelių
“inžinerinių" kolektyvų projektiniai sprendimai yra
dokumentuoti specialiuose dokumentuose.
37
Inžinerija
Inžinierius kaip licencijuota profesija:
– Visuomenė turi būti apsaugota nuo pavojų
– Inžinieriai projektuoja artefaktus, naudodami
pasiteisinusias praktikas, grindžiamas mokslu,
matematiniais ir ekonominiais skaičiavimais
– Svarbūs ir etiniai profesijos aspektai
38
Inžinerija
• Profesionalių inžinierių veikla – tai licencijuota veikla, reguliuojama tiek pačios profesinės bendrijos, tiek ir atitinkamų įstatymų:
– Kad gauti profesionalaus inžinieriaus statusą, asmuo turi turėti atitinkamas teorines žinias ir pakankamą praktinio darbo patirtį.
– Paprasčiausias būdas (bet ne vienintelis) įgyti teorines žinias yra baigti universitetą (pvz. VGTU).
– Patirtis ir išsilavinimas turi būti toje pačioje srityje, reikiamą patirtį galima įgyti tik dirbant kartu su kitu profesionaliu inžinieriumi.
39
Inžinerija • Inžinerija ir mokslas
– Mokslas yra griežtesnis už inžineriją. Čia nepakanka vien tik pademonstruoti, kad kas nors veikia (pavyzdžiui, testuojant), bet reikia dar ir paaiškinti, kodėl kas nors veikia taip, kaip jis veikia bei aprašyti tą veikimą taip, kad jį galėtų atkartoti kiti.
– Paaiškinti, kodėl kas nors veikia, yra įmanoma ir moksliniais įrodymais, kurie publikuojami žurnaluose, yra skrupulingai tikrinamas recenzentų, o po to ir daugybės tų žurnalų skaitytojų, tikriausiai yra geriausias būdas tai padaryti.
40
Inžinerija
41
Amatas Inžinerija
Kokybė Priklauso nuo amatininko
talento, patirties ir
sąžinės
Nusakoma kontrakto
reikalavimais, išeinant iš
ekonominio tikslingumo
Sprendimai
Amatininkas remiasi
intuicija. Dažniausiai, jis
negali pasakyti, kokius
sprendimus ir kokia eilės
tvarka priėmė
Inžinierius vadovaujasi
griežtomis taisyklėmis,
nustatančiomis kokius
sprendimus ir kokia eilės
tvarka reikia priimti
Mokymasis
Norint tapti amatininku,
reikia keletą metų pabūti
pameistriu ir padirbėti su
meistru
Kadangi inžinerijos metodai
yra formalizuoti, inžinierius
galima mokyti
universitetuose
Inžinerija • Bet kuri inžinerinė veikla baigiasi vienu ar kitu dokumentu
– Baigus projektuoti, projektinė dokumentacija perduodama į
gamybą.
• Tai visai kiti žmonės, turintys visai kitus mokėjimus ir įgūdžius
negu inžinieriai.
• Jei projektavimo dokumentacija yra išsami ir pakankamai detali,
gaminantis kolektyvas yra pajėgus sukurti (pagaminti) atitinkamą
artefaktą. Iš tiesų, jie, be jokio papildomo projektuotojų
įsikišimo, gali pagaminti daug to artefakto egzempliorių.
42
Inžinerija • Kai inžinierius baigia projektuoti gaminį, kad ir koks
sudėtingas tas gaminys būtų, jis žino, kad gaminys
tikrai veiks numatytu būdu ir yra įsitikinęs, kad tą
gaminį tikrai galima sukurti, panaudojant išbandytus
ir visuotinai pripažintus konstravimo bei gamybos
būdus.
– Tam, kad jis galėtų būti įsitikinęs, inžinierius sugaišta
daugybę laiko tikrindamas savo rengiamos projektinės
korektiškumą, vertindamas ir tobulindamas savo
projektinius sprendimus.
43
Inžinerija
• Panagrinėkime, pavyzdžiui, tilto projektavimą. Projektuodamas tiltą, inžinierius: – atlieka struktūrinę analizę, sukuria pirminę
konstrukciją
– konstruoja kompiuterinius modelius,
– konstruoja fizinius tilto modelius ir atlieka su jais įvairius bandymus.
• Trumpai tariant, projektuotojas daro visą įmanomą, kad įsitikintų savo projekto tinkamumu. Tilto statyba pradedama tiktai po to.
• Programavimo firmos šią inžinerinę tradiciją neretai ignoruoja.
44
Inžinerija
Technologinis procesas: Statybų pavyzdys
1. Užsakovas pateikia architektui (dažniausiai,
neformalizuotus) funkcinius ir nefunkcinius
reikalavimus:
– Pavyzdžiui, statinio kambarių skaičius ir jų funkcinė
paskirtis, suma, kurią jis pasiryžęs išleisti statybai.
– Architektas parengia pirmą, stambaus mastelio statinio
planą ir keletą jo profilio rodinių arba netgi kompiuterinį
statinio modelį, kuris leidžia būsimą pastatą apžiūrinėti
kompiuteryje.
45
Inžinerija
Technologinis procesas: Statybų pavyzdys
3. Jei užsakovas pritaria architekto užmanymui, architektas detalizuoja eskizus ir projektuotojai rengia techninį statinio planą (brėžinius)
• Šis planas aprašo įvairius statinio komponentus, pavyzdžiui, sienas ir langus, ir jų jungimo būdus (statinio konstrukcijos santykį).
4. Po to darbų rangovas skelbia konkursą komponentams įsigyti (sukurti) ir atrenka tinkamiausius pasiūlymus.
46
Inžinerija
Technologinis procesas: Statybų pavyzdys
5. Rangovui pateikiami komponentai ir vienas po kito integruojami (montuojami) į statinį.
Viso proceso eigoje, architekto ir konstruktoriaus parengti brėžiniai yra naudojami kaip dokumentas, padedantis visoms į statybą įtrauktoms šalims susikalbėti, suprasti vieniems kitus ir susitarti.
47
Inžinerija Reziume
• Intuicija yra būtina projektuotojui, bet vien tik jos nepakanka:
– Neturint teoriškai pagrįstų abstrakcijų ir mentalinių modelių, sudėtingesnėse situacijose intuicijos pagrįstiems sprendimams priimti nepakanka.
– Inžinieriui leidžiama vadovautis intuicija tiktai tuomet, kuomet:
• Intuicija yra paverčiama formulėmis ir brėžiniais;
• Ja naudojamasi “standartinių” projektavimo procesų kontekste
48
Inžinerija Reziume
• Inžinerijoje griežtai apibrėžiami “statybiniai blokai”
– Apsibrėžk savo projekto “pasaulį”
– Dirbk su tiksliai apibrėžtomis (pamatuojamomis) bazinėmis savybėmis
– Naudokis metodais, leidžiančiais jas jungti į stambesnius vienetus
– Naudokis atitinkamais instrumentais
49
Inžinerija Reziume
• Aiškūs procesai
– Procesai darantys poveikį struktūrai
– Procesai nusakantys užduočių vykdymą
• Apibrėžta sąveika
– Specifinė kalba (profesinis žargonas)
– Užduočių valdymas
50
Inžinerija
Inžinerijos ypatumai:
– Išlavinti profesionalai
– Analizė ir teorija
– Sėkmę lemia mokslas
– Sisteminis mokymasis (universitete)
– Masinė gamyba
– Racionalumas
51
Inžinerija
52
Inžinerinės
disciplinos
Transporto
inžinerija
Saugos
inžinerija
Kitos tradicinės
Inžinerijos
šakos
Programų
sistemų
inžinerija
Elektros
inžinerija
Procesų
inžinerija
Našumo
inžinerija
Statybos
inžinerija
Žmogiškųjų
veiksnių
inžinerija
Komponentų
inžinerija
Panaudojamumo
inžinerija
Patikimumo
inžinerija
Sistemos apibrėžimas
Sistema – tai visuma, sudaryta iš tarpusavio sąryšiais susietų elementų rinkinio, pasižyminti vientisumo ir funkcionalumo savybėmis, atsirandančiomis būtent dėl elementų susiejimo vienas su kitu.
Komponentas (sandas) – tai sistemos dalis.
Komponentas pats gali būti savarankiška sistema. Tačiau tai gali būti ir atominis elementas (primityvas).
54
Sistema • Sistema – tai kartu veikiančių dalių rinkinys, kuris,
žiūrint iš šalies, atrodo kaip viena visuma ir turi aiškias ribas, išskiriančias tą visumą iš aplinkos.
Pavyzdžiai
• Kompiuterinė sistema (aparatūra + programos)
• Verslo sistema
• Informacinė sistema
• Programų sistema
• Pastatas
• Automobilis
• Įstatymas 55
Sistema • Sistemos komponentai yra sujungti tarpusavyje ir
priklauso vienas nuo kito.
– Pavyzdžiui, žmogaus kūnas – tai sudėtinga naturalioji
sistema.
– Mus supa daugybė dirbtinių sistemų, pavyzdžiui, politinė
sistema, ekonominė sistema, švietimo sistema ir kt.
– Dirbtinės sistemos turi tam tikrą paskirtį, jos visuomet tam
tikrą įeigą paverčia tam tikra išeiga.
56
Sistema Įėjimo duomenys Išėjimas, rezultatai
Sistema
Modelis – tai konkrečią tikslinę paskirtį (analizė, konstravimas, valdymas ir pan.) turintis supaprastintas kokio nors objekto (t.y. kokios nors realaus pasaulio sistemos) atspindys, imituojantis jo elgseną.
Sistemos interesų sritis - tai išorinio pasaulio dalis, įskaitant išorinius ir vidinius sistemos naudotojus, kuri arba daro poveikį sistemai arba pati yra jos veikiama.
57
Sistema Sistemos reikalavimas – tai sutartimi arba kokiu nors
kitu juridinę galią turinčiu dokumentu numatyta
kuriamos sistemos savybė.
– Tai, ko nori iš sistemos užsakovas.
Sistemos aplinka – tai daiktų, esančių sistemos išorėje ir
arba ją veikiančių arba jos veikiamų, visuma.
Sistemos kontekstas - tai tie sistemos aplinkos aspektai,
nuo kurių, kaip manoma, priklauso sistemos sėkmė.
58
Sistema
Sistemos dalykinė sritis – tai sritis, kurioje naudojama
sistema.
Pavyzdžiui automobilio dalykinė sritis yra pervežimai.
Sistemos probleminė sritis - tikslinė sistemos paskirtis.
Pavyzdžiui automobilio probleminė sritis yra krovinių ir
keleivių pervežimo laiko mažinimas.
59
Sistema Sistemos sąsaja - tos funkcinės ir fizinės savybės, kurių
negalima priskirti nei sistemai, nei jos aplinkai (yra ant
ribos).
– Sąsaja – tai kelių esybių sąryšis, pasinaudodamos kuriuo tos
esybės naudojasi bendrais resursais, juos pateikia į išorę arba
jais mainosi.
– Sąsaja nepriklauso nei sistemai, nei jos aplinkai; tai jas
siejantis (paprastai, dinaminis) sąryšis.
60
Sistema
Sistemos architektūra – tai toks sistemos komponentų
organizavimo būdas, kuris įgyvendina sistemos reikalavimus ir
užtikrina jos sąveiką su aplinka.
Architektūrinis projektas – tai sistemos aprašas jos ribojimų,
komponentų ir tų komponentų jungčių (sujungimo būdo)
terminais.
Architektūrinis sistemos projektas – tai koncepcinio lygmens
struktūrinis kuriamos sistemos modelis, sudarytas tam, kad juo
vadovaujantis sistema būtų konstruojama.
61
Sistema
Fizinė sistemos dekompozicija
Projektuojant sistemos architektūrą, ji yra suskaidoma į
komponentus. Tai vadinama fizine sistemos dekompozicija.
Bendruoju atveju, fizinė sistemos dekompozicija yra
hierarchinė, nes sistema pradžioje yra skaidoma į stambius
komponentus (posistemius), po to šie yra skaidomi į
smulkesnius komponentus ir toks skaidymo procesas tęsiamas
tol, kol sistema nėra suskaidoma į neskaidžius bazinius
(primityviuosius) komponentus.
62
Sistemų inžinerija
Sistemų inžinerija – tai tarpdisciplininė inžinerijos
mokslų šaka, kurioje visi sistemos kūrimo klausimai
nagrinėjami labai bendru lygmeniu, atsiribojant nuo
konkretaus sistemos pobūdžio.
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.
63
Sistemų inžinerija
• Jei kitos inžinerinės disciplinos nagrinėja specifinius
konkretaus tipo (elektroninės, transporto, programų ir
t.t.) sistemų kūrimo aspektus, sistemų inžinerija
nagrinėja sistemų kaip tokių kūrimo klausimus.
3 tema 64
Sistemų inžinerija
Procesas – tai struktūrizuota pamatuojamų veiklų visuma, kurios tikslas sukurti tam tikro pobūdžio išeigą (vertę), skirtą konkrečiam klientui arba parduoti rinkoje.
Pavyzdžiai
• Sistemos kūrimo procesas
• Verslo procesas
• Programų sistemos kūrimo procesas
65
Sistemų inžinerija
• Sistemų inžinerija – tai procesas, skirtas transformuoti operacinius vartotojo poreikius ir/arba sistemos reikalavimus į veikiančią sistemą.
Sistemų inžinerija apima veiklas, susijusias su sistemos projektavimu ir projekto įgyvendinimu, įskaitant sistemos komponentų integravimą į vieną visumą.
66
Sistemų inžinerija
67
Bahill and Gissing (1998)
Sistemų inžinerijos procesas
Porei-
kiai Proble-
ma
Alterna-
tyvų
analizė
Siste-
mos
modelia-
vimas
Integra-
vimas
Diegi-
mas
Našumo
mata-
vimai
Verti-
nimai
Verti-
nimai
Verti-
nimai
Verti-
nimai
Verti-
nimai
Verti-
nimai
Proce-
sas ir
produk-
tas
Sistemų inžinerija • Problemos formulavimas pradedamas, aprašant arba
planuojamas sistemos aukščiausiojo lygmens funkcijas, arba tas jau esamos sistemos savybes, kurias reikia pagerinti – Sistemos reikalavimai nusako ką reikia padaryti, bet ne tai,
kaip tai turi būti daroma
– Užsakovas retai kada žino, ko jis iš tiesų nori, juolab, ko jam iš tiesų reikia. Sistemų inžinierius privalo išstudijuoti užsakovo aplinką ir suvokti, kam ir kaip sistema bus naudojama. Jis privalo atskleisti užsakovo poreikius ir suformuluoti sistemos reikalavimus.
68
Sistemų inžinerija • Alternatyvūs sistemos reikalavimų įgyvendinimo
būdai yra modeliuojami. Pasirinktosios alternatyvos modelis yra detalizuojamas ir juo yra naudojamasi visą tolimesnį sistemos kūrimo laikotarpį
– Sistemoms modeliuoti naudojama daug skirtingo pobūdžio modelių: fiziniai modeliai, lygčių sistemos, būsenų mašinos, blokinės schemos, srautų diagramos, koncepciniai modeliai, kompiuteriniai sistemos imitatoriai, mentaliniai modeliai ir kt..
– Sistemų inžinerijos uždavinys yra dvigubas: sukurti produktą ir (prieš tai) technologinį procesą tam produktui kurti. Taigi, tenka modeliuoti ir produktą ir procesą.
69
Sistemų inžinerija • 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ų.
• Užduočių sąrašas naudojamas sistemos darbui
struktūrizuoti.
70
Sistemų inžinerija
3 tema 71
Funkcija Lėktuvo fizinis
komponentas
Paukščio fizinis
komponentas
Pakilimas ir nusileidimas Ratai, slidės arba
pontonai
Kojos
Vietos ir greičio pojutis Radaras, greičio
matuoklis, lakūno
akys
Akys
Navigavimas Kompiuteris,
lakūno smegenys
Smegenys
Horizontalus judėjimas Propeleris, arba
rektyvinė tūta
Sparnai
Vertikaus judėjimas Sparnai Sparnai
Funkcinė ir fizinė sistemos dekompozicija
Sistemų inžinerija • Integravimas – tai komponentų jungimas į vieną
veikiančią visumą, kuriančią reikiamus rezultatus
– Sistemos integravimas (surinkimas) apima ir bandymus,
atliekamus siekiant įsitikinti, kad sistema tikrai tenkins
užsakovo poreikius.
– Integravimo metu taip pat yra konstruojami tiek išoriniai
pačios sistemos, tiek ir vidiniai jos posistemių interfeisai.
Posistemiai turėtų būti kuriami vadovaujantis jų funkcinės
paskirties, o ne kokiais nors techniniais kriterijais.
72
Sistemų inžinerija
• Sistemos paleidimas (launching) – tai pradėjimas naudoti sistemą tiems tikslams, kuriems ji buvo sukurta. 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 matuojami jos rodikliai:
– Pradžioje matavimai atliekami siekiant įsitikinti, kad sistema tenkina jos reikalavimus
– Vėliau tai daroma siekiant aptikti atsiradusius nesklandumus ir pradėti jiems pašalinti reikalingus sistemos priežiūros darbus.
73
Sistemų inžinerija • Pakartotinas vertinimas (re-evaluation) atliekamas
stebint sistemos išeigą ir panaudojant surinktą
informaciją darbui tobulinti, keičiant sistemos įeigą
arba darbo su ja procesą
– Tai bene pati svarbiausioji sistemų inžinieriaus užduotis
– Pakartotinas vertinimas – vienas iš svarbiausiųjų inžinerijos
metodų.
– Šimtus metų inžinieriai naudoja grįžtamąjį ryšį sistemos
veikimui kontroliuoti ir jos našumui didinti.
74
Sistemų inžinerija • Konfigūracijos valdymas atliekamas tikslu kontroliuoti,
vienareikšmiškai įvardinti (identifikuoti) ir registruoti visus sistemos reikalavimų, jos projekto ir realizacijos pokyčius.
– Visi projekto dalyviai turi turėti galimybę vertinti atliktus pakeitimus
– Sprendimai aprobuoti pokyčius turi būti fiksuojami pagrindinį sistemos komplektą (baseline) aprašančioje duomenų bazėje.
– Pagrindinis komplektas “įšaldo” sistemos būseną, įskaitant funkcinius ir našumo reikalavimus, interfeisus, tikrinimų ir bandymų rezultatus, sąnaudas ir t.t.
– Jis gali būti keičiamas tik griežtai nustatytais laiko momentais ir pagal griežtai nustatytas procedūras.
– Tiktai šitaip projekto dalyviai gali būti įsitikinę, kad visi jie dirba su ta pačia kuriamos sistemos versija.
3 tema 75
Sistemų inžinerija
• Projektas – tai griežtai apibrėžtą tikslą (sukurti unikalų produktą, paslaugą) turintis procesas, su tiksliai nustatytomis pradžios ir pabaigos datomis, nustatytu užduočių rinkiniu ir fiksuotu biudžetu.
• Užduotis – tai formaliai apskaitoma atliekamo darbo dalis.
– Užduotis – tai griežtai apibrėžtos apimties darbas, duodantis griežtai nustatytus rezultatus, pavestas atlikti vienam arba keliems projektą vykdančios grupės nariamas.
– Susijusios užduotys paprastai yra grupuojamos į veiklas.
76
Sistemų inžinerija
• Projekto vadyba suprantama kaip 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 procesą.
Vienas iš svarbiausių projekto vadybos uždavinių yra sukurti projekto struktūrą, t.y. suskaidyti kuriamą sistemą į komponentus (aparatūrą, programinę įrangą, duomenis, paslaugas ir kt.) ir su kiekvienu komponentu susieti atitinkamas užduotis ar jų grupes. Struktūra yra hierarchinė. Ji įgalina atlikti užduočių priskyrimą, planuoti ir kontroliuoti terminus bei išlaidas.
Projektų valdymo standartai: PRINCE2, PMBOK 77
Sistemų inžinerija • Rezultatai (deliverable) – tai, ką privalo sukurti ir
pateikti projektas (projekto išeiga): dokumentai, produktai, paslaugos, procesai, savybės.
– Rezultatu gali būti ir kokia nors nauja ar patobulinta organizacijos ar kokio nors proceso savybė.
• Kontroliniai taškai (milestones) – direktyvinės datos (įvykiai), kurioms turi būti gauti griežtai apibrėžti tarpiniais projekto rezultatai.
– Kontroliniai taškai naudojami projekto progresui matuoti.
78
Sistemų inžinerija Sistemos gyvavimo ciklas (lifecycle) – tai laikotarpis
nuo sistemos sumanymo iki jos naudojimo pabaigos
(demontavimo) momento.
– Sistemos gyvavimo ciklas skaidomas į stadijas (phases),
kiekvienai iš kurių numatomi kontroliniai taškai. Tai
padeda planuoti projektą ir kontroliuoti jo vykdymą. Su
stadijomis siejami atitinkami sistemai sukurti naudojami
technologiniai procesai.
• Sistemos gyvavimo ciklą į stadijas galima suskaidyti
daugeliu būdu.
79
Sistemų inžinerija
• Sistemos gyvavimo ciklo modelis – tai
formalizuotas (dažniausiai, grafinis) 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.
3 tema 80
Sistemų inžinerija • Egzistuoja daug skirtingų sistemos gyvavimo ciklo
modelių, pavyzdžiui:
– daryk ir fiksuok
– sinchronizuok ir stabilizuok
– spiralinis modelis
– krioklio modelis
– greito sistemų kūrimo modelis
– evoliucinis sistemos modelis
– pažingsninis (iteratyvus) sistemų kūrimo modelis
3 tema 81
Sistemų inžinerija
3 tema 82
Problemos
formulavimas
Įgyvendinamumo
analizė
Detalūs
tyrimai
Detali
analizė
Detalus
projektavimas
Įgyvendinimas
Peržiūra ir
priežiūra
Sistemos kūrimo
gyvavimo ciklo
modelis
Sistemų inžinerija
83
Poreikiai
Reikalavimų analizė
Funkcijų aprašai
Fizinis projektas
Projekto vertinimas
Sistema
Sistemų inžinerija
• Įgyvendinamumas (feasibility) suprantamas kaip
matas, nusakantis ne tik ar sistemą įmanoma sukurti,
bet ir ar konkrečiai organizacijai yra verta ją kurti.
– Įgyvendinamumo analizė (feasibility study) – tai techninių
ir ekonominių duomenų analizės procesas, atliekamas
tikslu įvertinti sistemos įgyvendinamumo laipsnį.
– Įgyvendinamumo analizė yra labai svarbi bet kurio
inžinerinio projekto dalis.
84
Sistemų inžinerija
• Suinteresuotoji šalis (stakeholder) – bet kuris subjektas
(fizinis arba juridinis asmuo arba kokia nors tokių asmenų
grupė), kuris domisi projekto išeiga ir daro tai arba todėl, kad
projekto resultatai turės jam kokį nors (teigiamą arba
neigiamą) poveikį, arba todėl, kad jis pats nori daryti projektui
kokį nors (teigiamą arba neigiamą) poveikį.
• Užsakovas (customer) –subjektas, kurio poreikius yra
siekiama patenkinti, vykdant projektą, kuris finansuoja
projektą ir vertina bei naudoja projekto rezultatus.
3 tema 85
Sistemų inžinerija Reinžinerija (reengineering) - egzistuojančios sistemos
analizės ir modifikavimo procesas, atliekamas su tikslu
iš esmės pertvarkyti tą sistemą.
Atvirkščioji inžinerija (reverse engineering)
Dirbtinės egzistuojančios sistemos analizės procesas,
atliekamas tikslu atkurti jos projektinę dokumentaciją.
3 tema 86
Sistemų inžinerija Sistemos projekto atkūrimas (design recovery):
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ą.
3 tema 87
Įmonė
Agentas (actor) - funkcinis vienetas 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 arba
palaikyti organizacines struktūras.
3 tema 89
Įmonė
Įmonė (enterprise) - viena ar daugiau organizacijų,
jungiamų bendra paskirtimi, siekiais ar tikslais ir
kuriančių kokią nors bendrą išeigą, pavyzdžiui,
produktą ar paslaugas.
Programų sistemų inžinerijoje terminui “įmonė”
dažnai vadina dideles kompiuterizuotas organizacijas.
3 tema 90
Įmonės sistema
Įmonės sistema – tai tarpusavyje susijusių verslo
sistemų, palaikomų atitinkamų informacinių ir
programų sistemų, rinkinys.
Įmonės sistema apima
– bent vieną verslo sistemą
– ją palaikančias informacines sistemas
– tų informacinių sistemų programinę įranga
3 tema 91
Įmonė ir įmonės sistema
3 tema 92
Įmonė
Organizacija (funkciniai vienetai)
Įmonės IS
Organizaciniai procesai
Palaiko Vykdo
Palaiko
Įmonės
sistema
Verslo sistema
• Verslo sistema – tai būdas, paprastai naudojamas
apjungti į vieną stabiliai funkcionuojančią visumą
viską, ko reikia verslui daryti:
– Žmogiškuosius gebėjimus, žinias
– Finansinius pajėgumus
– Technologijas
Verslo sistema – tai įmonės veikimo būdas, apimantis ir
jos finansinių bei valdymo duomenų apdorojimą.
93
Verslo sistema
94
Tyrimai,
konstravimas Gamyba Marketingas
Pardavimas,
platnimas Paslaugos
APIBENDRINTA VERSLO SISTEMA
•Technologija •Proceso ir produkto
projektavimas •Patentai
•Technologija •Žaliavos
•Galingumai •Patalpos •Pirkimai
•Įkainavimas •Reklama
•Pakavimas •Brendai
•Pardavėjai •Kanalai
•Prekių sąrašas •Sandėliavimas
•Transportavimas
•Garantijos •Greitis
•Pateikimas •Kainos
Verslo sistema
• Verslo sistema aprašo įmonės veiklas, reikalingas
sukurti produktus bei teikiamas paslaugas.
– Standartinių verslo sistemų nėra. Viskas priklauso nuo
veiklos tipo ir įmonės pobūdžio.
– Verslo sistemos komponentų veikimo būdą nustato įmonės
darbo taisyklės ir procedūros; kartu jos apibrėžia verslo
procesus.
3 tema 95
Verslo sistema
Verslo procesas - tarpusavyje perpintų veiklų rinkinys,
kuris įeigas pakeičia rezultatais.
Pvz. naujo produkto kūrimo procesas užsakovo
reikalavimus paverčia nauju produktu.
Procesai įmonėse jungiami į bendrą sistemą ir sudaro
procesų seką.
3 tema 96
Verslo sistema
97
Sistemos ribos
Procesas Išeiga Įeiga
Verslo sistema - tai sistema, gaunanti įeiga, apdorojanti tą
įeigą ir pateikianti išeigą.
Verslo sistema
• Procesai turi įeigas ir išeigas. Proceso rezultatus
visada galima identifikuoti ir skaičiuoti. Tinkamai
parinktas proceso vardas turėtų aiškiai nusakyti arba
proceso rezultatus, arba jo galutinę būseną.
• 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.
98
Verslo sistema
99
Sistemos aplinka
(nuolat kintanti)
Sistemos
procesas
įeiga
Grįžtamasis ryšys ir valdymo ciklas
įeiga įeiga
išeiga
išeiga
išeiga
Verslo sistema
100
Procesas
Pradžia 2 veikla 3A
veikla
4A
veikla
5A veikla
4AB
veikla
3B
veikla
4B veikla
1 veikla Pabaiga t
a
i
p
ne ne
t
a
i
p
Verslo sistema
Veikla - verslo proceso žingsnis. • pavyzdžiui, patvirtinti vietos viešbutyje rezervavimą.
Užduotis - kam nors priskirta darbo dalis, kurią,
paprastai, reikia baigti griežtai nustatytu laiku.
101
Verslo sistema
Verslo sistema = verslo procesai + žmonės +
informacija + technologijos
– ši kombinacija atspindi unikalų būdą, kuriuo
įmonė siekia savo tikslų
– Mūsų kurse nagrinėjami tik verslo procesai
102
Verslo sistema
Galutinis apibrėžimas
Verslo sistema – tai rinkinys tarpusavyje susipinusių
verslo procesų, vykdomų įmonės, siekiant tam tikrų,
paprastai, ilgalaikių tikslų, tiesiogiai susijusių su tam
tikrų gaminių gamyba arba/ir tam tikrų paslaugų
tiekimu.
103
Verslo inžinerija
Verslo inžinerija - inžinerinė metodika, įgalinanti apibrėžti, projektuoti ir kurti teisingai veikiančias verslo sistemas.
Verslo inžinerija – tai toks verslo procesų konstravimo ir jungimo būdas, kuriuo užtikrinami reikiama verslo sistemos išeiga, jos planuojama kokybė ir reikalaujamas tos išeigos
generavimo greitis.
Verslo inžinerija apima verslo procesų ir jiems vykdyti reikalingų resursų analizę, specifikavimą
ir modeliavimą.
104
Verslo procesų reinžinerija
Verslo proceso reinžinerija (VPR)
Esminis verslo proceso pergalvojimas ir radikalus perprojektavimas siekiant reikšmingo to proceso našumo pagerinimo.
Hammer et al
– Sutelkta į rezultatus kuriančius procesus ir užsakovams reikšmingų verčių kūrimą
– Neakcentuoja nei užduočių, nei veiklų
– Dažniausiai apima daugelį valdymo lygmenų
– Pradeda nuo tikslų ir rezultatų, o ne nuo atliekamų veiksmų.
3 tema 105
Verslo procesų reinžinerija • VPR principai
– Organizuok darbą pradėdamas nuo išeigos
– Tobulink technologijas
– Nustatyk
• Su procesu susijusias problemas (pvz., per ilgai trunka,
per brangus)
• Problemų priežastis (pvz., skaičiavimai atliekami
rankiniu būdu)
3 tema 106
Verslo procesų reinžinerija
• Anksčiau IT buvo naudojamos kompiuterizuoti
esamus verslo procesus. Dabar jos naudojamos tiems
procesams iš esmės pakeisti.
• Moderniosios IT ne tiktai leidžia panaudoti VPR
plačiu mastu, bet ir padarė ją daug effektyvesne.
107
Informacinė sistema
• Informacinė sistema (IS) – tai verslo sistemos posistemis, apimantis komunikacinius ir informacinius verslo aspektus.
– IS – tai žmonių, duomenų, procesų ir informacinių technologijų junginys, skirtas kaupti, apdoroti, saugoti ir pateikti verslui vykdyti reikalingą informaciją.
– Tai rinkinys darniai veikiančių komponentų, renkančių, apdorojančių, saugančių, surandančių ir paskleidžiančių informaciją bei duomenys, palengvinančius verslo planavimą, valdymą, koordinavimą ir analizę bei verslui reikalingų sprendimų priėmimą.
108
Informacinė sistema • Duomenys ir informacija
– Duomenys – tai faktai apie įmonę ir jos atliekamas verslo transakcijas. Patys savaime duomenys yra mažai prasmingi ir naudingi.
– Informacija – tai įprasminti duomenys. Duomenys įprasminami juos interpretuojant, tikslinant ir apdorojant.
– Informacinė sistema duomenis paverčia informacija!
109
Informacinė sistema
3 tema 110
Duomenys: diskretiniai, objektyvūs faktai apie įvykius.
Informacija: siuntėją ir gavėją turintis pranešimas. Duomenys paverčiami
informacija pridedant jiems pridėtinę vertę. Vertė pridedama kuomet duomenys
susiejami su kontekstu, klasifikuojami, apdorojami, patikslinami ir
agreguojami.
Žinios: personalizuota informacija. Be žmonių nėra žinių.
Duomenys Informacija Žinios
kontekstas
kategorija
skaičiavimai
tikslinimas
agregavimas
sugretinimas
išvados sąsajos
apibendrinimai
Informacinė sistema • IS komponentai:
– Žmonės – vartotojai, vadybininkai, IS kūrėjai
– Duomenys –medžiaga informacijai kurti
– Technologija – techninė ir programinė įranga,
palaikanti kitus IS komponentus
• Informacines sistemas reikia kurti ir prižiūrėti. Tam
skirtas procesas vadinamas informacinių sistemų
inžinerija (ISI).
111
Informacinės sistemos komponentai
112
Programinė
įranga
Informacija
Techninė
įranga
Informacijos
apdorojimo
procesai
Žmonės
Informacinė
sistema
IS inžinerija
IS inžinerija - inžinerinė metodika įgalinanti
apibrėžti, projektuoti ir kurti teisingai
veikiančias informacines sistemas.
IS visuomet turi būti kuriamos verslo reinžinerijos
pagrindu t.y. IS turi pagerinti verslą ir tai turi
būti taip, kad tą pagerinimą būtų galima
pamatuoti.
3 tema 113
IS inžinerija • IS kūrimo procesas vadinamas technologiniu
informacinių sistemų inžinerijos procesu.
• Technologinis ISI procesas paprastai yra
aprašomas gyvavimo ciklo stadijų terminais.
114
IS inžinerija IS kūrimo procesas paprastai apima tokias stadijas:
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.
115
IS inžinerija
116
Planavimas Analizė
Projektavimas Priežiūra
Realizacija
Pasenęs sprendinys Problema, kurią
reikia spręsti
Paaiškė jo susijusios spręstinos problemos
Įgyvendintas sprendinys
Šalintinos realizacijos klaidos
Sprendinys pasirodė netinkamu
Priimtinas sprendinys
Problemos analizė
ir
reikalavimai sprendiniui
IS inžinerija
3 tema 117
Informacinės sistemos kūrimo stadijos
•Įvertinti verslo problemas ir
galimybes
•Įvertinti reikiamos sistemos
įgyvendinimo galimybes
•Parengti projekto vadybos planą
•Išsiaiškinti darbuotojų ir klientų
informacinius poreikius.
•Suformuluoti funkcinius ir kitus
sistemos reikalavimus
•Parengti techninės ir programinės
įrangos, tinklų, duomenų,
formuojamų dokumentų ir
kvalifikacinius personalo
reikalavimus
•Įsigyti reikiamą techninę ir
programinę įrangą, sukurti tinklus,
sukaupti duomenis, apmokyti
žmones, pertvarkyti darbo
procedūras, atlikti sistemos
testavimą
•Atlikti bandomąją eksploataciją,
padaryti reikiamus pakeitimus,
pradėti sistemos aptarnavimą ir
priežiūrą
Įdiegti
informacinę
sistemą
Sukurti
informacinę
sistemą
Atlikti verslo
sistemos
analizę
Verslo
analizė
Produktas:
Galimybių
studija
Dalykinės
srities analizė
Produktas:
Sistemos rei-
kalavimai
Sistemos
projektavimas
Produktas:
Projektinė
specifika-
cija
Sistemos
realizavimas
Produktas:
Veikianti
sistema
Sistemos
priežiūra
Produktas:
Patobulinta
sistema
IS inžinerija
• IS inžinerija disponuoja gausiu IS kūrimo metodų arsenalu.
– Metodas – tai integruotas procedūrų, technikų, produkto aprašų ir įrankių rinkinys, skirtas efektyviai, produktyviai ir sklandžiai palaikyti technologinį IS inžinerijos procesą
• Brinkkemper, 2000
– IS inžinerijos metodai gali būti suvokiami ir kaip projekto valdymo metodai, nes dauguma iš jų numato ir atitinkamus darbų srautus.
118
Programų sistema
Programų sistema – tai iš programinės įrangos
komponentų komponentų sudaryta sistema.
Šiandieninės programų sistemos, atrodo, yra patys
sudėtingiausi įrenginiai, kuriuos kada nors sukūrė
žmonija. Tokios sistemos yra ne tik nepaprastai painios,
bet ir nepaprastai brangios.
3 tema 120
Programų sistema Programų sistemų rūšys
• Centralizuotos sistemos
– Tai programų sistemos, kuriose visi resursai ir valdymas yra centralizuoti
• tokiose sistemose išskiriamas vienas komponentas (centrinis komponentas, pagrindinis komponentas ar pan.), priimantis visus sprendimus ir administruojantis visos sistemos darbą.
• Visos funkcijos ir visa informacija yra centralizuoti, sutelkti viename serveryje, aptarnaujančiame daugelį klientų, galinčių siųsti serveriui ir gauti iš jo informaciją.
• Centralizuotas sistemas lengviau eksploatuoti ir prižiūrėti, nes viskas sutelkta vienoje vietoje ir todėl lengviau spręsti apie trikių priežastis ir ieškoti klaidų.
121
Programų sistema Programų sistemų rūšys
• Decentralizuotos sistemos
– Tai tokios programų sistemos, kuriose nėra
išskirto komponento administruojančio visos
sistemos darbą.
• Iš tiesų, kurti visiškai decentralizuotas sistemas yra
pakankamai sudėtinga, todėl praktikoje dažniausiai
pasitaiko hibridinės, iš dalies decentralizuotos
sistemos.
123
Programų sistema Programų sistemų rūšys
• Autonominės sistemos (stand-alone systems) – Autonominė sistema - tai tokia programų sistema, kuri
gali veikti viena pati, nes visi reikiami resursai yra jos viduje.
– Autonominės sistemos, veikiančios kompiuterių tinkluose, gali kartu su kitomis sistemomis naudotis kai kuriais bendrais resursais.
125
Programų sistema Programų sistemų rūšys • Integruotosios sistemos (integrated systems)
– Integruotoji programų sistema - tai 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.
– Sistemos dalys naudojasi ta pačia operacine sistema, yra
suprojektuotos pagal tuos pačius standartus ir todėl gali
pakankamai lengvai komunikuoti tarpusavyje.
– Be to, jos veikia kaip viena sistema ir tuo pačiu vartotojui suteikia
papildomų galimybių.
3 tema 126
Programų sistema Programų sistemų rūšys • Didžiųjų ESM sistemos (mainframe systems)
– Programų sistema veikianti kokioje nors didžiojoje ESM arba tokių
kompiuterių tinkle.
– Vartotojai naudojasi sistema per lokalius ar nutolusius pasyvius
terminalus (“dumb” terminals), valdomus didžiosios ESM ir leidžiančius
rašyti į ją duomenis, juos keisti bei peržiūrinėti.
– Iki praeito amžiaus 9-jo dešimtmečio vidurio tai buvo labiausiai
paplitusios programų sistemos.
– Šiandien tokias sistemas tebenaudoja nedaugelis organizacijų, nes jų
eksploatacija brangiai kainuoja ir jos yra labai nelanksčios.
3 tema 127
Programų sistema Programų sistemų rūšys
• Didžiųjų ESM sistemos
– Tradicinės didžiųjų ESM sistemos gali būti išplėstos,
panaudojant jose personalinius kompiuterius kaip intelektualius
terminalus (smart terminals).
– Tokie terminalai, kaip ir paprasti terminalai (“dumb terminal”), turi
klaviatūrą ir ekraną, bet papildomai juose yra diskasukiai ir
pakankamai galingi procesoriai, kas leidžia iš dalies vykdyti
užduotis lokaliai, nesinaudojant centrinio procesoriaus resursais.
– Vienok, tokios sistemos branduoliu vis vien lieka didžioji ESM su
savo galingais atminties ir procesoriniais resursais.
128
Programų sistema
Programų sistemų rūšys • Paketinės sistemos (batch systems)
– Tai tokios programų sistemos, kurioms po to, kai jos pradėjo
veikti, yra nereikalingas joks vartotojo įsikišimas. Jos veikia
automatiškai.
– Paketinės sistemos yra naudojamos tada, kuomet pagal tą pačią
schemą reikia apdoroti dideles duomenų apimtis
• Pavyzdžiui, bankuose paketiniu režimu kiekvieną dieną yra
apdorojami įrašai apie tą dieną vykdytas operacijas
– Paprastai, duomenys yra kaupiami už tam tikrą periodą ir
apdorojami tada, kada kompiuteris esti mažiausiai apkrautas
kitais darbais.
131
Programų sistema
Programų sistemų rūšys • Tiesioginės prieigos sistemos (on-line systems)
– Sistemos, kurios prijungtos prie tinklo arba per tinklą ir kuriomis vartotojas gali naudotis tiesiogiai.
• Pavyzdžiui, tiesioginės prieigos duomenų bazės – tai duomenų bazės, saugomos per tinklą (pvz., per internetą) pasiekiamuose kompiuteriuose.
132
Programų sistema Programų sistemų rūšys • Interaktyviosios (dialoginės) sistemos (interactive systems)
– Sistemos, reikalaujančios nuolatinio operatoriaus įsikišimo į jų darbą
• Tokios sistemos paprastai dirba dialogo režimu: operatorius duoda komandą, sistema atlieka tam tikrą darbo dalį, operatorius duoda kitą komandą ir t.t.
– Pavyzdys: MS Word™
3 tema 133
Programų sistema Programų sistemų rūšys • Realaus laiko sistemos (real-time systems)
– Programų sistemos, reaguojančios į išorinio pasaulio įvykius per griežtai nustatytą (paprastai labai trumpą) laiką (dirbančios relaus laiko mastelio režimu)
• Dažniausiai realaus laiko sistemos stebi arba valdo kokius nors įrenginius arba kokį nors išorinį procesą, vykstantį lygiagrečiai su programų sistemos veikimu.
3 tema 134
Programų sistema Programų sistemų rūšys • Išskirstyta sistema (distributed systems)
– 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.
– Geografiškai jie gali veikti vienoje vietovėje arba būti vienas nuo kito nutolę.
– Besikoperuojančios sistemos (grid) – tai tokios išskirstytos sistemos, kuriose du ar daugiau geografiškai nutolusių kompiuterių kartu vykdo tą pačią užduotį.
136
Programų sistema Programų sistemų rūšys • Personalinių kompiuterių sistemos (PC systems)
– Tai sistemos, kurioms veikti pakanka personalinių
kompiuterių teikiamų galimybių.
– Pradžioje tokios sistemos veikdavo viename PK.
Šiandien sistema gali veikti PK tinkle.
3 tema 137
Programų sistema Programų sistemų rūšys
• Kliento serverio sistemos (client-server systems) – Kliento serverio sistemos yra pati svarbiausia išskirstytų 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.
139
Programų sistema Programų sistemų rūšys
• Kliento serverio sistemos – Serverio pavyzdžiais yra duomenų bazių serveris,
galintis saugoti didžiules duomenų apimtis ir ryšio serveris, įgalinantis prisijungti prie kitų tinklų, komercinių duomenų bazių bei galingų nutolusių procesorių.
– Daugelyje kliento serverio sistemų papildomai dar yra naudojama kokia nors tarpinė PĮ.
3 tema 140
Programų sistema Programų sistemų rūšys
• Kliento serverio sistemos
– Tokia architektūra gerai tinka tuomet, kuomet talpinamų duomenų analizė yra labai paprasta. Jei duomenų teisingumo taisyklės yra sudėtingos, duomenims tikrinti prireikia programos, kurioje tas taisykles būtų galima aprašyti.
• Kitaip kiekvienai kuriamai sistemai prireiks rašyti savą programą.
– Jei taisyklės suprogramuotos, tarkime, Java aplete, joms pasikeitus tą apletą reikės perrašyti.
3 tema 143
Programų sistema Programų sistemų rūšys
• Kliento serverio sistemos – Trijų sluoksnių architektūra turi daug pranašumų, bet
yra ir trūkumų. • Svarbiausia, kad sistema tampa daug sudėtingesne. Sistema
turi daugiau komponentų, todėl ją sunkiau tvarkyti. Sunkiau rasti programuotojų, turinčių transakcijų valdymo ir tokių sistemų apsaugos įgūdžius. Nors EJB ir panašios priemonės padeda sumažinti sudėtingumą, visai jo eliminuoti nepavyksta.
3 tema 145
Programų sistema Programų sistemų rūšys
• Lygiųjų sistema (peer-to-peer systems)
– Lygiųjų sistemoje vartotojai tuo pat metu 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.
– Tai pagrindinis skirtumas nuo kliento serverio sistemų, teikiantis
lygiųjų sistemoms daugelį privalumų, įskaitant lankstumą,
sistemos rekonfigūravimo galimybes, skalės keitimo galimybes ir
vartotojų privatumo bei anonimiškumo apsaugą.
146
Programų sistema
147
Decentralizuotos lygiųjų sistemos modelis
Programų sistema
Lecture3 148
Centralizuotos (su serveriu) lygiųjų sistemos modelis
Programų sistema Programų sistemų rūšys
• Web sistemos (Web systems)
– Web sistemą sudaro:
• Web serveris
• Web dokumentai
• Web klientas
150
Programų sistema
Programų sistemų rūšys • Web sistemos
– Web serverio PĮ veikia serveriniame kompiuteryje (paprastai,
darbo stoties arba failų serverio kompiuteryje)
– Serverio PĮ vykdo keletą funkcijų, įskaitant:
• sąsajos su tinklu organizavimą
• dokumentų saugojimą
• sąsajos su išorinėmis programomis organizavimą
– Pagrindinė Web serverio paskirstis yra padaryti informaciją
prieinamą daugeliui vartotojų. Taigi, interfeiso su tinklu (internetu ar
vidiniu organizacijos tinklu) organizavimas yra jo svarbiausioji
funkcija.
151
Programų sistema
Programų sistemų rūšys
• Web sistemos
– Web dokumentais paprastai vadina HTML
dokumentus.
• vienok, kitų tipų failai, pavyzdžiui, grafiniai failai, taip pat
dažnai yra priskiriami "Web dokumentų" kategorijai.
– HTML dokumentai - tai tekstiniai failai, sužymėti
specialiomis žymomis
• Žymos padeda naršyklei teisingai formatuoti ekrane
pateikiamą tekstą
152
Programų sistema
Programų sistemų rūšys
• Web sistemos
– Web klientas – tai programų sistema, veikianti
galutinio vartotojo kompiuteryje, turinčiame
prieigą prie Web serverio.
– Tokia programų sistema dažnai vadinama
naršykle, nes ji leidžia vartotojui peržiūrinėti
Web serveryje saugomus dokumentus.
153
Programų sistema
Programų sistemų rūšys
• Web sistemos architektūra (1 variantas)
– Pasinaudodamas serverio PĮ, klientas (naršyklė)
skaito HTML failą, saugomą nutolusiame
kompiuteryje.
– Serveris suieško failą ir jį pateikia klientui.
– Klientas atidaro failą kompiuterio ekrane.
• Šiuo atveju HTML dokumentai yra statiniai.
– Norint ką nors pakeisti statiniame dokumente, jį reikia perdaryti.
Lecture3 155
Programų sistema
Programų sistemų rūšys
• Web sistemos architektūra (2 variantas)
– Kitaip viskas vyksta panaudojus CGI programą.
• Šiuo atveju serveris sugaišta daugiau laiko, nes jo prireikia CGI
programai vykdyti.
– Tegul, pavyzdžiui, jūs norite pasinaudoti dokumentu, prie kurio
prikabinta CGI programa, užpildydamas užklausos formą.
Naršyklė pasiunčia užklausą serveriui. Serveris parenka reikiamą
CGI programą ir perduoda jam užklausos duomenis. CGI
programa apdoroja gautus duomenis ir gražina serveriui rezultatą
(dokumentą). Serveris pertvarko jį į HTML formatą ir pasiunčia
naršyklei, kuri pateikia jį į ekraną.
» Šiuo atveju CGI programa HTML dokumentus generuoja
dinamiškai. Dokumento turinys priklauso nuo užklausoje
pateiktų duomenų. Lecture3 157
Programų sistema
Programų sistemų rūšys
• Web sistemos architektūra (3 variantas)
• Šiuo atveju dokumentai generuojami dinamiškai, panaudojant
vadinamąsias serverio pusės technologijas. Jų yra daug:
• Active Server Pages (ASP): Microsoft technologija. Falo pavadinimo plėtinys
.asp.
• Personal Home Pages (PHP): Atvirojo kodo technologija. Failų pavadinimai
dažniausiai turi plėtinius .php, .phtml arba .php3.
• Java Server Pages: Failuose saugoma dokumentus generuojančios Java
programos. Pavadinimo plėtinys .jsp.
• Server Side Includes (SSI): Įterpia į HTML dokumentą mažus programos
gabaliukus. Pavadinimo plėtinys .shtml.
Lecture3 159
Programų sistema
Programų sistemų rūšys
• Web sistemos architektūra (3 variantas)
• Panaudojant serverio pusės technologijas, lengviau prižiūrėti (keisti)
dideles Web sistemas.
– Programuotojas įterpia atitinkama kalba parašytą skriptą į HTML
dokumento šabloną (tam yra specialios instrumentinės
sistemos).
• Interpretuodamas skriptą ir atsižvelgdamas į užklausą, atitinkamos skriptų
kalbos interpretatorius generuoja reikiamą HTML dokumentą. – Klientas nieko nežino apie esamus skriptus (jų nepamatysite netgi nagrinėdami pradinį
dokumento kodą (source code)), nes serveris pasiunčia tik gatavą HTML dokumentą.
Lecture3 160
Programų sistema
Programų sistemų rūšys
• Web sistemos architektūra (3 variantas)
• Panagrinėkime PHP kaip pavyzdį. • Kliento pasiųsta užklausa patenka PHP interpretatoriui kartu
su skriptu.
• Interpretatorius interpretuoja PHP kodą ir dinamiškai
generuoja HTML dokumentą, kurį serveris pasiunčia klientui.
– Naršyklė nežino , ką darė serveris. Ji s gauna gatavą HTML dokumentą.
Lecture3 161
Programų sistema
Lecture3 162
Išskirstyta trijų
sluoksnių
architektūra,
grindžiama
Enterprise Java Been
(EJB) komponento
modeliu ir RMI/IIOP
Programų sistema Programų sistemų rūšys
• Paslaugas teikiančios sistemos (service-oriented systems)
– Leidžia kurti verslo procesus, kuriais naudojamasi kaip
paslaugomis.
– Sukuria IT infrastruktūrą leidžiančią dalykinėms programoms
dalyvauti verslo procesuose ir keistis duomenimis
• Nepriklauso nei nuo operacinės sistemos, kurioje vykdoma dalykinė
programa, nei nuo programavimo kalbos, kuria ji suprogramuota.
3 tema 163
Programų sistema Programų sistemų rūšys
• Įterptosios (įmontuotosios) sistemos (embedded systems)
– Programų sistemos valdančios kokią nors kitą nei kompiuteris
techninę įrangą, pavyzdžiui, skalbimo mašiną, automobilio variklį
ar raketą
– Įmontuotosios programų sistemos veikia ant specializuotų
kompiuterių, dažniausiai, galutiniam vartotojui nematomų ir
neprieinamų
– Jos visuomet yra kokios nors procedūros arba proceso dalis,
įterptos į tą procesą ar procedūrą.
– Įmontuotosios sistemos dirba relaus laiko režimu
3 tema 168
Programų sistemų kūrimas Programos kūrimas:
Veiklų seka, sukurianti programinį produktą
– Programų kūrimas apima naujų programų kūrimą, esamų programų modifikavimą, jų pakartotiną panaudojimą (reusing), reinžineriją, priežiūrą (maintenance) ir bet kokius kitus darbus, pasibaigiančius kokio nors programinio produkto sukūrimu.
Programavimas – tai ne programų konstravimas, o jų projektavimas!
169
Programų sistemų kūrimas
Programų sistemos kūrimas:
• 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).
3 tema 170
171
Realizacija
Priklausomybė
nuo dalykinės
srities
Konkreti (mašinos skaitomu
pavidalu)
Nepriklauso
Visiškai
priklauso
Dalykinės
taksonomijos Dalykinės
programų
sistemos
Dalykinių
sričių
modeliai
Architektūros
stliai
Tipiniai
projektiniai
sprendimai
Karkasai
Karkasų
užpildai
Sistemos kūrimo maršrutas
Naujo karkaso
kūrimas
Užpildų
kūrimas
Abstrakti (natūraliosios
kalbos teksto arba diagramų
pavidalu)
Programų sistemų kūrimas
Programų sistemų kūrimas • Programų sistemos projektavimas tai
bandymas tvarkytis su sudėtingumu
• Sudėtingumas slypi
– pačiame programų sistemos projekte,
– tą sistemą kuriančio kolektyvo darbo organizavimo
būde,
– visoje programų kūrimo pramonėje.
3 tema 172
Programų sistemų kūrimas
3 tema 173
Programų sistemos gyvavimo ciklas
Tai viena iš produktyviausių programų
sistemų inžinerijos idėjų
Programinę įrangą
reikia kurti tvarkingai!
Reikalavimų
analizė
Specifikavimas
Projektavimas
Relizavimas
Testavimas
Programų sistemų inžinerija • Programų sistemų inžinerija yra dar tik
besiformuojanti disciplina. Kol kas ji dar neturi to
statuso, kurį turi tradicinės inžinerinės disciplinos ir
nėra visuotinai pripažinta kaip profesija
– tai reiškia, kad atskirų programų sistemų inžinerijos sričių
turinys ir sąryšiai tarp programų sistemų inžinerijos ir kitų
inžinerinių disciplinų vis dar tebėra diskusijų ir svarstymų
objektas
3 tema 174
Programų sistemų inžinerija • Yra daug Programų sistemų inžinerijos apibrėžčių.
Bene glausčiausią ir tiksliausią apibrėžtį pasiūlė
IEEE:
– Programų sistemų inžinerija: (1) Sistematiškas,
disciplinuotas, matuojamas programinės įrangos
kūrimas, eksploatavimas ir priežiūra; t.y.
inžinerinių metodų taikymas programoms. (2) 1
dalimi apibrėžtų metodų nagrinėjimas
3 tema 175
Programų sistemų inžinerija – Programų sistemų inžinerijoje programų
sistemoms projektuoti ir konstruoti yra
naudojami tiek teorinės informatikos
(computer science), tiek ir inžinerinių mokslų
filosofija, principai ir praktikos
176
Programų sistemų inžinerija
• Taigi, 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
• Tikrinama ne tik, ar sistema veikia teisingai, bet ir yra vertinami jos saugumas, patikimumas, prižiūrimumas bei ekonominis naudingumas.
177
Programų sistemų inžinerija
• Programų sistemų inžinerija apima ne tik techninius, bet ir vadybinius programų sistemų kūrimo aspektus (programuotojų darbo organizavimą, projekto planavimą bei finansavimą ir pan.)
– Projekto vadyba (project management) apima veikas, įterptas į projekto rezultatų kūrimo procesą ir skirtas taip tvarkyti projekto vykdytojų ir kitų žmonių darbą, kad projektas būtų baigtas laiku,neviršijant biudžeto ir užtikrinant techninių reikalavimų tenkinimą.
178
Programų sistemų inžinerija • Svarbiausios projekto vadybos funkcijos yra
šios :
– Planavimas: Ką norima padaryti ir kodėl?
– Organizavimas: Kas dalyvaus ir kodėl?
– Motivavimas: Kaip pasiekti didžiausią vykdytojų darbo našumą?
– Valdymas: Kas sprendžia ką ir kada daryti?
– Kontrolė: Kas ir pagal kokius standartus vertina gautus rezultatus?
179
Programų sistemų inžinerija
• Kompiuterių inžinerija užsiiminėja kompiuterių sistemų projektavimu, konstravimu ir eksplotavimu
– Kompiuterių inžinerijos objektas yra skaitmeninė technika, kompiuteriai ir juos valdanti programinė įranga.
• Teorinė informatika užsiiminėja programų ir kompiuterių nagrinėjimu, jų projektavimo ir konstravimo teoriniais aspektais
– Teorinės informatikos objektas yra duomenys, duomenų transformacijos ir apdorojimo algoritmai
3 tema 180
Programų sistemų inžinerija
• Programų sistemų inžinerija užsiiminėja programų sistemų konstravimo ir priežiūros klausimais
– Lyginant su kompiuterių inžinerija, ji labiau domisi programine, o ne technine įranga ir koncentruojasi ant didesnių taikomojo pobūdžio programų
– 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ą
181
Programų sistemų inžinerija
• 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ų
vartotojas
3 tema 182
Programų sistemų inžinerija • Programų sistemų inžinerius
– Dirba daugelyje dalykinių sričių
– Dirba pagal griežtai nustatytus terminus
• Pavyzdžiui, privalo sukurti sistemą per 3 mėnesius...
• …nepaisant to, kad užsakovo reikalavimai keičiami vos
ne kasdien, o per tuos 3 mėnesius gali ženkliai pakisti
taip pat ir jo naudojamos technologijos
183
Programų sistemų inžinerija Svarbiausi IS inžinerijos (ISI) ir PS inžinerijos (PSI)
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 aspektus
• ISI verslo, kultūros, socialianiai ir organizaciniai klausimai yra ne mažiau svarbūs už techninius informacijos apdorojimo automatizavimo klausimus
184
Programų sistemų inžinerija
3 tema 185
Programavimas PSI
Dirba individai Dirba kolektyvai, įvairios rolės
Kuriamos programos Kuriamos sudėtingos PS
Trumpas gyvavimas Ilgas gyvavimas
Vienas (keli) suinteresuoti
asmenys
Daug suinteresuotų asmenų
Rašoma nuo pradžios Naudojami gatavi komponentai
Minimali priežiūros kaina Priežiūrai išleidžiama 60% ir
netgi daugiau visų projektui
skirtų lėšų
Esminiai programavimo ir programų sistemų inžinerijos
skirtumai
Programų sistemų inžinerija
• Tose šalyse, kuriose PS inžinieraus profesija yra oficialiai įteisinta, ji
yra licenzijuojama profesija, o patys PS inžinieriai yra ruošiami
panašiai kaip ir kitų šakų inžinieriai: jie mokomi kaip panaudoti
inžinerinius metodus kuriant programų sistemas
– PS inžinieriai dažnai painiojami su programuotojais, bet iš tiesų tai
dvi skirtingos specialybės. Programuotojas rašo mašinos vykdomą
kodą, PS inžinierius specifikuojaprogramuotojų rašomas programas
ir projektuoja jų sąveiką
• Pagal JAV įstatymus joks asmuo neturi teisės vadintis “inžinierius“,
jeigu jis nėra gavęs licenzijos (ją teikia valstija). Gaudamas licenziją
PS inžinierius įsipareigoja nuolat kelti kvalifikaciją specialiuose
kursuose ir savo darbe vadovautis specialiu etikos kodeksu.
3 tema 186
Programų sistemų inžinerija
3 tema 187
(1) Amatas
(2) Gamyba
(3)Komercija
(4) Mokslas
(5) Inžinerija
1945-1960: ad hoc programavimas
1970-1980: metodai
1950-1970: kalbų teorija,
algoritmai, duomenų struktūros
1968-1995: pavieniai atvejai
(taip pat ir Lietuvoje)
50 metų
Programų sistemų inžinerija
188
Esama padėtis
dažniausiai amatas
dažniausiai dirbama rinkai
retkarčiais inžinerija
Programų sistemų inžinerija
• “Terminas “programų sistemų inžinerija” buvo sukurtas norint
pabrėžti, kad tie, kas projektuoja ir konstruoja programinę
įrangą, privalo turėti tokias profesines žinias ir dirbti taip
disciplinuotai, kaip tikimasi iš kitų šakų inžinierių. Inžinieriams
formuojami gilūs problemų sprendimo įgūdžiai, jie mokomi
analitinių metodų ir matematikos, gauna žinių, įgalinančių juos
panaudoti moksliškai pagrįstus metodus tam, kad projektuoti
vertus pasitikėjimo ir naudingus prietaisus, įtaisus bei įrenginius.
Jiems neleidžiama pasikliauti vien savo intuicija ir asmeniniais
gebėjimais. Jau sukaupta pakankamai žinių kaip kurti programų
sistemas, bet vis dar neveikia atitinkama licenzijavimo ir
mokymo sistema.”
189
David Parnas
Įmonės sistema
3 tema 190
Information
Business
modeliuoja
vaizduoja
Įmonės sistema
Verslo sistema
Verslo procesas
Informacinė sistema
Informacijos
apdorojimo
procesas
Programų sistema
Bazinis procesas
Pagalbinis procesas
Verslo objektas
Informacinis objektas
Skaitmeninis
objektas
manipuliuoja Dalykinė programa
manipuliuoja
manipuliuoja
realizuoja
Įmonių inžinerija
3 tema 191
Yra rūšis
Sistema
Yra rūšis
Kuria
Palaiko
Palaiko
Sistemoskūrimo
projektas
Sistemųinžinerija
Versloinžinerija
Informaciniųsistemųinžinerija
Programųsistemųinžinerija
Palaiko
Yra rūšis
Raidos tendencijos
3 tema 192
Istorija Du svarbūs įvykiai:
PC kaip pigus verslo kompiuteris
Tinklai kaip galimybė jungti
resursus
1900
-rankinė gamyba
-lokalios rinkos
1970
-automatizuota gamyba
-išplėstos rinkos
-didžiosios ESM
1980
-Didelės rinkos
-PC tinklai
1990
-globali rinka
-Web sistemos
Įmonės sistemos
Centralizuotos sistemos
Grupinio darbo sistemos
Chroniška programavimo krizė
• Didelės programų sistemos dažnai:
– Neužtikrina reikiamo funkcionalumo
– Yra kuriamos per ilgai
– Reikalauja per daug lėšų joms sukurti
– Vykdymui reikalauja reikalauja per daug resursų (laiko, atminties)
– Yra nepatikimos
– Negali evoliucionuoti ir prisitaikyti prie nuolat kintančių vartotojų poreikių
Tai ir yra vadinama chroniška programavimo krize!
Chroniška programavimo krizė Problemos su PS funkcionalumu
2002 metais atlikta JAV IT organizacijų apžvalga nustatė, kad
– net 78% tokių organizacijų teisėsi teismuose su užsakovais.
– 67% iš besiteisiančių organizacijų buvo paduotos į teismą todėl, kad užsakovams pateiktos IS programinės įrangos funkcionalumas iš tiesų neatitiko to, ką apie jį tvirtino vykdytojai.
Ataskaita apie projektus
Projektų baigimas
planuota kaina viršyta
maždaug 189%
?
terminai
viršyti
maždaug
222%.
Tik 61% iš reikalautų
galimybių realizuota
8 380 projektų (Standish Group, Chaos Report)
16%
31%
53%
Baigti laiku,
neviršijant
biudžeto, visos
galimybės
realizuotos
Nutraukti
nepabaigus
Užbaigti, bet vėliau.
viršijus biudžetą arba
neįgyvendinus visų
galimybių
Nutraukti
Ataskaita apie projektus
?
280 000 projektų studija
Tik maždaug 1 iš 4 baigėsi
sėkmingai
Sėkmingi
Baigti vėliau, viršiję
biudžetą ir/arba padarę
ne viską, kas buvo planuota
Nebaigti
Chroniška programavimo krizė
Kaina
– 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)
Chroniška programavimo krizė Problemos su PS kaina
• 1000 vykdomojo kodo eilučių yra daroma maždaug
50-60 klaidų.
• Didžioji jų dalis yra užsakovo ir vykdytojų
nesusikalbėjimo pasekmė.
– Vykdytojai nesuprato, ko iš tiesų iš jų norima.
Chroniška programavimo krizė Kodėl projekto biudžetas yra viršijamas?
– Blogas planavimas, netikęs projekto valdymas, netikęs
technologinis procesas, blogas projektavimas
• Stinga žinių, kaip vertinti būsimo projekto apimtį ir
sudėtingumą
• Nepakankamai ištobulinti pramoniniai darbo našumo
matavimo metodai. Dažnai projekto kaina yra skaičiuojama,
darant prielaidą, jog darbo našumas bus visa eile didesnis,
negu organizacija kada nors realiai buvo pasiekusi.
– Žemas darbo našumas
• Programavimo darbai yra labai imlūs darbo požiūriu. Ir kol
kas palyginti gerai apmokami
– Žemas standartizavimo laipsnis.
203
Chroniška programavimo krizė Kodėl projekto biudžetas yra viršijamas?
• Dažnai projekto kaina pradžioje (ypač, užsakovui
spaudžiant) yra vertinama per daug optimistiškai.
• Vykdytojai, norėdami laimėti konkursą, mažina kainą
ir yra linkę naiviai nedavertinti programų sistemai
sukurti reikalingo darbo apimtis.
• Dažnai pradiniai vertinimai yra klaidingi, nes jie nėra
grindžiami išsamia programų sistemos reikalavimų
analize.
Chroniška programavimo krizė Kodėl projekto biudžetas yra viršijamas?
• Projekto kainos formulė
Kaina = Apimtis x Sudėtingumas/Našumas
projekto pradžioje turi 3 nežinomuosius: apimtis,
sudėtingumas ir našumas.
Netikslūs projekto kainos ir trukmės
vertinimai sužlugdė daugelį projektų!
4 tema 205
Chroniška programavimo krizė
Kodėl projekto biudžetas yra viršijamas?
Egzistuoja metodai ir įrankiai, padedantys, turint sistemos
reikalavimus, įvertinti programų sistemos dydį funkciniais
taškais.
– Jei organizacija iš praeitų panašaus dydžio ir sudėtingumo
projektų neturi sukaupusi duomenų apie savo darbo našumą,
ji gali pasinaudoti pramoniniais standartais apie darbo
našumą panašiuose projektuose.
– Bet kuriuo atveju, pradinis projekto kainos vertinimas turi
būti traktuojamas kaip vienas iš didžiausių rizikos veiksnių
ir ta kaina turi būti tikslinama, atliekant kiekvieną projekto
peržiūrą.