Opšta sekcija
- Predmetni nastavnik: dr Boban Stojanović
Saradnici: Lazar Krstić, Andreja ŽivićNastavni plan
- Uvod u softversko inženjerstvo. Analiza i sinteza. Tehnike, alati, procedure, paradigme. Kvalitet. Učesnici u procesu. Sistemski prilaz. Inženjerski pristup. Razvojni tim.
- Modelovanje procesa i životnog ciklusa. Proces, životni ciklus, struktura procesa. Faze razvoja. Modeli procesa (vodopad, vodopad sa prototipom, V model, prototipski model, inkrementalni i iterativni fazni razvoj, spiralni model). Agilne metode razvoja (ekstremno programiranje, Scrum,...).
- Evidentiranje zahteva. Važnost zahteva. Izvođenje zahteva.Tipovi zahteva. Rešavanje konflikata. Notacije (dijagrami odnosa između entiteta, dijagrami sekvenci, konačni automati, dijagrami toka podataka, dijagrami slučajeva korišćenja). Izrada prototipova. Dokumentovanje zahteva (specifikacija softverskih zahteva).
- Dizajniranje sistema. Konceptualni i tehnički dizajn. Modularnost. Arhitektonski stilovi (slojevi, mikroservisi,...). Karakteristike dobrog dizajna. Korisnički doživljaj.
- Objektno-orijentisani dizajn. Karakteristike (identitet, apstrakcija, klasifikacija, enkapsulacija, nasleđivanje, polimorfizam, perzistencija). Slučajevi korišćenja. Predstavljanje klasa (dijagrami klasa). Dijagrami sekvence saradnje, stanja, aktivnosti,...). Dokumentovanje dizajna softvera.
- Testiranje programa. Greške i otkazi. Vrste grešaka. Organizacija testiranja. Testni timovi. Jedinično testiranje. Integraciono testiranje. Planiranje testa. Alati za automatizovano testiranje.
Način polaganja ispita
- predispitne aktivnosti – 70 poena
- razvoj - 50 poena (iz 10 etapa, pojedinačno);
- takmičenje za najbolju aplikaciju - 20 poena (grupno);
- zalaganje i inventivnost - dodatnih 10 poena (pojedinačno);
- završni ispit – 30 poena.
- specifikacija zahteva i odbrana - 5 poena (pojedinačno);
- specifikacija dizajna i odbrana - 15 poena (pojedinačno);
- prezentacija - 10 poena (grupno).
Na početku semestra studenti se dele u nekoliko timova, tako da svaki tim posluje nezavisno. Timovi dobijaju projektni zadatak o razvoju određene aplikacije koji je potrebno da realizuju i dokumentuju u toku trajanja semestra. Rad svakog studenta na projektu se boduje pojedinačno. Po završetku projekta se sve aplikacije rangiraju i boduju prema stepenu zadovoljenosti zahteva, kvalitetu izrade i korisničkom utisku. Pojedinac koji pokaže izuzetno zalaganje i inovativnost u radu može osvojiti dodatne poene.
Na završnom delu ispita studenti brane projektnu dokumentaciju koju su napisali tokom izrade projekta i prezentuju rezultate svoga projekta.Literatura
- S.L. Pfleeger, J.M. Atlee, Softversko inženjerstvo, teorija i praksa, CET, Beograd, 2006.