razvoj i primjena informacijskih sustava

43
RAZVOJ I PRIMJENA INFORMACIJSKIH SUSTAVA Zagreb, 2012

Upload: neven1986x

Post on 14-Aug-2015

126 views

Category:

Documents


4 download

DESCRIPTION

Prva Tematska cjelina

TRANSCRIPT

Page 1: Razvoj i primjena informacijskih sustava

RAZVOJ I PRIMJENA INFORMACIJSKIH SUSTAVA

Zagreb, 2012

Page 2: Razvoj i primjena informacijskih sustava

Sadržaj B.1 Proces i metode razvoja sustava...............................................................................................1

B.1.1 Softver u sustavima za obradu podataka..........................................................................1 B.1.2 Životni ciklus razvoja sustava..........................................................................................4

B.1.2.1 Vodopadni model......................................................................................................6 B.1.2.2 Prototipni model.......................................................................................................7 B.1.2.3 Spiralni model...........................................................................................................8 B.1.2.4 Iterativno inkrementalni model..............................................................................10 B.1.2.5 Brzi razvoj aplikacija..............................................................................................12 B.1.2.6 Formalni Model......................................................................................................14 B.1.2.7 ESA Razvojni modeli ............................................................................................15 B.1.2.8 Dokumentiranje razvoja sustava ............................................................................17

B.1.3 Alati za razvoj sustava...................................................................................................19 B.1.4 Testiranje i uvođenje sustava .........................................................................................22 B.1.5 Kontrola i sigurnost sustava .........................................................................................25 B.1.6 Trendovi u razvoju sustava ...........................................................................................27

B.1.6.1 ISO Standardi ........................................................................................................27 B.1.6.2 IEEE .......................................................................................................................29 B.1.6.3 SEI/CMMI .............................................................................................................30 B.1.6.4 SIX SIGMA ...........................................................................................................31 B.1.6.5 Agilne metodologije ...............................................................................................33 B.1.6.6 Arhitektura aplikacija..............................................................................................35

Page 3: Razvoj i primjena informacijskih sustava

B.1 Proces i metode razvoja sustava

B.1.1 Softver u sustavima za obradu podataka

Obrada podataka je proces pretvorbe podataka u korisne informacije i znanje. Sustav u kojem se takva obrada vrši naziva se sustav za obradu podataka (SOP) i prikazan je IPO-S1 modelom.

Postupak obrade podataka uključuje korak pretvorbe ulaznih podataka iz oblika koji sustav može interpretirati, korak obrade ulaznih podataka i kao završni korak pretvorbu obrađenih podataka u željeni izlazni oblik (audio, video, tekst, brojevi, ...).

Računalni sustav za obradu podataka sastoji se od hardvera i softvera. Fizički dijelovi računala, uključivši i elektroničke dijelove čine hardver računala koji je postojan u odnosu na softver u računalu, jer se softver često mijenja, dodaje ili briše. Prefiks soft opisuje osobinu promjenjivosti. Ugrađeni softver ili firmware je posebna je vrsta softvera koji se rijetko ili nikada ne mijenja, a pohranjen je u memorijskim uređajima koje nisu dizajnirani za česte izmjene podataka ili za izmjene uopće (ROM, PROM, EPROM, ...) Prefiks firm opisuje osobinu postojanosti.

Softver se dijeli u dvije osnovne skupine sistemski softver i aplikacijski softver. Sistemski softver je softver odgovoran za kontrolu i upravljanje hardverom na način da se aplikacijski softver može izvršavati na nekom hardveru. Glavni predstavnici sistemskog softvera su operacijski sustavi kao što su Windows, Unix, Linux, Solaris, QNX, VxWorks. S druge strane, aplikacijski softver je softver koji pruža specifičnu uslugu krajnjem korisniku sustava, kao što su obrada teksta ili multimedija.

Sistemski softver obavlja zadatke kao što je prijenos podataka između diska i memorije, prikaz teksta ili grafike na zaslonu, upravljanje memorijskim resursima i procesima. Posebna vrstu sistemskog softvera čine programi za pokretanje operacijskog sustava, pogonski programi (engl. device drivers), tzv. utility programi.

Softverske biblioteke koje pružaju opću funkcionalnost programima, također se mogu smatrati sistemskim softverom (npr. gnu c/c++ biblioteka), dok situacija nije u potpunost i jasna kod npr.

1 IPO+S- Input-Processing-Output ( + Storage) model

1

UL

AZ

OBRADA IZL

AZ

POHRANA

Slika 1: IPO+S model sustava za obradu podataka

PODATAK INFORMACIJA

Page 4: Razvoj i primjena informacijskih sustava

OpenGL biblioteka ili biblioteka za rad s bazama podataka koje, s jedne strane, pružaju podršku programima,a s druge strane njihova primjena je specifična za neku aplikaciju.

Kad je softver pohranjen na nepromjenjivoj memoriji, tada govorimo o ugrađenom softveru (firmware). Pojam firmware prvi puta se javno spominje 1967. godine u časopisu za računala Datamation - termin se izvorno odnosio na sadržaj promjenljivog kontrolnog spremnika koji je sadržavao procesorski mikrokod (mikrokod definira i implementira instrukcije procesora na nivou mikrooperacija). Naknadno se definicija mijenja i podrazumijeva bilo koji tip sistemskog softvera koji se nalazi u memoriji samo za čitanje (ROM, PROM) ili izbrisljivoj memoriji (EPROM) . Danas termin opisuje bilo koji tip softvera pohranjen u flash memoriju.

Ugrađeni softver nalazi se između hardvera i ostalog softvera na računalu. S jedne strane, riječ je o programu koji se izvršava na nekom mikroprocesoru ili mikrokontroleru, dok s druge strane, usko je vezan uz hardver na kojem se izvršava i nema bitnu korist izvan tog okruženja.

ESCD ili Extended System Configuration Data dio je neizbrisive BIOS2 memorije (CMOS memorija) na matičnoj ploči računala, u kojoj su pohranjene informacije o ISA PnP uređajima (IRQ, memorijska područja korištenja, ...) .

Sadržaj ESCD memorije mijenja se svaki puta kada dolazi do promjene hardvera, npr. kada se

2 BIOS – Basic Input Output System

2

Slika 2: Hijerarhija softvera u informacijskom sustavu

Page 5: Razvoj i primjena informacijskih sustava

promijeni struktura korištenja prekida (IRQ) ili memorijskih područja za neku hardversku komponentu na računalu. Jednom pohranjena konfiguracija ne mijenja se sve do iduće promjene hardvera što čini pokretanje računala bržim ( dodjela resursa se ne provjerava svaki put iznova, već se koristi konfiguracija iz ESCD memorije).

Sadržaj ESCD-a se može mijenjati pomoću posebnih alata kao što je npr. Windows Device Manager. Isto tako, proizvođači matičnih ploča i prijenosnih računala često nude aplikaciju kojom je moguće mijenjati sadržaj ESCD memorije na njihovom hardveru.

Unified Extensible Firmware Interface (UEFI) je specifikacija koja definira softversko sučelje između operacijskog sustava i ugrađenog softvera platforme. Namjena ovog sučelja je zamjena starog BIOS sučelja koje se koristi od vremena prvog IBM PC računala. Novo sučelje prilagođeno je suvremenim hardverskim arhitekturama i zaobilazi ograničenja starog BIOS sučelja.

Aplikacijski softver je softver koji koristi svojstva računala u svrhu izvršavanja specifičnog zadatka koji korisnik računala želi izvršiti. Za obavljanje neke specifične radnje, aplikacijki softver koristi resurse računala koja su dostupna putem sistemskog softvera.

Aplikacija računala razlikuje se u odnosu na operacijski sustav (na kojem se izvršava), namjenu (za koju je implementirana) i programskom jeziku ( u kojem je napisana ).

Ovisno o namjeni aplikacijski softver se može podijeliti u više skupina, a neke od njih su:

• Aplikacije opće namjene tekst procesori, tablični kalkulatori, prezentacijski programi , mail klijenti, web preglednici

• Izdavaštvo i multimedija obrada slika, audio/video sadržaja, prelom teksta, izrada multimedijalnog sadržaja

• Zabavni programi računalne igre, reprodukcija audio/video zapisa

• Profesionalni alati računalom potpomognut dizajn (CAD), statistička i numerička analiza, projekt menadžment

• Poslovne aplikacije ERP, CRM, Analiza tržišta, Upravljanje projektima

• Aplikacije posebne namjeneDizajnirane za specifičnu namjenu

Iako postoje tendencije, Razvojni softver ne predstavlja zasebnu skupinu softvera. U različitim publikacijama razvojni softver, kao što su: prevodelji (engl. compilers), povezivači (engl. linkers), programi za traženje grešaka (engl. debuggers) svrstava se malo u aplikacijski, malo u sistemski

3

Page 6: Razvoj i primjena informacijskih sustava

softver. Npr. kod operacijskog sustava Linux, razvojno GNU okruženje sastavni je dio operacijskog sustava, a njegove biblioteke omogućuju normalno izvođenje aplikacijskog softvera. U tom slučaju, razvojni softver može se gledati kao sistemski softver, dok kod drugih operacijskih sustava i platformi, razvojni softver nije uvijek usko integriran s operacijskim sustavom i može ga se promatrati kao na aplikacijski softver s obzirom da pruža specifičnu namjenu korisniku (programeru).

B.1.2 Životni ciklus razvoja sustava

Informacijski sustav (softver) predstavlja proizvod ili rezultat razvoja sustava. Razvoj sustava dijeli se u više faza koje uključuju postupke planiranja, analize, dizajna, razvoja, testiranja, uvođenja i održavanja sustava. Glavni cilj razvoja je razviti sustav koji zadovoljava potrebe njegovih korisnika.

Prvi korak kod dizajna novog sustava je korak planiranja. On uključuje analizu domene sustava radi boljeg razumijevanja što bi budući sustav trebao raditi. U tom postupku provodi se analiza sustava slične namjene u cilju utvrđuju karakteristična svojstva za sustave tog tipa.

Idući korak, i jedan od najvažnijih koraka pri stvaranju informacijskog sustava, predstavlja analiza zahtjeva. Klijent (korisnik) često nema jasnu zamisao kakav sustav želi. Stoga je potrebno prepoznati nepotpune, dvosmislene, a ponekad i kontradiktorne zahtjeve tražene od strane klijenta. Prilikom analize zahtjeva česta je praksa izgradnje prototipa sustava koji olakšava pronalaženje problematičnih zahtjeva i usaglašavanje nedoumica s klijentom.

