You are on page 1of 84

RAZVOJ POSLOVNO

INFORMACIJSKIH SISTEMOV
Literatura: Systems Analysis and Design with UML version 2.0

POSLOVNO-TEHNIŠKA FAKULTETA, UNIVERZA V NOVI GORICI


Pregled predavanja

• Uvod v analizo in dizajn informacijskih sistemov

• Življenjski cikel razvoja informacijskih sistemov

• Metodologije za razvoj sistemov

• Poenoten proces

• Poenoten jezik za modeliranje (Unified Modelling Language – UML)

• Vloge in spretnosti članov projektne ekipe

2
Uvod v analizo in dizajn informacijskih sistemov

• Razvoj IS je kompleksen proces - projekt, ki se ukvarja z razumevanjem


o tem kako IS lahko izboljša potrebe poslovnega sistema z
oblikovanjem, razvojem in predajo informacijskega sistema
uporabnikom.

• Veliko projektov razvoja IS propade še preden so končani.

• Tisti, ki ne propadejo, so končani veliko kasneje, stanejo več kot


pričakovano in omogočajo manj funkcionalnosti kot je bilo
predvideno.

• To se ne dogaja samo „drugim“ ☺.

3
Uvod v analizo in dizajn informacijskih sistemov

• Glavna oseba pri razvoju IS je sistemski analitik:


• Analizira poslovno situacijo/problem
• Identificira možnosti za izboljšave
• Dizajnira IS za implementacijo teh možnosti

• Cilj sistemskega analitika NI to, da kreira čudovit sistem, temveč da


ustvari dodano vrednost za organizacijo (običajno je to povečanje
profita).

• Najbolj pogost razlog za neuspeh sistemov je nerazumevanje potreb in


ciljev organizacije s strani sistemskega analitika.

4
Uvod v analizo in dizajn informacijskih sistemov

• V okviru razvoja IS nas zanima, kako razviti računalniške rešitve, ki bodo


čim bolj podprle delovanje IS.

• V okviru razvoja IS se ukvarjamo z:


• Razvojem računalniške rešitve
• Nabavo ustrezne strojne opreme
• Namestitvijo sistemske programske opreme
• Uvedbo rešitve (sistema)
• Vzdrževanjem rešitve (sistema)

5
Pregled predavanja

• Uvod v analizo in dizajn informacijskih sistemov

• Življenjski cikel razvoja informacijskih sistemov

• Metodologije za razvoj sistemov

• Poenoten proces

• Poenoten jezik za modeliranje (Unified Modelling Language – UML)

• Vloge in spretnosti članov projektne ekipe

6
Življenjski cikel razvoja informacijskih sistemov

• Razvoj IS zajema številna opravila,


navadno razdeljena v faze: Planiranje

• Planiranje
• Analiza
• Dizajn
• Implementacija Implemen-
Analiza
tacija

• V odvisnosti od tipa IS – poudarjeni


različni deli življenjskega cikla razvoja
IS, vendar vsi projekti vsebujejo
elemente teh štirih osnovnih faz. Dizajn

7
Življenjski cikel razvoja informacijskih sistemov

• Vsaka faza – niz korakov, pri katerih se uporabljajo različne tehnike, ki


pripeljejo do končnih rezultatov.

• Primer: faze pri vpisu na fakulteto:


• Zbiranje informacij
• Koraki: iskanje fakultet, iskanje informacij, branje, itd.
• Tehnike: brskanje po spletu.
• Prijava
• Vpis

8
Življenjski cikel razvoja informacijskih sistemov

• Faze in koraki življenjskega cikla razvoja IS lahko sledijo neko logično


pot od začetka do konca razvoja IS.

• Projektni tim lahko gre čez faze in korake zaporedoma, postopoma,


iterativno ali na druge načine.

• Življenjski cikel razvoja IS je proces postopnega izboljšanja:


• Analiza – splošno razumevanje o obliki novega sistema
• Oblikovanje – uporablja rezultate analize in opisuje kako bo sistem zgrajen
• Implementacija – uporablja rezultate oblikovanja za izgradnjo sistema

• Vsaka faza se navezuje na prejšnjo fazo.


9
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Planiranje - koraki

• Osnovni proces razumevanja zakaj potrebujemo IS in kako bo zgrajen.

• Faza planiranje je sestavljena iz dveh korakov:

1. Začetek projekta – identifikacija poslovnih vrednosti, ki jih bo IS prinesel


organizaciji (primer: zmanjšanje stroškov, povečanje prihodkov).

• Večina pobud za nove sisteme prihaja izven področja IS (pr. marketing ali računovodski
oddelek) v obliki sistemskih zahtev.

• Sistemska zahteva – kratek opis poslovne potrebe in razlaga kako bo izpolnjevanje


zahteve ustvarilo dodano vrednost za organizacijo.
10
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Planiranje - koraki

