Anatomija jednog JSD-a
Sadržaj
DOMMLite
Šta je DOMMLite?
- DOMMLite1 je jezik za opis statičke strukture poslovnih aplikacija.2
- Opisuje entitete, njihove atribute, validatore, veze između entiteta, primitivne tipove, pakete, servise i sl.
- Generator koda na osnovu DOMMLite mograma generiše naprednu CRUD aplikaciju sa podrškom za pretrage, filtriranje, sortiranje, definisanje servisnih metoda, validacije itd. Implementiran u xText-u.
Osnovne osobine
- Opis entiteta, ključeva, veza jedan na jedan, jedan na više, više na više.
- Tekstualna sintaksa. Puna eclipse integracija (dopuna i bojenje koda, strukturni pogled, navigacija, validacija sintakse).
- Veliki broj standardnih parametarskih validatora uz mogućnost definisanja dodatnih u samom jeziku uz implementaciju na jeziku ciljne platforme.
- Podrška za definisanje korisničkih tipova podataka, validatora i oznaka.
- Generator koda za Django web okvir za razvoj1. Generisanje pune CRUD aplikacije sa pretragama, filtriranjem, sortiranjem itd.
Model

Paketi

Entiteti
Konkretna sintaksa
Odeljci


Odeljci - konkretna sintaksa
Odeljci - strukturni prikaz
Odeljci - mapiranje na ekranske forme
Atributi i reference



Atributi i reference - konkretna sintaksa
Oznake (Tags)
- Služe za opis dodatne semantike elementa nad kojim su definisane.
- DOMMLite poseduje 11 ugrađenih oznaka (
plural, searchBy, orderBy, finder, filterFields...
) a korisnik može definisati na nivou mograma i svoje oznake.
Primer - podrška za specifičnosti prirodnih jezika
Validatori
- Definisanje uslova koji mora biti ispunjen da bi se instanca elementa modela nad kojom je primenjen smatrala ispravnom.
- DOMMLite poseduje 33 ugrađena validatora (
isAlphaNumeric, isOnlyDigits, isValidEmail...
) a na nivou mograma mogu biti definisani korisnički.
Primer upotrebe validatora
Servisi

Podrška za finder metode


Dopuna koda


Generator koda
Prikaz generisane forme
mobl
mobl
TODO
pyFlies
pyFlies
TODO
Literatura
- Igor Dejanović, Jezici specifični za domen, Fakultet tehničkih nauka, Novi Sad, 2021. (dostupno u skriptarnici FTN-a)
- pyFlies dokumentacija