Sažetak | Ovaj završni rad bavi se izradom formalnog modela domenskih klasa aplikacije za izradu rasporeda nastave, koristeći napredne alate i metodologije poput UML-a i OCL-a. Glavni cilj rada bio je razviti model podataka koji može podržati kompleksan proces izrade i upravljanja rasporedom nastave u obrazovnim institucijama. Rad je započeo teorijskom analizom i prikupljanjem podataka, nakon čega je uslijedila faza modeliranja, u kojoj su dijagrami klasa izrađeni koristeći UML. Poseban naglasak stavljen je na formalizaciju ograničenja i pravila unutar modela pomoću OCL-a, čime su definirani uvjeti poput maksimalnog broja predmeta koje profesor može predavati ili provjere sukoba u rasporedu.
Implementacija je rezultirala razvojem prototipa aplikacije koja omogućava korisnicima, poput profesora, studenata i administrativnog osoblja, jednostavno upravljanje rasporedom nastave. Aplikacija podržava funkcionalnosti kao što su dodavanje i upravljanje profesorima, predmetima, učionicama te zakazivanje nastave, pri čemu se koristi Java programski jezik za implementaciju ključnih klasa i metoda. Evaluacija modela i koda ukazala je na prednosti korištenih metoda, kao što su modularnost, lakoća održavanja i jasna struktura, ali je također istaknula potrebu za dodatnim poboljšanjima. To uključuje integraciju s bazom podataka radi bolje skalabilnosti, razvoj grafičkog korisničkog sučelja za poboljšanje korisničkog iskustva, te implementaciju naprednih pravila za bolju validaciju i upravljanje podacima.
Rad također analizira prednosti i nedostatke korištenih alata i tehnologija. UML je omogućio jasnu vizualizaciju strukture sustava, dok je OCL pružio dodatnu preciznost u specifikaciji poslovnih pravila. Java je izabrana zbog svoje objektno-orijentirane prirode, stabilnosti i široke podrške, što je olakšalo implementaciju i buduće proširenje aplikacije. Međutim, određeni izazovi su prepoznati u kompleksnosti OCL-a i potencijalnim ograničenjima UML-a u velikim sustavima. Na kraju, rad donosi preporuke za daljnji razvoj aplikacije, uključujući prijedloge za unapređenje performansi, sigurnosti i korisničkog iskustva. |