• Analiza izvedljivosti – analiza osnovnih aspektov predlaganega sistema:

• Tehnična izvedljivost (Ali bomo lahko zgradili?)

• Ekonomska izvedljivost (Ali bo IS predstavljal dodano vrednost organizaciji?)

• Organizacijska izvedljivost (Če ga zgradimo, ali ga bodo uporabljali?)

• Če so sistemske zahteve in analiza izvedljivosti odobrene → projekt se bo začel


izvajati!

11
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Planiranje - koraki

2. Projektni menedžment - ko je projekt odobren.

• Projektni menedžer naredi plan dela, določi kdo bo delal na projektu in katere tehnike
bodo uporabljali za izvedbo projekta.

• Projektni menedžer upravlja s projektom skozi vse faze življenjskega cikla razvoja.

• Končni produkt projektnega menedžmenta – projektni plan, ki opisuje kako bo sistem


razvit.

12
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Analiza

• Faza analize odgovarja na vprašanja kdo bo uporabljal sistem, kaj bo


sistem delal, kje in kdaj se bo uporabljal.

• Projektni tim raziskuje obstoječe sisteme, prepozna možnosti za


izboljšanje in razvija koncepte za nov sistem.

• Faza analize je sestavljena iz treh korakov:


1. Razvoj strategije analize
2. Zbiranje zahtev
3. Predlog sistema

13
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Analiza - koraki
1. Strategija analize upravlja s prizadevanji projektne ekipe.
• Strategija običajno vključuje analizo obstoječega sistema in njegove probleme,
ter načine za izgradnjo novega sistema.

2. Zbiranje zahtev (na pr., preko vprašalnikov, ali anket)


• Analiza pridobljenih informacij, skupaj z drugimi informacijami, vodi k razvoju
koncepta za nov sistem → osnova za razvoj različnih poslovnih analitičnih
modelov, ki opisujejo delovanje organizacije v primeru razvoja sistema.
• Razviti modeli predstavljajo podatke in procese, ki podpirajo poslovne procese.

3. Predlog sistema - analize, koncepti sistema in modeli sestavljajo


dokument, ki je predstavljen sponzorjem in drugim ljudem, ki
odločajo, ali se bo projekt izvedel.
14
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Dizajn

• V tej fazi se odloča kako bo sistem deloval v smislu:


• Strojne opreme, programske opreme in omrežna infrastruktura;
• Uporabniški vmesniki, obrazci in poročila;
• Posebni programi in podatkovne baze.

• Faza dizajn je sestavljena iz štirih korakov:


1. Strateški dizajn
2. Arhitekturni dizajn
3. Specifikacija podatkovnih baz
4. Programski dizajn

15
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Dizajn - koraki
1. Strateški dizajn – specificira kdo in kako bo razvijal sistem (lastni
programerji, outsourcing, nakup obstoječega sistema,…).
2. Arhitekturni dizajn – specificira strojno, programsko in omrežno
arhitekturo, ki se bo uporabljala pri razvoju sistema.
• Običajno sistem nadgrajuje že obstoječo opremo v organizaciji.
• Dizajn uporabniškega vmesnika – specificira kako bodo uporabniki uporabljali
sistem (meniji, gumbi) ter obrazce in poročila, ki jih bo sistem potreboval.
3. Specifikacija podatkovnih baz – specificira kakšni podatki bodo
potrebni, kje in kako bodo shranjeni.
4. Programski dizajn – specificira katere programe je treba napisati in
kaj bo vsak program delal.

16
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Dizajn

• Rezultat vseh korakov v fazi dizajn je specifikacija sistema → dobi jo


programerska ekipa, ki jo mora implementirati v sistem.

• Na koncu faze dizajn – ponovno se naredi analiza izvedljivosti →


ocena ali se splača razviti sistem.

17
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Implementacija

• Faza, v kateri je sistem dejansko razvit.

• Najdaljši in najdražji del razvoja sistema.

• Faza implementacija je sestavljena iz treh korakov:


1. Gradnja sistema
2. Instalacija
3. Načrt za vzdrževanje sistema

18
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Implementacija - koraki

1. Gradnja sistema – gradnja in testiranje sistema


• Testiranje – zelo pomembno za odpravo napak v sistemu.

2. Instalacija – stari sistem se izklopi in novi se vklopi


• Direktni prestop na novi sistem
• Paralelni prestop – stari in novi sistem delujejo mesec-dva dokler se ne odkrijejo vse
napake v novem sistemu
• Prestop v fazah – novi sistem je najprej instaliran v enem delu organizacije, potem
pa še v drugih
• Najbolj pomemben del instalacije – izobraževanje zaposlenih o uporabi sistema

19
Življenjski cikel razvoja informacijskih sistemov:
Faze življenjskega cikla
Implementacija - koraki

3. Načrt za vzdrževanje sistema

• Formalno ali neformalno poročilo/pregled instalacije

