SlideShare ist ein Scribd-Unternehmen logo
1 von 76
Downloaden Sie, um offline zu lesen
Uvod u softversko inženjerstvo



                dr Zoran Jeremić
                 zoran.jeremic@gmail.com




                  T-1: Uvod u softversko inženjerstvo   1
Sadržaj



          1. Osnovne informacije o predmetu


          2. Softver i njegov značaj


          3.Softversko inženjerstvo

          4. Osnovni pojmovi i osnovne paradigme




            T-1: Uvod u softversko inženjerstvo   2
Informacije o predmetu


 Naziv: Softversko inženjerstvo
 ESPB: 6
 Uslov: Uvod u objektno programiranje
 Semestar: 5
 Predavanja: 2
 Laboratorijske vežbe: 2
 Auditorne vežbe: 1
 Broj časova aktivne nastave: 75


                       T-1: Uvod u softversko inženjerstvo   3
Cilj predmeta


 Upoznavanje sa savremenim softverskim inženjerstvom,
  teorijom i praktičnim postupcima u procesu razvoja
  softvera u svim fazama njegovog životnog ciklusa.
 Ishod predmeta:
    Studenti će biti osposobljeni da projektuju jednostavne
     softverske sisteme na bazi poznavanja rada alata koji će biti
     prikazani tokom kursa.




                         T-1: Uvod u softversko inženjerstvo         4
Sadržaj predmeta


1. Uvod u softversko inženjerstvo.
2. Metodologije razvoja softvera.
3. Životni ciklus razvoja sofvera.




                      T-1: Uvod u softversko inženjerstvo   5
Sadržaj predmeta (2)


4. Uvod u modelovanje korišćenjem ULM-a.
5. Definisanje zahteva korišćenjem UML Use Case
   dijagrama.
                                                                     Perform Sale




                                                                     Register Client
                                                Sales Person




                                                                       Perform
                                                                     Business Sale



                                                     Institutional
                                                     Sales Person
                                                                      Cancel Sale



                   T-1: Uvod u softversko inženjerstvo                                 6
                                        Sales Manager
Sadržaj predmeta (3)


6. Definisanje strukture korišćenjem UML dijagrama
   klasa. Realni domen                Domen modela


                                              autobus

                                  modeluje
                                                          vozilo


                                              automobil


                              modeluje




                                                solja

                          modeluje




                    T-1: Uvod u softversko inženjerstvo            7
Sadržaj predmeta (4)


7. Modelovanje ponašanja korišćenjem UML dijagrama
   interakcija.




                   T-1: Uvod u softversko inženjerstvo   8
Sadržaj predmeta (5)

8. Modelovanje stanja korišćenjem UML statechart
   dijagrama.

                            Marital


                               single



                             married



                             divorced




                    T-1: Uvod u softversko inženjerstvo   9
Sadržaj predmeta (6)

9. Dijagrami aktivnosti.
               Camera Behavior                          Safety Controller Behavior



                                                                    Side Object
                      Check Objects                                  Detected
                       in Camera


                             Is object
               [no]          Detected?                                    Detection data




                           [yes]
                                                                          Alarm Deciding

                       Side Object
                        Detected                                                   Side?

                                                                 [left]               [right]


                                                          Left Alarm                  Right Alarm




                           T-1: Uvod u softversko inženjerstvo                                      10
Sadržaj predmeta (7)

10. Pregled CASE alata za UML modelovanje.
11. Dizajn paterni.
12. Testiranje softvera i upravljanje kvalitetom.
13. Evolucija softvera i održavanje.




                      T-1: Uvod u softversko inženjerstvo   11
Praktična nastava

 U skladu sa temom obrađenom u okviru predavanja.
 Demonstracija praktičnog razvoja softverskih sistema
  tehnikama predstavljenim na predavanjima, korišćenjem
  odabranih CASE alata.




      Program predmeta usklađen sa preporukama IEEE/ACM
      Computing Curriculum:CE2004 Computer Engineering Body of
      Knowledge: CE-SWE 0-9.



                       T-1: Uvod u softversko inženjerstvo       12
Literatura

       Osnovna:
         prezentacije sa predavanja
         UML vodič za korisnike, Booch, Rumbaugh, Jacobson, 506 strana
          (ili bilo koje drugo uputstvo za UML)
       Dodatna:
         I. Sommerville, Software Engineering, 6th ed., Addison-Wesley,
          Reading, MA, 2000. (ISBN: 020139815X)
         R.S. Pressman, Software Engineering: A Practitioner's Approach,
          McGraw Hill, NY, 5th ed., 2001. (ISBN: 0072496681)
         M. Fowler, K. Scott, UML Distilled: A Brief Guide to the Standard
          Object Modeling Language, 2nd ed., Addison-Wesley, Reading,
          MA, 1999. (ISBN: 020165783X)
         G. Booch, Object-Oriented Analysis and Design with Applications,
          2nd ed., Addison-Wesley, Reading, MA, 1994. (ISBN:
          0805353402)       T-1: Uvod u softversko inženjerstvo          13
Ocena znanja



Predispitne obaveze        Poena            Završni ispit                 Poena

Praktična       nastava
                                            2 kolokvijuma
(vežbe)                         30                                         50
                                            ili pismeni ispit iz 2 dela
-2 zadatka x 15 bodova
Aktivnost i angažovanje
                                20
-2x10 bodova




                          T-1: Uvod u softversko inženjerstvo                     14
Studentski zadaci


 2 zadatka koji se realizuju radom po grupama
 Svaki zadatak nosi po 25% od konačne ocene:
    10% za učešće u aktivnostima na dodeljenom zadatku
    15% za izvršenje dodeljenih aktivnosti
 Zadaci predstavljaju softverske probleme koji prate
  predavanja i dodeljuju se studentima u toku semestra na
  vežbama u zakazanim terminima.
 Student na raspolaganju ima 3 sedmice predviđene za
  ispunjenje datih obaveza, nakon čega nije moguće
  predati zadatak.

                       T-1: Uvod u softversko inženjerstvo   15
Studentski zadaci


 Da bi se u potpunosti realizovao zadatak student treba
  da izvrši 3 aktivnosti:
    Brainstorming (prezentovanje ideje) :
       • Student iznosi svoju ideju za rešavanje problema
       • Student komentariše ideje svojih kolega
       • Student ocenjuje ideje svojih kolega
    Ocenu ove aktivnosti čine:
       • Ocene koje je student dobio od svojih kolega,
       • Ocene koju je student dobio od nastavnika,
       • Aktivnosti i angažovanju studenta na realizaciji zadatka, kritičkom
         osvrtu na ideje svojih kolega,
       • Ocene koju je student dobio za procenu ideja svojih kolega,


                           T-1: Uvod u softversko inženjerstvo                 16
Studentski zadaci


    Predlaganje sopstvenog rešenja
      • Student koristi ArgoUML alat da kreira sopstveni UML dijagram koji
        predstavlja rešenje problema.
    Procena rešenja kolega
      • Student vrši procenu rešenja najmanje četvorice kolega na osnovu
        definisanih kriterijuma,
    Ocenu ove aktivnosti čine:
      • Procene rešenja koje su dali drugi studenti,
      • Procena rešenja koju je dao nastavnik,
      • Aktivnost i angažovanje koje je student ispoljio prilikom izvršenja
        aktivnosti,
      • Kvalitet procene koju je student izvršio.



                          T-1: Uvod u softversko inženjerstvo                 17
