Predmet: Uvod u softversko inženjerstvo (17 - SE0011)


Osnovne informacije

KategorijaTeorijsko-metodološki
Naučna oblastPrimenjene računarske nauke i informatika
MultidisciplinarnaNe
ESPB6
Matične organizacione jedinice predmeta

Trenutno nema podataka o matičnim organizacionim jedinicama predmeta!
Program predmeta

Program se primenjuje od 29.10.2012..

Osposobiti studente za primenu savremenih metoda, alata i najbolje prakse u procesu inženjerskog razvoja softvera. Omogućiti jasnu diferencijaciju između programiranja i softverskog inženjerstva i uloge modela životnog ciklusa softvera u procesu inženjerstva softverskih proizvoda. Osposobiti studente za izbor modela životnog ciklusa softvera koji najbolje odgovara prirodi domena problema i karakteristikama programskih proizvoda. Podići nivo svesti o ulozi zahteva, njihove specifikacije (modela zahteva) i opisa interakcije korisnika sa razvijanim softverskim proizvodom (funkcionalni model) na arhitekturu i principe razvoja interaktivnih programskih proizvoda.
Nakon uspešno završenog kursa student je u stanju da: koristi moderne tehnike i alate u razvoju softvera (integrisana okruženja, editore, kompajlere, debagere i dr.), uspešno sarađuje na razvoju softvera u okviru višečlanog tima, koristi alate za kolaboraciju, sisteme za kontrolu verzija i sisteme za praćenje zahteva za promenama, piše jedinične, integracione testove i testove prihvatanja, razume prednosti razvoja softvera upravljanog testiranjem, razume i koristi osnovne metodoške pristupe u razvoju softvera, piše dokumentaciju i koristi alate za pisanje dokumentacije za softver koji razvija.
Teorijski deo: Procesi i metodologije razvoja softvera; Modeli životnog ciklusa softvera; Uporedna analiza tradicionalnog shvatanja procesa razvoja softvera i agilne metodologije. Inženjerstvo softvera kao profesija. Prelomne tačke u istoriji razvoja discipline softverskog inženjerstva. Korpus znanja u softverskom inženjerstvu (SWEBOK - Software Engineering Body of Knowledge). Etički kodeks inženjerstva softvera (Software Engineering Code of Etics).Softverski proizvod i proces njegove izrade. Pregled integrisanih okruženja za razvoj; prednosti u odnosu na klasične editore koda; efikasna upotreba integrisanih okruženja; navigacija nad izvornim kodom; definisanje dinamičkih šablona za kodiranje. Tehnike otkrivanja i uklanjanja grešaka; debagovanje. Sistemi za kontrolu verzija (Version Control System – VCS); arhitekture; alati; subversion – upotreba, upravljanje verzijama. Osnovni pojmovi testiranje; razvoj softvera vođen testiranjem; jedinično testiranje; integraciono testiranje; test prihvatanja. Razvoj softvera vođen ponašanjem; pisanje scenarija; pisanje testova prihvatanja. Pisanje dokumentacije; dokumentacija elemenata izvornog koda; tehnička dokumentacija; korisničko uputstvo; alati za pisanje i generisanje dokumentacije. Alati za upravljanje izgradnom i instalacijom. Praktičan deo: instalacija, podešavanje i upotreba Eclipse integrisanog okruženja; podešavanje šablona za kodiranja elemenata izvornog koda; tehnička dokumentacija; korisničko uputstvo; alati za pisanje i generisanje dokumentacije. Alati za upravljanje izgradnom i instalacijom. Virtualna okruženja u Java-u. Praktičan deo: instalacija, podešavanje i upotreba Eclipse integrisanog okruženja; podešavanje šablona za kodiranje u Java-u; debagovanje Java programa. Instalacija, podešavanje i upotreba klijenata za subversion VCS; Subversive. Testiranje Java programa (JUnit, doctest).
Predavanja; Računarske vežbe; Konsultacije. Projekat. Kontinualno praćenje upotrebe sistema za kontrolu verzija, sistema za upravljanje projekta, okvira za testiranje i okvira za pisanje dokumentacije kroz projektni zadatak. U sklopu predmeta studenti podeljeni u timove od po dva člana (parovi) realizuju projekat interaktivne aplikacije koja omogučava vizualizaciju i razumevanje struktura podataka i osnovnih operacija nad strukturama podataka (algoritmi). Metodološki pristup zasniva se na izradi dokumenta vizije modela zahteva i funkcionalnog modela razvijanog softverskog proizvoda. Specifikacijom vođen razvoj omogućava kasniju verifikaciju i validaciju programskog proizvoda u odnosu na njegovu specifikaciju.
AutoriNazivGodinaIzdavačJezik
Perišić, B.Osnovi softverskog inženjerstva2016Fakultet tehničkih nauka, Novi SadSrpski jezik
Bourque, P., Dupuis; R., Abran, A., Moore, J. W.Guide to the Software Engineering Body of Knowledge2005Sams PublishingEngleski
Pfleeger, S.L.Software Engineering : Theory and Practice2001Prentice-Hall, New YorkEngleski
Robert C. MartinClean Code A Handbook of Agile Software Craftmanship2009Prentica HallEngleski
Pierre Bourque, Richard E. (Dick) FairleyGuide to the Software Engineering Body of Knowledge Version 3.0 SWEBOK V.3.02014IEEE Computer SocietyEngleski
James W. MooreThe Road Map to Software Engineering: A Standards-Based Guide2006Wiley-IEEE Computer Society PressEngleski
Pressman, R. S., Maxim, B. R.Software Engineering: A Practitioners Approach (8th edition)2014McGraw-HillEngleski
Predmetna aktivnostPredispitnaObaveznaBroj poena
Praćenje aktivnosti pri realizaciji projekatadada10.00
Predmetni projekatdada30.00
Pismeni deo ispita - kombinovani zadaci i teorijaneda50.00
Odbrana projektadada10.00
Ime i prezimeVid nastave
Nedostaje slika

Kovačević dr Aleksandar
Redovni profesor

Predavanja
Nedostaje slika

Milosavljević dr Gordana
Redovni profesor

Predavanja
Nedostaje slika

Radaković Danijel
Asistent

Računarske vežbe
Nedostaje slika

Šarenac Balša
Asistent

Računarske vežbe
Nedostaje slika

Janković Eva
Asistent

Računarske vežbe
Nedostaje slika

Dorić Luka
Asistent

Računarske vežbe
Nedostaje slika

Kovačević Tamara
Asistent

Računarske vežbe
Nedostaje slika

Prokić Simona
Asistent

Računarske vežbe