Jednom kada su usuglašeni korisnički zahtjevi, potrebno je pokrenuti postupak analize kojim se definiraju svojstva sustava. U ovom postupku izrađuje se dokument u kojem se definira popis zahtjeva sustava koji će se implementirati. Isto tako, taj dokument sadrži popis traženih zahtijeva koji se neće implementirati i razloge (cijena, izvedivost i sl.). Dokument predstavlja dogovor

4

Page 7: Razvoj i primjena informacijskih sustava

između klijenta i izvođača, i kao takav može poslužiti u eventualnom naknadnom sporu između dviju strana.

Dizajn je postupak u kojem se detaljno opisuje budući sustav. Najprije se definira generalna arhitektura budućeg sustava, a zatim se detaljno definira dizajn svake komponente sustava zasebno. U postupku dizajna sustava definiraju se konvencije, standardi i alati koji će se koristi tijekom razvoja sustava. Konvencije mogu definirati strukturu dokumenta, ali i način pisanja koda (npr. coding standard, secure coding standard3)

Razvoj sustava dio je razvojnog procesa u kojem programeri kodiraju budući sustav. To je prva faza projekta unutar koje jedan od izlaznih artefakata je i kôd budućeg sustava.

Jednom izgrađen sustav potrebno je testirati. Testiranje čini vrlo važnu ulogu prilikom razvoja sustava, jer omogućuje otkrivanje pogrešaka,a cilj je da se pogreške otkriju što je ranije moguće. Dio testiranja obavlja se već prilikom samog razvoja sustava (unit test) dok se u zasebnoj fazi testira sustav kao cjelina (integration test, sistem test).

Jednom testirani sustav spreman je za uvođenje. U toj fazi vrše se pripreme za uvođenje sustava koje uključuju pripremu dokumentacije, obučavanje budućih korisnika i osoblja koje će u budućnosti održavati sustav.

Jednom kada je sustav uveden kod klijenta ili krajnjeg korisnika, projekt prelazi u fazu održavanja. U toj fazi posebno obučeno osoblje stoji na raspolaganju klijentima u razrješavanju mogućih problema u radu sustava, a poseban tim razvojnih inženjera radi na otklanjanju mogućih nedostataka, ispravljanju pogrešaka i mogućoj nadogradnji sustava.

Nakon faze održavanja nadogradnja sustava i ispravci eventualnih pogrešaka više nisu mogući. Projekt tada dolazi u završno stanje, tzv. end-of-life, te ovisno o planovima stari sustav može se redizajnirati i pokrenuti novi razvojni ciklus.

Postupci i tehnike razvoja sustava

Postupci i tehnike razvoja sustava ovise o razvojnoj metodologiji. Metodologija razvoja sustava definira skup postupaka i metoda koje definiraju strukturu, plan i kontrolu procesa razvoja informacijskog sustava. Metodologija dijeli zadatke u više faza koje se mogu izvršavati linearno ili iterativno. Svaka faza ima definirane početne preduvjete, aktivnosti za vrijeme trajanja faze i konačne rezultate po završetku faze (deliverables, artefacts).

Postoji velik broj različitih metodologija za razvoj informacijskih sustava, no većina njih se zasniva se na jednom od slijedećih modela:

• Vodopadni (Waterfall)

• Prototipni

• Spiralni

• Inkrementalni

• Brzi Razvoj Aplikacija

• Formalni

3 http://www.cert.org/secure-coding/scstandards.html

5

Page 8: Razvoj i primjena informacijskih sustava

Ne postoji najbolja metoda, već prikladnija. Prikladnost metode ovisi o različitim elementima projekta kao što su, npr. kompleksnost projekta, vrsta aplikacije, članovi tima (broj , iskustvo), iskustvo voditelja projekta i projekt menadžera, iskustvo klijenta s primjenom aplikacije, organizacijska struktura projekta, itd.

B.1.2.1 Vodopadni model

Predstavlja jedan od najstarijih razvojnih metodologija. Karakteristike metodologije su linearno izvođenje faza jedna za drugom, bez ponavljanja. Uvijek po završetku faze, pored ostalih rezultata, postoji neki oblik dokumenta koji opisuje izvršene zadatke. Na kraju svake faze obavlja se revizija dokumenata koja za posljedicu može imati reviziju i nekog drugog rezultata faze (dizajna, koda, ...)

Model je izvorno osmislio Winston W. Royce, 1970. godine. Izvorni model sastojao se od slijedećih faza:

• Specifikacija

• Dizajn

• Razvoj

• Integracija

• Testiranje

• Uvođenje

• Održavanje

Model je jednostavan za učenje što ga čini pogodnim za neiskusne članove tima i voditelje. Napredak razvoja sustava je mjerljiv, jer je kraj faze striktno definiran. Uređen slijed faza, striktna kontrola dokumentacije i revizije dizajna doprinosi kvaliteti, pouzdanosti i lakoći u održavanju sustava.

Glavni nedostaci modela su nefleksibilnost, sporost razvoja i veća cijena razvoja. Model je posebno osjetljiv o definiranim zahtjevima klijenata. Klijenti često ne znaju točno definirati zahtjeve u ranoj fazi projekta, a naknadna izmjena zahtjeva čini ovaj model neefikasnim. Ako se većina problema otkrije tek u fazi testiranja, znatno se povećavaju troškovi ispravka s obzirom da cijena ispravljanja pogrešaka raste s vremenom otkrivanja proteklim od faze analize. S obzirom da su izmjene u kasnim fazama razvoja skupe, one se često izbjegavaju što umanjuje funkcionalnost sustava. Struktura i sadržaj specifikacija kod ovog modela često su nerazumljive pa im je korisnost upitna.

• Prikladnost modela◦ Veliki i složeni projekti ◦ Projekti s jasnim ciljem ◦ Zahtjevi se ne mijenjaju tijekom životnog ciklusa ◦ Članovi tima i/ili voditelji su neiskusni ◦ Velika vjerojatnost fluktuacije članova tima ◦ Kod projekata s dislociranim timovima ◦ Korisnik je iskusan i razumije primjenu

6

Page 9: Razvoj i primjena informacijskih sustava

• Neprikladan ◦ Projekti kod kojih zahtjevi nisu dobro specificirani ili se često mijenjaju ◦ Kod projekata gdje se traži brz razvoj sustava

B.1.2.2 Prototipni model

Nije potpuna metodologija, već pristup koji se primjenjuje kod većih, tradicionalnih metodologija (inkrementalne, spiralne, vodopadne, ... ) Kod ovog modela korisnik je uključen u razvojni proces za cijelo vrijeme njegovog trajanja. Model se zasniva na izradi prototipa sustava iterativnim postupkom sve dok se ne ispune zahtjevi korisnika.

Ovaj model pruža brzu izradu početnog sustava uz vrlo rano uočavanje nesporazuma na relaciji između klijenta i programera te usuglašavanja nejasnih ciljeva. Isto tako, pomaže brzom i jednostavnom identificiranju nejasnih te otkrivanju nepostojećih funkcionalnosti sustava. Vrlo je koristan za bolje modeliranje pojedinih aspekata sustava kod klasičnih metodologija. Model potiče inovativne ideje i omogućuje brz razvoj nepotpunog, ali funkcionalnog sustava.

Glavni nedostaci modela predstavljaju procesi potvrde i kontrole koji nisu striktni, kao ni dokumentiranje. Mogućnost čestih i znatnih promjena zahtijeva može rezultirati neefikasnošću i kašnjenjem izrade konačnog proizvoda. Izrada prototipa uglavnom daje naglasak na one vidljive dijelove sustava, što može dovesti do krivog očekivanja klijenta koji može biti (krivo) uvjeren da je sustav gotov, iako to nije.

Ovisno u implementaciji detalja kod prototipa, razlikuju se horizontalni i vertikalni prototipovi prototipa. Horizontalni prototipovi djelomično implementiraju svu funkcionalnost sustava, ali samo one vidljive dijelove. S druge strane vertikalni prototipovi ne implementiraju sve funkcionalnosti već samo neke, ali u potpunosti.

Izrada prototipova karakteristična je za sve grane industrije, no kod razvoja informacijskih sustava postoje određeni oblici koji se razlikuju po svojim svojstvima:

• Brza izrada prototipova (prototip “napravi i baci”)

◦ Izradu prototipa koji služi za bolje definiranje zahtijeva, a čija namjena nije integracija u budući sustav

• Evolucijska izrada prototipova

◦ Izrada robusnog prototipa s namjenom poboljšavanja i kasnijom integracijom u budući sustav

• Inkrementalna izrada prototipova

◦ Izrada odvojenih prototipova koji se u konačnici spajaju zajedno u jedan sustav.

• Ekstremna izrada prototipova

◦ Specifična metodologija za izradu web stranica podijeljena u 3 faze. U prvoj fazi izrađuju se statički elementi stranice (HTML sadržaj), a zatim se kreće u izradu programa za upravljanje stranica, ali uz simuliranje implementacije servisa. U zadnjoj fazi u potpunosti se implementiraju servisi.

• Prikladnost modela◦ Projektni zahtjevi su nejasni

7

Page 10: Razvoj i primjena informacijskih sustava

◦ Postoji želja za brzom implementacijom ◦ Česta izmjena funkcionalnosti ◦ Korisnik ne posjeduje dovoljna znanja o projektu ◦ Članovi razvojnog tima su vrlo iskusni ◦ Voditelj projekta je iskusan ◦ Ne traži se inovativan i fleksibilan dizajn koji je prigodan kasnijim izmjenama ◦ Veliki projekt s mnogo korisnika i s velikim brojem funkcionalnosti◦ Kada se žele minimalizirati rizici prilikom definiranja zahtijeva

• Neprikladan ◦ Velikih (mainframe) sustava ◦ E-business sustava ◦ Struktura razvojnog tima nije stabilna ◦ Kada postoji potreba za budućom skalabilnosti sustava ◦ Ciljevi su jasni i ne postoje veći izvori rizika povezani s definiranjem zahtijeva

B.1.2.3 Spiralni model

Model je izvorno predstavio Barry Bohem – 1986g. On predstavlja kombinaciju linearnog i iterativnog modela u kojem se analiza rizika vrši tijekom čitavog trajanja projekta. Podjelom projekta na male dijelove omogućuju se lakše izmjene sustava tokom trajanja projekta, uz minimalizaciju rizika. Svaka iteracija opisana je petljom spirale u kojoj su definirani zadaci specifični za tu petlju. Trajanje izvođenja jedne petlje određuje se zasebno, no u izvornom modelu svaka petlja trajala je od 6 mjeseci do 2 godine.

8

Slika 3: Spiralni model razvoja sustava

Page 11: Razvoj i primjena informacijskih sustava

