SlideShare a Scribd company logo
1 of 81
Download to read offline
T-2: Životni ciklus i metodologije razvoja softvera



                dr Zoran Jeremić
                  zoran.jeremic@gmail.com
Sadržaj



          1. Uvod


          2. Životni ciklus razvoja softvera


          3. Metodologije razvoja softvera




          T-2: Životni ciklus i metodologije razvoja softvera   2
Uvod


 Softversko inženjerstvo možemo definisati kao sistemski
  pristup razvoju, korišćenju, održavanju i odumiranju softvera.
 Pored isporuke softvera, visok kvalitet, mali troškovi i kratak
  vremenski rok su dodatni ciljevi koje softverski inženjer mora
  da dostigne.
 Kvalitet i produktivnost konačnog proizvoda zavise od veštine
  ljudi uključenih u projekat, procesa koji koriste za različite
  zadatke u projektu i alata koje koriste.
 U softverskom inženjerstvu glavni fokus je dat na procesima.
    Osnovni zadatak procesa je da pomogne ljudima da postignu
     veći kvalitet i produktivnost kroz specifikaciju zadataka koje treba
     uraditi i definisanjem načina na koji ih treba uraditi.


                      T-2: Životni ciklus i metodologije razvoja softvera   3
Životni ciklus razvoja softvera
Šta je informacioni sistem (IS)?

  Hardver, softver, podaci, ljudi                      Sistem—Skup komponenti
  i procedure koji funkcionišu                          koje međusobno sarađuju
     zajedno da bi proizveli                          kako bi postigli zajednički cilj.
     kvalitetne informacije.

                                                                U poslovanju se koriste
                                                                različiti tipovi sistema




                         T-2: Životni ciklus i metodologije razvoja softvera               4
Životni ciklus razvoja softvera

Šta je životni ciklus razvoja softvera?
 (engl. System Development Life Cycle – SDLC)
 Proces kroz koji stručnjaci različitih profila (analitičari,
  projektanti, inženjeri, programeri, ...) i korisnici
  informacionog sistema prave informacioni sistem.




                     T-2: Životni ciklus i metodologije razvoja softvera   5
Životni ciklus razvoja softvera
 Koje su preporuke za razvoj sistema?


Grupisanje zadataka po fazama (grupama aktivnosti)

Uključivanje korisnika (bilo koje lice za koje se sistem
implementira)

Razvoj jasno definisanih standarda (procedure za koje
kompanija očekuje da zaposleni treba da ih primenjuju)


                   T-2: Životni ciklus i metodologije razvoja softvera   6
Životni ciklus razvoja softvera
Ko su učesnici u
životnom ciklusu
razvoja softvera?




                    T-2: Životni ciklus i metodologije razvoja softvera   7
Životni ciklus razvoja softvera
Šta je analitičar sistema?

          Osoba odgovorna za
             dizajn i razvoj
         informacionog sistema

                                             Veza između korisnika i
                                                IT profesionalaca




                    T-2: Životni ciklus i metodologije razvoja softvera   8
Životni ciklus razvoja softvera
Šta je projektni tim?


        Grupa ljudi koji rade na projektu od početka do kraja



   Sastoji se od korisnika, analitičara sistema i drugih IT profesionalaca

                             Vođa projekta—jedan od članova tima koji upravlja i
                             kontroliše budžetom projekta i vremenskim planom




                         T-2: Životni ciklus i metodologije razvoja softvera       9
Životni ciklus razvoja softvera
Šta je izvodljivost?
                                                                              Zakonska
                                                                             izvodljivost


 Procena koliko
    će koristi                       Četiri testa
   kompanija                        izvodljivosti:                                     Operaciona
    imati od                                                                           izvodljivost
 razvoja sistema


                                                                                 Izvodljivost
                    Ekonomska                                                    vremenskog
                    izvodljivost                                                    roka
                   (poznata i kao                    Tehnička
                    cost/benefit                   izvodljivost
                      analiza)
                       T-2: Životni ciklus i metodologije razvoja softvera                            10
Životni ciklus razvoja softvera
Šta je dokumentacija?

                Kolekcija i rezime podataka i
                        informacija


               Obuhvata izveštaje, dijagrame,
                programe i druge izveštaje




                  T-2: Životni ciklus i metodologije razvoja softvera   11
Životni ciklus razvoja softvera
Šest tehnika za prikupljanje podataka i informacija?
   Analiza dokumentacije
   Posmatranje
   Upitnici
   Intervjui
   Joint-application
    design (JAD) sesija
   Istraživanje




                  T-2: Životni ciklus i metodologije razvoja softvera   12
Životni ciklus razvoja softvera
Koje su faze životnog ciklusa razvoja softvera?
                                           Faza 2. Analiza
                                              Izvođenje preliminarne analize
Faza 1. Planiranje                            Izvršenje detaljne analize:
                                                                                                            Faza 3. Dizajn
   Pregled projektnih                             Proučavanje trenutnog sistema                               Nabavka hardvera i
    zahteva
                                                   Utvrđivanje korisničkih zahteva                              softvera, ukoliko je
   Analiza prioriteta                                                                                          potrebno
                                                   Predlog rešenja
    projektnih zahteva
                                                                                                               Razvoj detalja
   Dodeljivanje resursa                                                                                        sistema
   Identifikovanje proj.
    razvojnog tima


              Faza 5. Podrška                                         Faza 4. Implementacija
                 Revizije sistema                                       Razvoj programa,
                 Identifikovanje grešaka i                              Instaliranje i testiranje novog
                  unapređenja                                             sistema
                 Praćenje performansi sistema                           Obuka korisnika
                                                                         Korišćenje novog sistema

                                       T-2: Životni ciklus i metodologije razvoja softvera
                                                                                                                              13
Planiranje
Koji su razlozi za kreiranje ili modifikovanje informacionog
sistema?

                    Rešavanje
                                                   Unapređenje
                   problema u
                                                    postojećeg
                   postojećem
                                                      sistem
                     sistemu




                    Spoljašnji
                                                  Konkurentnost
                      uslovi
                                                  može voditi do
                    zahtevaju
                                                    promene
                    promenu


                     T-2: Životni ciklus i metodologije razvoja softvera   14
Planiranje
Šta je zahtev za održavanjem sistema?

   Formalni zahtev za
    novim ili modifikovanim
    informacionim sistemom
     Takođe zvan
       projektni zahtev




                   T-2: Životni ciklus i metodologije razvoja softvera   15
Planiranje
Šta je faza planiranja?

         Počinje kada upravni odbor primi projektni zahtev

                                  Upravni
                                  odbor—
                               rukovodeće telo
                                 kompanije


                             Funkcije odbora:

                                                                             Formiranje
       Recenzija i    Određivanje
                                                                           razvojnog tima
      odobravanja      prioriteta                   Dodeljivanje
                                                                             projekta za
       projektnih     projektnim                      resursa
                                                                           svaki odobreni
        zahteva        zahtevima
                                                                              projekat

                     T-2: Životni ciklus i metodologije razvoja softvera
Analiza
Šta je faza analize?

             Izvršenje preliminarnog                  Izvršenje detaljne
          istraživanja, poznato i kao                 analize
                  studija izvodljivosti




                        T-2: Životni ciklus i metodologije razvoja softvera   17
Analiza
Šta je preliminarno istraživanje?
   Utvrđivanje tačne prirode problema ili unapređenja i
    utvrđivanje da li je vredno truda
       Zaključci se prezentuju u izveštaju o izvodljivosti, poznatom kao studija
        izvodljivosti




                           T-2: Životni ciklus i metodologije razvoja softvera      18
Analiza
Šta je detaljna analiza?


                     1. Proučavanje kako trenutni
                          sistem funkcioniše
                  2. Utvrđivanje šta korisnik želi, šta
                     mu je potrebno i definisanje
                               zahteva


                           3. Predlaganje rešenja


                         Ponekad se zove logički
                                 dizajn

                    T-2: Životni ciklus i metodologije razvoja softvera   19
Analiza
Šta je predlog projekta?

                                        Procenjuje
                                        izvodljivost
                                           svakog
                                       alternativnog
                                          rešenja

                                                           Predstavlja se
                     Predlaže
                                                             upravnom
                   najizvodljivije
                                                            odboru, koji
                    rešenje za
                                                         donosi odluku o
                     projekat
                                                         tome kako će se
                                                          sistem razvijati

                   T-2: Životni ciklus i metodologije razvoja softvera       20
Analiza
Šta su moguća rešenja?                                                           Softver za
                                                                               horizontalno
                                                                             tržište—rađen za
                                                                              potrebe mnogih
      Kupovina paketskog softvera —softver                                       kompanija
              dostupan na tržištu
                                                                           Softver za vertikalno
                                                                           tržište—dizajniran za
         Izrada sopstvenog korisničkog                                      određenu industriju
        softvera—softver razvijen prema
             korisničkim zahtevima


       Outsource—spolja razvijen softver


                     T-2: Životni ciklus i metodologije razvoja softvera                           21
Dizajn
Šta je faza dizajna?
     Definiše se arhitektura sistema (komponente, njihov
      interfejs i ponašanje).

                   Izlaz:
•   dokument koji opisuje arhitekturu
•   plan implementacije
•   analiza osnovnih prioriteta
•   Plan testiranja
                                                       Razvoj svih detalja novog ili
                                                       modifikovanog informacionog
                                                                 sistema

                        T-2: Životni ciklus i metodologije razvoja softvera            22
Dizajn
Šta je potrebno za nabavku novog softvera?
   Identifikovanje svih hardverskih i softverskih zahteva
    novog ili modifikovanog sistema


        Razgovor sa drugim
                                                        Pretraživanje Weba
        analitičarima sistema



                                                        Čitanje štampanih i
             Razgovor sa
                                                         online trgovačkih
          kompanijama za
                                                         časopisa, novina,
           izradu softvera
                                                              oglasa…


                      T-2: Životni ciklus i metodologije razvoja softvera     23
Dizajn
Koja su tri osnovna dokumenta koja se koriste za pregled
tehničkih specifikacija?

       Kupac                                                                          Prodavac daje
      definiše                Zahtev za izjašnjavanjem                                   cene za
     proizvode                                                                          navedene
      koje želi                                                                         proizvode



          Prodavac bira
                                                  Zahtev za predlog
         proizvod(e) koji
          ispunjavanju
       definisane zahteve i                                                          Manje formalni
          predlaže cene                                                             metod koji koristi
                                                                                    standardnu formu
                                                                                        za dobijanje
                                                                                       informacije o
                                Zahtev za informacijom                              proizvodu ili usluzi
                              T-2: Životni ciklus i metodologije razvoja softvera
                                                                                                      24