• Sistematičen način za prepoznavanje potreb po manjših in večjih spremembah


sistema.

20
Pregled predavanja

• Uvod v analizo in dizajn informacijskih sistemov

• Življenjski cikel razvoja informacijskih sistemov

• Metodologije za razvoj sistemov

• Poenoten proces

• Poenoten jezik za modeliranje (Unified Modelling Language – UML)

• Vloge in spretnosti članov projektne ekipe

21
Metodologije za razvoj sistemov

• Metodologija – formaliziran pristop k implementaciji življenjskega cikla


razvoja IS.

• Obstajajo različne metodologije za razvoj sistemov, odvisno od


vrstnega reda in poudarka, ki ga imajo na različne faze razvoja
sistemov.

• Delitev metodologij glede na njihov fokus (orientacijo):


• Procesno-orientirane
• Podatkovno-orientirane
• Objektno-orientirane

22
Metodologije za razvoj sistemov

• Procesno-orientirane metodologije
• Fokus na definicijo procesov v sistemu
• Razvoj procesnih modelov
• Podatkovno-orientirane metodologije
• Fokus na vsebino in organizacijo podatkov v sistemu
• Razvoj podatkovnih modelov
• Objektno-orientirane metodologije
• Uravnovešen fokus med procesi in podatki
• Procesi in podatki v istem modelu
• Najprej se identificirajo osnovni gradniki sistema, potem se definirajo procesi in
podatki, ki so povezani z njimi

23
Metodologije za razvoj sistemov

• Delitev metodologij glede na razpored faz razvoja sistemov in čas


posvečen vsaki fazi:

• Strukturni dizajn

• Hiter razvoj aplikacij (Rapid Application Development - RAD)

• Agilni razvoj

24
Metodologije za razvoj sistemov:
Strukturni dizajn

• Formalen pristop k razvoju sistemov, ki se logično premika korak za


korakom po fazah razvoja.

• Večina procesno in podatkovno-orientiranih metodologij sledi


strukturnemu dizajnu razvoja sistemov.

• Dva tipa strukturnega dizajna/razvoja sistemov:


• Zaporedni (kaskadni) razvoj sistemov (Waterfall development)
• Paralelni razvoj sistemov

25
Metodologije za razvoj sistemov
Strukturni dizajn: Zaporedni (kaskadni) razvoj
• Prvotni (najstarejši) strukturni dizajn.

• Zaporedni ali kaskadni model


temelji na zaporednem izvajanju
faz.

• Ko se ena faza v celoti konča, se


začne naslednja.

• Po končanju vsake faze – obsežna


poročila, ki morajo biti odobrena s
strani naročitelja projekta zato, da
se nadaljuje z naslednjo fazo.
26
Metodologije za razvoj sistemov
Strukturni dizajn: Zaporedni (kaskadni) razvoj

• Značilnosti:
• Najstarejši razvojni model, značilen za
prve oblike strukturnega pristopa.
• Faze si sledijo zaporedno.
• Vračanje nazaj ni mogoče.
• Primeren za relativno kompleksne
projekte, če projektne zahteve dobro
razumemo in se med projektom ne
bodo bistveno spreminjale.
• Omogoča dobro in natančno
projektno vodenje.

27
Metodologije za razvoj sistemov
Strukturni dizajn: Zaporedni (kaskadni) razvoj

• Prednosti:
• Identifikacija sistemskih zahtev dolgo
preden se začne programiranje
sistema.
• Minimizira spremembe zahtev tekom
razvoja sistema.
• Pomaga zmanjševati količino
režijskega dela, ki ni v povezavi z
izdelavo programske opreme (na pr.,
vodenje projekta), saj je možno
načrtovanje v celoti izvesti vnaprej.

28
Metodologije za razvoj sistemov
Strukturni dizajn: Zaporedni (kaskadni) razvoj

• Slabosti:
• Dizajn sistema mora biti v celoti
specificiran preden se začne s
programiranjem.
• Veliko časa poteče med predlogom
sistema v fazi analize in dokončanjem
sistema.
• Ni fleksibilen – vsaka naknadna
sprememba zahteva veliko dodatnega
napora.
• Poslovno okolje se lahko spremeni v
obdobju od faze analize do dokončanja
sistema.

29
Metodologije za razvoj sistemov
Strukturni dizajn: Paralelni razvoj

• Paralelni razvoj poskuša odpraviti


težave z zamudami med fazo
analize in dokončanjem sistema.
• Dizajn in implementacija sistema
se ne izvajajo zaporedno:
• Najprej se naredi splošni dizajn
celotnega sistema
• Projekt se razdeli na podprojekte, ki se
implementirajo paralelno
• Po dokončanju vseh podprojektov –
integracija v končni sistem

30
Metodologije za razvoj sistemov
Strukturni dizajn: Paralelni razvoj

