Your browser does not support JavaScript!

Home    Improved model-driven engineering with staged code generators  

Results - Details

Add to Basket
[Add to Basket]
Identifier 000382223
Title Improved model-driven engineering with staged code generators
Alternative Title Βελτιωμένη οδηγούμενη από μοντέλα ανάπτυξη λογισμικού με γεννήτριες κώδικα που εφαρμόζονται πριν τη μεταγλώτισση
Author Βαλσαμάκης, Ιωάννης
Thesis advisor Σαββίδης, Αντώνης
Reviewer Τζίτζικας, Ιωάννης
Φουντουλάκη, Ειρήνη
Abstract The amount of software systems’ source code today practically explodes. Commercial software systems such as games consist of hundreds of thousands lines of code. The main challenge of developing such systems is connected with maintainability and extensibility issues. The software engineering of such systems focuses on the design level, where the use of advanced programming techniques is mandatory. Model-Driven Engineering (MDE) is an advanced programming technique based on model reuse and evolution. In general, MDE involves tools, models, processes, methods and algorithms addressing the demanding problem of (semi-)automated generation of source code. On the one hand the involved tools improve the deployment of MDE; on the other hand they cause several problems. One of the most challenging problems is the maintenance issue inherent in model-driven code generators. The problem appears in the development life cycle. In particular, the auto-generated source code is altered and supplemented manually by developers to complete the developing project. The manually-written source code is overwritten by the code re-generation caused by the generative MDE tool. Additionally, while MDE is a widely used software engineering approach it is typically practiced separately from the rest of the development process that takes place within an Integrated Development Environment (IDE). Therefore, there are numerous MDE tools included as plugins of some IDEs, however a large number of them cannot be properly incorporated. In this thesis, we propose an alternative approach for MDE, using an advanced programming feature; metaprogramming, which is supported by several languages. Our approach is based on the following principles: (i) the MDE tool is invoked as part of the metaprogram evaluation; (ii) instead of generating code, the MDE tool generates source fragments as abstract syntax trees (ASTs); (iii) the generated source fragments are directly inserted into the main program source through generator macros of the metaprogram; and (iv) the resulting program that incorporates both model code and custom application code can be normally compiled to produce the final application. We have carried out the proposed approach in the Delta programming language, which supports compile-time metaprogramming. Finally, we have deployed enough case studies to test the validity and the effectiveness of our approach. Η ανάπτυξη λογισμικού οδηγούμενη από μοντέλα (Model-Driven Engineering, MDE) είναι μία προηγμένη προγραμματιστική τεχνική η οποία βασίζεται στη δημιουργία, επαναχρησιμοποίηση και εξέλιξη μοντέλων. Γενικά, το MDE επικαλείται εργαλεία, μοντέλα, διεργασίες, μεθόδους και αλγόριθμους που αντιμετωπίζουν το απαιτητικό πρόβλημα της (ημί-) αυτόματης παραγωγής πηγαίου κώδικα. Από τη μια πλευρά η χρησιμοποίηση εργαλείων βελτιώνει την εφαρμογή του MDE, από την άλλη όμως προκαλούνται αρκετά προβλήματα. Ένα από τα πιο σοβαρά προβλήματα αφορά θέματα συντήρησης που βρίσκονται εγγενώς στα εργαλεία παραγωγής κώδικα που βασίζονται σε μοντέλα. Το πρόβλημα αυτό εμφανίζεται κατά την διάρκεια του κύκλου ανάπτυξης λογισμικού. Συγκεκριμένα, ο αυτόματα παραγόμενος πηγαίος κώδικας τροποποιείται και συμπληρώνεται κατάλληλα από τους προγραμματιστές ώστε να ολοκληρωθεί το υπό ανάπτυξη έργο. Ο πηγαίος κώδικας που προστίθεται με το χέρι χάνεται όταν ξαναδημιουργηθεί ο αυτόματα παραγόμενος πηγαίος κώδικας από ένα μοντέλο. Παρόλο που το MDE χρησιμοποιείται ευρέως ως μεθοδολογία κατασκευής λογισμικού, συνήθως είναι απομονωμένο από την υπόλοιπη διαδικασία που λαμβάνει χώρα σε ολοκληρωμένα περιβάλλοντα ανάπτυξης (IDE). Παρότι υπάρχουν MDE εργαλεία που διατίθενται ως επεκτάσεις σε κάποια IDE, ωστόσο ένας μεγάλος αριθμός από αυτά δεν ενσωματώνονται επαρκώς. Σε αυτή την εργασία, προτείνουμε μια εναλλακτική προσέγγιση για MDE, χρησιμοποιώντας ένα προηγμένο χαρακτηριστικό, τον μετα-προγραμματισμό, ο οποίος υποστηρίζεται από αρκετές γλώσσες προγραμματισμού. Η προσέγγιση μας είναι βασισμένη στις ακόλουθες αρχές: (i) το MDE εργαλείο επικαλείται σαν μέρος της αποτίμησης του μετα-προγράμματος, (ii) αντί να παραχθεί πηγαίος κώδικας, το MDE εργαλείο δημιουργεί τμήματα κώδικα στην μορφή αφηρημένων συντακτικών δέντρων (AST), (iii) τα δημιουργημένα τμήματα κώδικα εισάγονται άμεσα στο κυρίως πηγαίο πρόγραμμα μέσω μακροεντολών του μετα-προγράμματος, και (iv) το πρόγραμμα που προκύπτει ενσωματώνει τον αυτόματα παραγόμενο κώδικα με τον επιπλέον κώδικα της εφαρμογής και μεταγλωττίζεται κανονικά ώστε να παραχθεί η τελική εφαρμογή. Έχουμε εφαρμόσει την προτεινόμενη προσέγγιση στην γλώσσα προγραμματισμού Delta, η οποία υποστηρίζει μετα-προγραμματισμό κατά τη μεταγλώττιση (compile-time metaprogramming). Τέλος, έχουμε αναπτύξει αρκετά σενάρια χρήσης ώστε να ελέγξουμε την εγκυρότητα και την αποτελεσματικότητα της προσέγγισής μας.
Language English
Subject Metaprogramming
Issue date 2014-03-28
Collection   School/Department--School of Sciences and Engineering--Department of Computer Science--Post-graduate theses
  Type of Work--Post-graduate theses
Views 340

Digital Documents
No preview available

Download document
View document
Views : 8