Σχεδιαστικά Μορφήµατα (Design Patterns)
|
|
- Φωσφόρος Ρέντης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Σχεδιαστικά Μορφήµατα (Design Patterns) Ανδρέας Παπασαλούρος εκέµβριος
2 Περίγραµµα Γενικά Αρχιτεκτονικά µορφήµατα Σχεδιαστικά Μορφήµατα ηµιουργίας (Creational) οµής (Structural) Συµπεριφοράς (Behavioral) Βιβλιογραφία - Αναφορές εκέµβριος
3 Χαρακτηριστικά µορφηµάτων Ένα µόρφηµα αναφέρεται σε ένα συγκεκριµένο σχεδιαστικό πρόβληµα σε ένα σχεδιαστικό περιβάλλον και παρουσιάζει µια λύση του Τα µορφήµατα καταγράφουν υπάρχουσα, καλά τεκµηριωµένη σχεδιαστική εµπειρία Τα µορφήµατα προσδιορίζουν και προδιαγράφουν αφηρηµένες λύσεις που βρίσκονται πάνω από το επίπεδο συγκεκριµένων κλάσεων ή συνθετηµάτων Τα µορφήµατα παρέχουν ένα κοινό λεξιλόγιο και µια βάση για την κατανόηση σχεδιαστικών αρχών Ένα µόρφηµα είναι ένα µέσο για την τεκµηρίωση αρχιτεκτονικών λογισµικού Τα µορφήµατα επιτρέπουν τη δηµιουργία λογισµικού µε συγκεκριµένες ιδιότητες πολύπλοκων και ετερογενών αρχιτεκτονικών λογισµικού Τα µορφήµατα βοηθούν στη διαχείριση της πολυπλοκότητας του λογισµικού εκέµβριος
4 Μορφήµατα: Ορισµός Ένα µόρφηµα περιγράφει ένα πρόβληµα που εµφανίζεται ξανά και ξανά σε συγκεκριµένα περιβάλλοντα και παρουσιάζει ένα καλά τεκµηριωµένο γενικό σχήµα για τη λύση του. Αυτό το σχήµα περιγράφεται από τα συνθετήµατα (components) που το αποτελούν, τις αρµοδιότητες και σχέσεις τους και τους τρόπους µε τους οποίους συνεργάζονται [Buschmann96] εκέµβριος
5 Ένα παράδειγµα: Observer Σκοπός ηµιουργία µιας σχέσης ένα προς πολλά µεταξύ αντικειµένων έτσι όταν ένα αλλάζει, όλα τα αντικείµενα που εξαρτώνται από αυτό να ειδοποιούνται και να αλλάζουν αυτόµατα. Επιτρέπει το συγχρονισµό αλληλεπιδρώντων αντικειµένων µέσω ενός µηχανισµού διάδοσης των αλλαγών εκέµβριος
6 Observer Περιβάλλον Ένα σύνολο από αλληλεπιδρώντα αντικείµενα Πρόβληµα Η ενηµέρωση των αντικειµένων για την αλλαγή της κατάστασης ενός από αυτά Λύση Ένα αντικείµενο (subject) καταγράφει και ενηµερώνει τα υπόλοιπα που ενδιαφέρονται για την κατάστασή του (observers) εκέµβριος
7 Observer: οµή for all o in observers { o.update() Subject attach() detach() notify() observers * <<Interface>> Observer update() ConcreteSubject subjectstate getstate() setstate() subject ConcreteObserver observerstate update() observerstate = subject.getstate() εκέµβριος
8 Observer: Λειτουργία s : ConcreteSubject o1 : ConcreteObserver o2 : ConcreteObserver setstate() notify() update() getstate() update() getstate() εκέµβριος
9 Observer: Παράδειγµα εκέµβριος
10 Observer <<Abstract>> CanvasMode addmodelistener() notifylisteners() observers * <<Interface>> ModeListener ConcreteCanvasMode mode getmode() setmode() mode GraphFrame update() εκέµβριος
11 Observer: Παράδειγµα abstract class GraphMode { //Mode of mouse functions int mode; //The list of the observers Vector modelisteners = new Vector(); void notify() { for (Enumeration e = modelisteners.elements();e.hasmoreelements();) { ModeListener listener= (ModeListener) e.nextelement(); listener.update(); void addmodelistener(modelistener listener) { modelisteners.add(listener); εκέµβριος
12 Observer : Παράδειγµα class ConcreteCanvasMode extends CanvasMode { void setmode(int mode) { this.mode = mode; notifylisteners(); int getmode() { return this.mode; εκέµβριος
13 Observer: Παράδειγµα public interface ModeListener { void update(); public class GraphFrame extends JFrame implements ModeListener { GraphCanvas canvas; ConcreteCanvasMode mode; public GraphFrame() { canvas=new GraphCanvas(); mode=graphcanvas.getmode(); mode.addmodelistener(this); public void update() { int mode = canvas.getmode(); εκέµβριος
14 Observer Συνέπειες Χαλαρή σύζευξη µεταξύ Subject και Observer Υποστήριξη της επικοινωνίας Μη αναµενόµενες ανανεώσεις (αρνητική) Γνωστές Χρήσεις MVC (Smalltalk) Άλλες ονοµασίες Dependents, Publish-Subscribe εκέµβριος
15 Αρχιτεκτονικά µορφήµατα Ένα αρχιτεκτονικό µόρφηµα είναι ένα θεµελιώδες, δοµικό σχήµα οργάνωσης ενός συστήµατος λογισµικού. Παρέχει ένα σύνολο προκαθορισµένων υποσυστηµάτων, καθορίζει τις αρµοδιότητές τους και τους κανόνες και οδηγίες για την οργάνωση των σχέσεων µεταξύ τους εκέµβριος
16 Αρχιτεκτονικά Μορφήµατα: Layers Περιβάλλον Ένα µεγάλο σύστηµα που απαιτεί αποσύνθεση Πρόβληµα Η σχεδίαση ενός συστήµατος το οποίο παρέχει λειτουργίες υψηλού και χαµηλού επιπέδου και οι τελευταίες βασίζονται στις προηγούµενες Λύση Οργάνωση του συστήµατος σε ένα αριθµό στρωµάτων. Κάθε στρώµα χρησιµοποιεί υπηρεσίες του αµέσως κατώτερού του εκέµβριος
17 Layers: οµή Application-specific layer Layer N Application-general layer Layer N-1... Middleware layer Layer 1 System-software layer εκέµβριος
18 Αρχιτεκτονικά µορφήµατα Layers Ελαχιστοποίηση των εξαρτήσεων µεταξύ των αρχιτεκτονικών συνθετηµάτων µε τηνκάθετηδόµησή τους σε n στρώµατα µε ένα ή και περισσότερα συνθετήµατα στο κάθε στρώµα. From Mud to Structure Pipes and Filters Blackboard Ελαχιστοποίηση των εξαρτήσεων µεταξύ συνθετηµάτων µε την οριζόντια δόµησή τους έτσι ώστε το κάθε συνθέτηµαναεκτελείµια µερική επεξεργασία των δεδοµένωνκαιναταδίνειστο επόµενο για περεταίρω επεξεργασία. Το αρχιτεκτονικό µόρφηµα Blackboard είναι χρήσιµο σε προβλήµατα για τα οποία δεν υπάρχουν ντετερµινιστικές στρατηγικές επίλυσης. Στο Blackboard πολλά εξειδικευµένα υποσυστήµατα συνθέτουν τη γνώση τους για να δοµήσουν µια πιθανώς µερικήήπροσεγγιστικήλύση. εκέµβριος
19 Αρχιτεκτονικά µορφήµατα Adaptable Systems Microkernel Reflection Το αρχιτεκτονικό µόρφηµα Microkernel εφαρµόζεται συστήµατα λογισµικού που πρέπει να έχουν τη δυνατότητα να προσαρµόζονται σε µεταβαλλόµενες απαιτήσεις. ιαχωρίζει έναν ελάχιστο πυρήνα λειτουργικότητας από την εκτεταµένη λειτουργικότητα και τα τµήµατα τα σχετικά µε τους πελάτες. Ο microkernel επίσης λειτουργεί ως υποδοχή για τη σύνδεση των επεκτάσεων αυτών και τον συντονισµότων αλληλεπιδράσεών τους. Το αρχιτεκτονικό µόρφηµα Reflection παρέχει ένα µηχανισµό γιατη δυναµική αλλαγή της δοµής και συµπεριφοράς συστηµάτων λογισµικού. Υποστηρίζει την τροποποίηση θεµελιωδών όψεων όπως δοµές τύπων και µηχανισµούς κλήσης συναρτήσεων. Σε αυτό το µόρφηµα, µια εφαρµογή διαιρείται σε δύο µέρη. Ένα µετα-επίπεδο παρέχει πληροφορίες για επιλεγµέναχαρακτηριστικάτουσυστήµατος και δίνει στο σύστηµαγνώση για τον εαυτό του. Ένα βασικό επίπεδο περιέχει τη λογική της εφαρµογής. Η υλοποίησή του βασίζεται στο µετα-επίπεδο. Αλλαγές στην πληροφορία στο µέτα-επίπεδο επηρεάζουν τη συµπεριφορά στο βασικό επίπεδο. εκέµβριος
20 Αρχιτεκτονικά µορφήµατα Distributed Systems Broker Το αρχιτεκτονικό µόρφηµα Broker µπορεί να χρησιµοποιηθεί για την κατασκευή κατανεµηµένων συστηµάτων λογισµικού µε αποσυζευγµένες συνιστώσες οι οποίες αλληλεπιδρούν µέσω αποµακρυσµένων κλήσεων υπηρεσιών. Μια συνιστώσα broker είναι υπεύθυνη για τον συντονισµό της επικοινωνίας, όπως την προώθηση αιτήσεων, όπως και την µετάδοση αποτελεσµάτων και εξαιρέσεων. εκέµβριος
21 Αρχιτεκτονικά Μορφήµατα Interactive Systems Model-View- Controller (MVC) Presentation- Abstraction- Control (PAC) Το αρχιτεκτονικό µόρφηµα Model-View-Controller (MVC) διαµερίζει µια διαδραστική εφαρµογή σε τρεις συνιστώσες. Το µοντέλο (model) περιέχει τη βασική λειτουργικότητα και τα δεδοµένα. Οι όψεις (views) και οι ελεγκτές (controllers) από κοινού συνιστούν τη διαπροσωπεία χρήστη. Ένας µηχανισµός αλλαγής-διάδοσης εξασφαλίζει τη συνέπεια µεταξύ της διαπροσωπείας χρήστη και του µοντέλου. Το αρχιτεκτονικό µόρφηµα Presentation-Abstraction-Control (PAC) ορίζει µια δοµή για διαδραστικά συστήµατα λογισµικού µετηµορφή µιας ιεραρχίας συνεργαζόµενων πρακτόρων (agents). Κάθε πράκτορας είναι υπεύθυνος για ένα συγκεκριµένο τµήµα της λειτουργικότητας της εφαρµογής και αποτελείται από τρεις συνιστώσες: παρουσίαση (presentation), αφαίρεση (abstraction) και έλεγχος (control). Αυτή η υποδιαίρεση διαχωρίζει την πλευρά της αλληλεπίδρασης ανθρώπουυπολογιστή του πράκτορα από τον λειτουργικό του πυρήνα και από την επικοινωνία του µεάλλουςπράκτορες. εκέµβριος
22 Μορφήµατα Σχεδίασης ηµιουργίας οµής Συµπεριφοράς εκέµβριος
23 Mορφήµατα ηµιουργίας Μορφήµατα που σχετίζονται µε τη δηµιουργία αντικειµένων (instantiation) Abstract Factory Builder Factory Method Prototype Singleton εκέµβριος
24 Factory Method Σκοπός Καθορισµός µιας διαπροσωπείας για τη δηµιουργία ενός αντικειµένου Εφαρµογή Όταν µια κλάση δε γνωρίζει εκ των προτέρων τις κλάσεις των αντικειµένων που πρόκειται να δηµιουργήσει Όταν µια κλάση αφήνει τις υποκλάσεις της να καθορίσουν τα αντικείµενα που δηµιουργεί Όταν κάποιες κλάσεις αναθέτουν την ευθύνη για τη δηµιουργία αντικείµένων σε υποκλάσεις άλλων κλάσεων και ο χρήστης θέλει να γνωρίζει σε ποια υποκλάση έχει ανατεθεί η ευθύνη εκέµβριος
25 Factory Method: οµή Product Creator FactoryMethod() product=factorymethod() ConcreteProduct ConcreteCreator FactoryMethod() return new ConcreteProduct εκέµβριος
26 Factory Method: Προγραµµατιστικό Παράδειγµα abstract class Race { abstract Frame createframe(); abstract Wheel createwheel(); // return a complete bicycle without needing // any arguments Bicycle completebicycle() { Frame frame = createframe(); Wheel frontwheel = createwheel(); Wheel rearwheel = createwheel(); return new Bicycle(frame, frontwheel, rearwheel); Race createrace() { Bicycle bike1 = completebicycle(); Bicycle bike2 = completebicycle(); //... εκέµβριος
27 Factory Method //French race class TourDeFrance extends Race { Frame createframe() {return new RacingFrame(); Wheel createwheel() {return new Wheel700c(); //Cyclocross race class Cyclocross extends Race { Frame createframe() { return new MountainFrame(); Wheel createwheel() {return new Wheel26inch(); Οι µέθοδοι create ονοµάζονται factory methods εκέµβριος
28 Factory Method Συνέπειες To Factory Method ελαχιστοποιεί την ανάγκη για τη σύζευξη κλάσεων σχετικών µε την εφαρµογή στο πρόγραµµά µας. Το πρόγραµµα αναφέρεται µόνο στη διαπροσωπεία Product (στο παράδειγµα: Bicycle). Ένα µειονέκτηµα του Factory Method είναι η ανάγκη για δηµιουργία υποκλάσεων του Creator σε κάθε περίπτωση δηµιουργίας κάποιου Product Γνωστές Χρήσεις Το σύστηµα Orbix ORB της IONA χρησιµοποιεί αυτό το µόρφηµα για τη δηµιουργία ενός κατάλληλου τύπου proxy κατά την αναφορά ενός αντικειµένου σε ένα άλλο αποµακρυσµένο Άλλες ονοµασίες Virtual Constructor Συσχετιζόµενα µορφήµατα Abstract Factory Prototype εκέµβριος
29 Μορφήµατα οµής Τα µορφήµατα δοµής αφορούν στον τρόπο µε τον οποίο κλάσεις και αντικείµενα συντίθενται ώστε να σχηµατίσουν µεγαλύτερες δοµές Adapter Bridge Composite Decorator Façade Flyweight Proxy εκέµβριος
30 Adapter Σκοπός Η µετατροπή της διαπροσωπείας µιας κλάσης σε µια άλλη, επιθυµητή από τους πελάτες της Εφαρµογή Όταν είναι επιθυµητή η χρήση µιας κλάσης και η διαπροσωπεία της δεν το επιτρέπει Όταν ζητείται η δηµιουργία µιας επαναχρησιµοποιήσιµης κλάσης εκέµβριος
31 Adapter: οµή Client <<Interface>> Target request() Adaptee anotherrequest() Adapter request() anotherrequest() Client <<Interface>> Target request() adaptee Adaptee anotherrequest() Adapter request() adaptee.anotherrequest() εκέµβριος
32 Adapter Client Rectangle scale() NonScalablleRectangle setwidth() setheight() ScalableRectangle scale() εκέµβριος
33 Adapter: Προγραµµατιστικό παράδειγµα interface Rectangle { void scale(float factor); //other methods class Client { void mymethod(rectangle r){ r.scale(2.); εκέµβριος
34 Adapter: Προγραµµατιστικό παράδειγµα class NonScalableRectangle { void setwidth(float width){ void setheight(float height){ class ScalableRectangle extends NonScalableRectangle implements Rectangle { void scale(float factor) { setwidth(factor * getwidth()); setheight(factor * getheight()); εκέµβριος
35 Adapter Συνέπειες Στην περίπτωση του class Adapter δεν είναι δυνατή η προσαρµογή στις υποκλάσεις του Adaptee. Αντίθετα αυτό είναι δυνατό στην περίπτωση του object Adapter Γνωστές χρήσεις GraphicsBlock, SmallTalk, Next AppKit Άλλες Ονοµασίες Wrapper Συσχετιζόµενα µορφήµατα Bridge, Decorator, Proxy εκέµβριος
36 Μορφήµατα Συµπεριφοράς Τα µορφήµατα συµπεριφοράς (behavioral patterns) αφορούν σε αλγορίθµους και στην ανάθεση λειτουργιών σε αντικείµενα εκέµβριος
37 Μορφήµατα Συµπεριφοράς Chain of responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor εκέµβριος
38 Iterator Σκοπός Παρέχει έναν τρόπο για την προσπέλαση µιας συλλογής αντικειµένων ακολουθιακά και ανεξάρτητα από την εσωτερική δοµή της συλλογής. εκέµβριος
39 Iterator: οµή Aggregate createiterator() Client Iterator first() next() isdone() currentitem() ConcreteAggregate createoperation() ConcreteIterator return new ConcreteIteration(this) εκέµβριος
40 Iterator: Προγραµµατιστικό Παράδειγµα public class Stack { private Vector items; public Enumeration enumerator() { return new StackEnum(); class StackEnum implements Enumeration { int currentitem = items.size() - 1; public boolean hasmoreelements() { return (currentitem >= 0); public Object nextelement() { if (!hasmoreelements()) throw new NoSuchElementException(); else return items.elementat(currentitem--); εκέµβριος
41 Iterator: οµή Client Stack enumeration() <<Interface>> Enumerator hasmoreelements() nextelement() StuckEnum εκέµβριος
42 Iterator Συνέπειες Γνωστές Χρήσεις Enumeration Interface (Java), ObjectWindows Άλλες Ονοµασίες Cursor Συσχετιζόµενα µορφήµατα Composite, Factory Method, Memento εκέµβριος
43 Iterator: Πλεονεκτήµατα και µειονεκτήµατα Πλεονεκτήµατα Κώδικας επεκτάσιµος Κώδικας επαναχρησιµοποιήσιµος Η Σχεδίαση προβλέπει τις αλλαγές (design for change) Μειονεκτήµατα Μειωµένη απόδοση Αύξηση του αριθµού των κλάσεων και του µεγέθους του κώδικα υσκολία στην εκµάθηση εκέµβριος
44 Σχετικές έννοιες Εργαλειοθήκη (toolkit) Παράδειγµα: C++ I/O stream library Πλαίσιο (framework) Παράδειγµα: ΕΤ++ Ιδίωµα (Idiom) C++: Handle/body, Java: Enumeration εκέµβριος
45 Μορφήµατα εξαρτηµένα από το πεδίο εφαρµογής (domain specific) Επιχειρησιακή µοντελοποίηση (business patterns) Προσδιορισµός Απαιτήσεων - Ανάλυση (Analysis Patterns) ιαπροσωπείες Χρήστη (User Interface Patterns) Σχεδιασµός Υπερµέσων (Hypermedia Design Patterns) Ηλεκτρονική µάθηση (e-learning Patterns)... εκέµβριος
46 Βιβλιογραφία - Αναφορές F. Buschmann, R. Meunier, H. Rohnert, P.Sommerlad and M. Stal. Pattern-Oriented Software Architecture: A System of Patterns. Wiley M. Cline.The Pros and Cons of Adopting and Applying Design Patterns in the Real World. Communications of the ACM, Vol. 39, No 10, Oct E. Gamma, R. Helm, R. Johnson and J. Vlissides. Design Patterns: Elements of reusable object-oriented software. Addison Wesley G. Larman. Applying UML and Patterns, 2nd Edition. Prentice Hall εκέµβριος
Σχεδιαστικά Μορφήµατα (Design Patterns)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Σχεδιαστικά Μορφήµατα (Design Patterns) Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά Αρχιτεκτονικά µορφήµατα Σχεδιαστικά Μορφήµατα ηµιουργίας (Creational)
Διαβάστε περισσότεραΜοτίβα Σχεδίασης (Design Patterns)
Ενότητα 6 Μοτίβα Σχεδίασης (Design Patterns) Ορισµοί βασικές έννοιες. Σηµαντικά µοτίβα σχεδίασης: Παρατηρητής (Observer). Πρόσοψη (Façade). Προσαρµογέας (Adapter). Πληρεξούσιος (Proxy). Μοναχοπαίδι (Singleton).
Διαβάστε περισσότεραΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και Αναδόμησης του Κώδικα Η πτυχιακή περιλαμβάνει τα παρακάτω:
Διαβάστε περισσότερα14 Πρότυπα Σχεδίασης συνέχεια
14 Πρότυπα Σχεδίασης συνέχεια Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Καλές πρακτικές δόμησης του κώδικα 2 Πρότυπο σχεδίασης
Διαβάστε περισσότεραΠρότυπα Σχεδίασης. Design Patterns
Πρότυπα Σχεδίασης Design Patterns 1 Bridge (Γέφυρα) Κατηγορία: Structural Σκοπός: Η αποσύνδεση μιας αφαίρεσης από την υλοποίησή της, ώστε να μπορούν να μεταβάλλονται ανεξάρτητα. Συνώνυμα: Handle/Body 2
Διαβάστε περισσότεραΕιδικά θέματα τεχνολογίας λογισμικού
Ειδικά θέματα τεχνολογίας λογισμικού Σχεδιασμός λογισμικού Διομήδης Σπινέλλης Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας Οικονομικό Πανεπιστήμιο Αθηνών dds@aueb.gr http://www.dmst.aueb.gr/dds @CoolSWEng
Διαβάστε περισσότεραBridge (Γέφυρα) Πρότυπα Σχεδίασης
Πρότυπα Σχεδίασης Κατηγορία: Structural Σκοπός: Η αποσύνδεση µιας αφαίρεσης από την υλοποίησή της, ώστε να µπορούν να µεταβάλλονται ανεξάρτητα. Συνώνυµα: Handle/Body Design Patterns 1 2 Όταν µία αφαίρεση
Διαβάστε περισσότεραΣτόχοι της Πτυχιακής
Αξιολόγηση της επίδρασης της χρήσης προτύπων σχεδίασης στις τιμές των μετρικών αντικειμενοστρεφούς σχεδίασης. Εφαρμογή σε εργαλείο σχεδίασης λογισμικού Βούλγαρης Μιχάλης Στόχοι της Πτυχιακής Επίδραση των
Διαβάστε περισσότεραΤεχνολογία Λογισμικού
Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Πρότυπα σχεδίασης Ι Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Πρότυπο σχεδίασης Design pattern Μια καλή πρακτική για την αντιμετώπιση
Διαβάστε περισσότεραΠρότυπα Σχεδίασης. Design Patterns
Πρότυπα Σχεδίασης Design Patterns 1 Bridge (Γέφυρα) Κατηγορία: Structural Σκοπός: Η αποσύνδεση μιας αφαίρεσης από την υλοποίησή της, ώστε να μπορούν να μεταβάλλονται ανεξάρτητα. Συνώνυμα: Handle/Body 2
Διαβάστε περισσότεραUML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα
ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την
Διαβάστε περισσότερα11β Δομικά πρότυπα σχεδίασης
11β Δομικά πρότυπα σχεδίασης Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Δομικά πρότυπα
Διαβάστε περισσότεραΗ ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υ7ΐοβάλλεται στην
Κατηγοριοποίηση Σχεδιαστικών Προτύπων Αντικειμενοστρεφούς Σχεδίασης Βασισμένη σε Μετρικές Ποιότητας Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ Υ7ΐοβάλλεται στην ορισθείσα από την Γενική Συνέλευση Ειδικής Σύνθεσης
Διαβάστε περισσότεραΔιαχείριση Πληροφοριακών Συστημάτων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕ ΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Ε ΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΛΗ24 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΙΙ Πρότυπα Σχεδίασης Πάνος Φιτσιλής 2004 We should forget about small efficiencies, say about 97% of the time: Premature
Διαβάστε περισσότερα02 Αντικειμενοστρεφής Προγραμματισμός
02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα µοντελοποίησης UML
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά οµικά στοιχεία Τύποι διαγραµµάτων Παραδείγµατα Ειδικά θέµατα
Διαβάστε περισσότεραΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Πρότυπα Σχεδίασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Πρότυπα Σχεδίασης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότερα14η ιάλεξη. Προχωρημένα θέματα σχεδίασης
14η ιάλεξη Προχωρημένα θέματα σχεδίασης 1 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 15: Σχεδίαση Εφαρμογών Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΑρχικοποίηση Αντικειµένων & Κλάσεων στη Java Object Instantiation & Class Initialisation Κώστας Σαΐδης saiko@di.uoa.gr http://daemon.di.uoa.gr/daemon/issue4 Μάρτιος 2004 Η Αρχή είναι το ήµισυ του Παντός
Διαβάστε περισσότεραΤι είναι η λογική αρχιτεκτονική
Τι είναι η λογική αρχιτεκτονική Η ινγηθή αξρηηεθηνληθή είλαη ε πςεινύ επηπέδνπ αθαίξεζεο νξγάλσζε ηνπ ινγηζκηθνύ ζε θιάζεηο ή παθέηα (ή ρώξνπο νλνκάησλ), ππνζπζηήκαηα, θαη επίπεδα. Ολνκάδεηαη ινγηθή αξρηηεθηνληθή
Διαβάστε περισσότερα08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο
08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language
Διαβάστε περισσότεραWrapper Classes, Abstract Classes and Interfaces
Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους
Διαβάστε περισσότεραΑπό τη UML στον Κώδικα. Μέρος Β
Από τη UML στον Κώδικα Μέρος Β περιεχόμενα παρουσίασης Αμφίδρομες συσχετίσεις Συσσωμάτωση Σύνθεση Διαγράμματα ακολουθίας αμφίδρομες συσχετίσεις Μία αμφίδρομη συσχέτιση υλοποιείται με δύο μονόδρομες. Υπάρχει
Διαβάστε περισσότεραΤεχνολογία Λογισμικού
Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Unified Modeling Language II Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση δομής Διαγράμματα κλάσεων Class diagrams
Διαβάστε περισσότεραΚληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1
Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί
Διαβάστε περισσότεραΑρχές Τεχνολογίας Λογισμικού Εργαστήριο
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?
Διαβάστε περισσότεραΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων
ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων 1 Γενικά Εξαιρετικά σηµαντικά: η απόφαση για το που ανήκουν οι µέθοδοι, και πως αλληλεπιδρούν τα αντικείµενα
Διαβάστε περισσότεραΑρχιτεκτονική Λογισμικού
Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη
Διαβάστε περισσότεραOutline. 4 Object-Oriented Programming
Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab
Διαβάστε περισσότεραΚατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο
Πανεπιστήµιο Αιγαίου Τµήµα Μηχανικών Πληροφοριακών & Επικοινωνιακών Συστηµάτων Πρόγραµµα Προπτυχιακών Σπουδών Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο Κατανεµηµένος Προγραµµατισµός
Διαβάστε περισσότεραΔοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης
Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα
Διαβάστε περισσότεραΤεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &
Διαβάστε περισσότερα. Μεθοδολογία Προγραμματισμού. Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014
.. Μεθοδολογία Προγραμματισμού Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία
Διαβάστε περισσότεραWeek. 6: Java Collections
Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται
Διαβάστε περισσότεραΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΥΦΥΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ
Διαβάστε περισσότεραΓλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ http://courses.softlab.ntua.gr/softeng/ ιδάσκοντες: (nickie@softlab.ntua.gr) Βασίλης Βεσκούκης (bxb@softlab.ntua.gr) Γλώσσες Προγραµµατισµού και Ανάπτυξη Συστηµάτων Λογισµικού ΤΛ
Διαβάστε περισσότεραΑπό τη UML στον Κώδικα. Μέρος Α
Από τη UML στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα µοντελοποίησης UML
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά Τύποι διαγραµµάτων οµικά στοιχεία Ειδικά θέµατα Βιβλιογραφία
Διαβάστε περισσότεραΑτοµική ιπλωµατική Εργασία
Ατοµική ιπλωµατική Εργασία ΣΧΕ ΙΑΣΤΙΚΑ ΠΡΟΤΥΠΑ ΓΙΑ ΤΙΣ ΕΡΕΥΝΗΤΙΚΕΣ ΠΕΡΙΟΧΕΣ ΤΗΣ ΑΛΛΗΛΕΠΙ ΡΑΣΗΣ ΑΝΘΡΩΠΟΥ-ΥΠΟΛΟΓΙΣΤΗ, ΤΑ ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΚΑΙ ΤΟΥ ΣΧΕ ΙΑΣΜΟΥ ΙΣΤΟΣΕΛΙ ΩΝ Λοΐζος Τσιάτταλος ΠΑΝΕΠΙΣΤΗΜΙΟ
Διαβάστε περισσότεραAρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Tέσσερα - Πρότυπα, Yποδοµές και Aρχιτεκτονικές
Kεφάλαιο Tέσσερα - Πρότυπα, Yποδοµές και Aρχιτεκτονικές 1 Eισαγωγή Η µηχανική λογισµικού ακολουθεί καθοδηγήσεις και παραδείγµατα από έµπρακτους σχεδιασµούς, έτσι ώστε να καταλήγει στις σωστές αποφάσεις.
Διαβάστε περισσότεραΕμπειρική μελέτη χρήσης αντικειμενοστραφών προτύπων σχεδίασης σε λογισμικό ανοικτού κώδικα
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών του τμήματος Πληροφορικής Κατεύθυνση "Πληροφοριακά Συστήματα Εμπειρική μελέτη χρήσης αντικειμενοστραφών προτύπων
Διαβάστε περισσότεραΕισαγωγή. Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Παναγιώτης Κουτσαμπάσης
Αλληλεπίδραση λ Αθώ Ανθρώπου-Υπολογιστή Εισαγωγή γή Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ Παναγιώτης Κουτσαμπάσης Αλληλεπίδραση η Ανθρώπου-Υπολογιστή «μελετά τη σχεδίαση,
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα µοντελοποίησης UML
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά οµικά στοιχεία Τύποι διαγραµµάτων Παραδείγµατα Ειδικά θέµατα
Διαβάστε περισσότερα08 Αντικειμενοστραφής ανάλυση και σχεδιασμός
08 Αντικειμενοστραφής ανάλυση και σχεδιασμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr
Διαβάστε περισσότεραΠαύλος Εφραιµίδης. Java. Κληρονοµικότητα
κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά
Διαβάστε περισσότεραΤεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Άξονες
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΤεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 21/11/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Object Diagrams Διαγράμματα Αντικειμένων
Διαβάστε περισσότεραΠεριεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Διαβάστε περισσότεραΕισαγωγή στη Σχεδίαση Λογισμικού
Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του
Διαβάστε περισσότεραΣχεδιασµός βασισµένος σε συνιστώσες
Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι
Διαβάστε περισσότερα1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι
1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της
Διαβάστε περισσότερα(Διαφάνειες Νίκου Βιδάκη)
(Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό
Διαβάστε περισσότεραΕισαγωγή στην αντικειµενοστρεφή τεχνολογία
1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης
Διαβάστε περισσότεραΘέματα εξετάσεων. Τύπος: B
Θέματα εξετάσεων Τύπος: B Ονοματεπώνυμο: Α.Μ.: Σχολή: Τμήμα: Επιτηρητής: Οδηγίες: Γράψτε τα στοιχεία σας σε αυτήν τη σελίδα Στην κόλλα σας γράψτε τα στοιχεία σας και στην πρώτη γραμμή τον τύπο των θεμάτων
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα µοντελοποίησης UML
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά Τύποι διαγραµµάτων οµικά στοιχεία Ειδικά θέµατα Βιβλιογραφία
Διαβάστε περισσότεραΔιάγραμμα Κλάσεων. Class Diagram
Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά
Διαβάστε περισσότεραΠρότυπα Σχεδίασης. Πρότυπα Σχεδίασης. Πρότυπα Σχεδίασης. Πρότυπα Σχεδίασης
Design Patterns Όλα ξεκίνησαν από.. την Αρχιτεκτονική!! Christopher Alexander, The Timeless Way of Building, Oxford University Press, New York, 1979: "Είναι η ποιότητα µία αντικειµενική ιδιότητα? " Αν
Διαβάστε περισσότεραΔιαγράμματα Κλάσεων στη Σχεδίαση
Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν
Διαβάστε περισσότεραΤα διαγράµµατα πακέτων
1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα πακέτων ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Βασικές έννοιες Πως αποικοδοµούµε ένα σύστηµα σε πακέτα Παραδείγµατα διαγράµµατος πακέτων Στερεότυπα πακέτων 3 Οχωρισµός
Διαβάστε περισσότεραΠρογράμματα με δομή Κληρονομικότητας
Προγράμματα με δομή Κληρονομικότητας Επέκταση ιεραρχίας με νέες κλάσεις Επέκταση ιεραρχίας με νέες κλάσεις Οι κλάσεις που δεν προορίζονται για δημιουργία στιγμιοτύπων, αλλά προορίζονται να χρησιμοποιηθούν
Διαβάστε περισσότεραΦροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Φροντιστήριο 5 Ημερομηνία: 01/12/2006 Θεματική
Διαβάστε περισσότερα11α Κατασκευαστικά πρότυπα σχεδίασης
11α Κατασκευαστικά πρότυπα σχεδίασης Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Κατασκευαστικά
Διαβάστε περισσότεραΔομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.
Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΔιαφορές single-processor αρχιτεκτονικών και SoCs
13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό
Διαβάστε περισσότερα28 Πολυπρακτορικά Συστήµατα
ΚΕΦΑΛΑΙΟ 28 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge, 2002] Η παραπάνω ρήση από το βιβλίο του M.Wooldridge τονίζει, ίσως µε περισσή έµφαση, ότι είναι πλέον
Διαβάστε περισσότερα3 Αλληλεπίδραση Αντικειμένων
Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή
Διαβάστε περισσότεραΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης
ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός
Διαβάστε περισσότεραΚλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διαβάστε περισσότεραΑντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗ ΣΥΣΤΗΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗ ΣΥΣΤΗΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Υλοποίηση Eclipse plug-in για τον Εντοπισμό Προτύπων Σχεδίασης ΚΟΡΤΣΑΡΗΣ
Διαβάστε περισσότεραΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:
Διαβάστε περισσότεραΤεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΕλληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής
1 Ελληνικό Ανοικτό Πανεπιστήµιο Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας ρ. Πάνος Φιτσιλής Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2 Βασικές
Διαβάστε περισσότεραΚαρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά
Διαβάστε περισσότεραΑνάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)
Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:
Διαβάστε περισσότεραΠεριεχόμενα και Διάρθρωση. Interaction Diagrams
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Interaction Diagrams Περιεχόμενα και Διάρθρωση Εισαγωγή Διαγράμματα
Διαβάστε περισσότεραΤι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:
Spring Framework Τι είναι η Spring Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως: Ελαφρύς τμηματοκεντρικός περιέκτης ο οποίος εφαρμόζει παθητική
Διαβάστε περισσότεραΠερίληψη ιπλωµατικής Εργασίας
Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο
Διαβάστε περισσότεραΔομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr
Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που
Διαβάστε περισσότερα12 Πρότυπα σχεδίασης συμπεριφοράς
12 Πρότυπα σχεδίασης συμπεριφοράς Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Πρότυπα
Διαβάστε περισσότεραΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΤΟΥ ΕΠΙΛΕΓΜΕΝΟΥ ΚΩΔΙΚΑ» Πτυχιακή εργασία του φοιτητή Γκορτζή Αντωνίου
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΤΡΑΤΗΓΙΚΗ ΕΠΙΛΟΓΗΣ ΚΛΑΣΕΩΝ ΜΕ ΣΤΟΧΟ ΤΗΝ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΤΟΥ ΕΠΙΛΕΓΜΕΝΟΥ ΚΩΔΙΚΑ» Του φοιτητή Γκορτζή Αντωνίου Αρ. Μητρώου: 042648 Επιβλέποντες καθηγητές Δρ. Δεληγιάννης Ιγνάτιος
Διαβάστε περισσότεραΔομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές
Διαβάστε περισσότεραΚεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Διαβάστε περισσότεραΗ Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)
Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα τοποθετούνται
Διαβάστε περισσότεραΤεχνολογία Λογισμικού
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών Διδάσκων Κ. Κοντογιάννης Επώνυμο: Όνομα: Αριθμός Mητρώου: E-mail: Τεχνολογία Λογισμικού
Διαβάστε περισσότερα04 Αντικειμενοστραφής ανάλυση και σχεδιασμός
04 Αντικειμενοστραφής ανάλυση και σχεδιασμός Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr
Διαβάστε περισσότεραΕπιτεύγµατα των Λ.Σ.
Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος
Διαβάστε περισσότεραHY252. Περιγραφή Εργασίας. Graphic Editor
HY252 Περιγραφή Εργασίας Graphic Editor - 1 - Περιγραφή Εργασίας Graphic Editor 1. Περιγραφή της εργασίας Το Graphic Editor είναι ένα πρόγραµµα ζωγραφικής που σκοπό έχει να δηµιουργεί και να χειρίζεται
Διαβάστε περισσότεραΑνάλυση Συστηµάτων και Τεχνολογία Λογισµικού
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού Μάρα Νικολαϊδου Αντικείµενο & Σκοπός Παρουσίαση και ανάλυση όλων των σταδίων της διαδικασίας ανάπτυξης
Διαβάστε περισσότεραΑλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ίδρυµα Θεσσαλονίκης Σχολή Τεχνολογικών Εφαρµογών Τµήµα Πληροφορικής
Αλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ίδρυµα Θεσσαλονίκης Σχολή Τεχνολογικών Εφαρµογών Τµήµα Πληροφορικής Θέµα : «Αξιολόγηση της επίδρασης της χρήσης προτύπων σχεδίασης στις τιµές των µετρικών αντικειµενοστρεφούς
Διαβάστε περισσότεραΜεθοδολογία επαναχρησιμοποίησης κώδικα βασισμένη σε πρότυπα σχεδίασης
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών του τμήματος Πληροφορικής Κατεύθυνση "Πληροφοριακά Συστήματα Μεθοδολογία επαναχρησιμοποίησης κώδικα βασισμένη σε
Διαβάστε περισσότεραΤο πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.
Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει
Διαβάστε περισσότεραΕισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής
VHDL Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής Structural (Δομική) Dataflow (Ροής δεδομένων) Behavioral (Συμπεριφοράς) Η VDHL χρησιμοποιείται για την περιγραφή
Διαβάστε περισσότεραΑρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12
Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των
Διαβάστε περισσότερα