• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 31
  • 3
  • 1
  • 1
  • 1
  • Tagged with
  • 46
  • 46
  • 24
  • 22
  • 15
  • 15
  • 12
  • 11
  • 10
  • 9
  • 9
  • 8
  • 8
  • 8
  • 8
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
31

Log File Categorization and Anomaly Analysis Using Grammar Inference

Memon, Ahmed Umar 28 May 2008 (has links)
In the information age of today, vast amounts of sensitive and confidential data is exchanged over an array of different mediums. Accompanied with this phenomenon is a comparable increase in the number and types of attacks to acquire this information. Information security and data consistency have hence, become quintessentially important. Log file analysis has proven to be a good defense mechanism as logs provide an accessible record of network activities in the form of server generated messages. However, manual analysis is tedious and prohibitively time consuming. Traditional log analysis techniques, based on pattern matching and data mining approaches, are ad hoc and cannot readily adapt to different kinds of log files. The goal of this research is to explore the use of grammar inference for log file analysis in order to build a more adaptive, flexible and generic method for message categorization, anomaly detection and reporting. The grammar inference process employs robust parsing, islands grammars and source transformation techniques. We test the system by using three different kinds of log file training sets as input and infer a grammar and generate message categories for each set. We detect anomalous messages in new log files using the inferred grammar as a catalog of valid traces and present a reporting program to extract the instances of specified message categories from the log files. / Thesis (Master, Computing) -- Queen's University, 2008-05-22 14:12:30.199
32

Tool features for understanding large reverse engineered sequence diagrams

Bennett, Chris 19 June 2008 (has links)
Originally devised as a notation to capture scenarios during analysis and design, sequence diagrams can also aid understanding of existing software through visualization of execution call traces. Reverse engineered sequence diagrams are typically huge and designing tools to help users cope with the size and complexity of such traces is a major problem. While preprocessing may be necessary to reduce the complexity of a sequence diagram, interactive tool support is critical to help the user explore and understand the resulting diagram. This thesis examines tool features necessary to effectively support sequence diagram exploration by reverse engineers. Features were derived from a literature survey and empirically evaluated using an exploratory user study. The tool features were further evaluated by situating them within theories of cognitive support.
33

A Neuro-Cognitive Perspective of Program Comprehension

