• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 5
  • 1
  • 1
  • Tagged with
  • 8
  • 8
  • 5
  • 4
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 1
  • 1
  • 1
  • 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.
1

Functionality Based Refactoring: Improving Source Code Comprehension

Beiko, Jeffrey Lee 27 September 2007 (has links)
Thesis (Master, Computing) -- Queen's University, 2007-09-25 12:38:48.455 / Software maintenance is the lifecycle activity that consumes the greatest amount of resources. Maintenance is a difficult task because of the size of software systems. Much of the time spent on maintenance is spent trying to understand source code. Refactoring offers a way to improve source code design and quality. We present an approach to refactoring that is based on the functionality of source code. Sets of heuristics are captured as patterns of source code. Refactoring opportunities are located using these patterns, and dependencies are verified to check if the located refactorings preserve the dependencies in the source code. Our automated tool performs the functional-based refactoring opportunities detection process, verifies dependencies, and performs the refactorings that preserve dependencies. These refactorings transform the source code into a series of functional regions of code, which makes it easier for developers to locate code they are searching for. This also creates a chunked structure in the source code, which helps with bottom-up program comprehension. Thus, this process reduces the amount of time required for maintenance by reducing the amount of time spent on program comprehension. We perform case studies to demonstrate the effectiveness of our automated approach on two open source applications. / Master
2

Functionality based refactoring : improving source code comprehension

Beiko, Jeffrey Lee 02 January 2008 (has links)
Software maintenance is the lifecycle activity that consumes the greatest amount of resources. Maintenance is a difficult task because of the size of software systems. Much of the time spent on maintenance is spent trying to understand source code. Refactoring offers a way to improve source code design and quality. We present an approach to refactoring that is based on the functionality of source code. Sets of heuristics are captured as patterns of source code. Refactoring opportunities are located using these patterns, and dependencies are verified to check if the located refactorings preserve the dependencies in the source code. Our automated tool performs the functional-based refactoring opportunities detection process, verifies dependencies, and performs the refactorings that preserve dependencies. These refactorings transform the source code into a series of functional regions of code, which makes it easier for developers to locate code they are searching for. This also creates a chunked structure in the source code, which helps with bottom-up program comprehension. Thus, this process reduces the amount of time required for maintenance by reducing the amount of time spent on program comprehension. We perform case studies to demonstrate the effectiveness of our automated approach on two open source applications. / Thesis (Master, Computing) -- Queen's University, 2007-10-05 12:48:56.977
3

Clean Code vs Dirty Code : Ett fältexperiment för att förklara hur Clean Code påverkar kodförståelse / Clean Code vs Dirty Code

Hagman, Tobias January 2015 (has links)
Stora och komplexa kodbaser med bristfällig kodförståelse är ett problem som blir allt vanligare bland företag idag. Bristfällig kodförståelse resulterar i längre tidsåtgång vid underhåll och modifiering av koden, vilket för ett företag leder till ökade kostnader. Clean Code anses enligt somliga vara lösningen på detta problem. Clean Code är en samling riktlinjer och principer för hur man skriver kod som är enkel att förstå och underhålla. Ett kunskapsglapp identifierades vad gäller empirisk data som undersöker Clean Codes påverkan på kodförståelse. Studiens frågeställning var: Hur påverkas förståelsen vid modifiering av kod som är refaktoriserad enligt Clean Code principerna för namngivning och att skriva funktioner? För att undersöka hur Clean Code påverkar kodförståelsen utfördes ett fältexperiment tillsammans med företaget CGM Lab Scandinavia i Borlänge, där data om tidsåtgång och upplevd förståelse hos testdeltagare samlades in och analyserades. Studiens resultat visar ingen tydlig förbättring eller försämring av kodförståelsen då endast den upplevda kodförståelsen verkar påverkas. Alla testdeltagare föredrar Clean Code framför Dirty Code även om tidsåtgången inte påverkas. Detta leder fram till slutsatsen att Clean Codes effekter kanske inte är omedelbara då utvecklare inte hunnit anpassa sig till Clean Code, och därför inte kan utnyttja det till fullo. Studien ger en fingervisning om Clean Codes potential att förbättra kodförståelsen. / Summary: Big and complex codebases with inadequate understandability, is a problem which is becoming more common among companies today. Inadequate understandability leads to bigger time requirements when maintaining code, which means increased costs for a company. Clean Code is according to some people the solution to this problem. Clean Code is a collection of guidelines and principles for how to write code which is easy to understand and maintain. A gap of knowledge was identified, as there is little empirical data that investigates how Clean Code affects understandability. This lead to the following the question: How is the understandability affected when modifying source code which has been refactored according to the Clean Code principles regarding names and functions? In order to investigate how Clean Code affects understandability, a field experiment was conducted in collaboration with the company CGM Lab Scandinavia in Borlänge. In the field experiment data in the form of time and experienced understandability was collected and analyzed.The result of this study doesn’t show any clear signs of immediate improvements or worsening when it comes to understandability. This is because even though all participants prefer Clean Code, this doesn’t show in the measured time of the experiment. This leads me to the conclusion that the effects of Clean Code aren’t immediate, since developers hasn’t been able to adapt to Clean Code, and therefore are not able to utilize its benefits properly. This study gives a hint of the potential Clean Code has to improve understandability
4

