Provided by SchoolTechPolicies.com:
This presentation was provided for school staff members and school teams to discuss appropriate use and responsible use of district electronic resources.
Provided by SchoolTechPolicies.com:
This presentation was provided for school staff members and school teams to discuss appropriate use and responsible use of district electronic resources.
Provided by SchoolTechPolicies.com:
This presentation was provided for staff members to discuss appropriate use and responsible use of district electronic resources.
Provided by SchoolTechPolicies.com:
This presentation was provided for school staff members, district personnel, and school teams to discuss district technology plan development.
Implementação de Redes com Alta Disponibilidadetiredes
Apresentação utilizada em uma oficina prática de redes sobre Implementação de Redes com Alta Disponibilidade com a configuração dos protocolos HSRP e GLBP.
Slides desenvolvido para a apresentação do Plano de Marketing digital elaborado para uma atividade na faculdade da disciplina de Webmarketing. O mesmo foi desenvolvido de forma fictícia, para uma empresa real da área digital bastante conhecida em todo o mundo. O objetivo portanto não é promover a mesma comercialmente, mas citá-la para fins didáticos e de aprendizagem para quem possa interessar. Na metade da apresentação é possível conferir um vídeo elaborado e narrado por mim denominado "Eu, etiqueta", adaptação do poema de Carlos Drummond de Andrade que narra as relações entre o consumismo e a liberdade individual.
Programmatic marketing maakt het mogelijk bijna real time campagne resultaten te volgen en te optimaliseren. De vele data die verzameld wordt creëert nieuwe inzichten maar ook vooral mogelijkheden. Hoe vang je data op en hoe zet je deze weer in om je doelgroep zo efficiënt mogelijk te bereiken? Welke ontwikkelingen zien we binnen programmatic marketing en welke inzichten kunnen we uit deze data halen?
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...OrangeValley
Centraal Beheer "Even Apeldoorn bellen" wordt steeds digitaler. Het bellen maakt steeds meer plaats voor de digitale kanalen. Een sterk merk met meerdere producten vraagt om een heldere marktbenadering via verschillende kanalen naar diverse doelgroepen. In deze ontwikkeling werd de rol van een DMP (Data Management Platform) steeds belangrijker. Welke business-vraagstukken waren er voor Centraal Beheer om met een DMP te gaan werken? Edwin staat stil bij de kracht van een DMP en behandeld de drie belangrijkste functies van een DMP: Collecteren, Segmenteren, Activeren. Daarnaast geeft hij een doorkijkje waar in 2017 de kansen liggen.
Niels Dengel, agency lead bij Google en Ortwin Verreck, managing director bij OrangeValley, hebben de middag geopend en zijn ingegaan in op het thema Paid Search. Welke innovaties zijn er te verwachten en waar zien we in 2016 de meeste kansen ontstaan? Daarnaast bespreken ze de toekomst van online marketing en de trends die Google voorziet.
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
Η ανάγκη για την αποτελεσματική ανάπτυξη και συντήρηση λογισμικού έχει εντοπιστεί εδώ και αρκετό καιρό στο σχετικό κλάδο της Τεχνολογίας Λογισμικού. Σήμερα, ωστόσο, με την εισαγωγή νέων πρακτικών ανάπτυξης λογισμικού και πρωτοβουλιών λογισμικού ανοικτού κώδικα, τα δεδομένα λογισμικού που μπορεί να βρει κανείς στο διαδίκτυο είναι άφθονα, επομένως η πρόκληση που προκύπτει είναι η αποτελεσματική αξιοποίησή τους για την παραγωγή καλύτερων προϊόντων λογισμικού. Και η πρόκληση αυτή αποτελεί στην πραγματικότητα ένα πρόβλημα επαναχρησιμοποίησης. Στο πλαίσιο αυτής της διατριβής προτείνουμε μια ενιαία προσέγγιση που περιλαμβάνει την εφαρμογή τεχνικών εξόρυξης δεδομένων σε δεδομένα τεχνολογίας λογισμικού για τη διευκόλυνση της επαναχρησιμοποίησης σε διάφορες φάσεις του κύκλου ζωής του λογισμικού. Η μεθοδολογία μας προτείνει λύσεις για τη φάση του καθορισμού των απαιτήσεων και της εξαγωγής προδιαγραφών, τις φάσεις της σχεδίασης και ανάπτυξης λογισμικού, ενώ συμβάλλει επίσης στην αξιολόγηση της ποιότητας και τον έλεγχο του λογισμικού.
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
Στη σημερινή εποχή, η ραγδαία ανάπτυξη της τεχνολογίας, έχει οδηγήσει και στη γρήγορη ανάπτυξη έργων λογισµικού πολλών γραμμών κώδικα, τα οποία έχουν επηρεάσει πολλές πτυχές της καθημερινής µας ζωής. Η αναγνωσιμότητας του κώδικα, αποτελεί χρήσιμο ποιοτικό χαρακτηριστικό ενός έργου λογισµικού. Μάλιστα, έρευνες έχουν δείξει ότι επηρεάζει το έργο τόσο κατά το στάδιο ανάπτυξής του όσο και κατά τη διάρκεια συντήρησης του έργου. Για τον σκοπό αυτό, έχουν αναπτυχθεί διάφορα μοντέλα αναγνωσιμότητας κώδικα. Κάθε ένα από αυτά τα μοντέλα βασίζεται σε διαφορετικά χαρακτηριστικά, αναλύοντας πτυχές όπως η δομή του κώδικα, η όψη του κώδικα, αλλά και το περιεχόµενο. Στην παρούσα διπλωματική εργασία, επιχειρούμε, βασιζόμενοι στα ήδη υπάρχοντα μοντέλα αξιολόγησης αναγνωσιμότητας κώδικα, να αναλύσουμε περαιτέρω την έννοια της αναγνωσιμότητας. Αναλύθηκαν commits χρηστών από την πλατφόρμα GitHub, τα οποία είναι συνδεδεμένα µε την αναγνωσιμότητα του κώδικα, µε βάση κάποια από τα ήδη υπάρχοντα μοντέλα αξιολόγησης αναγνωσιμότητας. Αρχικός στόχος ήταν µε βάση τα δεδοµένα που προέκυψαν από αυτά τα commits των προγραμματιστών να διερευνηθεί εάν τα commits, τα οποία ισχυρίζονται τη βελτίωση της αναγνωσιμότητας πράγματι τη βελτιώνουν, καθώς και ποιες αλλαγές ή συνδυασμός αυτών είναι υπεύθυνες για τη βελτίωση ή µη της αναγνωσιμότητας. Ένας δεύτερος στόχος, ο οποίος µας απασχόλησε ήταν εάν θα µπορούσαμε µέσα από τις διαφορές των χαρακτηριστικών του κώδικα πριν και µετά το commit να καταλάβουμε ποια μοντέλα αναγνωσιμότητας είναι ικανά να κατηγοριοποιήσουν ποιες αλλαγές έχουν πραγματοποιηθεί στον κώδικα, καθώς και να προτείνουμε ένα πιο αποδοτικό μοντέλο. Και στα δύο παραπάνω ερωτήματα για την ανάπτυξη των μοντέλων χρησιμοποιήθηκαν μετρικές από διαφορετικά μοντέλα αξιολόγησης αναγνωσιμότητας κώδικα, τα οποία συγκρίθηκαν ως προς την απόδοσή τους.
Provided by SchoolTechPolicies.com:
This presentation was provided for staff members to discuss appropriate use and responsible use of district electronic resources.
Provided by SchoolTechPolicies.com:
This presentation was provided for school staff members, district personnel, and school teams to discuss district technology plan development.
Implementação de Redes com Alta Disponibilidadetiredes
Apresentação utilizada em uma oficina prática de redes sobre Implementação de Redes com Alta Disponibilidade com a configuração dos protocolos HSRP e GLBP.
Slides desenvolvido para a apresentação do Plano de Marketing digital elaborado para uma atividade na faculdade da disciplina de Webmarketing. O mesmo foi desenvolvido de forma fictícia, para uma empresa real da área digital bastante conhecida em todo o mundo. O objetivo portanto não é promover a mesma comercialmente, mas citá-la para fins didáticos e de aprendizagem para quem possa interessar. Na metade da apresentação é possível conferir um vídeo elaborado e narrado por mim denominado "Eu, etiqueta", adaptação do poema de Carlos Drummond de Andrade que narra as relações entre o consumismo e a liberdade individual.
Programmatic marketing maakt het mogelijk bijna real time campagne resultaten te volgen en te optimaliseren. De vele data die verzameld wordt creëert nieuwe inzichten maar ook vooral mogelijkheden. Hoe vang je data op en hoe zet je deze weer in om je doelgroep zo efficiënt mogelijk te bereiken? Welke ontwikkelingen zien we binnen programmatic marketing en welke inzichten kunnen we uit deze data halen?
11. Case Centraal Beheer "Even Apeldoorn bellen" en data-driven marketing - (...OrangeValley
Centraal Beheer "Even Apeldoorn bellen" wordt steeds digitaler. Het bellen maakt steeds meer plaats voor de digitale kanalen. Een sterk merk met meerdere producten vraagt om een heldere marktbenadering via verschillende kanalen naar diverse doelgroepen. In deze ontwikkeling werd de rol van een DMP (Data Management Platform) steeds belangrijker. Welke business-vraagstukken waren er voor Centraal Beheer om met een DMP te gaan werken? Edwin staat stil bij de kracht van een DMP en behandeld de drie belangrijkste functies van een DMP: Collecteren, Segmenteren, Activeren. Daarnaast geeft hij een doorkijkje waar in 2017 de kansen liggen.
Niels Dengel, agency lead bij Google en Ortwin Verreck, managing director bij OrangeValley, hebben de middag geopend en zijn ingegaan in op het thema Paid Search. Welke innovaties zijn er te verwachten en waar zien we in 2016 de meeste kansen ontstaan? Daarnaast bespreken ze de toekomst van online marketing en de trends die Google voorziet.
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
Η ανάγκη για την αποτελεσματική ανάπτυξη και συντήρηση λογισμικού έχει εντοπιστεί εδώ και αρκετό καιρό στο σχετικό κλάδο της Τεχνολογίας Λογισμικού. Σήμερα, ωστόσο, με την εισαγωγή νέων πρακτικών ανάπτυξης λογισμικού και πρωτοβουλιών λογισμικού ανοικτού κώδικα, τα δεδομένα λογισμικού που μπορεί να βρει κανείς στο διαδίκτυο είναι άφθονα, επομένως η πρόκληση που προκύπτει είναι η αποτελεσματική αξιοποίησή τους για την παραγωγή καλύτερων προϊόντων λογισμικού. Και η πρόκληση αυτή αποτελεί στην πραγματικότητα ένα πρόβλημα επαναχρησιμοποίησης. Στο πλαίσιο αυτής της διατριβής προτείνουμε μια ενιαία προσέγγιση που περιλαμβάνει την εφαρμογή τεχνικών εξόρυξης δεδομένων σε δεδομένα τεχνολογίας λογισμικού για τη διευκόλυνση της επαναχρησιμοποίησης σε διάφορες φάσεις του κύκλου ζωής του λογισμικού. Η μεθοδολογία μας προτείνει λύσεις για τη φάση του καθορισμού των απαιτήσεων και της εξαγωγής προδιαγραφών, τις φάσεις της σχεδίασης και ανάπτυξης λογισμικού, ενώ συμβάλλει επίσης στην αξιολόγηση της ποιότητας και τον έλεγχο του λογισμικού.
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
Στη σημερινή εποχή, η ραγδαία ανάπτυξη της τεχνολογίας, έχει οδηγήσει και στη γρήγορη ανάπτυξη έργων λογισµικού πολλών γραμμών κώδικα, τα οποία έχουν επηρεάσει πολλές πτυχές της καθημερινής µας ζωής. Η αναγνωσιμότητας του κώδικα, αποτελεί χρήσιμο ποιοτικό χαρακτηριστικό ενός έργου λογισµικού. Μάλιστα, έρευνες έχουν δείξει ότι επηρεάζει το έργο τόσο κατά το στάδιο ανάπτυξής του όσο και κατά τη διάρκεια συντήρησης του έργου. Για τον σκοπό αυτό, έχουν αναπτυχθεί διάφορα μοντέλα αναγνωσιμότητας κώδικα. Κάθε ένα από αυτά τα μοντέλα βασίζεται σε διαφορετικά χαρακτηριστικά, αναλύοντας πτυχές όπως η δομή του κώδικα, η όψη του κώδικα, αλλά και το περιεχόµενο. Στην παρούσα διπλωματική εργασία, επιχειρούμε, βασιζόμενοι στα ήδη υπάρχοντα μοντέλα αξιολόγησης αναγνωσιμότητας κώδικα, να αναλύσουμε περαιτέρω την έννοια της αναγνωσιμότητας. Αναλύθηκαν commits χρηστών από την πλατφόρμα GitHub, τα οποία είναι συνδεδεμένα µε την αναγνωσιμότητα του κώδικα, µε βάση κάποια από τα ήδη υπάρχοντα μοντέλα αξιολόγησης αναγνωσιμότητας. Αρχικός στόχος ήταν µε βάση τα δεδοµένα που προέκυψαν από αυτά τα commits των προγραμματιστών να διερευνηθεί εάν τα commits, τα οποία ισχυρίζονται τη βελτίωση της αναγνωσιμότητας πράγματι τη βελτιώνουν, καθώς και ποιες αλλαγές ή συνδυασμός αυτών είναι υπεύθυνες για τη βελτίωση ή µη της αναγνωσιμότητας. Ένας δεύτερος στόχος, ο οποίος µας απασχόλησε ήταν εάν θα µπορούσαμε µέσα από τις διαφορές των χαρακτηριστικών του κώδικα πριν και µετά το commit να καταλάβουμε ποια μοντέλα αναγνωσιμότητας είναι ικανά να κατηγοριοποιήσουν ποιες αλλαγές έχουν πραγματοποιηθεί στον κώδικα, καθώς και να προτείνουμε ένα πιο αποδοτικό μοντέλο. Και στα δύο παραπάνω ερωτήματα για την ανάπτυξη των μοντέλων χρησιμοποιήθηκαν μετρικές από διαφορετικά μοντέλα αξιολόγησης αναγνωσιμότητας κώδικα, τα οποία συγκρίθηκαν ως προς την απόδοσή τους.
Συνεχής έμμεση αυθεντικοποίηση χρηστών κινητού τηλεφώνου με συνδυασμό των δεδ...ISSEL
Τα έξυπνα κινητά τηλέφωνα (smartphones) έχουν γίνει πλέον αναπόσπαστο κομμάτι της καθημερινότητας και οι πληροφορίες που αποθηκεύονται σε αυτά συνεχώς αυξάνονται. Προκύπτει λοιπόν το ζήτημα της ασφάλειας αυτών των συσκευών, που είναι κρίσιμο για την εξασφάλιση της προστασίας των δεδομένων του ιδιοκτήτη ενός smartphone από κακόβουλους χρήστες. Οι περισσότερες συσκευές πλέον προσφέρουν ένα επίπεδο ασφάλειας χρησιμοποιώντας διάφορους τρόπους αυθεντικοποίησης, που όμως έχουν χαρακτηριστεί ευάλωτοι και έτσι έχει δημιουργηθεί η ανάγκη για την υλοποίηση καινούργιων μεθοδολογιών. Λύση στο πρόβλημα έρχονται να δώσουν τεχνικές συνεχούς – έμμεσης αυθεντικοποίησης, δηλαδή συστήματα που εκτελούνται συνεχώς στο παρασκήνιο της συσκευής, χωρίς να χρειάζονται την εκτέλεση ενεργειών από την πλευρά του χρήστη. Τα συστήματα αυτά συνήθως χρησιμοποιούν διάφορα δεδομένα του κινητού τηλεφώνου ή άλλων συσκευών, μοντελοποιούν την συμπεριφορά του χρήστη και στην συνέχεια παρέχουν ένα μοναδικό ή συμπληρωματικό επίπεδο ασφαλείας, που εξετάζει αν η συμπεριφορά του χρήστη συμβαδίζει με αυτή του ιδιοκτήτη. Στη συγκεκριμένη εργασία, το σύστημα βασίζει τη λειτουργία του σε δεδομένα αισθητήρων που είναι ήδη εγκατεστημένοι στα περισσότερα smartphones, όπως το επιταχυνσιόμετρο, το γυροσκόπιο και η οθόνη αφής. Η συμπεριφορά του ιδιοκτήτη μοντελοποιείται με αυτά τα δεδομένα μέσω της χρήσης μοντέλων μηχανικής μάθησης που, στη συνέχεια, μπορούν να πάρουν κατάλληλες αποφάσεις. Αυτό που κάνει το εν λόγω σύστημα να ξεχωρίζει είναι η χρήση ενός συνόλου μοντέλων μηχανών διανυσμάτων υποστήριξης μίας κλάσης (One Class Support Vector Machines), με ένα εύρος τιμών για τις παραμέτρους, για κάθε τύπο δεδομένων, που παράγει την πιθανότητα μια συμπεριφορά να συμβαδίζει με αυτή του ιδιοκτήτη και στην συνέχεια καλεί ένα σύστημα εμπιστοσύνης να αποφασίσει αν θα πραγματοποιηθεί το κλείδωμα της συσκευής. Όπως αποδεικνύεται, ένα τέτοιο σύστημα είναι εύκολα υλοποιήσιμο, μπορεί να προσαρμόζεται στον τύπο δεδομένων που είναι διαθέσιμος κάθε στιγμή και έτσι μπορεί να επιφέρει σημαντικές βελτιώσεις στην αυθεντικοποίηση του χρήστη με έναν συνεχή αλλά και μη παρεμβατικό τρόπο.
Punctual fault identification through Machine Learning techniquesISSEL
The technology uprising in the premises of the 4th industrial revolution has led to the modernization of the maintenance field and the migration from preventive to predictive maintenance through machine learning methods and techniques. This diploma thesis aims, through research of classical and state of the art algorithms in the timeseries anomaly detection and classification domain, to the development of a user friendly and accurate tool of fault identification. To achieve this, it is essential to research for the most suitable machine learning techniques and consequently implement, adjust and evaluate their results in a real industrial environment.
Έγκαιρη ταυτοποίηση βλαβών με αλγόριθμους Μηχανικής MάθησηςISSEL
Με την ανάπτυξη της τεχνολογίας και την είσοδο στην 4η βιομηχανική επανάσταση, ο τομέας της μηχανολογικής συντήρησης επεκτείνεται καθώς μεταβαίνει από προληπτικά μέτρα σε προβλεπτικές τεχνικές που αξιοποιούν μεθόδους και μοντέλα μηχανικής μάθησης. Η κείμενη διπλωματική εργασία στοχεύει μέσα από έρευνα και εφαρμογή κλασσικών και καινοτόμων τεχνικών στον τομέα της ανίχνευσης ανωμαλιών και ταξινόμησης χρονοσειρών να υλοποιήσει ένα εύχρηστο και αξιόπιστο εργαλείο ταυτοποίησης βλαβών. Μια τέτοια υλοποίηση προϋποθέτει την έρευνα διαθέσιμων τεχνικών μηχανικής μάθησης, την υλοποίηση και προσαρμογή τους σε ένα πραγματικό βιομηχανικό περιβάλλον, και την αξιολόγηση των αποτελεσμάτων στον επιτρεπόμενο βαθμό.
Σχεδίαση και ανάπτυξη Μηχανισμού Αυτοματοποίησης παραγωγής Λογισμικού Ελέγχου...ISSEL
Σήμερα, η ανάπτυξη της τεχνολογίας και η αξιοποίηση της σε όλους τους τομείς της ζωής του ανθρώπου, δημιουργεί την ανάγκη για λογισμικό που είναι έυκολα προσαρμόσιμο, ευπαρουσίαστο, επιλύει πολλούς τύπους προβλημάτων, είναι οικονομικό και αξιόπιστο. Η Μοντελοστραφής Μηχανική (MDE), δηλαδή η ανάπτυξη λογισμικού που στηρίζεται σε μοντέλα, η αυτόματη παραγωγή κώδικα με βάση αυτά τα μοντέλα, η δυνατότητα γραφικής απεικόνισης του λογισμικού σε συνδυασμό με τις τεχνικές του Αυτοματοποιημένου Ελέγχου Συμπερασμών (Automated Reasoning) καλύπτουν ανά περίπτωση τις παραπάνω ανάγκες. Στην παρούσα διπλωματική εργασία, έγινε αξιοποίηση όλων των παραπάνω τεχνικών για την κατασκευή ενός ολοκληρωμένου εργαλείου, στην πλατφόρμα του Eclipse, με στόχο την κάλυψη των προαναφερθέντων αναγκών. Πιο συγκεκριμένα στα πλαίσια της Μοντελοστραφούς Μηχανικής (MDE) κατασκευάστηκε ένα μέτα-μοντέλο που αποτελεί τον πηρύνα του συστήματος και ενσωματώνει όρους από το πεδίο του Λογισμού. Στη συνέχεια, πάνω σε αυτό δημιουργήθηκε μια γραφική διεπαφή, στο περιβάλλον του Sirius, που δίνει την δυνατότητα στον ενδιαφερόμενο να καταγράψει, με γραφικό τρόπο, το μοντέλο που επιθυμεί. Η καταγραφή του μοντέλου γίνεται με την μορφή εξισώσεων σωστά διατυπωμένων στα πρότυπα της Κατηγορηματικής Λογικής Πρώτης Τάξης (FOL). Από αυτό το μοντέλο ύστερα, παράγεται αυτόματα κώδικας Java, ο οποίος αξιοποιώντας συναρτήσεις και αντικείμενα της βιβλιοθήκης TweetyProject, διαμορφώνεται κατάλληλα ώστε να αποτελεί έγκυρη είσοδο για τον built-in prover της ίδιας βιβλιοθήκης που μπορεί να πραγματοποιεί λογικούς ελέγχους στα πρότυπα του Αυτοματοποιημένου Ελέγχου Συμπερασμών. Μερικές ακόμα βοηθητικές συναρτήσεις σε Java, ολοκληρώνουν το εργαλείο της διπλωματικής. Όλα τα παραπάνω καθιστούν, το σύστημα που αναπτύχθηκε σε αυτή την διπλωματική, ικανό να χρησιμοποιηθεί από διάφορους υπάρχοντες μηχανισμούς αυτόματης παραγωγής συστημάτων, προκειμένου να ελέγξουν την εγκυρότητα των υπό σχεδίαση συστημάτων, δίχως κάποιος να απαιτείται να υλοποιήσει λογισμικό που κάνει λογικούς συμπερασμούς.
Design and Implementation of a Mechanism that automates the generation of Sof...ISSEL
Today, the development of technology and its utilization in all areas of human life, creates the need for software that is easily customizable, presentable, solves many types of problems, is economical and reliable. Model-Driven Engineering (MDE), ie software development based on models, the automatic production of code based on these models, the ability to graphically display the software, in combination with the techniques of Automated Reasoning meet the above needs. In the current diploma thesis, in order to meet the aforementioned needs, all the above techniques were utilized for the construction of a complete software tool, on the Eclipse platform. More specifically, in the framework of Model-Driven Engineering (MDE), a meta model was constructed which constitutes the core of the system and incorporates terms from the field of Logic. Expanding on this, a graphical interface was created, in the Sirius environment, which allows the interested party to construct, in a graphic way, the model he wants. The construction of the model is done in the form of equations, correctly formulated in the standards of First Order Logic (FOL). From this model, Java code is automatically generated, which utilizing functions and objects of the TweetyProject library, is properly configured to be a valid input for the built-in prover of the same library, that can perform logical tests in the standards of Automated Logic. Some more functions written in Java, complete the software tool of this diploma thesis. All of the above, constitute the software tool developed in this diploma, capable of being used by various mechanisms that automatically produce systems, in order to check the validity of the systems under design, without the need to implement additional software that draws logical conclusions.
Μηχανισμοί Ενισχυτικής Μάθησης και Εξελικτικής Υπολογιστικής για Αυτόνομους Π...Kyriakos Chatzidimitriou
Παρουσιάση της διδακτορικής μου διατριβής - My PhD thesis defense presentation "Reinforcement learning and evolutionary computing mechanisms for autonomous agents"
Εφαρμογή Τεχνικών Εξόρυξης Δεδομένων για την Εξαγωγή Προτύπων Διόρθωσης σε Σφ...ISSEL
Τις τελευταίες δεκαετίες, τα έργα λογισµικού γίνονται όλο και µεγαλύτερα, χρησιµότερα και διεισδύουν σε όλο και περισσότερες πτυχές του ανθρώπινου ϐίου. Κατά την ανάπτυξη και τη συντήρηση λογισµικού, οι προγραµµατιστές σπαταλούν µεγάλο µέρος του χρόνου τους στον εντοπισµό και τη διόρθωση σφαλµάτων. Τα εργαλεία στατικής ανάλυσης κώδικα αυτοµατοποιούν τη διαδικασία εντοπισµού των σφαλµάτων. Η χρήση τους, ωστόσο, παραµένει περιορισµένη, καθώς η κατανόηση και η διόρθωση σφαλµάτων παραµένουν ευθύνες των προγραµµατιστών. Τα τελευταία χρόνια, πραγµατοποιούνται έρευνες για την εξόρυξη προτύπων διόρθωσης τέτοιων σφαλµάτων άλλα και την ανάπτυξη συστηµάτων αυτοµατοποιηµένης διόρθωσης σφαλµάτων. Οι πρώτες στοχεύουν στην κατανόηση του τρόπου που οι προγραµµατιστές αντιµετωπίζουν τέτοια προβλήµατα, και πολλές ϕορές τα αποτελέσµατα τους αποτελούν ϐάση για τις δεύτερες. Η παρούσα διπλωµατική, στοχεύει στην εξόρυξη χρήσιµων προτύπων διόρ ϑωσης σφαλµάτων για σφάλµατα που ανήκουν στους κανόνες του εργαλείου στατικής ανάλυσης PMD. Αρχικά, µέσω κατάλληλων ερωτηµάτων στο API του Github, αναζητο ύνται commits που αφορούν διορθώσεις τέτοιων σφαλµάτων και λαµβάνονται οι εκδόσεις των αρχείων πριν και µετά των αλλαγών των commits. Στη συνέχεια, µέσω εκτέλεσης του PMD στις δύο εκδόσεις, εντοπίζονται οι επιµέρους διορθώσεις και δηµιουργείται κα τάλληλο σύνολο δεδοµένων, αποτελούµενο αποκλειστικά από διορθώσεις σφαλµάτων, κανόνων του PMD. Οι επιµέρους διορθώσεις αναλύονται και µε αξιοποίηση της αναπα ϱάστασης κώδικα srcML και του αλγορίθµου απόστασης επεξεργασίας δέντρου Gumtree, είναι εφικτή η εξαγωγή µιας ακολουθίας όρων που είναι αντιπροσωπευτικοί για κάθε διόρθωση. ΄Ετσι, µε εύρεση του µήκους της µέγιστης κοινής υπακολουθίας µεταξύ δύο διορθώσεων, είναι εφικτή η ανάπτυξη ενός µοντέλου οµοιότητας για τις διορθώσεις συνολικά και κατ΄ επέκταση, η οµαδοποίηση τους και η εξαγωγή προτύπων διόρθω σης. Πραγµατοποιήθηκαν δύο διαφορετικά πειράµατα οµαδοποίησης : στο ένα αξιοποιήθηκε ο αλγόριθµος K-medoids και στο άλλο ο DBSCAN. Και στα δύο πειράµα τα, άλλα ιδιαίτερα σε αυτό µε τον DBSCAN, σχεδόν κάθε εξαγόµενη οµάδα αποτελείται κυρίως από διορθώσεις σφαλµάτων ενός κανόνα του PMD. Παράλληλα, µε τον υπο λογισµό του αριθµού των commits και των αποθετηρίων από τα οποία προέρχονται οι διορθώσεις κάθε οµάδας - προτύπου, ϕανερώνεται ότι οι περισσότερες οµάδες προκύπτουν από διορθώσεις προερχόµενες από µεγάλο αριθµό commits και αποθετηρίων. ΄Ετσι αντανακλούν τον τρόπο που αρκετοί προγραµµατιστές ϑα αντιµετώπιζαν παρόµοια προβλήµατα. Συνεπώς, τα εξαγόµενα πρότυπα ϑα µπορούσαν να αποτελέσουν αφετη ϱία για κάποιον µηχανισµό αυτοµατοποιηµένης διόρθωσης σφαλµάτων, ϐασιζόµενο στο PMD για τον εντοπισµό τους.
Applying Data Mining Techniques to Extract Fix Patterns for Static Analysis V...ISSEL
Contemporary Software products are getting larger and more complex. Dur ing the processes of software development and maintenance, developers spend a significant amount of their work time on detecting and fixing bugs. Static Analysis Tools automate the process of bug detection. Their application, however, is lim ited as the process of understanding and fixing of bugs, remains part of developer’s responsibilities. Lately, several research approaches aspire to extract useful bug fix patterns, or to automate the bug fixing process. The first approaches focus on understanding how developers face similar problems and frequently they serve as groundwork for systems for automated bug fixing. Our research aims at the extraction of useful bug fix patterns, for bugs that trigger the rules of the static analysis tool PMD. Initially, by querying the Github API, we search for commits that correspond to fixes of these categories of bugs. Both the before and after the commit versions of the commits’ files are downloaded. Then, by executing PMD on the two versions of each file, individual fixes are detected and a proper dataset is crafted. The dataset comprises fixes of bugs detectable from rules of PMD. The fixes are analyzed, and by utilizing srcML code representation and tree edit distance algorithm Gumtree, a representative sequence is extracted from each fix. Afterwards, by utilizing the metric of longest common subsequence between two sequences of two fixes, we develop a similarity scheme for the dataset’s fixes. This similarity scheme, operates as the base for the clustering of fixes and pattern extraction. In order to cluster the fixes, two separate experiments were conducted, one with K-medoids and one with the DBSCAN algorithm. In both experiments, but mostly with the DBSCAN algorithm, almost each cluster groups mostly bug fixes of a certain PMD rule. Alongside, by computing the number of commits and repositories from which the fixes of each cluster come from, it becomes obvious, that most of the clusters arise from fixes coming from a large number of commits and repositories. Thus, the extracted patterns correspond to the way in which similar problems are faced, by a number of different developers. Consequently, our extracted patterns, can be utilized as groundwork for an automated bug fixing system, where PMD will serve for bug detection.
Επανοργάνωση πηγαίου κώδικα από γράφους εξαρτήσεων οντοτήτων µε βάση παραδείγ...ISSEL
Με την ολοένα και αυξανόµενη ενσωµάτωση του λογισµικού σε κοινωνικές δοµές όπως η εκπαίδευση και η υγεία, η γρήγορη συντήρηση (π.χ. αποσφαλµάτωση) µεγάλων έργων λογισµικού γίνεται όλο και πιο σηµαντική. Για αυτό το σκοπό, καθίσταται αναγκαία η κοινοτική οργάνωση του πηγαίου κώδικα σε οµάδες οντοτήτων (π.χ. µεθόδων σε κλάσεις, κλάσεων σε πακέτα, πακέτων σε ϐιβλιοθήκες), έτσι ώστε να διευκολύνεται η κατανόηση και πλοήγηση µεταξύ υλοποιηµένων λειτουργιών. Αν οι οντότητες οργανωθούν σε γράφους των οποίων οι ακµές αντικατοπτρίζουν τις εξαρτήσεις τους, υπάρχουν κοινά αποδεκτές αρχές της τεχνολογίας λογισµικου για το τι συνιστά καλή ποιοτικά οργάνωση του πηγαίου κώδι κα, όπως η υψηλή συνεκτικότητα εντός οµάδων οντοτήτων και η χαλαρή συνδεσιµότητα µε οντότητες άλλων οµάδων. Σε αυτή τη διπλωµατική, εξετάζεται το πρόβληµα της αυτοµατο ποιηµένης επανοργάνωσης οντοτήτων πηγαίου κώδικα ώστε να ϐελτιστοποιηθούν µετρικές που ποσοτικοποιούν αρχές ποιοτικής κοινοτικής οργάνωσης. Για να το πετύχουµε αυτό, χρησιµοποιούµε µεθόδους εξόρυξης κοινοτικής πληροφορίας από γράφους εξαρτήσεων ο ντοτήτων. Η κύρια υπόθεσή µας είναι η τρέχουσα ιεραρχική οργάνωση του κώδικα περιέχει ψήγµατα της ϐέλτιστης οργάνωσης και τη χρησιµοποιούµε ως µια προσεγγιστική πρώτη εκτίµηση την οποία και προσπαθούµε να ϐελτιώσουµε µε ϕίλτρα γράφων. Αυτή η ηµιε πιβλεπόµενη µέθοδος συγκρίνεται µε υπάρχουσες πρακτικές άπληστης ϐελτιστοποίησης της αρχικής εκτίµησης και µη επιβλεπόµενης γενετικής ϐελτιστοποίησης των κοινοτήτων στους γράφους εξαρτήσεων οντοτήτων 10 δηµοφιλών έργων λογισµικού. Βρίσκουµε ότι, δεδοµένης µια ¨στρευλωµένης¨ οργάνωσης, η προσέγγισή µας επιτρέπει την ακριβέστερη εξόρυξη των κοινοτήτων που ορίστηκαν από τους προγραµµατιστές των έργων. Επιπρο σθέτως, ολοκληρώνεται σε σχεδόν γραµµικούς χρόνους εκτέλεσης σε σχέση με τον αριθµό των εξαρτήσεων που επιτρέπουν την εφαρµογή της σε μεγάλα έργα λογισµικού.
Source code remodularization based on component dependency graphsISSEL
With the increasing integration of software in social structures, such as education and health, maintenance (e.g. debugging) of large software projects is becoming increasingly important. To this end, it is necessary to organize the source code into communities of artifacts (e.g. methods in classes, classes in packages, packages in libraries) to fa cilitate understandability and ease-of-navigation across implemented functionalities. If artifacts are organized into graphs whose edges reflect their dependencies, there ex ist commonly accepted software engineering principles of what constitutes high-quality source code organization, such as high connectivity of artifacts within groups and loose connectivity with artifacts of other groups. In this dissertation, we tackle the problem of automated reorganization of source code entities to optimize measures quantifying source code community organization quality. To this end, we apply community ex traction methods on dependency graphs. Our main hypothesis is that the existing hierarchical organization of source code comprises fragments of the optimal organiza tion and thus we use it as a first approximation that we refine with graph filters. This type of semi-supervised technique is compared to existing greedy optimization and un supervised genetic optimization approaches across 10 popular software projects. We find that, given a permutation of the ideal organization provided by developers, our approach derives the community organization closest to the ideal one. Additionally, it runs in near-linear times with respect to the number of dependencies that enable its application on dependency graphs of large projects.
1. Ποιότητα
Λογισμικού
Τι αφορά και πως αποτιμάται
Γεώργιος Γούσιος
2. Κάποιοι στοιχεία
• >70% έργων πληροφορικής
καθυστερούν
• 5-15% εγκαταλείπονται
• Γενικά, ένα έργο λογισμικού είναι
ποιο πιθανό να είναι μη επιτυχές
Τα έργα λογισµικού περιέχουν πολύ σηµαντικό ρίσκο
12. a product's quality is a function of how
much it changes the world for the better.
Tom DeMarco
13. External quality characteristics are those
parts of a product that face its users,
where internal quality characteristics are
those that do not
Steve Mc Connell, 2004
21. Στόχοι ποιότητας
Χαρακτηριστικά Μετρικές
Αριθμός
ορισμάτων
Συντηρησιμότητα
Κυκλο-
πολυπλοκότητα
Βλαβοανοχή
Αριθμός γραμμών
κωδικα
Μεταφερσιμότητα
Αριθμός
σφαλμάτων
Χρηστικότητα
Αριθμός γραμμών
τεκμηρίωσης
Sommerville, 2004
22. Μετρικές
• Καταγραφή στο χρόνο
• Συσχέτιση με γεγονότα στη
διάρκεια ζωής (πχ releases)
• Αυτόματοποίηση συλλογής
• Εργαλεία ΕΛΛΑΚ και εμπορικά
35. Αξιολόγηση Ποιότητας
Έργου
Πριν Κατά τη διάρκεια Μετά
• Επιλογή στόχων • Παρακολούθη • Δημιουργία
ποιότητας ση μετρικών μοντέλων
• Επιλογή • Ανάλυση • Επεξεργασία
μετρικών και συμπερασμάτ
μοντέλων • Διορθωτικές ων
παρεμβάσεις
• Εφαρμογή
συστήματος
συλλογής
δεδομένων
Kahn, 2002
36. Σημεία Κλειδιά
• Η ποιότητα λογισμικού έχει
διαφορετικές οπτικές και
αναγνώσεις
• Οι μετρικές δεν είναι αυτοσκοπός
• “Εκλογή σκοπού και εμμονή σε
αυτόν”