• Prednosti:
• Zmanjša čas dokončanja sistema –
manj sprememb v poslovnem okolju, ki
bi zahtevale spremembe sistema.

• Slabosti:
• Včasih podprojekti niso v celoti
neodvisni – dizajn enega podprojekta
lahko vpliva na dizajn drugega.
• Integracija posameznih podprojektov
je lahko kompleksna.

31
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij (Rapid Application Development – RAD)
• Novejše metodologije razvoja sistemov (iz 90tih let).
• Poskušajo odpraviti slabosti strukturnega dizajna:
• Pospešijo razvojni proces sistemov
• Omogočajo spremembe sistema v procesu razvoja
• Slabost teh metodologij – upravljanje s pričakovanji uporabnikov
• Zaradi hitrega in bolj kvalitetnega razvoja sistema se lahko bistveno spremenijo
pričakovanja uporabnikov in povečajo sistemske zahteve
• Tipi metodologij za hiter razvoj aplikacij:
• Iterativni razvoj (Phased development)
• Prototipen razvoj (Prototyping)
• Prototipen razvoj z opustitvijo (Throwaway prototyping)

32
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Iterativni razvoj

• Iterativni razvoj razdeli sistem na


vrsto različic, ki se razvijajo
zaporedno.

• V fazi analize – definiran celotni


koncept sistema.

• Naročnik sistema grupira sistemske


zahteve v vrsto različic sistema.

33
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Iterativni razvoj

• Najpomembnejše zahteve so
združene v prvi različici sistema →
dizajn in implementacija prve
različice sistema.
• Po končanju prve različice –
druga različica sistema
• Nove zahteve in ideje iz izkušenj z
uporabo prve različice sistema.
• Proces se nadaljuje dokler sistem
ni dokončan.

34
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Iterativni razvoj

Lastnosti iterativnega razvoja:


• Trajanje: od 2 tednov do 2 mesecev.
• Vsaka iteracija gre čez vse faze (ne z
enako intenzivnostjo).
• Naslednja iteracija se lahko začne
šele takrat, ko je prejšnja končana.
• Vsebina naslednje iteracije je
določena na osnovi rezultatov
prejšnje.
• Med izvajanjem iteracije ne
sprejemamo sprememb.

35
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Iterativni razvoj

Prednosti:

• Najbolj tvegani deli so razrešeni še


preden postane investicija velika.
• Začetne iteracije omogočijo zgodnje
povratne informacije s strani
uporabnikov.
• Napredek merimo z ocenjevanjem
izvedenega dela.
• Možna je predaja izvedenega dela
projekta še preden je dokončan celoten
projekt.

36
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Iterativni razvoj

Slabosti:

• Ne omogoča dobrega načrtovanja


poteka projekta.

• Ni mogoče točno predvideti, koliko


iteracij bo potrebnih za razvoj
končnega (dovolj dobrega) izdelka.

• Vodenje projekta je zahtevno.

37
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Prototipni razvoj
• Faze analiza, dizajn in
implementacija se izvajajo
sočasno in se ponavljajo dokler ni
sistem dokončan.

• Temelji na izdelavi prototipov in


njihovi postopni izboljšavi, dokler
ne dosežemo zadovoljive
kakovosti.

• Prototip označuje predhodno


izdelane in navadno še
nepopolne različice sistema ali
dele sistema.

38
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Prototipni razvoj

• Uporabniki testirajo prvi prototip


in podajo komentarje za
njegovo izboljšanje → ponovna
analiza, dizajn in
implementacija → razvoj
drugega prototipa itd.

• Ko prototip dobi zahtevane


funkcionalnosti se sprejme kot
novi sistem in se začne
uporabljati.

39
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Prototipni razvoj

Prednosti:
• Uporabniki zelo hitro dobijo
sistem, ki ga lahko uporabljajo,
čeprav ni dokončan.
• Napredek se hitro vidi – ni
dolgega čakanja na razvoj
sistema.
• Hitro in enostavno se
izpopolnjujejo zahteve.
• Omogoča lažje razumevanje
funkcionalnosti sistema.

40
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Prototipni razvoj

Slabosti:
• Zaradi hitrega razvoja je težko
izvajati temeljito analizo.
• Prototipi se pogosto s časom
bistveno spremenijo, kar
pomeni, da so bile prvotne
odločitve slabe
• To lahko predstavlja problem pri
razvoju kompleksnih sistemov, ker
se problemi odkrijejo šele pozno v
fazi razvoja.

41
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Prototipni razvoj z opustitvijo

• Podoben razvoj prototipnemu


razvoju → razvoj prototipov v
različnih fazah razvoja.

• Prototipi se uporabljajo na različen


način.

• Faza analize je zelo natančna.

• Razvoj prototipov za razumevanje


funkcionalnosti in tehnične zadeve
v zvezi s sistemom.

