Σχεδιαστικά Μορφήµατα (Design Patterns)

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σχεδιαστικά Μορφήµατα (Design Patterns)"

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)

Σχεδιαστικά Μορφήµατα (Design Patterns) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Σχεδιαστικά Μορφήµατα (Design Patterns) Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά Αρχιτεκτονικά µορφήµατα Σχεδιαστικά Μορφήµατα ηµιουργίας (Creational)

Διαβάστε περισσότερα

Μοτίβα Σχεδίασης (Design Patterns)

Μοτίβα Σχεδίασης (Design Patterns) Ενότητα 6 Μοτίβα Σχεδίασης (Design Patterns) Ορισµοί βασικές έννοιες. Σηµαντικά µοτίβα σχεδίασης: Παρατηρητής (Observer). Πρόσοψη (Façade). Προσαρµογέας (Adapter). Πληρεξούσιος (Proxy). Μοναχοπαίδι (Singleton).

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και Αναδόμησης του Κώδικα Η πτυχιακή περιλαμβάνει τα παρακάτω:

Διαβάστε περισσότερα

14 Πρότυπα Σχεδίασης συνέχεια

14 Πρότυπα Σχεδίασης συνέχεια 14 Πρότυπα Σχεδίασης συνέχεια Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Καλές πρακτικές δόμησης του κώδικα 2 Πρότυπο σχεδίασης

Διαβάστε περισσότερα

Πρότυπα Σχεδίασης. Design Patterns

Πρότυπα Σχεδίασης. Design Patterns Πρότυπα Σχεδίασης Design Patterns 1 Bridge (Γέφυρα) Κατηγορία: Structural Σκοπός: Η αποσύνδεση μιας αφαίρεσης από την υλοποίησή της, ώστε να μπορούν να μεταβάλλονται ανεξάρτητα. Συνώνυμα: Handle/Body 2

Διαβάστε περισσότερα

Ειδικά θέματα τεχνολογίας λογισμικού

Ειδικά θέματα τεχνολογίας λογισμικού Ειδικά θέματα τεχνολογίας λογισμικού Σχεδιασμός λογισμικού Διομήδης Σπινέλλης Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας Οικονομικό Πανεπιστήμιο Αθηνών dds@aueb.gr http://www.dmst.aueb.gr/dds @CoolSWEng

Διαβάστε περισσότερα

Bridge (Γέφυρα) Πρότυπα Σχεδίασης

Bridge (Γέφυρα) Πρότυπα Σχεδίασης Πρότυπα Σχεδίασης Κατηγορία: Structural Σκοπός: Η αποσύνδεση µιας αφαίρεσης από την υλοποίησή της, ώστε να µπορούν να µεταβάλλονται ανεξάρτητα. Συνώνυµα: Handle/Body Design Patterns 1 2 Όταν µία αφαίρεση

Διαβάστε περισσότερα

Στόχοι της Πτυχιακής

Στόχοι της Πτυχιακής Αξιολόγηση της επίδρασης της χρήσης προτύπων σχεδίασης στις τιμές των μετρικών αντικειμενοστρεφούς σχεδίασης. Εφαρμογή σε εργαλείο σχεδίασης λογισμικού Βούλγαρης Μιχάλης Στόχοι της Πτυχιακής Επίδραση των

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Πρότυπα σχεδίασης Ι Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Πρότυπο σχεδίασης Design pattern Μια καλή πρακτική για την αντιμετώπιση

Διαβάστε περισσότερα

Πρότυπα Σχεδίασης. Design Patterns

Πρότυπα Σχεδίασης. Design Patterns Πρότυπα Σχεδίασης Design Patterns 1 Bridge (Γέφυρα) Κατηγορία: Structural Σκοπός: Η αποσύνδεση μιας αφαίρεσης από την υλοποίησή της, ώστε να μπορούν να μεταβάλλονται ανεξάρτητα. Συνώνυμα: Handle/Body 2

Διαβάστε περισσότερα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την

Διαβάστε περισσότερα

11β Δομικά πρότυπα σχεδίασης

11β Δομικά πρότυπα σχεδίασης 11β Δομικά πρότυπα σχεδίασης Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Δομικά πρότυπα