Peitek, Norman 06 May 2022 (has links)
Background: Software is an integral part of today's world with an outlook of ever-increasing importance. Maintaining all of these software artifacts is a major challenge for software engineering. A future with robust software primarily relies on programmers' ability to understand existing source code, because they spend most of their time on it. Program comprehension is the cognitive process of understanding source code. Since program comprehension is an internal cognitive process, it is inherently difficult to observe and measure reliably. Decades of research have developed fundamental models of program comprehension, but there still are substantial knowledge gaps in our understanding of program comprehension. Novel psycho-physiological and neuroimaging measures provide an additional perspective on program comprehension which promise new insights to program comprehension. Recently, these measures have been permeating software engineering research. The measures include eye tracking and physiological sensors, but also neuroimaging measures, such as functional magnetic resonance imaging (fMRI), which allow researchers to more objectively observe cognitive processes. Aims: This dissertation aims to advance software engineering by better understanding program comprehension. We apply and refine the use of psycho-physiological and neuroimaging measures. The goals are twofold: First, we develop a framework for studying program comprehension with neuroimaging, psycho-physiological, eye tracking, and behavioral methods. For neuroimaging, we focus on functional magnetic resonance imaging (fMRI), as it allows researchers to unravel cognitive processes in high detail. Our framework offers a detailed, multi-modal view on program comprehension that allows us to examine even small effects. Second, we shed light on the underlying cognitive process of program comprehension by applying our experiment framework. One major focus is to understand experienced programmers' efficient top-down comprehension. We also link programmers' cognition to common code complexity metrics. Method and Results: To fulfill our goals, we conduct a series of empirical studies on program comprehension. In these studies, we use and combine fMRI, psycho-physiological, and eye-tracking measures. Throughout the experiments, we develop and refine a multi-modal experiment framework to shed light onto program comprehension with a neuro-cognitive perspective. We demonstrate that the framework provides a reliable approach to quantify and to investigate programmers' cognitive processes. We explore the neuro-cognitive perspective of program comprehension to validate and extend established program-comprehension models. We show that programmers using top-down comprehension require less cognitive effort, but use the same network of brain areas. We also demonstrate how our developed experiment framework and fMRI as a measure can be used in software engineering to provide objective data in long-standing debates. For example, we show that commonly used, but criticized code complexity metrics indeed only have a limited predictive power on the required cognitive effort to understand source code. Conclusion: In our interdisciplinary research, we show how neuroimaging methods, such as fMRI, in combination with psycho-physiological, eye tracking and behavioral measures, is beneficial to software-engineering research. This dissertation provides a foundation to further investigate the neuro-cognitive perspective to programmers' brains, which is a critical contribution to the future of software engineering. / Hintergrund: Software ist ein fester Bestandteil der heutigen Welt mit einer immer wichtiger werdenden Bedeutung. Das moderne Leben ist infolgedessen zunehmend von funktionierender und möglichst fehlerfreier Software abhängig. Deshalb ist die Pflege aller Software-Artefakte eine wichtige und große Herausforderung für das Software-Engineering. Eine Zukunft mit robuster Software hängt in erster Linie von der Fähigkeit ab, den vorhandenen Quellcode zu verstehen, da damit die meiste Zeit verbracht wird. Programmverständnis ist der kognitive Prozess des Verstehens von Quellcode. Da dieser kognitive Prozess intern abläuft, ist ein zuverlässiges Beobachten und ein genaues Messen mit erheblichen Schwierigkeiten verbunden. Jahrzehntelange Forschung hat zwar grundlegende Modelle des Programmverständnisses entwickelt, aber das Bild von Programmverständnis weist noch immer erhebliche Wissenslücken auf. Neuartige psychophysiologische und nicht-invasive human-bildgebende Verfahren bieten zusätzliche Perspektiven auf das Programmverständnis, die neue Erkenntnisse versprechen. In den letzten Jahren haben diese Erfassungsmöglichkeiten die Software-Engineering-Forschung durchdrungen. Zu den Messverfahren gehören Eyetracking und physiologische Sensoren, aber auch nicht-invasive Human-Bildgebung, wie die funktionelle Magnetresonanztomographie (fMRT). Diese innovativen Messverfahren ermöglichen es Forschenden, kognitive Prozesse objektiver und genauer zu verfolgen und auszuwerten. Ziele: Diese Dissertation zielt darauf ab, Software-Engineering durch ein besseres Erfassen des Programmverständnisses voranzubringen. Dafür werden psychophysiologische und nicht-invasive human-bildgebende Verfahren angewendet und verfeinert. Es werden zwei Ziele verfolgt: Zum einen wird ein Framework für Experimente zum Programmverständnis, die mit Human-Bildgebung, Psychophysiologie, Eyetracking und Verhaltensmethoden durchgeführt werden, entwickelt. Bei der Human-Bildgebung erfolgt die Konzentration auf die funktionelle Magnetresonanztomographie (fMRT), da sie kognitive Prozesse mit hoher Detailschärfe entschlüsseln kann. Das entwickelte Framework bietet eine detaillierte, multimodale Sicht auf das Programmverständnis, die es ermöglicht, auch kleine Effekte zu untersuchen. Zum anderen wird der zugrunde liegende kognitive Prozess des Programmverständnisses durch den Einsatz des aufgestellten Frameworks analysiert. Ein Hauptaugenmerk liegt dabei auf dem Erfassen des effizienten Top-Down-Verstehens von Quellcode. Zusätzlich wird die Kognition beim Programmieren mit gängigen Komplexitätsmetriken von Quellcode verknüpft und im Zusammenhang ausgewertet. Methodik und Ergebnisse: Um die Ziele zu erreichen, werden eine Reihe empirischer Studien zum Programmverständnis durchgeführt. In diesen Studien werden fMRT, Psychophysiologie sowie Eyetracking verwendet und miteinander kombiniert. Während der Experimente erfolgt eine Entwicklung und Verfeinerung eines multimodalen Experimentframework, um das Programmverständnis mit einer neurokognitiven Perspektive zu beleuchten. Es wird dokumentiert, dass das entwickelte Framework einen zuverlässigen Ansatz bietet, um kognitive Prozesse beim Programmieren zu quantifizieren und zu untersuchen. Weiterhin wird die neurokognitive Perspektive des Programmverständnisses erforscht, um etablierte Programmverständnismodelle zu validieren und zu erweitern. Im Kontext dessen wird belegt, dass das Top-Down-Verständnis das gleiche Netzwerk von Gehirnbereichen aktiviert, aber zu geringerer kognitiver Last führt. Es wird demonstriert, wie das entwickelte Experimentframework und fMRT als Messverfahren im Software-Engineering verwendet werden können, um in langjährigen Debatten objektive Daten zu bieten. Dabei wird insbesondere gezeigt, weshalb gängige, aber in Frage gestellte Komplexitätsmetriken von Quellcode tatsächlich nur eine begrenzte Vorhersagekraft auf die erforderliche kognitive Last beim Verstehen von Quellcode haben. Schlussfolgerung: In interdisziplinärer Forschung wird nachgewiesen, dass nicht-invasive human-bildgebende Verfahren wie die fMRT, kombiniert mit Psychophysiologie, Eyetracking sowie Verhaltensmethoden für die Software-Engineering-Forschung von erheblichem Vorteil sind. Diese Dissertation bietet eine belastbare Grundlage für die weitere Untersuchung der neurokognitiven Perspektive auf das Gehirn von Programmierern. Damit wird ein entscheidender Beitrag für ein erfolgreiches Software-Engineering geleistet.
34

