Sadržaj se učitava...
mdi-home Početna mdi-account-multiple Djelatnici mdi-script Studiji mdi-layers Katedre mdi-calendar-clock Raspored sati FOI Nastava search apps mdi-login
Razvoj programskih proizvoda
Software Development
2024/2025
6 ECTSa
Informacijski i poslovni sustavi 1.2 (IPS)
Katedra za razvoj informacijskih sustava
M1
5. semestar
Osnovne informacijemdi-information-variant Izvođači nastavemdi-account-group Nastavni plan i programmdi-clipboard-text-outline Model praćenjamdi-human-male-board Ispitni rokovimdi-clipboard-check-outline Rasporedmdi-calendar-clock Konzultacijemdi-account-voice
Izvođenje kolegija
Studij Studijski program Semestar Obavezan
Informacijski i poslovni sustavi 1.2 (IPS) Razvoj programskih sustava 5 obavezan
Cilj kolegija
Cilj predmeta Razvoj programskih proizvoda je pružiti studentima detaljni pregled cijelog područja inženjerskog razvoja programskih proizvoda i sustava te naučiti studente metodološkom razvoju programskih proizvoda i trendova u razvoju softvera.
Preduvjeti
Norma kolegija
Predavanja
30 sati
Vježbe u praktikumu
30 sati
Nastavnik Uloga na kolegiju Oblik nastave Tjedana Sati Grupa
Stapić Zlatko Nositelj Predavanja 7 2 1
Strahonja Vjeran Nositelj Predavanja 2 2 1
Mijač Marko Suradnik Vježbe u praktikumu
Predavanja
15
4
2
2
3
1
Sadržaj predavanja
  • Razvoj programskih proizvoda (2)
    Trendovi i zahtjevi kod razvoja programskih proizvoda. Profesionalni razvoj softvera i inženjerski pristup razvoju programskih proizvoda. Alati i okoline kao podrška aktivnostima razvoj. Automatizirani razvoj.
  • Organizacija projekta i procesa razvoja programskih proizvoda (2)
    Modeli i pristupi razvoju programskih proizvoda: klasični i agilni pristupi razvoju. Uloge i aktivnosti u procesima razvoja. Odabir pristupa razvoju. Poboljšanje procesa razvoja. Planiranje i budžetiranje procesa razvoja. Agilno planiranje. Upravljanje rizicima. Upravljanje ljudskim resursima. Timski rad. Verzioniranje i upravljanje kvalitetom. Alati i tehnologije za podršku upravljanju projektom razvoja softvera.
  • Prakse dizajna i specifikacije programskih proizvoda (4)
    Konceptualno modeliranje. Modeliranje arhitekture programskog proizvoda. Arhitekturalne odluke. Modeliranje strukture programskog proizvoda. UML modeliranje. Objektno orijentirani dizajn. Prototipiranje korisničkih sučelja. Dizajn korisničkog iskustva. Dokument specifikacije dizajna strukture i ponašanja programskog proizvoda. Alati za podršku procesu dizajna.
  • Prakse implementacije i testiranje programskih proizvoda (4)
    Integrirana razvojna okruženja. Implementacija objektno orijentiranih principa odabranom programskom jeziku i razvojnoj okolini. Implementacija koncepata korisničkog sučelja i iskustva u odabranoj razvojnoj okolini i alatima za dizajn korisničkog sučelja. Implementacija rada s podacima. Razvojni okviri. Organizacija programskog koda. Verzioniranje programskog koda i kontinuirana integracija. Osiguranje kvalitete programskog proizvoda. Čisti kod. Kontinuirano i automatizirano testiranje i isporuka. Alati i tehnologije za provjeru i isporuku programskog proizvoda.
  • Prakse implementacije nefunkcionalnih zahtjeva (2)
    Klasifikacija nefunkcionalnih zahtjeva u odnosu na implementaciju. Aspekti i važnost nefunkcionalnih zahtjeva u ukupnoj funkcionalnosti softvera. Redizajniranje programskog proizvoda u kontekstu nefunkcionalnih zahtjeva. Prakse implementacije nefunkcionalnih zahtjeva.
  • Arhitekturalni stilovi i predlošci (2)
    Dizajn arhitekture. Odluke u procesu dizajna. Pogledi na arhitekturu softvera. Stilovi dizajna arhitekture. Aplikacijske arhitekture. Čista arhitektura. Troslojna arhitektura. Predlošci dizajna arhitekture.
  • Arhitektura temeljena na komponentama (4)
    Programsko inženjerstvo temeljeno na komponentama. Odlike komponenata. Principi dizajna temeljenog na komponentama. Smjernice dizajna komponenata. Provođenje dizajna komponenata.
  • Napredno programsko inženjerstvo (3)
    Programski okviri. Programski proizvodi kao usluge. Servisno orijentirano inženjerstvo. Poboljšanje procesa razvoja (SPI).
  • Trendovi u razvoju softvera (3)
    Integracija interneta stvari/Internet svega pri razvoju programskih proizvoda. Aspektno orijentirano programiranje. Softverske proizvodne linije. Reaktivno programiranje u kontekstu razvoja programskih proizvoda.
  • Osnove ekonomike programskog inženjerstva (4)
    Osnove ekonomike programa (lanac vrijednosti, troškovi i koristi; razvoj u suradnji, razvoj ili kupnja, ukupna cijena vlasništva) Metrike složenosti i procjena troškova programa. Metode odlučivanja o ulaganju (neto sadašnja vrijednost, razdoblje povrata ulaganja)