Διαβάστε περισσότερα

Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υ7ΐοβάλλεται στην

Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υ7ΐοβάλλεται στην Κατηγοριοποίηση Σχεδιαστικών Προτύπων Αντικειμενοστρεφούς Σχεδίασης Βασισμένη σε Μετρικές Ποιότητας Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ Υ7ΐοβάλλεται στην ορισθείσα από την Γενική Συνέλευση Ειδικής Σύνθεσης

Διαβάστε περισσότερα

Διαχείριση Πληροφοριακών Συστημάτων

Διαχείριση Πληροφοριακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ε ΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Ε ΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Ε ΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΛΗ24 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΙΙ Πρότυπα Σχεδίασης Πάνος Φιτσιλής 2004 We should forget about small efficiencies, say about 97% of the time: Premature

Διαβάστε περισσότερα

02 Αντικειμενοστρεφής Προγραμματισμός

02 Αντικειμενοστρεφής Προγραμματισμός 02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα µοντελοποίησης UML

Εισαγωγή στη γλώσσα µοντελοποίησης UML Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά οµικά στοιχεία Τύποι διαγραµµάτων Παραδείγµατα Ειδικά θέµατα

Διαβάστε περισσότερα

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Πρότυπα Σχεδίασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Πρότυπα Σχεδίασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Πρότυπα Σχεδίασης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

14η ιάλεξη. Προχωρημένα θέματα σχεδίασης

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πολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 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 Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

Διαβάστε περισσότερα

Από τη UML στον Κώδικα. Μέρος Β

Από τη UML στον Κώδικα. Μέρος Β Από τη UML στον Κώδικα Μέρος Β περιεχόμενα παρουσίασης Αμφίδρομες συσχετίσεις Συσσωμάτωση Σύνθεση Διαγράμματα ακολουθίας αμφίδρομες συσχετίσεις Μία αμφίδρομη συσχέτιση υλοποιείται με δύο μονόδρομες. Υπάρχει

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Unified Modeling Language II Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση δομής Διαγράμματα κλάσεων Class diagrams

Διαβάστε περισσότερα

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Κληρονομικότητα. Παύλος Εφραιμίδης 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 προτύπων ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων 1 Γενικά Εξαιρετικά σηµαντικά: η απόφαση για το που ανήκουν οι µέθοδοι, και πως αλληλεπιδρούν τα αντικείµενα

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

Outline. 4 Object-Oriented Programming

