Tema 11:Objektno orijentisane metodologije razvoja softvera

Similar documents
AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Rešavanje problema pomoću računara

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

STRUČNA PRAKSA B-PRO TEMA 13

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Podešavanje za eduroam ios

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

SOFTVERSKO INŽENJERSTVO INTELIGENTNIH SISTEMA

Razvoj informacionih sistema. Prof. dr Pere Tumbas Prof. dr Predrag Matković

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

11 Analiza i dizajn informacionih sistema

Port Community System

Ekstremno programiranje kao metod agilnog razvoja softvera

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

Razvoj softvera primenom agilnih metodologija

Bušilice nove generacije. ImpactDrill

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Projektiranje informacijskih sustava

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

WWF. Jahorina

Implementacija metodologije ekstremnog programiranja u nastavni proces visokoobrazovnih institucija

PROJEKTNI PRORAČUN 1

3D GRAFIKA I ANIMACIJA

Projektovanje softvera. Uvod

IZRADA TEHNIČKE DOKUMENTACIJE

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Upravljanje softverskim projektima

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ

TESTIRANJE SOFTVERA SANJA MIJALKOVIĆ 1061/2013

PRILAGODBA METODE EKSTREMNOG PROGRAMIRANJA ZA PROJEKT RAZVOJA JAVNE ELEKTRONIČKE USLUGE

Projektovanje softvera. Dijagrami slučajeva korišćenja

Uvod u relacione baze podataka

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

Direktan link ka kursu:

Mogudnosti za prilagođavanje

ODLUČIVANJU (DSS) 2016/2017. dr Vladislav Miškovic Fakultet za računarstvo i informatiku

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

BENCHMARKING HOSTELA

AGILNI RAZVOJ PROGRAMSKIH PROIZVODA AGILE SOFTWARE DEVELOPMENT

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

IZDAVAČ: Slobomir P Univerzitet, Slobomir, Bijeljina ISBN Priredili: prof. dr Mile Vasić prof.

Agilne metodologije u razvoju softvera

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

Materijali za pripremu usmenog ispita Predmet: Procesi razvoja softvera

Katedra za menadžment i IT. Razvoj poslovnih informacionih sistema

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

Upravljanje kvalitetom usluga. doc.dr.sc. Ines Dužević

Osnovni koncepti Data Warehouse sistema

mdita Editor - Korisničko uputstvo -

Otpremanje video snimka na YouTube

DEFINISANJE TURISTIČKE TRAŽNJE

Windows Easy Transfer

SAS On Demand. Video: Upute za registraciju:

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Kontroling kao pokretač promjena u Orbico d.o.o. Sarajevo. Orbico Group

UPRAVLJANJE PROJEKTIMA PO PRISTUPU PROJEKT MENADŽMENTA

Materijal za prijemni ispit na Doktorske studije iz informatike

Albert Farkaš SUVREMENI TRENDOVI RAZVOJA INFORMACIJSKIH SUSTAVA

The project management procedure for regional network of Quality Management Centers

GIGABIT PASSIVE OPTICAL NETWORK

Informacioni sistemi i baze podataka u poslovanju

1. Instalacija programske podrške

UPRAVLJANJE RAZVOJNIM PROJEKTIMA

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

PERSONAL INFORMATION. Name: Fields of interest: Teaching courses:

UNIVERZITET SINGIDUNUM. Tema: ERP Enterprise Resource Planning Istorijat razvoja, polje primene i novi oblici poslovanja primenom cloud rešenja

Univerzitet u Beogradu Fakultet organizacionih nauka Miloš Milić

Advertising on the Web

- UVOD U INFORMACIONE SISTEME -

MENADŽMENT I INFORMACIONE TEHNOLOGIJE Katedra za menadžment i IT. Menadžment i informacione tehnologije

Dr.Miroljub Banković, prof. Kragujevac, 2008.

Sistemi kontrole verzija

Slika 1.4. Završiti sa dizajnom pre uvođenja