Studentski zadaci


 Pored opisanih zadataka, student je u obavezi da popuni
  3 dodatne ankete koje se odnose na realizovane
  aktivnosti.
 Prva anketa se popunjava pre podele zadataka, a zatim
  po jedna anketa nakon svakog zadatka.




                    T-1: Uvod u softversko inženjerstvo   18
2010/2011


 jan-okt 2011
    Prijavljeno 67 studenta
    Položilo 39 studenta (58,21%)
    Struktura ocena


         6       7         8                9                10
         0       7         13               8                11
    Prosečna ocena 8,59




                       T-1: Uvod u softversko inženjerstvo        19
2009/2010


 jan-okt 2010
    Prijavljeno 73 studenta
    Položilo 44 studenta (60,27%)
    Struktura ocena


         6       7         8                9                10
         3       7         10               8                16
    Prosečna ocena 8,61




                       T-1: Uvod u softversko inženjerstvo        20
Registracija studenata


 Obavezna za sve studente (rok 30.10.2011)
    http://viser.learningdesignpatterns.org




                         T-1: Uvod u softversko inženjerstvo   21
T-1: Uvod u softversko inženjerstvo   22
Softver i softversko inženjerstvo



        Osnovni pojmovi i paradigme




                  T-1: Uvod u softversko inženjerstvo   23
Motivacija

 Značaj softvera



      Softver ima ogroman uticaj na bilo
              koji aspekt društva




                    T-1: Uvod u softversko inženjerstvo   24
Softver je svuda




                   25
Softver je svuda




                   T-1: Uvod u softversko inženjerstvo   26
Softver je svuda




                   T-1: Uvod u softversko inženjerstvo   27
Neki popularni


 Socijalna mreža nastala 2004. godine
 Mark Zuckerberg (Harvard)
 Više od 500 miliona aktivnih korisnika
 50% aktivno svaki dan
 Najbrže rastuća demografska grupa su oni od 35 i više godina
 Više od milion software developera i preduzimača.
 Više od 350,000 aktivnih aplikacija na Facebook platformi.
 Više od 250 aplikacija sa više od milion mesečno aktivnih korisnika.
 Blokiran u nekoliko zemalja: Pakistan, Sirija, Kina, Vijetnam, Iran i
  S.Koreja.

                           T-1: Uvod u softversko inženjerstvo            28
Neki popularni

 Preko 78 miliona videa ukupno
 Preko 6 miliona videa mesečno.
 Preko 200,000 videa dnevno.
 45 terabajta prostora.
 100 miliona posetilaca mesečno.
 A sve je počelo kada su 3 momka 2005. godine napravili softver zbog
  problema koji su imali da međusobno razmene video fajlove sa žurke.
 Novembra 2005 YouTube je zvanično započeo sa radom, a oktobra 2006.
  godine Google ga je otkupio za 1,65 milijardi $.
 Kritike na račun: distribucije copyright materijala, zaštite privatnosti,
  kontraverznih sadržaja
 U nekim zemljama zabranjen pristup

                              T-1: Uvod u softversko inženjerstvo             29
Trenutno stanje civilizacije




                  T-1: Uvod u softversko inženjerstvo   30
Značaj softvera u ljudskim životima

• Milenijumski Bug (Y2K) !
  – Upozorenje o Y2K dekadu pre
     2000.
  – Budžet Klintonove vlade za Y2K
     oko 3.4 milijarde USD




                                      31
Značaj softvera

                             Postao je
                            pokretačka
                              snaga




     Ključna razlika                              Motor koji
        modernih              Značaj            pokreće proces
       proizvoda i           softvera             donošenja
         usluga                                     odluka




                        Osnova za moderna
                       nauučna istraživanja i
                        rešavanja problema

                                                                 32
Značaj softvera

 Ugnježden je u sisteme svih vrsta: transportne,
  medicinske, telekomunikacione, vojne industrijske
  procese, održavanje, kancelarijske proizvode,... Lista je
  skoro beskonačna.
 Softver je praktično neizbežan u modernom svetu.
 Ulaskom u 21 vek, polako će postati pokretač novih
  napredaka u svim oblastima od osnovnog obrazovanja
  do genetskog inženjerstva.




                      T-1: Uvod u softversko inženjerstvo     33
Vrste softvera


 Desktop aplikacije
    Aplikacije koje se izršavaju na lokalnim računarima. Obuhvataju
     sve neophodne fukncionalnosti i ne moraju biti povezani na
     računarsku mrežu ili Internet.
 Interaktivne aplikacije
    Aplikacije koje se izvršavaju na udaljenom računaru a kojima
     korisnici pristupaju sa svoji PC računara ili terminala. Ove
     aplikacije obuhvataju i web aplikacije kao što su komercijalne
     aplikacije.
 Ugnježdeni kontrolni sistemi
    Kontrolni sistemi koji kontrolišu i upravljaju hardverskim
     uređajima. Brojčano, najviše je ovakvih tipova aplikacija.

                         T-1: Uvod u softversko inženjerstvo          34
Vrste softvera


 Sistemi za serijsku obradu
    Poslovni sistemi namenjeni za obradu podataka u velikim
     serijama. Obrađuju veliki količinu ulaznih podataka i kreiraju
     izlaz.
 Aplikacije za zabavu
    Softver namenjen prvenstveno ličnoj upotrebi i zabavi korisnika.
 Sistemi za modelovanje i simulacije
    Ovo su sistemi koje su razvili naučnici i inženjeri za modelovanje
     fizičkih procesa i situacija.




                         T-1: Uvod u softversko inženjerstvo          35
Problemi u razvoju softvera




                  T-1: Uvod u softversko inženjerstvo   36
Najčešći problemi

 Finalni softverski proizvod ne ispunjava očekivanja
  korisnika.
 Teško ga je proširiti i unaprediti: Ukoliko kasnije želite da
  dodate novu funkcionalnost što je skoro nemoguća
  misija.
 Loša dokumentacija.
 Loš kvalitet: česte greške, komplikovano korišćenje,...
 Više vremena i veći troškovi nego što je očekivano.



                       T-1: Uvod u softversko inženjerstvo    37
T-1: Uvod u softversko inženjerstvo   38
Naravno

 Ovakve stvari se nikada ne
         dešavaju.



                                                Pogrešno
          T-1: Uvod u softversko inženjerstvo         39
Softverski horor


• Greška na lanseru
  satelita Ariane 5 je
  uzrokovana greškom u
  softverkoj funkciji za
  konvertovanje iz 64-bitne
  float vrednosti u 16-bitnu
  celobrojnu vrednost.




                               40
Softverski horor


• Klimatski orbiter se srušio
  na Mars u septembru
  1999. zbog “glupe
  greške” : pogrešnih
  jedinica u programu.




                                41
Softverski horor


• Nekoliko smrtnih
  slučajeva (1985-1987)
  pacijenata koji su se lečili
  od raka usled prevelike
  doze zračenja koja je
  nastala kao posledica
  greške (nepravilno
  rešavanje konkurentnih
  aktivnosti) u softveru
  Therac-25



                                 42
