Katalog

    Naziv:

    Strokovni sodelavec/strokovna sodelavka za izdelavo programske opreme

    Status:

    Objava

    Datum objave sklepa ministra:

    7.10.2021

    Predhodniki:

    Strokovni sodelavec/strokovna sodelavka za programske aplikacije in podatkovne baze (64166331)

    Klasius-P16:

    Razvoj in analiza programske opreme in aplikacij (0613)

    Klasius-SRV:

    Podraven 6/2: Izidi, certifikatni sistem NPK (262)

    Raven kvalifikacije:

    SOK 6, EOK 5


    1. Ime in koda kataloga standardov strokovnih znanj in spretnosti

    Strokovni sodelavec/strokovna sodelavka za izdelavo programske opreme (1816181011)

    2. Potrebna strokovna znanja in spretnosti in posebni pogoji, ki jih mora izpolnjevati oseba, ki želi pridobiti poklicno kvalifikacijo

    2.1. Strokovna znanja in spretnosti

    Glej poklicni standard Strokovni sodelavec/strokovna sodelavka za izdelavo programske opreme 18161810 in točko 11 tega kataloga.

    2.2. Posebni pogoji, ki jih mora izpolnjevati oseba, ki želi pridobiti poklicno kvalifikacijo

    • Najmanj dve leti delovnih izkušenj s področja razvoja programske opreme in aplikacij ali
    • dokazila o samostojnem delu na področju razvoja programske opreme in aplikacij, ki se dokazujejo z verodostojnimi listinami (referenčna pisma in/ali poročila o opravljenem delu s podpisom odgovorne osebe in/ali pogodbe in/ali dokazilo o študentskem delu itd.), iz katerih sta razvidna čas opravljanja dela v trajanju najmanj dveh let in vsebina opravljenega dela ali
    • trije lastni izdelki (trije primeri programskih aplikacij), pri katerih se lahko dokaže avtorstvo in niso starejši od dveh let.

    3. Povezanost s programi za pridobitev izobrazbe


    4. Načini preverjanja strokovnih znanj in spretnosti

    4.1. POTRJEVANJE

    V postopku svetovanja kandidat pripravi osebno zbirno mapo, ki jo komisija ovrednoti, in če je kandidat v njej predložil verodostojna, veljavna in ustrezna dokazila o znanjih, spretnostih in kompetencah iz poklicnega standarda, lahko komisija:

    • prizna znanja in spretnosti poklicnega standarda v celoti,
    • prizna znanja in spretnosti poklicnega standarda delno in določi  tista znanja, spretnosti in kompetence, ki jih bo preverjala,
    • ne prizna nobenih znanj in spretnosti poklicnega standarda, ker kandidat ne dokazuje nobenih znanj, spretnosti in kompetenc iz poklicnega standarda, in bo preverjala smiselno celotni poklicni standard.

    4.2. NAČINI PREVERJANJA STROKOVNIH ZNANJ IN SPRETNOSTI

    Praktično preverjanje z zagovorom: izdelek z zagovorom

    Kandidat pred neposrednim preverjanjem pripravi izdelke po izboru in navodilih komisije:
    • aplikacijo z izvorno kodo (izdelana z določeno tehnologijo na podlagi podanih specifikacij, v ustreznem programskem jeziku, platformi, metodi razvoja itd.), ki vsebuje zahtevnejše uporabniške vmesnike, lastne preproste knjižnice in/ali integracijske komponente programske opreme, uporablja SQL ali NoSQL podatkovno bazo, je nameščena in dostopna komisiji in
    • dokumentacijo:
      • uporabniško:
        • navodila za uporabo aplikacije (v elektronski ali papirnati obliki oz. vgrajeno v uporabniški vmesnik aplikacije), pogosto zastavljena vprašanja ...;
      • projektno:
        • terminski načrt, načrt virov, finančni načrt ...
      • tehnično:
        • specifikacije zahtev (uporabniške zgodbe ...)
        • arhitektura aplikacije
        • načrt uporabniškega vmesnika
        • načrt tehniške izvedbe
        • načrt testiranja
        • navodila za namestitev
        • predlogi za nadgradnje
        • ... in
    • prispevka odprtokodni skupnosti (vsaj dva prispevka na odprtokodni platformi: prijava napake/predlog rešitve, udeležba v diskusiji, objava rešitve v odprtih platformah za sodelovalno programiranje, integracija popravka v glavnem projektu …) ter
    • pripravi vsaj dve novici iz strokovne literature

    Navodila za pripravo izdelkov, ki jih mora kandidat opraviti predhodno, določi komisija po pregledu osebne zbirne mape. Kandidat z izdelki dokaže obvladovanje zahtevanih poklicnih kompetenc po zahtevah poklicnega standarda.

    Ob predstavitvi izdelka na preverjanju kandidat opravi tudi ustni zagovor, ki obsega preverjanje znanj in spretnosti, ki so vključeni v  posamezno operativno delo v poklicnem standardu Strokovni sodelavec/strokovna sodelavka za izdelavo programske opreme.

    Kandidat lahko izdelke priloži k osebni zbirni mapi (v postopku svetovanja).

    5. Merila preverjanja


    Področje ocenjevanja

    Merila ocenjevanja

    delež

    Načrtovanje in priprava izdelka

    -    postopek izvedbe

    -    ustvarjalnost in inovativnost kandidata pri
         izdelavi izdelka

    -    uporaba ustreznih/aktualnih tehnologij

    10

    Izdelek

    -    uporabljene metode dela in pripomočki

    -    tehnična izvedba rešitve

    -    uporabnost aplikacije

    55

    Dokumentacija

    -    jasnost in razumljivost

    -    ustrezna raba terminologije

    15

    Zagovor

    -    predstavitev aplikacije in dokumentacije

    -    jasnost, pravilnost, natančnost in  
         celovitost podanih odgovorov


    20


    IZLOČILNA MERILA

    •         nedelujoča aplikacija, ki jo je kandidat izdelal pred preverjanje
    •         pomanjkljiva dokumentacija



    6. Poklic oziroma sklopi zadolžitev v okviru poklica, ki jih je mogoče opravljati po pridobljeni poklicni kvalifikaciji in koda


    7. Raven zahtevnosti dela

    (VI)

    8. Prilagoditve za osebe s posebnimi potrebami

    Osebam s posebnimi potrebami se lahko prilagodijo oblike in trajanje preverjanja ter sestava komisij za preverjanje in potrjevanje poklicnih kvalifikacij.

    Podrobnejši opis zgoraj navedenih prilagoditev je naveden v Pravilniku,  ki ureja način izvajanja mature za kandidate s posebnimi potrebami (Uradni list RS 82/14, člen 9, 10 in 11).


    9. Materialni in kadrovski pogoji, ki jih morajo izpolnjevati izvajalci postopkov za ugotavljanje in potrjevanje poklicnih kvalifikacij

    9.1. Materialni pogoji

    Izvajalci postopkov ugotavljanja in potrjevanja poklicnih kvalifikacij morajo zagotavljati informiranje in svetovanje kandidatom z usposobljenim svetovalcem. 

    • Učilnica z računalnikom, s projektorjem, s povezavo z internetom ter s programskimi orodji skladno s katalogom.

    9.2. Kadrovski pogoji

    Licenco za člana komisije za preverjanje in potrjevanje nacionalne poklicne kvalifikacije lahko pridobi, kdor izpolnjuje predpisane pogoje z zakonom, ki ureja nacionalne poklicne kvalifikacije.

    Komisijo sestavljajo trije člani, od katerih ima:

    • en član izobrazbo najmanj na ravni SOK 7 s področja računalništva ali informatike ali elektronskih komunikacij in najmanj 5 let delovnih izkušenj s področja računalništva ali informatike ali elektronskih komunikacij in

    • en član izobrazbo najmanj na ravni SOK 6 s področja računalništva ali informatike ali certifikat o nacionalni poklicni kvalifikaciji s področja računalništva ali informatike najmanj na ravni SOK 6 in najmanj 5 let delovnih izkušenj s področja računalništva oz. izdelovanja programske opreme in

    • en član mora izpolnjevati pogoje, navedene v prvi ali drugi alineji.

    10. Časovna veljavnost izdanih certifikatov

    Ni časovne omejitve.

    11. Standardi strokovnih znanj in spretnosti

    Ključna dela Znanja in spretnosti Naloge za preverjanje
    uporablja informacijsko-komunikacijsko opremo in storitve za potrebe izdelave programske opreme in sledi razvoju računalništva in informatike

    • pozna računalniške komponente in njihov namen
    • uporabi virtualizacijo opreme in storitev (Docker, VirtualBox ...)
    • postavi manjše fiksno ali brezžično omrežje ter pozna vlogo komponent omrežja (stikala, usmerjevalniki, prehodi ...)
    • uporablja različno omrežno opremo, primerja različne protokole in storitve (Ethernet, IPv4, IPv6, TCP, UDP, HTTP(S), IMAP(S), LDAP, DNS, DHCP ...)
    • upošteva varnostne ukrepe pri delovanju in dostopu do informacijsko-komunikacijske opreme in storitev (AAA, glede na lokacijo naprave – zunanja/notranja, varno shranjevanje podatkov, varnost v komunikaciji)
    • uporabi različne storitve v oblaku (XaaS)
    • pozna elemente kibernetske varnosti: zagotavljanje celovitosti (integriteta) in zakrivanje (šifriranje) informacij ter napadi (socialni inženiring, virusi, trojanski konji, izraba varnostnih lukenj in napak ...)
    • sledi splošni strokovni literaturi (Slo-Tech, IEEE Spectrum, Communication ACM, spletni časopisi ...)
    Kandidat na podlagi  predhodno
    izdelane aplikacije:

    • priporoči strojno opremo oziroma virtualno okolje, v katerem bo izvedena aplikacija
    • opiše postopek nameščanja virtualnega okolja ter kreiranja virtualnega računalnika ali kontejnerja za potrebe izvajanja ali razvoja pripravljene aplikacije
    • opiše postopek priključitve (virtualnega) računalnika ali kontejnerja v računalniško omrežje
    • opiše vsaj dva mehanizma varovanja podatkov (požarni zid, varnostne kopije, šifriranje, avtentikacija, avtorizacija, beleženje dostopov, antivirusni program ...)
    • opiše način uporabe izbrane storitve v oblaku
    • predstavi varnostne ukrepe (zagotavljanje celovitosti, zakrivanje informacij ter napadi) na pripravljeni aplikaciji ali izbranem primeru
    • predstavi vsaj dve novejši strokovni novici (nove tehnologije, nova orodja, nove metode ...) iz splošne strokovne literature

    spremlja metodologijo in tehnologijo razvoja programske opreme

    • sledi razvoju razvoja programske opreme na izbranem področju (agilni razvoj, scrum ...)
    • sledi in uporablja strokovno literaturo
    • sledi razvoju orodij in storitev, ki se uporabljajo pri razvoju programske opreme
    • pozna in sledi standardom za izdelavo programske opreme za uporabnike s posebnimi potrebami (Web Accessibility Initiative ...)
    • aktivno sodeluje na portalih, namenjenih širjenju znanja (Stack Overflow ...)
    • prispeva odprtokodnim rešitvam in orodjem (Stack Overflow, GitLab …)
    • uvaja nove pristope in tehnologije pri razvoju programske opreme
    Kandidat na podlagi  predhodno izdelane aplikacije:

    • predstavi (uporabljene) sodobne metode, orodja in storitve pri različnih fazah razvoja programske opreme
    • predstavi vsaj dva prispevka na odprtokodni platformi (prijava napake/predlog rešitve, udeležba v diskusiji, objava rešitve v odprtih platformah za sodelovalno programiranje, integracija popravka v glavnem projektu …)
    analizira zahteve uporabnika/naročnika za izdelavo programske opreme

    • z naročnikom oblikuje dele projekta, njihovih ciljev in možnih rešitev
    • organizira in usklajuje oblikovanje specifikacij (uporabniške zgodbe …)
    • usklajuje postopek verifikacije specifikacij skladno s tehničnimi možnostmi
    Predstavi predlog idejne programske rešitve, na kateri temelji izdelana aplikacija, in sicer:  

    • cilje rešitve  
    • njeno idejno zasnovo
    • njene funkcionalne zahteve
    • ovrednoti tehnične možnosti glede na dane specifikacije
    načrtuje razvoj rešitve
    • pripravi predlog operativnih in terminskih načrtov izvajanja manjših projektov ali posameznih faz
    • izbere ustrezno razvojno okolje (upravljanje različic, razvojna orodja ...)
    Kandidat na podlagi  predhodno izdelane aplikacije:

    • predstavi načrt izvajanja projekta, posameznih faz ter obveznosti, ki iz tega načrta izhajajo
    • ovrednoti kadrovske pogoje, terminski načrt
    • ovrednoti stroške izdelave
    • predstavi izbrano razvojno okolje in programska orodja
    načrtuje razvoj programske opreme
    • pridobi ustrezne informacije za izdelavo oz. posodobitev programskih rešitev
    • samostojno izdela arhitekturo manj zahtevne programske rešitve
    • izbere ustrezno tehnologijo glede na dani primer (programski jezik, podatkovno bazo, storitve, strojno opremo ...)
    Kandidat na podlagi  predhodno izdelane aplikacije:
    • predstavi arhitekturo predhodno pripravljenega izdelka 
    • utemelji izbiro ustrezne tehnologije za predhodno pripravljen izdelek
    • predstavi predloge za (nad)gradnjo izdelane aplikacije
    • utemelji razloge za izbrano pot do rešitve:
      • izbiro programskega jezika
      • podatkovne baze 
      • programskih knjižnic ipd.
    razvija programsko opremo
    • programira v vsaj enem splošnonamenskem programskem jeziku (Java, Python, javascript, C++, C# ...)
    • razvija programsko opremo na različnih platformah (namizne, spletne, mobilne, vgradne …)
    • uporablja orodja za razvoj programske opreme (razhroščevalnik  …)
    • upošteva specifikacije, jih usklajuje z možnostmi tehničnih rešitev in predlaga spremembe ter pripravi predloge izboljšav
    • razume in udejanji zapisane specifikacije
    • glede na specifikacije izdela programske module oziroma aplikacije v izbranem programskem jeziku
    • poveže programsko rešitev ter neodvisne storitve in tehnologije (oblačne storitve, moduli za varovanje podatkov, zaščita osebnih podatkov ...)
    • načrtuje preproste podatkovne SQL in noSQL-baze (normalizacija, specifike, optimizacija, varovanje), uporablja naprednejše funkcionalnosti sistemov za upravljanje podatkov
    • pozna strukture za razvoj vmesnikov (JSON, XML, HTML, CSS ...)
    • upošteva posebnosti programskega jezika za zagotavljanje varnosti pri izvajanju programa
    • oceni učinkovitost programske rešitve glede na izbrana merila (čas, sistemski viri, energija ...) in predlaga izboljšave
    • razhroščuje in analizira podatke o ozkih grlih pri izvajanju programske opreme in predlaga izboljšave
    • optimizira razvite programske rešitve
    • uporablja orodja za javljanje in odpravo napak
    • izdela tehnično in uporabniško dokumentacijo programske rešitve
    • vodi razvoj programske opreme skladno z izbrano metodologijo
    • pozna uporabo in implementacijo zahtevnejših podatkovnih struktur in algoritmov v izbranem programskem jeziku
    • programira zahtevnejše uporabniške vmesnike, preprostejše knjižnice, integracijske komponente programske opreme
    Kandidat na podlagi  predhodno izdelane aplikacije:
    • predstavi in utemelji rešitev v izbranem programskem jeziku na podlagi izdelane aplikacije ali primera po izbiri komisije:
      • utemelji izbiro metodologije razvoja
      • utemelji izbiro razvojnega okolja
      • predstavi zahtevnejše uporabniške vmesnike, lastne preproste knjižnice in/ali integracijske komponente programske opreme, ki so del izdelane aplikacije
    • predstavi načrt in uporabo podatkovne baze (SQL ali noSQL):
      • prikaže in pojasni način zaščite  podatkov pred nepooblaščenim dostopom
      • prikaže uporabo neodvisne storitve s pomočjo aplikacijskih vmesnikov ali na druge načine
    • pojasni načine iskanja napak in optimizacije delovanja aplikacije:
      • uporabo razhroščevalnika
      • dnevnika dogodkov
      • profilerja ali drugih orodij za analizo programske kode in delovanja programa
    • predstavi priročnik za uporabo, ki ga je pripravil v elektronski ali papirni obliki, oz. predstavi pomoč, ki je  vgrajena v sam uporabniški vmesnik
    • predstavi tehnično dokumentacijo programske rešitve

    testira razvito programsko opremo
    • pripravi načrt testiranja manjšega projekta
    • za pripravljene testne podatke napiše ustrezne teste
    • izvaja preverjanje razvitih programskih rešitev in ovrednoti rezultate
    • dokumentira rezultate, predlaga izboljšave in nove teste
    Predstavi pripravljen načrt testiranja aplikacije:
    • testira delovanje po enem ali več uveljavljenih načinih oziroma procesih testiranja programske opreme
    • predlaga poenostavitve in druge izboljšave glede na opravljene teste 
    namešča in uvaja razvite programske rešitve
    • pozna metode uvajanja in pripravi izobraževanje za uporabnike razvite rešitve
    • pripravi načrt nameščanja razvite programske rešitve
    • namešča ali pomaga stranki pri nameščanju razvite programske opreme
    Kandidat na podlagi  predhodno izdelane aplikacije:
    • predstavi kompetence, ki jih mora imeti bodoči uporabnik programske rešitve
    • predstavi že pripravljeno dokumentacijo za podporo uporabniku:
      • navodila za namestitev in nadgradnje
      • pogosto postavljena vprašanja 
      • znane pomanjkljivosti in hrošče
      • navodila za obvod ali razreševanje težav 
      • diagrame poteka za tehnično podporo
    • odgovarja na vprašanja o uporabi in delovanju programa, postavljena z uporabniškega vidika
    vzdržuje razvite programske rešitve
    • posodablja razvito programsko opremo (zastarele storitve, verzije, razvojna orodja ...)
    • obvešča uporabnike o stanju programske rešitve (redno posodabljanje ...), predlaga ukrepe in potrebne nadgradnje
    • nudi pomoč uporabnikom razvite programske opreme (prva, druga in tretja raven podpore) raven podpore)
    Kandidat na podlagi  predhodno izdelane aplikacije:
    • opiše na primeru, kdaj je delovanje programske opreme ogroženo zaradi zastarelosti
    • dokumentira potrebne korake za nadgradnjo ter nadgradnjo izvede
    • predstavi pomoč uporabnikom na podlagi danih scenarijev na prvi, drugi in tretji ravni podpore

    12. Literatura, strokovno gradivo

    • Sommerville, I. (2019). Engineering Software Products. An Introduction to modern Software Engineering, Pearson. Lancaster. United Kingdom
    • Pressman, R. S.  (2017). Software Engineering: A Practioner's Approach, 8th Edition. McGraw Hill Text. New York. USA
    • Leach, R. J. (2016). Introduction to Software Engineering, 2nd Edition. CRC Press. Boca Raton. USA.

    13. Delovna skupina za pripravo kataloga standardov strokovnih znanj in spretnosti

    • Vera Suhadolnik, Center RS za poklicno izobraževanje, vodja priprave Kataloga standardov strokovnih znanj in spretnosti
    • Aleš Volčini, Elektrotehniško-računalniška strokovna šola in gimnazija Ljubljana, Ljubljana
    • Melita Kompolšek, Elektrotehniško-računalniška strokovna šola in gimnazija Ljubljana, Ljubljana
    • Aleksandar Lazarević, Računalniško svetovanje in izobraževanje, Aleksandar Lazarević, s.p., Mengeš