Dizajn
Kako analitičari sistema testiraju softverski proizvod?

   Proučavanje referenci prodavca
   Razgovor sa trenutnim korisnicima proizvoda
   Demonstracije proizvoda
   Korišćenje trial verzija softvera
   Merenje performansi korišćenjem benchmark testova




                    T-2: Životni ciklus i metodologije razvoja softvera   25
Dizajn
Šta je detaljni dizajn?



   Detaljna specifikacija dizajna za komponente u predloženom rešenju



                     Obuhvata nekoliko aktivnosti

       Dizajn baze
                          Dizajn ulaza i izlaza                         Dizajn programa
        podataka




                       T-2: Životni ciklus i metodologije razvoja softvera                26
Dizajn
Šta je mockup?

   Funkcionalnosti sistema se predstavljaju crtanjem
    elemenata korisničkog interfejsa.
   Primer izgleda
    ekrana predstavljen
    korišćenjem alata za
    kreiranje mockup-a




                    T-2: Životni ciklus i metodologije razvoja   27
      http://www.balsamiq.com         softvera
Implementacija
Šta je prototip?
   Nekompletna verzija softvera koji se razvija.
   Obično simulira samo nekoliko aspekata funkcionalnosti
    eventualnog softvera i može biti potpuno drugačiji od kranjeg
    proizvoda.
   Omogućava korisnicima softvera da evaluiraju ono što su
    developeri predložili kao rešenje.


             Radni model za
            predloženi sistem                                      Izrada prototipa
                                                                  previše rano može
                                                                 dovesti do problema

                     T-2: Životni ciklus i metodologije razvoja softvera               28
Implementacija
Šta je computer-aided software engineering (CASE)?
   Softverski alati dizajnirani da podrže aktivnosti
    životnog ciklusa razvoja softvera




                   T-2: Životni ciklus i metodologije razvoja softvera   29
Implementacija
Šta je faza implementacije?
   Cilj je da se konstruiše ili izgradi novi ili modifikovani
    sistem a zatim isporuči korisnicima
                        Prelazak na novi sistem

                              Obuka korisnika


                Instalacija i testiranje novog sistema



                              Razvoj programa
                    T-2: Životni ciklus i metodologije razvoja softvera   30
Implementacija
Koja su tri tipa testova koje izvršava projektni tim?

            Testiranje                                                         Testiranje
             jedinice                                                           sistema
          Provera da li svaka
                                                                           Provera da li svi
             pojedinačna
                                                                         programi u aplikaciji
             komponenta
                                                                             rade zajedno
             funkcioniše


                                       Testiranje
                                       integracije
                                       Provera da li
                                     aplikacija radi sa
                                   drugim aplikacijama

                         T-2: Životni ciklus i metodologije razvoja softvera                     31
Podrška
Šta je obuka?
   Pokazivanje
    korisnicima kako će
    koristiti hardver i
    softver u sistemu




                  T-2: Životni ciklus i metodologije razvoja softvera   32
Podrška
Šta je faza podrške?

   Obezbeđuje tekuću pomoć nakon implementacije sistema
           Upravljanje analizom sistema nakon implementacije—vođenje
        sastanaka da bi se utvrdilo da li se informacioni sistem ponaša prema
                                     očekivanjima


                                Identifikovanje grešaka



                     Identifikovanje potencijalnih unapređenja



                            Praćenje performansi sistema


                          T-2: Životni ciklus i metodologije razvoja softvera   33
Modeli softverskih procesa


 Šta je model procesa?

    Uopšteno: razvojni plan koji definiše opšti proces razvoja
                    softverskog proizvoda


 Preciznije: Definicija koja odredjuje koje aktivnosti se izvršavaju, od
 strane kojih osoba u kojim ulogama; kojim redosledom će aktivnosti
 biti izvršavane, koji proizvodi će biti razvijani i kako će se procenjivati
                              njihov kvalitet.




                         T-2: Životni ciklus i metodologije razvoja softvera   34
Pregled postojećih modela softverskih procesa



             Metodologije razvoja softvera




                 T-2: Životni ciklus i metodologije razvoja softvera   35
Metodologije razvoja softvera


 Metodologija je formalizovani proces ili skup iskustava za
  kreiranje softvera
    Skup pravila koje razvojni tim prati

    Skup konvencija koje je organizacija odlučila da prati

    Sistematičan, inženjerski pristup za organizovanje softverskih
     projekata




                       T-2: Životni ciklus i metodologije razvoja softvera   36
Metodologije razvoja razvoja


 Među najpoznatije metodologije spadaju:
      Waterfall model
      Waterfall model sa prototipom
      Metodologija za paralelni razvoj
      V model
      Inkrementalni model
      Spiralni model
      Rapid Application Development (RAD)
      Rational Unified Process
      Extreme Programming (XP)
      Scrum metodologija
                   T-2: Životni ciklus i metodologije razvoja softvera   37
Build and Fix model


 Većina softvera je razvijena korišćenjem ovog modela. U
  suštini ovde nema modela, specifikacije, ni dizajna.




                  T-2: Životni ciklus i metodologije razvoja softvera   38
Waterfall model




                  T-2: Životni ciklus i metodologije razvoja softvera   39
Waterfall model

Jedan od najstarijih modela
Dobar za rešavanje potpuno jasnih problema
 bez izmena u zahtevima
Jednostavan i razumljiv za korisnika
Predstavlja
   Vrlo apstraktan prikaz razvojnog procesa
   Niz aktivnosti
Jasne granice između faza sa izlaznim
 produktima
                  T-2: Životni ciklus i metodologije razvoja softvera   40
Waterfall model


 Naziva se još i linearno-sekvencijalni model.
 Svaka faza mora biti u potpunosti završena pre nego što
  započne sledeća faza.
 Na kraju svake faze, vrši se analiza da bi se utvrdilo da li
  je projekat na dobrom putu i da li se treba nastaviti ili
  obustaviti.
 Ova analiza se naziva završna analiza faze.




                   T-2: Životni ciklus i metodologije razvoja softvera   41
Waterfall model

 Tradicionalni pristup razvoju:

  Definisanje
   zahteva

                 Dizajn
                softvera

                             Implementacija
                               (kodiranje)

                                                          Verifikacija
                                                          (testiranje)

                                                                           Korišćenje
                                                                          (održavanje)
                    T-2: Životni ciklus i metodologije razvoja softvera                  42
Waterfall model


 Prednosti:
    Svaka faza ima specifične izlazne produkte i proces
     analize.
    U jednom trenutku radi se samo na jednoj fazi.
    Dobar je za male projekte kod kojih su potpuno
     definisani i jasni zahtevi.
    Potkrepljuje stav “definiši pre dizajna” i “dizajniraj pre
     implementacije”.




                   T-2: Životni ciklus i metodologije razvoja softvera   43
Waterfall model


 Nedostaci:
    Promena opsega u toku životnog ciklusa može ubiti
     projekat.
    Ne postoji radna verzija softvera sve do kraja
     životnog ciklusa.
    Velika je količina rizika i neizvesnosti.
    Nije pogodan za složene i objektno-orjentisane
     projekte.
    Nije pogodan za dugotrajne i tekuće projekte.
    Nije dobar za projekte kod kojih postoji srednji ili veliki
     rizik od promene zahteva.
                   T-2: Životni ciklus i metodologije razvoja softvera   44
Waterfall model


 Kada koristiti ovaj model?
    Ovakav model se koristi kod projekata koji su jasni i nisu
     podložni promenama u toku razvoja (npr. projekti odbrane)
    Može se koristiti za projekte migracije, kod kojih će zahtevi ostati
     isti ali se menja platforma ili jezik.
    Takođe se može koristiti za projekte gde sami sponzori vrše
     testiranje, s obzirom da do završetka projekta nema isporuke.




                      T-2: Životni ciklus i metodologije razvoja softvera   45
Waterfall model sa prototipom


 Prototip je delimično razvijen proizvod.
 Prototip pomaže
    Dizajnerima da procene alternativne strategije dizajna (prototip
     dizajna)
    Korisnicima da razumeju kako će izgledati sistem (prototip
     korisničkog interfejsa)
 Prototip je koristan za verifikaciju i validaciju




                      T-2: Životni ciklus i metodologije razvoja softvera   46
Waterfall model sa prototipom


 Može se koristiti kod scenarija gde ne postoje detaljne
  informacije u vezi ulaza u sistem, potreba za obradom i
  izlazom.
 Omogućava klijentu da eksperimentiše sa radnom
  verzijom produkta.
 Razvojni proces se nastavlja samo ako je klijent
  zadovoljan funkcionisanjem prototipa.
 U toku određenih faza developer utvrđuje specifikaciju
  klijentovih stvarnih potreba.



                  T-2: Životni ciklus i metodologije razvoja softvera   47
Waterfall model sa prototipom




                T-2: Životni ciklus i metodologije razvoja softvera   48
Waterfall model sa prototipom


 Prednosti:
    Dizajner softvera i programer mogu dobiti povratne informacije
     od korisnika u ranim fazama projekta.
    Klijent i izvođač radova mogu uporediti da li softver ispunjava
     specifikacije, prema kojima je softver napravljen.
    Takođe omogućava softverskom inženjeru određeni uvid u
     tačnost inicijalnih projektnih predračuna i da li se mogu ispuniti
     predloženi vremenski rokovi.




                      T-2: Životni ciklus i metodologije razvoja softvera   49
Waterfall model sa prototipom


 Nedostaci:
    Klijenti često očekuju da će nekoliko minimalnih izmena na
     prototipu zadovoljiti njihove potrebe, ne shvatajući da se u
     žurbi izgradnje prototipa nije vodilo računa o celokupnom
     kvalitetu softvera .
    Programeri mogu izgubiti fokus o stvarnoj nameni
     prototipa i kompromitovati kvalitet proizvoda, npr. mogu
     primeniti neke neefikasne algoritme ili neodgovarajuće
     programske jezike korišćene u razvoju prototipa
     (uglavnom posledica lenjosti ili bliskosti sa jednostavnijim
     metodama)
    Prototip će teško biti prihvaćen na sudu u slučajevima
     kada se klijent ne slaže da je developer ispunio svoje
     obaveze.        T-2: Životni ciklus i metodologije razvoja softvera 50
