NTUA, 23 October 2018
http://mgroup.ntua.gr
Large scale analysis and modeling group
Σύνοψη
• Παρουσίαση του MGroup
• Πρόγραμμα διαλέξεων
• Αντικειμενοστραφής προγραμματισμός
• Συντακτικό της C#
2/30
MGroup
• Εργαστήριο ειδικευμένο στην υπολογιστική μηχανική
• Κομμάτι του Εργαστηρίου Στατικής και Αντισεισμικών Ερευνών της σχολής Πολιτικών Μηχανικών του ΕΜΠ
• Επιστημονικοί υπεύθυνοι οι αναπ. καθηγητής Βησσαρίων Παπαδόπουλος και ομοτ. καθηγητής Μανόλης Παπαδρακάκης
• http://mgroup.ntua.gr
3/30
Διαλέξεις • Προ- και μεταπτυχιακά
• Στατική ανάλυση φορέων
• Πεπερασμένα στοιχεία
• Στοχαστική μηχανική
• Μη-γραμμικές μέθοδοι
• Υπολογιστικοί αλγόριθμοι
• Ανεξάρτητες διαλέξεις • Προγραμματισμός
4/30
Ερευνητικές περιοχές
• Ανάλυση και σχεδιασμός κατασκευών
• Μοντελοποίηση υλικών
• Ανάλυση πολλαπλών κλιμάκων
• Ποσοτικοποίηση αβεβαιοτήτων
• Βέλτιστος σχεδιασμός
• Εφαρμογές τεχνητής νοημοσύνης στην ανάλυση κατασκευών
• Προγραμματισμός σε περιβάλλοντα υψηλών επιδόσεων
• Κάρτες γραφικών και επιταχυντές
5/30
Πρόγραμμα διαλέξεων
• Εισαγωγή στον αντικειμενοστραφή προγραμματισμό και στο συντακτικό της C#
• Περιβάλλον προγραμματισμού Visual Studio και το .NET framework
• Αριθμητική ανάλυση και γραμμική άλγεβρα στη C#
• Εφαρμογή σε προβλήματα δικτυωμάτων
• Object oriented patterns
• MSolve
6/30
Προαπαιτούμενα
• Visual Studio Community Edition https://visualstudio.microsoft.com/downloads/
7/30
Δομημένος προγραμματισμός
• Βασικά συστατικά • Υπορουτίνες και συναρτήσεις • Μονολιθικές δομές (block) • Δομές ελέγχου ροής (loops)
• Στόχοι • Βελτίωση της σαφήνειας του κώδικα • Μείωση του χρόνου ανάπτυξης • Αποφυγή κώδικα «σπαγγέτι»
8/30
Δομημένος προγραμματισμός
9/30
Δομημένος προγραμματισμός
10/30
• Μέθοδος αφαίρεσης για: • Ακολουθία εντολών • Έλεγχος ροής • Επαναληψιμότητα
Δομημένος προγραμματισμός
11/30
• Σχεδιασμός βάση ροής εργασιών • Οργάνωση των ενεργείων ενός προγράμματος σε
υποπρογράμματα/υπορουτίνες • Κατάσταση (State)
• Καθολική • Μεταφέρεται μέσω των ορισμάτων των υπορουτινών ή
των συναρτήσεων
• Ισχυρή σύζευξη μεταξύ των υποπρογραμμάτων • Δυσκολεύει τη συντήρηση • Ripple effect
Αντικειμενοστραφής προγ/μός
12/30
• Kύρια συστατικά • Κλάσεις και αντικείμενα
• Μέθοδοι (προσδίδουν συμπεριφορά) • Ιδιότητες (ορίζουν κατάσταση – state)
• Στόχοι • Ακριβής μοντελοποίηση του κόσμου • Αρθρωματικότητα (Modularity) • Αφαίρεση (Abstraction) • Separation of concerns
Αντικειμενοστραφής προγ/μός
13/30
• Ορολογία • Κλάση: ιδέα/σχέδιο καταστασης και συμπεριφοράς • Αντικείμενο: υλοποίηση μιας κλάσης • Ιδιότητα: Μεταβλητή που εχει πληροοφορία
κατάστασης • Μέθοδος: υπορουτίνα που ορίζει συμπεριφορά
• Κύρια χαρακτηριστικά
• Ενθυλάκωση • Κληρονομικότητα • Πολυμορφισμός
Αντικειμενοστραφής προγ/μός
14/30
• Ενθυλάκωση • Κατάσταση+συμπεριφορά είναι μία οντότητα • Η δομή της κλάσης ελέγχει
• Δεδομένα που είναι διαθέσιμα στον έξω κόσμο • Εσωτερική και εξωτερική συμπεριφορά
• Data hiding
• Μείωση του ripple effect κατά την αλλαγή υλοποιήσεων • Προσδίδει μια απλουστευμένη διεπαφή
προγραμματισμού
Αντικειμενοστραφής προγ/μός
15/30
• Κληρονομικότητα • Νέες κλάσεις βασίζονται σε ήδη υπάρχουσες • Ιδιότητες και συμπεριφορές των γονεϊκών
κλάσεων περνιούνται και στα «παιδιά» • Οι νέες κλάσεις μπορούν να μεταβάλουν ή να
επεκτείνουν τα ως άνω • Ορίζουν τη σχέση “is a”
• Προωθεί την επαναχρησιμοποίηση κώδικα • Ορισμός της συσχέτισης κλάσεων και της
σύζευξης
Αντικειμενοστραφής προγ/μός
16/30
• Πολυμορφισμός • Πολυμορφισμός ορισμάτων και τύπων
• Κλάσεις «παιδιά» των ίδιων γονέων μπορούν να χρησιμοποιηθούν εναλλάξιμα
• Μέθοδοι μπορούν να κληθούν με διαφορετικά ορίσματα
• Δίνει κληρονομικότητα και ευελιξία • Δίνει τη βάση για μελλοντικές επεκτάσεις • Ο έλεγχος ροής γίνεται παρωχυμένος
Αντικειμενοστραφής προγ/μός
17/30
• Αφηρημένες κλάσεις (abstract classes) • Ορίζουν είδος συμπεριφοράς και κατάστασης • Μπορούν να έχουν ΚΑΙ υλοποίηση • Κληρονομούνται
• Διεπαφές (interfaces) • Ορίζουν είδος συμπεριφοράς και κατάστασης • ΔΕΝ μπορούν να έχουν υλοποίηση
1 0..*
abstract static
private
association (“using”)
inheritance (“is a”)