Sadržaj seminara/vježbi
  • Laboratorijske vježbe
    Laboratorijske vježbe prate sadržaj predavanja te praktično prikazuju sve faze razvoja programskih proizvoda koje se teorijski obrađuju na predavanjima. Osim praktičnog dijela nastave prezentiranog od strane nastavnika, na vježbama ali i samostalno temeljem materijala na sustavu za e-učenje studenti izrađuju samostalni projekt razvoja programskog proizvoda kojeg prijavljuju, planiraju, dizajniraju, izrađuju, dokumentiraju i brane. Studentima se tijekom izrade projekta dodijeli mentor koji ih prati i vodi u postupku razvoja.
Ishodi učenja kolegija
  • Usporediti različite modele razvojnog ciklusa i procesa razvoja programskog sustava.
  • Izabrati odgovarajuću metodiku inženjerskog razvoja programskog sustava.
  • Planirati razvoj komponenata i njihovu integraciju u programski sustav.
  • Dizajnirati programski komponentu i sustav koristeći inženjerski pristup razvoju i objektno orijentirane metode.
  • Integrirati komponente u informacijski sustav te provjeriti komponente i sustav u cijelosti.
  • Realizirati jednostavne programske okvire.
  • Predložiti arhitekturu programa u skladu sa zadanom referentnom arhitekturom i zadanim problemom.
  • Primijeniti principe dizajna arhitekture i strukture programskog proizvoda.
  • Primijeniti napredne koncepte razvoja programskog proizvoda u odabranoj tehnologiji i alatima.
  • Dizajnirati arhitekturu programskog proizvoda temeljenu na komponentama, te dizajnirati, implementirati i integrirati komponente.
  • Ugraditi aspekt nefunkcionalnih zahtjeva u arhitekturu i implementaciju sveukupne funkcionalnosti programskih proizvoda.
  • Razumjeti osnove ekonomike programskog inženjerstva.
Ishodi učenja programa
  • razumjeti stanje i trendove razvoja suvremenih informacijskih i komunikacijskih tehnologija (ICT), razumjeti njihov utjecaj na pojedinca, organizaciju i društvo te procijeniti njihovu primjenjivost u zadanom kontekstu
  • razumjeti i primijeniti ključne aspekte informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanja
  • razumjeti i primijeniti suvremene tehničke koncepte i prakse u informacijskim tehnologijama (arhitektura računala, operacijski sustavi, mreže računala)
  • razumjeti i primijeniti matematičke metode, modele i tehnike primjerene rješavanju problema iz područja informacijskih i poslovnih sustava
  • razumjeti bitne čimbenike koji utječu na poslovanje organizacije i pojedinaca te primijeniti osnovne metode i koncepte planiranja, upravljanja i obračuna poslovanja
  • analizirati stanje, identificirati prilike i definirati probleme s kojima se susreću organizacije i pojedinci u primjeni ICT, te formulirati rješenja uz primjenu ICT
  • razumjeti osnovna vertikalna područja primjene ICT (industrija, zdravstvo, promet, turizam, država i sl.), te horizontalne aplikacije (uredski sustavi, DSS, CRM, ERP, DMS i sl.)
  • razumjeti i primijeniti suvremene metodološke pristupe razvoja organizacijskih i informacijskih sustava, te oblikovanja organizacije i organizacijske strukture
  • razumjeti suvremene organizacijske koncepte i upravljati organizacijskom kulturom
  • modelirati poslovne procese i podatke u organizacijama i primijeniti modele u razvoju informacijskih i poslovnih sustava
  • razumjeti i primijeniti metode, tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama
  • razumjeti i primijeniti procese, metode i tehnologije upravljanja IT uslugama i resursima te podrške i pružanja različitih vrsta usluga vezanih uz ICT
  • razumjeti i primijeniti etička načela, zakonsku regulativu i norme koje se primjenjuju u struci
  • razumjeti osnovna načela i metode upravljanja organizacijom i uspješno raditi u timu
  • uspješno komunicirati s klijentima, korisnicima i kolegama na verbalan i pisani način uz primjenu odgovarajuće terminologije uključujući i sposobnost komunikacije o struci na stranom jeziku
  • pratiti stručnu literaturu na hrvatskom i stranom jeziku, pripremiti i samostalno održati prezentacije na hrvatskom i stranom jeziku stručnoj i općoj publici, te kritičku evaluaciju prezentirane stručne teme
  • razumjeti i primijeniti vještine učenja potrebne za cjeloživotno učenje i nastavak obrazovanja na diplomskom studiju.
  • razumjeti i primijeniti osnovne principe planiranja i razvoja karijere u struci i vlastitih poduzetničkih poduhvata
Osnovna literatura
  • Sommerville I., Software Engineering, 8. izdanje ili novije, Addison Wesley, 2007 ili novije
  • Pressman, S. Roger: Software engineering: a practitioner's approach, 7. ili novije izdanje, McGraw-Hill Higher Education, 2010
Dopunska literatura
  • Materijali s nastave dostupni na sustavu za elektroničko učenje
  • Autorizirani izvori, web materijali i knjige na teme kojima se kolegij bavi, a koji će zbog učestalih i velikih promjena u tehnologijama i alatima biti definirani za svaku generaciju studenata posebno.
Slični kolegiji
Redoviti studenti Izvanredni studenti
izvanredni rok
Datum: 22.11.2024.
Vrijeme: 16:00
Opis: Na Fakultetu
izvanredni rok
Datum: 16.04.2025.
Vrijeme: 16:00
Opis: Na Fakultetu
U kalendaru ispod se nalaze konzultacije predmetnih nastavnika, no za detalje o konzultacijama možete provjeriti na profilu pojedinog predmetnog nastavnika.
2024 © Fakultet organizacije i informatike, Centar za razvoj programskih proizvoda