Počevši od ishodišta, svaka petlja(iteracija) prolazi kroz 4 radna područja (kvadranta) unutar kojih se vrše slijedeće grupe zadataka:

• Definiranje ciljeva• Identifikacija i upravljanje rizicima• Razvoj i testiranje• Planiranje iduće iteracije

Implementacija metodologije sastoji se od izvođenja niza zadataka za svaku iteraciju. • Iteracija 1

◦ definiranje koncepta rada sustava• Iteacija 2

◦ specifikacija zahtjeva sustava• Iteracija 3

◦ izrada koncepta sustava• Iteracija 4

◦ finalni dizajn i implementacija

Analiza zahtjeva ponavlja se kroz više iteracija i kroz različita radna područja. Svaka iteracija završava izradom prototipa. Na kraju svake iteracije vrši se planiranje za iduću na osnovu stečenih znanja iz tekuće iteracije. Za veći broj implementacija sustava, cijela spirala može se izvršiti više puta.U početnoj implementaciji, autor metodologije (Barry Bohem) uključio je i "iteraciju 0" u kojoj se izrađivala studija izvedivosti, no ta iteracija nije namijenjena u standardnoj implementaciji.

Pozitivna strana ovog modela predstavlja napredno upravljanje rizicima. Isto tako, model je koristan kod odabira najbolje metodologije za pojedinu iteraciju razvoja (ovisno o riziku). Može koristiti vodopadnu, prototipnu ili inkrementalnu metodologiju tijekom pojedinog ciklusa.

Problem modela predstavlja složenost određivanja pojedine metodologije za svaki ciklus/iteraciju, a jednom kada se ona odredi model postaje usko prilagođen samo za taj projekt. To ga čini neiskoristivim u drugim projektima. Kod implementacije ovog modela voditelj projekta treba znati kako primijeniti metodu na pojedini projekt. Neadekvatnom primjenom može se desiti da se model u konačnici svede na klasični vodopadni model, što nije poželjno. Model ne definira čvrste rokove, ne postoji uvjet završetka pojedinog ciklusa i to čini važne nedostatke.

• Prikladnost modela ◦ Sustavi za rad u realnom vremenu ◦ Sustavi visokog stupnja sigurnosti ◦ U projektima gdje minimalizacija resursa nije glavni prioritet ◦ Iskusan voditelj projekta ◦ Kod projekata gdje se traži visok stupanj točnosti

• Neprikladan ◦ Ako je minimalizacija resursa prioritet ◦ Ako analiza rizika nije prioritet ◦ Kod projekata gdje se ne traži visok stupanj točnosti ◦ Ako funkcionalnost ima prednost nad implementacijom

9

Page 12: Razvoj i primjena informacijskih sustava

B.1.2.4 Iterativno inkrementalni model

Iterativni i inkrementalni razvojni model pokušava ispraviti slabosti klasičnog vodopadnog modela. Iako se pojmovi iterativni i inkrementalni koriste kao sinonimi, riječ je o terminima koji definiraju različite pristupe razvoja.

Inkrementalni razvoj opisuje razvojnu strategiju kod koje se dijelovi sustava razvijaju u različitim vremenskim periodima ili intervalima, a integriraju se u cjelovit sustav kada su gotovi. Ova strategija ne definira razvojnu metodologiju, već predstavlja alternativu tzv. "big-bang" integraciji sustava kod koje se sustav odjednom, a ne u koracima, spaja u jedinstvenu cjelinu.

Iterativni razvoj odnosi se na razvoj sustava u više koraka, omogućujući ponavljanje jedne ili više faza razvojnog ciklusa. Zasniva se na ideji da se početno razvije mali dio većeg sustava, koji se zatim proširuje korak po korak. Takav pristup omogućuje programerima i budućim korisnicima da ranije uoče potrebne nedostatke te brzo omoguće nove izmjene na implementaciji sustava.

Iterativni razvoj čine serije mini-vodopadnih iteracija koje se ponavljaju određen broj iteracija. Cijeli projekt se početno razbija na niz jednostavnijih segmenata koji se periodički integriraju u sustav. Rana implementacija početne verzije sustava daje mogućnost ranog usuglašavanja s klijentom i budućim korisnicima sustava.

Primjer iterativno inkrementalnog modela su Unified Process metodologije. Ove metodologije dijele životni ciklus na 4 osnovne faze koje se mogu podijeliti u više iteracija.

• Početak(inception)

◦ Definiranje korisnosti, izvedivosti, rizika i projektne strukture

• Razrada(elaboration)

10

Slika 4: Faze UP razvojnog procesa

Page 13: Razvoj i primjena informacijskih sustava

◦ Analiza sustava i definiranje razvojne arhitekture

• Razvoj(construction)

◦ Razvoj na osnovu prethodno definiranog dizajna i testiranje komponenti i sustava u cijelini

• Tranzicija(transition)

◦ Utvrđivanje prihvatljivosti rješenja i isporuka sustava

Unutar svake iteracije provode se različite discipline zadataka, različitim intenzitetom. Na slici 4 prikazana je metodologija koja definira ukupno 9 disciplina i grafički je prikazan intenzitet rada na pojedinim disciplinama ovisno o fazi projekta. Za razliku od gore prikazane metodologije, metodologija OpenUP definira slijedeće discipline:

• Arhitektura – kako razviti arhitekturu sustava iz prikupljenih zahtjeva. • Razvoj – kako dizajnirati i razviti tehničko riješenje sukladno definiranoj arhitekturi i

definiranim zahtjevima• Projekt menadžment – kako voditi i potpomagati tim, pomažući mu kod susretanja s

problemima i kod upravljanja rizicima• Upravljanje zahtjevima – kako otkriti, analizirati, specificirati, verificirati i rukovati

zahtjevima sustava• Testiranje – kako odrediti zrelost sustava dizajnom, implementacijom, izvođenjem i

vrednovanjem testova

Svaka od gore navedenih disciplina ima definirane zadatke koji su namijenjeni određenim članovima tima, ovisno o funkciji koju imaju na projektu. UP metodologije definiraju skupinu funkcija (uloga) za svakog člana tima uključenog u razvoj sustava. Tako npr. OpenUP metodologija definira slijedeće uloge za članove tima.

• Analitičar• Arhitekt• Razvojni inženjer• Projekt menadžer• Tester• Stakeholder4

Iterativno inkementalne metodologije omogućuju korištenje iskustva iz prethodnih iteracija kako bi ispravile pogreške ili poboljšale rad sustava. Metodologija definira određen skup dokumenata za koje se koriste postupci revizije, čime se pruža umjerena kontrola tijekom čitavog trajanja projekta. Postepena implementacija sustava omogućuje praćenje utjecaja pojedinih inkremenata i izoliranje eventualnih problema.

Problem kod ovih metodologija mogu nastati ako se teži poslovi odgađaju u kasnije inkremente da bi se pružili rani pozitivni rezultati menadžmentu. To u konačnici daje krivi uvid u trenutni napredak razvoja. Važno je da se početno dobro definiraju sučelja među komponentama jer se komponente ne razvijaju uvijek u istim inkrementima. Ponekad, rad u inkrementima može dovesti do manjka razumijevanja rada cjelokupnog sustava, kada se poslovi fokusiraju samo na pojedini inkrement.

4 Član interesni skupine ljudi vezane uz razvoj projekta (korisnik, kupac, programer, projekt menadžer, ... )

11

Page 14: Razvoj i primjena informacijskih sustava

• Prikladost modela◦ Veliki projekti gdje zahtjevi nisu razumljivi, ili su podložni čestim promjenama ◦ Veliki projekti kojima se često mijenja budžet ili tehnologija ◦ Web servisi ◦ Visoko kvalitetne aplikacije

• Neprikladan ◦ Vrlo mali i kratkotrajni projekti ◦ Mali integracijski i arhitekturalni rizici ◦ Interaktivni sustavi kod kojih barem djelomično postoji projektni podaci

Predstavnici

• Unified Process

◦ Agile UP

▪ http://www.ambysoft.com/unifiedprocess/agileUP.html

◦ Enterprise UP

▪ http://www.enterpriseunifiedprocess.com/

◦ Open UP

▪ http://epf.eclipse.org/wikis/openup/

◦ Oracle UM

▪ http://www.oracle.com/us/products/consulting/resource-library/oracle-unified- method-069204.pdf

◦ Rational UP

• Feature Driven Develpment

◦ http://www.featuredrivendevelopment.com/

• Scrum

◦ http://www.scrum.org

• eXtreme Programming

◦ http://www.extremeprogramming.org

B.1.2.5 Brzi razvoj aplikacija

Model brzog razvoja aplikacija (RAD5) omogućuje vrlo brzi razvoj sustava visoke kvalitete uz

5 Rapid Application Development

12

Page 15: Razvoj i primjena informacijskih sustava

pomoć korištenja CASE alata. Na uštrb detaljnom planiranju, uz podjelu poslova na kraće vremenske odsječke, izrađuju se inkrementalni prototipovi. Projektni rizici smanjuju se podjelom projekta na manje cjeline. Poseban naglasak daje se na želje korisnika, a manje na dizajn sustava. Kod isporuke sustava poseban naglasak je na poštivanje rokova (bolje smanjiti broj funkcionalnosti koje će se implementirati, nego odgoditi rok isporuke) . Model se služi standardnim tehnikama analiza i dizajna te prakticira izradu dokumentacije radi lakše nadogradnje i održavanja sustava.

Ovaj model prvi puta uspješno je primijenjen 1970. u tvrtci (NewYork Telephone Co – Dan Giealn), 1990. prvi puta je opisan u knjizi (James Martin),a nastao je kao odgovor na probleme prethodnih (linearnih) metodologija koje nisu uspijevale upravljati projektima kod kojih su se često mijenjali zahtjevi.

Model ima znatne prednosti i nedostatke. Radna verzija sustava dostupna je u vrlo kratkom roku. Troškovi razvoja su niski uz znatnu uštedu vremena, ljudskih i novčanih resursa. Proces razvoja je usredotočen na elemente koji su važni za korisnika te omogućuje brzu prilagodbu i izmjenu zahtjeva.

S druge strane, brzina i niži troškovi razvoja mogu uzrokovati manju kvalitetu sustava, što nije poželjno. Zbog čestih izmjena zahtjeva i brzih isporuka sustava javljaju se problemi s ažurnošću dokumentacije i s pridržavanjem konvencijama kodiranja. Brzina dizajna može uzrokovati lošu skalabilnost sustava. Kako se teži problemi odgađaju za zadnje faze, kako bi se prikazao rani učinak menadžmentu, nije moguće točno definirati stvarni napredak razvoja.

