206
Programų sistemų inžinerija 2 – 4 paskaitos Inžinerija, sistemų inžinerija, programų sistemos Skaidrės paruoštos remianti prof. A.Čaplinsko medžiaga

2 4 paskaitos In programų sistemos - dma.vgtu.ltdma.vgtu.lt/PSI/PSI_2.pdf · Menas •Ar galima traktuoti programinę įrangą kaip "estetinio gėrėjimosi objektą“? –Nuo pat

  • 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, amatas, mokslas ir inžinerija

8

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

3 tema 29

Burtai ar mokslas?

Programavimas:

burtai ar

mokslas?

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

31

Pizos bokštas - vienas

iš garsiausių pasaulio

pastatų.

Inžinerija ar menas?

Abu!

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

Klausimai...

53

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

Klausimai?

3 tema 88

Į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

Klausimai?

119

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ų 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ų 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

3 tema 129

Sistema su “Dumb Terminal” tinklu

Programų sistema

130

Sistema su intelektualiais terminalais

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

3 tema 135

Realaus laiko sistemos modelis

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

138

PC sistema

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

Lecture3 141

“Plokščia” kliento serverio sistema

Programų sistema

Lecture3 142

Dviejų lygmenų kliento serverio architektūra

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

Lecture3 144

Trijų lygmenų kliento serverio architektūra

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

149

Programų sistemų klasifikacija

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

Lecture3 154

Web sistemos architektūra. 1 variantas: Statiniai HTML dokumentai

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

Lecture3 156

Web sistemos architektūra. 2 variantas: CGI skriptai

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

Lecture3 158

Web sistemos architektūra. 3 variantas: Skriptai serverio pusėje

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

Lecture3 164

Paslaugas teikianti sistema

Programų sistema

Lecture3 165

Paslaugas teikianti sistema

Programų sistema

Lecture3 166

Paslaugas teikianti sistema

Programų sistema

Lecture3 167

Paslaugas teikianti sistema

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

Raidos tendencijos

3 tema 193

Raidos tendencijos

3 tema 194

Klausimai?

195

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ą.

Klausimai?

206