Visual Enhancements for Code Examples to Support the Knowledge Exchange Between Programmers

Wendt, Maximilian January 2016 (has links)
Software development is an endless problem-solving activity and programmers regularly use online media channels to ask each other for advice. In particular, socially enabled media channels like the question & answer website Stack Overflow changed how programmers communicate and coordinate, and how they produce and consume content on the Web. Nowadays, a vast body of software development knowledge is documented in form of code examples. But acquiring the knowledge by reading code and logically reason about how they work makes non-trivial examples hard to understand. The aim of this work is to develop visual enhancements that support programmers in the knowledge exchange with code examples. Through a design science research approach using interaction design methods visualizations were developed and evaluated that allow programmers to see the execution and simultaneously inspect the state in order to gain a better understanding of how the underlying system of the code example works. Professional programmers participated in a workshop and found the visualizations to be helpful in the comprehension process.
35

An empirical study of the impact of two antipatterns on program comprehension

Abbes, Marwen 11 1900 (has links)
Les antipatrons sont de “mauvaises” solutions à des problèmes récurrents de conception logicielle. Leur apparition est soit due à de mauvais choix lors de la phase de conception soit à des altérations et des changements continus durant l’implantation des programmes. Dans la littérature, il est généralement admis que les antipatrons rendent la compréhension des programmes plus difficile. Cependant, peu d’études empiriques ont été menées pour vérifier l’impact des antipatrons sur la compréhension. Dans le cadre de ce travail de maîtrise, nous avons conçu et mené trois expériences, avec 24 sujets chacune, dans le but de recueillir des données sur la performance des sujets lors de tâches de compréhension et d’évaluer l’impact de l’existence de deux antipatrons, Blob et Spaghetti Code, et de leurs combinaisons sur la compréhension des programmes. Nous avons mesuré les performances des sujets en terme : (1) du TLX (NASA task load index) pour l’éffort ; (2) du temps consacré à l’exécution des tâches ; et, (3) de leurs pourcentages de réponses correctes. Les données recueillies montrent que la présence d’un antipatron ne diminue pas sensiblement la performance des sujets alors que la combinaison de deux antipatrons les entrave de façon significative. Nous concluons que les développeurs peuvent faire face à un seul antipatron, alors que la combinaison de plusieurs antipatrons devrait être évitée, éventuellement par le biais de détection et de réusinage. / Antipatterns are “poor” solutions to recurring design problems which are conjectured in the literature to make object-oriented systems harder to maintain. However, little quantitative evidence exists to support this conjecture. We performed an empirical study to investigate whether the occurrence of antipatterns does indeed affect the understandability of systems by developers during comprehension and maintenance tasks. We designed and conducted three experiments, each with 24 subjects, to collect data on the performance of these subjects on basic tasks related to program comprehension and assess the impact of two antipatterns and their combinations: Blob and Spaghetti Code. We measured the subjects’ performance with: (1) TLX (NASA task load index) for their effort; (2) the time that they spent performing their tasks; and, (3) their percentages of correct answers. The collected data shows that the occurrence of one antipattern does not significantly decrease developers’ performance while the combination of two antipatterns impedes developers significantly. We conclude that developers can cope with one antipattern but that combinations thereof should be avoided possibly through detection and refactorings.
36