42
Metodologije za razvoj sistemov:
Hiter razvoj aplikacij: Prototipni razvoj z opustitvijo
• Prototipi se ne razvijejo v
končni sistem, vendar se
uporabljajo le za
razumevanje sistema.

• Primer: razvoj prototipne strani


za vnos podatkov v sistem.

• Ko se doseže zadostno
razumevanje funkcionalnosti
sistema
• Opustitev prototipa.
• Dizajn in implementacija
končnega sistema.
43
Metodologije za razvoj sistemov:
Agilni razvoj
• Metodologija za razvoj sistemov, ki se še razvija.

• Programersko-orientirana metodologija z malo pravil, ki jim je lahko


slediti.

• Odpravlja odvečno dokumentacijo in modeliranje.

• Poudarja enostaven, hiter in iterativen razvoj aplikacij.

• Običajno se uporablja v kombinaciji z objektno-orientiranimi


metodologijami.

• Ena metodologija agilnega razvoja – ekstremno programiranje (XP).


44
Metodologije za razvoj sistemov:
Agilni razvoj – Ekstremno programiranje
Značilnosti:
• Komunikacija
• Kontinuirana komunikacija z uporabniki
za hitre povratne informacije.
• Enostavnost
• Principi KISS (Keep It Simple and Stupid)
• Povratne informacije
• Postopne spremembe pri razvoju
sistema
• Kvaliteta
• Kvaliteta na prvem mestu, razvoj
spretnosti programerjev.
45
Metodologije za razvoj sistemov:
Agilni razvoj – Ekstremno programiranje

• Planiranje – umetno in kratko.

• Sledi iterativno izvajanje faz


analize, dizajna in implementacije.

• Programiranje in testiranje kode –


osnova ekstremnega
programiranja.

• Koda se testira na dnevnem nivoju.

46
Metodologije za razvoj sistemov:
Agilni razvoj – Ekstremno programiranje

Prednosti:

• Programerji uporabljajo standarde


programiranja.

• Hiter razvoj sistemov – hitrejši celo


od hitrega razvoja aplikacij (RAD).

• Razvoj se ne upočasnjuje z
zbiranjem zahtev.

• Dobro za majhne projekte.


47
Metodologije za razvoj sistemov:
Agilni razvoj – Ekstremno programiranje
Slabosti:

• Zahteva uigrano ekipo.

• Ni primerno za velike projekte.

• Zahteva velika disciplina, v


nasprotnem projekti postanejo ne
osredotočeni in kaotični.

• Oteženo vzdrževanje velikih


sistemov zaradi pomanjkanja
dokumentacije o analizi in dizajnu
(samo dokumentacija kode).
48
Metodologije za razvoj sistemov:
Kako izbrati metodologijo
• Izbira metodologije je težka – ni ene najboljše metodologije.

• Več kriterijev za izbiro metodologije:

• Jasnost uporabniških zahtev


• Če ni jasnih zahtev jih je težko napisati v obliki poročila.
• Uporabniki definirajo zahteve preko interakcije z delno razvitim sistemom.
• Prototipni razvoj in prototipni razvoj z opustitvijo – najboljša rešitev.

• Poznavanje tehnologije
• Če analitiki in programerji ne poznajo dobro tehnologije – zgodnja uporaba te
tehnologije v metodologiji veča možnosti za uspeh sistema.
• Najboljša izbira: prototipni razvoj z opustitvijo, iterativni razvoj.

49
Metodologije za razvoj sistemov:
Kako izbrati metodologijo
• Več kriterijev za izbiro metodologije (nadaljevanje):

• Kompleksnost sistema
• Kompleksni sistemi zahtevajo skrbna in natančna analiza in dizajn.
• Prototipni razvoj z opustitvijo omogoča natančno analizo in dizajn.
• Klasični strukturni dizajn je primeren za kompleksne sisteme, vendar počasen.

• Zanesljivost sistema
• Prototipni razvoj z opustitvijo – najbolj primerna metodologija, ker ima zelo natančno
analizo in dizajn in omogoča uporabnikom, da testirajo različne verzije sistema.
• Prototipni razvoj ni primeren, ker faze analize in dizajna niso tako natančne.

50
Metodologije za razvoj sistemov:
Kako izbrati metodologijo
• Več kriterijev za izbiro metodologije (nadaljevanje):
• Kratki časovni roki
• Hiter razvoj aplikacij (Rapid Application Development – RAD)
• Prototipni in iterativni razvoj – najboljši metodologiji.
• Najslabša izbira – kaskadni razvoj.

• Pravočasnost izvedbe
• Izziv - imeti pregled nad tem ali se posamezne faze projekta končajo pravočasno (v
predvidenem roku).
• Težko izvedljivo pri strukturnem dizajnu, ker sta dizajn in implementacija sistema na koncu
projekta.
• Najboljša izbira – metodologije hitrega razvoja aplikacij, ker se kritične odločitve o
dizajnu zgodijo zgodaj v projektu → večja sledljivost pravočasnosti projekta.

