Een transactionele benadering tot aspectinteractie en aspectcompositie.

  • Stevens, Matthias (Mandataris)
  • D'Hondt, Theo (Administrative Promotor)

Projectdetails

!!Description

Een transactionele benadering tot aspectinteractie en aspectcompositie Aspect-georiënteerd programmeren onderzoekt de notie van systeemdoorsnijdende bekommernissen in software systemen. De basisidee is dat er verschillende bekommernissen bestaan (zoals bvb synchronisatie of persistentie) waar wel op een modulaire manier kan over nagedacht worden, maar waarvan de feitelijke code zo goed als alle onderdelen van een softwaresysteem zal aantasten. Aspectgeoriënteerd programmeren onderzoekt dit fenomeen en tracht talen te vinden die toelaten dit soort bekommernissen in aparte modules onder te brengen (zogenaamde aspecten) die dan nadien door een aspectwever doorheen de basis van het systeem geweven worden. Het schrijven van software m.b.v. dit soort wevers noemt men dan aspect-georiënteerde software ontwikkeling (AOSD). AOSD is intussen lang geen nicheonderzoeksgebied meer. Verschillende nationale en internationale onderzoeksprojecten lopen momenteel in Europa en de jaarlijkse AOSD conferentie trekt gemiddeld meer dan tweehonderd deelnemers aan. Een fundamenteel probleem in AOSD is het aspectcompositieprobleem dat zich voordoet bij het samenstellen van aspecten. De vraag hoe men verschillende -- onafhankelijk van elkaar ontwikkelde -- aspecten samen doorheen eenzelfde basisprogramma kan weven is grotendeels onopgelost. De kern van het probleem ligt in het feit dat de verschillende aspecten -- door verweving -- het basisprogramma destructief veranderen en aldus elkaar kunnen beïnvloeden. De afwezigheid van een wetenschappelijk gefundeerde aspectcompositietheorie is dus te herleiden naar het gebrek aan een wetenschappelijk gefundeerde definitie van aspectinteractie. Dit voorstel vertrekt van het feit dat aspect code en basiscode gebruik maken van dezelfde variabelen van een softwaresysteem. Aspecten waarvan de interne variabelen los staan van de variabelen van andere aspecten en van de variabelen van het basissysteem, zijn immers triviaal samen te stellen met die andere aspecten en het basissysteem. Pas wanneer het basissysteem en de aspecten gemeenschappelijk geheugen manipuleren kunnen zij mekaar potentieel voor de voeten lopen. Meer nog kan men stellen dat interactieproblemen zich slechts voordoen wanneer één van de partijen (aspectcode en/of basiscode) de variabelen destructief veranderen: zolang aspecten en basiscode de variabelen enkel uitlezen is er geen interactieprobleem. Daarom gaan we in dit voorstel uit van het feit dat basiscode en aspectcode eigenlijk bestaan uit transacties die variabelen in het geheugen lezen en schrijven. De vraag of aspecten gecombineerd kunnen worden met een basisprogramma en/of met mekaar komt dan eigenlijk neer op de vraag of de corresponderende transacties geserializeerd kunnen worden of niet. De kern van ons voorstel bestaat erin serializatietheorie uit de transactiewereld toe te passen op het aspectinteractieprobleem (en dus bij gevolg op het aspectcompositieprobleem). Hiertoe dienen we een basisprogramma en de aspecten voor te stellen als hiërarchisch opgebouwde samengestelde transacties: een programma leest en schrijft al zijn variabelen; een module leest en schrijft slechts een deel van deze variabelen; een methode leest en schrijft slecht een deel hiervan en een statement zal doorgaan slechts een handvol variabelen lezen en slechts één ervan schrijven. Een aspect is op zijn beurt een hiërarchisch opgebouwde container code waarvan elk niveau in de hiërarchie een beperkt aantal variabelen leest en schrijft. De vraag of een aspect interactieloos toe te passen is op één van deze systeemcomponenten komt dus neer op de vraag of de transacties die gedefinieerd worden door het basisprogramma en door het aspect al dan niet serialiseerbaar zijn. Dezelfde redenering is toe te passen voor de samenstelling van twee aspecten. Eén van de moeilijkheden die met dit voorstel gepaard gaan is dat de transacties waarvan sprake geen gewone eenvoudige transacties zijn. Inderdaad, om systemen, modules, klassen, methoden en statements correct af te beelden op transacties die variabelen manipuleren zullen we onze toevlucht moeten zoeken tot zogenoemde geavanceerde transactiemechanismen. Voorbeelden hiervan zijn geneste transacties [1] en sagas [2]. Door het feit dat deze transacties een interne structuur bezitten zijn ze afbeeldbaar op de samengestelde structuur van basis- en aspectcode. Het serialiseren van dit soort geavanceerde transacties is echter ook moeilijker. Ons voorstel bestaat dus uit het bestuderen van de verschillende soorten geavanceerde transacties (op basis van de unificerende ACTA theorie [3, 4]) en te onderzoeken hoe de abstracte syntaxbomen van zowel basiscode en aspectcode geassocieerd kunnen worden met een bijbehorende geavanceerde transactie. Vervolgens onderzoeken we hoe serialisatietheorie voor deze transacties tot een theorie kan dienen om interacties en composities tussen basiscode en aspectcode strikt wetenschappelijk te definiëren en hoe niet-serialiseerbaardheid van de transacties kan gebruikt worden om interactieproblemen precies aan te duiden. Het bovenstaande voorstel kadert in een breder kader van recent onderzoek waarbij synchronisatiekennis uit parallelle systemen gebruikt wordt om het aspectinteractieprobleem in kaart te brengen. Eerder onderzoek focusseert zich echter grotendeels op het synchroniseren van berichten die voorkomen in de verschillende constituenten van een compositie. Het innovatieve aan dit voorstel is dat het zich toespitst op het gemeenschappelijk geheugen dat door de constituenten gemanipuleerd wordt, in plaats van het beschouwen van hun gemeenschappelijke ingrijppunten, zoals bijvoorbeeld in [5]. Dit onderzoek zal gevoerd worden binnen de omkadering van het Programming Technology Lab (PROG) van de Vrije Universiteit Brussel. Deze onderzoeksgroep heeft een lange geschiedenis in het domein van software- en programmeertaalontwikkeling. De laatste jaren heeft het lab zich geprofileerd als een belangrijke speler in AOSD-onderzoek. Zo is PROG samen met SSEL -- eveneens een onderzoeksgroep van de VUB -- actief binnen AspectLab [6], een samenwerkingsverband voor AOSD-onderzoek tussen de Vrije Universiteit Brussel, de Katholieke Universiteit Leuven en Universiteit Gent, gefinancierd door het IWT. Daarnaast zijn PROG en SSEL ook lid van AOSD-Europe [7], een pan-Europees onderzoeksnetwerk in het AOSD-domein, gefinancierd door de EU.
AcroniemFWOTM431
StatusGeëindigd
Effectieve start/einddatum1/10/0730/09/11

Flemish discipline codes in use since 2023

  • Biological sciences

Vingerafdruk

Verken de onderzoeksgebieden die bij dit project aan de orde zijn gekomen. Deze labels worden gegenereerd op basis van de onderliggende prijzen/beurzen. Samen vormen ze een unieke vingerafdruk.
  • Measure and map noise pollution with your mobile phone

    Maisonneuve, N., Stevens, M. & Steels, L., 5 apr 2009, DIY::HCI - A Showcase of Methods, Communities and Values for Reuse and Customization; Proceedings of the DIY for CHI workshop held on April 5, 2009 at CHI 2009, the 27th Annual CHI Conference on Human Factors in Computing Systems (April 4-9, 2009 in Boston, MA, USA). blz. 78-82 5 blz.

    Onderzoeksoutput: Conference paper

  • Managing Software Dependencies using Design Structure Matrices

    Stevens, M., Kellens, A., Brichau, J. & D'Hondt, T., 14 dec 2007, BENEVOL 2007 - 6th BElgian-NEtherlands software eVOLution workshop (Namur, Belgium, December 13-14, 2007). 4 blz.

    Onderzoeksoutput: Meeting abstract (Book)