• Prikladnost modela◦ Mali i kratkotrajni projekti ◦ Veći dio funkcionalnost sustava vidljiv je na samom korisničkom sučelju ◦ Kod projekata gdje korisnik posjeduje kompletna znanja o području primjene ◦ Kada zahtjevi sustava nisu dovoljno jasni, ili su nepoznati ◦ Kad je moguća stabilnost razvojnog tima. ◦ Definirana je jasna razvojna arhitektura

• Neprikladan

13

Page 16: Razvoj i primjena informacijskih sustava

◦ Dugotrajni i vrlo veliki infrastrukturni projekti s velikim brojem timova ◦ Sustavi za rad u realnom vremenu i visoko pouzdani sustavi ◦ Širok opseg projekta, i nejasni poslovni ciljevi ◦ Veliki broj osoba uključeno u odlučivanju, ali oni nisu uvijek dostupni i geografski su

dislocirani ◦ Veliki broj članova tima ili veći broj razvojnih timova ◦ Nedostatak korisničkih resursa◦ Kada se razvoj vrši pomoću nove, još nepoznate tehnologije

B.1.2.6 Formalni Model

Omogućuje razvoj informacijskog sustava koristeći različite matematičke metode. Matematičkim postupcima vrši se specifikacija, razvoj i testiranja softvera

Primjer formalnih metoda i notacija

• Petrijeve mreže

• Z-Notacija

• B-Metoda

• Prednosti ◦ Smanjuje se mogućnost pogrešaka i propusta ◦ Moguće je dokazati da je implementacija sukladna sa specifikacijom ◦ Dvosmislenost, nepotpunost te nekonzistentnost lako se otkrije i ispravlja

• Nedostaci ◦ Razvoj može biti dugotrajan i skup◦ Velika vjerojatnost da kupac nije upoznat s ovim modelom◦ Kompleksan za naučiti te traži puno vremena za savladavanje

14

Page 17: Razvoj i primjena informacijskih sustava

B.1.2.7 ESA6 Razvojni modeli

Ozbiljne organizacije s vlastitim razvojnim informatičkim odijelima posebnu pažnju skreću na kontrolu kvalitete. Kontrolu kvalitete provodi poseban odjel, a jedan od zadataka tog odjela je i definiranje skupa razvojnih metodologija koje se koriste unutar organizacije. Primjer takve organizacije je Europska svemirska agencija koja ima definirane tri vrste razvojnih metodologija. Svaka od ESA metodologija primjenjuju se ovisno o vrsti projekta, budžetu, razvojnom timu i sl. Sve ESA metodologije koriste neki od prethodno predstavljenih razvojnih modela.

ESA vodopadni model

Definira šest faza razvoja koje koriste tzv. Waterfalli model gdje se svaka faza u potpunosti završava prije prijelaza na novu fazu.

UR – Definiranje korisničkih zahtjeva, SR - Definiranje zahtjeva softvera , AD – Definiranje arhitekturalnog dizajna, DD – Detaljni dizajn i razvoj koda , TR – Priprema softvera za uvođenje, OM – Uvođenje i održavanje softvera

FAZA Glavne aktivnosti Ciljni artefakti

UR Definiranje radne okolineIdentificiranje korisničkih zahtjeva

UR dokument

SR Izrada logičkog modelaDefiniranje zahtjeva softvera

SR dokument

AD Izrada fizičkog modelaDefiniranje glavnih komponenti sustava

AD dokument

DD Dizajn komponentiKodiranjeTestiranje komponenteIntegracijsko testiranjeSistemsko testiranje

DD dokumentKôdSUM dokument

TR InstalacijaPočetni test prihvatljivosti

ST dokument

6 European Space Agency (www.esa.intl)

15

Page 18: Razvoj i primjena informacijskih sustava

OM Konačni test prihvatljivostiUvođenje u radOdržavanje koda i dokumentacije

PH dokument

ESA Inkrementalni model

Model je prikladan kod velikih projekata, gdje se izbjegava samo jedna objava softvera. To mogu biti npr. slijedeće situacije:

• Ako neke od funkcionalnosti trebaju biti gotove prije nego li se počne s razvojem drugih (inkrementalna implementacija funkcionalnosti)

• Ograničenje broja članova tima ima za posljedicu podjelu projekta u više etapa • Proračun projekta podijeljen je na manje iznose, ali kroz dulji period, čime nije moguć

kontinuirani rad na projektu

Svaka od verzija treba biti potpuno uporabljiva i pružati potpuno implementirane funkcionalnosti.

Nedostatak ovog modela su dodatni troškovi i napor prilikom testiranja dijela/cijelog sustava, koje se treba obavljati nakon svake iteracije.

Faze DD + TR + OM – podijeljene u više iteracija

ESA evolucijski model

Evolucijski model zasniva se na nadogradnji, izmjeni prethodne verzije softvera. Može se koristiti u situacijama, npr.:

• Kada korisniku sustava treba određeno iskustvo da definira korisničke zahtjeve sustava • Neki od dijelova sustava ovise o tehnologiji koja još nije gotova (npr. razvoj softvera za

hardver u razvoju) • Postoji vjerojatnost naknadnih korisničkih zahtjeva u tijeku razvoja sustava • Neki od korisničkih zahtjeva traže dulje vrijeme implementacije

16

Page 19: Razvoj i primjena informacijskih sustava

Nedostatak modela predstavljaju nejasni zahtjevi koji mogu za posljedicu imati česte promjene koda. Privremeni dijelovi kod mogu biti ugrađeni u sustav čineći ga nepogodnim za nadogradnju.

DEV = UR + SR + AD + DD + TR

B.1.2.8 Dokumentiranje razvoja sustava

Različite metodologije koriste različitu strukturu dokumenata koji se isporučuju po završetku pojedine faze ili inkremenata faze, u slučaju inkrementalnih metodologija. Isto tako, različite metodologije definiraju blažu ili strožu disciplinu vezanu uz pisanje dokumentacije. S jedne strane, klasične linearne metodologije definiraju striktnu strukturu dokumenata koji se isporučuju po završetku svake faze, S druge strane, neke radikalne inkrementalne metodologije izbjegavaju pisanje klasičnih dokumenata, već pribjegavaju boljem dokumentiranju samog koda uz korištenje alata za automatizirano dokumentiranje.

S obzirom da linearne metodologije koriste striktno definiranje dokumenata, u daljnjem tekstu pokazana je struktura waterfall metodologije korištene u Europskoj svemirskoj agenciji.

Ovisno o fazi razvoja dostavljaju se slijedeći dokumenti:

• Dokument zahtjeva korisnika • Dokument zahtjeva softvera • Dokument dizajna arhitekture • Dokument detaljnog dizajna • Korisnički priručnik softvera• Dokument prijenosa softvera • Dokument povijesti projekta

17

Page 20: Razvoj i primjena informacijskih sustava

Dokument zahtjeva korsinika (URD7)

Definira zahtjeve korisnika za željenim svojstvima softvera, a piše ga korisnik softvera (uz pomoć programera). U svrhu prikupljanja zahtjeva provode se intervjui te izrađuju prototipi sustava radi boljeg specificiranja zahtjeva.

Sve ESA spcifikacije, po završetku faze u kojima se pišu, provjeravaju se od strane korisnika, inženjera i menadžera (tzv. Technical review)

Dokument zahtjeva softvera (SRD8)

Opisuje rezultate analiza u kojoj se definira što softver treba raditi. Ovaj dokument ne sadrži dijelove vezane za implementaciju. Svi zahtjevi sustava se podjele na funkcionalne i nefunkcionalne zahtjeve.

Po završetku, dokument se provjerava od strane korisnika, inženjera i menadžera

Dokument dizajna arhitekture (ADD9)

Definira strukturu softvera te opisuje komponente sustava i sučelja među komponentama. Definira dizajn sustava kao skup više komponenata definirajući kontrolu i tok podataka između njih. Povezuje zahtjeve softvera s odgovarajućim komponentama koristeći tablicu u kojoj definirani zahtjevi referiraju na definiranu komponentu sustava.

Po završetku, dokument se provjerava od strane korisnika, inženjera i menadžera

Dokument detaljnog dizajna (DDD10)

Opisuje detaljni opis dizajna svih komponenata. Sastoji se od dva dijela. U prvom djelu dokumenta navode se opće informacije vezane za razvoj cijelog sustava, kao što su: primijenjeni/podržani standardi, primjenjene konvencije (kodiranja, dokumentiranja, testiranja), alati i postupci za proces razvoja. Ovaj dokument treba biti gotov prije početka samog razvoja sustava.

Drugi dio dokumenta se popunjava u hodu, kako dizajn napreduje. Struktura drugog dijela treba se u potpunosti poklapati sa strukturom koda. Sadržaj se sastoji od popisa komponenata i detaljnog opisa dizajna svake od komponente uz definiranje tipa i funkcije komponente, ovisnosti komponente o ostalim komponentama, ili vanjskim sustavima, definicija sučelja komponente, strukture podataka koju komponenta koristi.

Korisnički priručnik softvera (SUM11)

Ovaj dokument se počinje pisati za vrijeme DD faze zajedno s pisanjem dokumenta detaljnog dizajna sustava. Ovaj dokument sadrži upute korisnicima za korištenje softvera. Struktura ovog priručnika oslanja se na standard ANSI/IEEE Std 1063-1987 “Software User Documentation”

Definira se slijed upute korištenja, uređene od jednostavnih operacija ka složenim. Popis operacija

7 eng. User Requirements Document 8 eng. Software Requirements Document9 eng. Architectural Design Document 10 eng. Detailed Design Document 11 eng. Software User Manual

18

Page 21: Razvoj i primjena informacijskih sustava

je uređen (najčešće) abecednim redom, a treba sadržavati i popis referenci prema ostalim dokumentima i primjere korištenja sustava.

Dokument prijenosa softvera (STD12)

Dokument definira postupke za transfer sustava, kako ga izgraditi i uvesti u rad. Sadrži izvješća o testiranju prihvaćanja softvera, uočenim greškama i promjenama koje su se desile tijekom TR faze

Dokument povijesti projekta (PHD13)

Ovaj dokument piše projekt menadžer koristeći princip upitnika na svim članovima projekta. Namjena dokumenta je bolje planiranje budućih projekata. Sadržaj se sastoji od sumiranja iskustva stečenih tijekom trajanja projekta, kao što su:

• Usporedba procjene resursa sa stvarno potrošenim resursima (vrijeme, ljudi, novac, ...)

• Sastavljanje tima

• Popis dobre prakse i loše prakse, uočene tijekom trajanja projekta

