490 likes | 599 Views
THE AGENT SYSTEMS ENGINEERING METHODOLOGY (ASEME). Νικόλαος Σπανουδάκης nikos@science.tuc.gr ΕΕΔΙΠ ΙΙ Γενικό Τμήμα Πολυτεχνείου Κρήτης Αθήνα , 18 Μαΐου, 2011. Περιεχόμενα παρουσίασης. Εισαγωγή
E N D
THE AGENT SYSTEMS ENGINEERING METHODOLOGY (ASEME) Νικόλαος Σπανουδάκης nikos@science.tuc.gr ΕΕΔΙΠ ΙΙ Γενικό Τμήμα Πολυτεχνείου Κρήτης Αθήνα, 18 Μαΐου, 2011
Περιεχόμενα παρουσίασης Εισαγωγή Παρουσίαση των μοντέλων της Γλώσσας Μοντελοποίησης Πρακτόρων (Agent MOdeling Language – AMOLA) Παρουσίαση της Μεθοδολογίας Δημιουργίας Πρακτοροστραφών Συστημάτων (Agent Syst. Engineering Methodology – ASEME) Δια και ενδο-πρακτορικός έλεγχος (inter and intra-agent control) Συμπεράσματα – Μελλοντικές επεκτάσεις Ν. Σπανουδάκης
Τοποθέτηση στον επιστημονικό χώρο • Η Τεχνολογία Λογισμικού (Software Engineering, IEEE, 1990) : • Εφαρμόζει μια συστηματική, μεθοδική προσέγγιση στην ανάπτυξη, λειτουργία και συντήρηση του λογισμικού • Μια διαδικασία ανάπτυξης λογισμικού (software process) απαντά στα ερωτήματα (Boehn, 1988): • Τι θα κάνουμε μετά; • Για πόσο χρόνο θα συνεχίσουμε να το κάνουμε; • Μια μεθοδολογία ανάπτυξης λογισμικού (software methodology)είναι ένα προδιαγεγραμμένο και οργανωμένο σύνολο τεχνικών και κανόνων οι οποίοι ορίζουν από ποιον και με ποια σειρά θα χρησιμοποιηθούν οι τεχνικές(Tolvanen, 1998) Ν. Σπανουδάκης
Πρακτοροστραφής Μηχανική ΛογισμικούAgent Oriented Software Engineering (AOSE) • Από τον χώρο της κατανεμημένης τεχνητής νοημοσύνης και των συστημάτων πολλαπλών πρακτόρων (ΣΠΠ) – Multi-Agent Systems (MAS) δημιουργήθηκε η ανάγκη για την ανάπτυξη λογισμικού το οποίο θα είναι (Wooldridge and Jennings, 1995; Weiss, 2003): • Αυτόνομο(autonomous) • Κοινωνικό (social) • Αντιδραστικό (reactive) • Ικανό να παίρνει πρωτοβουλίες (pro-active) • Προσαρμοστικό (adaptive) • Διαρκές (persistent) Ν. Σπανουδάκης
Οι πιο γνωστές μεθοδολογίες AOSE The Gaia Methodology (Wooldridge et al., 2000) Agent UML (Odell et al., 2000) Multi-agent Systems Engineering (Deloach et al., 2001) PASSI (Burrafato and Cossentino, 2002) Prometheus (Padgham and Winikoff, 2003) Tropos (Bresciani et al., 2004) ADELFE, Ingenias, … Ν. Σπανουδάκης
Γιατί χρειαζόμαστε μια νέα Μεθοδολογία; Τι λείπει; Μια σαφής διαδικασία μετατροπής των μοντέλων των διαφορετικών φάσεων σε πρόγραμμα υπολογιστή (Model-driven Engineering orientation) Η απεικόνιση πολύπλοκων συστημάτων σε διαφορετικά επίπεδα αφαίρεσης (abstraction) Μια μέθοδος ενσωμάτωσης των πρωτοκόλλων επικοινωνίας και των ικανοτήτων ενός πράκτορα Η δυνατότητα μοντελοποίησης ΣΠΠ ανεξάρτητα από το χρησιμοποιούμενο μοντέλο σκέψης (agent mental model) χρησιμοποιώντας τις έννοιες της ικανότητας και λειτουργίας(capability and functionality) Βοήθεια στην αναγνώριση των πρακτόρων Η προσέγγιση των μη-λειτουργικών απαιτήσεων … Ν. Σπανουδάκης
Προεπισκόπηση της ASEME Ν. Σπανουδάκης
Μηχανική Οδηγούμενη από ΜοντέλαModel Driven Engineering (MDE) MDE (Beydeda et al., 2005) είναι η συστηματική χρήση μοντέλων ως πρωταρχικά εργαλεία καθόλο τον κύκλο ζωής του έργου λογισμικού στοχεύοντας σε φορητότητα, διαλειτουργικότητα και επαναχρησιμότητα Βασίζεται σε μετασχηματισμούς μοντέλων και σε μεταμοντέλα (Jouault and Bézivin, 2006) Ν. Σπανουδάκης
Μετασχηματισμοί ΜοντέλωνModel Transformation • Μετασχηματισμός: • Είσοδος: το μοντέλο πηγής Ma που είναι σύμφωνο με το μεταμοντέλο MMa • Έξοδος: το μοντέλο στόχος Mb που είναι σύμφωνο με το μεταμοντέλο MMb • Τέσσερις τύποι μετασχηματισμών(Langlois et al., 2007): • Μοντέλο σε μοντέλο (M2M) • Μοντέλο σε κείμενο (M2T) • Κείμενο σε μοντέλο (T2M) • Κείμενο σε κείμενο (T2T) Ν. Σπανουδάκης
Το μεταμεταμοντέλο ecore • Του Eclipse Modeling Framework (EMF) Ν. Σπανουδάκης
Μοντέλα AMOLA: Ανάλυση Απαιτήσεων Faculty Personnel Meetings Manager Learn user habits Personal Assistant Request new meeting Manage meetings Το Μοντέλο Δραστών-Στόχων (SAG)βασίζεται στο actor diagram της μεθοδολογίας Tropos Το μεταμοντέλο του ορίζεται σύμφωνα με το μεταμεταμοντέλο Ecore(EMF) Ν. Σπανουδάκης
Μοντέλα AMOLA: Ανάλυση Συστήματος Faculty Personnel System Learn user habits Meetings Manager Personal Assistant Request new meeting Manage meetings To Διάγραμμα Περίπτωσης Χρήσης (SUC) βασισμένο στα UML use cases Και το μεταμοντέλο του Ν. Σπανουδάκης
Μοντέλα 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) βασίζεταιστο Gaia roles model And its metamodel definition Ν. Σπανουδάκης
Όπου η γραμματική για τις φόρμουλες ορίζεται με BNF: • Η σημασία των συμβολισμών Ν. Σπανουδάκης
AMOLA: Φάση Σχεδίασης inter και intra-agent control Μεταμοντέλο: Τα μοντέλα δια (EAC) και ενδο-πρακτορικού ελέγχου (IAC)βασίζονται στο διάγραμμα καταστάσεων Ν. Σπανουδάκης
Βασισμένο στον τυπικό ορισμό ενός διαγράμματοςκαταστάσεων: • Τέτοιοι ορισμοί είναι αναγκαίοι για τον ορισμό εργαλείων CASE (Computer-aided software engineering) Ν. Σπανουδάκης
Μεθοδολογία ASEME • Ορίζεται σύμφωνα με το Μεταμοντέλο Περιγραφής Διαδικασιών Ανάπτυξης Λογισμικού SPEM (Software Process Engineering Metamodel) της OMG • Συμβολισμοί: Ν. Σπανουδάκης
Οι Μετασχηματισμοί στην ASEME • Οι μετασχηματισμοί είναι πλήρως αυτοματοποιημένοι • Το μοντέλο μιας προηγούμενης φάσης μετασχηματίζεται σε ένα αρχικό μοντέλο της επόμενης φάσης (initial model) • Ο μηχανικός επεξεργάζεται και ραφινάρει το αρχικό μοντέλο δημιουργώντας την τελική έκδοση (refined model) Ν. Σπανουδάκης
ASEME: Φάση Ανάλυσης Απαιτήσεων Ν. Σπανουδάκης
Δημιουργία και Επεξεργασία του Μοντέλου Δραστών-Στόχων (SAG) Learn user habits Personal Assistant Meetings Manager Request new meeting Ν. Σπανουδάκης
ASEME: Φάση Ανάλυσης Συστήματος Ν. Σπανουδάκης
Ο μετασχηματισμός SAG 2 SUC Meetings Manager Personal Assistant Learn user habits Learn user habits Personal Assistant Meetings Manager Request new meeting Request new meeting Ν. Σπανουδάκης
Επεξεργασία του μοντέλου 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 Ν. Σπανουδάκης
Ο μετασχηματισμός 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 Ν. Σπανουδάκης
Ο μετασχηματισμός 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 Ν. Σπανουδάκης
Εκλέπτυνση 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 = 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 Ν. Σπανουδάκης
Εκλέπτυνση 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 Ν. Σπανουδάκης
ASEME: Φάση Σχεδίασης Ν. Σπανουδάκης
Μετασχηματισμός 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 Ν. Σπανουδάκης
Μετασχηματισμός IAC 2 JADE For each node in S If node is root then create Agent class Else if λ(node)=”BASIC” then create a SimpleBehaviour Else if λ(node)=”AND” then create a ParallelBehaviour (|| gaia op.) Else if sons(node).size() = 2 and there exists transitionExpression x | (node.2, x, node.2) belongs to δ then create a CyclicBehaviour (ω gaia op.) Else if sons(node).size() = 3 and there exists transitionExpression x | (node.2, x, node.2) belongs to δ then create a SimpleBehaviour (+ gaia op.) Else if there exists x belongs to sons(node) | λ(x)=CONDITION then If sons(node).size() = 4 then create a SimpleBehaviour (* gaia op.) Else create a SequentialBehaviour (| gaia op.) End if Else create a SequentialBehaviour (. gaia op.) End if End for Ν. Σπανουδάκης
Δια και ενδο-πρακτορικός έλεγχος • Ο δια-πρακτορικός έλεγχος (EAC) είναι ένα διάγραμμα καταστάσεων το οποίο ορίζει την παράλληλη συμπεριφορά δύο ή περισσοτέρων πρακτόρων • Ο ενδο-πρακτορικός έλεγχος (IAC) συντονίζει τις αλληλεπιδράσεις μεταξύ των ικανοτήτων ενός πράκτορα • Κάθε ρόλος σε ένα μοντέλο EAC μπορεί να ενσωματωθεί σε ένα IAC και μπορεί να εκλεπτυνθεί: • Μετατρέποντας μια κατάσταση σε πολύπλοκη κατάσταση (superstate) με υπο-καταστάσεις (substates) • Προσθέτοντας καταστάσεις των οποίων οι μεταβάσεις δεν έχουν συνθήκες αμέσως μετά το START state (αρχικοποίηση) ή πριν το END (αποθήκευση αποτελέσματος) • Το IAC επιτρέπει την παράλληλη εκτέλεση πολλών δια-πρακτορικών πρωτοκόλλων Ν. Σπανουδάκης
Ενσωματώνοντας ένα μοντέλο EAC σε ένα μοντέλο IAC Ν. Σπανουδάκης
Υπο-διάλογοι (sub-dialogs) Ν. Σπανουδάκης
Ενσωματωμένοι διάλογοι (embedded dialogs) Ν. Σπανουδάκης
Μετασχηματισμός IAC σε μοντέλο διαδικασίας (process model) Εμπειροτεχνική μέθοδος για τον μετασχ/σμό ενός IAC σε μοντέλο διαδικασίας Βοηθάει στην επαλήθευση, προσομοίωσηκαι βελτιστοποίηση (ASK-IT project) Ν. Σπανουδάκης
Εμπειρικά αποτελέσματα εφαρμογής ASEME με τις τεχνολογίες JADE (target agent platform) Rhapsody (CASE tool, target java platform) Eclipse (integrated development environment) EMF – ecore (metamodel definition) OMG MOF (XMI representation of models) OMG HUTN (free text model representation) ATL (M2M transformation) Epsilon (T2M transformation) Xpand (M2T transformation) Micro Saint (process validation and optimization) Ν. Σπανουδάκης
Δουλεύοντας το μοντέλο SAG Ν. Σπανουδάκης
Μετασχηματισμός M2M Ν. Σπανουδάκης
Μετασχηματισμός M2M (συνέχεια) Ν. Σπανουδάκης
Το πλάνο του μετασχηματισμού XMI: XML Metadata Interchange Ν. Σπανουδάκης
Μετασχηματισμός T2M Ν. Σπανουδάκης
Μετασχηματισμός M2T Ν. Σπανουδάκης
Μετασχηματισμός M2T - JADE Ν. Σπανουδάκης
Μετασχηματισμός M2T–Market miner Ν. Σπανουδάκης
Συμπεράσματα • Η ASEME (μαζί με την AMOLA) είναι μια οδηγούμενη από μοντέλα μεθοδολογία ανάπτυξης συστημάτων πρακτόρων η οποία: • Ξεκινάει από την ανάλυση απαιτήσεων και φτάνει στην δημιουργία του κώδικα • Ενσωματώνει τους ρόλους των πρακτόρων σε διάφορα πρωτόκολλα στις ικανότητες ενός πράκτορα χρησιμοποιώντας ένα κοινό φορμαλισμό (statechart) • Έχει επαληθευτεί εμπειρικά με δύο εφαρμογές σε πραγματικά συστήματα και μία σαν παράδειγμα για την αντιπαράθεσή της με άλλες αντίστοιχες μεθοδολογίες Ν. Σπανουδάκης
Μελλοντικές Επεκτάσεις Δημιουργία καλύτερων γραφικών εργαλείων στο eclipse για την υποστήριξη των φάσεων ανάπτυξης Βελτίωση του αυτόματα δημιουργούμενου κώδικα για το JADE, ενσωμάτωση περισσότερης πληροφορίας από τις εκφράσεις μετάβασης, ενσωμάτωση σε περιβάλλον OSGi Αυτοματοποίηση του μετασχηματισμού του IAC σε process model (επιλογή ανάμεσα από XPDL, BPMN, ??) Ανάλυση απόδοσης σε μεγάλης κλίμακας συστήματα Συστηματική συλλογή και επεξεργασία εμπειρικών αποτελεσμάτων χρήσης της ASEME και σύγκριση με άλλες μεθοδολογίες ίσως στα πλαίσια κάποιου μεταπτυχιακού μαθήματος Δυνατότητα του πράκτορα να εκμεταλλευτεί την πληροφορία της λειτουργίας του IAC στο run-time (σύγχρονος χώρος έρευνας: models@runtime) για να εμφανίσει ικανότητα αυτό-ελέγχου (self-assessment) και αυτο-επισκευής (self-healing) (σύγχρονος χώρος έρευνας: autonomic systems) Εξελικτικές Μέθοδοι στα statecharts για προσαρμοστικότητα (σύγχρονος χώρος έρευνας: adaptive systems) Ν. Σπανουδάκης
Βρείτε περισσότερες πληροφορίες • Στην διατριβή μου • Σε δημοσιευμένα άρθρα σε AAIJ 06, EUMAS 07, IAT 08, AIMSA 08, AIAI 09 (submitted extended version for JEIS), PRIMA 09 • Στο http://users.isc.tuc.gr/~nispanoudakis • Ή μέσω ηλ. ταχ/μείου στο nikos@science.tuc.gr Ευχαριστώ για την προσοχή σας!!! Ν. Σπανουδάκης
ASEME: Φάση Ανάλυσης ΣυστήματοςΠίνακας Λειτουργιών (στο SRM) Ν. Σπανουδάκης
An instance of the community Ν. Σπανουδάκης