Automatic Web widgets prediction for Web 2.0 access technologies

Chen, Alex Qiang January 2013 (has links)
The World Wide Web (Web) has evolved from a collection of static pages that need reloading every time the content changes, into dynamic pages where parts of the page updates independently, without reloading it. As such, users are required to work with dynamic pages with components that react to events either from human interaction or machine automation. Often elderly and visually impaired users are the most disadvantaged when dealing with this form of interaction. Operating widgets require the user to have the conceptual design knowledge of the widget to complete the task. Users must have prior experience with the widget or have to learn to operate it independently, because often no user documentation is available. An automated Widget Prediction Framework (WPF) is proposed to address the issues discussed. It is a pre-emptive approach that predicts different types of widget and their locations in the page. Widgets with similar characteristics and functionalities are categorised based on a definition provided by widget design pattern libraries. Some design patterns are more loosely defined than others, and this causes confusion and ambiguity when identifying them. A formal method to model widgets based on a Widget Ontology was developed. The paradigm of the ontology provides a framework for developers to communicate their ideas, while reducing ambiguity between different types of widget. A Widget Prediction System (WPS) was developed using the concepts of the WPF. To select the types of widget for WPS evaluation, a widget popularity investigation was conducted. Seven of the most popular widgets from the investigation, done across fifty Websites, were selected. To demonstrate how WPF can be applied to predict widgets, fifty websites were used to evaluate the feasibility of the approach using WPS. On average, WPS achieved 61.98% prediction accuracy with two of the widgets > 84% accuracy. These results demonstrated the feasibility of the framework as the backend for tools that support elderly or visually impaired users.
5

Eyes on the code : Visual processing of computer code tracked with standard webcams

Thilderkvist, Eva January 2021 (has links)
Eye tracking is an increasingly more popular research method in software engineering and can be used to study how programmers process and comprehend source code. This study investigated the possibility to perform such studies remotely with the use of eye-tracking algorithms and consumer grade webcams. A practical experiment was set up to remotely gather gaze-data from programmers. Several processing steps were applied to the gaze-data to establish the adequacy of the procedure. Two main problems with the webcam eye-tracking technology were found. The first was the lack of a fixation detection algorithm developed specifically for low frequency webcam data. This makes isolation of eye-movements more difficult and the results possibly unreliable. The second was the lack of support for dealing with head movements when predicting the gaze-position. Online experiments are unsupervised and there is no guarantee a subject will keep their head still even if instructed to do so. This was thought to be the reason behind spatial shifts observed within the collected datasets. Positive trends in the data were also identified. Like the consistent dispersions of gaze-points, and certain recognisable reading trends. While deemed unsuited for the task. Ultimately, the positive trends provided optimism for the technology to be usable to study code reading in the future.
6

The Effect of Supporting AbbreviationResolution inCode Visualization Tools on CodeComprehension

Englsperger Raswill, Sven, Byström, Anton January 2023 (has links)
Code comprehension is crucial for software development, as it ensures that code is easy to read andunderstand.Identifiers, such as variable-, function-, and methodnames playa significant role in code comprehension, and it isimportantthat they are written using meaningful names so thateveryone understands their usage. However, sometimes theycontainabbreviations that can have significantly differentexplanationsdepending on the context they are written in, which couldnegatively impact comprehension if the context is notfully known.Large code bases can be hard to navigate but with thehelp ofCode Visualization Tool (CVT) they can provide anoverviewthat helpfully displays the program’s flow and call graphs.Tohelp with abbreviations in large code bases this studywasconducted to investigate the use of Abbreviation Resolver(AR)techniques integrated into a CVT called Doxygen to seethe effecton identifier comprehension. A survey was performed ontwoopen-source projects with questions about thecomprehensionof different methods using their identifiers with bothresolvedidentifiers and abbreviated identifiers. The survey utilizedAR toanalyze participant ́s understanding of abbreviations todetermine it ́s usefulness. The findings suggest that the use ofa CVTwith an integrated AR helps in understanding uncommonanddomain-knowledge abbreviations which contribute toimprovedcode comprehension.
7

