Quality assurance of component-based software systems

 
Το τεκμήριο παρέχεται από τον φορέα :

Αποθετήριο :
Εθνικό Αρχείο Διδακτορικών Διατριβών
δείτε την πρωτότυπη σελίδα τεκμηρίου
στον ιστότοπο του αποθετηρίου του φορέα για περισσότερες πληροφορίες και για να δείτε όλα τα ψηφιακά αρχεία του τεκμηρίου*
κοινοποιήστε το τεκμήριο




2012 (EL)

Διασφάλιση ποιότητας συστημάτων βασισμένων σε συστατικά λογισμικού
Quality assurance of component-based software systems

Κακαρόντζας, Γεώργιος
Kakarontzas, Georgios

Η κατασκευή πληροφοριακών συστημάτων ολοένα αυξανόμενης πολυπλοκότητας εγείρει σοβαρά ζητήματα σε σχέση με την ποιότητα των συστημάτων αυτών. Μία λύση είναι η δημιουργία αυτών των συστημάτων από συστατικά λογισμικού (software components) τα οποία μπορούν να οδηγήσουν σε μειωμένους χρόνους ανάπτυξης με ταυτόχρονη μείωση του κόστους και βελτίωση της ποιότητας. Παρόλα αυτά μέχρι σήμερα δεν υπάρχει κάποια συστηματική τεχνική για την κατασκευή συστημάτων λογισμικού με συστατικά λογισμικού και ταυτόχρονα μία συμπληρωματική συστηματική μέθοδος για την κατασκευή συστατικών λογισμικού με διακρίνουσα την ποιότητα που θα μπορούσαν να επαναχρησιμοποιηθούν για την κατασκευή τέτοιων συστημάτων. Επιπλέον η κατασκευή συστημάτων από συστατικά λογισμικού δίνει την δυνατότητα για την επαναχρησιμοποίηση συστατικών λογισμικού ανοιχτού κώδικα. Παρόλα αυτά τα περισσότερα συστήματα ανοιχτού λογισμικού δεν είναι βασισμένα σε συστατικά λογισμικού με αποτέλεσμα ο κώδικάς τους να μην είναι εφικτό να χρησιμοποιηθεί για την κατασκευή τέτοιων συστημάτων παρά μόνο με την μέθοδο της ευκαιριακής επαναχρησιμοποίησης κατά την οποία οι προγραμματιστές απλά εντοπίζουν ενδιαφέροντα τμήματα κώδικα για τις εφαρμογές τους και τα επαναχρησιμοποιούν με αντιγραφή του κώδικα και προσαρμογή του στις δικές τους ανάγκες. Η διαδικασία αυτή είναι χρονοβόρα και επιρρεπής σε λάθη. Σε σχέση με τα προαναφερθέντα προβλήματα οι συνεισφορές αυτής της διδακτορικής διατριβής είναι οι ακόλουθες:1. Δημιουργία Συστατικών Λογισμικού: Μία μεθοδολογία με βάση αρχιτεκτονικές τακτικές για την κατασκευή συστημάτων λογισμικού με συστατικά λογισμικού τα οποία εκλεπτύνονται σε σχέση με τις ποιοτικές προδιαγραφές του συστήματος με την χρήση των κατάλληλων αρχιτεκτονικών τακτικών. Η μεθοδολογία βασίζεται σε εκτελέσιμα μοντέλα του συστήματος και των συστατικών τα οποία επιτρέπουν την προσομοίωση των ποιοτικών χαρακτηριστικών που ενδιαφέρουν.2. Εξαγωγή Συστατικών Λογισμικού: Μία ημι-αυτοματοποιημένη διαδικασία αναγνώρισης και εξαγωγής συστατικών λογισμικού από έργα ανοιχτού λογισμικού τα οποία χρησιμοποιούνται για τον εμπλουτισμό αποθετηρίων συστατικών λογισμικού ανοιχτού κώδικα. Η εξαγωγή συστατικών βασίζεται σε μετρικές της εσωτερικής ποιότητας του λογισμικού (όπως οι μετρικές πολυπλοκότητας σχεδίασης αντικειμενοστραφούς λογισμικού). Παρότι η μεθοδολογία και τα εργαλεία της προτεινόμενης προσέγγισης δοκιμάστηκαν σε έργα ανοιχτού λογισμικού η εφαρμογή τους είναι γενικότερη και αφορά οποιοδήποτε έργο λογισμικού.3. Γενίκευση Συστατικών Λογισμικού: Μία μεθοδολογία για την κατασκευή συστατικών λογισμικού ανεξάρτητα από οποιοδήποτε σύστημα λογισμικού. Λόγω της αδυναμίας προσδιορισμού των λειτουργικών και ποιοτικών χαρακτηριστικών του συστήματος στο οποίο θα επαναχρησιμοποιηθούν καθίσταται αναγκαία η κατασκευή μιας ιεραρχίας τέτοιων συστατικών για κάθε βασική λειτουργία. Η ιεραρχία αυτή ονομάζεται ελαστική ιεραρχία συστατικών λογισμικού. Τα ελαστικά συστατικά λογισμικού διακρίνονται με βάση τις λειτουργικές και ποιοτικές τους διαφοροποιήσεις ώστε να είναι εφικτή η επαναχρησιμοποίησή τους σε πολλά διαφορετικά συστήματα. Σε κάθε επίπεδο της ιεραρχίας ενός συστατικού λογισμικού χρησιμοποιούνται έλεγχοι λογισμικού για την επιβεβαίωση των λειτουργικών και ποιοτικών διαφοροποιήσεων. Τα ελαστικά συστατικά λογισμικού διερευνήθηκαν σε βάθος και πέρα από την μεθοδολογία κατασκευής τους προτείνονται τα εξής:i.Η μεταβλητότητα των γραμμών προϊόντων λογισμικού με ελαστικά συστατικά λογισμικού και ανάπτυξη λογισμικού υπό την καθοδήγηση ελέγχων.ii.Μία ευέλικτη μεθοδολογία ανάπτυξης που αποσκοπεί στην παράλληλη κατασκευή ενός αποθετηρίου ελαστικών συστατικών λογισμικού.iii. Η εφαρμογή των ευέλικτων συστατικών λογισμικού στο πεδίο των υπολογιστικών πλεγμάτων.iv. Μία προσέγγιση για την επιλογή ελαστικών συστατικών λογισμικού από ένα αποθετήριο συστατικών με χρήση διαισθητικής ασαφούς λογικής.
The development of increasingly complex information systems raises some serious issues regarding the quality of these systems. One solution is the creation of these systems from software components, an approach which can lead to reduced development times and at the same time cost reduction and quality improvement. Nevertheless, a systematic approach for system development based on software components and a complementary systematic approach for the development of software components based on quality differentiation that could be used for the development of component-based systems is still lacking. Furthermore, system development from software components creates the opportunity of Open Source Software (OSS) component reuse. However most OSS systems are not component-based and as a result their code is not feasible to be reused as-is for the construction of component-based systems. Programmers very often reuse OSS code opportunistically, by locating interesting code segments for their applications which are then reused by copying and adaptation to the new applications’ needs. This process is time consuming and error prone. In relation to these aforementioned problems the contributions of this thesis are the following:1. Software Component Development: An architectural tactics’ based process for the creation of software systems based on software components. Components are iteratively refined in relation to the quality requirements of the systems with the use of appropriate architectural tactics. The process is based on executable models of the systems and their components. Models allow the simulation of the different quality characteristics of interest. 2. Software Component Extraction: A semi-automated process for the identification and extraction of software components from OSS projects. These components are subsequently placed in OSS component repositories. Software component extraction is based on internal quality metrics (such as metrics of software design complexity). Although the process and the respective tools of the proposed approach in this work were tested on OSS projects their application is more general and they can be applied to any software system.3. Software Component Generalization: A process for software component development which are independent from specific systems. Given the inability to determine the functional and quality characteristics of the system on which the components will be reused, makes necessary to develop a hierarchy of such components for each basic function. This hierarchy is called elastic components hierarchy. Elastic components are discriminated based on their functional and quality differences and it is therefore possible to be reused in many different systems. At every hierarchical level of a software component we use tests to confirm the functional and quality differences among the different hierarchical levels. In addition to the aforementioned elastic component development process we also examined:i.Software Product Line variability with elastic components and Test-Driven Development.ii. An agile system development process with the additional goal of creating a repository of elastic components.iii. The application of elastic components in the area of computational grids, andiv. An approach for software component selection from an elastic component repository based on intuitionistic fuzzy logic.

PhD Thesis

Αρχιτεκτονική λογισμικού
Software components extraction process
Software components development process
Software components generalization process
Software components
Διεργασία εξαγωγής συστατικών λογισμικού
Reverse engineering of open source software systems
Computer and Information Sciences
Διεργασία ανάπτυξης συστατικών λογισμικού
Φυσικές Επιστήμες
Αντίστροφη μηχανική έργων ανοιχτού λογισμικού
Διεργασία γενίκευσης συστατικών λογισμικού
Software architecture
Software metrics
Software quality
Συστατικά λογισμικού
Μετρικές λογισμικού
Επιστήμη Ηλεκτρονικών Υπολογιστών και Πληροφορική
Natural Sciences
Ποιότητα λογισμικού


Ελληνική γλώσσα

2012


Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης (ΑΠΘ)
Aristotle University Of Thessaloniki (AUTH)




*Η εύρυθμη και αδιάλειπτη λειτουργία των διαδικτυακών διευθύνσεων των συλλογών (ψηφιακό αρχείο, καρτέλα τεκμηρίου στο αποθετήριο) είναι αποκλειστική ευθύνη των αντίστοιχων Φορέων περιεχομένου.