Aide à l'analyse de traces d'exécution dans le contexte des microcontrôleurs 32 bits / Assit to execution trace analysis in the microcontrollers 32 bits context

Amiar, Azzeddine 27 November 2013 (has links)
Souvent, dû à l'aspect cyclique des programmes embarqués, les traces de microcontrôleurs contiennent beaucoup de données. De plus, dans notre contexte de travail, pour l'analyse du comportement, une seule trace se terminant sur une défaillance est disponible. L'objectif du travail présenté dans cette thèse est d'aider à l'analyse de trace de microcontrôleurs. La première contribution de cette thèse concerne l'identification de cycles, ainsi que la génération d'une description pertinente de la trace. La détection de cycles repose sur l'identification du loop-header. La description proposée à l'ingénieur est produite en utilisant la compression basée sur la génération d'une grammaire. Cette dernière permet la détection de répétitions dans la trace. La seconde contribution concerne la localisation de faute(s). Elle est basée sur l'analogie entre les exécutions du programme et les cycles. Ainsi, pour aider dans l'analyse de la trace, nous avons adapté des techniques de localisation de faute(s) basée sur l'utilisation de spectres. Nous avons aussi défini un processus de filtrage permettant de réduire le nombre de cycles à utiliser pour la localisation de faute(s). Notre troisième contribution concerne l'aide à l'analyse des cas où les multiples cycles d'une même exécution interagissent entre eux. Ainsi, pour faire de la localisation de faute(s) pour ce type de cas, nous nous intéressons à la recherche de règles d'association. Le groupement des cycles en deux ensembles (cycles suspects et cycles corrects) pour la recherche de règles d'association, permet de définir les comportements jugés correctes et ceux jugés comme suspects. Ainsi, pour la localisation de faute(s), nous proposons à l'ingénieur un diagnostic basé sur l'analyse des règles d'association selon leurs degrés de suspicion. Cette thèse présente également les évaluations menées, permettant de mesurer l'efficacité de chacune des contributions discutées, et notre outil CoMET. Les résultats de ces évaluations montrent l'efficacité de notre travail d'aide à l'analyse de traces de microcontrôleurs. / The microcontroller traces contain a huge amount of information. This is mainly due to the cyclic aspect of embedded programs. In addition, in our context, a single trace that ends at the failure is used to analyze the behavior of the microcontroller . The work presented in this thesis aims to assit in analysis of microcontroller traces. The first contribution of this thesis concerns the identification of cycles and the generation of a relevant description of the trace. The detection of cycles is based on the identification of the loop-header. The description of the trace is generated using Grammar-Based Compression, which allows the detection of repetitions in the trace. The second contribution concerns the fault localization. Our approach is based on the analogy between executions and cycles. Thus, this contribution is an adaptation of some spectrum-based fault localization techniques. This second contribution also defines a filtering process, which aims to reduce the number of cycles used by the fault localization. The third contribution considers that the multiple cycles of a same execution can interact together. Our fault localization for this type of cases is based on the use of association rules. Grouping cycles in two sets (suspect cycles and correct cycles), and searching for association rules using those two sets, helps to define the behaviors considered as corrects and those considered as suspects. This thesis presents the experimental evaluations concerning our contributions, and our tool CoMET.
37