Softverski horor


• Sistem za kontrolu leta u
  Dalasu je u jesen 1989.
  godine poludeo a
  kontrolori su morali da
  prate avione na papiru.




                              43
Softverski horor


• Strateška vazdušna
  komanda SAD-a je
  9.novembra 1979. god.
  dobila uzbunu jer je vojni
  kompjuterski komandni i
  kontrolni sistem izvestio o
  lansiranju sovjetskih raketa
  prema SAD-u, što je bila
  posledica toga da je
  simulirani napad
  interpretiran kao stvarni.


                                 44
Softverski horor


• Za vreme zalivskog rata
  1991. godine Scud projektil
  je ubio 28 i ranio 98
  američkih vojnika, jer je
  sistem za kontrolu Patriot
  antiraketnog sistema
  zakazao zbog greške
  (akumuliranja vremenskog
  vakuma)




                                45
CHAOS izveštaj o uspehu projekata
                                                      www.standishgroup.com/




                T-1: Uvod u softversko inženjerstvo                      46
Zaključak




Programiranje nije dovoljno!
Nije dovoljno dati sve od sebe: moraš znati
šta treba da uradiš, i onda dati sve od sebe.

- W. Edwards Deming -


               T-1: Uvod u softversko inženjerstvo   47
I s obzirom na to




   Pametna osoba rešava problem.
   Mudra osoba ih izbegava.

   - Albert Einstein -



                    T-1: Uvod u softversko inženjerstvo   48
Rešenje



          Softversko inženjerstvo




              T-1: Uvod u softversko inženjerstvo   49
Softversko inženjerstvo


 Inženjerska disciplina koja se bavi svim aspektima
  produkcije softvera od ranih faza specifikacije sistema do
  održavanja sistema nakon stavljanja u upotrebu.
 Inženjerska disciplina
    Korišćenjem odgovarajućih teorija i metoda rešavanja problema i
     imajući u vidu specifičnosti organizacije i finansijska ograničenja.
 Svi aspekti produkcije softvera
    Ne samo tehnički proces razvoja. Takođe obuhvata upravljanje
     projektom, razvoj alata, metoda, itd., koji podržavaju proces
     produkcije softvera.



                         T-1: Uvod u softversko inženjerstvo           50
Najčešće postavljana pitanja u vezi softverskog
inženjerstva

Pitanje                                       Odgovor
Koji su to ključni izazovi sa kojima se Borba sa sve većim razlikama, zahtevima za smanjenjem
suočava softversko inženjerstvo?        vremena isporuke i razvojem pouzdanog softvera.
Koji su troškovi softverskog inženjerstva?    Oko 60% su troškovi razvoja softvera, 40% su troškovi
                                              testiranja. Za softver prilagođen korisniku, troškovi
                                              evaluacije često prevazilaze troškove razvoja.
Koje su najbolje tehnike        i   metode Upravljanje svim softverskim projektima i njihov razvoj
softverskog inženjerstva?                  moraju biti profesionalni. Različite tehnike su pogodne za
                                           različite tipove sistema. Na primer, igre se uvek razvijaju
                                           korišćenjem velikog broja prototipova dok se sistemi za
                                           kontrolu zahtevaju razvoj kompletne i detaljne
                                           specifikacije. S toga, nema najbolje metode.
Koje novine je uneo Web u softversko Web je doveo do pojave softverskih servisa i mogućnosti
inženjerstvo?                        razvoja distribuiranih servisno orjentisanih sistema. Razvoj
                                     Web sistema je doveo do značajnog napredka u razvoju
                                     programskih jezika i višestruke upotrebe softvera.




                                      T-1: Uvod u softversko inženjerstvo                          51
Osnovne karakteristike dobrog softvera


  Karakteristika           Opis
  proizvoda
  Održivost                Softver mora biti napravljen na takav način da može lako da
                           evaluaira u skladu sa promenama zahteva korisnika. To je kritična
                           karakteristika s obzirom na promenljivost poslovnog okruženja.

  Poudanost i bezbednost   Softverska pouzdanost obuhvata skup karakteristika kao što su
                           pouzdano izvršenje funkcija, bezbednost i sigurnost. Pouzdan
                           softver ne sme da uzrokuje dovede do fizičkih ili ekonomskih
                           posledica u slučaju otkaza. Zlonamerni korisnici ne smeju biti u
                           mogućnosti da pristupe sistemu ili ga ugroze.
  Efikasnost               Softver ne sme nepotrebno da troši sistemske resurse kao što su
                           memorija i procesorsko vreme. Efikasnost stoga obuhvata vreme
                           odgovora, vreme obrade, iskorišćenje memorije, itd.

  Prihvatljivost           Softver mora biti prihvatljiv za one korisnike za koje je napravljen.
                           Ovo znači da mora biti razumljiv, upotrebljiv i kompatibilan sa
                           drugim sistemima koji se koriste.



                                  T-1: Uvod u softversko inženjerstvo                              52
Značaj softverskog inženjerstva


 Sve više, pojedinci i društvo zavise od složenih
  softverskih sistema. Neophodno je da brzo i ekonomično
  proizvodimo pouzdane sisteme.
 Mnogo je jeftinije (gledano dugoročno) korišćenje
  metoda i tehnika softverskog inženjerstva za izradu
  softverskih sistema nego jednostavna implementacija
  programa kao što se to radi na malim programima za
  ličnu upotrebu.
 Za većinu tipova sistema, većina troškova su troškovi
  promene softvera nakon što je stavljen u upotrebu.


                     T-1: Uvod u softversko inženjerstvo   53
Aktivnosti softverskog procesa


 Specifikacija softvera – korisnici i inženjeri definišu
  softver koji treba izraditi i ograničenja u toku tog procesa.
 Razvoj softvera – softver se dizajnira i implementira.
 Kontrola i validacija softvera – softver se proverava da bi
  se utvrdilo da li ispunjava korisničke zahteve.
 Evolucija softvera – softver se modifikuje u skladu sa
  promenama zahteva korisnika i tržišta.




                       T-1: Uvod u softversko inženjerstvo   54
Zbog čega je softversko inženjerstvo složeno?




                T-1: Uvod u softversko inženjerstvo   55
Sistemski pristup razvoju softvera


 Cilj softverskog inženjerstva je da razvoj softvera približi
  nauci i inženjerstvu i udalji ga od ad-hoc pristupa razvoju
  čiji su ishodi nepredvidljivi a koji su intenzivno korišćeni u
  prošlosti i dalje se koriste.




                       T-1: Uvod u softversko inženjerstvo    56
Veličina projekta


 Razvoj veoma velikih sistema zahteva korišćenje
  različitog skupa metoda u poređenju sa razvojem malih
  sistema,




                    T-1: Uvod u softversko inženjerstvo   57
Osnovni principi softverskog inženjerstva


 Osnovni principi koji se mogu primeniti na sve vrste
  softverskih sistema, bez obzria na razvojne tehnike koje
  se koriste:
    Sisteme treba razvijati korišćenjem upravljivog i jasnog
     razvojnog procesa. Naravno koriste se različiti procesi za
     različite tipove softvera.
    Pouzdanost i performanse su značajne za sve vrste sistema.
    Veoma je bitno razumevanje i upravljanje specifikacijom i
     zahtevima softvera (šta softver treba da radi).
    Tamo gde je to moguće bolje je koristiti postojeći softver nego
     razvijati novi.



                         T-1: Uvod u softversko inženjerstvo           58