Outline. 4 Object-Oriented Programming Προγραμματισμός Ηλεκτρονικών Υπολογιστών Φιλοσοφίες γλωσσών προγραμματισμού Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2016 ιδάσκων: Στάθης Ζάχος ( CoReLab

Διαβάστε περισσότερα

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο

Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο Πανεπιστήµιο Αιγαίου Τµήµα Μηχανικών Πληροφοριακών & Επικοινωνιακών Συστηµάτων Πρόγραµµα Προπτυχιακών Σπουδών Κατανεµηµένος Προγραµµατισµός & Προγραµµατισµός στο ιαδίκτυο Κατανεµηµένος Προγραµµατισµός

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &

Διαβάστε περισσότερα

. Μεθοδολογία Προγραμματισμού. Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

. Μεθοδολογία Προγραμματισμού. Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014 .. Μεθοδολογία Προγραμματισμού Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία

Διαβάστε περισσότερα

Week. 6: Java Collections

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 στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα µοντελοποίησης UML

Εισαγωγή στη γλώσσα µοντελοποίησης UML Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά Τύποι διαγραµµάτων οµικά στοιχεία Ειδικά θέµατα Βιβλιογραφία

Διαβάστε περισσότερα

Ατοµική ιπλωµατική Εργασία

Ατοµική ιπλωµατική Εργασία Ατοµική ιπλωµατική Εργασία ΣΧΕ ΙΑΣΤΙΚΑ ΠΡΟΤΥΠΑ ΓΙΑ ΤΙΣ ΕΡΕΥΝΗΤΙΚΕΣ ΠΕΡΙΟΧΕΣ ΤΗΣ ΑΛΛΗΛΕΠΙ ΡΑΣΗΣ ΑΝΘΡΩΠΟΥ-ΥΠΟΛΟΓΙΣΤΗ, ΤΑ ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΚΑΙ ΤΟΥ ΣΧΕ ΙΑΣΜΟΥ ΙΣΤΟΣΕΛΙ ΩΝ Λοΐζος Τσιάτταλος ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Tέσσερα - Πρότυπα, Yποδοµές και Aρχιτεκτονικές

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Tέσσερα - Πρότυπα, Yποδοµές και Aρχιτεκτονικές Kεφάλαιο Tέσσερα - Πρότυπα, Yποδοµές και Aρχιτεκτονικές 1 Eισαγωγή Η µηχανική λογισµικού ακολουθεί καθοδηγήσεις και παραδείγµατα από έµπρακτους σχεδιασµούς, έτσι ώστε να καταλήγει στις σωστές αποφάσεις.

Διαβάστε περισσότερα

Εμπειρική μελέτη χρήσης αντικειμενοστραφών προτύπων σχεδίασης σε λογισμικό ανοικτού κώδικα

Εμπειρική μελέτη χρήσης αντικειμενοστραφών προτύπων σχεδίασης σε λογισμικό ανοικτού κώδικα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών του τμήματος Πληροφορικής Κατεύθυνση "Πληροφοριακά Συστήματα Εμπειρική μελέτη χρήσης αντικειμενοστραφών προτύπων

Διαβάστε περισσότερα

Εισαγωγή. Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Παναγιώτης Κουτσαμπάσης

Εισαγωγή. Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ. Παναγιώτης Κουτσαμπάσης Αλληλεπίδραση λ Αθώ Ανθρώπου-Υπολογιστή Εισαγωγή γή Τμήμα Μηχανικών Σχεδίασης Προϊόντων και Συστημάτων, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ Παναγιώτης Κουτσαμπάσης Αλληλεπίδραση η Ανθρώπου-Υπολογιστή «μελετά τη σχεδίαση,

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα µοντελοποίησης UML

Εισαγωγή στη γλώσσα µοντελοποίησης UML Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά οµικά στοιχεία Τύποι διαγραµµάτων Παραδείγµατα Ειδικά θέµατα

Διαβάστε περισσότερα

08 Αντικειμενοστραφής ανάλυση και σχεδιασμός

08 Αντικειμενοστραφής ανάλυση και σχεδιασμός 08 Αντικειμενοστραφής ανάλυση και σχεδιασμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr

Διαβάστε περισσότερα

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Άξονες

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13 Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις

Διαβάστε περισσότερα

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια. Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 21/11/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Object Diagrams Διαγράμματα Αντικειμένων

Διαβάστε περισσότερα

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

Διαβάστε περισσότερα

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

Διαβάστε περισσότερα

Θέματα εξετάσεων. Τύπος: B

Θέματα εξετάσεων. Τύπος: B Θέματα εξετάσεων Τύπος: B Ονοματεπώνυμο: Α.Μ.: Σχολή: Τμήμα: Επιτηρητής: Οδηγίες: Γράψτε τα στοιχεία σας σε αυτήν τη σελίδα Στην κόλλα σας γράψτε τα στοιχεία σας και στην πρώτη γραμμή τον τύπο των θεμάτων

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα µοντελοποίησης UML

Εισαγωγή στη γλώσσα µοντελοποίησης UML Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά Τύποι διαγραµµάτων οµικά στοιχεία Ειδικά θέµατα Βιβλιογραφία

Διαβάστε περισσότερα

Διάγραμμα Κλάσεων. Class Diagram

Διάγραμμα Κλάσεων. 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 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων

Φροντιστήριο 5. Ημερομηνία: 01/12/2006 Θεματική Ενότητα: Μοντελοποίηση Συμπεριφοράς Θέμα: Διαγράμματα αλληλεπίδρασης και καταστάσεων Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Φροντιστήριο 5 Ημερομηνία: 01/12/2006 Θεματική

Διαβάστε περισσότερα

11α Κατασκευαστικά πρότυπα σχεδίασης

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. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

28 Πολυπρακτορικά Συστήµατα

28 Πολυπρακτορικά Συστήµατα ΚΕΦΑΛΑΙΟ 28 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge, 2002] Η παραπάνω ρήση από το βιβλίο του M.Wooldridge τονίζει, ίσως µε περισσή έµφαση, ότι είναι πλέον

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 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 Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας ρ. Πάνος Φιτσιλής Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2 Βασικές