An empirical study of the impact of two antipatterns on program comprehension

Abbes, Marwen 11 1900 (has links)
No description available.
38

Multipla loggar för ökad programförståelse : Hur multipla loggar kan bidra till programutveckling och programförståelse / Multiple traces for increased program comprehension : How multiple traces can contribute to software development and program comprehension

Hejderup, Jacob January 2018 (has links)
För att utveckla eller underhålla mjukvara krävs en viss nivå av programförståelse. För att underlätta denna förståelse används olika typer av verktyg. Denna studie fokuserar på två olika verktyg som använder sig av dynamisk analys: enkla och multipla loggar. Studiens syfte är att undersöka om multipla loggar kan bidra till en ökad programförståelse vid programutveckling. Eclipse är en utvecklingsmiljö som används för att visa programmets källkod. Trace Compass är ett verktyg som används för att inspektera loggar. Denna studie utfördes i två moment: experiment och intervjuer. Experimentet bestod av 10 typiska förståelseuppgifter i ett program-utvecklingssammanhang. Efter experimentet utfördes en intervju med samtliga deltagare.  Resultatet av undersökningen blev att multipla loggar skulle kunna vara lämpligare att använda vid problem som var relaterade till två eller fler komponenter i ett system.  En av begränsningarna i denna studie var att studien hade för få deltagare för ett generellt ställningstagande. / To develop or maintain a piece of code requires a certain level of comprehension of the developed or maintained software itself. To achieve this goal the developer uses a set of different tools. This report will focus on two types of debug tools: single trace and multiple traces. The purpose of the study is to examine how multiple traces can contribute to an improved program comprehension. The study was carried out through experiments and interviews. The experiment consisted of 10 typical comprehension tasks in a development context. Eclipse and Trace Compass were used to display the logs. Eclipse is a development environment that shows the source code. Trace Compass is a tool for inspecting traces.  After the experiment, an interview was carried out with the subjects of the experiment. The results of this study indicated that multiple traces could have an advantage over a single trace when the task is to understand the interactions between code components in a software system. One of the limitations of the study was due to the limited number of subjects taken part in the study and cannot be used to draw a more general conclusion.
39

Part-of-Speech Tagging of Source Code Identifiers using Programming Language Context Versus Natural Language Context

AlSuhaibani, Reem Saleh 03 December 2015 (has links)
No description available.
40

Formulation interactive des requêtes pour l’analyse et la compréhension du code source

Jridi, Jamel Eddine 11 1900 (has links)
Nous proposons une approche basée sur la formulation interactive des requêtes. Notre approche sert à faciliter des tâches d’analyse et de compréhension du code source. Dans cette approche, l’analyste utilise un ensemble de filtres de base (linguistique, structurel, quantitatif, et filtre d’interactivité) pour définir des requêtes complexes. Ces requêtes sont construites à l’aide d’un processus interactif et itératif, où des filtres de base sont choisis et exécutés, et leurs résultats sont visualisés, changés et combinés en utilisant des opérateurs prédéfinis. Nous avons évalués notre approche par l’implantation des récentes contributions en détection de défauts de conception ainsi que la localisation de fonctionnalités dans le code. Nos résultats montrent que, en plus d’être générique, notre approche aide à la mise en œuvre des solutions existantes implémentées par des outils automatiques. / We propose an interactive querying approach for program analysis and comprehension tasks. In our approach, an analyst uses a set of basic filters (linguistic, structural, quantitative, and user selection) to define complex queries. These queries are built following an interactive and iterative process where basic filters are selected and executed, and their results displayed, changed, and combined using predefined operators. We evaluated our querying approach by implementing recent state-of-the-art contributions on feature location and design defect detection. Our results show that, in addition to be generic; our approach helps improving existing solutions implemented by fully-automated tools.

Page generated in 0.4704 seconds