Softversko inženjerstvo i Web


 Web je danas platforma za izvršenje aplikacija i
  ogranizacije češće koriste Web aplikacije nego lokalne
  sisteme.
 Web servisi omogućavaju da se aplikativnim funkcijama
  pristupa preko Weba.
 Cloud computing je pristup obezbeđivanju računarskih
  servisa gde se pokreću udaljene aplikacije.
    Korisnici ne kupuju softver nego plaćaju njegovu upotrebu.




                        T-1: Uvod u softversko inženjerstvo       59
Softversko inženjerstvo za Web


 Ponovna upotreba softvera je dominantan pristup za
  konstruisanje Web aplikacija.
    Prilikom izgradnje ovakvih sistema treba razmišljati o upotrebi
     postojećih softverskih komponenti i sistema.
 Web sistemi se mogu razvijati i isporučivati inkrementalno.
    Jasno je da nije praktično definisanje svih zahteva za ovavke
     sisteme unapred.
 Korisnički interface je ograničen mogućnostima Web
  browsera.
    Tehnologije kao što je AJAX omogućavaju bogat korisnički interfejs
     koji se kreira unutar Web browsera.


                           T-1: Uvod u softversko inženjerstvo         60
Studija slučaja – Bolnički informacioni sistem


 Informacioni sistem koji se koristi u bolnicama i
  klinikama.
 Koristi centralizovanu bazu podataka o pacijentima, ali je
  takođe moguće pokrenuti je na lokalnom PC, tako da se
  može koristiti i u bolnicama koje nemaju mrežnu
  infrastrukturu.
 Kada lokalni sistemi imaju siguran mrežni pristup, koriste
  informacije o pacijentu iz baze podataka, ali mogu
  downloadovati i koristiti lokalne kopije o pacijentima koje
  nisu povezane sa bazom podataka.


                      T-1: Uvod u softversko inženjerstvo   61
Bolnički informacioni sistem - ciljevi


 Da se generišu informacije koje omogućavaju
  menadžerima u zdravstvu da izvrše da li je
  funkcionisanje institucije usklađeno sa lokalnim i
  vladinim propisima.
 Da obezbede medicinskom osoblju pravovremene
  informacije kojima se olakšava tretman pacijenata.




                      T-1: Uvod u softversko inženjerstvo   62
Organizacija bolničkog informacionog sistema




                   T-1: Uvod u softversko inženjerstvo   63
Bolnički informacioni sistem – osnovne karakteristike


 Prećenje procesa lečenja bolesnika
    Lekari mogu kreirati zapise za pacijente, menjati informacije u
     sistemu, pratiti istoriju lečenja itd. Sistem podržava zbirne preglede
     informacija o pacijentu, tako da doktori mogu brzo steći uvid u
     osnovne probleme i tretmane koji su primenjivani.
 Praćenje pacijenta
    Sistem nadgleda zapise o pacijentima koji su uključeni u tretman i
     upozorenja o detektovanim potencijalnim problemima.
 Administrativno izveštavanje
    Sistem generiše mesečne menadžerske izveštaje koji prikazuju
     broj lečenih pacijenata na svakom odeljenju koji su primljeni i
     otpušteni, lekovi koji su prepisani, troškovi lečenja, itd.

                         T-1: Uvod u softversko inženjerstvo           64
Bolnički informacioni sistem – potencijalni problemi


 Privatnost
    Veoma je bitno voditi računa o poverljivosti informacija o
     pacijentu. One ne smeju biti dostupne nikome osim
     autorizovanom medicinskom osoblju i samom pacijentu.
 Pouzdanost
    Neke vrste bolesti uzrokuju da pacijenti postanu rizični, za sebe,
     za okolinu. Sistem mora upozoriti medicinsko osoblje o takvim
     pacijentima.
    Sistem mora biti dostupan kada je potreban. U suprotnom je
     moguće da lekar ne može da prepiše odgovarajuću terapiju
     pacijentu.



                         T-1: Uvod u softversko inženjerstvo          65
Workshop - različite studije slučaja


 IS studentske službe                           IS aerodroma
 IS digitalne biblioteke                        IS GSP-a
 IS za poslovnu                                 IS poreske uprave
  korespodenciju                                 IS apoteke
 IS banke                                       IS kadrovske službe
 IS za praćenje                                 IS za dijagnostiku vozila
  dokumenata u
  poslovnom okruženju                            ...
 Knjigovodstveni IS


                       T-1: Uvod u softversko inženjerstvo               66
Workshop - različite studije slučaja


 Osnovne informacije
 Ciljevi
 Organizacija
 Osnovne karakteristike
 Potencijalni problemi




                     T-1: Uvod u softversko inženjerstvo   67
IS studentske službe – grupa I


 Pristup studentima i profesorima
 Čuvanje informacija o studentima
 Korisnici sistema: studenti, profesori i administratori
 Prijavljivanje ispita
 Raspoloživost sistema, dostupnost sa udaljene lokacije
 Treba da bude pouzdan
 Mogućnost izmene podataka
 Funkcionalnosti za studente (javno dostupne),
  funkcionalnosti za nastavnike i administraciju.

                          T-1: Uvod u softversko inženjerstvo   68
IS studentske službe


 Baza podataka – centralizovana, data layer,
  sinhronizacija baza podataka
 Web aplikacija – Web browser pristup,
 Pretraga za studente
 Različit stepen privilegija
 Prijave ispita
 Praćenje finansijskog stanja
 Uvid u profile studenata (ograničen)


                       T-1: Uvod u softversko inženjerstvo   69
IS studentske službe


 Problemi mogućnost pojave greške, narušavanje
  privatnosti, regulisanje posebnih slučajeva




                   T-1: Uvod u softversko inženjerstvo   70
Bankarski IS – grupa II


 Baza podataka sa korisničkim nalozima,
 Pregleda stanja računa
 Klijenti i zaposleni
 Klijenti pristupaju preko Interneta, zaštićen pristup pin,
  password.
 Pristup preko mreže, plaćanje, provera računa, stanja
 Distribuirana organizacija, glavni server i filijale sa
  lokalnim serverima – sinhronizacija podatak
 Pristup računima preko filijale, Interneta, bankomata

                         T-1: Uvod u softversko inženjerstvo   71
Bankarski IS


 Plaćanje karticom
 SMS obaveštavanje
 Uvid u kreditnu sposobnost građana
 Problemi: sigurnost računa korisnika
 Privatnost o transakcijama korisnika,
 Konstantno održavanje napajanja sistema i pouzdanost




                      T-1: Uvod u softversko inženjerstvo   72
IS GSP-a – grupa III


 Informacije o linijama, informacije o prijavama,
  informacije o prodajnim mestima.
 Svakodnevni uvid putnika, SMS obaveštavanje, pitanja
  građana
 Problemi: Pouzdanost sistema, pouzdanost mreže
  operatora
 Umreženi IS.




                       T-1: Uvod u softversko inženjerstvo   73
