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

Σχετικά έγγραφα
ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

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

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

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

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

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

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

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

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ

ΑΝΙΧΝΕΥΣΗ ΠΡΟΤΥΠΩΝ ΣΧΕΔΙΑΣΗΣ ΣΕ ΛΟΓΙΣΜΙΚΟ ΑΝΟΙΧΤΟ ΚΩΔΙΚΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΓΚΟΥΝΤΙΝΑΣ ΛΑΖΑΡΟΣ(ΑΜ:708) ΕΠΙΒΛΕΠΩΝ : ΑΛΕΞΑΝΔΡΟΣ ΛΑΖΑΡΙΔΗΣ

Διαγράμματα Κλάσεων στη Σχεδίαση

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

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

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

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗ ΣΥΣΤΗΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ

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

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός

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

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

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

xvi Προσέγγιση δομεσ δεδομενων και αλγοριθμοι

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

Σύνθεση και Κληρονομικότητα

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

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Παρουσίαση των σκοπών και των στόχων Ημερήσια πλάνα...53

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

Αντικείμενα, συμπεριφορές, γεγονότα

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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

2.1 Αντικειµενοστρεφής προγραµµατισµός

Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Πτυχιακή εργασία

Μεθοδολογίες Παραγωγής Λογισµικού

Βασίλειος Κοντογιάννης ΠΕ19

Υποδείγματα Ανάπτυξης

Διδακτική της Πληροφορικής ΙΙ

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

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

Εισαγωγή στην Τεχνολογία Λογισμικού

"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

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

Σύνθεση και Κληρονομικότητα

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

Θεωρία Αποφάσεων ο. 4 Φροντιστήριο. Λύσεις των Ασκήσεων

Θέµατα εξετάσεων µε απαντήσεις

Chapter 6. Problem Solving and Algorithm Design. Στόχοι Ενότητας. Επίλυση προβληµάτων. Εισαγωγή. Nell Dale John Lewis

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Τα διαγράµµατα πακέτων

ΕΡΓΟ: Συγκριτική Μελέτη Λογισμικού Βιβλιοθηκών, Λογισμικού Εφαρμογών Ανοικτού Κώδικα και Βιομηχανικού Λογισμικού MIS:

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

Comparative Study of API vs. Open-Source Software ZAPROUDI A. PASCHALIA. Supervisor: CHATZHGEORGIOU ALEXANDROS

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

Διδάσκων:Μ.Χατζόπουλος, Παραδόσεις:Τρίτη 4-6, Τετάρτη 1-3; (Αμφιθέατρο Α15) Πληροφορίες στην ιστοσελίδα του μαθήματος

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ

Εισαγωγή στην Τεχνολογία Λογισµικού

Διαχείριση Πολιτισμικών Δεδομένων

Εισαγωγή στην Πληροφορική

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΟΣΟ ΣΥΝΘΗΚΗ ΕΠΑΝΑΛΑΒΕ.ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ. Κοκκαλάρα Μαρία ΠΕ19

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

711 Πληροφορικής ΤΕΙ Αθήνας

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

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στην Τεχνολογία Λογισµικού

Αρχές Τεχνολογίας Λογισμικού

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

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

Μέρος Β 4. Δημιουργία προτύπων

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

ΑΛΕΞΑΝΔΡΕΙΟ ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Σενάριο 16: Ο κόσμος του Robby

Transcript:

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

Η πτυχιακή περιλαμβάνει τα παρακάτω: Αναλυτική παρουσίαση των σχεδιαστικών και GRASP προτύπωναπεικονίσεις και υλοποιήσεις