51
Metodologije za razvoj sistemov:
Kako izbrati metodologijo
Strukturirane Agilne
Hiter razvoj aplikacij
metodologije metodologije
Kriteriji Kaskadni Paralelni Iterativni Prototipni Prototipni razvoj z Ekstremno
razvoj razvoj razvoj razvoj opustitvijo programiranje
Nejasne Slaba Slaba Dobra Odlična Odlična Odlična
uporabniške
zahteve
Nepoznavanje Slaba Slaba Dobra Slaba Odlična Slaba
tehnologije
Kompleksni sistemi Dobra Dobra Dobra Slaba Odlična Slaba

Zanesljivi sistemi Dobra Dobra Dobra Slaba Odlična Dobra

Kratki časovni roki Slaba Dobra Odlična Odlična Dobra Odlična

Pravočasnost Slaba Slaba Odlična Odlična Dobra Dobra


izvedbe
52
Pregled predavanja

• Uvod v analizo in dizajn informacijskih sistemov

• Življenjski cikel razvoja informacijskih sistemov

• Metodologije za razvoj sistemov

• Poenoten proces

• Poenoten jezik za modeliranje (Unified Modelling Language – UML)

• Vloge in spretnosti članov projektne ekipe

53
Poenoten proces

Poenoten proces (Unified process) je metodologija, ki definira kje in kdaj


se uporabljajo različne tehnike objektno-orientiranega pristopa analize
in dizajna sistemov.

• Je dvodimenzionalen proces razvoja sistemov, ki je opisan z fazami in


delovnimi procesi (workflows).

• Faze:
• Začetek (Inception)
• Priprava (Elaboration)
• Gradnja sistema (Construction)
• Prehod (Transition)

54
Poenoten proces

• Delovni procesi:

• Poslovno modeliranje
• Zahteve
• Analiza
• Dizajn
• Implementacija
• Testiranje
• Uvajanje
• Vodenje projekta
• Konfiguriranje in upravljanje
sprememb
• Okolje
55
Poenoten proces

56
Poenoten proces:
Faze

• Faze poenotenega procesa


podpirajo sistemskega analitika pri
razvoju sistemov na iterativen in
postopen način.

• Faze opisujejo kako se sistem razvija


s časom.

• Odvisno od faze razvoja sistema se


aktivnosti gibljejo po delovnih
procesih.

• Krivulja na sliki → kakšne aktivnosti se


dogajajo v posameznih fazah.
57
Poenoten proces:
Faze
Začetek (Inception)

• Podobna faza kot faza planiranja


pri tradicionalnih pristopih analize
in dizajna sistemov.
• Vključuje analizo izvedljivosti:
• Tehnična izvedljivost: Ali imamo
tehnične zmožnosti za razvoj sistema?
• Ekonomska izvedljivost: Če razvijemo
sistem, ali bo ta prinesel dodano
poslovno vrednost podjetju?
• Organizacijska izvedljivost: Če
razvijemo sistem, ali ga bodo
uporabljali?

58
Poenoten proces:
Faze
Začetek (Inception)

• Za odgovor na vprašanja se
izvedejo delovni procesi: poslovno
modeliranje, zahteve ter analiza.
• Rezultati faze:
• Dokument, ki določa obseg projekta,
identificira primarne zahteve in
omejitve, definira začeten projektni
plan, opiše izvedljivost in riziko
povezan s projektom.
• Sprejetje potrebnega okolja za razvoj
sistema.

59
Poenoten proces:
Faze
Priprava (Elaboration)

• Najbolj pomembna faza pri


poenotenem procesu in O-O analiza
in dizajn sistemov.

• Glavni poudarek na poslovnih


procesih analiza in dizajn.

• Aktivnosti v fazi priprave:


• Zajem zahtev
• Razvoj strukturnih in vedenjskih modelov
• Opis podrobnosti kako bodo razviti
modeli uporabljeni pri razvoju sistema
60
Poenoten proces:
Faze

Priprava (Elaboration)

• Rezultati faze:

• Strukturni in vedenjski modeli.


• Prototipna verzija sistema

61
Poenoten proces:
Faze
Gradnja sistema (Construction)
• Se osredotoča predvsem na
programiranje.

• Najbolj prisoten delovni proces –


implementacija.

• Zahteve, analiza in dizajn – tudi


prisotni.

• Konfiguriranje in upravljanje
sprememb – zelo pomemben deloven
proces.
• Kontrola obstoječih verzij sistema in
sprememb v različnih verzijah.
62
Poenoten proces:
Faze
Gradnja sistema (Construction)

• Rezultati faze:

• Implementacija sistema, ki je
pripravljen za testiranje.

63
Poenoten proces:
Faze
Prehod (Transition)