Investigating topic modeling techniques for historical feature location.

Schulte, Lukas January 2021 (has links)
Software maintenance and the understanding of where in the source code features are implemented are two strongly coupled tasks that make up a large portion of the effort spent on developing applications. The concept of feature location investigated in this thesis can serve as a supporting factor in those tasks as it facilitates the automation of otherwise manual searches for source code artifacts. Challenges in this subject area include the aggregation and composition of a training corpus from historical codebase data for models as well as the integration and optimization of qualified topic modeling techniques. Building up on previous research, this thesis provides a comparison of two different techniques and introduces a toolkit that can be used to reproduce and extend on the results discussed. Specifically, in this thesis a changeset-based approach to feature location is pursued and applied to a large open-source Java project. The project is used to optimize and evaluate the performance of Latent Dirichlet Allocation models and Pachinko Allocation models, as well as to compare the accuracy of the two models with each other. As discussed at the end of the thesis, the results do not indicate a clear favorite between the models. Instead, the outcome of the comparison depends on the metric and viewpoint from which it is assessed.
8

CRISTA : um apoio computacional para atividades de inspeção e compreensão de código

Porto, Daniel de Paula 18 May 2009 (has links)
Made available in DSpace on 2016-06-02T19:05:38Z (GMT). No. of bitstreams: 1 2434.pdf: 10415904 bytes, checksum: cf49390a38715c53ffe39e9881ed117c (MD5) Previous issue date: 2009-05-18 / Financiadora de Estudos e Projetos / Software inspection is a key activity of software quality assurance that can be applied in the whole development process since it is a static activity essentially based on reading. Depending on the artifact that is being inspected, we need to apply the appropriated reading technique. Stepwise Abstraction (SA) is a reading technique commonly used in code inspections. However, its application is laborious and time consuming. Aiming to help and facilitate the application of SA, this work presents CRISTA (Code Reading Implemented with Stepwise Abstraction), a tool to support SA-based inspection processes. This tool uses a visual metaphor to facilitate code navigation and has several resources to help program understanding and documentation. Due to these resources, CRISTA is also helpful for reverse engineering, re-engineering and maintenance activities. Three experimental studies were carried out to get feedback on the tool usability and usefulness for inspections and maintenance activities. The results provide insights that CRISTA is easy to use and adequately supports the inspection process as well as code reading by Stepwise Abstraction. Besides, in the context of maintenance, its resources make this activity less time-consuming. / Inspeção de software é uma atividade chave de garantia de qualidade de software que pode ser aplicada durante todo o processo de desenvolvimento uma vez que é uma atividade estática, baseada essencialmente em técnica de leitura. Dependendo do artefato inspecionado, é preciso aplicar a técnica apropriada. No caso de inspeção de código uma técnica comumente utilizada é a Stepwise Abstraction (SA). No entanto, sua aplicação é trabalhosa e consome muito tempo. Com o objetivo de auxiliar e facilitar a aplicação da SA, este trabalho apresenta a CRISTA (Code Reading Implemented with Stepwise Abstraction), uma ferramenta que apóia o processo de inspeção baseado em SA. Essa ferramenta usa uma metáfora visual para facilitar a navegação pelo código e possui vários recursos que ajudam na compreensão do código e em sua documentação. Devido a esses recursos, a CRISTA também auxilia nas atividades de engenharia reversa, re-engenharia e manutenção. Foram realizados três estudos experimentais com o objetivo de se obter uma realimentação sobre a usabilidade e a utilidade da ferramenta em atividades de inspeção e manutenção. Os resultados fornecem evidências de que a CRISTA é fácil de ser utilizada e apóia adequadamente o processo de inspeção, bem como a leitura de código utilizando a Stepwise Abstraction. Além disso, no contexto de manutenção, os recursos da ferramenta ajudam a diminuir o tempo dessa atividade.

Page generated in 0.1057 seconds