Računovodstveni informacijski sustavi - RIS. Razvoj RIS-a. Prof.dr.sc. Dražena Gašpar

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

FAKULTET ZA POSLOVNU INFORMATIKU

Automatske Maske za zavarivanje. Stella, black carbon. chain and skull. clown. blue carbon

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

4. Funkcionalni zahtevi i QFD analiza

MODEL ZA IZBOR ADEKVATNOG SKUPA INDIKATORA PERFORMANSI U UPRAVLJANJU PROIZVODNJOM

Istorijat kompanije JUČE DANAS SUTRA

Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» JOSIP ŠUGIĆ CMM METODA ZA OSIGURANJE KVALITETE SOFTVERA

Razvoj softverskog rešenja za podršku upravljanju proizvodnim nalozima u industrijskoj proizvodnji

Nejednakosti s faktorijelima

za STB GO4TV in alliance with GSS media

TEHNIKA I INFORMATIKA U OBRAZOVANJU

Mašinsko učenje Uvod. Bojan Furlan УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ

Kursevi i otvoreni treninzi

Objektno orijentisano projektovanje. Dr Borislav Jošanov, profesor Visoka poslovna škola strukovnih studija Novi Sad

DANI BRANIMIRA GUŠICA - novi prilozi poznavanju prirodoslovlja otoka Mljeta. Hotel ODISEJ, POMENA, otok Mljet, listopad 2010.

PRISTUP RIZICIMA U SISTEMU MENADŽMENTA KVALITETA ZASNOVAN NA FMEA METODI RISK ASSESSMENT IN QUALITY MANAGEMENT SYSTEM BASED ON THE FMEA METHOD

ORGANIZACIJA I SISTEM

PRIMENA RFID TEHNOLOGIJE ZA PRAĆENJE I ARHIVIRANJE DOKUMENATA

Transcription:

Tema 11:Objektno orijentisane metodologije razvoja softvera dr Vladislav Miškovic Fakultet za računarstvo i informatiku PROJEKTOVANJE INFORMACIONIH SISTEMA 2017/2018

Sadržaj predavanja 1. Uvod 2. Objektno orijentisane metodologije razvoja softvera 3. Metodologija RUP 4. Ostale objektno orijentisane metodologije 5. Upravljanje promenama 2

1. Uvod Metodologija razvoja softvera Pojam objektno orijentisane metodologije razvoja softvera 3

Metodologija razvojasoftvera Metodologija razvoja(system development methodology) je standardizovani proces razvoja,koji definišeskup aktivnosti, metoda, iskustava, preporuka i automatizovanih alatakoji se koristeza razvoj ineprekidno usavršavanjeinformacionog sistema klasične metodologije: SSAD novije metodologije: spiralna, iterativna, inkrementalna, kombinovane metodologije objektno orijentisame: RUP, XP Drugi naziv za metodologiju razvoja je proces razvoja sistema 4

Pojam objektno orijentisane metodologije razvoja softvera Objektno orijentisana metodologija razvoja(object oriented system development methodology) uzima objekte kao osnovu 1. Posmatra se i analizira budući sistem i definišu zahtevi, kao u drugim načinima razvoja sistema 2. Identifikuju se objekti u sistemu i njihove međusobne relacije 3. Vrši se kodiranje sistema Objektno modeliranje je donekle slično tradicionalnim pristupu projektovanju sistema, jer prati sekvencijalni proces projektovanja, ali srazličitim pristupom Osnovni koraci projektovanja sistema korišćenjem objektnog modeliranja su: (1) Analiza sistema (2) Dizajn sistema (3) Dizajn objekata (4) Implementacija 5

2. Objektno orijentisane metodologije razvoja softvera 1. Objektno orijentisani razvoj softvera 2. Objedinjeni proces razvoja softvera(up) 6

