1. |
2. PRIMERJAVA RAZUMEVANJA DOMENSKO-SPECIFIČNIH IN SPLOŠNO-NAMENSKIH PROGRAMOV Z UPORABO RAZVOJNIH OKOLIJSašo Gaberc, 2015, magistrsko delo Opis: Za domensko specifične jezike se v literaturi pogosto pojavljajo trditve, da imajo enostavnejšo notacijo kot splošno namenski jeziki, saj je notacija jezika prilagojena problemu specifične domene. Raziskovalci so mišljenja, da uporaba domensko specifičnih jezikov izboljša učinkovitost in natančnost v primerjavi z uporabo knjižnice za splošno namenski programski jezik. V magistrskem delu smo izvedli ponovitev eksperimenta primerjave razumevanja domensko specifičnih in splošno namenskih programskih jezikov. Originalno izvedbo eksperimenta smo nadgradili, tako, da smo pri izvedbi uporabili razvojna okolja za posamezen programski jezik. Pridobljene rezultate smo analizirali na enak način kot v originalni izvedbi in jih primerjali z rezultati iz originalne izvedbe eksperimenta. Ključne besede: domensko-specifični programski jeziki, splošno namenski programski jeziki, razumevanje programov, ponovitev eksperimenta Objavljeno v DKUM: 23.07.2015; Ogledov: 1378; Prenosov: 221 Celotno besedilo (2,47 MB) |
3. RAZVOJ DOMENSKO SPECIFIČNIH JEZIKOV IZ ONTOLOGIJ OWLInes Čeh, 2013, doktorska disertacija Opis: Domensko specifični jeziki so računalniški (programski, modelirni, specifikacijski) jeziki, namenjeni reševanju problemov v določeni domeni. Razvoj domensko specifičnega jezika obsega naslednje faze: odločitev, analizo, načrtovanje, implementacijo, namestitev, testiranje in vzdrževanje. Faze razvoja domensko specifičnih jezikov niso enakomerno raziskane. Največ pozornosti je bilo v preteklosti namenjene fazi implementacije, fazi analize in načrtovanja pa spadata med najmanj raziskane faze. Za izvedbo domenske analize sicer obstajajo številne formalne metodologije, ki pa so se izkazale kot prezahtevne, zato v praksi niso pogosto uporabljene. Prav tako pa ne obstajajo navodila, ki bi določala, kako uporabiti informacije, pridobljene v fazi analize, pri načrtovanju domensko specifičnega jezika. V doktorski disertaciji predstavimo nov formalni pristop za razvoj domensko specifičnih jezikov. Namesto razvoja nove, manj kompleksne metodologije za izvedbo domenske analize predlagamo uvedbo ontološke domenske analize. V fazi ontološke domenske analize poiščemo primerno obstoječo ontologijo za razvoj domensko specifičnega jezika oziroma po potrebi razvijemo novo ontologijo, ki opisuje ciljno domeno. Če domensko specifični jezik razvijemo na podlagi obstoječe ontologije, lahko eno razvojno fazo domensko specifičnega jezika izpustimo. Posledično se zniža cena razvoja domensko specifičnega jezika, ki sicer predstavlja najtehtnejši protiargument za njihov razvoj. V doktorski disertaciji prav tako izpeljemo pravila, ki nam povedo, kako informacije, pridobljene iz ontologije - izhoda faze ontološke domenske analize -, uporabiti v fazi načrtovanja domensko specifičnih jezikov. Predlagan pristop implementiramo v okviru ogrodja Ontology2DSL. Ogrodje, ki ga podrobno predstavimo, na vhodu sprejme ontologijo OWL, zapisano v sintaksi RDF/XML. Izhod iz ogrodja predstavljajo gramatika domensko specifičnega jezika in programi. V doktorski disertaciji se dotaknemo tudi problematike izbire primerne ontologije za razvoj domensko specifičnih jezikov. Uporabnost predlaganega pristopa prikažemo na praktičnih primerih. Ključne besede: domensko specifični jeziki, ontologije, domenska analiza, načrtovanje domensko specifičnih jezikov, kontekstno neodvisna gramatika Objavljeno v DKUM: 12.04.2013; Ogledov: 2493; Prenosov: 166 Celotno besedilo (11,86 MB) |
4. Metodologija razvoja programske opreme za vodenje industrijskih procesovTomaž Lukman, 2012, doktorska disertacija Opis: Osrednja tema doktorske disertacije je programsko inženirstvo v domeni vodenja industrijskih procesov. Praksa razvoja programske opreme za vodenje industrijskih procesov je, gledano s stališča sodobnih pristopov k razvoju programske opreme, nezrela in ne izpolnjuje potreb trga po vedno obsežnejši in bolj kakovostni programski opremi, po skrajšanjih razvojnih ciklih ter po učinkovitem razvoju. Predlagani sodobni razvojni pristopi pa niso sprejeti s strani praktikov in gospodarstva, ker so nedodelani in ker ne rešujejo najpomembnejših težav domene vodenja, ki jih navaja literatura.
V okviru doktorske disertacije smo razvili sodobno metodologijo za razvoj programske opreme za vodenje procesov. Razvoj je temeljil na sistematični uporabi nekaterih idej iz področij modelno usmerjenega inženirstva, domensko specifičnih modelirnih jezikov in programskih produktnih linij. Te ideje so bile uporabljene na tak način, da metodologija rešuje najpomembnejše težave domene vodenja procesov in nima slabosti obstoječih sodobnih razvojnih pristopov. Metodologija je sestavljena iz dveh nivojev: nivoja razvoja infrastrukture in nivoja razvoja aplikacij. Na prvem nivoju se sistematično razvija infrastruktura, ki je sestavljena iz definicije aplikacijskega razvojnega procesa in razvojnih smernic zanj, formalnega domensko specifičnega modelirnega jezika, definicije transformacij modelov in podpornih programskih orodij. Podporna programska orodja, ki omogočajo delno avtomatizacijo aplikacijskega razvoja v naši metodologiji, so sestavljena iz urejevalnika modelov, repozitorija modelov in generatorja kode. V okviru doktorske disertacije sta bila razvita tudi laboratorijski prototip in industrijski prototip podpornih orodij. Slednji odpravlja pomanjkljivosti laboratorijskega prototipa in je primeren za razvoj realne programske opreme za vodenje procesov. Na drugem nivoju razvoja se z uporabo infrastrukture izvaja modelno usmerjeni razvoj programske opreme za vodenje procesov. Z dobro definiranim aplikacijskim razvojnim procesom se izdela model programske opreme, iz katerega se na koncu avtomatsko generira koda za programirljive logične krmilnike.
Evalvacija metodologije je bila izvedena na empirični način, in sicer s študijo primera, v katero so bili vključeni razvijalci iz slovenskega podjetja. V študiji primera je bilo prikazano, da je metodologija uporabna za razvoj programske opreme za vodenje realnih procesov. Pokazali smo tudi, da metodologija v primerjavi z razvojnim pristopom, ki se uporablja v praksi, izboljšuje učinkovitost razvoja programske opreme v smislu izboljšanja produktivnosti in kakovosti. Ključne besede: Programsko inženirstvo, modelno usmerjeno inženirstvo, domensko specifični modelirni jeziki, programske produktne linije, avtomatsko generiranje kode, vodenje industrijskih procesov, študija primera Objavljeno v DKUM: 28.01.2013; Ogledov: 2519; Prenosov: 238 Celotno besedilo (8,16 MB) |
5. GRADNJA DOMENSKO SPECIFIČNIH JEZIKOV V PROGRAMSKEM JEZIKU SCALAPrimož Kokol, 2012, diplomsko delo Opis: Scala je razmeroma nov, splošno namenski, statično tipiziran programski jezik, ki združuje principe objektnega in funkcijskega programiranja. Predvsem principi funkcijskega programiranja namigujejo na to, da bi omenjen jezik lahko predstavljal dobro alternativo za implementacijo domensko specifičnih jezikov. V sklopu diplomskega dela smo preučili ustreznost omenjenega programskega jezika za implementacijo domensko specifičnih programskih jezikov na primeru jezika FDL (ang. Feature Description Language). Primerjave ter implementacije omenjenega jezika so že bile realizirane v programskih jezikih Java, Lisa, Haskell, C++, Smacc, C# v strokovnem članku A preliminary study on various implementation approaches of domain-specific language avtorjev, Tomaž Kosar, Pablo E. Martínez López, Pablo A. Barrientos, Marjan Mernik, kar predstavlja podlago za primerjavo z implementacijo programskega jezika FDL v programskem jeziku Scala. Ključne besede: domensko specifični programski jeziki, programski jezik Scala Objavljeno v DKUM: 04.09.2012; Ogledov: 1992; Prenosov: 161 Celotno besedilo (2,10 MB) |
6. MEMETSKI ALGORITEM ZA SKLEPANJE O KONTEKSTNO NEODVISNIH GRAMATIKAH IN NJEGOVA UPORABA PRI NAČRTOVANJU DOMENSKO SPECIFIČNEGA JEZIKADejan Hrnčič, 2012, doktorska disertacija Opis: V doktorski disertaciji predstavimo memetski algoritem za sklepanje o kontekstno neodvisnih gramatikah MAGIc. Memetski algoritem predstavlja evolucijski algoritem z vključenim operatorjem lokalnega iskanja. Sklepanje o gramatikah spada na področje strojnega učenja in predstavlja družino metod, ki na podlagi pozitivnih in opcijsko negativnih vhodnih primerov določi strukturo oz. izpelje gramatiko. Algoritem MAGIc sklepa o kontekstno neodvisnih gramatikah samo na podlagi pozitivnih primerov, čeprav lahko v postopek sklepanja vključimo tudi negativne primere. Pri sklepanju uporablja kot dodatno znanje razlike med primeri, katere uporabi za razširitev obstoječih gramatik, da razpoznajo več vhodnih primerov. Algoritem smo testirali na množici domensko specifičnih jezikov, napravili primerjavo z algoritmom TBL in ga razširili z možnostjo vključevanja nove sintakse v obstoječo gramatiko splošnonamenskega jezika. Algoritem se je izkazal kot uspešen za sklepanje o kontekstno neodvisnih gramatikah domensko specifičnih jezikov in je neodvisen od zaporedja vhodnih primerov. Ključna operatorja algoritma sta lokalno iskanje in generalizacija. Ključne besede: sklepanje o gramatikah, memetski algoritem, domensko specifični jeziki, kontekstno neodvisna gramatika Objavljeno v DKUM: 23.05.2012; Ogledov: 2491; Prenosov: 236 Celotno besedilo (3,89 MB) |
7. MODELNO USMERJEN RAZVOJ PROGRAMSKE OPREME ZA VODENJE PROCESOVGiovanni Godena, 2009, magistrsko delo Opis: Tekom celotne zgodovine razvoja programskega inženirstva ugotavljamo, da je v krizi in da je dejansko bolj podobno umetnosti kot inženirstvu. To velja za vse problemske domene, pri čemer domena vodenja procesov ni izjema.
Veliko je bilo poskusov premagovanja krize programske opreme skozi iskanje ustreznih tehnologij (metod, orodij ali procesov). V zadnjem času se kot zelo perspektivna kažeta dva pristopa, in sicer uporaba visokonivojskih domensko-specifičnih abstrakcij (modelov) in ponovna uporaba znanja in artefaktov na visokem nivoju abstrakcije. Z združevanjem teh dveh pristopov pridemo do tistega, čemur danes rečemo domensko usmerjena generativna ponovna uporaba na osnovi modelov.
Modelno usmerjene pristope k graditvi programske opreme delimo v dve konceptualno različni skupini, ki temeljita na dveh različnih filozofijah modeliranja. Prva skupina temelji na splošnonamenskem modeliranju (GPM) in na splošnonamenskih jezikih (katerih najbolj znani predstavnik je UML). Druga filozofija modeliranja temelji na domensko-specifičnem modeliranju (DSM) in domensko specifičnih modelirnih jezikih (DSML), kjer kot model smatramo visokonivojsko, domensko-specifično abstrakcijo, to je abstrakcijo, v kateri nastopajo relevantne entitete iz problemske domene. Med obema pristopoma je prišlo do tekmovanja, pri čemer lahko ugotovimo, da vsak izmed njiju ima tako prednosti kot pomanjkljivosti. V zadnjem času kaže, da se tehtnica nagiba proti domenski usmerjenosti in generativni ponovni uporabi, kar je skladno tudi z našim stališčem.
Jedro dela predstavlja rezultate aktivnosti domenskega inženirstva za izbrano domeno vodenja procesov. Najprej predstavimo model izbrane domene, to je entitete in njihove medsebojne relacije. V nadaljevanju predstavimo glavni dosežek tega dela, in sicer domensko specifični modelirni jezik ProcGraph. Sledi opis preslikave iz jezika ProcGraph v izvorno kodo jezikov ciljne platforme (industrijskih krmilnikov). Preslikavo določimo za dve ciljni platformi, in sicer Mitsubishi in Siemens.
V nadaljevanju dela podamo ilustracijo modela v jeziku ProcGraph za realen projekt avtomatizacije srednje velikega industrijskega procesa. Na konkretnem primeru prikažemo in razložimo vse pomembne elemente jezika. Ključne besede: modelno usmerjeno programsko inženirstvo, modelno usmerjen razvoj, modelirni jeziki, domensko specifični modelirni jeziki, domensko inženirstvo, produktne linije, ponovna uporaba, ProcGraph Objavljeno v DKUM: 23.12.2009; Ogledov: 3306; Prenosov: 241 Celotno besedilo (1,49 MB) |
8. |
9. |
10. |