Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet

Hasonló dokumentumok
Aspektus-orientált nyelvek XML reprezentációja

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Tecnologias XML. Extensible Stylesheet Language

Dokumentumformátumok Jelölő nyelvek XML XML. Sass Bálint Bevezetés a nyelvtechnológiába 2. gyakorlat szeptember 20.

XSLT XML. DEIM Forum 2013 B2-1 XML XML XML XML XSLT XSLT XSLT XML XSLT XSLT

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

Nyilvántartási Rendszer

XSLT ( XSL Transformations)

Zenetár a webszerverünkön,

Transformer des données XML XSLT

Az XML kidolgozásakor a fejlesztés szempontjait tíz pontban foglalták össze:

V. gyakorlat: XML alapú adatkezelés

Web-fejlesztés NGM_IN002_1

1. Az XML és XHTML nyelvek. Az XML leíró nyelv Szabályok XHTML írásra. Tartalom Az XML leíró nyelv

Intelligens közlekedési rendszerek (ITS)

Adatbázis rendszerek 7. előadás State of the art

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

XML avagy az univerzális információelérés álma

XML technikák II Kovács, László

OOP. Alapelvek Elek Tibor

<?xml version="1.0" encoding="shift_jis"?> <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:output method="html"

OOP #14 (referencia-elv)

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

Objektumorientált paradigma és programfejlesztés Bevezető

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

DocBook útmutató. Jeszenszky Péter Debreceni Egyetem, Informatikai Kar

Automatikus tesztgenerálás modell ellenőrző segítségével

30 MB INFORMATIKAI PROJEKTELLENŐR

Java programozási nyelv 5. rész Osztályok III.

XML és XSLT (a színfalak mögül)

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

XML EXtensible Markup Language

Madarassy László, mérnök, BME - Mobil Innovációs Központ. lmadarassy@mik.bme.hu

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT

Programozási nyelvek Java

C++ programozási nyelv Konstruktorok-destruktorok

Web programozás I. 4. előadás

LIDO formátum előállítása MARC forrásból az Europeana számára

Forráskód generálás formális modellek alapján

A PiFast program használata. Nagy Lajos

Programozási nyelvek Java

ASP.NET 2.0 (Whidbey) Mi várható a 2005-ös ASP.NET-ben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

III. Alapfogalmak és tervezési módszertan SystemC-ben

Az XML Bevezetés. Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Utolsó módosítás:

Java programozási nyelv

Objektumorientált paradigma és a programfejlesztés

SZAKDOLGOZAT. Bak Dániel Krisztián

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Szathmáry László Debreceni Egyetem Informatikai Kar

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

OOP és UML Áttekintés

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

S0-02 Típusmodellek (Programozás elmélet)

A jövő elektronikus beszámolója IFRS és XBRL

az XML egy leírónyelv, másnéven meta-nyelv, mely segítségével új nyelveket írhatunk le egy XML dokumentum egy ilyen nyelvnek a példánya, a formális

Szoftver újrafelhasználás

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

C programozási nyelv

XML adatbázis kezelésének lehetőségei

Programozási nyelvek (ADA)

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Web-fejlesztés NGM_IN002_1

XmlGessünk 15: XSLT. Az egyik legellentmondásosabb és mégis nagyon srn használt xml technológia az XSLT. Barátkozzunk meg vele! NetAcademia-tudástár

C++ programozási nyelv

Web-fejlesztés NGM_IN002_1

Mesterséges Intelligencia Elektronikus Almanach

Az annotáció elvei. Oravecz Csaba MTA Nyelvtudományi Intézet MANYE vitaülés február 20.

Java II. I A Java programozási nyelv alapelemei

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

MVC. Model View Controller

XML sémanyelvek Jeszenszky, Péter

C++ programozási nyelv

Orvos Bejelentő Program (OBP) rekordkép 2. verzió XML formátum

GeoServer, OpenLayers és WFS. Dolleschall János

Java programozási nyelv 4. rész Osztályok II.

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

Java programozási nyelv 6. rész Java a gyakorlatban

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Fogalomtérkép. IHMC CmapTools version Felhasználása. Elérhetőség. Rendszerkövetelmény (Windows OS esetén):

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék

C programozási nyelv

A stratégiai tervezés módszertana. Koplányi Emil. elearning Igazgatóság Educatio KHT.

Szövegbányászati rendszer fejlesztése a Magyar Elektronikus Könyvtár számára

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Bánsághi Anna

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

HTML. Dr. Nyéki Lajos 2016

Java II. I A Java programozási nyelv alapelemei

A RAKTÁRI JEGYZÉKEK SZÁMÍTÓGÉPES FELDOLGOZÁSA: ADATMODELLEZÉS ÉS SZABVÁNYOK

Átírás:

Aspektus-orientált nyelvek XML reprezentációja Kincses Róbert Debreceni Egyetem, Informatikai Intézet kincsesr@inf.unideb.hu