2.1 Objektno orijentisani razvoj softvera Objektno orijentisani razvoj koristi apstrakcijukao metod smanjenja kompleksnosti procesa razvoja Proceduralnaapstrakcija organizuje softver prema funkcijama, a apstrakcija podataka prema strukturi podataka Objektno orijentisani pristup posmatra sistem kao skup objekata (procedura i podataka) na različitim nivoima apstrakcije koji sarađuju radi izvršenja određenog zadatka glavni program izvršavanjetransakcija podaci Račun kreditni() debitni() kreditne debitne obračunkamata if štedni then... obračuntroškova if štedni then... TekućiRačun obračunkamata() obračuntroškova() Štedni račun obračunkamata() obračuntroškova() (a) Proceduralna organizacija sistema (b) Objektna organizacija sistema 7

2.2 Objedinjeni proces razvoja softvera (Unified Process, UP) Proces razvoja softvera je pristup izgradnji, isporuci i održavanju softvera predstavlja parcijalno uređeni niz koraka usmerenih ka cilju cilj je efikasna i predvidiva isporuka softverskog sistema, koji zadovoljava zahteve poslovanja Objedinjeni proces (Unified Process, UP) je proces razvoja objektno orijentisanih sistema cilj objedinjenog procesa je omogućavanje izrade visokokvalitetnog softvera, koji zadovoljava korisničke zahteve za predvidivovreme i budžet za kompleksne sisteme, objedinjeni proces predviđa iterativni razvoj, koji se sastoji od niza ciklusa, od kojih svaki rezultuje izvršnom verzijom sistema 8

Faze objedinjenog procesa Inception Elaboration Construction Transition vreme Objedinjeni proces organizuje rad i iteracije u četiri osnovne vremenske faze: 1. Inception- početna faza, definisanje obima projekta 2. Elaboration-faza razrade, planiranje, izrada specifikacijai osnovna arhitektura 3. Construction- faza izgradnje sistema 4. Transition- faza prenosa sistema krajnjim korisnicima 9

Iteracije i preseci (milestones) Inception Elaboration Construction Transition Preliminarna iteracija Iteracija 1 Iteracija 2 Iteracija i Iteracija N kontrolna tačka/presek verzija konačna verzija Sve iteracije podrazumevaju vremenski promenljiv rad na većini disciplina, nose određeni rizik i vremenski završavaju u nekoj kontrolnoj tački Pregled projekta u kontrolnoj ili presečnoj tački ocenjuje stepen zadovoljenja korisničkih zahteva i potrebu za eventualnim prestrukturiranjem projekta Svaka iteracija proizvodi novu verziju, stabilni izvršni podskup konačnog sistema (kôd) 10

Discipline objedinjenog procesa (UP) rezultat početne faze: Projektni zahtev rezultat aze razrade:projekt predmet Projektovanje informacionih sistema 11

1. Početna faza (Inception): šta treba razviti Odgovara na veći broj pitanja/dilema: vizija poslovnog rešenja ocena izvedivosti projekta odluka o samostalnom razvoju ili kupovini gruba procena troškova odluka o nastavku projekta razvoja Početna faza obuhvata rad na ustanovljavanju početnih opštih ciljevi projekta, određivanju izvedivosti i odlučivanje o daljem radu na razradi projekta Rezultati ove faze izlažu se u dokumentu Projektni zahtev 12

Dijagrami slučajeva korišćenja(use-case) Pomažu u rešavanju osnovnog problema u procesu projektovanja sistema: izvlačenju tačnih i neophodnih projektnih zahtevaod učesnika u razvoju i njihovo predstavljanje na način razumljiv onima koji ih verifikuju i odobravaju podaci i modeli procesa, prototipovi, specifikacije zahtevasu razumljivi projektantima, ali ne i korisnicima dolazi do nerazumevanja, usporavnja razvoja i prekoračenja troškova Podsetnik: precizno definisanje onog što je potrebno uraditi je najteži pojedinačni deo procesa razvoja softvera uključujuči sve interfejse ka ljudima, uređajima i drugim sistemima 13