• Uspoređuje planove s ostvarenim rezultatima

B.1.3 Alati za razvoj sustava

Razvojni proces sastoji se od niza različitih aktivnosti koji se vrše tijekom pojedinih ili više faza razvoja sustava. U svrhu olakšavanja tih aktivnosti mogu se koristiti tzv. CASE14 alati, odnosno alati za računalom potpomognuto softversko inžinjerstvo. Osnovna namjena CASE alata je pomoć u razvoju i održavanju informacijskih sustava.

Pojam CASE izvorno potječe iz ranih 1980. godina od strane tvrtke Nastec Corporation. Tvrtka je proizvela nekolicinu alata od integriranih uređivača teksta i grafike, do alata za logičku i semantičku evaluaciju softvera i dijagrame dizajna sustava. Većina prvih CASE alata bila je specijalizirana za dizajn procesa (programa, modula) ili za dizajn podataka. Prvi CASE alati prvenstveno su se fokusirali na kreiranje i analizu grafičkog prikaza dizajna softvera te su predstavljali most između metodologije razvoja sustava i projekt menadžmenta. Uglavnom su nastali u velikim kompanijama (Nastec, IBM, ...), a izvršavali su se na velikim mainframe računalima.

Vrhunac u korištenju CASE alata bile su početak 1990. godina, no nestankom velikih mainframe računala nestali su i veliki CASE alati čime se otvorilo tržište za manje alate koje se koriste danas.

Tipični alati za razvoj softvera su:

• Alati za generiranje koda

• UML editori

12 eng. Software Transfer Document13 eng. Project History Document 14 Computer-Aided Software Engineering

19

Page 22: Razvoj i primjena informacijskih sustava

• Alati za refactoring

• Alati za transformaciju modela (QVT15)

• Alati za upravljanje konfiguracijama (CM16)

• Alati za testiranje modula/sustava

CASE alati se mogu podijeliti na dvije skupine:

• Upper CASE

Alati vezani uz strategiju i planiranje (upravljanje resursima, generiranje projekt plana, upravljanje zahtjevima, ...)

• Lower CASE

Alati za pomoć u razvoju softvera (generiranje koda, generiranje shema baze podataka, testiranja koda/sustava, upravljanje konfiguracijom )

Različite faze razvoja sustava, traže različite alate za podršku:

• Projektni menadžment:

◦ Sastavljanje i praćenje projektnog plana

◦ Upravljanje resursima

• Prikupljanje i analiza zahtjeva

◦ Prikupljane podataka i analiza

◦ Modeliranje business procesa

◦ izrada prototipova;

◦ Upravljanje zahtjevima: dokumentiranje, definiranje prioriteta, upravljanje verzijama, povezivanje zahtjeva uz softverske komponente ...

◦ Sastavljanje modela podataka i rječnik; pomaže da se izbjegnu razlike u razumijevanju dupliciranje podataka

◦ reverzni inženjering

• Unaprjeđenje dizajna arhitekture sustava:

◦ omogućuje se vizualizacija arhitekturalnog rješenja, uz podršku standardne notacije, UML, E-R dijagrami i sl.

◦ opis komponenata sustava i sučelja

• Kreiranje koda i testiranje

◦ automatizirano generiranje koda na osnovu dizajna arhitekture, uključujući ulazne forme i izvještaje

◦ izvršavanje i testiranje koda kora-po-korak

15 Query/View/Transformation16 Configuration Management

20

Page 23: Razvoj i primjena informacijskih sustava

◦ automatizirano pokretanje testova, uz mogućnost prikaza rezultata i izrade dokumentacije

◦ komentiranje i dokumentiranje koda

◦ upravljanje verzijama koda

• Upravljanje konfiguracijom produkta

◦ upravljanje verzijama koda

• Upravljanje greškama

◦ sustava za automatiziranu prijavu greške uz mogućnost povezivanja s CM sustavom

Primjer lower CASE alata

• Alati za upravljenja konfiguracijama ClearCase, SVN, CVS, Git, Mercurial

• Alati za testiranje komponente sustava JUnit, CUnit, CppUnit

• MDA alati Modelio, ArgoUML, Rational Rose Developer, StarUML, BoUML, Innovator, Sparx Enterprise Architect, Poseidon UML, Visual Paradigm for UML

• Alati za “refactoring” Eclipse, NetBeans, MS Visual Studio, ReSharper, CodeBrush

• Alati za statičku analizu koda Splint, lint, FindBugs, PMD, JSLint, StyleCop

• Alati za generiranje dokumentacije DoxyGen, javadoc, Doc-O-Matic, DOC++, NDoc, ROBODoc

• Alati za modeliranje podataka CASEWise, DataArchitect, PowerDesigner, DB Constructor, Oracle SQL Developer Data Modeler

• Integrirana razvojna okruženja NetBeans, Visual Studio, Eclipse, JDeveloper, IntelliJ IDEA, wxDevCPP, MonoDevelop, SharpDevelop, Rational Aplication Developer

• Alati za automatizirano testiranje sustava HP Quality Center, IBM Rational TestManager, MKS Integrity, HP WinRunner, IBM Rational Functional Tester

• Alati za praćenje pogrešaka Jira, BugZilla ,IBM Rational ClearQuest, BugTracker.NET, Tigris Scarab

21

Page 24: Razvoj i primjena informacijskih sustava

B.1.4 Testiranje i uvođenje sustava

Kvaliteta nekog proizvoda najviše ovisi o postupku pripreme procesa, znanju, sposobnosti i motivaciji članova tima (analitičarima, arhitektima, programerima, ... ). Povećanjem znanja članova tima u obliku stručnih treninga može utjecati na kvalitetu izrade konačnog sustava. S druge strane, kvaliteta sustava može se poboljšati i kvalitetnim testiranjem sustava.

Testiranje se koristi u različitim segmentima ljudskih aktivnosti. Promatranje i eksperimenti se koriste za testiranje hipoteza i teorija u znanosti; studenti se testiraju putem pismenih i usmenih provjera tijekom studija; proizvodi se testiraju u industrijskoj proizvodnji.

Testiranje softvera je u direktnoj vezi s kvalitetom softverskog proizvoda. Testiranje treba omogućiti provjeru je li razvijeni sustav sukladan početno definiranim zahtjevima korisnika i može li pružiti mogućnost otkrivanja nedostataka u sustavu. U praksi nije moguće postići apsolutnu sigurnost da neki sustav ne sadrži greške, no moguće je postići da se sustav ponaša pouzdano za specificirane uvijete.

Testiranje sustava sa svim mogućim ulaznim parametrima, uz očekivanje željenih izlaznih parametara teško je ili čak nemoguće izvedivo. Važno je odabrati efektivne metode testiranja uz pažljivi odabir test podatka s kojima će se pokrenuti testiranje. Iako uvijek nije moguće, poželjno je za većinu testova omogućiti automatsko testiranje. U tu namjenu mogu pomoći specijalizirani alati i okruženja za automatizirano testiranje.

Jednom otkrivena pogreška u sustavu ili nadogradnja sustava, treba se testirati na način da se provjeri da li novonastala promjena uzrokuje neke nove greške na sustavu.

Pripreme za testiranje potrebno je započeti od prvih faza razvoja sustava. V-Model testiranja pokazan na slici 5 pokazuje ovisnost početnih faza razvoja s vrstom testiranja sustava. Npr. jednom

22

Slika 5: V-Model testiranja

Page 25: Razvoj i primjena informacijskih sustava

definirani zahtjevi sustava predstavljaju početnu točku za specificiranje testa prihvatljivosti. Isto tako, kod dizajna komponente (modula) potrebno je specificirati testiranje tog modula.

Ovisno o fazi razvoja, testiranje se provodi na različitim dijelovima sustava pa tako razlikujemo:

• Modul testiranje - koristi se za testiranje konkretnog softverskog modula. Modul se testira od strane programera koji razvija sam modul i to prije nego li se modul integrira u sam sustav. Kod ovog testa najčešće se primjenjuje tzv. white-box testiranje

• Integracijsko testiranje – koristi se za testiranje sustava kao cjeline. Provodi se provjera da li moduli koji zasebno rade, rade ispravno i nakon što se povežu s ostalim modulima. Test najčešće provodi osoba koja nije direktno sudjelovala u razvoju modula. Iz V-Modela vidljivo je da priprema za integracijsko testiranje proizlazi iz dizajn specifikacija svih softverskih modula.

• Sistemsko testiranje – omogućuje testiranje sustava kao cjeline. Sustav se testira u zaštićenom okruženju na hardveru za koji je sustav razvijen. Najčešće se primjenjuje tzv. black-box testiranje, a specifikacija testa se definira na osnovu arhitekture sustava i dizajna sustava.

Ovisno o namjeni testiranja, razlikuju se slijedeće vrste:

• Regresijsko testiranje – koristi se u svrhu provjere izmjena na sustavu. Npr. nakon otklanjanja otkrivene i potvrđene pogreške u sustavu, provjerava se da li izmjena koja ispravlja pogrešku uvodi novu nepravilnost ili grešku u radu sustava

• Testiranje prihvatljivosti – provodi se od strane klijenta da se provjeri da li sustav radi s unaprijed dogovorenim zahtjevima. Test se vrši unutar radnog okruženja kod klijenta (korisnika)

• Alfa testiranje – predstavlja testiranje kompletnog sustava u razvojnom okruženju, a najčešće od strane klijenata ili/i posebnog tima sastavljenoga od razvojnih inženjera. Primjer: MS Windows Alpha verzije testiraju se od strane odabranih inženjera/programera i ostalih djelatnika tvrtke.

• Beta testiranje – se primjenjuje po završetku alfa testiranja, ali se ono provodi u ciljanom okruženju kod krajnjeg korisnika. Primjer: MS Windows Beta instalacije distribuiraju se krajnjim korisnicima koji mogu biti uključeni u program beta testiranja, gdje im je pružena mogućnost pružanja povratne informacije vezano za beta verziju sustava.

Kod svih vrsta testova postoje različite metode koje se koriste ovisno o kojem testu je riječ.

Testiranje Metode

Izvornog koda revizija, inspekcija

Komponente black-box, funkcionalni i strukturni white-box

Integracije Funkcionalna integracija, black-box, white-box

Sustava black-box, funkcionalno testiranje

Prihvatljivosti black-box

Tablica 1: Metode testiranja

23

Page 26: Razvoj i primjena informacijskih sustava

Black box testiranje - ne izvodi se od strane programera koji je napisao izvorni kod. Odabir test podataka i interpretacija rezultata izvodi se na osnovu funkcionalnih osobina softvera. Testiranje se fokusira na opću funkcionalnost sustava, a često se provodi od strane trećih osoba.