Bevezetés OOP: helyesen alkalmazva jó minőségű szoftvert lehet vele előállítani Azonban léteznek nehezen modellezhető problémák: a programegységek határait átívelő problémák a több, független feladatot megvalósító egységek XEROX SPARC megoldása: AOP

Alapfogalmak: AOP alapelvek komponens: jól körülhatárolható részfeladat megoldása, a rendszer elemi építőköve aspektus: olyan dolgok, amik a rendszer egészét befolyásolják, komponensek teljesítményét, viselkedését, szemantikáját módosítják AOP célja: a komponensek és aspektus elkülönítése, absztrakt kezelésük

Aspektus-orientált rendszer hagyományos programozási nyelv: a komponensek megvalósítása egy vagy több aspektus nyelv: az aspektusok leprogramozása aspektusszövő (weaver): a nyelveket összekombinálja a programok, a megfelelő nyelveken megvalósítva. kapcsolódási pont: a komponens nyelv szintaktikai elemei, melyekhez az aspektusok kapcsolódnak

AspectJ általános célú, aspektus-orientált kiterjesztése a Java nyelvnek elemei: Kapcsolódási pont (join point) Vágási pont (pointcut) Tanács (advice) Típusközi deklaráció (Inter-type declarations) Aspektus (aspect)

XML Az extensible Markup Language(XML) W3C ajánlás (3. kiadás: 2004. február) nyelveket lehet definiálni, melyek dokumentum osztályokat adnak meg hierarchikus adatok leírására; logikai struktúra a tagek segítségével jól formázott, érvényes dokumentum sok további ajánlás épül rá

XSLT és XPath extensible Stylesheet Language Transformations: XML dokumentumok transzformációja XML Path: olyan nyelvet definiál, amellyel XML dokumentumok részei címezhetőek az XSLT XPath kifejezésekkel éri el az XML dokumentumok részeit

Példa: XML + XSLT <?xml version="1.0?> <?xml-stylesheet type="text/xsl" href="simple.xsl"?> <list> <element value="7"/> <element value="6"/> </list> simple.xml simple.xsl <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/trans form"> <xsl:template match="/"> <html> <head><title>list</title></head> <body> Ez egy lista: <xsl:apply-templates/> </body></html> </xsl:template> <xsl:template match="list"> <ul><xsl:apply-templates/></ul> </xsl:template> <xsl:template match="element"> <xsl:if test="@value > 5"> <li><xsl:value-of select="@value"/></li> </xsl:if> </xsl:template> </xsl:stylesheet>

Példa: Az eredmény

Az AspectJ XML reprezentációja az XML formátum kialakítása: emberi olvasásra is alkalmas legyen a nyelvi elemeket felülről-lefelé alakítjuk át cél: lehető legtöbb elemet alakítsuk át az XML dokumentumok felhasználása XSLT: automatikus átalakítás többféle kimenet a felhasználás módjának megfelelően

Példa: az XML formátum (1) public aspect SimpleAspect { //... } <?xml version="1.0" encoding="utf-8"?> <aspect name="simpleaspect" modifier="public"> </aspect>

Példa: az XML formátum (2) pointcut argcheck(int score): call(void Proba.doSomething(int)) && args(score); <pointcut> <name>argcheck</name> <formals> <formal type="int" name="score"/> </formals> <and> <primitive type="call"> void Proba.doSomething(int) </primitive> <primitive type="args">score</primitive> </and> </pointcut>

Példa: az XML formátum (3) before(int score): argcheck(score) { if( score < 0 score > 100 ) throw new IllegalArgumentException("illegal score: "+score); } <advice type="before"> <formals> <formal type="int" name="score"/> </formals> <pointcut> <name>argcheck</name> <exposes>score</exposes> </pointcut> <body> if( score < 0 score > 100 ) throw new IllegalArgumentException("illegal score:"+score); </body> </advice>

Az XML felhasználási módjai AspectJ kód előállítása automatikus kódelőállítása Akkor van értelme, ha nincs AspectJ kód a XML állomány tartalmazhat dokumentációt HTML alapú dokumentáció egy lépésben bytecode előállítása a fordító az XML és a Java forrásokat fordítja le

Példa: AspectJ kód előállítása (1) Aspektus generálása: <xsl:template match="aspect"> <xsl:value-of select="@modifier"/> <xsl:text> aspect </xsl:text> <xsl:value-of select="@name"/> { <xsl:apply-templates select="pointcut"/> <xsl:apply-templates select="advice"/> } </xsl:template>

Példa: AspectJ kód előállítása (2) Vágási pont generálása: <xsl:template match="pointcut"> pointcut <xsl:apply-templates select="name"/> <xsl:apply-template select="formals"/> <xsl:apply-templates select="and"/> <xsl:apply-templates select="primitive"/> <xsl:text>;</xsl:text> </xsl:template> <xsl:template match="primitive"> <xsl:value-of select="@type"/>( <xsl:apply-templates/> ) </xsl:template>

Összefoglalás, további lehetőségek

Köszönöm a figyelmet! Kérdések, megjegyzések?