2. Faza razrade (Elaboration): kako razviti sistem Detaljna razrada korisničkih zahteva (njihov najveći deo, oko 80%) Određivanje izvršne i stabilne arhitekture definisanje, implementacija i testiranje interfejsa glavnih komponenti identifikacija zavisnosti spoljnih komponenti i sistema delimična implementacija ključnih komponenti delimična implementacija koda (oko 10%) Arhitektura sa ključnim slučajevima korišćenja manji deo slučajeva korišćenja nosi 80% arhitekture projektovanje, implementacija i testiranje važnih slučajeva korišćenja Verifikacija arhitekture testovi opterećenja(stress) za proveru ponašanje sistema kada je na granici resursa ili ih mora konkurentno obezbediti testovi punjenja(load), performanse i skalabilnost Stalna procena poslovnih slučajeva korišćenja, rizika i plana razvoja 14

3. Faza izgradnje (Construction): izrada sistema Završetak modela zahteva i projekta Projektovanje, implementacija i testiranje komponenti prototip sistema za prikaz korisniku inkrementalno uključivanje izvršne arhitekture radi završetka sistema Razvija se dnevno ili nedeljno (automatizovano) Testiranje svake verzije Automatsko regresivno testiranje (potvrdase da suostali delovi sistema ostali stabilni posle završetka iteracije) Test punjenja i stresa kako bi se osigurao integritet arhitekture Isporuka funkcionalnog softvera(beta verzija) dokumentaciju uvođenja rešenja u sistem, korisnička dokumentacija i materijali za obuku Izrada opisa verzije 15

4. Faza prenosa (Transition): isporuka sistema Potvrda da realizovani sistem zadovoljava tražene funkcionalnosti i performanse Uvođenje inkrementalne programski korektne verzije Ažuriranje korisničkih priručnika i dokumentacije uvođenja Ažuriranje verzije Vođenje analize projekta u toku perioda zatišja 16

3. MetodologijaRUP Specijalizacija UP procesa razvoja Sopstveni razvojni alati 17

Specijalizacija UP procesa razvoja RUP je specifična implementacija objedinjenog procesa razvoja (UP) kompanije Rational(od 2003. godine deo IBM) Osnovni elementi 1. Iterativno-inkrementalni razvoj softvera upravljan rizikom 2. Upravljanje zahtevima pomoću slučajeva korišćenja i scenarija 3. Centralna uloga arhitekture softvera (component-based architecture) 4. Vizuaelni razvoj softvere (UML) 5. Kontinualno upravljanje kvalitetom i 6. Upravljanje promenama Još neke implementacije UP OpenUP- pojednostavljena verzija (Eclipse Process Framework, EPF) Agile UP/DAD - razvoj poslovnih aplikacija agilnim tehnikama 18

Sopstveni razvojni alati RUP ima sopstvene licencirane razvojne alate IBM Rational Method Composer(2007) -predstavlja CMS i ima proširenja RUP (capability patterns, npr. RUP za SOA, systems, COTS) postoji i open source verzija (Eclipse) 19

4. Ostale objektno orijentisane metodologije 1. Agilne metodologije 2. Ekstremno programiranje (XP) 3. Metodologija SCRUM 4. Microsoft Solutions Framework (MSF) 20

4.1 Agilne metodologije Problemi u razvoju softvera korišćenjem strogih metodologija, krajem 20. veka (npr. metodoogijavodopada) prouzrokuju pojavu manje strogih metodologija (lightweight, agile) Osnovna ideja je da manje projekte (i timove) treba manje opterećivati birokratijom, već treba naći razuman kompromis Principi agilnog pristupa: isporuka onoga što korisnik traži što češća isporuka rezultata(iterativni i inkrementalni pristup) najjednostavnije moguće rešenje prilagođavanje dobroj praksi(iskustvo) vrednovanje individualnih mogućnosti članova tima međusobna saradnja celog razvojnog tima 21

