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.
Autori | Naziv | Godina | Izdavač | Jezik |
---|
Perišić, B. | Osnovi softverskog inženjerstva | 2016 | Fakultet tehničkih nauka, Novi Sad | Srpski jezik |
Bourque, P., Dupuis; R., Abran, A., Moore, J. W. | Guide to the Software Engineering Body of Knowledge | 2005 | Sams Publishing | Engleski |
Pfleeger, S.L. | Software Engineering : Theory and Practice | 2001 | Prentice-Hall, New York | 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 |
Pressman, R. S., Maxim, B. R. | Software Engineering: A Practitioners Approach (8th edition) | 2014 | McGraw-Hill | Engleski |
Predmetna aktivnost | Predispitna | Obavezna | Broj poena |
---|
Praćenje aktivnosti pri realizaciji projekata | da | da | 10.00 |
Predmetni projekat | da | da | 30.00 |
Pismeni deo ispita - kombinovani zadaci i teorija | ne | da | 50.00 |
Odbrana projekta | da | da | 10.00 |
| Ime i prezime | Vid nastave |
---|
| | 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 |