Διασφάλιση ποιότητας συστημάτων βασισμένων σε συστατικά λογισμικού:
Creators: name: Κακαρόντζας, Γεώργιος Α.
Publisher: name: Aristotle University of Thessaloniki
Year: 2012
Subjects: Ποιότητα Λογισμικού
Συστατικά Λογισμικού
Αρχιτεκτονική Λογισμικού
Μετρικές Λογισμικού
Software Quality
Software Components
Software Architecture
Software Metrics

description: Οι συνεισφορές αυτής της διδακτορικής διατριβής συνοψίζονται στα ακόλουθα: (1) Στην πρόταση μιας μεθοδολογίας με βάση αρχιτεκτονικές τακτικές για την κατασκευή συστημάτων λογισμικού με συστατικά λογισμικού τα οποία εκλεπτύνονται σε σχέση με τις ποιοτικές προδιαγραφές του συστήματος με τη χρήση των κατάλληλων αρχιτεκτονικών τακτικών. Η μεθοδολογία βασίζεται σε εκτελέσιμα μοντέλα του συστήματος και των συστατικών τα οποία επιτρέπουν την προσομοίωση των ποιοτικών χαρακτηριστικών που ενδιαφέρουν. (2) Στην πρόταση μιας ημι-αυτοματοποιημένης διαδικασίας αναγνώρισης και εξαγωγής συστατικών λογισμικού από έργα ανοιχτού λογισμικού τα οποία χρησιμοποιούνται για τον εμπλουτισμό αποθετηρίων συστατικών λογισμικού ανοιχτού κώδικα. Η εξαγωγή συστατικών βασίζεται σε μετρικές της εσωτερικής ποιότητας του λογισμικού (όπως οι μετρικές πολυπλοκότητας σχεδίασης αντικειμενοστραφούς λογισμικού). Παρότι η μεθοδολογία και τα εργαλεία της προτεινόμενης προσέγγισης δοκιμάστηκαν σε έργα ανοιχτού λογισμικού η εφαρμογή τους είναι γενικότερη και αφορά οποιοδήποτε έργο λογισμικού, και (3) Στην πρόταση μιας μεθοδολογίας για την κατασκευή συστατικών λογισμικού ανεξάρτητα από οποιοδήποτε σύστημα λογισμικού. Λόγω της αδυναμίας προσδιορισμού των λειτουργικών και ποιοτικών χαρακτηριστικών του συστήματος στο οποίο θα επαναχρησιμοποιηθούν καθίσταται αναγκαία η κατασκευή μιας ιεραρχίας τέτοιων συστατικών για κάθε βασική λειτουργία. Η ιεραρχία αυτή ονομάζεται ελαστική ιεραρχία συστατικών λογισμικού. Τα ελαστικά συστατικά λογισμικού διακρίνονται με βάση τις λειτουργικές και ποιοτικές τους διαφοροποιήσεις ώστε να είναι εφικτή η επαναχρησιμοποίησή τους σε πολλά διαφορετικά συστήματα. Σε κάθε επίπεδο της ιεραρχίας ενός συστατικού λογισμικού χρησιμοποιούνται έλεγχοι λογισμικού για την επιβεβαίωση των λειτουργικών και ποιοτικών διαφοροποιήσεων. Τα ελαστικά συστατικά λογισμικού διερευνήθηκαν σε βάθος και πέρα από την μεθοδολογία κατασκευής τους προτείνονται τα εξής: (i) Η μεταβλητότητα των γραμμών προϊόντων λογισμικού με ελαστικά συστατικά λογισμικού και ανάπτυξη λογισμικού υπό την καθοδήγηση ελέγχων, (ii) Μία ευέλικτη μεθοδολογία ανάπτυξης που αποσκοπεί στην παράλληλη κατασκευή ενός αποθετηρίου ελαστικών συστατικών λογισμικού. (iii). Η εφαρμογή των ευέλικτων συστατικών λογισμικού στο πεδίο των υπολογιστικών πλεγμάτων. (iv). Μία προσέγγιση για την επιλογή ελαστικών συστατικών λογισμικού από ένα αποθετήριο συστατικών με χρήση διαισθητικής ασαφούς λογικής.
description: Τhe contributions of this PhD thesis are the following: (1). An architectural tactics’ based process is proposed, 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) A semi-automated process is proposed for the identification and extraction of software components from Open Source Software (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) A process for software component development which are independent from specific systems is proposed. Given the inability to determine the functional and quality characteristics of the system on which the components will be reused, it becomes 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, and (iv). An approach for software component selection from an elastic component repository based on intuitionistic fuzzy logic.