Opšta sekcija
- Predmetni nastavnik: dr Boban Stojanović
Saradnici: Lazar Krstić, Andreja Živić, Filip Bojović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.
Rad na daljinu
Predavanja će biti održavana putem Big Blue Button platforme.
Organizacija zaduženja na izradi projekta i verzionisanje koda se odvija putem gitlab-a.
U uslovima kada nije moguće održati sastanke uživo, koristiće se neki od softvera za komunikaciju, kao što su Skype, Microsoft Teams, Zoom, Big Blue Button, i slično.
Online komunikacija tim lidera sa asistentima obavlja se preko Slack-a.
- Obaveštenja vezana za ovaj predmet će biti postavljana na ovu oglasnu tablu.
Oglasna tabla funkcioniše kao forum, pa je svaku objavu moguće komentarisati i postavljati pitanja vezana za sadržaj objave.