Ο όρος «Πρότυπο Σχεδίασης» έρχεται από την επιστήμη της αρχιτεκτονικής. O Christopher Alexander το περιγράφει ως εξής: «Ένα πρότυπο (σχεδίασης) είναι μία προσεκτική περιγραφή μίας επιτυχημένης (στον χρόνο) λύσης ενός συχνά εμφανιζόμενου προβλήματος στην κατασκευή ενός δομικού περιβάλλοντος, η οποία περιγράφει επιτυχώς μία από τις συντεταγμένες προσπάθειες να ολοκληρωθεί το οικοδόμημα στο οποίο αναφέρεται». Όσον αφορά στο λογισμικό, τα πρότυπα σχεδίασης είναι αυτά που μας επιτρέπουν να περιγράψουμε κομμάτια σχεδίασης και επαναχρησιμοποίηση κάποιων ιδεών σχεδίασης, βοηθώντας έτσι τους μηχανικούς λογισμικού να επωφεληθούν από την υπάρχουσα γνώση άλλων προγραμματιστών.

Ένα πρότυπο σχεδίασης λογισμικού αποτελείται από τέσσερα βασικά τμήματα: 1. Το όνομα του προτύπου (pattern name), το οποίο είναι προφανώς το χαρακτηριστικό που μας βοηθάει να περιγράψουμε το πρόβλημα, τις λύσεις και τις επιπτώσεις τους, σε μία-δύο λέξεις. 2. Το πρόβλημα (the problem), το οποίο περιγράφει επακριβώς τις συνθήκες στις οποίες θα εφαρμοστεί το συγκεκριμένο πρότυπο. 3. Η λύση (solution), περιγράφει τα στοιχεία που εμπεριέχονται στο πρότυπο, τις μεταξύ τους σχέσεις, τις αρμοδιότητες τους και τις μεταξύ τους συνέργιες. 4. Τα επακόλουθα (Consequences), είναι τα αποτελέσματα της αλληλεπίδρασης της εφαρμογής του προτύπου.

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

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

Κατασκευαστικά (Creational) Δομικά (Structural) Συμπεριφορικά (Behavioral) Πρότυπα GRASP Η τελευταία κατηγορία (GRASP) θεωρείται από πολλούς και η πλέον σημαντική και άμεσα εφαρμόσιμη, για αυτό και αναλύονται πιο διεξοδικά.

Τα Κατασκευαστικά Πρότυπα συνδέονται στο αφαιρετικό επίπεδο με την διαδικασία «αποστασιοποίησης», με τον τρόπο δηλαδή που ένα σύστημα είναι ανεξάρτητο από το πώς καλούνται τα αντικείμενα, καθώς και από την δημιουργία τους, σύνθεση τους και απεικόνιση τους. Σε αυτά τα πρότυπα υπάρχουν δύο επανεμφανιζόμενα συνέχεια θέματα: εμπεριέχουν την γνώση των βασικών δομικών κλάσεων που χρησιμοποιεί το σύστημα. αποκρύπτουν τον τρόπο με τον οποίο τα στιγμιότυπα αυτών των κλάσεων δημιουργούνται και αλληλεπιδρούν. Το σύστημα γνωρίζει για τα αντικείμενα μόνο τις διεπαφές τους όπως προσδιορίζονται στις αφαιρετικές (abstract) κλάσεις του.

1. Πρότυπο Νοητό Εργοστάσιο, Creational Pattern Abstract Factory 2. Πρότυπο Δημιουργός, Creational Pattern Builder 3. Πρότυπο Εργοστάσιο, Creational Pattern Factory 4. Πρότυπο Πρωτότυπο, Creational Pattern Prototype 5. Πρότυπο Μοναδικότητας, Creational Pattern Singleton

Τα δομικά πρότυπα ασχολούνται με το πώς οι κλάσεις και να αντικείμενα συντίθενται μεταξύ τους ώστε να δημιουργήσουν μεγαλύτερες και πολυπλοκότερες δομές. Οι κλάσεις του προτύπου χρησιμοποιούν την κληρονομικότητα (inheritance) για να δημιουργήσουν διεπαφές ή αντικείμενα.

