Πλοήγηση ανά Επιβλέπων "Spinellis, Diomidis"
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
Τώρα δείχνει 1 - 13 από 13
- Αποτελέσματα ανά σελίδα
- Επιλογές ταξινόμησης
Τεκμήριο Abstractions for software testing(03-10-2022) Σωτηρόπουλος, Θοδωρής; Sotiropoulos, Thodoris; Athens University of Economics and Business, Department of Management Science and Technology; Louridas, Panagiotis; Mitropoulos, Dimitrios; Chatziantoniou, Damianos; Voulgaris, Spyridon; Smaragdakis, Ioannis; Chatzigeorgiou, Alexandros; Spinellis, DiomidisΟι προγραμματιστές στην βιομηχανία του λογισμικού ξοδεύουν σημαντικό μέρος του χρόνου τους στην δοκιμή του λογισμικού τους και στην διόρθωση σφαλμάτων λογισμικού. Για να γίνει αυτό πιο αποτελεσματικά, υιοθετούν αυτοματοποιημένα εργαλεία εύρεσης σφαλμάτων στη διαδικασία ανάπτυξής του λογισμικού τους. Τέτοια εργαλεία εύρεσης σφαλμάτων βασίζονται στην ανάλυση του κώδικα ή τεχνικές ελέγχου λογισμικού και ο στόχος τους είναι ο εντοπισμός σφαλμάτων λογισμικού, που διαφορετικά θα ήταν δύσκολο να αποκαλυφθούν μέσω χειροκίνητων δοκιμών.Μία τρέχουσα πρόκληση στον αυτόματο έλεγχο λογισμικού είναι η ανίχνευση βαθιά κρυμμένων ελαττωμάτων σε λογισμικό που παρουσιάζει περίπλοκη λειτουργικότητα. Τέτοιου είδους σφάλματα είναι πολύ εύκολο να παραμείνουν απαρατήρητα, δεδομένου ότι το λογισμικό δεν εμφανίζει προειδοποιήσεις ή άλλες αστοχίες κατά την εκτέλεσή του. Επίσης, ένα άλλο σημαντικό μειονέκτημα των υπαρχόντων εργαλείων για ανίχνευσης σφαλμάτων λογισμικού είναι η περιορισμένη εφαρμοσιμότητά τους. Πράγματι, πολλά από αυτά τα εργαλεία είναι προσαρμοσμένα για συγκεκριμένο είδος λογισμικού.Η διατριβή ερευνά την βελτίωση της αποτελεσματικότητας του αυτόματου ελέγχου λογισμικού εισάγοντας τεχνικές αφαίρεσης στην διεργασία του ελέγχου. Ο σκοπός αυτών των τεχνικών αφαίρεσης είναι η δημιουργία μια κοινής πλατφόρμας για τον εντοπισμό σφαλμάτων σε συστήματα και προγράμματα λογισμικού που παρουσιάζουν ανομοιογενείς λειτουργικότητες, διεπαφές ή σημασιολογίες. Η παρούσα διατριβή εισάγει δύο τεχνικές αφαίρεσης και μέσω αυτών, λύνει τρία σημαντικά προβλήματα: την αυτόματη ανίχνευση (1) σφαλμάτων τύπων σε μεταγλωττιστές, (2) σφαλμάτων σε λογισμικό οδηγούμενο από τα δεδομένα, και (3) σφαλμάτων εξαρτήσεων στους πόρους του συστήματος αρχείων.Η εργασία που παρουσιάστηκε σε αυτή τη διατριβή βελτίωσε ουσιαστικά την αξιοπιστία του καθιερωμένου λογισμικού που χρησιμοποιείται από εκατομμύρια χρήστες και εφαρμογές. Συνολικά, οι τεχνικές και τα εργαλεία εύρεσης σφαλμάτων μας οδήγησαν στην αποκάλυψη και τη διόρθωση περισσότερων από 400 σφαλμάτων που βρέθηκαν σε δημοφιλή συστήματα λογισμικού.Αυτή η διατριβή παρουσιάζει πρακτικό αντίκτυπο στη βιομηχανία λογισμικού και ανοίγει νέες ερευνητικές ευκαιρίες που σχετίζονται με την εφαρμογή εννοιών γλώσσων προγραμματισμού στον έλεγχο του λογισμικού.Τεκμήριο An empirical investigation of Boilerplate code(01/19/2022) Chaniotaki, Christina-Zacharoula; Χανιωτάκη, Χριστίνα-Ζαχαρούλα; Athens University of Economics and Business, Department of Informatics; Louridas, Panagiotis; Gritzalis, Dimitrios; Spinellis, DiomidisOver the years, the use of computer applications and thus the creation of new software programs is growing rapidly. As a result, the creation and usage of new programming languages and services to meet existing needs is also increasing quickly. Hence, the phenomenon of code repetition and reuse has been introduced to a large extent in the development of new applications, either intentionally or unintentionally. Consequently, a new research field of Computer Science was created, known as "Code Cloning". One subcategory of this field is called "Boilerplate Code". Boilerplate code is code snippets that are used over and over again with little or no modifications, either in the same program or in different ones. One major difference between Code Cloning and Boilerplate Code is that it cannot be avoided and it is necessary because for example there are limitations of the language. We present a study which investigated the reasons for using boilerplate code. It includes examination of previous research, tool-based code analysis, and a questionnaire survey. We collect data on the reasons why developers use boilerplate code and categorize its different types based on the tool results. The findings of our study suggest that the usage of boilerplate code is not simply a technical issue, but needs to be analyzed and interpreted in a larger context. There are occasions when using it wisely is beneficial to the life of a project, and these cases reveal opportunities to improve boilerplate code generation and usage practices.Τεκμήριο Energy and run-time performance practices in software engineering(2021) Georgiou, Stefanos; Γεωργίου, Στέφανος; Athens University of Economics and Business, Department of Management Science and Technology; Louridas, Panagiotis; Sakellariou, Rizos; Chatziantoniou, Damianos; Papaspirou, Nikolaos; Voulgaris, Spyridon; Zou, Ying; Spinellis, DiomidisEnergy efficiency for computer systems is an ever-growing matter that has caught the attention of the software engineering community. Although hardware design and utilization are undoubtedly key factors affecting energy consumption, there is solid evidence that software design can also significantly alter the energy consumption of IT products. Therefore, the goal of this dissertation is to show the impact of software design decisions on the energy consumption of a computer system.Initially, we analyzed 92 research papers from top-tier conferences and categorized them under the Software Development Life Cycle taxonomy. From this study, we were able to find many research challenges. Among these challenges, we identified that there is limited work in the context of different programming languages’ energy and delay implications.To this end, we performed an empirical study and pointed out which programming languages can introduce better energy and run-time performance for specific programming tasks and computer platforms (i.e., server, laptop, and embedded system). Motivated further by our survey results, we performed an additional study on different programming languages and computer platforms to demonstrate the energy and delay implications of various inter-process communication technologies (i.e, REST, RPC, gRPC).From the above studies, we were able to introduce guidelines on reducing the energy consumption of different applications by suggesting which programming languages to utilise in specific cases. Finally, we performed experiments to examine the energy and run-time performance taxing that security measures have over 128 distinct benchmark suites. By investigating the impact of CPU-related vulnerabilities (Meltdown, Spectre, and MDS), communication-related security measures (HTTP/HTTPS), memory protection (memory zeroing), and compiler safeguards (GCC), we have found that these measures can impact the energy and run-time performance of real-work applications (Nginx, Apache, Redis) by up to 20%.Τεκμήριο Extending maintainability analysis beyond code smells(02-05-2019) Tushar, Sharma; Athens University of Economics and Business, Department of Management Science and Technology; Louridas, Panagiotis; Gousios, Georgios; Kessentini, Marouane; Malevris, Nikolaos; Stamelos, Ioannis; Chatzigeorgiou, Alexandros; Spinellis, DiomidisCode smells indicate the presence of quality problems impacting many facets of software quality such as maintainability, reliability, and testability. The presence of an excessive number of smells in a software system makes it hard to maintain and evolve.Our first aim in this thesis is to understand the characteristics of code smells, such as their occurrence frequency, and relationships such as correlation and collocation among smells arising at different granularities. We aim to perform an exploratory study to investigate the feasibility of detecting smells using deep learning methods without carrying out extensive feature engineering. We would also like to explore whether transfer-learning can be employed in the smell detection context. Apart from the production source code, other sub-domains of software such as configuration code in Infrastructure as Code (IaC) paradigm and database code are also prone to maintainability issues. Our next goal is to propose a method to identify quality issues in configuration code and carry out a maintainability analysis.We perform a large-scale empirical study to analyze production code written in C# from maintainability perspective. We mine seven architecture, 19 design, 11 implementation smells from a large set of 3,209 open-source repositories containing more than 83 million lines of code. Our exploration with deep learning techniques establishes that deep learning methods can be used for smell detection though the performance of individual models varies significantly. We extend the maintainability analysis to configuration code. We analyze 4,621 Puppet repositories containing 142,662 Puppet files and more than 8.9 million lines of code using Puppeteer - a configuration smell detection tool that we developed. Further, we investigates relational database schema smells and its relationships with application and database characteristics. We compare between open-source and industrial codebase from database schema quality perspective.Τεκμήριο Impact analysis of Greece's OpenGov public consultation contributions on final legislation(13-05-2024) Athanasiou, Antonis; Αθανασίου, Αντώνης; Athens University of Economics and Business, Department of Management Science and Technology; Louridas, Panagiotis; Chatziantoniou, Damianos; Spinellis, DiomidisΗ Ελληνική ηλεκτρονική πλατφόρμα δημοσίας διαβούλευσης, Opengov, εξετάζεται ως μελέτη περίπτωσης της επίπτωσης της διαβούλευσης στα ψηφισθέντα νομοσχέδια. Η βιβλιογραφία σε μεγάλο βαθμό συμφωνεί — μεταξύ άλλων — πως στόχος της διαβούλευσης είναι η επίπτωση στην παραγόμενη πολιτική, ωστόσο δεν υπάρχει γενικά αποδεκτός τρόπος στην μέτρησης της επίπτωσης αυτής. Η παρούσα διπλωματική ορίζει την επίπτωση ως την ομοιότητα μεταξύ του προτεινόμενου νόμου και του ψηφισθέντος νόμου. Για την παρούσα ανάλυση, ήταν απαιτητή μία εκτενής εξόρυξη και επεξεργασία δεδομένων, η οποία επίσης αναλύεται. Η μέθοδος των ελαχίστων τετραγώνων χρησιμοποιήθηκε για την εξακρίβωση και την ποσοτικοποίηση της επίπτωσης. Τα αποτελέσματα δείχνουν πως τα άρθρα που λαμβάνουν παραπάνω σχόλια αλλάζουν κατά μέσο όρο περισσότερο. Κλείνοντας, παρουσιάζονται περιορισμοί της επιλεγμένης προσέγγισης καθώς και προτάσεις βελτίωσης.Τεκμήριο Integrating domain-specific languages with general-purpose languages(13-09-2018) Karakoidas, Vassilios; Καρακόιδας, Βασίλειος; Athens University of Economics and Business, Department of Management Science and Technology; Louridas, Panos; Papaspirou, Nikolaos; Gousios, Georgios; Giakoumakis, Emmanouil A.; Rontogiannis, Panagiotis; Chatziantoniou, Damianos; Spinellis, DiomidisDomain-specific Languages (DSL), also known as micro-languages or little languages, are programming languages designed to specifically solve problems within a particular do- main. They are used to improve the efficiency of the software development process. Well-known DSLs include regular expressions, markdown and SQL. On the contrary, General-purpose languages (GPL) have a wider scope. They provide a set of processing capabilities applicable to different problem domains. Typical examples of GPLs are Java, C++ and Scala. In modern software engineering approaches, DSLs are often used together with GPLs. For example, the integration of SQL with various GPLs constitutes a field that drew the attention of researchers and of practitioners. For the case of Java, the language integration is executed with the use of a JDBC (Java Database Connectivity) application library. The programmer has to pass the SQL query to the database as a string. Through this process, the Java compiler is completely oblivious to the SQL language contained within the Java code with many SQL syntax and type errors detected at runtime. Such errors remain undiscovered, even with extensive testing during the development process. This thesis introduces J% (j-mod), a DSL-aware extension of the Java programming language. J% provides an extensible way to embed DSLs into Java in the form of compiler modules. So far, it supports SQL and regular expressions. It facilitates existing Java DSL APIs, for example SQL support uses the standard JDBC application library. However, this is not a requirement and a module can translate DSL code to the host language or even directly to JVM bytecode.Τεκμήριο Java decompiler using machine translation techniquesChatzilenas, Christos; Χατζηλένας, Χρήστος; Athens University of Economics and Business, Department of Informatics; Spinellis, DiomidisA decompiler is a computer program that converts an executable file or low-level/machine language into a format that is understandable to software programmers. Even though a decompiler may not always reconstruct perfectly the original source code, it remains an important tool for reverse engineering of computer software. The process of decompilation is very useful for the recovery of lost source code, for analyzing and understanding software whose code is not available, even for computer security in some cases. In this thesis, in order to address the decompilation problem we transform it to a translation problem which can be solved using machine translation. Two approaches are studied, statistical and neural machine translation, using two open-source tools Moses and OpenNMT, respectively. Maven repositories are retrieved from GitHub in order to form the dataset and an appropriate procedure is used to construct the parallel corpora. In this context experiments in Moses are not successful while the result of translation using neural machine translation, is fairly good. The difference between the decompiler presented in this thesis and existing Java decompilers is the fact that it can translate bytecode snippets. Additionally, this approach can be extended to produce better results by recovering variables, methods, class names and comments. Finally, this study illustrates that the Java source code which is produced from the decompilation procedure is useful. However, extending it may produce better results.Τεκμήριο Managing the risk of peer-to-peer transactionsAndroutsellis-Theotokis, Stephanos; Ανδρουτσέλλης-Θεοτόκης, Στέφανος; Athens University of Economics and Business, Department of Management Science and Technology; Spinellis, Diomidis; Doukidis, Georgios; Louridas, PanosIt is being progressively recognized that information systems and applications supporting collaborative tasks, including online transaction processing systems, that currently follow centralized client-server models, can also be based on the maturing wave of peer-to-peer architectures. Motivations for this architectural decision include improved scalability, performance, and access to resources; ability to deal with transient user populations; dynamic ad-hoc communication, network organization and failure recovery; lack of a single point of failure; and ability to perform direct and unmediated transactions. In order to manage and reduce the risk inherent in peer-to-peer transactions and their decentralized and uncontrolled environment, a variety of approaches have been proposed in the literature and implemented in both research and industrial settings, with reputation and trust management systems being the most prominent. These aim to provide peers with estimates of the risk involved in their transactions, based on the observed past behaviour of their counterparties. Though reputation management systems offer a lot in this direction, it is argued that the information they provide about past behaviour may not be enough to accurately assess the risk involved in a transaction, and various issues remain open especially in purely distributed implementations. As a result, there still is considerable concern over the amount of risk involved in online transactions, even with the support of reputation management systems. In our research we attempt to address the above issues by proposing new, alternative and original concepts for reducing the risk of peer-to-peer transactions, and by designing, implementing and evaluating decentralized risk management systems that incorporate and utilize these concepts. After investigating the emerging field of peer-to-peer systems and architectures, and distributed reputation management systems, we first focus on the way in which reputation information is currently modeled, expressed and used, as it is an area that we believe warrants further research. In this work we propose an alternative approach, in which reputation information is expressed and manipulated in terms of monetary units. By coupling the reputation information with the transaction amount we can describe and implement specific algorithms for the estimation and propagation of reputation information, and other decision making processes. Central to this approach is the notion of “ratcheting” trust estimates, i.e. allowing the build-up of trust as a result of repeated successful transactions, potentially beyond the actual transaction value. Based on these concepts we design, test and evaluate the MOR-TRUST distributed reputation management system. We then take the above work a step further, to propose an alternative concept for peer-to-peer transaction risk management, and a corresponding system that implements it. In the PTRIM system we no longer rely on a distributed reputation management approach, but instead we base our design on the financial principles governing credit markets for managing, transferring or reducing credit and transaction risk. PTRIM builds a transaction default market layer on top of a main transaction processing system, within which peers offer to underwrite the transaction risk for a slight increase in the transaction cost. The insurance cost, determined through market-based mechanisms, is a way of identifying untrustworthy peers and perilous transactions. The risk of the transactions is contained, and at the same time members of the peer-to-peer network capitalize on their market knowledge by profiting as transaction insurers. Although PTRIM extends the main concepts that the MOR-TRUST approach is based on, the two system designs and implementations are independent. We define a robust evaluation methodology for each of the two systems. For MORTRUST we build a simulation environment based on synthetic network graphs and data, and run sets of simulation trials. For PTRIM, instead, we design, implement and deploy a complete prototype system and run sets of trials based on groups of real subjects, as well as a different “composite” platform involving real transaction data sampled from actual online transaction processing systems and real subjects providing insurance for these transactions. The evaluation of these two systems validated and verified the efficiency of our proposed concepts. Our findings suggest that our proposed approaches are able to support peer-to-peer transaction processing systems either through distributed reputation management, or through the insurance offers produced by the transaction default market layer. At the same time, we highlight areas of future work and possible improvements with respect to both the systems and the evaluation procedure itself.Τεκμήριο Tools and methods for large scale empirical software engineering researchΓούσιος, Γεώργιος Ι.; Gousios, Georgios I.; Athens University of Economics and Business, Department of Management Science and Technology; Spinellis, DiomidisIn this thesis, we investigate novel ways to integrate process and product data fromvarious oss repositories in an effort to build an open Software Engineering ResearchPlatform (serp) consisting of both software tools and shared data. We base our workon sqo-oss, a tool designed to perform software quality analysis. We analyse the designof the raw data and metadata storage formats and as part of its implementation,we develop novel solutions to the problems of: (i) representing distributed and centralisedsource configuration management data in relational format (ii) identifying andresolving developer identities across data sources, and (iii) efficiently representing anddistributing processing workload towards fully exploiting the available hardwareΤεκμήριο Tools and techniques for building reliable application programming interfaces(09-11-2017) Kechagia, Maria A.; Κεχαγιά, Μαρία Α.; Athens University of Economics and Business, Department of Management Science and Technology; Λουρίδας, Παναγιώτης; Χατζηγεωργίου, Αλέξανδρος; Πραματάρη, Αικατερίνη; Χατζηαντωνίου, Δαμιανός; Παπασπύρου, Νικόλαος; Γούσιος, Γεώργιος; Spinellis, DiomidisPrograms draw significant parts of their functionality through the use of Application Programming Interfaces (APIs). Apart from the way developers incorporate APIs in their software, the stability of these programs depends on the design and implementation of the APIs. Goal of this dissertation is to discover techniques and tools that can help in the improvement of modern client systems and applications' robustness by first guaranteeing APIs' reliability.Initially, we process almost one million crash reports from application failures and establish heuristic rules to draw the border between applications and risky API calls. Our findings show that top crash causes can be attributed to: memory exhaustion, synchronization issues, and missing resources. We are however unable to classify the crash causes for a significant number (almost 10%) of signatures associated with generic exceptions. This result leads us to the development of a technique that can automatically assess an API’s quality regarding the exceptions listed in the API's documentation. Applying our approach on the Android ecosystem, we identify that undocumented exceptions can have a negative impact on the stability of client applications. In addition, a randomized controlled trial we run on 25 Android and Java developers shows that relevant documentation improvements can be effective by making such exceptions checked. This insight motivates us to design and implement a static verification approach for Java that can provide precise API error handling through compile-time checks. Using our method, we check ten open source Java projects and identify bugs related to input-handling errors. Therefore, our techniques manage to guarantee the absence of particular runtime exceptions that risky APIs can throw, supporting productive bug finding.Τεκμήριο Visual data processing: a Blockly interface framework(11-03-2024) Cipi, Klenti; Athens University of Economics and Business, Department of Management Science and Technology; Louridas, Panagiotis; Chatziantoniou, Damianos; Spinellis, DiomidisΟ σκοπός αυτής της μελέτης είναι να παρουσιάσει ένα μοναδικό πλαίσιο που χρησιμοποιεί το Blockly, μια οπτική γλώσσα προγραμματισμού, για να αντιπροσωπεύει εντολές Unix ως γραφικά μπλοκ.. Μέσω της απλούστευσης του τρόπου λειτουργίας τους και της εξάλειψης της απαίτησης για εξειδικευμένη γνώση προγραμματισμού, αυτή η μέθοδος σκοπεύει να καταστήσει τα βοηθήματα Unix πιο προσιτά σε ένα ευρύτερο κοινό.Η διατριβή παρέχει μια εξήγηση για την ανάπτυξη μιας οπτικής διεπαφής προγραμματισμού που απλοποιεί τη χρήση των εργαλείων γραμμής εντολών Unix, επιτρέποντας στους χρήστες να σχεδιάσουν ακολουθιες επεξεργασίας δεδομένων με σύρση και εγκατάλειψη εξαρτημάτων. Τα οπτικά μπλοκ συνδέονται με τις οδηγίες του Unix μέσω της χρήσης αρχείων προδιαγραφών JSON, τα οποία χρησιμοποιούνται από το σύστημα για να διευκολύνουν τη διαδικασία μετατροπής. Η ευκολία χρήσης των δραστηριοτήτων επεξεργασίας δεδομένων βελτιώνεται ως αποτέλεσμα αυτής της σκόπιμης επιλογής σχεδιασμού, και οι χρήστες ενθαρρύνονται να αναπτύξουν μια βαθύτερη κατανόηση των εντολών Unix. Η αύξηση της προσβασιμότητας της σύνθετης επεξεργασίας δεδομένων είναι ένας από τους στόχους αυτής της πρωτοβουλίας, η οποία έχει επίσης ως στόχο να ενθαρρύνει περισσότερους ανθρώπους να συμμετάσχουν στην υπολογιστική ανάλυση δεδομένων.Τα ευρήματα της μελέτης υπογραμμίζουν τη σημασία του οπτικού προγραμματισμού στη διαδικασία συνδυασμού σύνθετων δραστηριοτήτων γραμμής εντολών με φιλικές προς το χρήστη διεπαφές. Αυτό, με τη σειρά του, διευρύνει το φάσμα των εργαλείων που είναι διαθέσιμα για τους επιστήμονες δεδομένων και ερευνητές που εργάζονται σε διάφορους τομείς. Αυτή η έρευνα όχι μόνο συμβάλλει στον τομέα του οπτικού προγραμματισμού, αλλά ανοίγει επίσης νέες δυνατότητες για εκπαιδευτικά εργαλεία που διευκολύνουν την απόκτηση διεπαφών γραμμής εντολών χρησιμοποιώντας προσεγγίσεις που είναι τόσο διαδραστικές όσο και ενδιαφέρουσες.Τεκμήριο Visual data processing: Blockly abstractions for Unix commands(12-03-2024) Κακαβάς, Παντελής; Kakavas, Pantelis; Athens University of Economics and Business, Department of Management Science and Technology; Chatziantoniou, Damianos; Louridas, Panagiotis; Spinellis, DiomidisΗ διατριβή αυτή επικεντρώνεται στην ενσωμάτωση των εργαλείων γραμμής εντολών Unix με τον οπτικό προγραμματισμό προκειμένου να βελτιωθεί η προσβασιμότητα και η χρηστικότητά τους. Η γρήγορη εξέλιξη και ο μεγάλο όγκος των δεδομένων απαιτούν αποτελεσματικές αγωγούς επεξεργασίας δεδομένων. Παρόλο που οι παραδοσιακές διεπαφές γραμμής εντολών είναι ισχυρές, έχουν υψηλή καμπύλη μάθησης που μπορεί να εμποδίσει την ευρεία χρήση τους για δραστηριότητες διαχείρισης δεδομένων. Η μελέτη αυτή παρουσιάζει ένα νέο πλαίσιο που χρησιμοποιεί το Blockly, μία οπτική γλώσσα προγραμματισμού, για να αναπαριστά τις εντολές Unix ως γραφικά μπλοκς και να παρέχει τις αναπαραστάσεις τους. Αυτή η μέθοδος επιδιώκει να καταστήσει τις εντολές Unix πιο προσβάσιμες σε ένα ευρύτερο κοινό διευκολύνοντας τη χρήση τους, εξαλείφοντας την απαίτηση για προχωρημένες προγραμματιστικές δεξιότητες.Η διατριβή αναλύει τη δημιουργία ενός περιβάλλοντος οπτικού προγραμματισμού που επιτρέπει στους χρήστες να δημιουργούν αγωγούς επεξεργασίας δεδομένων σύροντας και αποθέτοντας στοιχεία, καθιστώντας τη χρήση των εργαλείων γραμμής εντολών Unix πιο εύκολη. Κεντρικό σημείο στο σύστημα αυτό είναι τα αρχεία ορισμού JSON, τα οποία αποτελούν την αρχιτεκτονική βάση που συνδέει τα οπτικά μπλοκς με τις εντολές Unix. Αυτή η απόφαση σχεδιασμού βελτιώνει τη φιλικότητα προς τον χρήστη των δραστηριοτήτων επεξεργασίας δεδομένων και προάγει μια πιο βαθιά κατανόηση των εντολών Unix ανάμεσα στους χρήστες. Το έργο προάγει την προσβασιμότητα της πολύπλοκης διαχείρισης δεδομένων, προωθώντας την ευρύτερη συμμετοχή στην υπολογιστική ανάλυση δεδομένων.Τα ευρήματα της έρευνας υπογραμμίζουν τη σημασία του οπτικού προγραμματισμού στην γέφυρα μεταξύ πολύπλοκων λειτουργιών γραμμής εντολών και φιλικών προς τον χρήστη διεπαφών, διευρύνοντας έτσι τη διαθέσιμη εργαλειοθήκη για επιστήμονες δεδομένων και ερευνητές σε διάφορους τομείς. Αυτό το έργο συμβάλλει όχι μόνο στον τομέα του οπτικού προγραμματισμού, αλλά ανοίγει επίσης νέες προοπτικές για εκπαιδευτικά εργαλεία που διευκολύνουν την μάθηση των διεπαφών γραμμής εντολών μέσω διαδραστικών και ελκυστικών μεθόδων.Τεκμήριο Τεχνολογίες ανάλυσης δεδομένων κύριας μνήμης(2017) Φραγκούλης, Μάριος; Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας; Spinellis, DiomidisΤα ψηφιακά δεδομένα έχουν αναδειχθεί σε καθοριστικό πόρο για την επίλυση επιστημονικών και επιχειρηματικών προβλημάτων και για την επίτευξη ανταγωνιστικού πλεονεκτήματος. Με αυτό το σκοπό οι επιστημονικές και επιχειρηματικές κοινότητες διεθνώς προσπαθούν να εξάγουν γνώση από τα δεδομένα που έχουν στη διάθεσή τους. Η έγκαιρη αξιοποίηση των δεδομένων επηρεάζει σημαντικά την επιστημονική πρόοδο, την ποιότητα ζωής, και την οικονομική δραστηριότητα.Στην ψηφιακή εποχή η αποδοτική επεξεργασία και η αποτελεσματική ανάλυση των δεδομένων αποτελούν σημαντικές προκλήσεις. Η επεξεργασία των δεδομένων στην κύρια μνήμη μπορεί να προάγει την αποδοτικότητά της ειδικά αν συνδυαστεί με νέες αρχιτεκτονικές συστημάτων λογισμικού. Ταυτόχρονα όμως απαιτούνται χρήσιμα και χρηστικά εργαλεία ανάλυσης δεδομένων της κύριας μνήμης για να ικανοποιήσουν σημαντικές περιπτώσεις χρήσεις που δεν πληρούνται από τεχνολογίες βάσεων δεδομένων και γλωσσών προγραμματισμού.Today’s systems employ multiple levels of control for various data management aspects, such as querying, naming, access control, storage reclamation, and organisation. An indicative example concerns the programming language and the file system, both of which manage storage and performbuffering. This separation of concerns in the conventional architecture accounts for double system workload, independent optimisation of memory levels, and increased system software development costs. The current trend of establishing standard interfaces for clean communicaton between modules, isolated in their own corners with local authority, is shortsighted. Data management has become a crucial aspect of system operation, yet we continue to walk along lines drawn decades ago. We trust programming languages to deliver data resident in main memory, utilise explicit operating system calls to access files on disk, and rely on translation code to access database data. We manage data differently with respect to their longevity, we underutlize ourmemory hierarchy as well as impose increased software applicaton development costs.