Predmet: Uvod u softversko inženjerstvo
(17 -
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 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.
|