Bibliotečki IS – grupa IV


 Administrativni softver za ažuriranje
 Dostupan i radnicima i čitaocima
 Radne stanice i server
 Provera klijenata koji su u biblioteci
 Ciljevi: upis članova, ažuriranje knjiga, izdavanje knjiga,
  poštovanje ograničenja,
 Organizacija bazirana na ograničenom pristupu
 2 baze međusobno povezane: knjige i korisnici


                       T-1: Uvod u softversko inženjerstvo      74
Bibliotečki IS


 Backup sistem
 Problem: pristupanje preko Interneta, brzina i količina
  podataka.




                      T-1: Uvod u softversko inženjerstvo   75
Uvod u softversko inženjerstvo



                dr Zoran Jeremić
                 zoran.jeremic@gmail.com




                  T-1: Uvod u softversko inženjerstvo   76

Weitere ähnliche Inhalte

Mehr von Zoran 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 2 zivotni ciklus i metodologije razvoja softvera
 T 2 zivotni ciklus i metodologije razvoja softvera T 2 zivotni ciklus i metodologije razvoja softvera
T 2 zivotni ciklus i metodologije razvoja softveraZoran 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
 

Mehr von Zoran Jeremic (14)

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 2 zivotni ciklus i metodologije razvoja softvera
 T 2 zivotni ciklus i metodologije razvoja softvera T 2 zivotni ciklus i metodologije razvoja softvera
T 2 zivotni ciklus i metodologije razvoja softvera
 
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
 