Waterfall model sa prototipom


 Kada koristiti ovaj model?
    Prototipovi su vrlo efikasni u analizi i dizajnu online sistema.
    Sistemi sa malo interakcije korisnika i sistema, npr sistemi koji
     uglavnom vrše kalkulacije, imaju malo koristi od ovog modela
    Ponekada implementacija sistemskih funkcija može biti veoma
     složena a potencijalne prednosti prototipova mogu biti veoma
     male.
    Prototip je veoma dobar za dizajn dobrog human-computer
     interfejsa.
    Jedna od najproduktivnijih upotreba prototipova do sada je bila
     kao alata za iterativno inženjerstvo korisničkih zahteva i dizajn
     korisničkog interfejsa.


                      T-2: Životni ciklus i metodologije razvoja softvera   51
Metodologija za paralelni razvoj


 Metodologija je slična Waterfall modelu
 Projekat je podeljen na manje projekte i svaka faza se
  izvršava posebno za svaki od njih.
 Razvojni proces se izvršava konkurentno i odvojeno za
  svaki od potprojekata.




                  T-2: Životni ciklus i metodologije razvoja softvera   52
Metodologija za paralelni razvoj




                   T-2: Životni ciklus i metodologije razvoja
                                                                53
                                     softvera
Metodologija za paralelni razvoj

 Prednosti:
    Smanjuje vreme razvoja
    Manje su šanse da su potrebne prepravke
 Nedostaci:
    I dalje se koriste papirna dokumenta
    Podprojekte je ponekada teško integrisati




                     T-2: Životni ciklus i metodologije razvoja softvera   54
V model


 Mnogo je veći značaj aktivnosti testiranja nego kod Waterfall
  modela. Procedure i uslovi testiranja se razvijaju u ranim fazama
  životnog ciklusa pre implementacije.
 Životni ciklus počinje zahtevima kao i kod waterfall modela.
 Pre početka razvoja kreira se plan testiranja prihvatljivosti sistema
  koji se fokusira na zadovoljenju funkcionalnosti definisanih
  zahtevima.
 U ranim fazama dizajna definiše se arhitektura sistema i dizajn.
  Plan testiranja integracija se takode definiše u ovoj fazi kako bi se
  utvrdilo da svi delovi funkcionišu zajedno.
 U kasnijim fazama dizajna se dizajniraju komponente softvera i
  testovi pojedinačnih jedinica.
 U fazi implementacije se realizuje kodiranje. Po završetku
  kodiranja, ranije planirani testovi se izvršavaju.
                      T-2: Životni ciklus i metodologije razvoja softvera   55
V model




          T-2: Životni ciklus i metodologije razvoja softvera   56
V model


 Prednosti
    Svaka faza ima specifične produkte.
    Veće su šanse za uspeh od Waterfall modela zbog razvoja
     planova testova u ranim fazama životnog ciklusa.
    U poređenju sa waterfall modelom vreme realizacije je kraće do
     50%.
    Daje dobre rezultate kod malih projekata čije zahteve je lako
     razumeti.
    Iskorišćenje resursa je veliko.




                     T-2: Životni ciklus i metodologije razvoja softvera   57
V model


 Nedostaci
   Vrlo je rigidan, kao i waterfall model.
   Jako teško i skupo je postići malu fleksibilnost
   Softver se razvija tokom faze implementacije, pa nema ranih
    prototipova.
   Model ne obezbeđuje rešenja problema nađenih u fazi testiranja.




                    T-2: Životni ciklus i metodologije razvoja softvera   58
V model


 Kada koristiti ovaj model?
    Kada vreme i troškovi predstavljaju ograničenje projekta.
    Slično kao i kod Waterfall modela, ali aktivnosti testiranja koje
     počinju veoma rano, doprinose smanjenju vremena razvoja i
     troškova projekta.




                      T-2: Životni ciklus i metodologije razvoja softvera   59
Inkrementalni model


 Kombinuje elemente liearnog sekvencijalnog modela sa
  iterativnom filozofijom prototipova.
 Svaka linearna sekvenca isporučuje uvećan softver.
 Kod ovog modela, prvi inkrement je često osnovni
  proizvod, dok se u ostalim inkrementima dodaju dodatne
  funkcionalnosti.




                  T-2: Životni ciklus i metodologije razvoja softvera   60
Inkrementalni model




                T-2: Životni ciklus i metodologije razvoja softvera   61
Inkrementalni model


 Nedostaci
     Sistem mora imati “incremente”.
     Incrementi moraju biti od značaja za korisnika.
     Sveukupno, duže (značajno duže) vreme razvoja.
     Biznis procedura se menja sa svakim incrementom.




                    T-2: Životni ciklus i metodologije razvoja softvera   62
Spiralni model


 Sličan je inkrementalnom modelu, sa većim naglaskom na analizi
  rizika.
 Ima četiri faze: planiranje, analiza rizika, inženjerstvo i evaluacija.
  Projekat više puta prolazi ove faze u iteracijama.
 Zahtevi se analiziraju u fazi planiranja. U fazi analize rizika
  identifikuju se rizici i alternativna rešenja. Prototip se kreira na kraju
  faze analize rizika.
 Softver se razvija u inženjerskoj fazi a na kraju faze se realizuje
  testiranje. Faza evaluacije omogućava korisniku da evaluira projekat
  pre nego što se pređe na narednu spiralu.
 U spiralnom modelu ugaona komponenta predstavlja progres, a
  radijus spirale predstavlja sveukupne troškove.

                        T-2: Životni ciklus i metodologije razvoja softvera   63
Spiralni model




                 T-2: Životni ciklus i metodologije razvoja softvera   64
Spiralni model


 Prednosti:
    Visok je stepen analize rizika
    Dobar je za velike i kritične projekte.
    Softver se proizvodi u ranim fazama životnog ciklusa.




                     T-2: Životni ciklus i metodologije razvoja softvera   65
Spiralni model


 Nedostaci:
      Može biti veoma skup model.
      Analiza rizika zahteva visok stepen ekspertize.
      Uspeh projekta je veoma zavistan od faze analize rizika.
      Nije dobar za male projekte.




                       T-2: Životni ciklus i metodologije razvoja softvera   66
Spiralni model


 Kada se koristi?
    Za aplikacije koje imaju složeni grafički interfejs prema korisniku
     i više-funkcionalni deo. Funkcionalnosi se mogu dodavati kroz
     faze, a grafički interfejs u nekoj od finalnih faza.
    Često se koristi u velikim projektima.
    US vojska je usvojila ovaj model za svoj program budućih
     borbenih sistema.




                      T-2: Životni ciklus i metodologije razvoja softvera   67
Rapid application development (RAD)


 Inkrementalni proces razvoja softvera koji naglašava
  veoma kratak razvojni ciklus
 Predstavlja “high-speed” adaptaciju linearnog
  sekvencijalnog modela u kome je brzi razvoj postignut
  korišćenjem konstrukcije zasnovane na komponentama.
 Ukoliko su zahtevi jasni omogućava razvoj funkcionalnog
  sistema u kratkom periodu (npr. 60-90 dana)




                  T-2: Životni ciklus i metodologije razvoja softvera   68
Rapid application development (RAD)


 Naglašava sledeće faze:
    Poslovno modelovanje – tokovi informacija između
     poslovnih funkcija
    Modelovanje podataka – skupovi podataka potrebnih
     za podršku poslovanju
    Modelovanje procesa – skupovi podataka se
     transformišu da bi ostvarili tokove informacije
     neophodne za implementaciju poslovne funkcije.
    Generisanje aplikacije – upotreba postojećih
     programskih komponenti (kada je moguće)
    Testiranje – s obzirom da se naglašava upotreba
     postojećih komponenti, mnoge od njih su već
     testirane.
                 T-2: Životni ciklus i metodologije razvoja softvera   69
Rapid application development (RAD)




                T-2: Životni ciklus i metodologije razvoja softvera   70
Rapid application development (RAD)


 Nedostaci:
    Za velike ali skalabilne projekte, RAD zahteva
     dovoljno ljudskih resursa koji bi kreirali odgovarajući
     broj RAD timova.
    RAD zahteva da se developeri i korisnici pridržavaju
     RAD aktivnosti kako bi sistem završili na vreme u
     mnogo kraćem vremenskom roku.
    Nisu sve aplikacije pogodne za RAD. Ako sistem ne
     može biti modularizovan na odgovarajući način,
     kreiranje komponenti potrebnih za RAD može biti
     problematično
    RAD nije pogodan kada su tehnički rizici veliki.

                   T-2: Životni ciklus i metodologije razvoja softvera   71
AGILNE METODOLOGIJE


       T-2: Životni ciklus i metodologije razvoja
                                                    72
                         softvera
Agilne metodologije


 Uključuju iteracije sa kratkim vremenskim intervalima.
 Razdvajaju zadatke na male inkremente sa minimalnim
  planiranjem.
 Mali timovi rade zajedno sa stakeholderima da definišu
  brze prototipove, dokaze koncepata i druga vizuelna
  sredstva za opisivanje problema koji se rešava.
 Tim definiše zahteve za iteraciju, razvija kod, definiše i
  izvršava integrisane testove a korisnici verifikuju
  rezultate.
 Verifikacija se izvršava mnogo ranije u razvojnom
  procesu nego kod Waterfall modela
                   T-2: Životni ciklus i metodologije razvoja softvera   73
Agilne metodologije


 Neki od osnovnih principa agilnih metodologija su:
    Zadovoljstvo klijenta brzom, konstantnom isporukom korisnog
     softvera.
    Radni softver se često isporučuje (u pitanju su nedelje a ne
     meseci).
    Radni softver je principijelna jedinica napredka.
    Čak i kasne izmene zahteva su dobrodošle.
    Tesna, dnevna kooperacija između poslovnih ljudi i developera.
    Konverzacija licem u lice je najbolja forma komunikacije.
    Projekti se zasnivaju na angažovanju motivisanih individua, kojima
     treba verovati.
    Jednostavnost .
    Samo-organizovani mali timovi (5-9 ljudi).
    Konstantno prilagođavanje ipromenljivim softvera
                     T-2: Životni ciklus metodologije razvoja
                                                              okolnostima.   74
Agilne metodologije


 Neke od najpoznatijih metodologija agilnog razvoja softvera:
      Agile Modeling
      Agile Unified Process (AUP)
      Agile Data Method
      Dynamic System Development Method (DSDM)
      Essential Unified Process (EssUP)
      Extreme programming (XP)
      Feature Driven Development (FDD)
      Getting Real
      Open Unified Process (OpenUP)
      Scrum
      Lean software development
                      T-2: Životni ciklus i metodologije razvoja softvera   75
