prenovitev informacijskih sistemov mesto prenovitve is v informatiki vsebina poglavja razvoj novih aplikacij vzdrzevanje aplikacij razumevanje kode kdaj se odlocimo za vzdrzevanje prenovitev povezave v grobem lahko informatiko razdelimo na tri temeljne aktivnosti razvoj novih aplikacij vzdrzevanje starih aplikacij prenovitev starih aplikacij prenovitev informacijskih sistemov uvrscamo med razvoj novih aplikacij in vzdrzevanje starih aplikacij glej sliko slika mesto prenovitve is v informatiki med nastetimi aktivnostmi najpomembnjeso vlogo predstavlja razvoj novih aplikacij najvec raziskav napora in predvsem denarja je vlozenega za odkrivanje novih bolj ucinkovitih razvojnih procesov trzisce pritiska na razvijalce razvojni cas je izredno kratek in se se krajsa veliko aplikacij nikoli ne pride do faze vzdrzevanja zamenjamo jih z novimi vzdrzevanje pa sploh ne smatramo kot del zivljenjskega cikla aplikacije zamenjava pa ni vedno mogoca nekatere organizacije svoje informacijske sisteme vzdrzujejo ze po dvajset let in vec tako da zadoscajo njihovim zahtevam zelja po izrabi stevilnih prednosti ki jih prinasa nova tehnologija in zadovoljevanju vse vecim zahtevam ki jih narekujejo nove ekonomske sistuacije postavlja organizacije pred resen problem ali je resitev v prenovitvi pred zacetkom prenovitve moramo pretehtati ali se ne bolj izplaca razviti novo aplikacijo s tem se resimo omejitev ki bi jih »vlekli« iz stare aplikacije vendar izgubimo mnogo koristnih informacij ki so kakorkoli zapisane v njej to je se posebno pomembno kadar aplikacija vkljucuje zahtevne algoritme npr matematicne tezave nam povzrocajo stevilne odvisnosti med aplikacijami ki jih ne pricakujemo ponavadi tudi prvotni razvijalci ki imajo znanje o aplikaciji niso na voljo na zalost si pogosto ne moremo kaj prida pomagati z dokumentacijo saj je praviloma zelo zastarela v ekstremnih primerih moramo celo ugotavljati katera verzija programa je »ta prava« prednost prenovitve pred razvojem znova je se v tem da zahteva veliko manj napora za uvajanje koncnih uporabnikov zakar se moramo se dodatno potruditi pri prenovi uporabniskega vmesnika na drugi strani se nam ponuja vzdrzevanje informatiki nad vzdrzevanjem ponavadi niso ravno navduseni z vzdrzevanjem popravljamo napake in prilagajamo aplikacijo spremembam v poslovnem sistemu za prenovitev se odlocimo ko ocenimo da je vzdrzevanje predrago predolgo oziroma ko zelimo doseci konkretnejso spremembo poleg tega prenovitev povecuje produktivnost vzdrzevanja velja da se produktivnost vzdrzevanja zmanjsuje s povecevanjem kompleksnosti informacijskega sistema prenovitev ni v nasprotju z nepretrganimi spremembami in z razvojem novih aplikacij nasprotno omogaca da je bodoce spreminjanje informacijskega sistema lazje cenejse in hitrejse razvoj novih aplikacij celoten razvoj novih aplikacij je podprt z metodologijo informacijskega inzeniringa katere avtor je james martin information engineering methodology razvoj novih aplikacij je po metodologiji informacijskega inzeniringa razdeljen kot prikazuje slika na stiri faze stratesko planiranje analizo funkcionalnih podrocij nacrtovanje aplikacije in izvedbo nastete faze razdelimo na podatkovni aktivnostni in tehnoloski vidik slika metodologija informacijskega inzeniringa stratesko planiranje po metodologiji informacijskega inzeniringa se razvoj informacijskega sistema pricne z izgradnjo strateskega plana strateski plan vsebuje cilje probleme in kriticne dejavnike uspeha organizacijskega sistema pregledni model organizacijskega sistema ki je sestavljen iz organizacijske sheme funkcionalne dekompozicije globalnega entitetnega modela in povezovalnih matrik pri strateskem planiranju sodelujejo informatiki kljucni uporabniki in clani vodstvene strukture analiza funkcionalnih podrocij v tej fazi podrobneje analiziramo podatke in procese ter poiscemo povezave med njimi analiza mora biti popolnoma neodvisna od tehnoloskih resitev izdelamo podrobni entitetni model funkcije razclenimo na podrejene procese podrobna funkcionalna dekompozicija ter prikazemo zaporedje izvajanja procesov in odvisnosti procesov s povezovalno matriko med procesi in entitetami nacrtovanje aplikativnega sistema kljucnega pomena pri nacrtovanju je aktivno sodelovanje uporabnikov v tej fazi izdelamo nacrte procedur nacrte podatkovnih struktur po procedurah nacrte zaslonov in porocil izvedba fazo izvedbe delimo na kreiranje podatkovne baze in izdelavo aplikacije oz kodiranje izvedba je avtomatizirana s pomocjo generatorjev kode ki omogocajo pretvorbo nacrtov iz faze nacrtovanja v kodo kljub pomoci generatorjev kode moramo del kode rocno napisati na drugi strani pa je postopek kreiranje podatkovne baze popolnoma avtomatiziran in ga vsebuje vsako sodobno case orodje lastnosti in prednosti metodologije informacijskega inzeniringa vspodbuja sodelovanje uporabnikov uposteva cilje in potrebe vodstvene strukture temelji na lahko razumljivih diagramskih tehnikah s podatkovnim slovarjem ki se stalno dopolnjuje zagotavlja dobro dokumentiranost in lazje vzdrzevanje razvitih aplikacij in povecuje ucinkovitost razvoja aplikacij vzdrzevanje aplikacij kadar je informacijski sistem velik si ne moremo privosciti dovolj virov da bi ga razvili znova kadar njegova kvaliteta pade pod doloceno mejo ga ne moremo popolnoma razumeti kar je nujno potrebno za rekonstrukcijo se posebaj v primerih ko potrebujemo hitre rezultata je edino kar nam preostane vzdrzevanje predvsem za mlade strokovnjake je vzdrzevanje starih aplikacij zoprno opravilo zmotno je prepricanje da pomeni vzdrzevanje samo popravljanje napak gre tudi za prilagajanje spremembam v poslovnem sistemu vzdrzevanje v nekaterih okoljih predstavlja preko aktivnosti poleg tega vzdzevanje tudi veliko stane poglejmo si stroske po posameznih fazah zivljenjskega cikla aplikacij slika slika stroski po fazah zivljenjskega cikla aplikacij poznamo stiri temeljne kategorije vzdrzevanja krisper korektivno vzdrzevanje nanasa se na popravljanje napak odkritih v casu delovanja aplikacije ta tip vzdrzevanja predstavlja vseh vzdrzevalnih postopkov prilagodljivo vzdrzevanje nanasa se na adaptacije zaradi sprememb sistemske programske opreme in ali zamenjave strojne opreme prilagodljivo vzdrzevanje predstavlja vseh vzdrzevalnih postopkov funkcionalno vzdrzevanje nanasa se na izboljsanje aplikacij upostevaje spremembe v uporabniskem okolju oziroma poslovnem sistemu ta tip vzdrzevanja zavzema kar preventivno vzdrzevanje nanasa se na vnaprej pricakovane spremembe v poslovanju in predstavlja delez zavedati se moramo da vzdrzevanje povecuje kompleksnost saj popravljanje napak in predvsem funkcionalne izboljsave opravimo pogosteje z dodajanjem kode kot z brisanjem s povecano kompleksnostjo pa se kot sem ze omenil zmanjsuje pruduktivnost vzdrzevanja in tudi drugih posegov kompleksnost povecujemo tudi s podiranjem strukturiranosti kode to se najpogosteje dogodi z dodajanjem goto stavkov vse skupaj pa je posledica premajhnega razumevanja informacijskega sistema zivljenjski cikel vzdrzevanja sestavljajo identificiranje problema analiza implementacija oz popravljanje napak in vrednotenje vzdrzevanje zahteva veliko porabo razlicnih virov saj pogosto potrebujemo znanja razlicnih strokovnjakov glavne znacilnosti lahko zdruzimo v nekaj tock wade vecino kriticnih napak odkrijejo uporabniki napake so pogosto posledica pomanjkljive analize zahtev pri razvoju in nesodelovanja uporabnikov pri testiranju tezave morajo biti odpravljene v cim krajsem casu stroske za vzdrzevanje je tezko predvideti pomanjkanje casa za azuriranje dokumentacije in opravljeno delo ne more biti »ponovno uporabljeno« pri vzdrzevanju analiza informacijskega sistema temelji predvsem na razumevanju programske kode za razliko od prenovitve kjer rekonstrukcijo izvajamo na vseh ravneh abstrakcije spremembe so pri vzdrzevanju v manjsem obsegu in se nanasajo na spremembe v kodi pri prenovi pa se nanasajo na vse ravni vzdrzevanje opravljajo vzdrzevalci pri prenovitvi pa sodeluje sirsi spekter strokovnjakov med njimi so tudi vzdrzevalci vzdrzevanje razdelimo na vec korakov razumevanje obstojece kode odlocanje kaj bomo spremenili dolocitev vpliva sprememb predelava kode testiranje potrditev sprememb razumevanje kode od nastetih korakov je najbolj zahteven prvi zanj porabimo okoli casa opisal sem ga ze v poglavju orodja za razumevanje kode razdelimo v pet skupin staticni analizatorji s temi orodji analiziramo obstojeco kodo in generiramo razne podatke kot so diagrami podatkovnih in kontrolnih tokov strukturni diagrami vzdrzevalna orodjarna orodja s te skupine ki nadgrajujejo staticne analizatorje nudijo se urejanje kode razhroscevanje prevajanje analizirano kodo oziroma informacije o njej v obliki raznih struktur shranjujejo v posebno podatkovno zbirko spremembe lahko izvrsujemo v podatkovni zbirki in jih preslikujemo v izvorno kodo orodja za razdelitev kode slicing s temi orodji iscemo stavke v izvorni kodi ki imajo vpliv na vrednost dane spremenljivke uporabljamo jih za iskanje hroscev kodo razdelimo na stavke kjer je vrednost spremenljivke napacno izracunana in na stavke kjer je ta pravilna razlika stavkov predstavlja podrocje kjer je napaka orodja za razdelitev kode se uporabljajo manj kot bi pricakovali glavna ovira je povezanost oz odvisnost stavkov v kodi tako da nam orodje kot rezultat vrne mnozico stavkov ki je skoraj enaka celemu programu orodja za delo z dokumentacijo danasnja orodja za delo z dokumentacijo so uporabna predvsem v smeri razvoja novih aplikacij in manj za prenovitev z njimi vzpostavljamo razne povezave med kodo in dokumentacijo orodja za razumevanje kode v prihodnosti danasnjim orodjem se precej manjka do stopnje ko bodo popolnoma zadovoljevala uporabnike in se bodo tudi mnozicno uporabljala pricakovan razvoj naj bi sel v smeri razvoja integriranega orodja to naj bi uspesneje izluscalo zeljene informacije iz kode pomagalo vzdrzevalcem pomniti kaj je ze bilo odkrito podpiralo analiziranje kode napisane z redkimi in najnovejsimi jeziki generiralo in testiralo hipoteze kdaj se odlocimo za vzdrzevanje pri odlocitvi ali bomo obstojec informacijski sistem se naprej vzdrzevali si pomagamo z vprasanji za sprejem odlocitve ni potrebno odgovoriti na vsa vprasanja seveda lahko dodamo tudi nova za nadaljno vzdrzevanje informacijskega sistema mora biti povprecna ocena pod a ocena kvalitete informacijskega sistema s strani uporabnikov je zelo zadovoljiva ostaja na enaki ravni in je komajda zadovoljiva upada b kako pogosto odkrijemo napake mtbf mean time between failure napake ce sploh so so zelo redke zmerno stevilo napak napake so pogoste napake se z modifikacijo se pogosteje pojavljajo c koliko casa je potrebnega da se napaka odpravi mttr mean time to repair napake se hitro popravljene napake so odpravljene v zmernem casu za odpravo napak porabimo veliko casa in ali cas za odpravo napak se podaljsuje d ali je vzdrzevanje informacijskega sistema drazje stevilo clovek ur zmanjsanje produktivnosti v primerjavi s primerljivimi sistemi manj drago priblizno enako drazje e ali so prvotni razvijalci na voljo za sodelovanje da da vendar je informacijski sistem zelo star in nam ne morejo veliko pomagati in ali da a zelo omejen cas ne f ali so na voljo vzdrzevalci informacijskega sistema ki imajo mnogo izkusenj dolgoletni vzdrzevalci da da vendar bo marsikdo od njih v kratkem zapustil organizacijo ne g lastnosti vzdrzevalcev skupina vzdrzevalcev deluje skupaj ze vrsto let posamezniki od casa do casa odidejo posamezniki pogosto odhajajo h ali je stevilo vzdrzevalcev zadovoljivo da da vendar ob resnejsih posegih potrebujemo dodatne ljudi vzdrzevalcev je kronicno premalo negativne posledice vzdrzevanja aplikacij zamujene ali odlozene razvojne priloznosti saj razpolozljive vire porabimo za vzdrzevanje vzdrzevanje praviloma ne odpravlja pritajenih napak zmanjsanje produktivnosti prenovitev pri prenovitvi poznamo tri osnovne pristope popolna revolucionarna prenovitev inkrementalna prenovitev prenovitev po delih olsem popolna revolucionarna prenovitev prenovitev zajema celoten informacijski sistem popolno prenovitev izvedemo le enkrat in v celoti prednost tega pristopa je da je ves sistem prenovljen zato je nadaljno vzdrzevanje v primerjavi z drugima pristopoma olajsano ta pristop pa povecuje tveganje saj mora prenovljen sistem delovati brezhibno kar pa je tezko zagotoviti uporabljamo ga kadar prenavljamo manjsi informacijski sistem in kadar ga zelimo prenoviti v kratkem casu inkrementalna prenovitev prenovimo samo dele informacijskega sistema npr nekatere programe ki jih ponovno integriramo v celoten informacijski sistem rezultati so hitreje vidni kar omogoca lazje vkljucevanje uporabnikov ter sprotno vrednotenje oz ocenjevanje opravljenega dela zmanjsamo tveganje morebitne napake iscemo zgolj v prenovljenih komponentah to strategijo prenovitve moramo uporabljati zelo sistematicno saj imamo mnozico verzij prenovitev po delih podobno kot pri prejsnjem pristopu prenovimo zgolj posamezne dele vendar jih sedaj ne integriramo vzdrzevanje je loceno na prenovljene dele in preostali informacijski sistem tveganje je malo saj se v primeru napak zatecemo k prejsnjim verzijam tezave pa nam povzroca vmesnik ki ga moramo vzpostaviti med prenovljenimi deli in preostalim sistemom vec informacij na teme iz tega poglavja dobite na spletnih naslovih the center for software maintance centre for software maintenance information system reengineering clanek o prenovi vzdrzevanju how not to do information system renovation clanek legacy systems triage renovation re engineering or redundancy clanek perspectives on legacy system reengineering obsiren clanek preparing to reengineer clanek program comprehension tool predstavitev orodij za razumevanje kje najdem clanke