63732 Tehnologija programske opreme

63732 Tehnologija programske opreme

  • Vrsta programa: interdisciplinarni univerzitetni študijski program Upravna informatika 1. stopnja
  • 6 ECTS
  • Tip predmeta: izbirni
  • Število ur predavanj: 45
  • Seminarske vaje: 30
  • Samostojno delo: 105
  • Nosilec: dr. Alenka Kavčič

 

 

1. Cilji in kompetence

Cilj predmeta je spoznati osnove področja tehnologije programske opreme, ki opredeljuje nabor pristopov, metod in orodij za učinkovit razvoj (predvsem obsežnejše) programske opreme. V okviru tega je predstavljen izbran nabor podpodročij, ki v praksi zajemajo bistvene koncepte TPO. Posamezni koncepti so na vajah praktično predstavljeni ob postopnem razvoju manjše aplikacije z uporabo agilnega načina razvoja.

Predvidene kompetence:

  • poznavanje različnih pristopov k razvoju programske opreme, posameznih metodologij razvoja in njihovih značilnosti (prednosti in slabosti), s poudarkom na agilnih metodologijah,
  • poznavanje posameznih faz razvoja programske opreme,
  • priprava načrta projekta s poudarkom na obvladovanju tveganj (identifikacija in obravnava tveganj),
  • poznavanje različnih načinov opisa uporabniških zahtev (vključno z UML diagrami),
  • poznavanje in uporaba arhitekturnih stilov,
  • poznavanje glavnih principov načrtovanja (modularnost, povezanost modulov in kohezija, skrivanje informacij, splošnost ...) ter uporaba načrtovalskih vzorcev,
  • poznavanje različnih pristopov in tehnik testiranja (na nivoju enot, integracije in sistema) ter osnovnih principov testno vodenega razvoja,
  • poznavanje in uporaba različnih orodij za podporo razvoju programske opreme (kot so sistemi za kontrolo različic, integrirana razvojna okolja, orodja za avtomatizirano testiranje enot in podobno).

2. Vsebina predmeta

Predavanja obsegajo naslednja poglavja:

  • Uvod v Tehnologijo programske opreme
  • Modeli razvoja programske opreme
  • Agilne metodologije, Scrum, XP
  • Načrtovanje projektov (projektni načrt, vključno s terminskim načrtom, oceno obsega dela in stroškov ter obvladovanjem tveganj)
  • Življenjski cikel razvoja programske opreme
  • Zajem in upravljanje zahtev
  • UML
  • Arhitektura sistema
  • Načrtovanje modulov
  • Načrtovalski vzorci
  • Implementacija, dokumentiranje
  • Testiranje in testno voden razvoj
  • Vzdrževanje programske opreme
  • Evalvacija projekta, procesov in izdelkov
  • Prihodnost tehnologije programske opreme


Vaje:
Na laboratorijskih vajah študentje utrjujejo obravnavano snov na postopnem razvoju manjše aplikacije, ki jo izvedejo kot samostojno delo na projektu z zaključno predstavitvijo. Študentje delajo v manjših projektnih skupinah in pri tem uporabljajo agilen pristop. Pomemben del vaj je tudi spoznavanje ter uporaba ustreznih orodij.

3. Temeljna literatura in viri

  • S. L. Pfleeger, J. M. Atlee: Software Engineering, Theory and Practice, Pearson, 2010.
  • I. Sommerville: Software Engineering, Pearson, 2011.
  • K. Beck: Extreme Programming Explained: Embrace the Change, Addison-Wesley, 2004.

4. Predvideni študijski rezultati

Znanje in razumevanje:

  • Poznavanje področja tehnologije programske opreme.

Uporaba:

  • Razvoj programske opreme, izbira ustreznega pristopa k razvoju.

Refleksija:

  • Spoznavanje in razumevanje kompleksnosti priprave in izvedbe projekta razvoja programske opreme.

Prenosljive spretnosti - niso vezane le na en predmet:

  • Primeren pristop k pripravi in izvedbi projekta, celovit pristop k razvoju programske opreme, delo v skupini.

5. Metode poučevanja in učenja

Predavanja se izvajajo frontalno, s praktičnimi demonstracijami.
Delo na vajah poteka individualno ali v skupinah, pod mentorstvom asistenta.

6. Načini ocenjevanja

Način: pisni izpit, sprotne naloge, projekt, predstavitev projekta.

  • Sprotno preverjanje: domače naloge, naloge na vajah, projektno delo. (50 %)
  • Končno preverjanje: kolokviji ali pisni izpit. (50 %)

Ocene: 6-10 pozitivno, 1-5 negativno
(v skladu s Statutom UL).