White box testiranje - izvodi se od strane programera koji je upoznat s internom strukturom programa.

Osim klasičnih postupka testiranja, kvaliteta koda može se postići i drugim tehnikama kao što su revizije i inspekcije. Revizija predstavlja grupni proces koji uključuje sastanke i diskusiju. Potrebno je odrediti stanje projekta te detektirati slabe točke. Rezultati se prikazuju u obliku izvještaja, a postupci revizije uključuju slijedeće postupke:

Tehnički sastanci - uključuju dizajnere, ocjenjivače i ljude koji sudjeluju u narednim fazama projekta. Inspekcija izvornog koda/dokumentacije

Dizajneri i ocjenjivači prolaze kroz izvorni kod/dokumentaciju u potrazi za mogućim nepravilnostima u načinu kodiranja

Vanjske revizije Provode se od strane vanjskih osoba radi provjere suglasnosti sa zahtjevima, standardima, procedurama…

Slijedivost je postupak bilježenja izmjena/rada na projektu. Razlikuju se dvije vrste sljedivosti:

• Slijedivost unaprijed - bilježenje početnih zahtijeva i promjena od početne faze projekta (definiranje zahtijeva korisnika) do završnih faza projekta (uvođenja i održavanja) omogućuje identifikaciju područja pogođenim izmjenama kod uvođenja novih zahtjeva.

• Slijedivost unazad - U završnim fazama razvoja (uvođenje, održavanje), otkrivanjem pogrešaka započinje proces pretraživanja slijeda izvršenih radnji u prethodnim fazama razvoja u svrhu otkrivanja dijelova, komponenti ili zahtijeva koji su moguće povezani s uzrokom pogreške.

Formalni test - definira testiranje koje matematičkim metodama određuje ispravnost softvera. Kompleksnost metode čini je vrlo nepraktičnom za primjenu i tešku za učenje. Ograničena primjena ovog testiranja svodi se najčešće na testiranje algoritama enkripcije, komunikacijskih protokola te implementacije različitih standarda.

Ovisno koji se zahtjevi sustava testiraju razlikuju se dvije osnovne skupine testova:

• Funkcionalno testiranje – provjera rada sustava s prethodno definiranim zahtjevima.• Nefunkcionalno testiranje – testiranje sustava na tražene nefunkcionalne zahtjeve kao što

su:◦ sigurnost – provjera sustava na sigurnosne zahtjeve definirane na početku razvoja◦ uporabljivost – testiranje sustava u skladu s pravilima uporabljivosti (usability).

Orijentirano je prema lakoći korištenja sustava i intuitivnosti korištenja.◦ stabilnost – često se primjenjuje tzv. stress-test kojim se sustav testira u graničnom

okruženju i uz najveća moguća opterećenja

24

Page 27: Razvoj i primjena informacijskih sustava

◦ pouzdanost – testiranje sustava uz praćenje ispravnosti izvođenja operacija ◦ portabilnost – testiranje mogućnosti promjene ciljne platforme

Kao pomoć pri testiranju postoji niz alata koji olakšavaju postupak testiranja od testiranja modula, do sistemskog testiranja. Vrlo bitno je bilježiti sve ispravke na sustavu, a u tu namjenu se koriste alati za praćenje pogrešaka (issue management) preko kojih se bilježi svaka novootkrivena pogreška i povezuje se s komponentom na koju se pogreška odnosi, i s odgovornom osobom (programerom) zaduženim za tu komponentu sustava. Sustav za praćenje pogrešaka omogućuje detaljan opis greške te naknadnu promjenu problematične komponente, s obzirom da je čest slučaj da se greška prijavi na komponentu koja je u stvarnosti ispravna. Ovi alati su povezani s alatima za upravljanje konfiguracijama koji se koriste za pohranu svih verzija datoteka izvornog koda. Jednom ispravljena datoteka izvornog koda treba imati oznaku s brojem greške koja je ispravljena tom verzijom.

Ovaj postupak se koristi od faza sistemskog testiranja do cijelog trajanja održavanja sustava.

Jednom testiran sustav treba pripremiti za uvođenje. Uvođenje sustava uključuje različite postupke priprema koje su potrebne da bi se sustav uspješno uveo kod krajnjeg korisnika i pripremu projekta za fazu održavanja. Ono što čini ovu fazu posebnom u donosu na sve prethodne faze je činjenica da su se sve projektne aktivnosti do ove faze obavljale unutar sigurnog, zaštićenog i osiguranog okruženja. Jednom kad se sustav uvede kod krajnjeg korisnika, više to neće biti slučaj. Svi problemi koji se budu javljali nakon uvođenja imati će značajni utjecaj na razvojnu organizaciju. Npr. samo prisustvo kod organizacije klijenta može tražiti posebna dopuštenja, a vrijeme potrebno za ispravljanje pogrešaka najčešće se dodatno naplaćuje, ako sustav do tada ne može normalno raditi. Faza uvođenja može se podijeliti na tri koraka

• Priprema uvođenja sustava - ključuje sve postupke priprema kojima se omogućuje jednostavno uvođenje sustava. Sama priprema uključuje razne intervjue, pripremu dokumentacije, koordinaciju logistike za osposobljavanje budućih korisnika i organiziranje prijenosa odgovornosti unutar razvojne organizacije kad sustav krene u rad i započne faza održavanja.

• Puštanje u rad - podrazumijeva postupke instalacije sustava (hardvera i softvera) kod korisnika, migraciju i inicijalizaciju podataka te osposobljavanje krajnjih korisnika.

• Prijenos odgovornosti - priprema odjela/grupe unutar razvojne organizacije za preuzimanje odgovornosti o održavanju sustava. Razvojni tim, u obliku dokumentacije, edukacije i drugih vrsta pomoći priprema poseban tim/odjel za održavanje sustava .

B.1.5 Kontrola i sigurnost sustava

Sve informacije pohranjene kao podaci, uključujući izvorni kôd softverskog proizvoda, predstavlja vrijednost za čovjeka. Stoga je potrebno osigurati podatke kako bi se zaštitila njihova vrijednost. Aspekti sigurnosti informacijskog sustava trebaju se uzeti u razmatranje od samog početka razvoja sustava kako bi se lakše i bolje implementirali.

Postoje 3 osnovna elementa koji definiraju sigurnost informacijskog sustava(CIA17) .

17 Confidentiality, Integrity, Availability

25

Page 28: Razvoj i primjena informacijskih sustava

• Dostupnost – definira dostupnost podataka u bilo kojem trenutku, odnosno kada god to korisnik zaželi. Potrebno je definirati postupke dupliciranja podataka i metode sigurnosti podataka. U tu svrhu mogu se koristiti okruženja za repliciranje podataka (pasivna i aktivna replikacija), kompletni sustavi velike dostupnosti18 i postupci zaštite o DoS19 napada.

• Integritet – odnosi se na nepravilne i neprimjetne izmjene podataka ili funkcionalnosti sustava. Potrebno je definirati pouzdane sustave za prijenos i pohranu podataka te koristiti tehnike kodiranja radi očuvanja integriteta podataka (npr. ECC memorije)

• Povjerljivost – podrazumijeva uskraćivanje pristupa podacima ili sustavu od strane neautoriziranih korisnika. Povjerljivost je vezana uz podatke i operacije koje se mogu izvoditi na samom sustavu. U svrhu osiguranja povjerljivosti koriste se metode enkripcije i zaštite pristupa korisnicima.

2002. godine Donn B. Parker, uvodi dodatna tri elementa koja opisuju sigurnost sustava

• Posjed i kontrola – opisuje gubitak kontrole nad podacima u trenutku kada se izgubi posjed podataka. Npr. gubitak koverte s bankovnom karticom i identifikacijskim brojem kartice ne znači i gubitak povjerljivosti do onog trenutka dok se koverta ne otvori.

• Autentičnost – definira postupak potvrde autentičnosti podataka. Podatak može zadovoljavati sve CIA elemente, ali još uvijek nije sigurno je je podatak autentičan. U tu namjenu može se koristiti digitalni potpis kao potvrda autentičnosti elektroničke informacije.

• Korisnost – Opisuje korisnost podataka u trenutku kada su zadovoljeni svi CIA elementi sigurnosti. Kao primjer služi gubitak ključa za dekriptiranje podataka na računalu.

18 eng. High Availability System19 Denial of Service

26

Page 29: Razvoj i primjena informacijskih sustava

B.1.6 Trendovi u razvoju sustava

Većina razvojnih metodologija vuče korijene iz vojne industrije ili su nastale u velikim softverskim kompanijama. Iako postoje različite metodologije razvoja sustava, postoje i definirani standardi koji opisuju postupke vezane za razvoj softvera.

B.1.6.1 ISO Standardi

ISO 9000

ISO 9000 dio je ISO standarda koji regulira razvoj, distribuciju, unaprjeđenje i održavanje. Standard zahtjeva da organizacija, koja implemenira standard, identificira ključne procese i odabere metodologije i tehnike u svrhu kvalitetnog provođenja procesa. Način odabira procesa nije propisan Poseban naglasak dan je na neprekidnom poboljšanju procesa i identifikatora, koji se koriste za kontrolu kvalitete procesa i proizvoda.

ISO12207

ISO 12207 poznat je pod imenom System and software enigineering – Software life cycle process definira sve zadatke potrebne za razvoj i održavanje softvera. Standard omogućuje prilagođavanje procesa specifičnom okruženju, a certifikat norme se određuje nadgledanjem performansi procesa, aktivnosti i zadataka.

ISO 12207 definira ukupno 23 procesa, 95 aktivnosti, 325 zadataka i 224 ishoda .

• 5 osnovnih procesa ◦ prikupljanje, opskrba, razvoj, rad, održavanje

• 8 procesa podrške

27

Slika 6: Evolucija standarda životnog ciklusa

Page 30: Razvoj i primjena informacijskih sustava

◦ dokumentiranje, upravljanje konfiguracijom , kontrola kvalitete, verifikacija i testiranje, validacija, grupna provjera, revizija, rješavanje problema

• 4 organizacijska procesa ◦ upravljanje, infrastruktura, usavršavanje, trening

ISO27000

ISO 27000 definira familiju standarda za sustav upravljanja informacijskom sigurnošću. Podijeljene je na 6 standarda od kojih svaki ima specifičnu namjenu.

• ISO 27001 - Zahtjevi za Sustav Upravljana Informacijskom Sigurnošću (SUIS)

Određuje potrebe za utemeljenje, implementaciju, nadzor i pregled te održavanje i poboljšanje sustava upravljanja – u grubo to je okvir za upravljanje rizicima informacijske sigurnosti organizacije.

