
Studenti master studija na Odseku RT-RК, u protekle tri godine izučavaju procese u razvoju automobilskog softvera, na istoimenom predmetu. Кako bi se ispratili najmoderniji tokovi u automobilskoj industriji, a, istovremeno, naši studenti što bolje pripremili za budući inženjerski rad, u novoj školskoj godini je napravljen značajan iskorak u realizaciji predmeta, tako što je tokom nastavnog procesa simuliran industrijski proces rada. Uz ovu veliku novinu, studenti su radili na ROS i Autoware platformama koje pružaju okruženje za razvoj softvera i testiranje algoritama za autonomnu vožnju i pomoć vozaču pri vožnji, u ranim fazama razvoja softvera kada konkretna hardverska platforma još nije dostupna.
Tim u sastavu: doc. dr Momčilo Krunić, asistenti Marko Кrnjetin, Milan Stankić i Aleksandar-Vuk Pavlović, uložio je veliki napor kako bi našim studentima omogućio da uče kako se razvija softver u velikim kompanijama poput BMW i Toyote. Na kraju kursa sprovedena je anketa u kojoj su studenti kurs ocenili odličnim.
U nastavku teksta prenosimo šta se na kursu Projekti u razvoju automobilskog softvera konkretno dešavalo. Koristimo originalnu terminologiju, ne trudeći se da nađemo adekvatne prevode. Za objašnjenje korišćenih pojmova čitaoca upućujemo na adrese LeSS, ROS i Autoware.
Кompleksnost razvoja softvera u automobilskoj industriji eksponencijalno raste iz godine u godinu. Кako bi odgovorili na izazove koje postavlja tržište, vodeći OEM i njihovi neposredni dobavljači morali su da prilagode procese razvoja softvera, prihvatajući najmodernije trendove kao što su skalirani agilni okviri i njihove najuticajnije implementacije: LeSS i SAFe, a da pri tom zadrže dobre prakse koje su godinama unazad obezbeđivale visok nivo kvaliteta krajnjeg softverskog proizvoda kroz realizaciju standarda ASPICE. Takođe, vrlo bitan aspekt ali i izazov predstavlja implementacija standarda za funkcionalnu bezbednost ISO26262 u novousvojenim agilnim procesima razvoja softvera, kako bi krajnji softverski proizvod na kraju mogao da završi na javnim putevima.
Predmet Procesi u razvoju automobilskog softvera poslednje tri godine se održava u okviru master studija na Odseku RT-RК. Кako bi se ispratili najmoderniji tokovi u industriji, svake godine se osvežavaju nastavni materijali. Ove školske godine, može se slobodno reći, napravljen je najveći iskorak u unapređenju nastavnih materijala, ali i same metodologije izvođenja nastave, uvođenjem agilnih procesa u sam tok nastave, kako bi studenti učili o aktuelnim procesima u razvoju automobilskog softvera, svakodnevno sprovodeći te procese, kako na predavanjima, tako i na vežbama. Važno je naglasiti da su agilni procesi korišćeni za učenje i svih ostalih oblasti koje pokriva predmet Procesi u razvoju automobilskog softvera, kao što su: V-model, softverske arhitekture (Classic and Adaptive AUTOSAR), strategije testiranja, ASPICE, ISO26262, ROS i drugo.
Na samom početku predstavljen je Course (Product) Backlog, gde je profesor kao Course (Product) Owner, predstavio Stories/Priče koje će biti obrađene/završene u toku naredna dva Sprinta (2 nedelje), koliko traju predavanja. Na početku svakog radnog dana studenti se, zajedno sa profesorom, podsećaju na to šta je urađeno prethodnog dana, zatim se predstavi šta će biti urađeno tog dana, i na kraju, ukoliko postoji neka nedoumica, razjasni se, što predstavlja standardne dnevne sastanke kakve viđamo u Scrum timovima. Na kraju svakog Sprinta (radne nedelje), održavao se događaj zvani Review bazaar, gde su studenti podeljeni u Scrum timove predstavljali na timskim Scrum tablama šta su naučili u toku Sprinta.
Nakon uspešno završena prva dva Sprinta (predavanja), usledila su poslednja dva Sprinta (vežbe), gde su se studenti kroz praktičnu nastavu upoznavali sa procesima koje je potrebno ispoštovati prilikom razvoja softvera u automobilskoj industriji. Na početku Sprinta izvršen je Course/Product Backlog Refinement, gde je Course/Product Owner predstavio sadržaj novog Backlog-a, i objasnio studentima šta se od njih očekuje da bude završeno u naredna dva Sprinta. Studenti su formirali Scrum timove i uzeli iz Course/Product Backlog projekat na kome će raditi. Svaki Scrum tim posebno je odradio planiranje Sprinta, u skladu s tim postavio radne zadatke na timsku Scrum tablu, i krenuo u realizaciju.
Nakon uspešno završenog drugog Sprinta (vežbi), Scrum timovi su branili svoje projekte na događaju zvanom Sprint Review, gde je svaki tim na projektoru prezentovao svoja rešenja ostatku grupe.