Διαβάστε περισσότερα

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

Περιεχόμενα και Διάρθρωση. Interaction Diagrams

Περιεχόμενα και Διάρθρωση. Interaction Diagrams Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Interaction Diagrams Περιεχόμενα και Διάρθρωση Εισαγωγή Διαγράμματα

Διαβάστε περισσότερα

Τι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:

Τι είναι η 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 Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

Διαβάστε περισσότερα

12 Πρότυπα σχεδίασης συμπεριφοράς

12 Πρότυπα σχεδίασης συμπεριφοράς 12 Πρότυπα σχεδίασης συμπεριφοράς Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Πρότυπα

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΤΟΥ ΕΠΙΛΕΓΜΕΝΟΥ ΚΩΔΙΚΑ» Πτυχιακή εργασία του φοιτητή Γκορτζή Αντωνίου

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΤΟΥ ΕΠΙΛΕΓΜΕΝΟΥ ΚΩΔΙΚΑ» Πτυχιακή εργασία του φοιτητή Γκορτζή Αντωνίου ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΤΡΑΤΗΓΙΚΗ ΕΠΙΛΟΓΗΣ ΚΛΑΣΕΩΝ ΜΕ ΣΤΟΧΟ ΤΗΝ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΤΟΥ ΕΠΙΛΕΓΜΕΝΟΥ ΚΩΔΙΚΑ» Του φοιτητή Γκορτζή Αντωνίου Αρ. Μητρώου: 042648 Επιβλέποντες καθηγητές Δρ. Δεληγιάννης Ιγνάτιος

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού 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 Αντικειμενοστραφής ανάλυση και σχεδιασμός 04 Αντικειμενοστραφής ανάλυση και σχεδιασμός Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr

Διαβάστε περισσότερα

Επιτεύγµατα των Λ.Σ.

Επιτεύγµατα των Λ.Σ. Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος

Διαβάστε περισσότερα

HY252. Περιγραφή Εργασίας. Graphic Editor

HY252. Περιγραφή Εργασίας. Graphic Editor HY252 Περιγραφή Εργασίας Graphic Editor - 1 - Περιγραφή Εργασίας Graphic Editor 1. Περιγραφή της εργασίας Το Graphic Editor είναι ένα πρόγραµµα ζωγραφικής που σκοπό έχει να δηµιουργεί και να χειρίζεται

Διαβάστε περισσότερα

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού Μάρα Νικολαϊδου Αντικείµενο & Σκοπός Παρουσίαση και ανάλυση όλων των σταδίων της διαδικασίας ανάπτυξης

Διαβάστε περισσότερα

Αλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ίδρυµα Θεσσαλονίκης Σχολή Τεχνολογικών Εφαρµογών Τµήµα Πληροφορικής

Αλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ίδρυµα Θεσσαλονίκης Σχολή Τεχνολογικών Εφαρµογών Τµήµα Πληροφορικής Αλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ίδρυµα Θεσσαλονίκης Σχολή Τεχνολογικών Εφαρµογών Τµήµα Πληροφορικής Θέµα : «Αξιολόγηση της επίδρασης της χρήσης προτύπων σχεδίασης στις τιµές των µετρικών αντικειµενοστρεφούς

Διαβάστε περισσότερα

Μεθοδολογία επαναχρησιμοποίησης κώδικα βασισμένη σε πρότυπα σχεδίασης

Μεθοδολογία επαναχρησιμοποίησης κώδικα βασισμένη σε πρότυπα σχεδίασης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών του τμήματος Πληροφορικής Κατεύθυνση "Πληροφοριακά Συστήματα Μεθοδολογία επαναχρησιμοποίησης κώδικα βασισμένη σε

Διαβάστε περισσότερα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα 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 Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής Structural (Δομική) Dataflow (Ροής δεδομένων) Behavioral (Συμπεριφοράς) Η VDHL χρησιμοποιείται για την περιγραφή

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα