Please use this identifier to cite or link to this item:
http://hdl.handle.net/10071/29554
Author(s): | Lopes, José Miguel Faustino |
Advisor: | Santos, André Leal |
Date: | 20-Oct-2023 |
Title: | PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation |
Reference: | Lopes, J. M. F. (2023). PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation [Dissertação de mestrado, Iscte - Instituto Universitário de Lisboa]. Repositório Iscte. http://hdl.handle.net/10071/29554 |
Keywords: | Projectional editor Separation of concerns Documentação -- Documentation Java Editor projecional Separação de conceitos |
Abstract: | Conventionally, source code is simultaneously a storage and editing representation, through files and
editors to manipulate them as text. Over the years, IDEs have become increasingly sophisticated,
providing features to augment the visible text content with helpful information (e.g., overlay
documentation popups, inlay type hints), or on the opposite, to decrease it to reduce clutter (e.g., code
folding on documentation, methods, etc.). This is a sign that developers seek more convenient code
editing forms than the direct manipulation of text files.
We conducted an empirical study that seeks to motivate the design of an editor which enhances
code and documentation navigation and editing, beyond source file manipulation. The study addresses
code structure, namely method interaction, such as number of methods called and depth of call graph.
We also measured the amount of documentation present in source files, quantifying the amount of
clutter documentation causes while coding.
We present PescaJ, a prototype projectional editor for Java projects that breaks away from fileoriented
source code editing, providing the possibility of forming views that aggregate methods that
belong to different classes, where single methods may be simultaneously present and edited in
multiple views. It features automatic code fragment placement, juxtaposing them according to their
interactions in the code. Furthermore, PescaJ provides documentation editors, also aggregating
scattered Javadoc comments. The specialized documentation views reduce clutter and relieve the user
of syntax, while separating the task of writing code and its documentation, separating the two
technical concerns, that may lower cognitive strain on the user. Convencionalmente, código fonte, incluindo documentação, é simultaneamente uma representação de armazenamento e edição, através de ficheiros e editores que os manipulam como texto. Ao longo dos anos, os IDEs tornaram-se mais sofisticados, fornecendo funcionalidades que adicionam informação útil ao texto base (e.g., inlay type hints), por outro lado, procuram a diminuição de informação irrelevante, reduzindo clutter (e.g., code folding). Estas tendências são um sinal que os utilizadores procuram maneiras mais convenientes de editar código em relação à manipulação direta de texto. Elaboramos um estudo focado em motivar o design de um editor com capacidades de navegação e edição de código e documentação superiores à manipulação de ficheiros. Este estudo aborda estruturas de código, nomeadamente interações entre métodos, como número de métodos chamados. Também foi medida a quantidade de documentação, quantificando o impacto de clutter que a documentação causa na escrita de código. Apresentamos o PescaJ, um protótipo de editor projecional para projetos Java que diverge da edição de código orientada ao ficheiro fonte, possibilitando a criação de vistas que agregam métodos que pertencem a classes distintas, estes podem estar presentes e ser editados em múltiplas vistas. O editor coloca automaticamente os fragmentos de código na interface, justapondo os mesmos em função das relações que estes apresentam no código. Para além disto, a ferramenta oferece vistas de documentação, agregando comentários Javadoc normalmente espalhados pelos ficheiros. Estas reduzem clutter e aliviam o utilizador da sintaxe, também separando as tarefas de escrita de código e documentação, podendo reduzir o impacto cognitivo no utilizador. |
Department: | Departamento de Ciências e Tecnologias da Informação |
Degree: | Mestrado em Engenharia Informática |
Peerreviewed: | yes |
Access type: | Open Access |
Appears in Collections: | T&D-DM - Dissertações de mestrado |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
master_jose_faustino_lopes.pdf | 3,71 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.