Extreme programming (XP)


 Najčešće korišćena i najpoznatija agilna
  metodologija
 Zasnovana je na jednostavnosti, komunikaciji,
  feedbacku i hrabrosti.
 Timovi koriste jednostavnu formu planiranja i
  praćenja kako bi odlučili šta sledeće da rade.
 Timovi kreiraju softver u seriji malih, potpuno
  integrisanih izdanja koja su prošla sve testove koje
  je korisnik definisao.
 Predstavnik korisnika je deo tima.
                 T-2: Životni ciklus i metodologije razvoja softvera   76
Extreme programming (XP)


 Zasnovana je na 4 ključne aktivnosti: planiranje,
  upravljanje, dizajniranje i kodiranje
 Planiranje
      Identifikuju se korisnički zahtevi.
      Planiranjem verzija kreira se raspored verzija.
      Često se prave mala izdanja.
      Projekt je podeljen u iteracije.
      Planiranje iteracije započinje svaku iteraciju.




                       T-2: Životni ciklus i metodologije razvoja softvera   77
Extreme programming (XP)


 Upravljanje
     Daje timu lokalni otvoreni radni prostor.
     Određuje održiv korak.
     Svaki dan započinje početnim sastankom.
     Prati se brzina projekta.
     Ljudi se razmeštaju.
     Popravlja se XP kada dođe do problema.




                     T-2: Životni ciklus i metodologije razvoja softvera   78
Extreme programming (XP)
                                                          Class –
 Dizajniranje                                        Responsibility -
      Jednostavnost.                                  Collaboration
      Korišćenje CRC kartica za dizajn sesija.
      Kreiranje klinastih rešenja da bi se smanjio rizik.
      Funkcionalnosti se ne dodaju u ranim fazama.
      Ponovno planiranje kada god i gde god je potrebno.




                      T-2: Životni ciklus i metodologije razvoja softvera   79
Extreme programming (XP)


 Kodiranje
   Korisnik je uvek dostupan.
   Kod se mora pisati tako da bude u skladu sa
    standardima.
   Kodira se test jedinice prvo.
   Sav produkcioni kod je programiran u paru.
   Samo jedan par integriše kod u jednom trenutku.
   Česte integracije.
   Određen je računar za integraciju.
   Postoji kolektivno vlasništvo.
               T-2: Životni ciklus i metodologije razvoja softvera   80
Extreme programming (XP)


 Testiranje
    Sav kod mora imati testove jedinica.
    Sav kod mora proći sve testove jedinica pre nego što se može
     staviti u upotrebu.
    Kada se pronađe bag kreiraju se testovi.
    Testovi prihvatljivosti se često izvršavaju a rezultati se objavljuju.




                       T-2: Životni ciklus i metodologije razvoja softvera   81

More Related Content

What's hot

Digitalna ovisnost učenika - analiza ankete
Digitalna ovisnost učenika - analiza anketeDigitalna ovisnost učenika - analiza ankete
Digitalna ovisnost učenika - analiza anketePogled kroz prozor
 
ikt-u-svakodnevnom-okruzenju.pptx
ikt-u-svakodnevnom-okruzenju.pptxikt-u-svakodnevnom-okruzenju.pptx
ikt-u-svakodnevnom-okruzenju.pptxraven0241
 
Predromantizam i romantizam
Predromantizam i romantizamPredromantizam i romantizam
Predromantizam i romantizamHrvatski Jezik
 
3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретч3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретчСокальська ЗШ І-ІІІ ступенів №2
 
Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті
Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті
Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті Oleksii Voronkin
 
Postavljanje prezentacije na internet
Postavljanje prezentacije na internetPostavljanje prezentacije na internet
Postavljanje prezentacije na internetinformatikasmm
 
Prezentacija Google SketchUp
Prezentacija Google SketchUpPrezentacija Google SketchUp
Prezentacija Google SketchUpraniradovi
 
Uticaj pušenja na psihofizičko zdravlje
Uticaj pušenja na psihofizičko zdravljeUticaj pušenja na psihofizičko zdravlje
Uticaj pušenja na psihofizičko zdravljeSimonida Vukobrat
 
L193 - Hemija - Alkaloidi - Milan Borkovac - Marina Jovanović
L193 - Hemija - Alkaloidi - Milan Borkovac - Marina JovanovićL193 - Hemija - Alkaloidi - Milan Borkovac - Marina Jovanović
L193 - Hemija - Alkaloidi - Milan Borkovac - Marina JovanovićNašaŠkola.Net
 
Nikola Tesla prezentacija
Nikola Tesla prezentacijaNikola Tesla prezentacija
Nikola Tesla prezentacijaSiraKK2
 
Glasovne promjene zadaci s rjesenjima
Glasovne promjene zadaci s rjesenjimaGlasovne promjene zadaci s rjesenjima
Glasovne promjene zadaci s rjesenjimaIvana Čališ
 

What's hot (20)

Digitalna ovisnost učenika - analiza ankete
Digitalna ovisnost učenika - analiza anketeDigitalna ovisnost učenika - analiza ankete
Digitalna ovisnost učenika - analiza ankete
 
ikt-u-svakodnevnom-okruzenju.pptx
ikt-u-svakodnevnom-okruzenju.pptxikt-u-svakodnevnom-okruzenju.pptx
ikt-u-svakodnevnom-okruzenju.pptx
 
Predromantizam i romantizam
Predromantizam i romantizamPredromantizam i romantizam
Predromantizam i romantizam
 
Romantizam
RomantizamRomantizam
Romantizam
 
Masinsko ucenje
Masinsko ucenjeMasinsko ucenje
Masinsko ucenje
 
3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретч3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретч
 
Prezentacija
PrezentacijaPrezentacija
Prezentacija
 
Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті
Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті
Воронкін О.С. Можливості використання генеративного штучного інтелекту в освіті
 
Moderna
ModernaModerna
Moderna
 
Postavljanje prezentacije na internet
Postavljanje prezentacije na internetPostavljanje prezentacije na internet
Postavljanje prezentacije na internet
 
Prezentacija Google SketchUp
Prezentacija Google SketchUpPrezentacija Google SketchUp
Prezentacija Google SketchUp
 
Kubizam
KubizamKubizam
Kubizam
 
Nikola tesla
Nikola teslaNikola tesla
Nikola tesla
 
Uticaj pušenja na psihofizičko zdravlje
Uticaj pušenja na psihofizičko zdravljeUticaj pušenja na psihofizičko zdravlje
Uticaj pušenja na psihofizičko zdravlje
 
L193 - Hemija - Alkaloidi - Milan Borkovac - Marina Jovanović
L193 - Hemija - Alkaloidi - Milan Borkovac - Marina JovanovićL193 - Hemija - Alkaloidi - Milan Borkovac - Marina Jovanović
L193 - Hemija - Alkaloidi - Milan Borkovac - Marina Jovanović
 
Impresionizam
ImpresionizamImpresionizam
Impresionizam
 
Vladimir nazor, voda
Vladimir nazor, vodaVladimir nazor, voda
Vladimir nazor, voda
 
Nikola Tesla prezentacija
Nikola Tesla prezentacijaNikola Tesla prezentacija
Nikola Tesla prezentacija
 
Ekspresionizam
Ekspresionizam Ekspresionizam
Ekspresionizam
 
Glasovne promjene zadaci s rjesenjima
Glasovne promjene zadaci s rjesenjimaGlasovne promjene zadaci s rjesenjima
Glasovne promjene zadaci s rjesenjima
 

Viewers also liked

Scrum Master Essentials Course
Scrum Master Essentials CourseScrum Master Essentials Course
Scrum Master Essentials CourseKemal Bajramović
 
Swot Analysis Seminar
Swot Analysis SeminarSwot Analysis Seminar
Swot Analysis Seminarcarolpage
 
SWOT for Language Teachers
SWOT for Language TeachersSWOT for Language Teachers
SWOT for Language Teachersm nagaRAJU
 
6 SWOT Analysis Examples to Help You Write Your Own
6 SWOT Analysis Examples to Help You Write Your Own6 SWOT Analysis Examples to Help You Write Your Own
6 SWOT Analysis Examples to Help You Write Your OwnPalo Alto Software
 
Personal SWOT for Teachers
Personal SWOT for TeachersPersonal SWOT for Teachers
Personal SWOT for Teachersm nagaRAJU
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Viewers also liked (10)

Uvod u inovacije i dijagnostikovanje inovacija
Uvod u inovacije i dijagnostikovanje inovacijaUvod u inovacije i dijagnostikovanje inovacija
Uvod u inovacije i dijagnostikovanje inovacija
 
Scrum Master Essentials Course
Scrum Master Essentials CourseScrum Master Essentials Course
Scrum Master Essentials Course
 
Swot Analysis Seminar
Swot Analysis SeminarSwot Analysis Seminar
Swot Analysis Seminar
 
SWOT for Language Teachers
SWOT for Language TeachersSWOT for Language Teachers
SWOT for Language Teachers
 
6 SWOT Analysis Examples to Help You Write Your Own
6 SWOT Analysis Examples to Help You Write Your Own6 SWOT Analysis Examples to Help You Write Your Own
6 SWOT Analysis Examples to Help You Write Your Own
 
Personal SWOT for Teachers
Personal SWOT for TeachersPersonal SWOT for Teachers
Personal SWOT for Teachers
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to T 2 zivotni ciklus i metodologije razvoja softvera

Projektovanje i implementacija SPPR
Projektovanje i implementacija SPPRProjektovanje i implementacija SPPR
Projektovanje i implementacija SPPRMiloš Kecman
 
12 predavanja informaticke tehnologije.pdf
12 predavanja   informaticke tehnologije.pdf12 predavanja   informaticke tehnologije.pdf
12 predavanja informaticke tehnologije.pdfKosara Zivgovic
 
ImplementacijaIS.pdf
ImplementacijaIS.pdfImplementacijaIS.pdf
ImplementacijaIS.pdfVlada Nedic
 
Modeli razvoja IS.pdf
Modeli razvoja IS.pdfModeli razvoja IS.pdf
Modeli razvoja IS.pdfVlada Nedic
 
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...Positive
 
T 4 testiranje softvera i upravljanje kvalitetom
 T 4 testiranje softvera i upravljanje kvalitetom T 4 testiranje softvera i upravljanje kvalitetom
T 4 testiranje softvera i upravljanje kvalitetomZoran Jeremic
 
P2_Modeli_Procesa.pdf
P2_Modeli_Procesa.pdfP2_Modeli_Procesa.pdf
P2_Modeli_Procesa.pdfBosnaBosnic
 
20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanov
20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanov20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanov
20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanovVlada Nedic
 
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan BuhacSPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan BuhacSharePoint User Grupa Srbija
 
Izbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-aIzbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-aBojan Buhac
 
Menadzment odrzavanja
Menadzment odrzavanjaMenadzment odrzavanja
Menadzment odrzavanjaradijacija
 
Evaluation of a user interface for www.sportsdirect.com
Evaluation of a user interface for www.sportsdirect.comEvaluation of a user interface for www.sportsdirect.com
Evaluation of a user interface for www.sportsdirect.comStefan Vasić
 
Ispitna pitanja iz_predmeta_upravljanje_projektom
Ispitna pitanja iz_predmeta_upravljanje_projektomIspitna pitanja iz_predmeta_upravljanje_projektom
Ispitna pitanja iz_predmeta_upravljanje_projektomlale021
 

Similar to T 2 zivotni ciklus i metodologije razvoja softvera (20)

IT6-L3.pptx
IT6-L3.pptxIT6-L3.pptx
IT6-L3.pptx
 
Projektovanje i implementacija SPPR
Projektovanje i implementacija SPPRProjektovanje i implementacija SPPR
Projektovanje i implementacija SPPR
 
12 predavanja informaticke tehnologije.pdf
12 predavanja   informaticke tehnologije.pdf12 predavanja   informaticke tehnologije.pdf
12 predavanja informaticke tehnologije.pdf
 
IT10-L5.pptx
IT10-L5.pptxIT10-L5.pptx
IT10-L5.pptx
 
ImplementacijaIS.pdf
ImplementacijaIS.pdfImplementacijaIS.pdf
ImplementacijaIS.pdf
 
Modeli razvoja IS.pdf
Modeli razvoja IS.pdfModeli razvoja IS.pdf
Modeli razvoja IS.pdf
 
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
 
3 1 standardi iso
3 1 standardi iso3 1 standardi iso
3 1 standardi iso
 
T 4 testiranje softvera i upravljanje kvalitetom
 T 4 testiranje softvera i upravljanje kvalitetom T 4 testiranje softvera i upravljanje kvalitetom
T 4 testiranje softvera i upravljanje kvalitetom
 
P2_Modeli_Procesa.pdf
P2_Modeli_Procesa.pdfP2_Modeli_Procesa.pdf
P2_Modeli_Procesa.pdf
 
ICK8-L1.pptx
ICK8-L1.pptxICK8-L1.pptx
ICK8-L1.pptx
 
20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanov
20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanov20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanov
20 kljucnih izmena_u_standardu_iso_cd_9001-2015_-_branislava_milovanov
 
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan BuhacSPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
 
Izbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-aIzbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-a
 
Menadzment odrzavanja
Menadzment odrzavanjaMenadzment odrzavanja
Menadzment odrzavanja
 
ICK2-L2.pptx
ICK2-L2.pptxICK2-L2.pptx
ICK2-L2.pptx
 
Starenje softvera
Starenje softveraStarenje softvera
Starenje softvera
 
IT10-L4.pptx
IT10-L4.pptxIT10-L4.pptx
IT10-L4.pptx
 
Evaluation of a user interface for www.sportsdirect.com
Evaluation of a user interface for www.sportsdirect.comEvaluation of a user interface for www.sportsdirect.com
Evaluation of a user interface for www.sportsdirect.com
 
Ispitna pitanja iz_predmeta_upravljanje_projektom
Ispitna pitanja iz_predmeta_upravljanje_projektomIspitna pitanja iz_predmeta_upravljanje_projektom
Ispitna pitanja iz_predmeta_upravljanje_projektom
 

More from Zoran Jeremic

Consuming RESTful Web services in PHP
Consuming RESTful Web services in PHPConsuming RESTful Web services in PHP
Consuming RESTful Web services in PHPZoran Jeremic
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHPZoran Jeremic
 
T 3.8 design paterni (c)
 T 3.8 design paterni (c) T 3.8 design paterni (c)
T 3.8 design paterni (c)Zoran Jeremic
 
T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnosti
 T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnosti T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnosti
T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnostiZoran Jeremic
 
T 3.6 design paterni (b)
 T 3.6 design paterni (b) T 3.6 design paterni (b)
T 3.6 design paterni (b)Zoran Jeremic
 
T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
 T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
T 3.5 modelovanje stanja koriscenjem uml statechart dijagramaZoran Jeremic
 
T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija
 T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija
T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcijaZoran Jeremic
 
T 3.3 design paterni (a)
 T 3.3 design paterni (a) T 3.3 design paterni (a)
T 3.3 design paterni (a)Zoran Jeremic
 
T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa
 T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa
T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasaZoran Jeremic
 
T 3.1 definisanje zahteva koriscenjem use case dijagrama
 T 3.1 definisanje zahteva koriscenjem use case dijagrama T 3.1 definisanje zahteva koriscenjem use case dijagrama
T 3.1 definisanje zahteva koriscenjem use case dijagramaZoran Jeremic
 
T 3 uvod u modelovanje koriscenjem uml-a
 T 3 uvod u modelovanje koriscenjem uml-a T 3 uvod u modelovanje koriscenjem uml-a
T 3 uvod u modelovanje koriscenjem uml-aZoran Jeremic
 
T 1 uvod u softversko inzenjerstvo
 T 1 uvod u softversko inzenjerstvo T 1 uvod u softversko inzenjerstvo
T 1 uvod u softversko inzenjerstvoZoran Jeremic
 
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITSSynergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITSZoran Jeremic
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsZoran Jeremic
 
Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...Zoran Jeremic
 
Semantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software PatternsSemantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software PatternsZoran Jeremic
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsZoran Jeremic
 
Project-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software PatternsProject-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software PatternsZoran Jeremic
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsZoran Jeremic
 

More from Zoran Jeremic (20)

Consuming RESTful Web services in PHP
Consuming RESTful Web services in PHPConsuming RESTful Web services in PHP
Consuming RESTful Web services in PHP
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHP
 
T 3.8 design paterni (c)
 T 3.8 design paterni (c) T 3.8 design paterni (c)
T 3.8 design paterni (c)
 
T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnosti
 T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnosti T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnosti
T 3.7 modelovanje ponasanja koriscenjem dijagrama aktivnosti
 
T 3.6 design paterni (b)
 T 3.6 design paterni (b) T 3.6 design paterni (b)
T 3.6 design paterni (b)
 
T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
 T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
 
T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija
 T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija
T 3.4 modelovanje ponasanja koriscenjem uml dijagrama interakcija
 
T 3.3 design paterni (a)
 T 3.3 design paterni (a) T 3.3 design paterni (a)
T 3.3 design paterni (a)
 
T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa
 T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa
T 3.2 definisanje strukture sistema koriscenjem uml dijagrama klasa
 
T 3.1 definisanje zahteva koriscenjem use case dijagrama
 T 3.1 definisanje zahteva koriscenjem use case dijagrama T 3.1 definisanje zahteva koriscenjem use case dijagrama
T 3.1 definisanje zahteva koriscenjem use case dijagrama
 
T 3 uvod u modelovanje koriscenjem uml-a
 T 3 uvod u modelovanje koriscenjem uml-a T 3 uvod u modelovanje koriscenjem uml-a
T 3 uvod u modelovanje koriscenjem uml-a
 
T 1 uvod u softversko inzenjerstvo
 T 1 uvod u softversko inzenjerstvo T 1 uvod u softversko inzenjerstvo
T 1 uvod u softversko inzenjerstvo
 
PhD Dissertation
PhD DissertationPhD Dissertation
PhD Dissertation
 
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITSSynergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
Synergy of Performance-Based Model and Cognitive Trait Model in DP-ITS
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software Patterns
 
Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...Project-based Collaborative Learning Environment with Context-aware Education...
Project-based Collaborative Learning Environment with Context-aware Education...
 
Semantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software PatternsSemantically-enabled Project-based Collaborative Learning of Software Patterns
Semantically-enabled Project-based Collaborative Learning of Software Patterns
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software Patterns
 
Project-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software PatternsProject-based Collaborative Learning of Software Patterns
Project-based Collaborative Learning of Software Patterns
 
A Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software PatternsA Semantic-rich Framework for Learning Software Patterns
A Semantic-rich Framework for Learning Software Patterns
 

Recently uploaded

Profesionalna_orijentacija / Srednja Škola Hipokrat
Profesionalna_orijentacija / Srednja Škola HipokratProfesionalna_orijentacija / Srednja Škola Hipokrat
Profesionalna_orijentacija / Srednja Škola HipokratNerkoJVG
 
prezentacija o uticaju energetskih napitaka na zdravlje dece
prezentacija o uticaju energetskih napitaka na zdravlje deceprezentacija o uticaju energetskih napitaka na zdravlje dece
prezentacija o uticaju energetskih napitaka na zdravlje deceSiniša Ćulafić
 
Razvoj samopouzdanja kod skolskog deteta
Razvoj samopouzdanja kod skolskog detetaRazvoj samopouzdanja kod skolskog deteta
Razvoj samopouzdanja kod skolskog detetaNerkoJVG
 
REŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile Opterecenja
REŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile OpterecenjaREŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile Opterecenja
REŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile OpterecenjaDanijeliriakaMcFlow1
 

Recently uploaded (11)

Profesionalna_orijentacija / Srednja Škola Hipokrat
Profesionalna_orijentacija / Srednja Škola HipokratProfesionalna_orijentacija / Srednja Škola Hipokrat
Profesionalna_orijentacija / Srednja Škola Hipokrat
 
OIR11-L4.pptx
OIR11-L4.pptxOIR11-L4.pptx
OIR11-L4.pptx
 
prezentacija o uticaju energetskih napitaka na zdravlje dece
prezentacija o uticaju energetskih napitaka na zdravlje deceprezentacija o uticaju energetskih napitaka na zdravlje dece
prezentacija o uticaju energetskih napitaka na zdravlje dece
 
OIR12-L1.pptx
OIR12-L1.pptxOIR12-L1.pptx
OIR12-L1.pptx
 
OIR11-L3.pptx
OIR11-L3.pptxOIR11-L3.pptx
OIR11-L3.pptx
 
OIR11-L2.pptx
OIR11-L2.pptxOIR11-L2.pptx
OIR11-L2.pptx
 
Razvoj samopouzdanja kod skolskog deteta
Razvoj samopouzdanja kod skolskog detetaRazvoj samopouzdanja kod skolskog deteta
Razvoj samopouzdanja kod skolskog deteta
 
OIR-V9.pptx
OIR-V9.pptxOIR-V9.pptx
OIR-V9.pptx
 
