1 / 50

Μηχανική Οδηγούμενη από Μοντέλα και Γλώσσες Ειδικού Σκοπού

Μηχανική Οδηγούμενη από Μοντέλα και Γλώσσες Ειδικού Σκοπού. Δρ Νικόλαος Σπανουδάκης nikos@science.tuc.gr ΕΕΔΙΠ ΙΙ Γενικό Τμήμα Πολυτεχνείου Κρήτης Χανιά , 6 Φλεβάρη 20 12. Περιεχόμενα παρουσίασης. Εισαγωγή Οδηγούμενη από Μοντέλα Μηχανική Λογισμικού Model Driven Engineering ( MDE )

tanner
Download Presentation

Μηχανική Οδηγούμενη από Μοντέλα και Γλώσσες Ειδικού Σκοπού

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Μηχανική Οδηγούμενη από Μοντέλακαι Γλώσσες Ειδικού Σκοπού Δρ Νικόλαος Σπανουδάκης nikos@science.tuc.gr ΕΕΔΙΠ ΙΙ Γενικό Τμήμα Πολυτεχνείου Κρήτης Χανιά, 6Φλεβάρη 2012 Ν. Σπανουδάκης

  2. Περιεχόμενα παρουσίασης • Εισαγωγή • Οδηγούμενη από Μοντέλα Μηχανική Λογισμικού Model Driven Engineering (MDE) • Οδηγούμενη από Μοντέλα Αρχιτεκτονική Λογισμικού Model Driven Architecture (MDA) • Ένα παράδειγμα για τη γλώσσα UML • Γλώσσες Ειδικού ΣκοπούDomain Specific Languages (DSLs) • Πρακτοροστραφής Μηχανική ΛογισμικούAgent-Oriented Software Engineering • Συμπεράσματα Ν. Σπανουδάκης

  3. Ο ευρύτερος επιστημονικός χώρος • Η Μηχανική Λογισμικού ή Τεχνολογία Λογισμικού (Software Engineering, IEEE, 1990) εφαρμόζει μια συστηματική, μεθοδική προσέγγιση στην ανάπτυξη, λειτουργία και συντήρηση του λογισμικού • Μια διαδικασία ανάπτυξης λογισμικού (software process) απαντά στα ερωτήματα (Boehn, 1988): • Τι θα κάνουμε μετά; • Για πόσο χρόνο θα συνεχίσουμε να το κάνουμε; • Μια μεθοδολογία ανάπτυξης λογισμικού (software methodology)είναι ένα προδιαγεγραμμένο και οργανωμένο σύνολο τεχνικών και κανόνων οι οποίοι ορίζουν από ποιον και με ποια σειρά θα χρησιμοποιηθούν οι τεχνικές(Tolvanen, 1998) Ν. Σπανουδάκης

  4. Μηχανική Οδηγούμενη από ΜοντέλαModel Driven Engineering (MDE) MDE (Beydeda et al., 2005) είναι η συστηματική χρήση μοντέλων ως πρωταρχικά εργαλεία καθόλο τον κύκλο ζωής του έργου λογισμικού στοχεύοντας στην φορητότητα, διαλειτουργικότητα και επαναχρησιμότητατου λογισμικού Βασίζεται σε μετασχηματισμούς μοντέλων και σε μεταμοντέλα (Jouault and Bézivin, 2006) Είναι η δεύτερη επανάσταση της προηγούμενης δεκαετίας μετά την Προσανατολισμένη στις υπηρεσίες μηχανική λογισμικού (Service-oriented Software Engineering – SOSE) Ν. Σπανουδάκης

  5. Αρχιτεκτονική Οδηγούμενη από Μοντέλα (Model-Driven Architecture, MDA) • Η MDA είναι μια αρχιτεκτονική συστημάτων που βασίζεται στην φιλοσοφία του MDE και ορίζει τρία επίπεδα μοντελοποίησηςενός συστήματος λογισμικού: • Υπολογιστικά Ανεξάρτητο Μοντέλο Computation Independent Model (CIM) • Μοντέλο Ανεξάρτητο ΠλατφόρμαςPlatform Independent Model (PIM) • Μοντέλο Συγκεκριμένης ΠλατφόρμαςPlatform Specific Model (PSM) • Ορίστηκε από την Object Management Group (OMG) το 2003 Ν. Σπανουδάκης

  6. Αφού δημιούργησα του διάγραμμα περίπτωσης χρήσης της UML γιατί να ξεκινήσω πάλι τα άλλα διαγράμματα από την αρχή; Με ποια σειρά να πάρω τα διαγράμματα; Πρώτα τα διαγράμματα τάξεων; Μετά αυτά των δραστηριοτήτων; Γιατί πρέπει και όλα αυτά να τα ξεκινήσω από την αρχή; Και αν ξεχάσω κάτι; Πως μπορεί να με βοηθήσει αυτή η «Μοντελο-στραφής» μηχανική; Για να δούμε πως γίνεται αυτό… Μετασχηματισμοί Μοντέλων Στη UML Ν. Σπανουδάκης

  7. Ορισμός Περίπτωσης Χρήσης • Use Case: Vehicle Reservation • Precondition: A customer wants to make a reservation for a vehicle. • Description: The customer selects pickup and return locations, as well as the pickup and return dates and times. The customer selects the vehicle type.The system presents all matching vehicles. If the customer requests detail information on a particular vehicle, the system presents detail information to the customer.If the customer selects a vehicle, the system gets the customer information (full name, telephone number, email address). The system presents information on protection products (such as damage waiver, personal accident insurance). If the customer either accepts the reservation or rejects it and the use case finishes. Ν. Σπανουδάκης

  8. Μετασχηματισμός Κειμένου σε Μοντέλο (Text to Model Trans. – T2M) • Είσοδος: Περιγραφή Περίπτωσης Χρήσης • Έξοδος: Διάγραμμα Τάξεων • Κανόνες Μετασχηματισμού: • Ουσιαστικά (Λέξεις με Έντονα Γράμματα) -> Τάξεις • Ουσιαστικά προσδιοριστικά άλλων (Λέξεις με Έντονα Πλάγια Γράμματα) -> Ιδιότητες Τάξεων • Ρήματα (Λέξεις με Πλάγια Γράμματα) -> • Συσχετίσεις τάξεων εφόσον ενώνουν τέτοιες • Μέθοδοι τάξεων εφόσον αναφέρονται μόνο σε μία Ν. Σπανουδάκης

  9. Συντακτική Ανάλυση του Ορισμού Περίπτωσης Χρήσης A customer wants to make a reservation for a vehicle. The customerselectspickup and returnlocations, as well as the pickup and returndatesandtimes. The customerselects the vehicle type. The systempresents all matching vehicles. If the customerrequests detail information on a particular vehicle, the systempresentsdetail information to the customer. If the customerselects a vehicle, the systemgets the customer information (full name, telephone number, email address). The systempresentsinformation on protection products (such as damage waiver, personal accident insurance) The customer either accepts the reservation or rejects it and the use case finishes. Ν. Σπανουδάκης

  10. Αυτόματη Δημιουργία Διαγράμματος Τάξεων Δεν το είχα σκεφτεί!!! Μπορώ να κρατώ ιστορικό με τις επιλογές του χρήστη Ν. Σπανουδάκης

  11. Επεξεργασία Διαγράμματος Τάξεων Ν. Σπανουδάκης

  12. Μετασχηματισμός Μοντέλου σε Μοντέλο (Model to Model Trans. – M2M) • Για την αποθήκευση αντικειμένων σε σχεσιακή βάση δεδομένων πρέπει να μετατρέψω το διάγραμμα τάξεων σε Διάγραμμα Οντοτήτων Σχέσεων (Entity Relationship – ER Diagram, Wimmeret al., 2007) • Είσοδος: Διάγραμμα Τάξεων • Έξοδος: Διάγραμμα Οντοτήτων Συσχετίσεων • Κανόνες Μετασχηματισμού • Τάξη (Class) -> Οντότητα (Entity) • Ιδιότητα (Property) -> Χαρακτηριστικό (Attribute) • Συσχέτιση (Association) -> Σχέση (Relationship) • Ιδιότητα Συσχέτισης (Association property) -> Ρόλος (Role) Ν. Σπανουδάκης

  13. Δίάγραμμα Τάξεων σε Διάγραμμα Οντοτήτων Σχέσεων Μετασχηματισμός Επεξεργασία Ν. Σπανουδάκης

  14. Μετασχηματισμός Μοντέλου σε Κείμενο (Model to Text Trans. – M2T) • Για την υλοποίηση του συστήματος σε Java • Είσοδος: Διάγραμμα Τάξεων • Έξοδος: Κώδικας Java • Κανόνες Μετασχηματισμού • Κλάση (Class) -> Java class • Ιδιότητα (Property) -> Java class property • Ιδιότητα Συσχέτισης (Association property) -> Java class property • Εάν είναι με πολλαπλότητα > 1 τότε χρησιμοποίησε την κλάση java.util.Vector • Μέθοδος (Method) -> Java method που ρίχνει (throws) ένα UnsupportedOperationException • Παρομοίως και για C++ Ν. Σπανουδάκης

  15. Υλοποίηση Java • Αρχείο Customer.java import java.util.Vector; publicclass Customer { private Object _fullName; private Object _telephoneNumber; private Object _emailAddress; public Vector<Reservation> _myReservations = new Vector<Reservation>(); public VehicleType _select; publicvoid getCustomerInformation() { thrownew UnsupportedOperationException(); } } • Αρχείο Customer.java import java.util.Vector; publicclass Customer { private String _fullName; privateint _telephoneNumber; private String _emailAddress; public Vector<Reservation> _myReservations = new Vector<Reservation>(); public VehicleType _select; public String getCustomerInformation() { returnnew String("Name: "+_fullName+ "\nTel.: "+_telephoneNumber+ "\nEmail: "+_emailAddress); } ..... } Επεξεργασία Ν. Σπανουδάκης

  16. Υλοποίηση C++ • Αρχείο Customer.h • #include <exception> • #include <vector> • using namespace std; • #ifndef __Customer_h__ • #define __Customer_h__ • #include "Reservation.h“ • class Reservation; • class VehicleType; • class Customer; • class Customer • { • private: string _fullName; • private: string _telephoneNumber; • private: string _emailAddress; • public: std::vector<Reservation*> _myReservations; • public: VehicleType* _select; • public: void getCustomerInformation(); • }; • #endif • Αρχείο Customer.cpp • #include <exception> • #include <vector> • using namespace std; • #include "Customer.h" • #include "Reservation.h" • #include "VehicleType.h" • void Customer::getCustomerInformation(){ • throw "Not yet implemented"; • } Ν. Σπανουδάκης

  17. Ένα Εργαλείο CASE (Computer Aided Software Engineering) Ν. Σπανουδάκης

  18. Επίπεδα MDA στο παράδειγμά μας • CIM • Διάγραμμα Περίπτωσης Χρήσης • PIM • Διάγραμμα Τάξεων • Διάγραμμα Οντοτήτων-Σχέσεων • PSM • Java • C++ Ν. Σπανουδάκης

  19. Μετασχηματισμός Κείμενου σε Κείμενο (Text to Text Trans. – T2T) • Μπορείτε να σκεφτείτε έναν τέτοιο; • Γίνεται όποτε προγραμματίζετε… • Όταν κάνετε compile… • C source file (*.c) to executable program (machine language) • Java source file (*.java) to Java interpreted file (*.class) Ν. Σπανουδάκης

  20. Ποια είναι η διαδικασία που ακολουθήσαμε; • Ορίζεται σύμφωνα με το Μεταμοντέλο Περιγραφής Διαδικασιών Ανάπτυξης Λογισμικού SPEM (Software Process Engineering Metamodel) της OMG • Συμβολισμοί: Ν. Σπανουδάκης

  21. Μια Διαδικασία Ανάπτυξης Λογισμικού Ν. Σπανουδάκης

  22. Ωραία όλα αυτά αλλά εγώ θέλω να δημιουργήσω λογισμικό με παράλληλη εκτέλεση αλγορίθμων. Δεν με βοηθάει και πολύ η UML… Εμένα που με ενδιαφέρουν οι λογικές και οι βάσεις γνώσης να δεις… Εγώ ήθελα να ξεκινήσω ορίζοντας στόχους για το λογισμικό μου και όχι λειτουργίες… Για να δούμε και τις: Γλώσσες Ειδικού Σκοπού (Πεδίου) Ν. Σπανουδάκης

  23. Γλώσσες Ειδικού Σκοπού (ή πεδίου) Domain Specific Languages – DSLs • Οι Γλώσσες Ειδικού Πεδίου αποτελούν μια κατηγορία γλωσσών προγραμματισμού, οι οποίες έχουν ως στόχο την αντιμετώπιση εξειδικευμένων προβλημάτων στην διαδικασία ανάπτυξης λογισμικού αλλά και να υποστηρίξουν την εξέλιξη των γλωσσών μοντελοποίησης • Π.χ. • γλώσσα για παράλληλο προγραμματισμό (Ada) • γλώσσα ερωταπαντήσεων βάσεων δεδομένων SQL Ν. Σπανουδάκης

  24. Η Γραμμή μηδέν και η εικονική γραμμή μηδέν (Kleppe, 2009) Run a nuclear power plant Business Concepts Autonomous Negotiation Business Process Warehouse Agent Design pattern Aspect Abstraction Component Entity bean Association Object/Class Virtual zero line XML Method Subroutine Database table Loop If statement ASCII Hardware zero line Memory location Accumulator Instruction Ν. Σπανουδάκης

  25. Μοντέλα, Μεταμοντέλακαι Μεταμεταμοντέλα • Για να δούμε τη σχέση τους: Ν. Σπανουδάκης

  26. Μετασχηματισμοί ΜοντέλωνModel Transformation • Μετασχηματισμός: • Είσοδος: το μοντέλο πηγής Ma που είναι σύμφωνο με το μεταμοντέλο MMa • Έξοδος: το μοντέλο στόχος Mb που είναι σύμφωνο με το μεταμοντέλο MMb • Τέσσερις τύποι: • Μοντέλο σε μοντέλο (M2M) • Μοντέλο σε κείμενο (M2T) • Κείμενο σε μοντέλο (T2M) • Κείμενο σε κείμενο (T2T) Ν. Σπανουδάκης

  27. Το μεταμεταμοντέλο ecore • Του Eclipse Modeling Framework (EMF) Ν. Σπανουδάκης

  28. Νάτα πάλι τα «κινέζικα»: μεταμοντέλα, μοντέλα, γλώσσες, καλά πως χρησιμοποιούνται αυτά; Μήπως είναι πολύ θεωρητικά για μένα; Εσείς γνωρίζετε καμία γλώσσα μοντελοποίησης; Α ναι, η UML Για να δούμε μια γλώσσα μοντελοποίησης για ένα νέο πεδίο… Πρακτοροστραφής Μηχανική Λογισμικού Ν. Σπανουδάκης

  29. Πρακτοροστραφής Μηχανική ΛογισμικούAgent Oriented Software Eng. (AOSE) • Από τον χώρο της κατανεμημένης τεχνητής νοημοσύνης και των συστημάτων πολλαπλών πρακτόρων (ΣΠΠ) – Multi-Agent Systems (MAS) δημιουργήθηκε η ανάγκη για την ανάπτυξη λογισμικού το οποίο θα είναι (Wooldridge and Jennings, 1995; Weiss, 2003): • Αυτόνομο(autonomous) • Κοινωνικό (social) • Αντιδραστικό (reactive) • Ικανό να παίρνει πρωτοβουλίες (pro-active) • Προσαρμοστικό (adaptive) • Διαρκές (persistent) Ν. Σπανουδάκης

  30. AOSE Μεθοδολογίες με μεταμοντέλα • The Gaia Methodology (Wooldridge et al., 2000) • Multi-agent Systems Engineering (Deloach et al., 2001) • PASSI (Burrafato and Cossentino, 2002) • Prometheus (Padgham and Winikoff, 2003) • Ingenias (Pavón and Gómez-Sanz, 2003) • Tropos (Bresciani et al., 2004) • Agent Systems Engineering Methodology – ASEME (Spanoudakis, 2009) • Agent Modeling Language – AMOLA N. Spanoudakis Thesis

  31. Γλώσσα AMOLA: Ανάλυση Απαιτήσεων Faculty Personnel Meetings Manager Learn user habits Personal Assistant Request new meeting Manage meetings Το Μοντέλο Δραστών-Στόχων (SAG) Το μεταμοντέλο του ορίζεται σύμφωνα με το μεταμεταμοντέλο Ecore(EMF) Ν. Σπανουδάκης

  32. AMOLA: Ανάλυση Συστήματος Faculty Personnel System Learn user habits Meetings Manager Personal Assistant Request new meeting Manage meetings To Διάγραμμα Περίπτωσης Χρήσης (SUC) βασισμένο στα UML use cases Και το μεταμοντέλο του Ν. Σπανουδάκης

  33. AMOLA: Ανάλυση Συστήματος (συνέχ.) Role: Personal Assistant Capabilities and Protocols: learn user habits, request new meeting: personal assistant, … Activities: learn user preference, update user preferences, … Liveness: personal assistant = request new meeting || learn user habits learn user habits = learn user preference. update user preferences … Το Μοντέλο Ρόλων(SRM) Και το μεταμοντέλο του Ν. Σπανουδάκης

  34. Όπου η γραμματική για τις φόρμουλες ορίζεται με EBNF: • Η σημασία των συμβολισμών Ν. Σπανουδάκης

  35. AMOLA: Φάση Σχεδίασης inter και intra-agent control Μεταμοντέλο: Τα μοντέλα δια (EAC) και ενδο-πρακτορικού ελέγχου (IAC)βασίζονται στο διάγραμμα καταστάσεων Ν. Σπανουδάκης

  36. Οι Μετασχηματισμοί στην ASEME • Οι μετασχηματισμοί είναι πλήρως αυτοματοποιημένοι • Το μοντέλο μιας προηγούμενης φάσης μετασχηματίζεται σε ένα αρχικό μοντέλο της επόμενης φάσης (initial model) • Ο μηχανικός επεξεργάζεται και ραφινάρει το αρχικό μοντέλο δημιουργώντας την τελική έκδοση (refined model) Ν. Σπανουδάκης

  37. Δημιουργία και Επεξεργασία του Μοντέλου Δραστών-Στόχων (SAG) Learn user habits Personal Assistant Meetings Manager Request new meeting Ν. Σπανουδάκης

  38. Το πλάνο του μετασχηματισμού XMI: XML Metadata Interchange Ν. Σπανουδάκης

  39. Μετασχηματισμός M2M Ν. Σπανουδάκης

  40. Ο μετασχηματισμός SAG 2 SUC Meetings Manager Personal Assistant Learn user habits Learn user habits Personal Assistant Meetings Manager Request new meeting Request new meeting Ν. Σπανουδάκης

  41. Επεξεργασία του μοντέλου SUC Learn user habits Request new meeting <<include>> Meetings Manager Learn user preference Personal Assistant <<include>> <<include>> Receive new request Send new request <<include>> <<include>> <<include>> Update user preferences Send new results Receive new results Ν. Σπανουδάκης

  42. Ο μετασχηματισμός SUC 2 SRM Learn user habits Request new meeting <<include>> Meetings Manager Learn user preference Personal Assistant <<include>> <<include>> Receive new request Send new request <<include>> <<include>> <<include>> Update user preferences Send new results Receive new results Ν. Σπανουδάκης

  43. Ο μετασχηματισμός SUC 2 SRM Role: Capabilities and Protocols: Activities: Learn user habits Learn user habits Request new meeting Personal Assistant Request new meeting <<include>> Learn user preference Personal Assistant <<include>> Learn user preference Send new request <<include>> Send new request <<include>> Update user preferences Update user preferences Receive new results Receive new results Ν. Σπανουδάκης

  44. Εκλέπτυνση SRM Role: Personal Assistant Capabilities and Protocols: manage meetings, learn user habits, negotiate meeting date, request change meeting, request new meeting Activities: get user request, read schedule, show results, learn user preference, update user preferences, send change request, receive change results, send new request, receive new results, receive proposed date, decide response, send results, receive outcome, update schedule Liveness: personal assistant = (manage meetings. learn user habits)ω || (negotiate meeting date)ω manage meetings = get user request. (read schedule | request change meeting | request new meeting). show results learn user habits = learn user preference. update user preferences request new meeting = send new request. receive new results request change meeting = send change request. receive change results negotiate meeting date = receive proposed date. (decide response. send results. receive outcome)+. update schedule Ν. Σπανουδάκης

  45. Μετασχηματισμός SRM 2 IAC Liveness: personal assistant = (manage meetings. learn user habits)ω || (negotiate meeting date)ω learn user habits = learn user preference. update user preferences x || y xω x . y Ν. Σπανουδάκης

  46. Μετασχηματισμός M2T - JADE Ν. Σπανουδάκης

  47. Χρησιμοποιώντας το GMF • Με το SAG.ecore αρχείο μπορώ να ορίσω ένα μετασχηματισμό Μ2Μ σε γραφική αναπαράσταση χρησιμοποιώντας το Graphical Modeling Framework (GMF) του Eclipse Ν. Σπανουδάκης

  48. Σύνοψη - Συμπεράσματα • Σήμερα είδαμε τα • MDE: Model-Driven Engineering • MDA: Model-Driven Architecture, CIM, PIM, PSM • M2M, M2T, T2M, T2T transformations • EMF, Ecore • DSL: Domain Specific Language • AOSE: Agent Oriented Software Engineering • Που βοηθούν στην σταδιακή εκλέπτυνση του μοντέλου του συστήματος χρησιμοποιώντας σε κάθε (υπο)φάση το πιο κατάλληλο μοντέλο Ν. Σπανουδάκης

  49. Είδαμε τις τεχνολογίες • Object Management Group • http://www.omg.com • IBM method: Getting form Use Cases to code • http://www.ibm.com/developerworks/rational/library/5383.html • Eclipse Modeling Tools IDE • http://www.eclipse.org • ASEME, a DSL for AOSE • http://www.amcl.tuc.gr/aseme • Visual Paradigm tool • http://www.visual-paradigm.com Ν. Σπανουδάκης

  50. Ευχαριστώ για την προσοχή σας Είμαι διαθέσιμος για περισσότερες πληροφορίες και ερωτήσεις Δρ Νικόλαος Σπανουδάκης ΕΕΔΙΠ ΙΙ Εργαστήριο Εφαρμοσμένων Μαθηματικών και Ηλεκτρονικών Υπολογιστών Γενικό Τμήμα Πολυτεχνείο Κρήτης Δ.νση: Πολυτεχνειούπολη, Κουνουπιδιανά, 73100, Χανιά Τηλ.: +30 28210 37744 Φαξ: +30 28210 37842 Ηλ. ταχ/μείο: nikos@science.tuc.gr Ιστόσελίδα: http://users.isc.tuc.gr/~nispanoudakis Ν. Σπανουδάκης

More Related