Cilj predmeta je pridobiti znanja o
postopkih razvoja programske opreme s posebnim poudarkom na razvoju zalednih
(server-side, datacenter, cloud) aplikacij, torej aplikacij, ki se uporabljajo
v velikih informacijskih sistemih podjetij ali velikih spletnih aplikacij (npr.
Facebook, LinkedIn, spletnih trgovin kot so Amazon, mimovrste, ebay in
podobnih). Te aplikacije, ki delujejo na velikih strežniških sistemih, morajo
biti sposobne servisirat množico sočasnih uporabnikov, hkrati pa delovati hitro
in zanesljivo. Pri predmetu se bomo v ta namen spoznali s tehnologijami Java
Enterprise Edition (Java EE oz. JEE), ki je de-facto standard za razvoj takih
aplikacij.

Ob tem bomo spoznali osnove mikrostoritev na eni strani in aplikacijske strežnike, kot so JBoss WildFly, IBM WebSphere, Oracle WebLogic, GlassFish in drugi.

Spoznali bomo tehnologije JAX-RS, CDI, JAX-P in JAX-B, JPA, JDBC, EJB, JMS, JAX-WS, JTS in napredne sporočilne sisteme AMQP, MQTT in druge. Prav tako se bomo spoznali z event streamingom in reaktivnimi koncepti.

Spoznali se bomo s spletnimi
storitvami REST in SOAP, JSON, OpenAPI, Swagger, WSDL, XSD, itd. Za razvoj odjemalnih spletnih
aplikacij se bomo spoznali s HTML5/JavaScript in Angular.
stores such as
Amazon, eBay and similar).
Those
applications that run on large server systems and must be capable of servicing
a multitude of concurrent users. They also need to work quickly and reliably.

We will learn the basics of microservices on one side and application servers, such as JBoss WildFly, IBM WebSphere, Oracle WebLogic, GlassFish, and others.

We will get to know JAX-RS, CDI, JAX-P and JAX-B, JPA, JDBC, EJB, JMS, JAX-WS, JTS and advanced AMQP, MQTT and other messaging systems. We will also get acquainted with event streaming and reactive concepts.

We will get to know JAX-RS, CDI, JAX-P and JAX-B, JPA, JDBC, EJB, JMS, JAX-WS, JTS and advanced AMQP, MQTT and other messaging systems. We will also get familiar with event streaming and reactive concepts.

We will also get familiar with web services
REST and SOAP, JSON, OpenAPI, Swagger, WSDL, XSD, etc. For the development of client web pages
applications will get familiar with HTML5 / JavaScript and Angular.

We will also
learn how to develop cloud-ready application using microservices, containers
and scalability. We will get familiar with Docker and Kubernetes.

Students will
also get familiar with Continuous Integration and Deployment, and learn how to
use code repositories (Git), build tools (Maven), build servers (Jenkins) and
artifact repository (Nexus).

The course is
practically oriented with exercises. Students develop an application using an
application server of their choice.
Students
will be prepared for challenging development projects and their management.
The
course will provide enough knowledge for students obtain certificates for Java EE
developers.

Pri predmetu Spletno programiranje se bomo posvetili pregledu nad tehnologijami, ki se uporabljajo pri delovanju spleta, spletnih strežnikov, brskalnikov in spletnih aplikacij.

Pregledali bomo osnove izdelave in oblikovanja spletnih strani (HTML5 in CSS3), jih nadgradili s pregledom tehnologij na strani odjemalca (JavaScript) in strežnika (Node.js) ter implementirali REST API dostop do podatkovne baze (MongoDB).

Cilj predmeta je študentu podati širino znanj, povezanih z delovanje raznovrstnih sodobnih spletnih tehnologij in razvojnih okolij in študenta usposobiti za samostojno učenje novih heterogenih tehnologij v razvoju ter ga predvsem seznaniti s celostnim razvojem spletnih aplikacij.

Predmet je sestavljen iz predavanj, laboratorijskih vaj in projekta (lastne spletne aplikacije), ki ga študenti po delih zagovarjajo skozi celoten semester.

Predstavljajte si razvijalca programske opreme, od katerega naročnik želi, da izdela rešitev, ki mu bo (seveda s pomočjo računalnika) olajšala delo na določenem področju. Razvijalec mora najprej ugotoviti, kakšne so zahteve uporabnikov, na podlagi tega izdelati načrt rešitve, napisati potrebne programe, jih stestirati in predati v uporabo ter nato vzdrževati do konca njihove življenjske dobe. Pri predmetu Tehnologija programske opreme se boste naučili, kako to narediti z uporabo najnovejših pristopov k razvoju programske opreme.

Ta predmet predstavlja neke vrste "piko na i" na koncu vašega študija, ko je pomembno, da znanje, ki ste ga dobili pri ostalih predmetih, preizkusite na (skoraj) resničnem projektu, ki temelji na realnih zahtevah nekega naročnika. Na ta način se v živo srečate z vso raznolikostjo vprašanj in problemov, s katerimi se ubada razvijalec programske opreme, ko razvija ustrezno rešitev. Predmet je zato zasnovan tako, da učenje sodobnih metod za razvoj programske opreme poteka v tesni povezavi s praktičnim delom, ki omogoča, da te metode neposredno preizkusite na realnem problemu ter ovrednotite njihove prednosti in slabosti. Tako lahko poleg tehničnih znanj, programerskih spretnosti in poznavanja sodobnih orodij pridobite tudi tista znanja in izkušnje, ki jih ni moč posredovati na klasičen način v obliki formalnih predavanj in reševanja poenostavljenih primerov, npr. sposobnost za skupinsko delo, komuniciranje z naročnikom, planiranje in vodenje projektov, pripravo predstavitev ipd. To pa so tista znanja, ki jih od današnjih diplomantov pričakuje softverska industrija.