• Faza prehoda je enaka fazi


implementacije pri tradicionalni
analizi in dizajnu sistemov.

• Procesi: poslovno modeliranje,


zahteve in analiza – zaključeni v
prejšnjih fazah.

• Odvisno od testiranja sistema – lahko


je potrebno ponoviti aktivnosti dizajna
in implementacije.

64
Poenoten proces:
Faze
Prehod (Transition)

• Rezultati faze:

• Končni informacijski sistem


• Navodila za uporabo sistema
• Načrt za nadgradnjo IS v
prihodnosti

65
Poenoten proces:
Delovni procesi
• Delovni procesi opisujejo naloge in
aktivnosti, ki so potrebni za razvoj
sistema.
• Inženirski delovni procesi:
• Poslovno modeliranje
• Zahteve
• Analiza
• Dizajn
• Implementacija
• Test
• Uvajanje
• Podporni delovni procesi:
• Konfiguriranje in upravljanje sprememb
• Vodenje projekta
• Okolje
66
Poenoten proces:
Inženirski delovni procesi
Poslovno modeliranje
• Razkriva poslovne probleme in
identificira potencialne projekte
v organizaciji.
• Cilj – zagotoviti, da vsi vključeni
v razvoj projekta razumejo kako
se bo planiran IS vključil v
poslovne procese organizacije.
• Se izvaja v začetni fazi razvoja.
• Odgovarja fazi planiranja v
tradicionalnem življenjskem
ciklu razvoja sistemov.

67
Poenoten proces:
Inženirski delovni procesi
Zahteve
• Pridobivanje funkcionalne in
nefunkcionalne zahteve.
• Zahteve se zbirajo od
naročnikov projekta, končnih
uporabnikov, strank…
• Različni načini zbiranja zahtev:
intervjuji, opazovanja, analiza
dokumentov, vprašalniki,…
• Dodatne zahteve se odkrijejo
tudi v procesu razvoja.
68
Poenoten proces:
Inženirski delovni procesi
Analiza

• Razvoj strukturnih in vedenjskih


diagramov, ki opisujejo sistem.

• Delovni proces analiza je


povezan s fazo priprave
(Elaboration).

• Dodatne analize se lahko


naredijo še v procesu razvoja.

69
Poenoten proces:
Inženirski delovni procesi
Dizajn
• Transformira modele iz delovnega
procesa analize v obliko, ki je
potrebna za implementacijo
sistema.
• Osredotoča se na rešitve, ki se
bodo izvajale v določenem okolju.
• Aktivnosti dizajna: dizajn
uporabniškega vmesnika, dizajn
podatkovne baze, arhitekturni
dizajn, optimizacija sistema…
• Povezan s fazami priprava
(Elaboration) in gradnja sistema
(Construction) v poenotenem
procesu.

70
Poenoten proces:
Inženirski delovni procesi
Implementacija

• Razvoj uporabnega sistema, na


osnovi modelov razvitih v prejšnjih
delovnih procesih.

• V primeru razvoja posameznih


podsistemov se v tem delovnem
procesu integrirajo.

• Povezana s fazami priprava


(Elaboration) in gradnja sistema
(Construction) v poenotenem
procesu.

71
Poenoten proces:
Inženirski delovni procesi
Testiranje

• Namen testiranja – povečanje


kvalitete sistema.
• Testiranje:
• Vseh modulov, ki se integrirajo v
sistem
• Sprejemljivost sistema s strani
uporabnikov
• Alfa testiranje programske opreme
• Povezano s fazami gradnja
sistema (Construction) in
prehod (Transition).
72
Poenoten proces:
Inženirski delovni procesi
Uvajanje

• Delovni proces povezan s fazo


prehod (Transition).
• Aktivnosti uvajanja: pakiranje
programske opreme, distribucija,
instalacija, beta testiranje,…
• Pri uvajanju novega sistema v
organizaciji se morajo vsi podatki in
obstoječa programska oprema
pretvoriti v nov sistem.
• Izobraževanje ljudi za uporabo
novega sistema.

73
Poenoten proces:
Podporni delovni procesi
Upravljanje projekta
• Delovni proces, ki je aktiven
skozi vse faze poenotenega
procesa.
• Zelo pomemben delovni
proces:
• Identifikacija in upravljanje z riziki
• Upravljanje z obsegom dela
• Izračun časa za dokončanje
aktivnosti in celoten projekt
• Izračun stroškov razvoja projekta
• Sledenje napredka razvoja projekta
74
Poenoten proces:
Podporni delovni procesi
Konfiguriranje in upravljanje
sprememb

• Namen – spremljanje
stanja/različice sistema.

• Shranjevanje in upravljanje z veliko


informacij o avtorju, času, lokaciji
in ostale podrobnosti sprememb
sistema.

• Povezan s fazami gradnja sistema


(Construction) in prehod
(Transition).