4.2 Ekstremno programiranje (XP) Agilna metodologija, podrazumeva i prihvata stalne promene sistema kao činjenicu Realizuje se kroz male ili srednje razvojne timove,koji rade u tesnoj saradnji s korisnikom Ne koristi se precizno planiranje, već se teži brzim, opipljivim rezultatima, koji se odmah predočavaju korisniku Metodologiju čine karakteristični elementi planiranje analiza testiranje kodiranje programiranje u parovima 22

Elementi metodologije ekstremnog programiranja 1. Planiranje korisnik piše scenario razvojni tim procenjuje trajanje i troškove korisnik donosi odluku o sledećem koraku jedna razvojna iteracija- nekoliko scenarija, razvoj od nekoliko nedelja 2. Analiza sistem se posmatra kao skup korisničkih scenarija jedan scenario- jedan slučaj korišćenja (kao UML Use Case, ali neformalno) 23

Elementi metodologije ekstremnog programiranja 3. Testiranje testovi se pišu pre programiranja sistema svaki scenario je jedan skup testova svi testovi se moraju izvršavati sve vreme 4. Kodiranje poštuju se standardi kodiranja dobar stil i dokumentacija koda kodiraju se najjednostavnije celine koje mogu da funkcionišu 5. Programiranje u parovima sav kod se piše u parovima neprekidna međusobna komunikacija, programiranje i analiza koda zamena uloga, više puta u toku dana 24

4.3 Metodologija Scrum Metodologija je dobila naziv po ragbi formaciji od osam igrača, koji kao grupa (jedinstvena celina) pomeraju loptu po terenu ka zajedničkom cilju Iterativnametodologija, podrazumeva da zahtevi nisu odmah jasni i poznati, već se iskustveno otkrivaju u toku razvoja Agilnametodologija, bliska XP, podrazumeva dnevne sastanke na kojima programeri iznose probleme koji utiču na napredovanje, koje razrešava tzv. Scrum Master Povratna veza prema svim učesnicima preko dnevnika mesečnih zadataka Backlog Nije pogodna za velike projekte 25

Principi metodologije Scrum Obuhvata upravljanje zahtevima, formiranje iteracija (planiranje sprinta), kontrole implementacije i isporuke klijentu empirijski metod i tehnike menadžment drugih projekta Dnevni sastanci, 30-dnevne iteracije 1.Šta je urađeno juče? 2.Šta će se raditi danas? 3. Kakve se prepreke danas očekuju? 26

4.4 Microsoft Solutions Framework (MSF) Principi, modeli, discipline, koncepti i preporukeza isporuku IT rešenja kompanije Microsoft Samo opšti principi visokog nivoa, okvir (framework) dopušta izbor metodologije (klasične ili agilne) koncentriše se na rezultate Modeli Model organizovanja (team) - ulogečlanova tima: menadžment, arhitektura, razvoj, testiranje, isporuka, podrška Model upravljanja (governance) - fazeprocesa razvoja: vizija, planiranje, razvoj, verifikacija i isporuka 27

5. Upravljanje promenama 1. Upravljanje promenama 2. Pojam upravljanja konfiguracijom (SCM) 3. Aktivnosti upravljanja konfiguracijom 4. Planiranje upravljanja konfiguracijom 5. Primeri sistema 28

5.1 Upravljanje promenama Upravljenje promenama softverskog sistema ili upravljanje konfiguracijom(software Configuration Managemet, SCM) Upravljenje promenama se bavi praćenjem u upravljanjem promenama u softveru i drugim rezultatima razvoja i omogućava pregled promena u toku projekta omogućava zapis vrste promene, izvršioca i elemente konfiguracije sistema koji se menjaju, kao i upravljanje integritetom sistema u toku promena

5.2 Pojam upravljanja konfiguracijom (SCM) Upravljanje konfiguracijom Ciljevi upravljanja konfiguracijom

