
Napredne programske paradigme
- Predavanje 15
- Vježbe 30
- Samostalni rad 105
Naziv predmeta
Napredne programske paradigme
Oznaka predmeta
22-02-541
Semestar
2
ECTS
5
Nastavnici i suradnici
Sadržaj i cilj
Ovaj modul upoznaje studente s osnovama testiranja programskih proizvoda i primjene naprednih programskih paradigmi.
Ovaj je modul namijenjen studentima koji žele naučiti napredne paradigme u objektno orijentiranom programiranju. Vještine stečene ovim modulom značajno će doprinijeti razvoju studenta kao profesionalca u odgovarajućim područjima.
Studenti će naučiti:
• Kako testirati i poboljšati softverska rješenja, što je korisna vještina za njihove buduće izazove kao softverskih arhitekata.
• Kako dizajnirati koncepte ispitivanja programskih rješenja.
• Kako poboljšati programska rješenja smanjenjem dijeljenog koda, primjenom aspektno orijentiranog pristupa i primjenom programskih metrika.
Modul se predaje na programskim jezicima Java i C
. Provjera znanja modula temelji se na pojedinačnim studentskim projektima. U tim projektima studenti moraju stvoriti softversko rješenje prema zadanim specifikacijama.
Literatura
Obvezna literatura:
1. Kaner, C., Bach, J. and Pettichord, B. (2008) Lessons learned in software testing. Hoboken: John Wiley and Sons.
2. Martin, R.C. (2009) Clean code: a handbook of agile software craftsmanship. London: Pearson Education.
Preporučena literatura:
1. McLaughlin, B., Pollice, G. and West, D. (2006) Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to OOAandD. Sebastopol: O'Reilly Media, Inc.
Dodatna literatura:
1. Mancuso, S. (2014) The software craftsman: Professionalism, Pragmatism, Pride. London: Pearson Education.
Minimalni ishodi učenja
- Opisati temeljne koncepte testiranja programskih rješenja.
- Usporediti vrste testiranja programskog rješenja.
- Dizajnirati slučajeve i koristiti programske alate za jedinično testiranje programskih rješenja.
- Planirati testiranje prihvatljivosti programskih sustava i i njihovo usklađivanje s relevantnim normama.
- Analizirati programsko rješenje u svrhu detekcije dijeljenog koda.
- Predložiti i implementirati aspektno orijentirani pristup organizaciji dijeljenog koda.
- Implementirati strategiju upravljanja izvornim kodom.
- Analizirati i refaktorirati programsko rješenje prema principima pisanja čistog koda.
- Implementirati metrike nad programskim rješenjem.
Željeni ishodi učenja
- Opisati napredne koncepte testiranja programskih rješenja.
- Predložiti i implementirati barem dvije vrste testiranja programskih rješenja.
- Dizajnirati slučajeve na arhitekturalno različitim dijelovima aplikacije i koristiti programske alate za jedinično testiranje programskih rješenja.
- Ponuditi rješenje kako smanjiti utrošeno vrijeme i alociranu memoriju za izvršavanje zadanog programskog rješenja na temelju rezultata dobivenih korištenjem programskog alata.
- Unaprijediti programsko rješenje kako bi se smanjilo pojavljivanje dijeljenog koda.
- Implementirati barem dva različita aspekta kako bi se unaprijedila organizacija programskih rješenja.
- Koristiti barem dvije grane u strategiji upravljanja izvornim kodom.
- Refaktorirati programsko rješenje u skladu sa SOLID principima.
- Implementirati vlastitu metriku nad programskim rješenjem.