14 research outputs found

    Human-Centered Programming: The Design of a Robotic Process Automation Language

    Full text link
    RPA (Robotic Process Automation) helps automate repetitive tasks performed by users, often across different software solutions. Regardless of the RPA tool chosen, the key problem in automation is analyzing the steps of these tasks. This is usually done by an analyst with the possible participation of the person responsible for the given activity. However, currently there exists no one-size-fits-all description language, which would allow to record, process, and easily automate steps of specific tasks. Every RPA solution uses a different notation, which is not easily human-readable, editable, and which cannot be applied to a different automation platform. Therefore, in this paper, we propose a new eXtensible Robotic Language (XRL) that can be understood by both programmers and non-programmers to automate repetitive business processes.Comment: 8 page

    Metric and Tool Support for Instant Feedback of Source Code Readability

    Get PDF
    In the software maintenance phase, comprehending the legacy source code is inevitable, which consumes most of the time of the phase. The better the code is readable, the easier it is for code readers to comprehend the system based on the source code. This paper proposes an enhanced source code readability metric to quantitatively measure the extent of code readability. In addition, we developed a tool support named Instant R. Gauge to update the code on the fly based on the readability feedback of the current code. The tool also provides the history of the readability change so that developers recognize the more readable code and gradually change their coding habit without any annoying advice. The suggested readability metric achieves 75.74% of explanatory power, and our experiment showed that readability of most of the methods authored in our tool is higher than that of the methods without our approach

    An Empirical Validation of Cognitive Complexity as a Measure of Source Code Understandability

    Full text link
    Background: Developers spend a lot of their time on understanding source code. Static code analysis tools can draw attention to code that is difficult for developers to understand. However, most of the findings are based on non-validated metrics, which can lead to confusion and code, that is hard to understand, not being identified. Aims: In this work, we validate a metric called Cognitive Complexity which was explicitly designed to measure code understandability and which is already widely used due to its integration in well-known static code analysis tools. Method: We conducted a systematic literature search to obtain data sets from studies which measured code understandability. This way we obtained about 24,000 understandability evaluations of 427 code snippets. We calculated the correlations of these measurements with the corresponding metric values and statistically summarized the correlation coefficients through a meta-analysis. Results: Cognitive Complexity positively correlates with comprehension time and subjective ratings of understandability. The metric showed mixed results for the correlation with the correctness of comprehension tasks and with physiological measures. Conclusions: It is the first validated and solely code-based metric which is able to reflect at least some aspects of code understandability. Moreover, due to its methodology, this work shows that code understanding is currently measured in many different ways, which we also do not know how they are related. This makes it difficult to compare the results of individual studies as well as to develop a metric that measures code understanding in all its facets.Comment: 12 pages. To be published at ESEM '20: ACM / IEEE International Symposium on Empirical Software Engineering and Measuremen

    Predicting code comprehension: a novel approach to align human gaze with code using deep neural networks

    Get PDF
    The better the code quality and the less complex the code, the easier it is for software developers to comprehend and evolve it. Yet, how do we best detect quality concerns in the code? Existing measures to assess code quality, such as McCabe’s cyclomatic complexity, are decades old and neglect the human aspect. Research has shown that considering how a developer reads and experiences the code can be an indicator of its quality. In our research, we built on these insights and designed, trained, and evaluated the first deep neural network that aligns a developer’s eye gaze with the code tokens the developer looks at to predict code comprehension and perceived difficulty. To train and analyze our approach, we performed an experiment in which 27 participants worked on a range of 16 short code comprehension tasks while we collected fine-grained gaze data using an eye tracker. The results of our evaluation show that our deep neural sequence model that integrates both the human gaze and the stimulus code, can predict (a) code comprehension and (b) the perceived code difficulty significantly better than current state-of-the-art reference methods. We also show that aligning human gaze with code leads to better performance than models that rely solely on either code or human gaze. We discuss potential applications and propose future work to build better human-inclusive code evaluation systems

    Open source software in quantum computing

    Full text link
    Open source software is becoming crucial in the design and testing of quantum algorithms. Many of the tools are backed by major commercial vendors with the goal to make it easier to develop quantum software: this mirrors how well-funded open machine learning frameworks enabled the development of complex models and their execution on equally complex hardware. We review a wide range of open source software for quantum computing, covering all stages of the quantum toolchain from quantum hardware interfaces through quantum compilers to implementations of quantum algorithms, as well as all quantum computing paradigms, including quantum annealing, and discrete and continuous-variable gate-model quantum computing. The evaluation of each project covers characteristics such as documentation, licence, the choice of programming language, compliance with norms of software engineering, and the culture of the project. We find that while the diversity of projects is mesmerizing, only a few attract external developers and even many commercially backed frameworks have shortcomings in software engineering. Based on these observations, we highlight the best practices that could foster a more active community around quantum computing software that welcomes newcomers to the field, but also ensures high-quality, well-documented code.Comment: 22 pages, 4 figure

    A Model for Software Quality Evaluation Using the User's Point of Views

    Get PDF
    Contexte: Dans le marché des logiciels en constante évolution, les acheteurs de logiciels sont confrontés à un défi majeur: parmi ces différents produits, lequel répond le mieux aux exigences et au budget des utilisateurs? Bien que la plupart des acheteurs de logiciels soient conscients de leurs besoins fonctionnels et budgétaires, les facteurs de qualité tels que la « disponibilité » ou la «fiabilité » ne sont généralement pas pris en compte. Les fournisseurs de logiciels parlent aussi rarement des aspects de qualité de leurs produits. Le défi principal est « comment susciter les attentes de qualité des utilisateurs ? », puis « comment déterminer les caractéristiques de qualité d'un produit logiciel ?». La comparaison de ces deux facteurs de qualité peut aider les acheteurs de logiciels à sélectionner le produit le mieux adapté et à ne pas gaspiller de budget supplémentaire pour des facteurs de qualité inutiles et ne pas acheter un produit qui ne couvre pas leurs exigences de qualité. Existe-t-il une méthode systématique pour rendre cette comparaison possible? Quels sont les facteurs qui influent sur la perception de l'utilisateur de la qualité du produit logiciel? Objectif: Dans cette thèse, nous visons à aborder la qualité du produit logiciel du point de vue des utilisateurs. L'objectif est de créer le profil de qualité attendu et observé du produit logiciel afin de démontrer les différences entre les qualités attendues par les utilisateurs et quelles qualités sont observées chez le produit logiciel. Méthode: Nous avons utilisé une stratégie empirique en utilisant une méthode basée sur un sondage pour créer le profil des caractéristiques de qualité attendues et observées. Après avoir développé un modèle de qualité standard, nous avons créé quatre types de questionnaires pour les utilisateurs finaux et les utilisateurs expérimentés, qui visent à susciter les facteurs de qualité. À titre d'étude de cas, nous avons mené trois enquêtes en deux phases dans l'industrie. Dans la phase I, nous avons demandé aux utilisateurs potentiels d'un produit logiciel en cours de développement, de répondre au questionnaire «qualité attendue». Dans la phase II, les utilisateurs d'un produit logiciel existant ont été invités à répondre au questionnaire «qualité observée». Résultats: Les résultats de la première phase montrent qu'il n'y a pas de différence significative entre les attentes de qualité de groupe d'utilisateurs final (end user) et d'utilisateurs expérimentés (power user). Dans la phase II, les résultats révèlent que les utilisateurs du département de développement, connus comme utilisateurs techniquement compétents, trouvent le logiciel plus performant que les utilisateurs d'autres départements de l'entreprise. Conclusion: Avec des profils de plan de qualité en main, il est possible d'effectuer un contrôle croisé utile entre les attentes de qualité spécifiques des utilisateurs et d'autres pilotes (exigences fonctionnelles et architecture / conception), avant ou pendant le processus de développement de logiciels. Le contrôle croisé devrait viser à garantir qu'il existe suffisamment d'activités et de sous-activités dans le processus de développement de logiciels pour répondre aux attentes de qualité des utilisateurs. Sur la base des enquêtes menées, nous concluons que la qualité du logiciel du point de vue des utilisateurs dépend de la connaissance des utilisateurs sur les développements et la qualité de la technologie, en général, et sur le produit logiciel à l'étude, en particulier.----------ABSTRACT : Context: In the ever-evolving software market, software buyers face a central challenge: Among these various products, which one best meets the users’ requirements and budget? While most software buyers are aware of their functional and budgetary requirements, quality factors such as ‘availability’ or ‘reliability’ are not usually taken into account. Software vendors also rarely talk about the quality aspects of their products. The primary challenge is “how to elicit the users’ quality expectations”, and then “how to determine the quality characteristics of a software product”. Comparing these two can assist the software buyers to select the best-fit product; not to waste extra budget for unnecessary quality factors, and not buy a product that does not cover their quality requirements. Is there any systematic method to make this comparison possible? What are the influencing factors that affect the user’s perception of the software product quality? Objective: In this thesis, we aim to address the quality of the software product from the users’ point of view. The goal is to create the expected and observed quality profile of the software product to demonstrate the differences between what qualities were expected from the users’ side, and what qualities are observed in the software product. Method: We employed an empirical strategy using a surveybased method to create the profile of expected and observed quality characteristics. After developing a standard-based quality model, we created four types of questionnaires for end users and power users, which aim to elicit the quality factors. As a case study, we conducted three surveys in two phases in the industry. In phase I, we asked the potential users of a software product which was under development, to answer the ‘expected-quality’ questionnaire. In phase II, the users of an existing software product were asked to answer the ‘observed-quality’ questionnaire. Results: The results of the first phase show that there is no significant difference between the quality expectations of the end and power user groups. In phase II, the results reveal that the users in development department who are known as technically knowledgeable users find the software as higher quality than the users in other departments of the company. Conclusion: With quality plan profiles in hand, it is possible to perform a useful crosscheck between users’ specific quality expectations and other drivers (functional and architecture/design requirements), before or during the software development process. The crosscheck should be aimed to guarantee that there are enough activities and sub-activities in the software development process to support the users’ quality expectations. Based on the conducted surveys, we conclude that the software quality from the users’ point of view depends on the knowledge of the users about the software developments and quality, in general, and on the software product under study, specifically

    Spring Academy 2017

    Get PDF

    Xolotl: An Intuitive and Approachable Neuron and Network Simulator for Research and Teaching

    Get PDF
    Conductance-based models of neurons are used extensively in computational neuroscience. Working with these models can be challenging due to their high dimensionality and large number of parameters. Here, we present a neuron and network simulator built on a novel automatic type system that binds object-oriented code written in C++ to objects in MATLAB. Our approach builds on the tradition of uniting the speed of languages like C++ with the ease-of-use and feature-set of scientific programming languages like MATLAB. Xolotl allows for the creation and manipulation of hierarchical models with components that are named and searchable, permitting intuitive high-level programmatic control over all parts of the model. The simulator's architecture allows for the interactive manipulation of any parameter in any model, and for visualizing the effects of changing that parameter immediately. Xolotl is fully featured with hundreds of ion channel models from the electrophysiological literature, and can be extended to include arbitrary conductances, synapses, and mechanisms. Several core features like bookmarking of parameters and automatic hashing of source code facilitate reproducible and auditable research. Its ease of use and rich visualization capabilities make it an attractive option in teaching environments. Finally, xolotl is written in a modular fashion, includes detailed tutorials and worked examples, and is freely available at https://github.com/sg-s/xolotl, enabling seamless integration into the workflows of other researchers

    Influencia del uso de recomendaciones de legibilidad en la facilidad de comprensión de software: Un estudio experimental

    Get PDF
    Una de las actividades más frecuentes en mantenimiento de software es la lectura y comprensión de código fuente la cual demanda una proporción considerable del tiempo de los desarrolladores de software. Si el código fuente, no está escrito siguiendo buenas prácticas de programación los tiempos de mantenimiento de este pueden incrementarse. Con el propósito de disminuir los tiempos de lectura y comprensión es necesario por tanto considerar qué tan legible es el código fuente. El consenso general es que el código fuente debe escribirse pensando en minimizar el tiempo que tardarán otros desarrolladores en leerlo y comprenderlo. En esta investigación, se realizó un experimento controlado para analizar dos reglas de legibilidad de anidamiento y bucles. Se utilizaron 32 fragmentos (métodos) Java en cuatro categorías: unos que siguen la regla, otros que no siguen la regla y que son lógicamente correctos o incorrectos. El experimento se realizó en línea con 275 participantes. Los resultados indican que minimizar el anidamiento de estructuras de control disminuye el tiempo que los desarrolladores requieren para leer y comprender código fuente, aumenta su nivel de confianza sobre el grado de comprensión del código y también mejora la capacidad para encontrar errores (bugs). Los resultados también muestran que la regla de evitar el uso de bucles do/while no tuvo impacto significativo en ninguno de los aspectos analizados. Por último, al ser un experimento totalmente en inglés, también se encontró que cuanto mayor era el nivel de conocimiento en inglés los resultados asociados a la regla de minimizar el anidamiento fueron mejores. Se analizan las implicaciones de estos hallazgos sobre legibilidad y comprensión de código fuente.Software developers spend a significant amount of time reading source code. If code is not written with readability in mind, it impacts the time required to maintain it. In order to alleviate the time taken to read and understand code, it is important to consider how readable the code is. The general consensus is that source code should be written to minimize the time it takes for others to read and understand it. In this paper, we conduct a controlled experiment to assess two code readability rules: nesting and looping. We test 32 Java methods in four categories: ones that follow/do not follow the readability rule and that are correct/incorrect. The study was conducted online with 275 participants. The results indicate that minimizing nesting decreases the time a developer spends reading and understanding source code, increases her level of confidence about her own understanding of the code, and also suggests that it improves her ability to find bugs. The results also show that avoiding the do-while statement had no significant impact on level of understanding, time spent reading and understanding, confidence in understanding, or ease of finding bugs. It was also found that the better knowledge of English a participant had, the more their readability and comprehension confidence ratings were affected by the minimize nesting rule. We discuss the implications of these findings for code readability and comprehension.Magíster en Ingeniería de Sistemas y Computación. Línea de Investigación: Evolución y Mantenimiento de Software
    corecore