PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation

Detalhes bibliográficos
Autor(a) principal: Lopes, José Miguel Faustino
Data de Publicação: 2023
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10071/29554
Resumo: 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.
id RCAP_5ea6dbb4628b1985b0f67caec0b18af1
oai_identifier_str oai:repositorio.iscte-iul.pt:10071/29554
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentationProjectional editorSeparation of concernsDocumentação -- DocumentationJavaEditor projecionalSeparação de conceitosConventionally, 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.2023-11-13T12:18:29Z2023-10-20T00:00:00Z2023-10-202023-10info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10071/29554TID:203378504engLopes, José Miguel Faustinoinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-19T01:17:12Zoai:repositorio.iscte-iul.pt:10071/29554Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T22:54:04.352121Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
title PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
spellingShingle PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
Lopes, José Miguel Faustino
Projectional editor
Separation of concerns
Documentação -- Documentation
Java
Editor projecional
Separação de conceitos
title_short PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
title_full PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
title_fullStr PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
title_full_unstemmed PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
title_sort PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation
author Lopes, José Miguel Faustino
author_facet Lopes, José Miguel Faustino
author_role author
dc.contributor.author.fl_str_mv Lopes, José Miguel Faustino
dc.subject.por.fl_str_mv Projectional editor
Separation of concerns
Documentação -- Documentation
Java
Editor projecional
Separação de conceitos
topic Projectional editor
Separation of concerns
Documentação -- Documentation
Java
Editor projecional
Separação de conceitos
description 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.
publishDate 2023
dc.date.none.fl_str_mv 2023-11-13T12:18:29Z
2023-10-20T00:00:00Z
2023-10-20
2023-10
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10071/29554
TID:203378504
url http://hdl.handle.net/10071/29554
identifier_str_mv TID:203378504
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799135138939928576