• ISO 27002 - Pravila dobre prakse za upravljanje sigurnošću informacija

Opisuje praktične metode managementa informacijske sigurnosti te se najčešće koristi kao pomoć kod implementacije SUIS-a po ISO 27001 standardu. Pruža primjere najbolje prakse u upravljanju informacijskom sigurnošću za osobe koje planiraju, implementiraju te održavaju sustav upravljanja informacijskom sigurnošću

• ISO 27003 - Upute za implementaciju SUIS-a

Pruža upute za implementaciju kao pomoć osobama koje implementiraju ISO 27000 standarde. U osnovi se bazira na smjernicama iz ISO 27001 standarda te pruža vodstvo sve do pokretanja SUIS projekta

• ISO 27004 - Mjerenja učinkovitosti sustava informacijske sigurnosti

Pomoć organizacijama za mjerenje, izvještavanje i na temelju toga sustavno poboljšanje kvalitete SUIS-a. Pruža smjernice za razvoj i korištenje mjerenja u svrhu procjene efektivnosti implementiranih kontrola i cijelog sustava SUIS, sukladno standardu ISO 27001. To uključuje politike, procjenu rizika, kontrolne ciljeve, kontrole, procese i procedure.

• ISO 27005 - Upravljanje rizikom SUIS-a

Pruža upute za upravljanje rizikom SUIS-a. Podržava osnovne koncepte iz 27001 i namijenjen je da pomaže zadovoljavajuću implementaciju informacijske sigurnosti bazirane na metodologijama za upravljanje rizicima. Ne određuje, preporuča ni imenuje neku od metoda upravljanja rizika, već opisuje strukturirani, sistematični i strogi proces od same procjene rizika do plana za rukovanje rizicima.

• ISO 27006 - Zahtjev za SUSI akreditaciju

Akreditacijski standard koji vodi certifikacijska kroz formalni proces certifikacije SUIS

28

Page 31: Razvoj i primjena informacijskih sustava

organizacija prema ISO 27001 standardu. Navodi sve potrebe i upute kako izvesti certifikaciju i koje uvjete organizacija mora zadovoljiti.

B.1.6.2 IEEE

Propisuje skup standarda na području elektrotehnike, elektronike i računarstva

• Standardi za razvoj sustava

◦ IEEE/ANSI Std 730 - Standards for Software Quality Assurance Plans

◦ IEEE Std 1028-1997 - IEEE Standard for Software Reviews

◦ ANSI/IEEE 1042-1987 - IEEE Guide to Software Configuration Management

◦ IEEE Std 1016-1998 - IEEE Recommended Practice for Software Design Descriptions

◦ IEEE Std 1074-2006 - IEEE Standard for Developing Software Life Cycle Processes

◦ IEEE/EIA 12207-2008 - IEEE Systems and software engineering-Software life cycle processes

• Standardi za verifikaciju i testiranje

◦ ANSI/IEEE 829-1983 - IEEE Standard for Software Test Documentation

◦ IEEE Std 829-1998 - IEEE Standard for Software Test Documentation

◦ ANSI/IEEE 1008-1987 - IEEE Standard for Software Unit Testing

◦ IEEE Std 1012-1986/2004 - IEEE Standard for Software Verification and Validation

◦ IEEE Std 1059-1993 - IEEE Guide for Software Verification and Validation Plans

• Standardi iz područja elektronike i računarstva

◦ IEEE 754 - Standard for Floating Point Arithmetic

◦ IEEE 1394 - Standard for Serial Bus Interface (Firewire)

◦ IEEE 1284 - Standard for bi-directional parallel communication,

◦ IEEE 802.11x - Standards for wireless area network,

◦ IEEE 802.16 - Group of Broadband wireless Access Standards (WiMAX),

29

Page 32: Razvoj i primjena informacijskih sustava

B.1.6.3 SEI/CMMI

SEI20 je istraživački centar čija je misija napredak postojećih praksa u softverskom inženjerstvu u svrhu poboljšanja kvalitete sustava koji ovise o softveru.

CMMI21 je postupak poboljšanja razvojnog procesa u svrhu poboljšanja rezultata neke organizacije.

Definira organiziran skup elemenata koji opisuju određeni aspekt zrelosti u organizaciji i pomaže pri definiranju i razumijevanju organizacijskog procesa.

Određuje 5 nivoa zrelosti u organizaciji

• Inicijalni (initial) - kaotičan, ad-hoc

Razvojni procesi su slabo dokumentirani, a razvojni proces je teško ponovljiv. Nije definirana organizacijska struktura

• Ponovljivi (repeatable) - PM, projektna disciplina

Pojedini razvojni procesi su ponovljivi, a procesna disciplina nije stroga.

• Definiran (defined) – institucionaliziran

Postoji skup definiranih i dokumentiranih procesa, a razvojni proces je ponovljivi.

• Upravljiv (managed)

Koristeći metriku razvojnog procesa omogućuje jednostavno praćenje napretka procesa. Ima mogućnost podešavanja i prilagođavanja procesa različitim projektima.

• Optimizirajući (optimizing) – poboljšanje razvojnog procesa

Prisutna je kontinuirana optimizacija procesa.

20 Software Engineering Institute (SEI) - http://www.sei.cmu.edu21 Capability Maturity Model Integration (CMMI) - http://www.sei.cmu.edu/cmmi

30

Slika 7: CMMI

Page 33: Razvoj i primjena informacijskih sustava

B.1.6.4 SIX SIGMA

Poslovna strategija razvijena 1986. godine unutar tvrtke Motorola. Pruža mogućnost poboljšanja razvojnog procesa.

Strategija definira metriku (3.4DPMO22), metodologije (DMAIC, DMADV) i sustav upravljanja.

Cilj strategije je prepoznavanje i uklanjanje pogrešaka u procesu proizvodnje i razvojnom procesu radi postizanja visoke razine kvalitete ( 99,9997 % ). U softverskoj industriji primjenjuje se na izvornom kodu i na operacijama koje taj kod izvodi.

SIGMA NIVO DPMO Efikasnost

1σ 690000 31,00%

2σ 308537 69.15%

3σ 66807 93.32%

4σ 6210 99.379%

5σ 233 99.977%

6σ 3,4 99.9997%

Table 1: SixSigma

Primjena six sigma metode u razvojnom procesu fokusira organizaciju na

• Razumijevanje i rukovanje zahtjevima korisnika

• Definiranje ključnih procesa za ostvarivanje tih zahtijeva

• Smanjivanje oscilacije u ključnim procesima koristeći strogu analizu podataka

• Brzo i kontinuirano upravljanje poboljšanja razvojnog procesa

22 DPMO - Defective Parts per Million Opportunities

31

Slika 8: SixSigma

Page 34: Razvoj i primjena informacijskih sustava

Temelji metodologije predstavljaju dva modela

• DMAIC - model za usavršavanje razvojnog procesa

Define opportunity, Measure performance, Analyze opportunity, Improve performance, Control performance

• DMADV - model za razvoj novih proizvoda ili procesa

Define design goals, Measure and identify CTQs, Analyze to develop and design alternatives, Design details, Verify the design

Poznat i pod imenom DFSS - (Design For Six Sigma)

Sama strategija koristi različite alate i metode, a neki od njih su:

• 5 Whys

• Analysis of variance

• ANOVA Gauge R&R

• Axiomatic design

• Business Process Mapping

• Catapult exercise on variability

• Cause & effects diagram (also known as fishbone or Ishikawa diagram)

• Chi-square test of independence and fits

• Control chart

• Correlation

• Cost-benefit analysis

• CTQ tree

• Quantitative marketing research through use of Enterprise Feedback Management (EFM) systems

• Design of experiments

• Failure mode and effects analysis (FMEA)

• General linear model Histograms, Homoscedasticity

• Quality Function Deployment (QFD)

• Pareto chart

• Pick chart

• Process capability

• Regression analysis

• Root cause analysis

• Run charts

32

Page 35: Razvoj i primjena informacijskih sustava

• SIPOC analysis (Suppliers, Inputs, Process, Outputs, Customers)

• StratificationQuantitative marketing research through use of Enterprise Feedback Management (EFM) systems

B.1.6.5 Agilne metodologije

11.-13.02.2001., Snowbird skijalište, planine Wasatch , američka savezna država Utah; 17 osoba iz područja razvojnih metodologija zajednički je raspravljalo kako razvoj softvera učiniti bržim, lakšim i kvalitetnijim. Kao rezultat okupljanja nastao je proglas o metodi žustrog razvoja softvera - Agile Manifesto u kojem opisuju osnovne principe Agile metodologije.

Proglas o metodi žustrog razvoja softvera

Tražimo bolje načine razvoja softvera razvijajući softver i pomažući drugima pri njegovom razvoju. Takvim radom smo naučili da više cijenimo:◦ Ljude i njihove međusobne odnose nego procese i

oruđa

◦ Upotrebljiv softver nego iscrpnu dokumentaciju

◦ Suradnju s korisnicima nego pregovaranje oko ugovora

◦ Reagiranje na promjenu nego ustrajanje na planu.

Drugim riječima, iako cijenimo vrijednosti na desnoj strani, više vjerujemo u one na lijevoj.

