Αντικειμενοστρεφής σχεδίαση
Ο αντικειμενοστρεφής προγραμματισμός αποτελεί ένα εξαιρετικό υπόδειγμα για τη δημιουργία σύγχρονων συστημάτων λογισμικού. Ωστόσο, για την ανάπτυξη έργων λογισμικού μεγάλης κλίμακας, δεν επαρκεί η υλοποίηση λειτουργικού κώδικα· απαιτείται συστηματική σχεδίαση του συστήματος πριν από την κωδικοποίηση. Το πλέον εμφανές σύμπτωμα μιας "κακής" σχεδίασης είναι η δυσκολία συντήρησης του λογισμικού, δηλαδή της ικανοποίησης των νέων απαιτήσεων των πελατών.