Pogojev za vključitev v delo ni.
Sodobne metode razvoja programske opreme
Damjan Vavpotič
Predavanja:
Vsebina predmeta se prilagaja trenutno aktualnim trendom na področju razvoja programske opreme. Trenutno je prilagojena obravnavi agilnih metod in empiričnemu ovrednotenju njihove učinkovitosti:
1. Pregled značilnosti agilnih metod za razvoj programske opreme
2. Vodenje agilnih projektov razvoja programske opreme
iterativen in inkrementalen razvoj
metoda Scrum
3. Tipične prakse ekstremnega programiranja
Programiranje v parih
Testno voden razvoj programske opreme
Sprotno preoblikovanje kode (refactoring)
Orodja za podporo testno vodenemu razvoju in preoblikovanju kode
4. Pomanjkljivosti ekstremnega programiranja
5. Kanban in vitek razvoj programske opreme
6. Metrike v programski opremi in merjenje učinkovitosti razvojnega procesa
7. Študija primera: empirično ovrednotenje posameznih praks iz točk 2 in 3
8. Primerjava agilnega pristopa z modeli za discipliniran razvoj programske opreme (Personal Software Process, Team Software Process, Capabilty Maturity Model)
Vaje:
Namen vaj je dvojen:
1. seznanjanje s sodobnimi orodji za razvoj programske opreme,
2. empirično ovrednotenje posameznih pristopov k razvoju programske opreme na podlagi praktičnega dela na projektih, ki so čim bolj podobni realnim.
Delo izven kontaktnih ur:
Študenti razvijajo programe, ki so sestavni del projekta, ki služi kot osnova za študijo primera.
- I. Sommerville: Software Engineering, Addison-Wesley, 10. izdaja, 2016.
- R. Stephens: Beginning Software Engineering, Wrox, 2015.
- D. Anderson, Kanban – Successful Evolutionary Change for Your Technology Business, Sequim, WA: Blue Hole Press, 2010.
Dodatna literatura: - M. Cohn: User stories applied, Addison-Wesley, 2011, cop. 2004.
- K. Beck, A. Cynthia: Extreme Programming Explained, Addison-Wesley, cop. 2005.
- K. Schwaber: Agile Project Management with Scrum, Microsoft Press, 2004.
Cilj predmeta je poglobljena obravnava sodobnih (trenutno aktualnih) metod razvoja programske opreme v primerjavi z že uveljavljenimi pristopi. Študenti delajo na obsežnejšem projektu, ki služi kot študija primera za ovrednotenje novih pristopov, da bi ugotovili njihove prednosti in pomanjkljivosti.
Predvidene kompetence:
sposobnost opredelitve, razumevanja in reševanja kreativnih strokovnih izzivov na področju računalništva in informatike,
sposobnost uporabe pridobljenega znanja pri samostojnem delu za reševanje tehničnih in znanstvenih problemov na področju računalništva in informatike, sposobnost nadgradnje pridobljenega znanja,
sposobnost skupinskega dela v profesionalnem delovnem okolju, vodenje manjše strokovne skupine,
sposobnost administrativnega vodenja procesov, povezanih z raziskovanjem, industrijo, izobraževanjem in drugimi področji,
sposobnost razumevanja in uporabe znanja računalništva in informatike na drugih tehničnih in relevantnih področjih (ekonomija, organizacijske vede ipd.),
praktično znanje in spretnosti, potrebne za uspešno strokovno delo na področju računalništva in informatike,
samostojno reševanje zahtevnih razvojnih, inženirskih in organizacijskih nalog kot tudi povprečno zahtevnih raziskovalnih nalog na področju računalništva in informatike.
Po uspešnem zaključku tega predmeta bo študent zmožen:
poznati in razumeti sodobne pristope k razvoju programske opreme
razumeti ključne prednosti sodobnih metod razvoja programske opreme (v primerjavi z že uveljavljenim tradicionalnim pristopom)
uporabljati orodja, ki podpirajo sodobne metode razvoja programske opreme
uporabiti sodobne metode razvoja programske opreme pri razvoju dejanskih softverskih projektov
empirično ovrednotiti rezultate novih metod
bolje razumeti različne faktorje in okoliščine, ki vplivajo na uspešnost softverskih projektov
izboljšati sposobnosti za skupinsko delo, vodenje, načrtovanje in organizacijo, medsebojno komuniciranje, pisno in ustno poročanje.
Predavanja z aktivno udeležbo študentov (razlaga, diskusija, primeri, reševanje problemov). Laboratorijske vaje s praktičnim delom na večjem projektu, ki služi kot študija primera za ovrednotenje posameznih pristopov k razvoju programske opreme.
Sprotno preverjanje (domače naloge, kolokviji in projektno delo)
Končno preverjanje (pisni in ustni izpit)
(ocene: 5 (negativno), 6-10 (pozitivno), ob upoštevanju Statuta UL)
Damjan Vavpotič, Marko Robnik Šikonja, Tomaž Hovelja, "Exploring the relations between net benefits of IT projects and CIOs perception of quality of software development disciplines", Business & information systems engineering, [Print ed.], 2020, vol. 62, no. 4, str. 347-360
Damjan Fujs, Simon Vrhovec, Boštjan Žvanut, Damjan Vavpotič, "Improving the efficiency of remote conference tool use for distance learning in higher education : a kano based approach", Computers & Education : an international journal, [Print ed.], May 2022, vol. 181, str. 1-15, ilustr., ISSN 0360-1315
Damjan Vavpotič, Saimir Bala, Jan Mendling, Tomaž Hovelja, "Software process evaluation from user perceptions and log data", Journal of software, Apr. 2022, vol. 34, iss. 4, str. 1-14, ilustr., ISSN 2047-7473
Damjan Vavpotič, Diana Kalibatiene, Olegas Vasilecas, Tomaž Hovelja, "Identifying key characteristics of business rules that affect software project success", Applied sciences, Jan. 2022, vol. 12, iss. 2, str. 1-10, ilustr., ISSN 2076-3417
Damjan Fujs, Simon Vrhovec, Damjan Vavpotič, "Balancing software and training requirements for information security", Computers & security, Nov. 2023, vol. 134, str. 1-13, ilustr., ISSN 0167-4048
Celotna bibliografija je dostopna na SICRISu:
http://www.sicris.si/search/rsr.aspx?lang=slv&id=13311.