Table 2: Agile Manifesto (http://agilemanifesto.org/iso/hr)

33

Page 36: Razvoj i primjena informacijskih sustava

Načela na kojima se zasniva proglas o žustrom razvoju softvera. Rukovodimo se sljedećim načelima:

• Najvažnije nam je zadovoljstvo korisnika koje postižemo pravovremenom i stalnom isporukom vrijednog softvera.

• Spremno prihvaćamo promjene zahtjeva, čak i u kasnoj fazi razvoja. Žustri razvoj koristi promjene da korisniku stvori tržišnu prednost.

• Redovito isporučujemo upotrebljiv softver, u razmacima od nekoliko tjedana do nekoliko mjeseci, nastojeći da to bude što češće.

• Poslovni ljudi i informatičari moraju zajedno raditi svakodnevno, tijekom cjelokupnog trajanja projekta.

• Projekte ostvarujemo oslanjajući se na motivirane pojedince. Pružamo im okruženje i podršku koja im je potrebna, i prepuštamo im posao s povjerenjem.

• Razgovor uživo je najučinkovitiji način prijenosa informacija razvojnom timu i unutar tima.

• Upotrebljiv softver je osnovno mjerilo napretka.

• Žustri procesi potiču i podržavaju održivi razvoj. Pokrovitelji, informatičari i korisnici moraju biti u stanju stalno raditi, usklađenim tempom, nezavisno od trajanja projekta.

• Neprekinuti naglasak na tehničkoj izvrsnosti i dobar dizajn pospješuju žustrost.

• Jednostavnost – umješnost povećanja količine posla kojeg ne treba raditi – je od suštinske važnosti.

• Najbolje arhitekture, projektne zahtjeve i dizajn, stvaraju samo–organizirajući timovi.

• Timovi u redovitim razmacima razmatraju načine da postanu učinkovitiji, zatim se usklađuju i prilagođavaju svoje ponašanje.

Skup razvojnih metoda koja su dio agilnih metodologija su:

• Scrum

• XP – eXtreeme Programming

• DSDM – Dynamic System Development Metology

• FDD – Feature Driven Development

• AUP – Agile Unified Process

• EssUP – Essential Unified Process

• OpenUP – Open Unified Process

• Agile Data Method

• Lean Software Development

34

Page 37: Razvoj i primjena informacijskih sustava

Osim metodologija, agile se koristi i određenim tehnikama pri razvoju sustava.

• Test Driven Development(TDD) – pisanje testova prije pisanja implementacije koja se testira

• Behavior Driven Development (BDD) – proširenje TDD metodologije na način da se testovi opisuju prirodnim jezikom

• Continuous Integration – neprekidna integracija novih funkcionalnosti

• Pair programming – kodiranje u paru

• Planning Poker – tehnika za procjenu razvoja komponente sustava bazirana na konsenzusu

• RITE23 Method – definira testiranje uporabljivosti sustava

B.1.6.6 Arhitektura aplikacija

Unazad nekoliko godina, najčešći pristup strukturiranja aplikacija bio je podjela na dvije komponente, klijent i poslužitelj. Ova arhitektura još je poznata kao dvoslojna arhitektura. Klijent omogućuje komunikaciju s poslužiteljem, a poslužitelj poslužuje više klijenata. Baza podataka i dio aplikacijske logike sustava je smještena na poslužitelju, dok klijent sadrži drugi dio aplikacijske logike i implementaciju sučelja s korisnikom. Nedostatak ove arhitekture predstavlja nadogradnja sustava, koja je nužna kako na poslužitelju, tako i u svim klijentima. Isto tako, kod ove arhitekture količina podataka između klijenta i poslužitelja je znatna.

23 Rapid Iterative Testing and Evaluation

35

Slika 9: Troslojna arhitektura softvera

Page 38: Razvoj i primjena informacijskih sustava

Nedostatke dvoslojne arhitekture pokušava riješiti troslojna arhitektura aplikacija. Kod troslojne arhitekture aplikacija, aplikacijska logika odvaja se u zasebnu komponentu koja može samostalno postojati na jednom ili više različitih računala.

• Prezentacijski sloj (Presentation Tier) - Krajnji sloj prema korisniku, koji je zadužen za prikaz podataka. Direktno komunicira s aplikacijskim slojem.

• Aplikacijski sloj - (Application Tier; Business Logic/Logic Tier) – Izdvojeni sloj, koji kontrolira funkcionalnost aplikacije izvršavajući detaljnu obradu podataka.

• Podatkovni sloj (Data Tier) – Sastoji se od poslužitelja baze podataka koji je zadužen za pohranu i dohvat informacija. Podaci su pohranjeni neovisno o aplikacijskom poslužitelju.

Ovisno o broju slojeva razlikuju se slijedeće arhitekture

• 1-tier – samostalna aplikacija koja integrira svu funkcionalnost na jednom mjestu

• 2-tier – klasična klijent-poslužitelj arhitektura. Klijent je tzv. thick-client, dok poslužitelj, osim pohrane podataka obavlja i aplikacijski dio.

• 3-tier – Napredna prezentacija/aplikacija/podaci arhitektura kod koje se svaki sloj može izvršavati na odvojenom hardveru. Klijent, odnosno prezentacijski sloj se implementira kao thin-client, odnosno ne implementira aplikacijsku logiku.

• n-tier – 3-tier arhitektura s distribuiranim aplikacijskim slojem

36

Page 39: Razvoj i primjena informacijskih sustava

A Dodatak - Predlošci ESA dokumenata

A.1 URD – Dokument zahtjeva korisnika

1 Uvod 1.1 Svrha dokumenta 1.2 Namjena softvera 1.3 Definicije, akronimi, kratice 1.4 Reference 1.5 Opis dokumenta

2 Opći opis 2.1 Namjena proizvoda 2.2 Opća svojstva 2.3 Opća Ograničenja 2.4 Svojstva korisnika 2.5 Radno okruženje 2.6 Pretpostavke i zavisnosti

3 Specifični zahtjevi 3.1 Popis svojstava softvera 3.2 Popis ograničenja softvera

A.2 SRD - Dokument zahtjeva softvera

1 Uvod 1.1 Svrha dokumenta 1.2 Namjena softvera 1.3 Definicije, akronimi, kratice 1.4 Reference 1.5 Opis dokumenta

2 Opći opis 2.1 Ovisnost s ostalim projektima 2.2 Ovisnost s prethodnim, narednim projektima 2.3 Funkcija i namjena 2.4 Specifičnosti okruženja 2.5 Ovisnost s ostalim sustavima 2.6 Opća ograničenja 2.7 Opisa modela

3 Specifični zahtjevi 3.1 Funkcionalni zahtjevi 3.2 Nefunkcionalni zahtjevi performanse, sučelja, resursi, verifikacija, testiranje, dokumentiranje, zaštita, portabilnost, kvaliteta, pouzdanost, održavanje, sigurnost

4 Tablica korisničkih zahtjeva i softverskih zahtjeva

37

Page 40: Razvoj i primjena informacijskih sustava

A.3 ADD - Dokument dizajna arhitekture

1 Uvod 1.1 Svrha dokumenta 1.2 Namjena softvera 1.3 Definicije, akronimi, kratice 1.4 Reference 1.5 Opis dokumenta

2 Pregled sustava 3 Kontekst sustava 4 Dizajn sustava

4.1 Metode dizajna 4.2 Opis dekompozicije

5 Opis komponente sustava 5.n [Identifikator komponente] 5.n.1 Tip 5.n.2 Namjena 5.n.3 Funkcija 5.n.4 Podređene komponente 5.n.5 Ovisnost 5.n.6 Sučelja 5.n.7 Resursi 5.n.8 Reference 5.n.9 Obrada 5.n.10 Podaci

6 Izvedivost i procjena resursa 7 Tablica softverskih zahtjeva i komponenata

A.4 DDD - Dokument detaljnog dizajna

1. Dio – Opći opis 1 Uvod

1.1 Svrha dokumenta 1.2 Namjena softvera 1.3 Definicije, akronimi, kratice 1.4 Reference 1.5 Opis dokumenta

2 Standardi, konvencije i postupci 2.1 Standardi dizajna 2.2 Standardi dokumentiranja 2.3 Konvencije naziva 2.4 Standardi kodiranja 2.5 Razvojni alati

2. dio – Specifikacija dizajna komponenata n [Komponenta] n.1 Tip n.2 Namjena n.3 Funkcija n.4 Podređene komponente n.5 Ovisnosti

38

Page 41: Razvoj i primjena informacijskih sustava

n.6 Sučelja n.7 Resursi n.8 Reference n.9 Obrada n.10 Podaci

Dodatak A Ispis izvornog koda

Dodatak B Tablica softverskih zahtjeva i komponenata

A.5 SUM - Korisnički priručnik softvera

1 Uvod 1.1 Kome je dokument namijenjen 1.2 Primjenjivost 1.3 Namjena 1.4 Kako koristiti se ovim dokumentom 1.5 Srodni dokumenti 1.6 Konvencije 1.7 Upute za prijavi pogrešaka

2 [Pregled] 3 [Upute]

(a) Funkcijski opis (b) Oprezi i upozorenja (c) Procedure (d) Moguće greške i njihovi uzroci

4 [Reference] (a) Funkcionalan opis (b) Oprezi i upozorenja (c) Formalni opis (d) Primjeri (e) Moguće poruke grešaka i njihovi uzroci (f) Povezanost s ostalim operacijama

Dodatak A Poruke o greškama i postupci oporavka Dodatak B Popis pojmova Dodatak C Indeksi (za priručnike dulje od 40 strana)

A.6 STD - Dokument prijenosa softvera

1 Uvod 1.1 Svrha dokumenta 1.2 Namjena softvera 1.3 Definicije, akronimi, kratice 1.4 Reference 1.5 Opis dokumenta

2 Postupci instalacije 3 Postupci izgradnje 4 Konfiguracija

39

Page 42: Razvoj i primjena informacijskih sustava

5 Sažetak izvješća testa prihvaćanja 6 Izvješća o greškama softvera 7 Izvješća o promjenama softvera 8 Izvješća o preinakama softvera

A.7 PHD - Dokument povijesti projekta

1 Opis projekta 2 Projekt menadžment

2.1 Ugovorni pristup 2.2 Organizacija projekta 2.3 Korištene metode 2.4 Planiranje

3 Produkcija softvera 3.1 Procijenjena i ostvarena količina koda 3.2 Dokumentacija 3.3 Procijenjeni i ostvareni rad 3.4 Računalni resursi 3.5 Analiza faktora produktivnosti

4 Izvješće osiguranja kvalitete 5 Financijsko izvješće 6 Zaključci 7 Performanse sustava u OM fazi.

40

Page 43: Razvoj i primjena informacijskih sustava

B LITERATURA:

B.1 Proces i metode razvoja sustava

• Beck, Kent

◦ Extreme Programming Explained

ISBN-13: 978-0201616415

• Beedle Mike, Schwaber Ken

◦ Agile Software Development with Scrum

ISBN-13: 978-0130676344

• Bernstein, Lawrence; Yuhas, C. M.

◦ Trustworthy Systems Through Quantitative Software Engineering

ISBN-13: 978-0471696919

• Booch, Grady, Jacobson, Ivar and Rumbaugh, James:

◦ Object-Oriented Analysis and Design with Applications (3d Edition)

ISBN-13: 978-0201895513

• Brooks P., Frederick

◦ The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)

ISBN-13: 978-0201835953

• Budgen, David:

◦ Software Design 2nd Edition

ISBN-13: 978-0201722192

• Kruchten, Phillippe

◦ The Rational Unified Process: An Introduction (2nd Edition)

ISBN-13: 978-0321197702

• McConnell, Steve

◦ Rapid Development

ISBN-13: 978-1556159008

• McConnell, Steve

◦ Code Complete 2nd Edition

ISBN-13: 978-0735619678

• Shore, James; Shane, Warden

◦ The Art of Agile Development

ISBN-13: 978-0596527679

41