ŠTUDIJNÝ ODBOR
9.2.5   SOFTVEROVÉ INŽINIERSTVO

Softvérové inžinierstvo je študijný odbor (ďalej len SO) zo sústavy študijných odborov, spravovaných Ministerstvom školstva SR , ako oblasť poznania (§ 50 ods. l Zákona č.131/2002, v ktorej absolvent študijného programu (§51 ods l Zákona č. 131/2002) nadobudne profesionálnu spôsobilosť/kompetenciu vykonávať svoje pôvodné povolanie alebo sa pripraví pokračovať v nadväzujúcom vysokoškolskom štúdiu. 
Identifikácia študijného odboru v štruktúre podľa § 50 ods. 5
(a) Názov: 
SOFTVÉROVÉ INŽINIERSTVO (anglický názov Software Engineering)
(b) Stupne vysokoškolského štúdia, v ktorých sa odbor študuje a štandardná dĺžka študijných programov pre tieto stupne vysokoškolského štúdia:
Študijný odbor SOFTVÉROVÉ INŽINIERSTVO sa môže podľa Sústavy študijných odborov vydanej rozhodnutím Ministerstva školstva SR č. 2090/2002-sekr. zo dňa 16. decembra 2002 študovať v:
•	prvom stupni vysokoškolského štúdia (Bc.) so štandardnou dĺžkou 3 roky
•	druhom stupni vysokoškolského štúdia (Ing.) so štandardnou dĺžkou 2 roky. Predpokladá sa, že absolvent ukončil prvostupňové štúdium v študijnom odbore softvérové inžinierstvo alebo v niektorom príbuznom študijnom odbore. Pre uchádzačov, ktorí ukončili prvostupňové v niektorom vzdialenejšom študijnom odbore, možno navrhnúť študijný program so štandardnou dĺžkou štúdia až 3 roky.
•	treťom stupni vysokoškolského štúdia (PhD.)
(d) Zdôvodnenie potreby: 
Softvérové inžinierstvo sa zaoberá vývojom, prevádzkou, údržbou a vyradením softvéru pre rôzne oblasti ľudskej činnosti. Od obdobia, kedy bol prvýkrát zavedený termín softvérové inžinierstvo (1968) sa softvérové  inžinierstvo ako disciplína veľmi dynamicky vyvíja. Softvér je súčasťou mnohých systémov, ktoré nás obklopujú a ktoré každodenne používame. Jeho zložitosť vyžaduje inžinierske prístupy pri jeho návrhu, realizácii, nasadení a údržbe. Softvérové inžinierstvo ako disciplína má dnes vytvorené telo znalostí (Software Engineering Body of Knowledge), ktoré vzniklo spoluprácou niekoľko stoviek odborníkov z celého sveta. Existujú štandardy pre ohodnocovanie organizácií vyvíjajúcich softvér (Software Engineering Capability Maturity Model, ISO 9001). Dve najvýznamnejšie svetové profesijné organizácie združujúce informatikov z celého sveta ACM (Association for Computing Machinery) a IEEE-CS (Computer Society of Institute of Electrical and Electronics Engineers) spoločne vytvorili etický kódex softvérového inžiniera. Inštitút pre certifikáciu informatikov (Institute for Certification of Computing Professionals) a tiež IEEE-CS umožňujú získanie certifikátu v softvérového inžiniera.      
(e) Podobné študijné odbory zahraničí: 
Podobné študijné odbory v zahraničí vychádzajú z reprezentatívnych kurikulárnych odporúčaní vypracovaných ACM (Association of Computing Machinery) a IEEE (Institute of Electrical and Electronics Engineers), v jej rámci najmä Počítačová spoločnosť (Computer Society) – Computing Curricula 2001.

Australia – The Australian National University, Murdoch University, Melbourne University, The University of Sydney, Canada – McMaster University, University of Ottawa, University of Waterloo, USA – The University of Michigan-Dearborn, Florida State University, Auburn University, UK – University of Brighton, University of Durham. 
Na týchto univerzitách sa poskytuje študijný program softvérové inžinierstvo na všetkých stupňoch štúdia.
(f) Vymedzenie príbuzných študijných odborov a rozdielov medzi nimi: 
•	Informatika
•	Informačné systémy 
•	Aplikovaná informatika
•	Umelá inteligencia
•	Počítačové inžinierstvo
•	Hospodárska informatika
(c) Obsah:
Obsah pre prvý stupeň
Vymedzenie odborného profilu absolventa (1. stupeň)
Všeobecná charakteristika odborného profilu absolventa (1. stupeň)
Absolventi odboru softvérové inžinierstvo (1. stupeň) dokážu zvládnuť stúpajúce nároky vedeckého, technického a hospodárskeho vývoja v novom storočí. Očakáva sa, že bude po nich veľký dopyt vo všetkých druhoch podnikov, ktoré v podstatnej miere využívajú pre svoju činnosť softvérové systémy alebo sa zaoberajú ich návrhom a vývojom.
Študijné programy v študijnom odbore softvérové inžinierstvo v 1. stupni môžu mať rôzne podoby. Každý z nich môže pripravovať na iné, avšak vždy zdôvodnené profesionálne kariéry. Na jednej strane, študijný program možno navrhnúť tak, aby poskytoval študentom možnosti zvoliť si predmety zo širokého spektra predmetov patriacich do celej oblasti softvérového inžinierstva. Na druhej strane, študijný program sa môže zamerať na jeden špecifický aspekt softvérového inžinierstva a pokryť ho do väčšej hĺbky. Cieľom študijného programu v odbore softvérové inžinierstvo v 1. stupni je pripraviť študentov buď na štúdium študijného programu druhého stupňa alebo na bezprostredný vstup na trh práce. 
Absolventi takýchto študijných programov majú typicky tendenciu hľadať uplatnenie v rôznych odvetviach (softvérového) priemyslu, vo vzdelávacej sústave, ako vo verejnom tak aj v súkromnom sektore, v bankovníctve, doprave, zdravotníctve, ekológii atď. Okrem základných znalostí softvérového inžinierstva majú bakalári softvérového inžinierstva základné znalosti v ekonómii, manažmente a v trhovom hospodárstve. Dokážu analyzovať, navrhovať, implementovať, rozširovať, prispôsobovať a lokalizovať softvérové systémy výpočtovej a informačnej techniky.
Absolventi softvérového inžinierstva (1. stupeň) získajú hlboké pochopenie systémov v celku, budú rozumieť nielen teoretickým základom odboru ale aj tomu, ako teória ovplyvňuje prax. Budú mať pevný základ, ktorý im umožní obnovovať si znalosti súbežne s tým, ako sa oblasť softvérového inžinierstva bude vyvíjať. 
Študijný program pokrýva  podstatné aspekty postupov a metodík, ale aj hlbších princípov, na ktorých sa zakladajú. Študenti získajú poznatky a zručnosti v širokom rozsahu. Rozdeliť by sa dali na teoretické poznatky, praktické zručnosti a doplňujúce poznatky a zručnosti.
Teoretické vedomosti (1. stupeň)
Absolvent softvérového inžinierstva (1. stupeň)
•	získa a pochopí podstatné fakty, pojmy, princípy a teórie vzťahujúce sa k vývoju, projektovaniu a konštrukcii rozsiahlych softvérových systémov,
•	vie ich použiť pri navrhovaní systémov, ktorých základom je počítač, takým spôsobom, ktorý preukazuje pochopenie súvislostí a dôsledkov alternatívnych rozhodnutí pri navrhovaní,
•	vie použiť primeranú teóriu, praktické postupy a nástroje na špecifikovanie, navrhovanie, implementovanie a hodnotenie systémov informačných technológií so zameraním na rozsiahle softvérové systémy,
•	vie integrovať teoretické znalosti do praktických aplikácií, používať abstrakciu a modelovanie tak, aby bol schopný získavať špeciálne znalosti z aplikačnej domény mimo informatiky pre potreby vývoja rozsiahlych softvérových systémov v týchto doménach.
Praktické schopnosti a zručnosti (1. stupeň)
Absolvent softvérového inžinierstva (1. stupeň) získa schopnosť
•	špecifikovať, navrhovať a implementovať rozsiahle softvérové systémy v širšom kontexte počítačových systémov, počítačových sietí a ich komponentov,
•	pracovať v softvérových tímoch,
•	hodnotiť (softvérové) systémy podľa všeobecných atribútov kvality,
•	použiť princípy efektívnej práce s informáciami rôzneho druhu a z rôznych zdrojov vrátane Internetu,
•	použiť princípy a pochopiť úlohu moderných softvérových rozhraní (interakcie človek-počítač, sieťová komunikácia a pod.)  pri navrhovaní a implementácii softvérovo-intenzívnych systémov,
•	pracovať s nástrojmi, používanými pri konštruovaní a dokumentovaní softvéru,
•	prevádzkovať počítačové a softvérové systémy účinne a efektívne.
Doplňujúce vedomosti, schopnosti a zručnosti (1. stupeň)
Absolvent softvérového inžinierstva (1. stupeň) dokáže
•	prezentovať rôznym druhom poslucháčstva technické problémy a ich riešenia,
•	pracovať efektívne ako člen vývojového tímu,
•	porozumieť a vysvetliť kvantitatívne rozmery problému,
•	organizovať si vlastné učenie a vývoj, 
•	udržiavať kontakt s posledným vývojom vo svojej disciplíne a pokračovať vo vlastnom profesionálnom vývoji. 

Vymedzenie jadra znalostí (1. stupeň)
Nosné témy jadra znalostí študijného odboru (1. stupeň)
Štúdium softvérového inžinierstva vychádza z viacerých oblastí všeobecnej informatiky. Zároveň sa vyžaduje získanie poznatkov z mnohých iných oblastí ako matematika, inžinierstvo a projektový manažment. Nosné témy jadra znalostí 1. stupňa vysokoškolského štúdia softvérového inžinierstva sa vymedzili v odporúčaní ACM/IEEE Computing Curricula, ktoré vychádza zo spracovaného tela znalostí softvérového inžinierstva (ACM/IEEE Software Engineering Body of Knowledge – SWEBOK):
•	diskrétna matematika (najmä základy matematickej logiky, grafy a kombinatorika) 
•	programovanie a programovacie jazyky
•	metódy, techniky a prostriedky návrhu rozsiahlych softvérových systémov
•	princípy modelovania softvérových systémov
•	základy podnikania a manažmentu
•	ekonomické, spoločenské, morálne a právne súvislosti profesie
•	použitie metód, techník a prostriedkov vývoja softvérových systémov v bakalárskom projekte; odporúča sa, aby táto časť tvorila aspoň 1/6 ECTS kreditov študijného programu 3. roku štúdia. 
Ďalšie témy jadra znalostí študijného odboru (1. stupeň)
•	algoritmy a štruktúry údajov
•	architektúra a štruktúra počítačových systémov
•	operačné systémy
•	komunikácie človek-počítač
•	základy požiadavkového inžinierstva
•	testovanie, prevádzka a údržba softvérových systémov
•	základy manažmentu softvérových systémov a softvérových projektov vrátane manažmentu kvality
•	vybrané kapitoly matematiky pre informatikov (napr. algebra, pravdepodobnosť a štatistika).
Štátna skúška (1. stupeň)
•	obhajoba bakalárskej práce, ktorá zahŕňa využitie metód, techník a prostriedkov vývoja softvérových systémov alebo manažmentu softvérových systémov alebo softvérových procesov.

Obsah pre druhý stupeň
Vymedzenie odborného profilu absolventa (2. stupeň)
Všeobecná charakteristika odborného profilu absolventa (2. stupeň)
Absolventi druhého stupňa vysokoškolského štúdia softvérového inžinierstva dokážu analyzovať; navrhovať, konštruovať a udržiavať rozsiahle softvérové systémy; vykonávať výskum s vysokou mierou tvorivosti a samostatnosti. Dôraz sa musí klásť na to, aby absolvent získal hlboké znalosti v oblasti softvérového inžinierstva, umožňujúce mu riadiť tímy pracovníkov v tejto oblasti, samostatne viesť aj veľké projekty a prevziať zodpovednosť za komplexné riešenia.
Súčasťou štúdia v odbore softvérového inžinierstva by mala byť špecializácia v jednej alebo viacerých oblastiach. Táto špecializácia sa môže vzťahovať na niektorú z nosných tém softvérového inžinierstva (požiadavkové inžinierstvo, návrh softvéru, konštrukcia softvéru, verifikácia a validácia, softvérové procesy, manažment softvéru) alebo na oblasti súvisiace s typom aplikácie (napr. informačné systémy a spracovanie údajov, inteligentné systémy, systémy komunikačných technológií, ekonomické systémy a systémy pre elektronické podnikanie, bezpečné systémy, vnorené systémy a systémy reálneho času, riadiace systémy, multimediálne systémy).
Aby absolvent bol schopný budovať solídny vedecký prístup, študenti musia získať skúsenosti s formuláciou hypotéz, experimentálnym návrhom, overovaním hypotéz a analýzou získaných údajov. Absolvent môže budovať vedeckú perspektívu v celej škále softvérových domén, v ktorých uplatňuje pokročilé metódy a techniky návrhu a vývoja softvérových systémov.
Predpokladá sa, že absolvent ukončil prvostupňové štúdium v niektorom príbuznom študijnom odbore (študijný program so štandardnou dĺžkou štúdia 2 roky). Pre uchádzačov, ktorí ukončili prvostupňové štúdium v niektorom vzdialenejšom študijnom odbore, možno navrhnúť študijný program so štandardnou dĺžkou štúdia 3 roky.
Teoretické vedomosti (2. stupeň)
Absolvent odboru softvérové inžinierstvo (2. stupeň)
•	nachádza a prezentuje vlastné riešenia problémov pri výskume, vývoji, projektovaní a konštruovaní programových prostriedkov počítačov aj v širšom kontexte počítačových systémov, počítačových sietí a ich komponentov,
•	tvorivo aplikuje získané poznatky v praxi,
•	kriticky analyzuje a aplikuje celú paletu konceptov, princípov a praktík softvérového inžinierstva v kontexte voľne definovaných problémov, pričom preukazuje efektívne rozhodovanie v súvislosti s výberom a použitím metód, techník a prostriedkov,
•	vie zavádzať zložité technické riešenia, používať moderné metódy a prostriedky pri riešení problémov.
Praktické schopnosti a zručnosti (2. stupeň)
Absolvent odboru softvérové inžinierstvo (2. stupeň) získa schopnosť
•	špecifikovať, navrhovať, implementovať a udržiavať rozsiahle moderné softvérové systémy a aplikácie pre štandardné a aj špecializované počítačové prostriedky,
•	rozširovať softvérovú funkcionalitu moderných počítačových systémov s dôrazom na optimálnosť pre používateľa, spoľahlivosť, schopnosť údržby, prispôsobivosť, prenosnosť a efektívnosť,
•	vyvíjať, prispôsobovať a implementovať moderné informačné technológie v rôznych aplikačných oblastiach,
•	preukazovať dôkladné porozumenie nosných oblastí znalostí softvérového inžinierstva spolu so schopnosťou kritického úsudku v celom spektre problémov súvisiacich so softvérovým inžinierstvom,
•	pracovať v projektoch, ktoré zahŕňajú identifikáciu problému, analýzu, návrh a implementáciu rozsiahlych softvérových systémov spolu s testovaním a primeranou dokumentáciou, pričom si uvedomuje jednotlivé aspekty kvality. 
Doplňujúce vedomosti, schopnosti a zručnosti (2. stupeň)
Absolvent odboru softvérové inžinierstvo (2. stupeň) dokáže
•	pracovať efektívne ako jednotlivec, ako člen a ako vedúci softvérového tímu,
•	porozumieť širokému spektru softvérových aplikácií,
•	identifikovať mechanizmy pre kontinuálny vlastný profesionálny vývoj a učenie sa, 
•	udržiavať kontakt s posledným vývojom vo svojej disciplíne,
•	riadiť sa primeranými praktikami v súlade s profesionálnym, právnym a etickým rámcom disciplíny softvérové inžinierstvo. 

Vymedzenie jadra znalostí (2. stupeň)
Nosné témy jadra znalostí študijného odboru (2. stupeň)
•	diskrétna a aplikovaná matematika
•	pokročilé architektúry softvérových systémov
•	softvérové procesy a manažment
•	výskum, projektovanie a diplomová práca v súlade s odborným záujmom študenta, schopnosťami a perspektívami rozvoja v špecializovaných oblastiach; odporúča sa, aby táto časť tvorila aspoň 1/6 ECTS kreditov študijného programu.
Ďalšie témy jadra znalostí študijného odboru (2. stupeň)
•	pokročilé metódy a techniky návrhu, konštrukcie a prevádzky softvérových systémov (napr. komponentové technológie, paralelné architektúry a programovanie, distribuované systémy)
•	pokročilé technológie vývoja softvérových systémov (napr. internetové softvérové aplikácie, virtuálne prostredia, agentové a mobilné technológie, multimédiá, vnorené systémy a programovanie aplikácií reálneho času)
•	kvalita softvéru, bezpečnosť a spoľahlivosť
•	spoločenské, morálne a právne súvislosti vývoja softvérových systémov.
Štátna skúška (2. stupeň)
•	obhajoba diplomovej práce a odborná rozprava
•	kolokviálna skúška z oblasti poznania študijného odboru: pokročilé architektúry softvérových systémov alebo softvérové procesy a manažment.

Obsah pre tretí stupeň
Vymedzenie odborného profilu absolventa (3. stupeň)
Všeobecná charakteristika odborného profilu absolventa (3. stupeň)
Absolvent ovláda vedecké metódy výskumu a vývoja niektorých aspektov tvorby a manažmentu softvérových systémov. Predmetom skúmania sú metódy a prostriedky špecifikácie, návrhu, implementácie, prevádzky a údržby softvérových systémov, analyzovanie a preukazovanie takých ich vlastností, ako je správnosť, spoľahlivosť, bezpečnosť, efektívnosť a prenosnosť. Pokrýva tiež oblasť distribuovaného a paralelného spracovania, ľudský faktor pri vývoji a využívaní softvérových systémov.
Teoretické vedomosti (3. stupeň)
Absolvent odboru softvérové inžinierstvo (3. stupeň)
•	vedecky báda a prináša vlastné riešenia problémov v oblasti metód a prostriedkov špecifikácie, návrhu, implementácie, prevádzky, údržby softvérových systémov a manažmentu softvérových systémov alebo procesov v softvérovom inžinierstve,
•	je schopný samostatne získavať teoretické a praktické poznatky v oblasti softvérového inžinierstva.
Doplňujúce vedomosti, schopnosti a zručnosti (3. stupeň)
Absolvent odboru softvérové inžinierstvo (3. stupeň) si osvojí
•	zásady vedeckej práce, väzby výskum-vývoj-výroba-použitie, 
•	vedecké formulovanie problému, 
•	právne a environmentálne aspekty nových produktov, etické a spoločenské stránky vedeckej práce, 
•	prezentáciu výsledkov výskumu rôznymi formami vrátane publikovania vo vedeckých časopisoch a zborníkoch vedeckých konferencií. 

Vymedzenie jadra znalostí (3. stupeň)
Nosné témy jadra znalostí študijného odboru (3. stupeň)
Jadro znalostí 3. stupňa vysokoškolského štúdia v odbore softvérové inžinierstvo obsahuje témy (vybrané state) z týchto oblastí: 
•	matematické princípy informatiky
•	teória a metodológia softvérových systémov
•	špecializácia (podľa témy dizertačnej práce).