Upravljanje konfiguracijom (SCM) Upravljanje konfiguracijom je proces identifikovanja, praćenja i pamćenja svih artefakata projekta razvoja softverkog sistema u upravljanju konfiguracijom, svaki aratifakt je element konfiguracije (Configuration Item, CI)

Ciljevi upravljanja konfiguracijom Ciljevi upravljanja konfiguracijom su osnovna bezbednost sistema zaštita sistema od međusobnog prepisivanja mogućnost povratka na prethodnu verziju zaštita sistema od uništenja

5.3 Aktivnosti upravljanja konfiguracijom 1. Identifikovanje konfiguracija 2. Osnovno upravljanje (Baseline control) 3. Upravljenje promenama (Change control) 4. Upravljanje verzijama (Version control)

5.3.1 Identifikovanje konfiguracija Izbor i označavanje objekata (artefakata sistema) koji će se pratiti brojni atributi, npr. naziv, datum, autor, istorijat promenai status

5.3.2 Osnovno upravljanje (Baseline Control) Osnovno upravljanje obuhvata praćenje potvrđenih promena elemenata konfiguracije Nove promene se ne mogu izvršiti bez formalne procedure upravljanja promenama Osnovno upravljanje obezbeđuje ponovljivost praćenje promena izveštavanje

5.3.3Upravljenje promenama (Change Control) Upravljanje promenama je proces analize troškova i koristi od predloženih izmena, potvrda da su isplative i praćenje komponenti sistema koje su izmenjene

5.3.4Upravljanje verzijama (Version Control) Namena upravljanje verzijama Vrste sistema za upravljanje verzijama Načini rada Primeri softvera za upravljanje verzijama

Namena upravljanje verzijama Osnovna namena upravljanja verzijama softverskog sistema je 1) Koordinacija promena izvornog koda između više članova razvojnog tima ili više timova 2) Zapis jedinstvene zvanične verzije koda sistema 3) Centralizacija smeštanja koda i obezbeđenje nezavisnosti računara razvojnog tima 4) Automatizacija testiranja i izgradnje sistema na zahtev ili u planiranim terminima

Vrste sistema za upravljanje verzijama a) Centralizovani b) Decentralizovani a) centralizovani b) decentralizovani

Načini rada Osnovna namena sistema za upravljanje verzijama je koordinacija deljenja fajlova između više članova razvojnog tima (npr. konkuretne izmene) U praksi se koriste dva načina načina upravljanja interakcijom s lokalnim kopijama: Lock on check out(loco)-kad jedan korisnik traži fajl s repozitorijuma, on se zaključava za ostale (serijalizacija) Merge on modify (MOM)-više korisnika može istovremeno da traži fajl s repozitorijuma, a sistem objedinjava njihove izmene

Primeri softvera za upravljanje verzijama Sistemi za upravljanje verzijama najčešće imaju tri vrste klijentskog softvera[crookshanks]: komande operativnog sistema, GUI klijente/dodatke s grafičkim interfejsom i dodatke (plug-ins) za druga razvojna okruženja (IDE) Primeri sistema su: IBM ClearCase Microsoft Team System CVS Git Apache Subversion- dodatak (plug-in) poznat kao"svn" Tortoise SVN- dodatak (plug-in) za Microsoft Windows File Explorer

Ilustracija: Microsoft Visual Studio Sistem Visual Studio od verzije 2015 koristi dva načina upravljanja verzijama Git(decentralizovani) -svaki razvojni inženjer ima kopiju repozitorijuma izvornog koda na svom računaru. Svaki skup promena se potvrđuje (commit). Grananja (branch) se lako lokalno kreiraju i kasnije jednostavno menjaju, spajaju (merge), objavljuju (publish) ili uklanjaju Team Foundation Version Control(centralizovani) -najčešće članovi tima imaju samo jednu verziju svakog fajla na svojim razvojnim računarima. Evidencija promena je samo na serveru. Grananja su zasnovana na putanjama, koje se kreiraju na serveru

