Programsko inženjerstvo
Prikazani su podaci za akademsku godinu: 2024./2025.
Laboratorijske vježbe
Opis predmeta
Ovaj predmet daje uvod u razvoj programskih sustava s naglaskom na razvojni ciklus programske potpore, analizu zahtjeva, specifikaciju, oblikovanje, ispitivanje i formalne metode verifikacije. Osim stjecanja teoretskih znanja, studenti sudjeluju u timskom projektu tijekom cijelog semestra te stječu važne vještine programskog inženjerstva, uključujući uporabu sustava za upravljanje inačicama, planiranje projekta, izlučivanje zahtjeva, oblikovanje arhitekture programske potpore, aktivnosti validacije, verifikacije i dokumentiranja. Modeliranje strukture i ponašanja programskih sustava zasnovano je na uporabi UML standarda. Projektni timovi primjenjuju principe i tehnike predstavljene na predavanjima s ciljem efikasnog razvoja srednje složenog programskog sustava i isporuke obaveznih artefakata.
Preduvjeti
Osnove programiranja. Osnove baza podataka.
Studijski programi
Sveučilišni preddiplomski
[FER3-HR] Računarstvo - studij
(5. semestar)
[FER2-HR] Obradba informacija - modul
(5. semestar)
[FER2-HR] Programsko inženjerstvo i informacijski sustavi - modul
(5. semestar)
[FER2-HR] Računalno inženjerstvo - modul
(5. semestar)
[FER2-HR] Računarska znanost - modul
(5. semestar)
[FER2-HR] Telekomunikacije i informatika - modul
(5. semestar)
Ishodi učenja
- Usporediti koncepte programskog inženjerstva i opisati različite procese programskog inženjerstva i faze razvojnog ciklusa programske potpore
- Primijeniti jezik UML za modeliranje različitih pogleda na aplikaciju.
- Primijeniti unificirani proces i agilne metodologije
- Razviti dokumentaciju programske potpore koristeći UML modele.
- Primijeniti oblikovne obrazce u malom do srednje složenom programskom projektu.
- Pokazati rad u malim projektnim timovima na primjeru srednje složenog projekta.
- Primijeniti i vrednovati principe oblikovanja i razvoja u izgradnji programskih sustava različite složenosti.
- Primijeniti tehnike ispitivanja i osiguranja kvalitete programske potpore na razini modula i razumjeti primjenu na razinama sustava i organizacije.
- Koristiti odgovarajuće alate za dokumentiranje, modeliranje, oblikovanje i uklanjanje pogrešaka.
Oblici nastave
Predavanja
Predavanja se održavaju tijekom 13 tjedana semestra u satnici od 3 sata tjedno.
LaboratorijLaboratorijske vježbe održavaju se u obliku projekta tijekom cijelog semestra.
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Kratke provjere znanja | 0 % | 9 % | 0 % | 0 % | ||
Seminar/Projekt | 50 % | 30 % | 50 % | 30 % | ||
Međuispit: Pismeni | 0 % | 25 % | 0 % | |||
Završni ispit: Pismeni | 33 % | 36 % | ||||
Ispit: Pismeni | 50 % | 70 % |
Tjedni plan nastave
- Profesionalni razvoj programske potpore i procesi programskog inženjerstva. Svojstva dobre programske potpore i načela projektiranja. Izazovi programskog inženjerstva. Modeli procesa programskog inženjerstva. Etika programskog inženjerstva.
- Životni ciklus programske potpore: proces razvoja programske potpore, dionici na projektu i timski razvoj. Alati za suradnički razvoj programske potpore. Dokumentiranje programske potpore.
- Analiza problema, prikupljanje, svojstva i provjera zahtjeva. Klasifikacija zahtjeva. Modeliranje zahtjeva. Specifikacija zahtjeva programske potpore. Primjena UML standarda u inženjerstvu zahtjeva, modeliranje obrascima uporabe.
- Modeli procesa programskog inženjerstva. Generičke aktivnosti procesa. Modeliranje sustava, strukturni modeli, modeli ponašanja, oblikovanje zasnovano na modelu. Tradicionalni modeli, unificirani proces. Ubrzane metode razvoja.
- Principi i koncepti oblikovanja arhitekture programske potpore. Svojstva dobre arhitekture programske potpore. Odnos arhitekture i implementacije. Stilovi arhitektura, atributi kvalitete. Principi oblikovanja, proces izbora i vrednovanja arhitekture programske potpore.
- Oblikovanje objektno usmjerene arhitekture. Modeliranje objektno usmjerene arhitekture jezikom UML. Uporaba UML dijagrama razreda u modeliranju.
- Dinamičko modeliranje UML dijagramima stanja. Modeliranje i dokumentiranje implementacije UML dijagramima komponenti i razmještaja.
- Međuispit
- Arhitekturno oblikovanje programske potpore. Detaljno oblikovanje: oblikovni obrasci, radni okviri. Osnovni arhitekturni obrasci. Monolitne i raspodijeljene arhitekture programske potpore.
- Automatizacija procesa razvoja programa. Aplikacijski okviri. Oblikovanje aplikacija uporabom radnog okvira Spring.
- Tehnike i strategije ispitivanje programske potpore. Kvarovi i zatajenja programske podrške. Oblikovanje ispitnih slučajeva. Alati za ispitivanje programske potpore.
- Upravljanje i procjena kvalitete programske potpore, Automatizacija ispitivanja. Jezici i alati za ispitivanje. Proces ispitivanja i mjere za vrednovanje ispitivanja.
- Uloga formalnih pristupa modeliranju i analizi programske potpore. Alati za potporu formalnim metodama, formalna verifikacija, opis ponašanja sustava CTL formalizmom, provjera modela.
- Osnove održavanja programske potpore, priroda i potreba za održavanjem; troškovi održavanja; evolucija i kategorije održavanja. Upravljanje konfiguracijama. Korisnička potpora.
- Završni ispit
Literatura
(.), A. Jović, N. Frid, D. Ivošević: Procesi programskog inženjerstva, e-skripta, FER ZEMRIS (https://www.fer.unizg.hr/predmet/proinz/literatura), 2021.,
(.), V. Sruk, A. Jović, N. Frid: Programsko inženjerstvo - Materijali za predavanja, FER ZEMRIS,
Izvedba
ID 183400
Zimski semestar
5 ECTS
R3 Engleski jezik
R3 E-učenje
45 Predavanja
0 Seminar
0 Auditorne vježbe
26 Laboratorijske vježbe
0 Konstrukcijske vježbe
0 Vježbe tjelesnog odgoja
Ocjenjivanje
86 izvrstan
72 vrlo dobar
60 dobar
50 dovoljan