Επίδραση των προτύπων σχεδίασης στην ποιότητα λογισμικού
Creators: name: Αμπατζόγλου, Απόστολος Πρ.
Publisher: name: Aristotle University of Thessaloniki
Year: 2012
Subjects: Πρότυπα σχεδίασης
Ποιότητα λογισμικού
Αναλυτική προσέγγιση
Εμπειρική μελέτη
Design patetrns
Software quality
Analytical approach
Empirical study

description: Η παρούσα διδακτορική διατριβή πραγματεύεται την επίδραση των προτύπων σχεδίασης στην ποιότητα του λογισμικού. Τα πρότυπα σχεδίασης αποτελούν καταγεγραμμένες λύσεις που έχουν προταθεί στη βιβλιογραφία για την επίλυση συχνά εμφανιζόμενων σχεδιαστικών προβλημάτων. Η επίδραση των προτύπων στην ποιότητα του λογισμικού έχει μελετηθεί εκτενώς στη διεθνή αρθρογραφία. Τα αποτελέσματα όμως των μελετών είναι διχασμένα, καθώς κάποιοι μελετητές υποστηρίζουν πως τα πρότυπα βελτιώνουν την ποιότητα του λογισμικού ενώ άλλοι υποστηρίζουν ότι έχουν αρνητικές επιπτώσεις. Στο πλαίσιο της συγκεκριμένης διατριβής μελετήσαμε με εμπειρικές μεθόδους την επαναχρησιμοποίηση των προτύπων, την επίδραση τους στη δομική ποιότητα καθώς και στην αποσφαλμάτωση του λογισμικού. Τα αποτελέσματα των συγκεκριμένων μελετών επιβεβαίωσαν πως τα πρότυπα σχεδίασης δεν έχουν ομοιόμορφη επίδραση στα χαρακτηριστικά ποιότητας. Ταυτόχρονα όμως, εντοπίστηκαν κάποιοι κανόνες που μπορούν να χρησιμοποιηθούν σαν οδηγός ώστε η χρήση των προτύπων να έχει όσο το δυνατόν περισσότερες θετικές συνέπειες. Στη συνέχεια, και στην προσπάθεια να εντοπιστούν κάποιοι παράγοντες που καθιστούν τη χρήση του προτύπου ευεργετική ή όχι, μελετήσαμε την επίδραση του μεγέθους του προτύπου σχεδίασης, δηλαδή το πλήθος των κλάσεων που συμμετέχουν σε κάθε στιγμιότυπο, στον τρόπο επίδρασης του προτύπου στην ποιότητα. Η συγκεκριμένη μελέτη διενεργήθηκε με χρήση αναλυτικής μεθοδολογίας που έδωσε τη δυνατότητα εξεύρεσης συγκεκριμένων ορίων τα οποία οριοθετούν τις περιοχές θετικής και αρνητικής επίδρασης ενός προτύπου σχεδίασης. Τα αποτελέσματα της μελέτης θεωρούνται ιδιαιτέρως σημαντικά καθώς προσφέρουν μια πιο ολιστική λύση στη μελέτη της επίδρασης των προτύπων σχεδίασης, διότι δε σχετίζεται με συγκεκριμένα στιγμιότυπα προτύπων, αλλά με τα γενικότερα δομικά χαρακτηριστικά τους. Ως πεδία εφαρμογής των μελετών και των αποτελεσμάτων χρησιμοποιήθηκαν το ανοιχτό λογισμικό και τα παιχνίδια για ηλεκτρονικούς υπολογιστές. Το ανοιχτό λογισμικό αποτελεί ένα ραγδαία αναπτυσσόμενο είδος λογισμικού, τόσο σε ερευνητικό όσο και σε επιχειρηματικό επίπεδο. Αντίστοιχα, τα παιχνίδια για ηλεκτρονικούς υπολογιστές αποτελούν βασικό μέρος του σύγχρονου τρόπου ζωής, με τις βιομηχανίες λογισμικού παιχνιδιών να αποτελούν κάποιες από τις πλέον κερδοφόρες επιχειρήσεις. Επιπλέον, η φύση και η πολυπλοκότητα της διαδικασίας ανάπτυξης παιχνιδιών καθιστούν τα παιχνίδια ιδανικό πεδίο εφαρμογής των προτύπων σχεδίασης. Τέλος, τα αποτελέσματα της διατριβής βρήκαν πρακτικές εφαρμογές με δύο κύριους τρόπους. Αρχικά, τα αποτελέσματα της αναλυτικής μεθοδολογίας αποτελέσαν τη βάση για τη δημιουργία ενός εργαλείου υποβοήθησης σχεδίασης συστημάτων, σε περιπτώσεις όπου μπορεί να εφαρμοστεί κάποιο πρότυπο σχεδίασης αλλά η επίδραση του στην ποιότητα είναι αμφίβολη. Επιπλέον, δημιουργήθηκε ένα διαδικτυακό αποθετήριο στιγμιοτύπων προτύπων σχεδίασης, στο οποίο μπορούν να ανατρέξουν τόσο ερευνητές όσο και προγραμματιστές λογισμικού, στην προσπάθεια να ανακτήσουν τμήματα κώδικα που υλοποιούν συγκεκριμένες λειτουργικές απαιτήσεις μέσω προτύπων σχεδίασης
description: This thesis deals with the effect of object-oriented design patterns in software quality. Design patterns are documented solutions that are proposed as common solutions to common design problems. The effect of patterns on software quality has been rigorously studied in many journal and conference papers. However, the results appear to be controversial, i.e. some researchers suggest that design patterns are beneficial while other suggest that they are harmful. In this thesis we present the results of some empirical studies that investigate the effect of design pattern application on software reusability, debugging efficiency and structural quality. The results suggest that patterns are not universally good or bad, with respect to software quality characteristics. Additionally, the results point out that there are several rules that can be used as guidelines of pattern application. Next, in order to identify factors that constitute a pattern either beneficial or harmful, we investigated the effect of design pattern size, i.e. the number of classes that participate in a pattern instance, in software quality. The specific research effort was analytical in the sense that the solutions under consideration were not related to a specific pattern instance, but on the structural characteristics of each pattern. The results of the study suggest that there are certain thresholds that when surpassed pattern application becomes beneficial. The domains that the results have been applied to and extracted from are open source software and computer games. Open source software is a highly active software engineering area from both an academic and an industrial point of view. Similarly, computer games play a very important role in current lifestyle and computer game industry is thriving. Additionally, the complexity and the nature of computer games constitute them as an extremely fitting domain for using design patterns. Eventually, the results of this thesis have been applied within two major practical considerations. Firstly, the results of the analytical methodology have been used in a decision support tool that aids developers in cases when they could use a design pattern, but they are not sure on the effects of their decision on the quality of the end product. Secondly, a web repository of design pattern instances has been created. In this repository both researcher and practitioners can easily identify pieces of source code that implement certain functionality by applying a design pattern instance.