SEMINARSKI RAD
Predmet: Alati i metode softverskog inženjerstva
Tema: CASE alati
Sadrţaj 1. Softverski proces, metode i alati ......................................................... 3 2. Modeli za softverski proces.................................................................. 3 2.2. 3.
Upotreba prototipova ..................................................................4
Softversko inţenjerstvo .........................................................................4 3.1. .Modeli za softverski proces ..........................................................6 3.1.1.Model vodopada ...............................................................................6 3.1.2.Modeli evolucijskog i inkrementalnog razvoja.......................................7
4. Modelovan je pomoću CASE alata .........................................................9 4.1. CASE alati za testiranje....................................................................................9
4.1.3. Mogućnosti CASE alata za modeliranje poslo vnih podataka......................11 4.1.4 Tehnologije koje pomaţu razvoj informacionih sistema ...........................12 5. Funkcije CASE alata.............................................................................. 15
Literatura ..............................................................................................19
2
1.Softverski proces, metode i alati Softverski proces je skup aktivnosti i pripadnih rezultata čiji je cilj razvoj ili evolucija softvera. Osnovne a ktivnosti unutar softverskog procesa su: specifikacija, oblikovanje, implementacija, verifikacija i validacija, kao i odr ţavanje odnosno evolucija. Model za softverski proces je idealizirani prikaz softverskog procesa, kojim se određuje poţeljni način odvijanja i me đusobnog povezivanja osnovnih aktivnosti. Na primer, model moţe zahtevati sekvencijalno odnosno simultano odvijanje aktivnosti.Metoda razvoja softvera je profinjenje i konkretizacija odabranog modela za softverski proces. Metoda uvodi specifičn u terminologiju. Takode, ona deli osnovne aktivnosti u pod-aktivnosti pa propisuje šta se sve mora raditi unutar pojedine pod-aktivnosti. Dalje, metoda uvodi konkretan na čin dokumentovanja rezultata pod-aktivnosti (dijagrami, tabele, pseudo jezik... ), i daje upute vezane uz organizaciju rada, stil oblikovanja, stil programiranja, itd.Starije funkcionalno-orijentisane metode poput Yourdonove ili Jacksonove JSD (80-te godine 20-tog veka) slede logiku starijih funkcionalno-orijentisanih programskih jezika (Cobol, C, Fortran).Novije objektno-orjentisane metode predst avljaju nadgradnju objektnoorjentisanih programskih jezika (Java, C++) i danas su se integrisale u zajednički standard RUP (engleski Rational Unified Process- Booch, Rumbaugh, Jacobson - 90-te godine) koji je utemeljen na notaciji UML (engleski UnifiedModelling Language). CASE alati (engleski Computer Aided Software Engineering) su softverski paketi koji daju automatizovanu podr šku za pojedine aktivnosti unutar softverskog procesa. Obično su napravljeni u skladus odre đenom metodom razvoja softvera, implementiraju pravila iz te metode, sadr ţe editore za odgovarajuće dijagrame, i sluţe za izradu odgovarajuće dokumentacije. Takozvani upper-CASE alati daju podr šku za početne aktivnosti unutar softverskog procesa, kao što su specifikacija i oblikovanje. Lower-CASE alati podr ţavaju samu realizaciju softvera, dakle programiranje, verifikaciju i validaciju, i eventualno odr ţavanje.
2. Modeli za softverski proces
U svim modelima više ili manje su prisutne sledeće osnovne aktivnosti koje čine softverski proces: Specifikacija. Analiziraju se zaht evi korisnika. Utvr đuje se šta softver treba raditi. Oblikovanje (engleski design.) Oblikuje se grada s astava, nači n rada komponenti, interfejs između komponenti. Dakle projektuje se rešenje koje određuje kako ć e softver raditi. Implementacija (programiranje). Oblikovano rešenje realizira se uz pomo ć raspoloţivih programskih jezika i alata. Verifikacija i validacija. Proverava se da li softver radi prema specifikaciji, odnosno da li radi ono što korisnik ţeli. Obič no se svodi na testiranje, mada postoje i druge tehnike. Odrţavan je odnosno evolucija. Nakon uvođ enja u upotrebu, softver se dalje popravlja, menja nadograđuje, u skladu s prom enjenim potrebama korisnika. 3
Modeli se razlikuju po načinu odvijanja i međ usobnog povezivanja osnovnih aktivnost.
2.2. Upotreba prototipova
Korisnici budućeg sistema često ne uspevaju jasno izraziti svoje zahteve, budući da ne mogu predvideti kako ć e taj ssistem uticati na njihove radne navike, u kakvo j će interakciji biti s drugim sistemima, kao i u kojoj meri on moţ e automatizovatii radne procese. Tada se pribegava izradi prototipa. Reč je o jednostavnom i brzo razvijenom programu, koji oponaša budući sastav, lako se menja i nadograđ uje, i omogućava isprobavanje raznih ideja, koncepcija i opcija. Prototip podrţava dv e pod-aktivnostiunutar aktivnosti specifikacije:
Otkrivanje zahteva. Korisnici eksperimentiš u, pa tako otkrivaju svoje potrebe i dobijaju nove ideje o tome što bi sistem trebao raditi. Validacija zahteva. Uočavaju se greške i propusti u polaznim zahtevima, na prim er nepotpuniili nekonzistentni zahtevi.
Osim toga, prototip moţe doneti sledeće dodatne koristi. Otkrivaju se nesporazumi između razvij ač softvera i korisnika. Lakše se identifikuju kompli kovane funkcije koje zahtevaju paţnju .
Menadzmentu se demonstrira izvodljivost korisnosti sistema.
3.Softversko inženjerstvo
IEEE definiše Softversko inţenjerstvo na sledeći način: “Primena jednog sistematskog, disciplinovanog i kvantifikovanog pristupa za razvoj, rad i odrţavanje softvera”. Softversko inţenjerstvo se bavi dizajnom, razvojem, upravljanjem i dokumentovanjem softvera. Softversko inţenjerst vo podrazumeva razvoj, upravljanje i odrţavanje softvera na sistematičan i kontrolisan način, sa jasno definisanom metodologijom.Softversko inţenjerstvo obezbeđuje primenu sistematičnog i disciplinovanog pristupa razvoju, upravljanju i odrţavanju softvera. Predstavlja inţenjersku disciplinu koja se bavi svim aspektima proizvodnje softvera i obuhvata znanje, alate i metode za definisanje softverskih zahteva, softverskog dizajna, konstrukciju
softvera, softverskog testiranja i softverskog odrţavanja. Softversko inţenjerstvo obuhvata oblasti:
Softverski zahtevi (Software Requirements) Softverski dizajn (Software Design)
Ţivotni ciklusi softvera (Software Life Circle)
Konstrukcija softvera (Software Construction) Testiranje softvera (Software Testing) Odrţavanje softvera (Software Maintenance) Upravljanje softverskim konfiguracijama (Software Configuration Management)
Upravljanje softverskim inţenjerstvom (Software Engineering Management) Procesi softverskog inţenjerstva (Software Engineering Processes) Alati i metode softverskog inţenjerstva (Software Engineering Tools and Methods) 4
Kvalitet softvera (Software Quality)
Postoji više tela koja se bave standardima u oblasti softverskog inţenjerstva. The Software Engineering Body of Knowledge (SWEBOK) nastao je kao rezultat rada Software Engineering Coordinating Committee. SWEBOK opisuje sveukupno znanje
unutar profesije softverskog inţenjerstva. Kao rezultat nastao je skup dokumenata Guide to the Software Engineering Body of Knowledge.
Softversko inţenjerstvo u medicini Softversko inţenjerstvo se primenjuje na različite oblasti. Tako i medicina spada u jednu od oblasti u kojoj se softversko inţenjerstvo primenjuje. Međutim, svaka oblast moţe da ima neke svoje specifičnosti koje namedu određene modifikacije u standar dnim procedurama softverskog inţenjeringa. Na primer, softver za doziranje leka intravenozno pacijentu, mora da ima daleko vedu sigurnost i temeljnije testiranje, nego što se to radi kod softvera koji nisu toliko kritični, na primer kod softvera za apoteku. Kada je reč o softverskom inţenjerstvu u medicini, moţemo da razdvojimo metodologije i načine projektovanja u zavisnosti od toga šta treba projektovati. Dakle, prema tipu projekta, moţe se izvršiti podela medicinskih softvera na: Softver za medicinske ur eđaje
Softver za Telemedicinu Informacioni sistem ustanove Informacioni sistem tipa enterprise.
Svaka od ovih oblasti zahteva drugačiji skup tehnologija, ali i metodologija izrade softvera. Primera radi uporedidemo softver za neki medicinski uređaj i info rmacioni sistem ustanove. Kada je reč o softveru za medicinski uređaj verovatno bi tehnologija bila C programski jezik, dok bi za informacioni sistem verovatno bila Java ili C#. Metodologija izrade softvera za uređaj bi zanemarila deo koji se odnosi na Use r Interface jer je to
definisano dizajnom uređaja, dok bi kod informacionog sistema to bio jedan od bitnijih elemenata projekta. Plan testiranja de biti specifičan za dati uređaj kod softvera za medicinski uređaj dok de kod informacionog sistema biti sasvim drugačiji. Pri kreiranju softvera za medicinske uređaje nije potrebno da se kreiraju procesi i procesni modeli, dok bi to bio osnov kreiranja informacionog sistema.Što je softver sloţeniji ili kritičniji to mora više paţnje da se obrati na projektovanje softvera, odnosno mora doslednije da se primenjuju principi softverskog inţenjerstva. U slučaju medicinskih aplikacija to je uvek slučaj (ili je aplikacija kritična ili je obimna, a vrlo često i jedno i drugo). Na primer, nacionalni elektronski karton pacijenta je veoma veliki projekat koji je distribuiran i ima
sve elemente jednog enterprise sistema, ali je u isto vreme i vrlo kritična aplikacija. Na primer, dovoljno je da neki podatak nije adekvatno unet (na primer alergije), pa da postane
opasno za nečiji ţivot. Alati za projektovanje
Kao što se u nekim drugim naukama koriste odgovarajuć i alati za projektovanje sistema, tako se i u softverskom inţenjerstvu koriste odgovarajuć i alati za projektovanje. Postoji više ovakvih alata različitih proizvođača.
5
Upper-CASE alati daju podr šku za po četne aktivnosti unutar softverskog procesa, kao što su specifikacija i oblikovanje. Lower-CASE alati podrţavaju samu realizaciju verifikacijui validaciju, i eventualno odrţavanje.
softvera, dakle programiranje,
3.1. .Modeli za softverski proces
Zajednička osobina svih modela za softverski proces je da se oni u većoj ili manjoj meri zasnivaju na otprilike istim osnovnim aktivnostima. Ta čnije, to su sledeće aktivnosti.
Utvrđivanje zaht eva (specifikacija). Analiziraju se zahtevi korisnika. Utvrđuje se št a softver treba raditi. Oblikovanje (design). Oblikuje se građa sistema, način rada komponenti, i interfejs između komponenti. Dakle projektuje se r ešenje koje određuje kako će softver raditi. Implementacija (programiranje). Oblikovano r ešenje realizira se uz pomoć raspoloţivih programskih jezika i alata. Verifikacija i validacija. Proverava se da li softver radi prema specifikaciji, odnosno da li radi ono što korisnik ţeli. Obično se svodi na testiranje, mada postoje i druge tehnike. Održavanje odnosno evolucija Nakon uvođenja u upotrebu, softver se dalje popravlja,m enja i nadograđuje, u skla du s promenjenim potrebama korisnika. Modeli se razlikuju po načinu odvijanja i međusobnog povezivanja osnovnih aktivnosti.Takođe, svaki od njih mo ţe staviti veći ili manji naglasak na pojedinu aktivnost..
3.1.1.Model vodopada
Model vodopada (waterfall model ) nastao je u ranim 70-tim godinama 20. veka, kao neposredna analogija s procesima iz drugih
inţenjerskih struka (na primer mostogradnja). Softverski proces je građen kao niz vremenski odvojenih aktivnosti, u skladu sa Slikom 1.1.
6
Model je dobio ime zbog oblika dijagrama. Vidimo da se aktivnosti odvijaju kao faze sekvencijalno jedna iza druge. Svaka faza daje neki rezultat koji „teče“ po vodopadu i predstavlja polazište za iduću fazu. Makar je na slici naznačena mogućnost povratka u raniju fazu (u slučaju naknadnog otkrivanja greške), ta mogućnost samo se iznimno koristi. Povratak je nepoţeljan jer remeti normalni tok procesa i izaziva kašnjenje. Prednosti modela vodopada su sl edeće. - Model omogućuje detaljno planiranje c elog softverskog procesa i podelu poslova na veliki broj saradnika. - Lagano se moţe utvrditi stanje u kojem se proces trenutno nalazi. - Zato je model je dobro prihvaćen od menadţera. Mane modela vodopada su sl deće: - Navedene faze u praksi je teško razdvojiti, pa dolazi do naknadnog otkrivanja grešaka i nepoţeljnog vraćanja u prethodne faze. - Zbog tendencije da se zbog po štovanja rokova u odre đenom trenutku „zamrzne“ pojedina faza, dešava se da sesistem nastavlja razvijati u nezadovoljavajućem obliku. - Proces je spor, pa se moţe dogoditi da u trenutku puštanja u rad sistem već bude neaţuran i zastareo.Zbog navedenih prednosti i navedenim manama, model se često koristi u praksi. Model je pogodan onda kad treba razviti veliki sistem s relativno jednostavnim i jasnim zahtevima uz pomoć velikog broja programera. 3.1.2.Modeli evolucijskog i inkrementalnog razvoja
Model evolucijskog razvoja (evolutionary development ) nastao je kao protiv teţa modelu vodopada. U tom modelu na osnovu pribliţnog opisa problema razvija se polazna verzija sistema koja se pokazuje korisniku. Temeljem korisnikovih primedbi, ta polazna verzija se poboljšava, opet pokazuje, i tako dalj e. Nakon dovoljnog broja iteracija dobija se konačna verzija sistema. Unutar svake iteracije, osnovne aktivnosti se obavljaju simultano i ne daju se razdvojiti. Postupak je ilustriran Slikom 1.2
Evolucijski razvoj čiji cilj je da se s korisnikom istraţe zahtevi i zaista proizvede konačni sistem zove se istraţivačko programiranje.Ukoliko je jedini cilj istraţivanje zahteva (nakon čega sledi oblikovanje i implementacija modelom vodopada), tada je re č o prototipovanju. Prednosti modela evolucijskog razvoja su slede će: Model je u stanju proizvesti brzi odgovor na zahteve korisnika. Razvoj je moguć i onda kad su zahtevi ispočetka nejasni.
7
Specifikacija se moţe postepeno razvijati u skladu sa sve boljim korisnikovim razumevanjem problema.Mane modela evolucijskog razvoja su sl edeće: Proces nije transparentan za menadţer e, naime oni ne mogu oceniti koliki deo posla je napravljen i kad će sistem biti gotov. Konačni sistem obično je loše strukturiran zbog stalnih promena, pa je nepogodan za kasnije odrţavanje. Zahtevaju se posebni alati i natpros ečni softverski inţenjeri Model inkrementalnog razvoja (incremental development ) sličan je modelu evolucijskog razvoja i moţe se shvatiti kao hibrid vodopada i evolucije. S istem se opet razvija u nizuiteracija. Ali za razliku od evolucijskog modela, pojedina iteracija ne doteruje već realizirani deo sistema, nego mu dodaje sasvim novi deo - inkrement. Razvoj jednog inkrementa unutar jedne iteracije odvija se po bilo kojem modelu - na primer kao vodopad. Model grafičko g razvoja ( Model Driven Engineering – MDE ) u osnovi je sličan modelu formalnog razvoja. Um esto formalne specifikacije razvija se grafički model (skup dijagrama)koji prikazuje građu i ponašanje s istema. Koristi se grafički jezik za modeliranje poput UML. Primetimo da se ovde r eč „model“ pojavljuje u dva značenja: model sistema nije isto što i model softverskog procesa. Pretpostavlja se da postoji alat koji dijagrame automatski pretvara u program. Model grafičkog razvoja ima svoje pobornike i trenutno je predmet intenzivnog istra ţivanja.Prednosti su mu sli čne kao kod formalnog razvoja, s time da bi trebao biti jednostavniji za upotrebu. Glavna mana mu je da za sada nije upotrebljiv osim u vrlo jednostavnim primerima. Današnji CASE alati u stanju su generi sati deo programskog koda iz UML dijagrama, ali daleko su od toga da bi mogli generisati ceo program.
Kod sloţenijih s istema UML dijagrami zapravo i ne mogu jednoznačno opisati sve detalje. To se u UML verziji 2.0 nastoji nadoknaditi uvođenjem posebnog j ezika zvanog Object Constraint Language – OCL; on sluţi za specificiranje ograničenja koja nisu vidljiva iz dijagrama. Očekuje se da će OCL i slični jezici pomoći da se ostvari automatsko generisanje programa iz modela sistema. Ali uvođenjem takvih jezika grafički pristup postaje još sličniji formalnom pristupu. 4. Modelovan je pomoću CASE alata
Modelovanje sistema obično se obavlja uz pomoć pogodnog upper-CASE alata za specifikaciju i oblikovanje. Takav alat sadrţ i editore za sve potrebne dijagrame. Svi modeli spremaju se u zajednič k o skladište. Unutar skladišta gradi se rečnik podataka - lista imena i pripadnih opisa za sve objekte, entitete, atribute, procese, tokove, operacije...koji su se pojavili u našim modelima. Preko rečnika podataka moguće je osigurati konzistenciju imena, dakle da isto ime svugde označ ava istu stvar, a različita imena različite stvari 8
4.1. CASE alati za testiranje
Način na koji se odvija testiranje softvera občino je specifič an za određenu softversku kuću ili aplikaciju.Zato razvijači softvera nastoje stvoriti svoju vlastitu kombinaciju CASE alata za testiranje, sluţeć i se kupljenim ili samostalno implementiranim komponentama. Uobič ajeni alati koji se koriste za testiranje su sledeći. • Test manager: uprav lja testiranjem tako da pokreće softver koji se testira za razne test podatke.
• Generator test podataka: generiše test -primere koji odgovaraju specifikaciji, i to izborom iz baze primera ili generisanjem slučajnih vr ednosti korektnog oblika • Prorok: daje prognozirane (očekivane) rezultate testa. Prorok moţe biti prethodna verzija softvera kojeg testiramo, ili prototip.
• Komparator datoteki: otkriva razlike između stvarnih i oč ekivanih rezultata testa. • Generator izveštaja: oblikuje izveš taj o rezultatima testiranja. • Dinamički analizator: broji koliko puta se pojedina naredba programa izvršila to kom testiranja.
• Simulator: simulira na primer na k ojem se testirani softver konač no treba izvršavati, ili simulira višestruke istovremene interakcije korisnika. Ovakve kombinacije alata otvorene su za nadogradnju i adaptaciju ti evoluiraju u skladu s potrebamom.
4.1.2 CASE alati
Programski alati za razvoj aplikacija - softverski inţenjering, je stroga primena inţenjeringa, naučnih i matematičkih principa i metoda u ekonomičnoj proizvodnji kvalitetnog softvera. Softverski inţenjering, kao posebna disciplina, koja se bavi ekonomsko tehnološkim aspektima izrade softvera, kao i svaka druga tehnologija, moţe se posmatrati sa dva aspekta: • Konvencionalna (ručno programiranje, definisanje i dokumentovanje
problema i odrţavanje sistema) • Nekonvencionalna (CASE) Tehnike i koraci su slični a suštinske razlike ogledaju se u načinu kontrole, izrade i odrţavanja proizvoda (softvera). Kada govor imo o CASE tehnologijama ( ili programskim alatima za razvoj aplikacija, kako stoji u naslovu ), onda moramo naglasiti da prema zahtevima i potrebama, samo program iranje se vrši softverski. Sav postupak ćemo razloţiti
u grupe radi lakšeg praćenja i pojašnjenja. Ideja CASE tehnologija:
Povećanje produktivnosti u razvoju softvera pomoću softvera • Inţenjersko projektovanje softvera pomoću računara • Softverski proizvod namenjen automatizaciji izrade softvera Ciljevi primene CASE tehnologije
• Povećanje produktivnosti projektanata • Skraćenje vremena iz rade softvera • Povećanje kvaliteta softvera • Unapređenje performansi sistema CASE tehnologija 9
• CASE alati: hardver i softver • CASE metodologija: procedure • CASE enciklopedija: baza podataka • Kadrovi: oni koji sve to koriste Neki od poznatijih CASE proizvoda • Cor -Vision, Cortex Corporation
• Promod PLUS, Promod INC • Oracle CASE, Oracle Corporation Westmount I-CASE, Westmount Technology
• Excelerator, Intersolv INC • CASE for Informix, Informix Softvare INC • AD/Cycle, IBM • BPWin • ERWIN • Rational rose • MS Wisio • Matlab CASE • Oracle designer Klasifikacija CASE tehnologije
1. U odnosu na: pokrivenost faza ţivotnog ciklusa funkcija koje poseduju 2. Klasifikacija u odnosu na funkcije Klasifikacija u odnosu na pokrivenost 1. Upper CASE – planiranje i upravljanje projektima 2. Middle CASE – analiza i projektovanje 3. Lower CASE – programiranje, testiranje i uvođenje 4. CASE tool – namenjeni pojedinim aktivnostima 5. CASE toolkit – namenjeni pojedinim fazama ili aktivnostim a u više faza 6. CASE workbench – integrisana kolekcija CASE paketa kojom se pokrivaju sve faze Klasifikacija u odnosu na funkcije 1. Alati za planiranje poslovnih sistema – prate informacione tokove između OJ 2. Alati za upravljanje projektima – prate glavne upravljačke aktivnosti, npr.
planiranje, procena vrednosti, resurse, rizik, troškove, kvalitet, standarde, merenja...
3. Alati podrške – dokumentovanje, podrška sistemskom softveru, obezbjeđenje kvaliteta, upravljanje bazama podataka... 4. Alati za analizu i dizajn – najvaţniji alati, omogućavaju kreiranje sistema 5. Alati za programiranje – podrţavaju kreiranje programskog koda 6. Alati integracije i testiranja – prikupljanje testnih podataka, analiza izvornog koda i pomoć u aktivnostima t estiranja 7. Alati prototipskog razvoja – sluţe za izradu prototipa
8. Alati za podršku odrţavanju – koriste se za reverzibilni inţenjering, rekonstrukciju koda i reinţenjering 10
Od samog pocetka osnovni cilj firme bio je da se projektovanju i realizaciji
poslovnih informacionih sistema priđe primenom najsavremenijih metodologija uz korišćenje CASE (Computer Aided Software Engineering) alata, u čijoj je osnovi naravno “rečnik podataka”.
Kao što i sam naziv preduzeća kazuje “metadata” tj. “podaci o podacima” u doslovnom prevodu, odnosno “rečnik podataka”, “skladište podataka” u stručnom smislu, ukazuje na to opredeljenje. U početku izbor tih alata je bio skroman, jer su i resursi potrebni za njihov rad bili skromni. Kako se “snaga i brzina" računara povećavala tako su CASE alati dobijali na svom značaju. 4.1.3. Mogućnosti CASE alata za modeliranje poslovnih podataka
Modeliranje poslovnih podataka i generisanje baze podataka nekog poslovnog sistema, koja će sadrţavati sve poslovne podatke vaţne za funkc ionisanje poslovnog sistema mora biti integralan i celovit postupak. Na temelju podataka donose se odluke u
poslovanju i zbog toga je vaţno da svi potrebni podaci budu obuhvaćeni u bazi podataka.. Modeliranje poslovnih podataka i generisanje baze podataka nekog poslovnog sistema, koja će sadrţavati sve poslovne podatke vaţne za funkcioni sanje poslovnog sistema mora biti integralan i celovit postupak. Na temelju podataka donose se odluke u poslovanju i zbog toga je vaţno da svi potrebni podaci budu obuhvaće ni u bazi podataka, a odnosi koji postoje u realnom svetu moraju na isti način biti zabeleţeni i u logici povezivanja njenih objekata. Izrada logičkog relacionog modela podataka i automatsko generisanje relacione
baze podataka sprovode se pomoću savremenih CASE alata. Ti alati omogućavaju izdvajanje detaljnog logičkog relacionog modela podataka kao nezavisnog «proizvoda», što poslovnom sistemu otvara mogućnost kontrole razvoja i implementacije poslovnih aplikacija. U tekstu je dat kratak pregled nekoliko CA SE alata sa aspekta mogućnosti izrade logičkog i fizičkog modela podataka, i automatskog generisanja fizičke baze podataka iz razvijenog modela.
11
4.1.4
Tehnologije koje pomažu razvoj informacionih sistema
Dve relativno nove tehnologije obećavaju da poboljšaju produktivnost razvoja informacionih sistema i poboljšaju njihov kvalitet. To su: Alati za dizajn softvera ponoću računara - CASE (Computer-Aided Software Engineering).CASE alati automatizuju mnoge faze razvoja softvera Objektno-orijentisani dizajn (OOD – Object-Oriented Design). Njegova glavna karakteristika je da omogućavaju
ponovno korištenje već napisanog softvera (software reuse). Sluţeći se ovim postupkom inţenjer softvera piše softver u vidu komponenti koje se arhiviraju u softverske bibliot eke i koje se kasnije po potrebi mogu ponovo koristiti. CASE alati pomaţu inţenjerima softvera i programerima da planiraju, analiziraju, dizajniraju, programiraju i odrţavaju informacione sisteme. Glavna prednost ovih alata je što oni nude sveobuhvatnu pomoć ljudima koji se bave
razvojem softvera. Najbolji CASE alati pomaţu korisnicima prilikom izrade kompletnog seta specifikacija zahteva, sa svim dijagramima toka podataka i definicijama svih entiteta koji
se smeštaju u rečnik podataka. Neki od njih idu i dalje i pruţaju mogućnost kreiranja strukturnih mapa sistema. CASE alati su bazirani na: poznatim metodologijama za razvoj
softvera (strukturna metoda), programskim jezicima četvrte generacije tzv. neproceduralnom programiranju i grafičkom korisničkom int erfejsu (GUI). Vaţno je napomenuti da CASE alate ne čine samo alati koji pomaţu u prvim fazama razvoja sistema kao što su analiza i projektovanje (sl. 15.5). U CASE alate ubrajaju se i generatori koda čiji je zadatak da popune i završe program koji je da t samo okvirno. Ovi alati su naročito pogodni za brzi razvoj sistema metodom izrade prototipa. Pomoću njih se prvo brzo izradi korisnički interfeis i specificiraju se izgledi ekrana kao i format izveštaja koji su predvidjeni za štampanje i sve to u koopera ciji sa korisnicima sistema. Zatim generator koda, koji je deo CASE alata, automatski iz radi potreban programski kod.
12
Glavni deo CASE lata predstavlja tzv. informatička arhiva. To je centralna baza podataka u kojoj se skladište rečnici podataka. Dakle, ona sadrţi sve informacije o sistemu koji se razvija kao što su npr. početni planovi, entiteti koji se pojavljuju u dijagramima protoka podataka, programe, pa čak i podatke o menadţmentu tog razvojnog projekta. CASE alati olakšavaju snalaţenje u masi podataka tako što prate relacije izmeđ u pojedinih dokumenata. Na primer, oni su u stanju da odmah poveţu programski kod sa onim delovima analize i projektovanja koji se odnosi baš na taj programski kod. Isto tako CASE alati automatski proveravaju kompletnost i konzistentnost svih proizvoda razvoja sistema.
To omogućava da se sistem modifikuje u bilo kojoj fazi razvoja bez bojazni da će modifikacija uneti nekonzistentnost. Ovi alati značajno poboljšavaju odrţavanje sistema. Pre svega, oni pomaţu pri dokumentovanj u softvera i celokupnog procesa razvoja. Svaka naknadna promena u zahtevima korisnika moţe se propagirati sa nivoa specifikacija zahteva, preko DFD dijagrama do odgovarajučih programskih modula. Neki sloţeniji CASE alati podrţavaju tzv. inverzno inţenejerstvo. Početni dokumenat kod inverznog inţenejerstva je program pomoću koga se moţe eventualno doći do specifikacija sistema. Ovaj postupak je naročito koristan onda kada se poseduje programski kod ali se ne zna na šta se on odnosi. Zadatak inverznog inţenjerstva je da otkrije specifikaciju početnih zahteva. CASE tehnologija je znatno doprinela ubrzanju proizvodnje softvera. Ipak to je
sloţena tehnologija čija upotreba zahteva obrazovane korisnike. Ta sloţenost CASE alata doprinela je da oni još nisu toliko prihvaćeni u kompanijama koliko bi trebali sudeći samo po njihovim performansama.
13
PODELA CASE ALATA PO FAZAMA ŽIVOTNOG CIKLUSA
IDEALNA ARHITEKTURA CASE SISTEMA
Osnovni Ciljevi primeneCASE alata
Osnovni ciljevi primene CASE alata proizvoda su:
• obezbeđenje zadovoljavajućeg kvaliteta projekta i projektne dokumentacije, • O bezbeđenje zadovoljavajućeg kvaliteta samog programskog proizvoda, • Povećanje Produktivnosti Projektanta programera 14
• •
skraćenje vremena projektovanja i realizacije programskog proizvoda i obezbeđenje jednostavnog i jeftinog odr ţavanja programskog proizvoda.
Ovaj poslednji od navedenih ciljeva je da ka ţemo i najbitniji, jer posle implementacije sistema, dolazi se do zaključka da je odr ţavanje jedna od najskupljih komponenti, za razliku od ko štanja samog hardvera. Primena metodologije ţibotnog ciklusa i strukturiranog pristupa predstavlja u stvari upotrebu vi še ili manje formalnih tehnika crtanja različitih dijagrama i matrica u zavisnosti na različitim nivoima detalja, naravno to zna či ukoliko do đe do izmena na jednom nivou detalja često povlači za sobom i izmene i na drugim novima detalja. Prakti čno znači izmena na jednom dijagramu mo ţe značiti i potrebu sprovo đenja izmena na više drugih dijagrama. Ukoliko se ipak radi o sloţenom projektu (projektu ve ćeg obima), ručnim projektovanjem i sprovo đenjem ovakvih izmena, odr ţavanje projektne dokumentacije kao i kontrolu slo ţenosti projekta oteţava se posao i posao postaje naporan, i što je i najbitnije da se kaţe je da je ovaj posao i sa određenom neizvesnošću ishodovan. Greške koje su napravljene u nekim predhodnim fazama projekta, uo čavaju se tek u kasnijim fazama, kada ih je ve ć teţe i otkloniti. Ako se ponovo vra ćamo na ranije faze projekta s ciljem da oktlonimo greške, tada dolazimo u situaciju da opet napravimo još dodatnih novih gre šaka. Strukturirani pristup zahteva od projektanta i programera da poseduju visok nivo ekspertskog znanja iz oblasti softverskog in ţenjerstva, kao i zadovoljavajući nivo znanja iz oblasti za koju se pravi programski proizvod , š to u praksi i nije uvek obezbeđeno. Iz ovih razloga, od CASE alata se o čekuje da obezbedi što viši stepen automatizacije, prilikom realizacije zadataka kao što su:
• vođenje dokumentacije, • Izrada dijagrama, • Projektovanje programskih specifikacija, • Izrada (generisanje) programskog koda, • S provođenje izmena, • integracija parcijalnih rezultata projektovanja u jedinstvenu celinu, • kontrola konzinstentnosti, kompletsnosti i kvaliteta projekta.Pri realizaciji ova kvih zahteva,
CASE
proizvodi
su
organizovani
tako
da
rade
nad
jedinstvenom
bazom podataka, koja se naziva rečnik podataka CASE proizvoda.
5. Funkcije CASE alata 1. Modeliranje 2. Generisanje koda 3. Sinhronizacija modela 4. Reverzni inţenjering Modeliranje je proces izgradnje modela sistema
modeliranje sistema je jedan od osnovnih inţenjerskih principa
sistem se sastoji od entiteta koji su objekt posmatranja nijedan model ne obuhvata sve aspekte realnog sistema
Vrste modela
Verbalni 15
Analitički ili matematički Slikovni ili šematski
Simulacioni
Alati za modeliranje podataka su - Oracle Designer - ERWin - DBDesigner - MySQL Workbench Generisanje koda Informacioni sistem (softver) predstavlja izvršni k od. Funkcija CASE alata za generisanje koda omogućava pretvaranje specifikacija u izvršni kod . – generisanje koda moţe biti ograničeno na generisanje skeleta sistema (samo zaglavlja procedura i deklaracije objekata) ili aplikacija/delova aplikacija – generisanje funkcionalnih sistema ili njihovih delova je moguće za neke klase softvera na osnovu semi-formalnih specifikacija • na osnovu modela/baza podataka
• na osnovu grafičkih UML modela Generisanje koda eliminiše – napor programera da pronalazi načine za izbegavanje ponavljanja istog ili veoma sličnog koda (procedure/funkcije/objekti...)
– kreiranje sloţenih programskih interfejsa, kojim se nepotrebno nameću standardi širem okruţenju Prednosti:
– povećanje produktivnosti – smanjenje broja grešaka – povećanje kvaliteta napisanog koda Primer : Visio 2003 - generisanje kôda Visio for Enterprise Architects 2003 ima UML dodatak (addon) koji omogućava generisanje skeleta kôda, normalni i reverzni inţenjering na osnovu UML dijagrama - nije predviđen round-trip engineering (automatsko aţuriranje koda u hodu, npr. kao IBM Rational Rose/RSA) Automatsko generisanje koda na osnovu UML dijagrama
– automatski se generiše kostur kôda na osnovu 4 UML dijagrama statičke strukture (Class, Statechart, Component, Deployment). Procedura generisanja – UML/Code/Generate • Primer: UML definicija klasa Kupac i Korpa
• Generisani skelet koda (VS):
16
Sinhronizacija modela i koda ili baze podataka mogu ća je kod većine sistema koji podr ţavaju direktni i reverzni inţenjering. - Sistemi koji podrţavaju projektovanje u hodu (roundtrip engineering) vr še automatsku sinhronizaciju modela i kôda
Većina CASE alata moţe da generiše model sistema na osnovu postojećeg softvera i/ili baze podataka Primeri: – Baze podataka i ER modeli • ERwin • DBDesigner – Programski kod i UML modeli • IBM Rational Rose • IBM Software Architect • Microsoft Visio for VS 2003 EE • Net Beans Microsoft Visual Studio 2010 Ultimate Integrisani alat, koji podrţava sve faze razvoja sloţenih sistema - podrţava timski rad - podrţava 6 UML dijagrama (T4 generator) - podrţava više tehnologija i arhitektura (C#, Java, Web servisi , SOA)
17
Literatura: 1.Naiburg, J.E., Maksimchuk, A.R. (2002): UML za projektovanje baza podataka, CET Computer Equipment and Trade, Beograd 2. Miškovic V., Projektovanje informacionih sistema (predav anja), Univerzitet Sinergija, 2012 3. Rossberg J., Olausson M., Pro Application Lifecyicle Management with Visual Studio 2012, 2ndEd, Apress, 2012 4. ESRI, (2010): Introduction to CASE Tools. http://resources.arcgis.com/content/building-geodatabases-case-tools
18