T 1 uvod u softversko inzenjerstvo

  • 1. Uvod u softversko inženjerstvo dr Zoran Jeremić zoran.jeremic@gmail.com T-1: Uvod u softversko inženjerstvo 1
  • 2. Sadržaj 1. Osnovne informacije o predmetu 2. Softver i njegov značaj 3.Softversko inženjerstvo 4. Osnovni pojmovi i osnovne paradigme T-1: Uvod u softversko inženjerstvo 2
  • 3. Informacije o predmetu  Naziv: Softversko inženjerstvo  ESPB: 6  Uslov: Uvod u objektno programiranje  Semestar: 5  Predavanja: 2  Laboratorijske vežbe: 2  Auditorne vežbe: 1  Broj časova aktivne nastave: 75 T-1: Uvod u softversko inženjerstvo 3
  • 4. Cilj predmeta  Upoznavanje sa savremenim softverskim inženjerstvom, teorijom i praktičnim postupcima u procesu razvoja softvera u svim fazama njegovog životnog ciklusa.  Ishod predmeta:  Studenti će biti osposobljeni da projektuju jednostavne softverske sisteme na bazi poznavanja rada alata koji će biti prikazani tokom kursa. T-1: Uvod u softversko inženjerstvo 4
  • 5. Sadržaj predmeta 1. Uvod u softversko inženjerstvo. 2. Metodologije razvoja softvera. 3. Životni ciklus razvoja sofvera. T-1: Uvod u softversko inženjerstvo 5
  • 6. Sadržaj predmeta (2) 4. Uvod u modelovanje korišćenjem ULM-a. 5. Definisanje zahteva korišćenjem UML Use Case dijagrama. Perform Sale Register Client Sales Person Perform Business Sale Institutional Sales Person Cancel Sale T-1: Uvod u softversko inženjerstvo 6 Sales Manager
  • 7. Sadržaj predmeta (3) 6. Definisanje strukture korišćenjem UML dijagrama klasa. Realni domen Domen modela autobus modeluje vozilo automobil modeluje solja modeluje T-1: Uvod u softversko inženjerstvo 7
  • 8. Sadržaj predmeta (4) 7. Modelovanje ponašanja korišćenjem UML dijagrama interakcija. T-1: Uvod u softversko inženjerstvo 8
  • 9. Sadržaj predmeta (5) 8. Modelovanje stanja korišćenjem UML statechart dijagrama. Marital single married divorced T-1: Uvod u softversko inženjerstvo 9
  • 10. Sadržaj predmeta (6) 9. Dijagrami aktivnosti. Camera Behavior Safety Controller Behavior Side Object Check Objects Detected in Camera Is object [no] Detected? Detection data [yes] Alarm Deciding Side Object Detected Side? [left] [right] Left Alarm Right Alarm T-1: Uvod u softversko inženjerstvo 10
  • 11. Sadržaj predmeta (7) 10. Pregled CASE alata za UML modelovanje. 11. Dizajn paterni. 12. Testiranje softvera i upravljanje kvalitetom. 13. Evolucija softvera i održavanje. T-1: Uvod u softversko inženjerstvo 11
  • 12. Praktična nastava  U skladu sa temom obrađenom u okviru predavanja.  Demonstracija praktičnog razvoja softverskih sistema tehnikama predstavljenim na predavanjima, korišćenjem odabranih CASE alata. Program predmeta usklađen sa preporukama IEEE/ACM Computing Curriculum:CE2004 Computer Engineering Body of Knowledge: CE-SWE 0-9. T-1: Uvod u softversko inženjerstvo 12
  • 13. Literatura  Osnovna:  prezentacije sa predavanja  UML vodič za korisnike, Booch, Rumbaugh, Jacobson, 506 strana (ili bilo koje drugo uputstvo za UML)  Dodatna:  I. Sommerville, Software Engineering, 6th ed., Addison-Wesley, Reading, MA, 2000. (ISBN: 020139815X)  R.S. Pressman, Software Engineering: A Practitioner's Approach, McGraw Hill, NY, 5th ed., 2001. (ISBN: 0072496681)  M. Fowler, K. Scott, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 2nd ed., Addison-Wesley, Reading, MA, 1999. (ISBN: 020165783X)  G. Booch, Object-Oriented Analysis and Design with Applications, 2nd ed., Addison-Wesley, Reading, MA, 1994. (ISBN: 0805353402) T-1: Uvod u softversko inženjerstvo 13
  • 14. Ocena znanja Predispitne obaveze Poena Završni ispit Poena Praktična nastava 2 kolokvijuma (vežbe) 30 50 ili pismeni ispit iz 2 dela -2 zadatka x 15 bodova Aktivnost i angažovanje 20 -2x10 bodova T-1: Uvod u softversko inženjerstvo 14
  • 15. Studentski zadaci  2 zadatka koji se realizuju radom po grupama  Svaki zadatak nosi po 25% od konačne ocene:  10% za učešće u aktivnostima na dodeljenom zadatku  15% za izvršenje dodeljenih aktivnosti  Zadaci predstavljaju softverske probleme koji prate predavanja i dodeljuju se studentima u toku semestra na vežbama u zakazanim terminima.  Student na raspolaganju ima 3 sedmice predviđene za ispunjenje datih obaveza, nakon čega nije moguće predati zadatak. T-1: Uvod u softversko inženjerstvo 15
  • 16. Studentski zadaci  Da bi se u potpunosti realizovao zadatak student treba da izvrši 3 aktivnosti:  Brainstorming (prezentovanje ideje) : • Student iznosi svoju ideju za rešavanje problema • Student komentariše ideje svojih kolega • Student ocenjuje ideje svojih kolega  Ocenu ove aktivnosti čine: • Ocene koje je student dobio od svojih kolega, • Ocene koju je student dobio od nastavnika, • Aktivnosti i angažovanju studenta na realizaciji zadatka, kritičkom osvrtu na ideje svojih kolega, • Ocene koju je student dobio za procenu ideja svojih kolega, T-1: Uvod u softversko inženjerstvo 16
  • 17. Studentski zadaci  Predlaganje sopstvenog rešenja • Student koristi ArgoUML alat da kreira sopstveni UML dijagram koji predstavlja rešenje problema.  Procena rešenja kolega • Student vrši procenu rešenja najmanje četvorice kolega na osnovu definisanih kriterijuma,  Ocenu ove aktivnosti čine: • Procene rešenja koje su dali drugi studenti, • Procena rešenja koju je dao nastavnik, • Aktivnost i angažovanje koje je student ispoljio prilikom izvršenja aktivnosti, • Kvalitet procene koju je student izvršio. T-1: Uvod u softversko inženjerstvo 17
  • 18. Studentski zadaci  Pored opisanih zadataka, student je u obavezi da popuni 3 dodatne ankete koje se odnose na realizovane aktivnosti.  Prva anketa se popunjava pre podele zadataka, a zatim po jedna anketa nakon svakog zadatka. T-1: Uvod u softversko inženjerstvo 18
  • 19. 2010/2011  jan-okt 2011  Prijavljeno 67 studenta  Položilo 39 studenta (58,21%)  Struktura ocena 6 7 8 9 10 0 7 13 8 11  Prosečna ocena 8,59 T-1: Uvod u softversko inženjerstvo 19
  • 20. 2009/2010  jan-okt 2010  Prijavljeno 73 studenta  Položilo 44 studenta (60,27%)  Struktura ocena 6 7 8 9 10 3 7 10 8 16  Prosečna ocena 8,61 T-1: Uvod u softversko inženjerstvo 20
  • 21. Registracija studenata  Obavezna za sve studente (rok 30.10.2011)  http://viser.learningdesignpatterns.org T-1: Uvod u softversko inženjerstvo 21
  • 22. T-1: Uvod u softversko inženjerstvo 22
  • 23. Softver i softversko inženjerstvo Osnovni pojmovi i paradigme T-1: Uvod u softversko inženjerstvo 23
  • 24. Motivacija  Značaj softvera Softver ima ogroman uticaj na bilo koji aspekt društva T-1: Uvod u softversko inženjerstvo 24
  • 26. Softver je svuda T-1: Uvod u softversko inženjerstvo 26
  • 27. Softver je svuda T-1: Uvod u softversko inženjerstvo 27
  • 28. Neki popularni  Socijalna mreža nastala 2004. godine  Mark Zuckerberg (Harvard)  Više od 500 miliona aktivnih korisnika  50% aktivno svaki dan  Najbrže rastuća demografska grupa su oni od 35 i više godina  Više od milion software developera i preduzimača.  Više od 350,000 aktivnih aplikacija na Facebook platformi.  Više od 250 aplikacija sa više od milion mesečno aktivnih korisnika.  Blokiran u nekoliko zemalja: Pakistan, Sirija, Kina, Vijetnam, Iran i S.Koreja. T-1: Uvod u softversko inženjerstvo 28
  • 29. Neki popularni  Preko 78 miliona videa ukupno  Preko 6 miliona videa mesečno.  Preko 200,000 videa dnevno.  45 terabajta prostora.  100 miliona posetilaca mesečno.  A sve je počelo kada su 3 momka 2005. godine napravili softver zbog problema koji su imali da međusobno razmene video fajlove sa žurke.  Novembra 2005 YouTube je zvanično započeo sa radom, a oktobra 2006. godine Google ga je otkupio za 1,65 milijardi $.  Kritike na račun: distribucije copyright materijala, zaštite privatnosti, kontraverznih sadržaja  U nekim zemljama zabranjen pristup T-1: Uvod u softversko inženjerstvo 29
  • 30. Trenutno stanje civilizacije T-1: Uvod u softversko inženjerstvo 30
  • 31. Značaj softvera u ljudskim životima • Milenijumski Bug (Y2K) ! – Upozorenje o Y2K dekadu pre 2000. – Budžet Klintonove vlade za Y2K oko 3.4 milijarde USD 31
  • 32. Značaj softvera Postao je pokretačka snaga Ključna razlika Motor koji modernih Značaj pokreće proces proizvoda i softvera donošenja usluga odluka Osnova za moderna nauučna istraživanja i rešavanja problema 32
  • 33. Značaj softvera  Ugnježden je u sisteme svih vrsta: transportne, medicinske, telekomunikacione, vojne industrijske procese, održavanje, kancelarijske proizvode,... Lista je skoro beskonačna.  Softver je praktično neizbežan u modernom svetu.  Ulaskom u 21 vek, polako će postati pokretač novih napredaka u svim oblastima od osnovnog obrazovanja do genetskog inženjerstva. T-1: Uvod u softversko inženjerstvo 33
  • 34. Vrste softvera  Desktop aplikacije  Aplikacije koje se izršavaju na lokalnim računarima. Obuhvataju sve neophodne fukncionalnosti i ne moraju biti povezani na računarsku mrežu ili Internet.  Interaktivne aplikacije  Aplikacije koje se izvršavaju na udaljenom računaru a kojima korisnici pristupaju sa svoji PC računara ili terminala. Ove aplikacije obuhvataju i web aplikacije kao što su komercijalne aplikacije.  Ugnježdeni kontrolni sistemi  Kontrolni sistemi koji kontrolišu i upravljaju hardverskim uređajima. Brojčano, najviše je ovakvih tipova aplikacija. T-1: Uvod u softversko inženjerstvo 34
  • 35. Vrste softvera  Sistemi za serijsku obradu  Poslovni sistemi namenjeni za obradu podataka u velikim serijama. Obrađuju veliki količinu ulaznih podataka i kreiraju izlaz.  Aplikacije za zabavu  Softver namenjen prvenstveno ličnoj upotrebi i zabavi korisnika.  Sistemi za modelovanje i simulacije  Ovo su sistemi koje su razvili naučnici i inženjeri za modelovanje fizičkih procesa i situacija. T-1: Uvod u softversko inženjerstvo 35
  • 36. Problemi u razvoju softvera T-1: Uvod u softversko inženjerstvo 36
  • 37. Najčešći problemi  Finalni softverski proizvod ne ispunjava očekivanja korisnika.  Teško ga je proširiti i unaprediti: Ukoliko kasnije želite da dodate novu funkcionalnost što je skoro nemoguća misija.  Loša dokumentacija.  Loš kvalitet: česte greške, komplikovano korišćenje,...  Više vremena i veći troškovi nego što je očekivano. T-1: Uvod u softversko inženjerstvo 37
  • 38. T-1: Uvod u softversko inženjerstvo 38
  • 39. Naravno Ovakve stvari se nikada ne dešavaju. Pogrešno T-1: Uvod u softversko inženjerstvo 39
  • 40. Softverski horor • Greška na lanseru satelita Ariane 5 je uzrokovana greškom u softverkoj funkciji za konvertovanje iz 64-bitne float vrednosti u 16-bitnu celobrojnu vrednost. 40
  • 41. Softverski horor • Klimatski orbiter se srušio na Mars u septembru 1999. zbog “glupe greške” : pogrešnih jedinica u programu. 41
  • 42. Softverski horor • Nekoliko smrtnih slučajeva (1985-1987) pacijenata koji su se lečili od raka usled prevelike doze zračenja koja je nastala kao posledica greške (nepravilno rešavanje konkurentnih aktivnosti) u softveru Therac-25 42
  • 43. Softverski horor • Sistem za kontrolu leta u Dalasu je u jesen 1989. godine poludeo a kontrolori su morali da prate avione na papiru. 43
  • 44. Softverski horor • Strateška vazdušna komanda SAD-a je 9.novembra 1979. god. dobila uzbunu jer je vojni kompjuterski komandni i kontrolni sistem izvestio o lansiranju sovjetskih raketa prema SAD-u, što je bila posledica toga da je simulirani napad interpretiran kao stvarni. 44
  • 45. Softverski horor • Za vreme zalivskog rata 1991. godine Scud projektil je ubio 28 i ranio 98 američkih vojnika, jer je sistem za kontrolu Patriot antiraketnog sistema zakazao zbog greške (akumuliranja vremenskog vakuma) 45
  • 46. CHAOS izveštaj o uspehu projekata www.standishgroup.com/ T-1: Uvod u softversko inženjerstvo 46
  • 47. Zaključak Programiranje nije dovoljno! Nije dovoljno dati sve od sebe: moraš znati šta treba da uradiš, i onda dati sve od sebe. - W. Edwards Deming - T-1: Uvod u softversko inženjerstvo 47
  • 48. I s obzirom na to Pametna osoba rešava problem. Mudra osoba ih izbegava. - Albert Einstein - T-1: Uvod u softversko inženjerstvo 48
  • 49. Rešenje Softversko inženjerstvo T-1: Uvod u softversko inženjerstvo 49
  • 50. Softversko inženjerstvo  Inženjerska disciplina koja se bavi svim aspektima produkcije softvera od ranih faza specifikacije sistema do održavanja sistema nakon stavljanja u upotrebu.  Inženjerska disciplina  Korišćenjem odgovarajućih teorija i metoda rešavanja problema i imajući u vidu specifičnosti organizacije i finansijska ograničenja.  Svi aspekti produkcije softvera  Ne samo tehnički proces razvoja. Takođe obuhvata upravljanje projektom, razvoj alata, metoda, itd., koji podržavaju proces produkcije softvera. T-1: Uvod u softversko inženjerstvo 50
  • 51. Najčešće postavljana pitanja u vezi softverskog inženjerstva Pitanje Odgovor Koji su to ključni izazovi sa kojima se Borba sa sve većim razlikama, zahtevima za smanjenjem suočava softversko inženjerstvo? vremena isporuke i razvojem pouzdanog softvera. Koji su troškovi softverskog inženjerstva? Oko 60% su troškovi razvoja softvera, 40% su troškovi testiranja. Za softver prilagođen korisniku, troškovi evaluacije često prevazilaze troškove razvoja. Koje su najbolje tehnike i metode Upravljanje svim softverskim projektima i njihov razvoj softverskog inženjerstva? moraju biti profesionalni. Različite tehnike su pogodne za različite tipove sistema. Na primer, igre se uvek razvijaju korišćenjem velikog broja prototipova dok se sistemi za kontrolu zahtevaju razvoj kompletne i detaljne specifikacije. S toga, nema najbolje metode. Koje novine je uneo Web u softversko Web je doveo do pojave softverskih servisa i mogućnosti inženjerstvo? razvoja distribuiranih servisno orjentisanih sistema. Razvoj Web sistema je doveo do značajnog napredka u razvoju programskih jezika i višestruke upotrebe softvera. T-1: Uvod u softversko inženjerstvo 51
  • 52. Osnovne karakteristike dobrog softvera Karakteristika Opis proizvoda Održivost Softver mora biti napravljen na takav način da može lako da evaluaira u skladu sa promenama zahteva korisnika. To je kritična karakteristika s obzirom na promenljivost poslovnog okruženja. Poudanost i bezbednost Softverska pouzdanost obuhvata skup karakteristika kao što su pouzdano izvršenje funkcija, bezbednost i sigurnost. Pouzdan softver ne sme da uzrokuje dovede do fizičkih ili ekonomskih posledica u slučaju otkaza. Zlonamerni korisnici ne smeju biti u mogućnosti da pristupe sistemu ili ga ugroze. Efikasnost Softver ne sme nepotrebno da troši sistemske resurse kao što su memorija i procesorsko vreme. Efikasnost stoga obuhvata vreme odgovora, vreme obrade, iskorišćenje memorije, itd. Prihvatljivost Softver mora biti prihvatljiv za one korisnike za koje je napravljen. Ovo znači da mora biti razumljiv, upotrebljiv i kompatibilan sa drugim sistemima koji se koriste. T-1: Uvod u softversko inženjerstvo 52
  • 53. Značaj softverskog inženjerstva  Sve više, pojedinci i društvo zavise od složenih softverskih sistema. Neophodno je da brzo i ekonomično proizvodimo pouzdane sisteme.  Mnogo je jeftinije (gledano dugoročno) korišćenje metoda i tehnika softverskog inženjerstva za izradu softverskih sistema nego jednostavna implementacija programa kao što se to radi na malim programima za ličnu upotrebu.  Za većinu tipova sistema, većina troškova su troškovi promene softvera nakon što je stavljen u upotrebu. T-1: Uvod u softversko inženjerstvo 53
  • 54. Aktivnosti softverskog procesa  Specifikacija softvera – korisnici i inženjeri definišu softver koji treba izraditi i ograničenja u toku tog procesa.  Razvoj softvera – softver se dizajnira i implementira.  Kontrola i validacija softvera – softver se proverava da bi se utvrdilo da li ispunjava korisničke zahteve.  Evolucija softvera – softver se modifikuje u skladu sa promenama zahteva korisnika i tržišta. T-1: Uvod u softversko inženjerstvo 54
  • 55. Zbog čega je softversko inženjerstvo složeno? T-1: Uvod u softversko inženjerstvo 55
  • 56. Sistemski pristup razvoju softvera  Cilj softverskog inženjerstva je da razvoj softvera približi nauci i inženjerstvu i udalji ga od ad-hoc pristupa razvoju čiji su ishodi nepredvidljivi a koji su intenzivno korišćeni u prošlosti i dalje se koriste. T-1: Uvod u softversko inženjerstvo 56
  • 57. Veličina projekta  Razvoj veoma velikih sistema zahteva korišćenje različitog skupa metoda u poređenju sa razvojem malih sistema, T-1: Uvod u softversko inženjerstvo 57
  • 58. Osnovni principi softverskog inženjerstva  Osnovni principi koji se mogu primeniti na sve vrste softverskih sistema, bez obzria na razvojne tehnike koje se koriste:  Sisteme treba razvijati korišćenjem upravljivog i jasnog razvojnog procesa. Naravno koriste se različiti procesi za različite tipove softvera.  Pouzdanost i performanse su značajne za sve vrste sistema.  Veoma je bitno razumevanje i upravljanje specifikacijom i zahtevima softvera (šta softver treba da radi).  Tamo gde je to moguće bolje je koristiti postojeći softver nego razvijati novi. T-1: Uvod u softversko inženjerstvo 58
  • 59. Softversko inženjerstvo i Web  Web je danas platforma za izvršenje aplikacija i ogranizacije češće koriste Web aplikacije nego lokalne sisteme.  Web servisi omogućavaju da se aplikativnim funkcijama pristupa preko Weba.  Cloud computing je pristup obezbeđivanju računarskih servisa gde se pokreću udaljene aplikacije.  Korisnici ne kupuju softver nego plaćaju njegovu upotrebu. T-1: Uvod u softversko inženjerstvo 59
  • 60. Softversko inženjerstvo za Web  Ponovna upotreba softvera je dominantan pristup za konstruisanje Web aplikacija.  Prilikom izgradnje ovakvih sistema treba razmišljati o upotrebi postojećih softverskih komponenti i sistema.  Web sistemi se mogu razvijati i isporučivati inkrementalno.  Jasno je da nije praktično definisanje svih zahteva za ovavke sisteme unapred.  Korisnički interface je ograničen mogućnostima Web browsera.  Tehnologije kao što je AJAX omogućavaju bogat korisnički interfejs koji se kreira unutar Web browsera. T-1: Uvod u softversko inženjerstvo 60
  • 61. Studija slučaja – Bolnički informacioni sistem  Informacioni sistem koji se koristi u bolnicama i klinikama.  Koristi centralizovanu bazu podataka o pacijentima, ali je takođe moguće pokrenuti je na lokalnom PC, tako da se može koristiti i u bolnicama koje nemaju mrežnu infrastrukturu.  Kada lokalni sistemi imaju siguran mrežni pristup, koriste informacije o pacijentu iz baze podataka, ali mogu downloadovati i koristiti lokalne kopije o pacijentima koje nisu povezane sa bazom podataka. T-1: Uvod u softversko inženjerstvo 61
  • 62. Bolnički informacioni sistem - ciljevi  Da se generišu informacije koje omogućavaju menadžerima u zdravstvu da izvrše da li je funkcionisanje institucije usklađeno sa lokalnim i vladinim propisima.  Da obezbede medicinskom osoblju pravovremene informacije kojima se olakšava tretman pacijenata. T-1: Uvod u softversko inženjerstvo 62
  • 63. Organizacija bolničkog informacionog sistema T-1: Uvod u softversko inženjerstvo 63
  • 64. Bolnički informacioni sistem – osnovne karakteristike  Prećenje procesa lečenja bolesnika  Lekari mogu kreirati zapise za pacijente, menjati informacije u sistemu, pratiti istoriju lečenja itd. Sistem podržava zbirne preglede informacija o pacijentu, tako da doktori mogu brzo steći uvid u osnovne probleme i tretmane koji su primenjivani.  Praćenje pacijenta  Sistem nadgleda zapise o pacijentima koji su uključeni u tretman i upozorenja o detektovanim potencijalnim problemima.  Administrativno izveštavanje  Sistem generiše mesečne menadžerske izveštaje koji prikazuju broj lečenih pacijenata na svakom odeljenju koji su primljeni i otpušteni, lekovi koji su prepisani, troškovi lečenja, itd. T-1: Uvod u softversko inženjerstvo 64
  • 65. Bolnički informacioni sistem – potencijalni problemi  Privatnost  Veoma je bitno voditi računa o poverljivosti informacija o pacijentu. One ne smeju biti dostupne nikome osim autorizovanom medicinskom osoblju i samom pacijentu.  Pouzdanost  Neke vrste bolesti uzrokuju da pacijenti postanu rizični, za sebe, za okolinu. Sistem mora upozoriti medicinsko osoblje o takvim pacijentima.  Sistem mora biti dostupan kada je potreban. U suprotnom je moguće da lekar ne može da prepiše odgovarajuću terapiju pacijentu. T-1: Uvod u softversko inženjerstvo 65
  • 66. Workshop - različite studije slučaja  IS studentske službe  IS aerodroma  IS digitalne biblioteke  IS GSP-a  IS za poslovnu  IS poreske uprave korespodenciju  IS apoteke  IS banke  IS kadrovske službe  IS za praćenje  IS za dijagnostiku vozila dokumenata u poslovnom okruženju  ...  Knjigovodstveni IS T-1: Uvod u softversko inženjerstvo 66
  • 67. Workshop - različite studije slučaja  Osnovne informacije  Ciljevi  Organizacija  Osnovne karakteristike  Potencijalni problemi T-1: Uvod u softversko inženjerstvo 67
  • 68. IS studentske službe – grupa I  Pristup studentima i profesorima  Čuvanje informacija o studentima  Korisnici sistema: studenti, profesori i administratori  Prijavljivanje ispita  Raspoloživost sistema, dostupnost sa udaljene lokacije  Treba da bude pouzdan  Mogućnost izmene podataka  Funkcionalnosti za studente (javno dostupne), funkcionalnosti za nastavnike i administraciju. T-1: Uvod u softversko inženjerstvo 68
  • 69. IS studentske službe  Baza podataka – centralizovana, data layer, sinhronizacija baza podataka  Web aplikacija – Web browser pristup,  Pretraga za studente  Različit stepen privilegija  Prijave ispita  Praćenje finansijskog stanja  Uvid u profile studenata (ograničen) T-1: Uvod u softversko inženjerstvo 69
  • 70. IS studentske službe  Problemi mogućnost pojave greške, narušavanje privatnosti, regulisanje posebnih slučajeva T-1: Uvod u softversko inženjerstvo 70
  • 71. Bankarski IS – grupa II  Baza podataka sa korisničkim nalozima,  Pregleda stanja računa  Klijenti i zaposleni  Klijenti pristupaju preko Interneta, zaštićen pristup pin, password.  Pristup preko mreže, plaćanje, provera računa, stanja  Distribuirana organizacija, glavni server i filijale sa lokalnim serverima – sinhronizacija podatak  Pristup računima preko filijale, Interneta, bankomata T-1: Uvod u softversko inženjerstvo 71
  • 72. Bankarski IS  Plaćanje karticom  SMS obaveštavanje  Uvid u kreditnu sposobnost građana  Problemi: sigurnost računa korisnika  Privatnost o transakcijama korisnika,  Konstantno održavanje napajanja sistema i pouzdanost T-1: Uvod u softversko inženjerstvo 72
  • 73. IS GSP-a – grupa III  Informacije o linijama, informacije o prijavama, informacije o prodajnim mestima.  Svakodnevni uvid putnika, SMS obaveštavanje, pitanja građana  Problemi: Pouzdanost sistema, pouzdanost mreže operatora  Umreženi IS. T-1: Uvod u softversko inženjerstvo 73
  • 74. Bibliotečki IS – grupa IV  Administrativni softver za ažuriranje  Dostupan i radnicima i čitaocima  Radne stanice i server  Provera klijenata koji su u biblioteci  Ciljevi: upis članova, ažuriranje knjiga, izdavanje knjiga, poštovanje ograničenja,  Organizacija bazirana na ograničenom pristupu  2 baze međusobno povezane: knjige i korisnici T-1: Uvod u softversko inženjerstvo 74
  • 75. Bibliotečki IS  Backup sistem  Problem: pristupanje preko Interneta, brzina i količina podataka. T-1: Uvod u softversko inženjerstvo 75
  • 76. Uvod u softversko inženjerstvo dr Zoran Jeremić zoran.jeremic@gmail.com T-1: Uvod u softversko inženjerstvo 76