75
Poenoten proces:
Podporni delovni procesi
Okolje
• Orodje in procesi, ki jih
programerji rabijo za razvoj
sistema.
• Programersko okolje, orodja za
upravljanje projekta, orodja za
upravljanje konfiguracij.
• Delovni proces okolje vključuje
pridobivanje in instalacija teh
orodij.
• Povezano z vsemi fazami,
predvsem pa z začetno fazo.

76
Pregled predavanja

• Uvod v analizo in dizajn informacijskih sistemov

• Življenjski cikel razvoja informacijskih sistemov

• Metodologije za razvoj sistemov

• Poenoten proces

• Poenoten jezik za modeliranje (Unified Modelling Language – UML)

• Vloge in spretnosti članov projektne ekipe

77
Poenoten jezik za modeliranje
Unified modelling language - UML
• Do leta 1995 – objektni koncepti popularni, vendar implementirani na
različne načine s strani različnih razvijalcev sistemov.

• Leta 1995 – ustanovljena standardna zbirka tehnik za ustvarjanje


diagramov → Unified Modelling Language (UML)

• Cilj UML – zagotoviti skupno besedišče objektno-orientiranih terminov


in bogato zbirko tehnik za ustvarjanje diagramov za modeliranje
katerikoli sistem od faze analize do implementacije.

• Trenutna verzija – UML 2.5

78
Poenoten jezik za modeliranje
Unified modelling language - UML
• Tehnike za ustvarjanje diagramov.
• Tri vrste diagramov:
• Strukturni (Structural) diagrami
• Predstavljajo podatke in statične relacije v IS.

• Funkcionalni (Functional) diagrami


• Predstavljajo funkcionalnost IS.

• Vedenjski (Behavior) diagrami


• Omogočajo prikazovanje dinamičnih relacij med instancami in relacijami, ki predstavljajo
poslovni IS.
• Omogočajo modeliranje dinamičnega vedenja posameznih objektov skozi čas.

• Več o tem… v naslednjih predavanjih in vajah…

79
Pregled predavanja

• Uvod v analizo in dizajn informacijskih sistemov

• Življenjski cikel razvoja informacijskih sistemov

• Metodologije za razvoj sistemov

• Objektno-orientirana analiza in dizajn sistemov

• Poenoten proces

• Poenoten jezik za modeliranje (Unified Modelling Language – UML)

• Vloge in spretnosti članov projektne ekipe


80
Vloge in spretnosti članov projektne ekipe

• Projektna ekipa – sestavljena iz različnih ljudi.

• Za razvoj in vodenje projekta so potrebne različne spretnosti ekipe:

• Tehnične – razumevanje tehničnega okolja v organizaciji


• Poslovne – razumevanje o tem kako se lahko uporabijo IT za reševanje poslovnih
problemov
• Analitične – reševanje težav na projektnem in organizacijskem nivoju
• Medčloveške – komunikacija z različnimi ljudmi, predstavitve sistema
• Menedžerske - upravljanje z zaposlenimi, z riziki in pritiski
• Etične – poštenost, etičnost

81
Vloge in spretnosti članov projektne ekipe

• Poslovni analitik
• Osredotoča se na poslovne zadeve sistema: identifikacija poslovne vrednosti, ki jo
bo omogočil sistem, razvoj idej in predlogov o tem kako izboljšati poslovne
procese.
• Predstavlja interese naročnika in uporabnikov sistema.
• Pomaga v fazah planiranje in dizajn, vendar najbolj aktiven v fazi analize.

• Sistemski analitik
• Razvija ideje in predloge o tem kako lahko IT izboljša poslovni proces.
• Ustvarja nove poslovne procese s pomočjo poslovnega analitika.
• Dizajnira nove IS.
• Skrbi da so vsi standardi IS upoštevani.

82
Vloge in spretnosti članov projektne ekipe

• Infrastrukturni analitik
• Osredotoča se na tehnične zadeve o tem kako se bo sistem vklopil v obstoječo
tehnično infrastrukturo organizacije (strojna in programska oprema, omrežja,
podatkovne baze).
• Identificira spremembe infrastrukture, potrebne za podporo sistema.
• Upravlja s sistemom po njegovi instalaciji.

• Projektni menedžer
• Skrbi, da se projekt pravočasno konča, da se ne preseže proračun, da sistem
omogoča vse funkcionalnosti, ki so bile obljubljene.
• Upravlja s člani ekipe, razvija projektni plan, razporeja resurse, je prvi kontakt pri
vprašanjih v zvezi s projektom.

83
Pregled predavanja

• Uvod v analizo in dizajn informacijskih sistemov

• Življenjski cikel razvoja informacijskih sistemov

• Metodologije za razvoj sistemov

• Poenoten proces

• Poenoten jezik za modeliranje (Unified Modelling Language – UML)

• Vloge in spretnosti članov projektne ekipe

84

You might also like