Περίληψη
Μια Έξυπνη Πόλη αποτελείται από δύο βασικά στοιχεία: τις συσκευές Δικτύου των Πραγμάτων (IoT) που συλλέγουν δεδομένα από το περιβάλλον και τις εφαρμογές που αναλύουν και χρησιμοποιούν αυτά τα δεδομένα για την παροχή έξυπνων υπηρεσιών. Στη σημερινή πραγματικότητα, οι συσκευές IoT είναι όχι μόνο πολυάριθμες αλλά και ιδιαίτερα διαφοροποιημένες ως προς τους τύπους και τις υποστηριζόμενες λειτουργίες τους. Αυτό θέτει μια πρόκληση στην επακόλουθη ανάπτυξη εφαρμογών μιας Έξυπνης Πόλης, φέρνοντας στην επιφάνεια ζητήματα συμβατότητας, πολυπλοκότητας και συντηρησιμότητας. Αυτές οι προκλήσεις έχουν απασχολήσει εκτενώς την επιστημονική κοινότητα, ωστόσο δεν έχει προταθεί καμία συστηματική λύση για την αντιμετώπισή τους. Η παρούσα διατριβή στοχεύει στη δημιουργία μιας δομημένης διαδικασίας ανάπτυξης εφαρμογών για μια Έξυπνη Πόλη. Για την επίτευξη αυτού, εξετάστηκαν εφαρμογές Λογισμικού Ανοικτού Κώδικα (OSS) καθώς και βιομηχανική εφαρμογή, προκειμένου να δημιουργηθεί ένα πλαίσιο σχεδίασης λογισμικού ...
Μια Έξυπνη Πόλη αποτελείται από δύο βασικά στοιχεία: τις συσκευές Δικτύου των Πραγμάτων (IoT) που συλλέγουν δεδομένα από το περιβάλλον και τις εφαρμογές που αναλύουν και χρησιμοποιούν αυτά τα δεδομένα για την παροχή έξυπνων υπηρεσιών. Στη σημερινή πραγματικότητα, οι συσκευές IoT είναι όχι μόνο πολυάριθμες αλλά και ιδιαίτερα διαφοροποιημένες ως προς τους τύπους και τις υποστηριζόμενες λειτουργίες τους. Αυτό θέτει μια πρόκληση στην επακόλουθη ανάπτυξη εφαρμογών μιας Έξυπνης Πόλης, φέρνοντας στην επιφάνεια ζητήματα συμβατότητας, πολυπλοκότητας και συντηρησιμότητας. Αυτές οι προκλήσεις έχουν απασχολήσει εκτενώς την επιστημονική κοινότητα, ωστόσο δεν έχει προταθεί καμία συστηματική λύση για την αντιμετώπισή τους. Η παρούσα διατριβή στοχεύει στη δημιουργία μιας δομημένης διαδικασίας ανάπτυξης εφαρμογών για μια Έξυπνη Πόλη. Για την επίτευξη αυτού, εξετάστηκαν εφαρμογές Λογισμικού Ανοικτού Κώδικα (OSS) καθώς και βιομηχανική εφαρμογή, προκειμένου να δημιουργηθεί ένα πλαίσιο σχεδίασης λογισμικού. Η έρευνα επικεντρώθηκε στα 3 βασικά στάδια ανάπτυξης εφαρμογών για Έξυπνης Πόλης: 1. στον σχεδιασμό και ανάλυση λογισμικού Έξυπνων Πόλεων, 2. στην υλοποίηση τέτοιων εφαρμογών με ιδιαίτερη έμφαση να δίνεται στην επαναχρησιμοποίηση κώδικα, 3. στην συντήρηση και στρατηγική επέκτασης τέτοιου είδους λογισμικού. Για την υποστήριξη του σταδίου ανάλυσης και σχεδιασμού, η έρευνα προτείνει αρχικά ένα ελαφρύ πλαίσιο βασισμένο στη γνώση που καταγράφει δεδομένα ανάπτυξης, εντοπίζει επαναλαμβανόμενα προβλήματα ως αντι-πρότυπα και χρησιμοποιεί Μπεϋζιανά δίκτυα για την υποστήριξη αποφάσεων διαχείρισης έργων. Για τη βελτίωση της Επεκτασιμότητας και της Ευελιξίας των εφαρμογών μιας Έξυπνης Πόλης κατά το στάδιο σχεδιασμού και ανάλυσης, προτάθηκε μια μεθοδολογία μοντελοποίησης εφαρμογών Έξυπνων Πόλεων (SCAMF). Αυτή η μεθοδολογία βασίστηκε στην «Καθαρή» αρχιτεκτονική και υιοθετεί Μοντέλα Χαρακτηριστικών (Feature Models). Μερικά από τα βασικά πλεονεκτήματα της μεθοδολογίας είναι: 1. ανεξαρτησία από τις διεπαφές χρήστη 2. ανεξαρτησία από τα πλαίσια και τις εξωτερικές πηγές που αλληλοεπιδρούν με την εφαρμογή 3. προσφέρει αποτελεσματικούς μηχανισμούς μεταβλητότητας για τη διαχείριση του συνεχώς εξελισσόμενου περιβάλλοντος στο οποίο λειτουργούν οι εφαρμογές της Έξυπνών Πόλεων Για τη βελτίωση της Λειτουργικότητας, της Επαναχρησιμοποίησης και της Ευελιξίας των εφαρμογών μιας Έξυπνης Πόλης, η έρευνα επικεντρώθηκε κατά το στάδιο της υλοποίησης σε στρατηγικές επαναχρησιμοποίησης. Η εστίαση στην επαναχρησιμοποίηση λογισμικού στοχεύει στην επιτάχυνση της ανάπτυξης εφαρμογών σε μία Έξυπνη Πόλη και για την υποστήριξη αυτής της έρευνας, εξετάστηκαν εφαρμογές OSS. Αρχικά, αναλύθηκαν τα πακέτα Eclipse Smart Home και εντοπίστηκαν όλα τα επαναχρησιμοποιήσιμα στοιχεία που αξιοποιούνται από το OpenHab. Με βάση την «Καθαρή» αρχιτεκτονική, τα επαναχρησιμοποιήσιμα στοιχεία κατανεμήθηκαν ανάλογα με τη λειτουργία τους, καθώς και εξετάστηκε το επίπεδο παραμετροποίησης που απαιτείται για την ενσωμάτωση αυτών των κομματιών. Τέλος, βάση δόθηκε στην ποιότητα τόσο των επαναχρησιμοποιούμενων κομματιών όσο και εκείνων που τα επαναχρησιμοποιούν. Για την επικύρωση της βελτίωσης της Λειτουργικότητας και της Επαναχρησιμοποίησης των εφαρμογών Έξυπνης Πόλης, η προηγούμενη ερευνητική συμβολή επεκτάθηκε εξετάζοντας αυτή τη φορά 503 επαναχρησιμοποιήσιμα κομμάτια. Δόθηκε έμφαση στην κατηγοριοποίηση των επαναχρησιμοποιήσιμων κομματιών με βάση τη λειτουργικότητά τους στο πλαίσιο της αρχιτεκτονικής IoT. Διερευνήθηκε επίσης η στρατηγική επαναχρησιμοποίησης που ακολουθήθηκε (White-box ή Black-box) καθώς και τα επίπεδαπαραμετροποίησης και οι δείκτες ποιότητας. Τα αποτελέσματα επιβεβαίωσαν για άλλη μια φορά ότι τα στοιχεία με πιο γενικευμένη λειτουργικότητα απαιτούν λιγότερη προσπάθεια για να ενσωματωθούν. Στοχεύοντας στη μακροπρόθεσμη βελτίωση της Συντηρησιμότητας και της Επαναχρησιμοποίησης, δόθηκε ιδιαίτερη έμφαση στις στρατηγικές ανακατασκευής λογισμικού κατά το στάδιο των στρατηγικών συντήρησης και εξέλιξης λογισμικού. Συγκεκριμένα, δημιουργήθηκε μια διαδικασία που περιλαμβάνει τα ακόλουθα βήματα: 1. Προγραμματισμός Ανακατασκευής 2. Σχεδιασμός Ανακατασκευής 3. Αξιολόγηση Ανακατασκευής Η έρευνα εξετάστηκε σε μία εφαρμογή ενσωματωμένων συστημάτων στον τομέα υγείας. Για την διερεύνηση της στρατηγικής αυτής ακολουθήθηκε μια σειρά συλλογής αποτελεσμάτων, συγκεκριμένα μέσω ερωτηματολογίων, συνεντεύξεων, καθώς και εξέταση συγκεκριμένων ανακατασκευών λογισμικού. Επίσης γίνεται παρουσίαση συγκεκριμένων μεθόδων ανακατασκευής με τη μεγαλύτερη εφαρμοσιμότητα. Οι παραπάνω ερευνητικές συνεισφορές καλύπτουν μεγάλα κενά στα πλαίσια των IoT εφαρμογών για Έξυπνες Πόλεις αποδεικνύοντας πως η μεθοδολογία η οποία έχει προταθεί αποτελεί μια δομημένη λύση για το σχεδιασμό τέτοιου είδους εφαρμογών.
περισσότερα
Περίληψη σε άλλη γλώσσα
A Smart City consists of two key components: the IoT devices that collect data across the environment, and the applications that analyze and utilize this data to provide intelligent services. In today's reality, IoT devices are not only numerous but also highly diversified with respect to their types and supported functionalities. This poses a challenge in the subsequent developmentof Smart City applications bringing to the surface, issues of compatibility, complexity and maintainability. These challenges have occupied the scientific community extensively, yet no systematical solution has been suggested to address them. This thesis aims, to create a structured application development process for a Smart City. To achieve this, Open Source Software (OSS) applications as well as industrial applications were examined in order to create a software design framework. The research focused on the 3 basic stages of Smart City development: 1. the design and analysis of Smart City applications, 2. ...
A Smart City consists of two key components: the IoT devices that collect data across the environment, and the applications that analyze and utilize this data to provide intelligent services. In today's reality, IoT devices are not only numerous but also highly diversified with respect to their types and supported functionalities. This poses a challenge in the subsequent developmentof Smart City applications bringing to the surface, issues of compatibility, complexity and maintainability. These challenges have occupied the scientific community extensively, yet no systematical solution has been suggested to address them. This thesis aims, to create a structured application development process for a Smart City. To achieve this, Open Source Software (OSS) applications as well as industrial applications were examined in order to create a software design framework. The research focused on the 3 basic stages of Smart City development: 1. the design and analysis of Smart City applications, 2. the implementation of such applications with particular emphasis on code reuse, 3. the maintenance and software evolution strategies. To support the design analysis stage the research initially proposes a lightweight knowledge-based framework that records development data, identifies recurring problems as anti-patterns, and uses Bayesian Networks to support project management decisions. To improve the Extendibility and Flexibility of Smart City applications while being in the design and analysis stage a Smart City Application Modeling Framework (SCAMF) was introduced. This methodology was based on the “Clean” architecture and adopts Feature Models. Some of the key advantages of the methodology are: 1. it’s independent of User Interfaces 2. it’s independent of the frameworks and external sources that interact with the application 3. it offers effective variability mechanisms to manage the constantly evolving environment in which Smart City applications operate To improve the Functionality, Reusability and Flexibility of Smart City applications the research was focused on reuse strategies during the implementation stage. Focusing on software reuse aims to accelerate the development of Smart City applications and to support this research, OSS applications were examined. Initially, the Eclipse Smart Home packages were analyzed and all the reusable components leveraged by OpenHab were detected. Based on the “Clean” architecture, the reusable components were distributed according to their function, as well as the level of parameterization needed to integrate these parts was examined. Finally, the quality of both the reused components and those who reuse them was taken into account. To validate the improvement of Functionality and Reusability of Smart City applications the previous research contribution was expanded by examining this time 503 reusable components. Emphasis was placed on the categorization of reusable components based on their functionality within the context of the IoT architecture. The reuse strategy followed (White-box or Black-box) as well as the levels of parameterization and quality indicators were also investigated. The results confirmed once again that components of more generalized functionality require less effort to integrate. Aiming to improve long term the Maintainability and Reusability special emphasis was placed on software refactoring strategies during the maintenance and software evolution strategies stage. Specifically, a process was created that includes the following steps: 1. Refactoring Planning 2. Refactoring Design 3. Refactoring Evaluation The research was examined in an application of Embedded Software (ES) in the healthcare sector. To investigate this strategy, a series of data collection was followed, specifically through surveys, interviews, as well as examination of specific software refactorings. Specific refactoring methods with the greatest applicability were also presented. The above research contributions cover major gaps in the context of IoT applications for a Smart City, demonstrating that the methodology that has been proposed is a structured solution for the design of such applications.
περισσότερα