Preskoči na glavno vsebino

Sodobne metode razvoja programske opreme

2026/2027
Program:
Interdisciplinarni magistrski študijski program 2. stopnje Računalništvo in matematika
Letnik:
1 ali 2 letnik
Semester:
drugi
Vrsta:
izbirni
ECTS:
6
Jezik:
slovenski, angleški
Nosilec predmeta:

Damjan Vavpotič

Ure na teden – 2. semester:
Predavanja
3
Seminar
0.67
Vaje
1.33
Laboratorij
0
Vsebina

Predavanja:

Vsebina predmeta se prilagaja trenutno aktualnim trendom na področju razvoja programske opreme in programskega inženirstva. Poudarek je na obravnavi agilnih metod in izbranih naprednih tematikah s področja programskega inženirstva:

1. Pregled področja programskega inženirstva in sodobnih metod razvoja programske opreme

2. Vodenje agilnih in iterativnih projektov razvoja programske opreme

  • iterativni in inkrementalni razvoj (Unified process)
  • obvladovanje tveganj na projektih
  • agilni pristopi (Scrum, XP, Kanban, Vitek razvoj)
  • primerjava agilnih in tradicionalnih pristopov

3. Izbrane prakse agilnih pristopov (Programiranje v parih, Testno voden razvoj programske opreme, Sprotno preoblikovanje kode (refactoring))

4. Napredno inženirstvo zahtev:

  • proces inženirstva zahtev
  • upravljanje zahtev in sprememb zahtev
  • napredne tehnike zajema zahtev

5. Arhitekturno načrtovanje (arhitekturne odločitve, arhitekturni pogledi,arhitekturni vzorci)

6. Načrtovanje zanesljivih sistemov (zanesljivost, varnost, odpornost)

7. Testiranje

  • testiranje v razvoju
  • testiranje izdaj
  • uporabniško testiranje
  • posebnosti testiranja pri agilnem razvoju

8. Upravljanje konfiguracij (upravljanje verzij, izgradnja sistema, upravljanje sprememb, upravljanje izdaj)

9. Agilni razvoj in DevOps (zvezna dostava, zvezna postavitev, postavitveni cevovod)

10. Merila v programskem inženirstvu:

  • merila kakovosti programske opreme
  • merila kakovosti razvojnega procesa

11. Uporaba sodobnih pristopov razvoja programske opreme v razvojnih skupinah (vpeljevanje, sprejemanje, prilagajanje, spremljanje in vrednotenje)

Vaje:

Namen vaj je dvojen:

1. seznanjanje s sodobnimi pristopi in orodji za razvoj programske opreme;

2. Študija primera: 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 v okviru študije primera razvijajo programe skladno s pravili izbranega razvojnega procesa ter razvojni proces ovrednotijo.

Temeljni literatura in viri

1. I. Sommerville: Software Engineering, Addison-Wesley, 10. izdaja, 2016.

2. R. Stephens: Beginning Software Engineering, Wrox, 2015.

3. D. Anderson, Kanban – Successful Evolutionary Change for Your Technology Business, Sequim, WA: Blue Hole Press, 2010.

Dodatna literatura:

1. M. Cohn: User stories applied, Addison-Wesley, 2011, cop. 2004.

2. K. Beck, A. Cynthia: Extreme Programming Explained, Addison-Wesley, cop. 2005.

3. K. Schwaber: Agile Project Management with Scrum, Microsoft Press, 2004.

Cilji in kompetence

Cilj predmeta je poglobljena obravnava naprednih tematik s področja programskega inženirstva s poudarkom na sodobnih metodah 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.
Predvideni študijski rezultati

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.
Metode poučevanja in učenja

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.

Načini ocenjevanja

Način (pisni izpit, ustno izpraševanje, naloge, projekt):

Sprotno preverjanje (domače naloge, kolokviji in projektno delo)

Končno preverjanje (pisni izpit)
5 - 10, pri čemer velja, da je pozitivna ocena od 6 - 10

Reference nosilca

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.