OIR12-L2.pptx
OIR12-L2.pptxOIR12-L2.pptx
OIR12-L2.pptx
 
OIR11-L1.pptx
OIR11-L1.pptxOIR11-L1.pptx
OIR11-L1.pptx
 
REŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile Opterecenja
REŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile OpterecenjaREŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile Opterecenja
REŠETKASTI NOSAČ Mehanika 1 Masinstvo Masinski elementi Sile Opterecenja
 

T 2 zivotni ciklus i metodologije razvoja softvera

  • 1. T-2: Životni ciklus i metodologije razvoja softvera dr Zoran Jeremić zoran.jeremic@gmail.com
  • 2. Sadržaj 1. Uvod 2. Životni ciklus razvoja softvera 3. Metodologije razvoja softvera T-2: Životni ciklus i metodologije razvoja softvera 2
  • 3. Uvod  Softversko inženjerstvo možemo definisati kao sistemski pristup razvoju, korišćenju, održavanju i odumiranju softvera.  Pored isporuke softvera, visok kvalitet, mali troškovi i kratak vremenski rok su dodatni ciljevi koje softverski inženjer mora da dostigne.  Kvalitet i produktivnost konačnog proizvoda zavise od veštine ljudi uključenih u projekat, procesa koji koriste za različite zadatke u projektu i alata koje koriste.  U softverskom inženjerstvu glavni fokus je dat na procesima.  Osnovni zadatak procesa je da pomogne ljudima da postignu veći kvalitet i produktivnost kroz specifikaciju zadataka koje treba uraditi i definisanjem načina na koji ih treba uraditi. T-2: Životni ciklus i metodologije razvoja softvera 3
  • 4. Životni ciklus razvoja softvera Šta je informacioni sistem (IS)? Hardver, softver, podaci, ljudi Sistem—Skup komponenti i procedure koji funkcionišu koje međusobno sarađuju zajedno da bi proizveli kako bi postigli zajednički cilj. kvalitetne informacije. U poslovanju se koriste različiti tipovi sistema T-2: Životni ciklus i metodologije razvoja softvera 4
  • 5. Životni ciklus razvoja softvera Šta je životni ciklus razvoja softvera?  (engl. System Development Life Cycle – SDLC)  Proces kroz koji stručnjaci različitih profila (analitičari, projektanti, inženjeri, programeri, ...) i korisnici informacionog sistema prave informacioni sistem. T-2: Životni ciklus i metodologije razvoja softvera 5
  • 6. Životni ciklus razvoja softvera  Koje su preporuke za razvoj sistema? Grupisanje zadataka po fazama (grupama aktivnosti) Uključivanje korisnika (bilo koje lice za koje se sistem implementira) Razvoj jasno definisanih standarda (procedure za koje kompanija očekuje da zaposleni treba da ih primenjuju) T-2: Životni ciklus i metodologije razvoja softvera 6
  • 7. Životni ciklus razvoja softvera Ko su učesnici u životnom ciklusu razvoja softvera? T-2: Životni ciklus i metodologije razvoja softvera 7
  • 8. Životni ciklus razvoja softvera Šta je analitičar sistema? Osoba odgovorna za dizajn i razvoj informacionog sistema Veza između korisnika i IT profesionalaca T-2: Životni ciklus i metodologije razvoja softvera 8
  • 9. Životni ciklus razvoja softvera Šta je projektni tim? Grupa ljudi koji rade na projektu od početka do kraja Sastoji se od korisnika, analitičara sistema i drugih IT profesionalaca Vođa projekta—jedan od članova tima koji upravlja i kontroliše budžetom projekta i vremenskim planom T-2: Životni ciklus i metodologije razvoja softvera 9
  • 10. Životni ciklus razvoja softvera Šta je izvodljivost? Zakonska izvodljivost Procena koliko će koristi Četiri testa kompanija izvodljivosti: Operaciona imati od izvodljivost razvoja sistema Izvodljivost Ekonomska vremenskog izvodljivost roka (poznata i kao Tehnička cost/benefit izvodljivost analiza) T-2: Životni ciklus i metodologije razvoja softvera 10
  • 11. Životni ciklus razvoja softvera Šta je dokumentacija? Kolekcija i rezime podataka i informacija Obuhvata izveštaje, dijagrame, programe i druge izveštaje T-2: Životni ciklus i metodologije razvoja softvera 11
  • 12. Životni ciklus razvoja softvera Šest tehnika za prikupljanje podataka i informacija?  Analiza dokumentacije  Posmatranje  Upitnici  Intervjui  Joint-application design (JAD) sesija  Istraživanje T-2: Životni ciklus i metodologije razvoja softvera 12
  • 13. Životni ciklus razvoja softvera Koje su faze životnog ciklusa razvoja softvera? Faza 2. Analiza  Izvođenje preliminarne analize Faza 1. Planiranje  Izvršenje detaljne analize: Faza 3. Dizajn  Pregled projektnih Proučavanje trenutnog sistema  Nabavka hardvera i zahteva Utvrđivanje korisničkih zahteva softvera, ukoliko je  Analiza prioriteta potrebno Predlog rešenja projektnih zahteva  Razvoj detalja  Dodeljivanje resursa sistema  Identifikovanje proj. razvojnog tima Faza 5. Podrška Faza 4. Implementacija  Revizije sistema  Razvoj programa,  Identifikovanje grešaka i  Instaliranje i testiranje novog unapređenja sistema  Praćenje performansi sistema  Obuka korisnika  Korišćenje novog sistema T-2: Životni ciklus i metodologije razvoja softvera 13
  • 14. Planiranje Koji su razlozi za kreiranje ili modifikovanje informacionog sistema? Rešavanje Unapređenje problema u postojećeg postojećem sistem sistemu Spoljašnji Konkurentnost uslovi može voditi do zahtevaju promene promenu T-2: Životni ciklus i metodologije razvoja softvera 14
  • 15. Planiranje Šta je zahtev za održavanjem sistema?  Formalni zahtev za novim ili modifikovanim informacionim sistemom  Takođe zvan projektni zahtev T-2: Životni ciklus i metodologije razvoja softvera 15
  • 16. Planiranje Šta je faza planiranja? Počinje kada upravni odbor primi projektni zahtev Upravni odbor— rukovodeće telo kompanije Funkcije odbora: Formiranje Recenzija i Određivanje razvojnog tima odobravanja prioriteta Dodeljivanje projekta za projektnih projektnim resursa svaki odobreni zahteva zahtevima projekat T-2: Životni ciklus i metodologije razvoja softvera
  • 17. Analiza Šta je faza analize? Izvršenje preliminarnog Izvršenje detaljne istraživanja, poznato i kao analize studija izvodljivosti T-2: Životni ciklus i metodologije razvoja softvera 17
  • 18. Analiza Šta je preliminarno istraživanje?  Utvrđivanje tačne prirode problema ili unapređenja i utvrđivanje da li je vredno truda  Zaključci se prezentuju u izveštaju o izvodljivosti, poznatom kao studija izvodljivosti T-2: Životni ciklus i metodologije razvoja softvera 18
  • 19. Analiza Šta je detaljna analiza? 1. Proučavanje kako trenutni sistem funkcioniše 2. Utvrđivanje šta korisnik želi, šta mu je potrebno i definisanje zahteva 3. Predlaganje rešenja Ponekad se zove logički dizajn T-2: Životni ciklus i metodologije razvoja softvera 19
  • 20. Analiza Šta je predlog projekta? Procenjuje izvodljivost svakog alternativnog rešenja Predstavlja se Predlaže upravnom najizvodljivije odboru, koji rešenje za donosi odluku o projekat tome kako će se sistem razvijati T-2: Životni ciklus i metodologije razvoja softvera 20
  • 21. Analiza Šta su moguća rešenja? Softver za horizontalno tržište—rađen za potrebe mnogih Kupovina paketskog softvera —softver kompanija dostupan na tržištu Softver za vertikalno tržište—dizajniran za Izrada sopstvenog korisničkog određenu industriju softvera—softver razvijen prema korisničkim zahtevima Outsource—spolja razvijen softver T-2: Životni ciklus i metodologije razvoja softvera 21
  • 22. Dizajn Šta je faza dizajna?  Definiše se arhitektura sistema (komponente, njihov interfejs i ponašanje). Izlaz: • dokument koji opisuje arhitekturu • plan implementacije • analiza osnovnih prioriteta • Plan testiranja Razvoj svih detalja novog ili modifikovanog informacionog sistema T-2: Životni ciklus i metodologije razvoja softvera 22
  • 23. Dizajn Šta je potrebno za nabavku novog softvera?  Identifikovanje svih hardverskih i softverskih zahteva novog ili modifikovanog sistema Razgovor sa drugim Pretraživanje Weba analitičarima sistema Čitanje štampanih i Razgovor sa online trgovačkih kompanijama za časopisa, novina, izradu softvera oglasa… T-2: Životni ciklus i metodologije razvoja softvera 23
  • 24. Dizajn Koja su tri osnovna dokumenta koja se koriste za pregled tehničkih specifikacija? Kupac Prodavac daje definiše Zahtev za izjašnjavanjem cene za proizvode navedene koje želi proizvode Prodavac bira Zahtev za predlog proizvod(e) koji ispunjavanju definisane zahteve i Manje formalni predlaže cene metod koji koristi standardnu formu za dobijanje informacije o Zahtev za informacijom proizvodu ili usluzi T-2: Životni ciklus i metodologije razvoja softvera 24
  • 25. Dizajn Kako analitičari sistema testiraju softverski proizvod?  Proučavanje referenci prodavca  Razgovor sa trenutnim korisnicima proizvoda  Demonstracije proizvoda  Korišćenje trial verzija softvera  Merenje performansi korišćenjem benchmark testova T-2: Životni ciklus i metodologije razvoja softvera 25
  • 26. Dizajn Šta je detaljni dizajn? Detaljna specifikacija dizajna za komponente u predloženom rešenju Obuhvata nekoliko aktivnosti Dizajn baze Dizajn ulaza i izlaza Dizajn programa podataka T-2: Životni ciklus i metodologije razvoja softvera 26
  • 27. Dizajn Šta je mockup?  Funkcionalnosti sistema se predstavljaju crtanjem elemenata korisničkog interfejsa.  Primer izgleda ekrana predstavljen korišćenjem alata za kreiranje mockup-a T-2: Životni ciklus i metodologije razvoja 27 http://www.balsamiq.com softvera
  • 28. Implementacija Šta je prototip?  Nekompletna verzija softvera koji se razvija.  Obično simulira samo nekoliko aspekata funkcionalnosti eventualnog softvera i može biti potpuno drugačiji od kranjeg proizvoda.  Omogućava korisnicima softvera da evaluiraju ono što su developeri predložili kao rešenje. Radni model za predloženi sistem Izrada prototipa previše rano može dovesti do problema T-2: Životni ciklus i metodologije razvoja softvera 28
  • 29. Implementacija Šta je computer-aided software engineering (CASE)?  Softverski alati dizajnirani da podrže aktivnosti životnog ciklusa razvoja softvera T-2: Životni ciklus i metodologije razvoja softvera 29
  • 30. Implementacija Šta je faza implementacije?  Cilj je da se konstruiše ili izgradi novi ili modifikovani sistem a zatim isporuči korisnicima Prelazak na novi sistem Obuka korisnika Instalacija i testiranje novog sistema Razvoj programa T-2: Životni ciklus i metodologije razvoja softvera 30
  • 31. Implementacija Koja su tri tipa testova koje izvršava projektni tim? Testiranje Testiranje jedinice sistema Provera da li svaka Provera da li svi pojedinačna programi u aplikaciji komponenta rade zajedno funkcioniše Testiranje integracije Provera da li aplikacija radi sa drugim aplikacijama T-2: Životni ciklus i metodologije razvoja softvera 31
  • 32. Podrška Šta je obuka?  Pokazivanje korisnicima kako će koristiti hardver i softver u sistemu T-2: Životni ciklus i metodologije razvoja softvera 32
  • 33. Podrška Šta je faza podrške?  Obezbeđuje tekuću pomoć nakon implementacije sistema Upravljanje analizom sistema nakon implementacije—vođenje sastanaka da bi se utvrdilo da li se informacioni sistem ponaša prema očekivanjima Identifikovanje grešaka Identifikovanje potencijalnih unapređenja Praćenje performansi sistema T-2: Životni ciklus i metodologije razvoja softvera 33
  • 34. Modeli softverskih procesa  Šta je model procesa? Uopšteno: razvojni plan koji definiše opšti proces razvoja softverskog proizvoda Preciznije: Definicija koja odredjuje koje aktivnosti se izvršavaju, od strane kojih osoba u kojim ulogama; kojim redosledom će aktivnosti biti izvršavane, koji proizvodi će biti razvijani i kako će se procenjivati njihov kvalitet. T-2: Životni ciklus i metodologije razvoja softvera 34
  • 35. Pregled postojećih modela softverskih procesa Metodologije razvoja softvera T-2: Životni ciklus i metodologije razvoja softvera 35
  • 36. Metodologije razvoja softvera  Metodologija je formalizovani proces ili skup iskustava za kreiranje softvera  Skup pravila koje razvojni tim prati  Skup konvencija koje je organizacija odlučila da prati  Sistematičan, inženjerski pristup za organizovanje softverskih projekata T-2: Životni ciklus i metodologije razvoja softvera 36
  • 37. Metodologije razvoja razvoja  Među najpoznatije metodologije spadaju:  Waterfall model  Waterfall model sa prototipom  Metodologija za paralelni razvoj  V model  Inkrementalni model  Spiralni model  Rapid Application Development (RAD)  Rational Unified Process  Extreme Programming (XP)  Scrum metodologija T-2: Životni ciklus i metodologije razvoja softvera 37
  • 38. Build and Fix model  Većina softvera je razvijena korišćenjem ovog modela. U suštini ovde nema modela, specifikacije, ni dizajna. T-2: Životni ciklus i metodologije razvoja softvera 38
  • 39. Waterfall model T-2: Životni ciklus i metodologije razvoja softvera 39
  • 40. Waterfall model Jedan od najstarijih modela Dobar za rešavanje potpuno jasnih problema bez izmena u zahtevima Jednostavan i razumljiv za korisnika Predstavlja  Vrlo apstraktan prikaz razvojnog procesa  Niz aktivnosti Jasne granice između faza sa izlaznim produktima T-2: Životni ciklus i metodologije razvoja softvera 40
  • 41. Waterfall model  Naziva se još i linearno-sekvencijalni model.  Svaka faza mora biti u potpunosti završena pre nego što započne sledeća faza.  Na kraju svake faze, vrši se analiza da bi se utvrdilo da li je projekat na dobrom putu i da li se treba nastaviti ili obustaviti.  Ova analiza se naziva završna analiza faze. T-2: Životni ciklus i metodologije razvoja softvera 41
  • 42. Waterfall model  Tradicionalni pristup razvoju: Definisanje zahteva Dizajn softvera Implementacija (kodiranje) Verifikacija (testiranje) Korišćenje (održavanje) T-2: Životni ciklus i metodologije razvoja softvera 42
  • 43. Waterfall model  Prednosti:  Svaka faza ima specifične izlazne produkte i proces analize.  U jednom trenutku radi se samo na jednoj fazi.  Dobar je za male projekte kod kojih su potpuno definisani i jasni zahtevi.  Potkrepljuje stav “definiši pre dizajna” i “dizajniraj pre implementacije”. T-2: Životni ciklus i metodologije razvoja softvera 43
  • 44. Waterfall model  Nedostaci:  Promena opsega u toku životnog ciklusa može ubiti projekat.  Ne postoji radna verzija softvera sve do kraja životnog ciklusa.  Velika je količina rizika i neizvesnosti.  Nije pogodan za složene i objektno-orjentisane projekte.  Nije pogodan za dugotrajne i tekuće projekte.  Nije dobar za projekte kod kojih postoji srednji ili veliki rizik od promene zahteva. T-2: Životni ciklus i metodologije razvoja softvera 44
  • 45. Waterfall model  Kada koristiti ovaj model?  Ovakav model se koristi kod projekata koji su jasni i nisu podložni promenama u toku razvoja (npr. projekti odbrane)  Može se koristiti za projekte migracije, kod kojih će zahtevi ostati isti ali se menja platforma ili jezik.  Takođe se može koristiti za projekte gde sami sponzori vrše testiranje, s obzirom da do završetka projekta nema isporuke. T-2: Životni ciklus i metodologije razvoja softvera 45
  • 46. Waterfall model sa prototipom  Prototip je delimično razvijen proizvod.  Prototip pomaže  Dizajnerima da procene alternativne strategije dizajna (prototip dizajna)  Korisnicima da razumeju kako će izgledati sistem (prototip korisničkog interfejsa)  Prototip je koristan za verifikaciju i validaciju T-2: Životni ciklus i metodologije razvoja softvera 46
  • 47. Waterfall model sa prototipom  Može se koristiti kod scenarija gde ne postoje detaljne informacije u vezi ulaza u sistem, potreba za obradom i izlazom.  Omogućava klijentu da eksperimentiše sa radnom verzijom produkta.  Razvojni proces se nastavlja samo ako je klijent zadovoljan funkcionisanjem prototipa.  U toku određenih faza developer utvrđuje specifikaciju klijentovih stvarnih potreba. T-2: Životni ciklus i metodologije razvoja softvera 47
  • 48. Waterfall model sa prototipom T-2: Životni ciklus i metodologije razvoja softvera 48
  • 49. Waterfall model sa prototipom  Prednosti:  Dizajner softvera i programer mogu dobiti povratne informacije od korisnika u ranim fazama projekta.  Klijent i izvođač radova mogu uporediti da li softver ispunjava specifikacije, prema kojima je softver napravljen.  Takođe omogućava softverskom inženjeru određeni uvid u tačnost inicijalnih projektnih predračuna i da li se mogu ispuniti predloženi vremenski rokovi. T-2: Životni ciklus i metodologije razvoja softvera 49
  • 50. Waterfall model sa prototipom  Nedostaci:  Klijenti često očekuju da će nekoliko minimalnih izmena na prototipu zadovoljiti njihove potrebe, ne shvatajući da se u žurbi izgradnje prototipa nije vodilo računa o celokupnom kvalitetu softvera .  Programeri mogu izgubiti fokus o stvarnoj nameni prototipa i kompromitovati kvalitet proizvoda, npr. mogu primeniti neke neefikasne algoritme ili neodgovarajuće programske jezike korišćene u razvoju prototipa (uglavnom posledica lenjosti ili bliskosti sa jednostavnijim metodama)  Prototip će teško biti prihvaćen na sudu u slučajevima kada se klijent ne slaže da je developer ispunio svoje obaveze. T-2: Životni ciklus i metodologije razvoja softvera 50
  • 51. Waterfall model sa prototipom  Kada koristiti ovaj model?  Prototipovi su vrlo efikasni u analizi i dizajnu online sistema.  Sistemi sa malo interakcije korisnika i sistema, npr sistemi koji uglavnom vrše kalkulacije, imaju malo koristi od ovog modela  Ponekada implementacija sistemskih funkcija može biti veoma složena a potencijalne prednosti prototipova mogu biti veoma male.  Prototip je veoma dobar za dizajn dobrog human-computer interfejsa.  Jedna od najproduktivnijih upotreba prototipova do sada je bila kao alata za iterativno inženjerstvo korisničkih zahteva i dizajn korisničkog interfejsa. T-2: Životni ciklus i metodologije razvoja softvera 51
  • 52. Metodologija za paralelni razvoj  Metodologija je slična Waterfall modelu  Projekat je podeljen na manje projekte i svaka faza se izvršava posebno za svaki od njih.  Razvojni proces se izvršava konkurentno i odvojeno za svaki od potprojekata. T-2: Životni ciklus i metodologije razvoja softvera 52
  • 53. Metodologija za paralelni razvoj T-2: Životni ciklus i metodologije razvoja 53 softvera
  • 54. Metodologija za paralelni razvoj  Prednosti:  Smanjuje vreme razvoja  Manje su šanse da su potrebne prepravke  Nedostaci:  I dalje se koriste papirna dokumenta  Podprojekte je ponekada teško integrisati T-2: Životni ciklus i metodologije razvoja softvera 54
  • 55. V model  Mnogo je veći značaj aktivnosti testiranja nego kod Waterfall modela. Procedure i uslovi testiranja se razvijaju u ranim fazama životnog ciklusa pre implementacije.  Životni ciklus počinje zahtevima kao i kod waterfall modela.  Pre početka razvoja kreira se plan testiranja prihvatljivosti sistema koji se fokusira na zadovoljenju funkcionalnosti definisanih zahtevima.  U ranim fazama dizajna definiše se arhitektura sistema i dizajn. Plan testiranja integracija se takode definiše u ovoj fazi kako bi se utvrdilo da svi delovi funkcionišu zajedno.  U kasnijim fazama dizajna se dizajniraju komponente softvera i testovi pojedinačnih jedinica.  U fazi implementacije se realizuje kodiranje. Po završetku kodiranja, ranije planirani testovi se izvršavaju. T-2: Životni ciklus i metodologije razvoja softvera 55
  • 56. V model T-2: Životni ciklus i metodologije razvoja softvera 56
  • 57. V model  Prednosti  Svaka faza ima specifične produkte.  Veće su šanse za uspeh od Waterfall modela zbog razvoja planova testova u ranim fazama životnog ciklusa.  U poređenju sa waterfall modelom vreme realizacije je kraće do 50%.  Daje dobre rezultate kod malih projekata čije zahteve je lako razumeti.  Iskorišćenje resursa je veliko. T-2: Životni ciklus i metodologije razvoja softvera 57
  • 58. V model  Nedostaci  Vrlo je rigidan, kao i waterfall model.  Jako teško i skupo je postići malu fleksibilnost  Softver se razvija tokom faze implementacije, pa nema ranih prototipova.  Model ne obezbeđuje rešenja problema nađenih u fazi testiranja. T-2: Životni ciklus i metodologije razvoja softvera 58
  • 59. V model  Kada koristiti ovaj model?  Kada vreme i troškovi predstavljaju ograničenje projekta.  Slično kao i kod Waterfall modela, ali aktivnosti testiranja koje počinju veoma rano, doprinose smanjenju vremena razvoja i troškova projekta. T-2: Životni ciklus i metodologije razvoja softvera 59
  • 60. Inkrementalni model  Kombinuje elemente liearnog sekvencijalnog modela sa iterativnom filozofijom prototipova.  Svaka linearna sekvenca isporučuje uvećan softver.  Kod ovog modela, prvi inkrement je često osnovni proizvod, dok se u ostalim inkrementima dodaju dodatne funkcionalnosti. T-2: Životni ciklus i metodologije razvoja softvera 60
  • 61. Inkrementalni model T-2: Životni ciklus i metodologije razvoja softvera 61
  • 62. Inkrementalni model  Nedostaci  Sistem mora imati “incremente”.  Incrementi moraju biti od značaja za korisnika.  Sveukupno, duže (značajno duže) vreme razvoja.  Biznis procedura se menja sa svakim incrementom. T-2: Životni ciklus i metodologije razvoja softvera 62
  • 63. Spiralni model  Sličan je inkrementalnom modelu, sa većim naglaskom na analizi rizika.  Ima četiri faze: planiranje, analiza rizika, inženjerstvo i evaluacija. Projekat više puta prolazi ove faze u iteracijama.  Zahtevi se analiziraju u fazi planiranja. U fazi analize rizika identifikuju se rizici i alternativna rešenja. Prototip se kreira na kraju faze analize rizika.  Softver se razvija u inženjerskoj fazi a na kraju faze se realizuje testiranje. Faza evaluacije omogućava korisniku da evaluira projekat pre nego što se pređe na narednu spiralu.  U spiralnom modelu ugaona komponenta predstavlja progres, a radijus spirale predstavlja sveukupne troškove. T-2: Životni ciklus i metodologije razvoja softvera 63
  • 64. Spiralni model T-2: Životni ciklus i metodologije razvoja softvera 64
  • 65. Spiralni model  Prednosti:  Visok je stepen analize rizika  Dobar je za velike i kritične projekte.  Softver se proizvodi u ranim fazama životnog ciklusa. T-2: Životni ciklus i metodologije razvoja softvera 65
  • 66. Spiralni model  Nedostaci:  Može biti veoma skup model.  Analiza rizika zahteva visok stepen ekspertize.  Uspeh projekta je veoma zavistan od faze analize rizika.  Nije dobar za male projekte. T-2: Životni ciklus i metodologije razvoja softvera 66
  • 67. Spiralni model  Kada se koristi?  Za aplikacije koje imaju složeni grafički interfejs prema korisniku i više-funkcionalni deo. Funkcionalnosi se mogu dodavati kroz faze, a grafički interfejs u nekoj od finalnih faza.  Često se koristi u velikim projektima.  US vojska je usvojila ovaj model za svoj program budućih borbenih sistema. T-2: Životni ciklus i metodologije razvoja softvera 67
  • 68. Rapid application development (RAD)  Inkrementalni proces razvoja softvera koji naglašava veoma kratak razvojni ciklus  Predstavlja “high-speed” adaptaciju linearnog sekvencijalnog modela u kome je brzi razvoj postignut korišćenjem konstrukcije zasnovane na komponentama.  Ukoliko su zahtevi jasni omogućava razvoj funkcionalnog sistema u kratkom periodu (npr. 60-90 dana) T-2: Životni ciklus i metodologije razvoja softvera 68
  • 69. Rapid application development (RAD)  Naglašava sledeće faze:  Poslovno modelovanje – tokovi informacija između poslovnih funkcija  Modelovanje podataka – skupovi podataka potrebnih za podršku poslovanju  Modelovanje procesa – skupovi podataka se transformišu da bi ostvarili tokove informacije neophodne za implementaciju poslovne funkcije.  Generisanje aplikacije – upotreba postojećih programskih komponenti (kada je moguće)  Testiranje – s obzirom da se naglašava upotreba postojećih komponenti, mnoge od njih su već testirane. T-2: Životni ciklus i metodologije razvoja softvera 69
  • 70. Rapid application development (RAD) T-2: Životni ciklus i metodologije razvoja softvera 70
  • 71. Rapid application development (RAD)  Nedostaci:  Za velike ali skalabilne projekte, RAD zahteva dovoljno ljudskih resursa koji bi kreirali odgovarajući broj RAD timova.  RAD zahteva da se developeri i korisnici pridržavaju RAD aktivnosti kako bi sistem završili na vreme u mnogo kraćem vremenskom roku.  Nisu sve aplikacije pogodne za RAD. Ako sistem ne može biti modularizovan na odgovarajući način, kreiranje komponenti potrebnih za RAD može biti problematično  RAD nije pogodan kada su tehnički rizici veliki. T-2: Životni ciklus i metodologije razvoja softvera 71
  • 72. AGILNE METODOLOGIJE T-2: Životni ciklus i metodologije razvoja 72 softvera
  • 73. Agilne metodologije  Uključuju iteracije sa kratkim vremenskim intervalima.  Razdvajaju zadatke na male inkremente sa minimalnim planiranjem.  Mali timovi rade zajedno sa stakeholderima da definišu brze prototipove, dokaze koncepata i druga vizuelna sredstva za opisivanje problema koji se rešava.  Tim definiše zahteve za iteraciju, razvija kod, definiše i izvršava integrisane testove a korisnici verifikuju rezultate.  Verifikacija se izvršava mnogo ranije u razvojnom procesu nego kod Waterfall modela T-2: Životni ciklus i metodologije razvoja softvera 73
  • 74. Agilne metodologije  Neki od osnovnih principa agilnih metodologija su:  Zadovoljstvo klijenta brzom, konstantnom isporukom korisnog softvera.  Radni softver se često isporučuje (u pitanju su nedelje a ne meseci).  Radni softver je principijelna jedinica napredka.  Čak i kasne izmene zahteva su dobrodošle.  Tesna, dnevna kooperacija između poslovnih ljudi i developera.  Konverzacija licem u lice je najbolja forma komunikacije.  Projekti se zasnivaju na angažovanju motivisanih individua, kojima treba verovati.  Jednostavnost .  Samo-organizovani mali timovi (5-9 ljudi).  Konstantno prilagođavanje ipromenljivim softvera T-2: Životni ciklus metodologije razvoja okolnostima. 74
  • 75. Agilne metodologije  Neke od najpoznatijih metodologija agilnog razvoja softvera:  Agile Modeling  Agile Unified Process (AUP)  Agile Data Method  Dynamic System Development Method (DSDM)  Essential Unified Process (EssUP)  Extreme programming (XP)  Feature Driven Development (FDD)  Getting Real  Open Unified Process (OpenUP)  Scrum  Lean software development T-2: Životni ciklus i metodologije razvoja softvera 75
  • 76. Extreme programming (XP)  Najčešće korišćena i najpoznatija agilna metodologija  Zasnovana je na jednostavnosti, komunikaciji, feedbacku i hrabrosti.  Timovi koriste jednostavnu formu planiranja i praćenja kako bi odlučili šta sledeće da rade.  Timovi kreiraju softver u seriji malih, potpuno integrisanih izdanja koja su prošla sve testove koje je korisnik definisao.  Predstavnik korisnika je deo tima. T-2: Životni ciklus i metodologije razvoja softvera 76
  • 77. Extreme programming (XP)  Zasnovana je na 4 ključne aktivnosti: planiranje, upravljanje, dizajniranje i kodiranje  Planiranje  Identifikuju se korisnički zahtevi.  Planiranjem verzija kreira se raspored verzija.  Često se prave mala izdanja.  Projekt je podeljen u iteracije.  Planiranje iteracije započinje svaku iteraciju. T-2: Životni ciklus i metodologije razvoja softvera 77
  • 78. Extreme programming (XP)  Upravljanje  Daje timu lokalni otvoreni radni prostor.  Određuje održiv korak.  Svaki dan započinje početnim sastankom.  Prati se brzina projekta.  Ljudi se razmeštaju.  Popravlja se XP kada dođe do problema. T-2: Životni ciklus i metodologije razvoja softvera 78
  • 79. Extreme programming (XP) Class –  Dizajniranje Responsibility -  Jednostavnost. Collaboration  Korišćenje CRC kartica za dizajn sesija.  Kreiranje klinastih rešenja da bi se smanjio rizik.  Funkcionalnosti se ne dodaju u ranim fazama.  Ponovno planiranje kada god i gde god je potrebno. T-2: Životni ciklus i metodologije razvoja softvera 79
  • 80. Extreme programming (XP)  Kodiranje  Korisnik je uvek dostupan.  Kod se mora pisati tako da bude u skladu sa standardima.  Kodira se test jedinice prvo.  Sav produkcioni kod je programiran u paru.  Samo jedan par integriše kod u jednom trenutku.  Česte integracije.  Određen je računar za integraciju.  Postoji kolektivno vlasništvo. T-2: Životni ciklus i metodologije razvoja softvera 80
  • 81. Extreme programming (XP)  Testiranje  Sav kod mora imati testove jedinica.  Sav kod mora proći sve testove jedinica pre nego što se može staviti u upotrebu.  Kada se pronađe bag kreiraju se testovi.  Testovi prihvatljivosti se često izvršavaju a rezultati se objavljuju. T-2: Životni ciklus i metodologije razvoja softvera 81