1. Πρότυπο Προσαρμογής,Structural Pattern Adapter 2. Πρότυπο Γέφυρας,Structural Pattern Bridge 3. Πρότυπο Σύνθεσης,Structural Pattern Composite 4. Πρότυπο Διακοσμητής,Structural Pattern Decorator 5. Πρότυπο Πρόσοψης,Structural Pattern Façade 6. Πρότυπο Πληρεξούσιος,Structural Pattern Proxy

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

1. Πρότυπο Προσταγής, Behavioral Pattern Command 2. Πρότυπο Ακολουθία Ευθύνης, Behavioral Pattern Chain of Responsibility 3. Πρότυπο Διερμηνέας, Behavioral Pattern Interpreter 4. Πρότυπο Επαναλήπτης, Behavioral Pattern Iterator 5. Πρότυπο Μεσολαβητής, Behavioral Pattern Mediator 6. Πρότυπο Ενθύμιο, Behavioral Pattern Memento 7. Πρότυπο Παρατηρητής, Behavioral Pattern Observer 8. Πρότυπο Κατάστασης, Behavioral Pattern State 9. Πρότυπο Στρατηγικής, Behavioral Pattern Strategy 10. Πρότυπο Επισκέπτης, Behavioral Pattern Visitor

Έρευνες για τις γλώσσες προγραμματισμού, έδειξαν ότι η γνώση και η εμπειρία σε αυτές δεν οργανώνεται απλά γύρω από την σύνταξη τους και την γνώση των κανόνων τους, αλλά σε βασικές δομές όπως αλγόριθμοι, δομές δεδομένων και ιδιαίτερες δομές προσαρμοσμένες σε κάθε γλώσσα, καθώς και συγκεκριμένους τρόπους επίτευξης του στόχου. Ένας μηχανικός λογισμικού δεν σκέφτεται συνήθως καινούριους τρόπους να αναπαραστήσει ένα συγκεκριμένο θέμα ή ζητούμενο, αλλά ανακαλεί κάθε φορά γνωστούς τρόπους και διαδικασίες για να το επιτύχει. Τα πρότυπα GRASP, συμβάλλουν τα μέγιστα προς αυτή την κατεύθυνση με την ευκολία χρήσης τους και την δυνατότητα άμεσης επαναχρησιμοποίησης αλλά και την προσαρμοστικότητα που διαθέτουν.

1. Πρότυπο Δημιουργός GRASP Pattern Creator 2. Πρότυπο Πληροφορίας GRASP Pattern (Information) Expert 3. Πρότυπο Χαμηλής Σύζευξης GRASP Pattern Low Coupling 4. Πρότυπο Ελέγχου GRASP Pattern - Controller 5. Πρότυπο Υψηλής Συνοχής GRASP Pattern High Cohesion 6. Πρότυπο Πολυμορφισμού GRASP Pattern Polymorphism 7. Πρότυπο Κατασκευής GRASP Pattern Pure Fabrication 8. Έμμεσο Πρότυπο GRASP Pattern Indirection 9. Πρότυπο Προστατευμένων Παραλλαγών GRASP Pattern Protected Variation

Τα σχεδιαστικά πρότυπα γενικώς είναι μία γενική επαναχρησιμοποιούμενη λύση σε συχνά εμφανιζόμενα προβλήματα στην συγγραφή λογισμικού. Ένα πρότυπο δεν είναι μία ολοκληρωμένη και λεπτομερής πρόταση σχεδιασμού λογισμικού, αλλά μία περιγραφή ή αλλιώς ένας οδηγός επίλυσης ενός συγκεκριμένου προβλήματος ή μίας οικογένειας προβλημάτων που μπορούν να εμφανιστούν κάτω από διαφορετικές συνθήκες. Τα σχεδιαστικά πρότυπα στον αντικειμενoστρεφή σχεδιασμό συνήθως δείχνουν σχέσεις και αλληλεπιδράσεις μεταξύ κλάσεων και αντικειμένων χωρίς να ορίζουν σαφώς τις τελικές κλάσεις ή αντικείμενα πάνω στα οποία επιδρούν.