Fakultet tehničkih nauka

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

Osnovne informacije:
 
Kategorija Teorijsko-metodološki
Uža naučna oblast Primenjene računarske nauke i informatika
ESPB 6

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.

Autori Naziv Godina Izdavač Jezik
Pressman, R. S., Maxim, B. R. Software Engineering: A Practitioners Approach (8th edition) 2014 McGraw-Hill Engleski
Perišić, B. Osnovi softverskog inženjerstva 2016 Fakultet tehničkih nauka, Novi Sad Srpski jezik
Pfleeger, S.L. Software Engineering : Theory and Practice 2001 Prentice-Hall, New York Engleski
Bourque, P., Dupuis; R., Abran, A., Moore, J. W. Guide to the Software Engineering Body of Knowledge 2005 Sams Publishing Engleski
Robert C. Martin Clean Code A Handbook of Agile Software Craftmanship 2009 Prentica Hall Engleski
Pierre Bourque, Richard E. (Dick) Fairley Guide to the Software Engineering Body of Knowledge Version 3.0 SWEBOK V.3.0 2014 IEEE Computer Society Engleski
James W. Moore The Road Map to Software Engineering: A Standards-Based Guide 2006 Wiley-IEEE Computer Society Press Engleski
Predmetna aktivnost Predispitna Obavezna Broj poena
Predmetna aktivnost
Odbrana projekta
Predispitna
Da
Obavezna
Da
Broj poena
10.00
Predmetna aktivnost
Praćenje aktivnosti pri realizaciji projekata
Predispitna
Da
Obavezna
Da
Broj poena
10.00
Predmetna aktivnost
Pismeni deo ispita - kombinovani zadaci i teorija
Predispitna
Ne
Obavezna
Da
Broj poena
50.00
Predmetna aktivnost
Predmetni projekat
Predispitna
Da
Obavezna
Da
Broj poena
30.00
Predavanja
Predavanja
Računarske vežbe
Računarske vežbe
Računarske vežbe
Računarske vežbe
Računarske vežbe
Računarske vežbe