Programski inženiringProgramski inženiring
(Software Engeneering)(Software Engeneering)
Programsko Programsko inženirstvoinženirstvo
Kaj je SWE? (a spet teorija)Kaj je SWE? (a spet teorija)Zakaj SWE? (kako bi bilo, če bi se temu izognili)Zakaj SWE? (kako bi bilo, če bi se temu izognili)
SWE da ali ne?SWE da ali ne?
Izhodišče: ali ti je všeč, da je SW tako buggy in hkrati tako Izhodišče: ali ti je všeč, da je SW tako buggy in hkrati tako drag?drag?
Stopnja napak
Čas
Idealna krivulja
Dejansko stanje – posledica programskega
NEINŽENIRINGA!!!sprememba
33
Programsko inženirstvoProgramsko inženirstvo(software engineering – SWE)(software engineering – SWE)
BoehmBoehm:: SWE je praktična uporaba računalnišSWE je praktična uporaba računalništva, informatike, tva, informatike, managementa in drugih znanosti za analizo, načrtovanje, konstrukcijo managementa in drugih znanosti za analizo, načrtovanje, konstrukcijo in vzdrževanje programske opreme in pridružene dokumentacijein vzdrževanje programske opreme in pridružene dokumentacije
Dennis: Dennis: SWE je uporaba principov, veščin in umetnosti pri SWE je uporaba principov, veščin in umetnosti pri načrtovanju in konstruiranju programov in programskih sistemov.načrtovanju in konstruiranju programov in programskih sistemov.
Parnas: Parnas: SWE je programiranje, če je izpolnjen vsaj en od SWE je programiranje, če je izpolnjen vsaj en od naslednjih dveh pogojev:naslednjih dveh pogojev:– V razvoj programa je vključena več kot ena osebaV razvoj programa je vključena več kot ena oseba– Proizvedena bo več kot ena verzija programaProizvedena bo več kot ena verzija programa
Fairley:Fairley: SWE je tehnološka in managerska disciplina, ki se ukvarja SWE je tehnološka in managerska disciplina, ki se ukvarja s sistematično proizvodnjo in vzdrževanjem programskih izdelkov, ki so s sistematično proizvodnjo in vzdrževanjem programskih izdelkov, ki so razviti in prilagojeni pravočasno in sicer v okviru načrtovanega razviti in prilagojeni pravočasno in sicer v okviru načrtovanega proračuna (stroškov).proračuna (stroškov).
D E F I N I C I J E (opredelitev)
44
Programsko inženirstvo Programsko inženirstvo (nad.)(nad.)
Pomberger & Blaschek: Pomberger & Blaschek: SWE se praktična uporaba SWE se praktična uporaba znanosti za ekonomično produkcijo in uporabo visoko kakovostne znanosti za ekonomično produkcijo in uporabo visoko kakovostne programske opreme.programske opreme.
‘‘Po domače’: Po domače’: SWE uporaba tehničnih in ne-tehničnih znanj SWE uporaba tehničnih in ne-tehničnih znanj pri razvoju, obratovanju in vzdrževanju programske opreme, s pri razvoju, obratovanju in vzdrževanju programske opreme, s katero so zadovoljni uporabniki in razvijalci.katero so zadovoljni uporabniki in razvijalci.
Okolje programskega inženirstva Okolje programskega inženirstva – sistem računalnikov, podporne programske opreme, pripomočkov, procedur sistem računalnikov, podporne programske opreme, pripomočkov, procedur
in podpornega osebje, ki razvijalcem programske opreme zagotavlja in podpornega osebje, ki razvijalcem programske opreme zagotavlja potrebne pogoje, avtomatizacijo procesov, metodologije in orodja.potrebne pogoje, avtomatizacijo procesov, metodologije in orodja.
D E F I N I C I J E (opredelitev)
55
Problemi razvoja velikih Problemi razvoja velikih programskih sistemovprogramskih sistemov
Pravilnost oz. nepredvidljiva kakovost končnega produktaPravilnost oz. nepredvidljiva kakovost končnega produkta Učinkovitost oz nizka produktivnost osebja in skupinUčinkovitost oz nizka produktivnost osebja in skupin Obvladovanje kompleksnosti sistemaObvladovanje kompleksnosti sistema Zanesljivost sistemaZanesljivost sistema Fleksibilnost sistemaFleksibilnost sistema Slaba / pomanjkljiva dokumentacijaSlaba / pomanjkljiva dokumentacija Slabo vodenje / organizacija projektovSlabo vodenje / organizacija projektov Predolgi razvojni cikliPredolgi razvojni cikli Pomanjkanje Pomanjkanje kadra za razvoj programske opremekadra za razvoj programske opreme Visoki stroški razvojaVisoki stroški razvoja Visoki stroški vzdrževanjaVisoki stroški vzdrževanja
POSLEDICEPOSLEDICE Astronomska cena programskih rešitevAstronomska cena programskih rešitev Nezadovoljni uporabnikiNezadovoljni uporabniki Nezadovoljni razvijalciNezadovoljni razvijalci
66
Vzroki za probleme pri Vzroki za probleme pri razvoju SWrazvoju SW
Proces razvoja je v teoriji in praksi še vedno relativno slabo opredeljen Proces razvoja je v teoriji in praksi še vedno relativno slabo opredeljen (?ali pa enostavno ne poznamo teorije?)(?ali pa enostavno ne poznamo teorije?)
Uporaba zastarelih/ lastnih improviziranih metod razvijanja ISUporaba zastarelih/ lastnih improviziranih metod razvijanja IS
Nezadostna uporaba računalniške podpore pri razvijanju ISNezadostna uporaba računalniške podpore pri razvijanju IS
Pomanjkljivo metodološko znanje razvijalcev ISPomanjkljivo metodološko znanje razvijalcev IS
Nezadostno upoštevanje Nezadostno upoštevanje dejstva, da informacijski procesi in sistemi za dejstva, da informacijski procesi in sistemi za različne ravni in načine upravljanja zahtevajo različne metode različne ravni in načine upravljanja zahtevajo različne metode njihovega razvijanjanjihovega razvijanja
77
Atributi kakovosti SWAtributi kakovosti SW
Atributi kakovosti SW
Pravilnost Prijaznost UčinkovitostMožnost
vzdrževanjaPortabilnost
Primernost Učljivost Berljivost Razširljivost
Možnosttestiranja
Robustnost
88
Glavni vzroki za (ne)uspeh Glavni vzroki za (ne)uspeh SWSW
Zahteve uporabnikov so napačno ali le delno zbrane;
Zahteve uporabnikov se prepogosto spreminjajo;
Uporabniki niso pripravljeni dajati zadostne resurse projektom IT;
Uporabniki ne želijo sodelovati z razvijalci Uporabniki imajo nerealna pričakovanja Sistem ni več pomoč / benefikacija za
uporabnike; Razvijalci ‘niso kos’ svoji nalogi.
99
Dobri načrti so delo dobrih Dobri načrti so delo dobrih načrtovalcevnačrtovalcev
Najeti najboljše načrtovalce Načrtovalcem zagotoviti permanentno
izobraževanje in ispopolnjevanje; Podpirati izmenjavo informacij in znanj ter
interakcijo med načrtovalci; Motivirati načrtovalce (odstraniti ovire) in
usmeriti njihove napore v produktivno delo; Ponuditi dobro delovno okolje Uskladiti cilje posameznikov z strategijo in
cilji organizacije Dati poudarek na timskem delu
1010
Mere za zagotavljanje kakovosti Mere za zagotavljanje kakovosti SWSW
KonstruktivneKonstruktivne– Dosledna uporaba metod v vseh fazah razvojnega procesaDosledna uporaba metod v vseh fazah razvojnega procesa– Uporaba ustreznega razvojnega orodjaUporaba ustreznega razvojnega orodja– Razvoj SW na osnovi visoko kakovostnih pol-produktovRazvoj SW na osnovi visoko kakovostnih pol-produktov– Dosledno pisanje/vzdrževanje razvojne dokumentacijeDosledno pisanje/vzdrževanje razvojne dokumentacije
AnalitičneAnalitične– Statična analiza programaStatična analiza programa– Dinamična analiza programaDinamična analiza programa– Sistematično izbiranje testnih primerovSistematično izbiranje testnih primerov– Konsistentno beleženje rezultatov analizKonsistentno beleženje rezultatov analiz
OrganizacijskeOrganizacijske– Nenehno (permanentno) izobraževanje razvijalcevNenehno (permanentno) izobraževanje razvijalcev– Institucionalizacija zagotavljanja kakovosti (uvedba standardov ISO, ANSI, Institucionalizacija zagotavljanja kakovosti (uvedba standardov ISO, ANSI,
IEEE…)IEEE…)
1111
Večplastnost programskega Večplastnost programskega inženirstvainženirstva
Orodja
Metode
Usmerjenost na procese
Usmerjenost na kakovost
1212
Življenjski cikel programske Življenjski cikel programske opremeopreme
(SDLC - System Development Life Cycle)(SDLC - System Development Life Cycle)
1313
Življenjski cikelŽivljenjski cikel prične se z zasnovo in konča z vzdrževanjem pri prične se z zasnovo in konča z vzdrževanjem pri
uporabnikuuporabniku razvojni proces razvojni proces razčlenimorazčlenimo na zaporedje medsebojno na zaporedje medsebojno
odvisnih aktivnosti, ki temeljijo na začetnih potrebah po odvisnih aktivnosti, ki temeljijo na začetnih potrebah po izdelavi uporabnega produktaizdelavi uporabnega produkta
zakaj “cikel" - vsak razviti produkt generira nove potrebezakaj “cikel" - vsak razviti produkt generira nove potrebe
Definicija (standard ANSI/IEEE Std 792-1983):– življenjski cikel programske opreme = nabor diskretnih
aktivnosti v času razvoja programske opreme in programskih sistemov
– faza življenjskega cikla = čas izvajanja posameznih aktivnosti (tudi sama aktivnost)
1414
Faze življenjskega cikla programske opreme
ProblemProblem
Analiza zahtev
Specifikacija (opredelitev)
sistema
Načrtovanje sistema in komponent
Implementacija intestiranje komponent
Testiranje sistema
Delovanje invzdrževanje
1515
Faze življenjskega ciklaFaze življenjskega cikla1. analiza zahtev1. analiza zahtev
vključuje:vključuje:analiziranje programskega problema analiziranje programskega problema (funkcionalen opis) in (funkcionalen opis) in specifikacijspecifikacijee želenega obnašanja grajenegaželenega obnašanja grajenega sistema (funkcionalne zahteve in specifikacije) sistema (funkcionalne zahteve in specifikacije) rezultat:rezultat:Software Requirements SpecificationsSoftware Requirements Specifications oz. oz. Specifikacije Zahtev Specifikacije Zahtev PProgramske rogramske OOpremepreme
SZPO opisujeSZPO opisuje: : funkcionalne zahteve, znafunkcionalne zahteve, značčilnosti strojnega okolja, obliko ilnosti strojnega okolja, obliko uporabniških vmesnikov in performanuporabniških vmesnikov in performanččne cilje oz. zahtevane zmogljivostine cilje oz. zahtevane zmogljivosti
1616
Faze življenjskega ciklaFaze življenjskega cikla1. analiza zahtev (nad.)1. analiza zahtev (nad.)
aaktivnosti faze ktivnosti faze analize loanalize loččimo v imo v 22 skupini: skupini: analizanalizaa problema problema
– rrezultat ezultat = = popolno razumevanje problemskega podropopolno razumevanje problemskega področčjajaopis produktaopis produkta
– rezultat = rezultat = skladen in kompleten dokument programskih specifikacijskladen in kompleten dokument programskih specifikacijaktivnosti obeh skupin ne izvajamo zaporedno, temveaktivnosti obeh skupin ne izvajamo zaporedno, temvečč so soččasnoasno
v tej fazi v tej fazi odgovorimo na vprašanje: odgovorimo na vprašanje: KAJKAJ POTREBUJEMOPOTREBUJEMO oz.oz. kaj naj bi grajeni programski sistem zagotavljal kaj naj bi grajeni programski sistem zagotavljal
1717
Faze življenjskega ciklaFaze življenjskega cikla2. načrtovanje2. načrtovanje
vključuje:vključuje:preliminarno načrtovanjepreliminarno načrtovanje – – dekompozicijdekompozicijaa (razčenitev) (razčenitev) programskega programskega sistema v njegove dejanske konsistentne komponentesistema v njegove dejanske konsistentne komponente in in interaktivninteraktivna a razgradrazgradnjanja te tehh komponent v vedno manjše podkomponente, dokler niso dovolj komponent v vedno manjše podkomponente, dokler niso dovolj majhne, da jih lahko ljudje brez težav razumejomajhne, da jih lahko ljudje brez težav razumejovvsak modul je dokumentiransak modul je dokumentiran - - opisani opisani so so vhodi, izhodi in funkcije. vhodi, izhodi in funkcije. podrobno načrtovanje podrobno načrtovanje – za vsak modul – za vsak modul definiramo in dokumentiramo definiramo in dokumentiramo algoritme algoritme podrobno načrtovanje podrobno načrtovanje – za vsak modul – za vsak modul definiramo in dokumentiramo definiramo in dokumentiramo algoritme algoritme rezultati:rezultati:
– modularnmodularnaa razgradnj razgradnjaa– definicijdefinicijaa strukture podatkov strukture podatkov– definicijdefinicijaa formata datotek formata datotek– opis pomembnejših algoritmovopis pomembnejših algoritmov
v tej fazi odgovorimo na vprašanje: v tej fazi odgovorimo na vprašanje: KAKAKO KO oz.oz. ka kako bomo zadovoljili identificirane zahteve oz. obnašanje sistemako bomo zadovoljili identificirane zahteve oz. obnašanje sistema
1818
Faze življenjskega ciklaFaze življenjskega cikla2. načrtovanje (nad.)2. načrtovanje (nad.)
rezultat:rezultat:– modularnmodularnaa razgradnj razgradnjaa– definicijdefinicijaa strukture podatkov strukture podatkov– definicijdefinicijaa formata datotek formata datotek– opis pomembnejših algoritmovopis pomembnejših algoritmov
v tej fazi odgovorimo na vprašanje: v tej fazi odgovorimo na vprašanje: KAKAKO KO
oz.oz. ka kako bomo zadovoljili identificirane zahteve oz. ko bomo zadovoljili identificirane zahteve oz. obnašanje sistemaobnašanje sistema
1919
Faze življenjskega ciklaFaze življenjskega cikla3. implementacija3. implementacija
iizvedemo kodiranjezvedemo kodiranjetransformacijtransformacijaa algoritmov v ra algoritmov v raččunalniku razumljiv jezikunalniku razumljiv jeziktestiramo in testiramo in ččistimo napake istimo napake vsakega modula, specificiranega pri vsakega modula, specificiranega pri nanaččrtovanjurtovanju
2020
Faze življenjskega ciklaFaze življenjskega cikla4. testiranje in integracija4. testiranje in integracija
testiranje posameznih modulovtestiranje posameznih modulovosredotoosredotoččimo na del programa, da lažje ugotovimo in odimo na del programa, da lažje ugotovimo in odsstranimo napaketranimo napakekkontroliramo tudi obnašanje modula glede na podane specifikacijeontroliramo tudi obnašanje modula glede na podane specifikacije ((funkcionalno testiranjefunkcionalno testiranje))integracijsko testiranjeintegracijsko testiranježe stestirane module že stestirane module integriramo oz. povežemo integriramo oz. povežemo ((združimozdružimo) ) v enotno v enotno programsko strukturo ter jih testiramo programsko strukturo ter jih testiramo ((testiranje programskih komponent)testiranje programskih komponent)sistemsko testiranjesistemsko testiranjepreverimo, preverimo, ali ali se celoten programski sistem, postavljen v dolose celoten programski sistem, postavljen v določčeno strojno eno strojno okolje, obnaša ustrezno podanim specifikacijam zahtev programske opremeokolje, obnaša ustrezno podanim specifikacijam zahtev programske opreme
2121
Faze življenjskega ciklaFaze življenjskega cikla5. prenos v ciljno okolje / uporaba5. prenos v ciljno okolje / uporaba
izroizročičimo programsko mo programsko in in pripadajopripadajoččo strojno opremoo strojno opremo začne se uporaba sistemazačne se uporaba sistema
6. vzdrževanje6. vzdrževanje
7. umik iz uporabe
neprestano iskanje napak in njihovo odstranjevanjeneprestano iskanje napak in njihovo odstranjevanje razširitev sistemarazširitev sistema
2222
Modeli življenjskega Modeli življenjskega ciklacikla
Klasični pristopi:Klasični pristopi: SLAM-DUNK modelSLAM-DUNK model BAROBAROČČNI modelNI model KASKADNI modelKASKADNI model KASKADNI model, razširjen s prototipno komponentoKASKADNI model, razširjen s prototipno komponento SPIRALNI modelSPIRALNI model
Objektni pristopi:Objektni pristopi: Unified ProcessUnified Process
2323
Slam- dunk modelSlam- dunk model
najbanalnejši in najpogosteje uporabljen modelnajbanalnejši in najpogosteje uporabljen model izrazito izrazito negativennegativen primer primer na zana začčetku se zaetku se začčne tudi kodiranjene tudi kodiranje filozofija uporabnika metodefilozofija uporabnika metode:: preprosteje je kodirati, odkrivati in popravljati preprosteje je kodirati, odkrivati in popravljati
napake kot pa izgubljati napake kot pa izgubljati ččas z "znanostjo"as z "znanostjo" - - psihološko ozadjepsihološko ozadje obobččutek, da lahko brez natanutek, da lahko brez natanččne razgradnje pristopimo k realizaciji, saj ne razgradnje pristopimo k realizaciji, saj
imamo "vse v glavi"imamo "vse v glavi" ttakšne projekte imenujemo tudi "kmalu bo gotovo", zanje pa je znaakšne projekte imenujemo tudi "kmalu bo gotovo", zanje pa je značčilno, da ilno, da
vedno vedno zamujajozamujajo ali pa nikoli niso gotovi ali pa nikoli niso gotovi
2424
Baročni modelBaročni model
vnaša disciplino v prej opisan "slam-dunk" modelvnaša disciplino v prej opisan "slam-dunk" model bbistvo modelaistvo modela: : predhodna faza predhodna faza se se konkončča pred naslednjo fazo a pred naslednjo fazo - t- ta model a model
lahko imenujemo tudi "lahko imenujemo tudi "etapni modeletapni model"" barobaroččni model uzakonjuje ni model uzakonjuje pretirano disciplinopretirano disciplino zahteve zahteve so so vedno spreminjajovedno spreminjajoččee => =>paradoks, faza analizeparadoks, faza analize se se nikoli ne nikoli ne
konkonččaa vv realni okvir lahko ta proces spravimo le tako, da se fazi analize in realni okvir lahko ta proces spravimo le tako, da se fazi analize in
snovanja delno prekrivatasnovanja delno prekrivata barobaroččni model enostavno ne delujeni model enostavno ne deluje,, ker razvoj programske opreme ni ker razvoj programske opreme ni
deterministideterminističčen procesen proces tata model model je je prispeval k razvoju realnejšega "kaskadnega" modelaprispeval k razvoju realnejšega "kaskadnega" modela
2525
Kaskadni modelKaskadni model
Analiza (KAJ?)
Načrtovanje (KAKO?)
Implementacija (NAREDI)
Testiranje (PREIZKUSI)
Prenos v ciljno okolje
Uporaba in vzdrževanje
Pomanjkljivost: predolg čas porabljen od začetka do implementacije.
Rešitev – uporaba prototipov
2626
PrototipiranjePrototipiranjeCilji prototipiranja:Cilji prototipiranja:
– oddaljiti se od stroge zaporednostioddaljiti se od stroge zaporednosti– pospešiti odzivni časpospešiti odzivni čas– zmanjšati tveganje za stranko in razvijalcazmanjšati tveganje za stranko in razvijalca– cenenost in hitrostcenenost in hitrost– nepopolno, vendar da nazorne rezultatenepopolno, vendar da nazorne rezultate
PrototipPrototip - delna implementacija sistema, narejena s - delna implementacija sistema, narejena s primarnim namenom, da omogoči uporabniku, stranki ali primarnim namenom, da omogoči uporabniku, stranki ali razvijalcu čim lažjo razvijalcu čim lažjo seznanitev s problemom ali njegovo seznanitev s problemom ali njegovo rešitvijorešitvijo.. (A. Davis (A. Davis))
2727
Metodi prototipiranjaMetodi prototipiranjametoda zavračanjametoda zavračanja ( (throw-awaythrow-away))
–ustrezna za raziskovalne in eksperimentalne prototipeustrezna za raziskovalne in eksperimentalne prototipe–zgradimo hiter in robustenzgradimo hiter in robusten ((quick-and-dirtyquick-and-dirty) prototip) prototip, ki ga , ki ga predstavimo predstavimo uporabnikom z namenom, da skupaj z njimi:uporabnikom z namenom, da skupaj z njimi:
ugotovimougotovimo izvedljivost želja izvedljivost želja (zahtev)(zahtev) potrdimo potrebnost oz. nujnost posameznih funkcijpotrdimo potrebnost oz. nujnost posameznih funkcij odkrijemo manjkajočeodkrijemo manjkajoče ( (nepodanenepodane)) zahteve zahteve raraziščemo možnosti razvoja ustreznega uporabniškega vmesnika.ziščemo možnosti razvoja ustreznega uporabniškega vmesnika.
–po pridobitvi vsega potrebnega znanja o problemu in o rešitvah prototip po pridobitvi vsega potrebnega znanja o problemu in o rešitvah prototip zavržemo in začnemo razvijati sistemzavržemo in začnemo razvijati sistem
razvojna metodarazvojna metoda ((evolutionaryevolutionary))–ustrezna za razvojne prototipeustrezna za razvojne prototipe–sistematičen pristop pri izgradnji, prototip preraste v sam sistemsistematičen pristop pri izgradnji, prototip preraste v sam sistem
2828
Spiralni modelSpiralni modeldoloči cilje,alternative,omejitve
ovrednoti alternative, identificiraj in zmanjšaj tveganja
razvoj&verifikacija izdelka
načrtovanje naslednje faze
analiza tv
eganja
podrobnonačrtovanje
test &instalacija
načrt zahtev
načrt razvoja
načrt izvedbe
p r o t o t i p i
zahtevesistemsko
implement
načrtovanje
principi
2929
Analiza spiralnega modelaAnaliza spiralnega modela
– omogoča boljšo oceno tveganjaomogoča boljšo oceno tveganja– mešanica čistega strukturiranega in fleksibilnega mešanica čistega strukturiranega in fleksibilnega
prototipnega modelaprototipnega modela– podpira hitre odzive in zagotavlja kakovostpodpira hitre odzive in zagotavlja kakovost
3030
Preverjanje rezultatovPreverjanje rezultatovVALIDACIJAVALIDACIJA preverjanje ustreznosti programskega izdelkapreverjanje ustreznosti programskega izdelka AAli gradim li gradim pravi produktpravi produkt??
VERIFIKACIJAVERIFIKACIJA preverjanje pravilnosti programskega izdelkapreverjanje pravilnosti programskega izdelka AAli gradim li gradim produkt pravilnoprodukt pravilno??
Dokaz pomena sprotnega preverjanjaRazmerje stroškov za odpravljanje napake, ki je odkrita
v fazi analize zahtev : v fazi vzdrževanja = 1 : 200
Značilno za XP (eXtreme programming)
3131
Dva inženirska pristopaDva inženirska pristopa
RAZVOJNO INŽENIRSTVO•proizvede nov sistem in izhaja iz začetnih postavk ter danosti
OBRNJENO INŽENIRSTVO•izhaja iz sistema, ki obstaja in deluje•proces razstavitve in analize obstoječega fizičnega podatkovnega in procesnega modela IS in njegova vnovična obnovljena ali spremenjena izgradnja•vzroki: uvedba sodobnejše tehnologije ali spremenjene zahteve uporabnikov•uporaba: za vzdrževanje, izboljševanje, spreminjanje ali ažuriranje informacijskega sistema ali za celotno zamenjavo z novim sistemom
3232
Vidiki razvoja programskih rešitevVidiki razvoja programskih rešitev
PProcesni vidikrocesni vidik => Diagram toka podatkov (DFD) => Diagram toka podatkov (DFD)oopisuje transformacije nad podatkipisuje transformacije nad podatkipoenostavljena notacijapoenostavljena notacija: : Vhod --> Proces --> IzhodVhod --> Proces --> Izhodoobravnava procesno obnašanje sistema - kako sistem pretvori vhode v izhodebravnava procesno obnašanje sistema - kako sistem pretvori vhode v izhode
Podatkovni (informacijskiPodatkovni (informacijski)) vidik vidik => Entitetno relacijski diagrami (ERD) in => Entitetno relacijski diagrami (ERD) in podatkovni slovarjipodatkovni slovarjioopisuje obliko informacij, ki jih mora sistem procesiratipisuje obliko informacij, ki jih mora sistem procesiratinakazuje medsebojne relacije med informacijskimi enotaminakazuje medsebojne relacije med informacijskimi enotaminnanaša se na strukturo in uporabo podatkov v sistemuanaša se na strukturo in uporabo podatkov v sistemu
DDogodkovni vidikogodkovni vidikoopisuje obnašanje sistema v realnem časupisuje obnašanje sistema v realnem časunnanaša se na dinamično obnašanje sistemaanaša se na dinamično obnašanje sistema => => kako si dogodki sledijo v kako si dogodki sledijo v časovnem zaporedju časovnem zaporedju kontrolnkontrolnii diagram diagramii in in diagramdiagramii prehajanja stanj prehajanja stanj
3333
Orodja CASEOrodja CASE
Computer Aided Software EngineeringComputer Aided Software Engineering CASE CASE - - tehnologija avtomatizacije razvoja in vdrževanja tehnologija avtomatizacije razvoja in vdrževanja
programske opreme oz. sistemovprogramske opreme oz. sistemov
Osnovna idejaOsnovna ideja: : s povezovanjem in avtomatizacijo vseh faz s povezovanjem in avtomatizacijo vseh faz življenjskega cikla programskih sistemov zagotoviti popolnoma življenjskega cikla programskih sistemov zagotoviti popolnoma integrirana orodjaintegrirana orodja, ki bodo , ki bodo zmanjšala trud, potreben za zmanjšala trud, potreben za razvoj in vzdrževanje programske opremerazvoj in vzdrževanje programske opreme
3434
Pridobitve CASEPridobitve CASE praktičnost strukturnih in objektnih tehnik praktičnost strukturnih in objektnih tehnik vsiljuje programsko/informacijsko inženirstvo vsiljuje programsko/informacijsko inženirstvo izboljšana kvaliteta programske opreme (avtomatske izboljšana kvaliteta programske opreme (avtomatske
kontrole, preverjanja) kontrole, preverjanja) praktičnost prototipiranja praktičnost prototipiranja lažje, enostavnejše vzdrževanje lažje, enostavnejše vzdrževanje skrajšan čas razvoja skrajšan čas razvoja razvijalci se lahko osredotočijo na kreativni del razvoja razvijalci se lahko osredotočijo na kreativni del razvoja ponovna uporaba programskih komponentponovna uporaba programskih komponent
3535
Funkcije CASEFunkcije CASE DDiagramska orodjaiagramska orodja // risanje diagramov, // risanje diagramov, kreiranje grafičnih specifikacijkreiranje grafičnih specifikacij
Oblikovalniki Oblikovalniki // za kreiranje obrazcev, poročil, specifikacij, preprostih // za kreiranje obrazcev, poročil, specifikacij, preprostih prototipovprototipov
Podatkovni slovarjiPodatkovni slovarji
PPreverjanje specifikacijreverjanje specifikacij // // avtomatsko odkrivanje nepopolnih, avtomatsko odkrivanje nepopolnih, sintaktično nepravilnih in nekonsistentnih specifikacij sintaktično nepravilnih in nekonsistentnih specifikacij
GGeneratorji kodeeneratorji kode // // generiranje izvedljive kode avtomatično (direktno) iz generiranje izvedljive kode avtomatično (direktno) iz grafičnih specifikacij sistema grafičnih specifikacij sistema
GGeneratorji dokumentacijeeneratorji dokumentacije // // za pridobivanje tehnične in za pridobivanje tehnične in uporabniške dokumentacije, ki jo zahtevajo uporabniške dokumentacije, ki jo zahtevajo razvojne razvojne tehniketehnike
3636
CASE repozitorijCASE repozitorij
mehanizem za hranjenje in organizacijo mehanizem za hranjenje in organizacijo vsehvseh informacij o programskem sistemu: informacij o programskem sistemu:
informacije oinformacije o problemu, ki ga rešujemoproblemu, ki ga rešujemo inf. o inf. o problemskem področju oz. domeniproblemskem področju oz. domeni inf. o inf. o procesu, ki ga uporabljamoprocesu, ki ga uporabljamo podatkovne podatkovne in procesni in procesni modelmodelii prototipprototipii resursresursii projekta in zgodovin projekta in zgodovinaa, , organizacijski kontekst ... organizacijski kontekst ... omogoča omogoča praktično uporabo praktično uporabo konceptkonceptaa ponovne uporabnosti (reusability) ponovne uporabnosti (reusability) => =>
dvig produktivnostidvig produktivnosti // // ne gre le za ponovno uporabo izvorne kode modulov, temveč ne gre le za ponovno uporabo izvorne kode modulov, temveč tudi projektnih planov, prototipnih modelov, specifikacijtudi projektnih planov, prototipnih modelov, specifikacij, .., ..
3737
Cilji CASECilji CASESSpremenipremenititi način gradnje programskih sistemov način gradnje programskih sistemovZagotoviti:Zagotoviti:1. 1. Interaktivno razvojno okoljeInteraktivno razvojno okolje ////hitri odzivni čashitri odzivni časii, namenskimi , namenskimi
resursi in zgodnjresursi in zgodnjee preverjanje preverjanje//iskanjeiskanje/ / izločanje napak izločanje napak
2. 2. AvtomatizacijoAvtomatizacijo mnogih mnogih opravilopravil razvoja in vzdrževanja razvoja in vzdrževanja 3. 3. Vizualno programiranjeVizualno programiranje // // zmogljiv uporabniškzmogljiv uporabniškii vmesnika vmesnika
Končni cilj CASE tehnologije:
s pomočjo integriranih programskih orodij avtomatizirati celoten življenjski cikel programske opreme
3838
Kategorije CASEKategorije CASE
UUpper CASE (front-end CASE) pper CASE (front-end CASE) – zgodnje faze življenjskega cikla (analiza in zgodnje faze življenjskega cikla (analiza in
načrtovanje) načrtovanje) LLower CASE (back-end CASE) ower CASE (back-end CASE)
– kasnejše faze življenjskega cikla (implementacija in kasnejše faze življenjskega cikla (implementacija in vzdrževanje) vzdrževanje)
IIntegrirana (integrated) CASEntegrirana (integrated) CASE
3939
Nekatera orodja CASENekatera orodja CASE POSE (Picture Oriented Software Engineering) POSE (Picture Oriented Software Engineering) PowerDesignerPowerDesigner Oracle Designer Oracle Designer Rational ROSE Rational ROSE Popkin System Architect Popkin System Architect CA CoolCA Cool Case StudioCase Studio DBDesignerDBDesigner
Integracija CASE in RADIntegracija CASE in RAD Microsoft Visual Studio (Enterprise)Microsoft Visual Studio (Enterprise) IBM VisualAgeIBM VisualAge Borland Enterprise StudioBorland Enterprise Studio
Rapid Application Development
4040
Mal’ za šalo, mal’ za resMal’ za šalo, mal’ za res
alias alias ‘Življenje nekega programa’‘Življenje nekega programa’1.1. Programer je napisal in oddal program, za katerega verjame, da je brez napak.Programer je napisal in oddal program, za katerega verjame, da je brez napak.2.2. Program je testiran, najdenih 20 napak.Program je testiran, najdenih 20 napak.3.3. Programer popravi 10 napak in pojasni ekipi za testiranje, da preostalih 10 napak Programer popravi 10 napak in pojasni ekipi za testiranje, da preostalih 10 napak
niso pravi ‘hrošči’. niso pravi ‘hrošči’. 4.4. Ekipa za testiranje ugotovi, da 5 popravkov ne deluje in odkrije 15 novih hroščev.Ekipa za testiranje ugotovi, da 5 popravkov ne deluje in odkrije 15 novih hroščev.5.5. Dokler ne ponorijo v prodaji in marketingu, se ponavlja naslednja zgodba:Dokler ne ponorijo v prodaji in marketingu, se ponavlja naslednja zgodba:
1.1. Preberi točko 3. Preberi točko 3. 2.2. Preberi točko 4.Preberi točko 4.
6.6. Zaradi pritiska s strani komercialistov in marketinga (najava novega produkta se Zaradi pritiska s strani komercialistov in marketinga (najava novega produkta se je zanašala na veliko preoptimističen terminski načrt projekta), program dajo v je zanašala na veliko preoptimističen terminski načrt projekta), program dajo v uporabo.uporabo.
7.7. Uporabniki najdejo 137 novih hroščev.Uporabniki najdejo 137 novih hroščev.8.8. Originalnega programerja (po tem ko je dobil plačilo za svojo ‘umetnijo’) ni nikjer.Originalnega programerja (po tem ko je dobil plačilo za svojo ‘umetnijo’) ni nikjer.9.9. Na novo zbrana programerska ekipa odpravi skoraj vseh 137 hroščev, vendar Na novo zbrana programerska ekipa odpravi skoraj vseh 137 hroščev, vendar
najde 468 novih. najde 468 novih. 10.10. Originalni programer pošlje (slabo plačani) ekipi za testiranje kartici iz Originalni programer pošlje (slabo plačani) ekipi za testiranje kartici iz
Dominikanske Republike in Jamajke. Celotna ekipa za testiranje da odpoved.Dominikanske Republike in Jamajke. Celotna ekipa za testiranje da odpoved.11.11. S strani konkurenčen firme pride do sovražnega prevzema podjetja. Novi lastniki S strani konkurenčen firme pride do sovražnega prevzema podjetja. Novi lastniki
poberejo ves profit od zadnje verzije programa, ki je imela 783 hroščev. poberejo ves profit od zadnje verzije programa, ki je imela 783 hroščev. 12.12. Novi CIO pride v nadzorni odbor. Najame programerja, ki naj ponovno naredi Novi CIO pride v nadzorni odbor. Najame programerja, ki naj ponovno naredi
(zlepi) program iz ostankov starega.(zlepi) program iz ostankov starega.13.13. Programer napiše in odda program, za katerega verjame, da je brez napak.Programer napiše in odda program, za katerega verjame, da je brez napak.14.14. Vrni se na točko 2.Vrni se na točko 2.