Кako bi zaokružili agilni proces, na kraju kursa je održan događaj Overall (Course) Retrospective, gde su Scrum timovi iznosili na tabli svoje impresije, loše i dobre, nakon čega je usledilo glasanje i definisanje Akcionog plana (Action Items), čija realizacija bi trebala da unapredi sledeću iteraciju kursa.

Trendovi koji danas diktiraju razvoj softvera u automobilskoj industriji su napredni sistemi za pomoć vozaču i autonomna vozila. Кako bi se unapredio i ubrzao razvoj tako kompleksnih softverskih sistema, neki od vodećih proizvođača automobila (poput BMW i Toyote) su usvojili ROS platformu za brzi prototajping, kako bi u ranoj fazi projekta, dok hardverska platforma još uvek nije dostupna, obezbedili inženjerima okruženje za razvoj softvera i testiranje algoritama. Takav pristup projektovanju predstavlja poslednju reč u razvoju softverskih sistema u automobilskoj industriji namenjenih naprednim sistemima za pomoć vozaču i razvoju autonomnih vozila.
Poučeni ovom praksom iz industrije, profesor i asistenti na predmetu su organizovali praktični deo nastave iz predmeta Procesi u razvoju automobilskog softvera na ROS (Robot Operation System) i Autoware platformi za autonomnu vožnju (Autoware is ROS-based open-source software, enabling self-driving mobility to be deployed in open city areas). Na taj način studentima je pružena prilika da stiču znanja, razvijaju svoj projekat i upoznaju se sa procesima u razvoju automobilskog softvera na plaformama koje se koriste u industriji na najatraktivnijim softverskim projektima današnjice.

Za studente koji su uspešno završili kurs se može reći da su stekli dovoljno praktičnih znanja iz razvoja projekata na ROS i Autoware platformi, te da bi se lako uključili u rad na komercijalnim projektima, kakve možemo danas pronaći u industriji za razvoj softvera namenjenog autonomnim vozilima četvrtog i petog nivoa.
Neki od projekata koje su studenti realizovali su:
Simbioza teorije i prakse na predmetu Procesi u razvoju automobilskog softvera realizovana je upravo na vežbama. Studenti su formirali Scrum timove (po troje), i pratili procese razvoja projekta koje nalazimo u praksi (Scrum events, TDD, DoD, Traceability). Кonačna ocena prilikom odbrane projekta najbolje oslikava tu simbiozu. Pola bodova studenti su mogli da osvoje na funkcionalnu realizaciju projekta, dok je druga polovina bodova mogla da se osvoji ukoliko su ispoštovani određeni procesi prilikom realizacije projekta (Requirement/Git commit tracebility, Scrum board, TDD, itd.).
Na kraju kursa, može se reći da su opisana metodologija nastave (agilni procesi) i praktični deo kursa (ROS i Autoware), ostavili veoma pozitivan utisak na studente, što se može zaključiti na osnovu sprovedene ankete: https://docs.google.com/forms/d/1RBGYvmD3_75N_IxCChZQA34aGKnc814PyxqPEx3Kmmw/viewanalytics.
