Predmet: Uvod u softversko inženjerstvo
(12 -
SE0011) Osnovne informacije
Matične organizacione jedinice predmeta
Program predmeta
Program se primenjuje od 29.10.2012.. Osposobiti studente za primenu savremenih metoda, alata i najbolje prakse u procesu razvoja softvera. 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; tradicionalno shvatanje procesa razvoja softvera; agilne metodologije; iterativne metodologije. 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. Testiranje; razvoj softvera vođen testiranjem (Test-Driven Development - TDD); jedinično testiranje; integraciono testiranje; test prihvatanja; okviri za testiranje na programskom jeziku Python. Razvoj softvera vođen ponašanjem (Behavior-Driven Development - BDD); pisanje scenarija; pisanje testova prihvatanja. Agilne metode i alati za upravljanja projektom; praćenje zahteva za promenama; praćenje zadataka; povezivanje sa promenama izvornog koda. Pisanje dokumentacije; dokumentacija 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 Python-u.
Praktičan deo: instalacija, podešavanje i upotreba Eclipse integrisanog okruženja; podešavanje šablona za kodiranje u Python-u; debagovanje Python programa. Instalacija, podešavanje i upotreba klijenata za subversion VCS; Subversive. Testiranje Python programa (PyUnit, doctest). Alati za razvoj vođen ponašanjem (Lettuce); pisanje scenarija. Upravljanje zahtevima za promenama (Trac). Pisanje i generisanje dokumentacije (Sphinx). Alati za upravljanje izgradnom i instalacijom (setuptools, distribute, easy_install, pip). Virtualna okruženja u Python-u (virtualenv). Predavanja; Računarske vežbe; Konsultacije. Kontinualno praćenje upotrebe sistema za kontrolu verzija, sistema za upravljanje projekta, okvira za testiranje i okvira za pisanje dokumentacije kroz projektni zadatak. Odbrana projekta je usmena. Završni ispit je usmeni. Ocena ispita se formira na osnovu uspeha sa odbrane projektnog zadatka i završnog usmenog ispita.
|