5.4 Planiranje upravljanja konfiguracijom Proces planiranja definisan je standardom upravljanja konfiguracijom sistema IEEE 828-2005

5.5 Primeri sistema Ilustracija: Dodatak(plug-in)Tortoise SVN

Ilustracija: Dodatak (plug-in) Tortoise SVN Primer strukture foldera minimalne C# Windows Forms apliakcije kreirane u sistemu Visual Studio 2010 [] aplikacija samo ispisuje pozdravnu poruku nakon aktiviranja tastera forme Say Hello

SVN: Uvoz koda Instalacija dodatka Tortoise SVN može se preuzeti sa sajta http://tortoisesvn.tigris.org/ Elemente konfiguracije -fajlove aplikacije treba dodati u repozitorijum (Import)

SVN: Pregled repozitorijuma Logika upravljanja verzijama omogućava grananje (Branch) i označavanje (Tag) izvornog koda grananje omogućava istovremeno više paralelnih tokova promena koda označavanje omogućava dodatnu identifikaciju promena (revizija) koda

SVN: Funkcija usklađivanja (Checkout) Usklađivanje lokalne kopije softvera, koja se nalazi na folderu aplikacije, vrši se (desni klik) izborom funkcije SVN Checkout Checkout Depthopcija omogućava podešavanje rukovanja rekurzijom u strukturi fajlova Show logtaster otvara ekran za prikaz detalja revizije (datumi, akcije, poruke)

SVN: Stablo repozitorijuma Kad se izabere opcija prikaza Fully recursive, kopira se celo stablo u lokalni radni folder, a vizuelni prikaz fajlova vrši se posebnim ikonama Poseban.svn folder dodaje se u hijerarhiju foldera (na slici je prikaz za dva korisnika, koji usklađuju svoj kod)

SVN: Nepotvrđene promene korisnika Kad se izmene u kodu nekog korisnika sačuvaju, vide se posebne oznake promenjenih foldera i fajlova, koje označavaju nepotvrđene promene (uncommitted changes), koje treba uskladiti (Checkout)

SVN: Neuspešna i uspešna operacija ažuriranja (nakon SVN Update)

SVN: Označavanje i grananje Važne funkcije upravljanja verzijama su praćenje izmena i mogućnost konkurentnog editovanja Ostale važne mogućnosti su: Označavanje(tagging, labeling)je mehanizam identifikacije određene revizije koda kao značajne u razvoju ili isporuci softvera Grananje(branching) omogućava izolovanje određenog koda u odvojenom području. Taj kod se može zasebno menjati, bez uticaja na osnovni tok (trunk) promena koda Različiti softverski alati za upravljanje verzijama ove funkcije realizuju na različite načine

Primer: Istorijat izmena i struktura repozitorijuma pre izmene Istorijat promena nekog elementa dobija se izborom funkcije Revision Graphiz SVN menija

Primer: Istorijat i struktura repozitorijuma posle grananja i izmene

Literatura 1. Miškovic V., Projektovanje informacionih sistema (predavanja), Univerzitet Sinergija, 2017 2. Sommerville I., Software Engineering, 10thEd, Addison Wesley, 2016 3. Bruegge B., Dutoit A. H., Object-Oriented Software Engineering Using UML, Patterns, and Java, Prentice Hall, 2010 4. Schach S.R., Object-oriented Software Engineering, McGraw-Hill, 2008 5. Braude E. J., Bernstein M. E., Software Engineering, 2nd Ed, Waveland, 2016 6. Agarwal B. B., Tayal S. P., Software Emgineering, 3rd Ed, Firewall Media, 2016 7. Crookshanks E., Practical Software Development Techniques, Apress, 2014 8. IBM Rational Product Training: DEV475 Mastering Object-Oriented Analysis and Design with UML 9. Priručnici za programske alate i Web reference 55

dr Vladislav Miškovic Projektovanje informacionih sistema Tema 11: Objektno orijentisane metodologije razvoja softvera Pitanja? 56