TY - CHAP AU - Brunner, Tibor AU - Cserép, Máté AU - Fekete, Anett AU - Mészáros, Mónika AU - Porkoláb, Zoltán ED - Porkoláb, Zoltán ED - Zsók, Viktória TI - Towards Better Tool Support for Code Comprehension T2 - Composability, Comprehensibility and Correctness of Working Software PB - Springer International Publishing CY - Cham SN - 9783031428333 T3 - Lecture Notes in Computer Science, ISSN 0302-9743 ; 11950. PY - 2023 SP - 165 EP - 201 PG - 37 DO - 10.1007/978-3-031-42833-3_6 UR - https://m2.mtmt.hu/api/publication/34205378 ID - 34205378 AB - In software development, bug fixing and feature development requires a thorough understanding of all details and consequences of the planned changes. For long-existing large software systems, the code-base has been developed and maintained for decades by fluctuating teams, thus original intentions are lost, the documentation is untrustworthy or missing. Most times, the only reliable information is the code itself. Source code comprehension of such large software is an essential, but usually very challenging task. The comprehension process and approach of existing systems is fundamentally different from writing new software, and the usual development tools provide poor support in this area. Throughout the years, different tools have been developed with various complexity and feature set for code comprehension but none of them fulfilled all specific requirements yet. In this paper we discuss the most accepted models for code comprehension, the required feature set for tools supporting the comprehension process and the various approaches of existing solutions. We present CodeCompass – an open source LLVM/Clang based tool to help understanding large legacy software systems – in detail to analyse the required interface, possible design choices and implementation considerations. Based on the LLVM/Clang compiler infrastructure, CodeCompass gives exact information on complex C/C++ language elements such as inheritance, overloading, variable usage, possible function pointer and virtual function calls etc. These are all features for which various existing tools provide only partial support. Although CodeCompass supports mainly the C and C++ programming languages, it has a restricted support for Java and Python languages as well, therefore our investigation is language-independent. LA - English DB - MTMT ER - TY - JOUR AU - Gagarin, Andrej P. TI - Monitoring and control of the program comprehension teaching in a computer class environment JF - PERSPEKTIVY NAUKI I OBRAZOVANIA J2 - PERSPEKT NAUKI OBRAZ VL - 61 PY - 2023 IS - 1 SP - 482 EP - 504 PG - 23 SN - 2307-2334 DO - 10.32744/pse.2023.1.29 UR - https://m2.mtmt.hu/api/publication/33693800 ID - 33693800 AB - Introduction. The comprehension of computer programs is claimed to be a decisive faculty and even skill of any successful exercising professional duties of program engineers, for example, prototype analysis, decision making and discussion about algorithms and structures, development of detailed documentation, test development and test analysis. Exercising of the duties demands from the engineer a special competence to judge about a program behavior basing on the consideration of its source and sometimes digital codes, screenshots, execution protocols. The skill and opportunity to make trial runs can supplement but not replace the competence. Manifesting itself on particular programs it is not a presentation of an extensive and deep familiarity with the programs, but results from the experience with a lot of programs and is obscured by another competence, the competence of the developer. This paper is aimed to precise the interpretation of the notion “program comprehension”, to research the opportunities of a purposeful and enhanced teaching the program comprehension, to develop methods and tools for the assessment of the program comprehension teaching in the higher school. The aim is relevant because of current university curricula allot considerable lecture and laboratory time for teaching programming, including program comprehension. But this time is constantly not enough in view of a growing intensity of innovations in the area of the program engineering. The problem of a control over processes of the program comprehension fostering in a computer class is a key problem of achieving the aim having been set. Materials and methods. The research is based on the university syllabi, the author’s lecture notes, protocols of experimental and sample runs of the developed programs, Internet resources, such as site of the ACM and others. The following research methods were used: terminological analysis and elaboration of a vocabulary demanded in the research and discourse within the paper; modelling and simulation, including a theoretical conceptual model representation of the program comprehension, a computer program simulation of the monitoring and control over the comprehension progress; an UMLpresentation and a trial implementation of the proposed interface for the program comprehension monitoring and control. Research results. Redefinition of conceptual cognitive models of program comprehension is proposed. The program comprehension is postulated to be a state of the cognitive knowledge base that represents an actual affordance of giving correct answers to questions about an eventual program behavior. This model highlights a special kind of teaching to be called “didactic parsing” that is targeted to generate at the audience a comprehension of programs being parsed. Dynamics of question and answers during the didactic parsing is used for assessing the education success and, finally, for a control of the teaching tempo. A user interface for learning computer systems (counters, controls and policies) are proposed to assist in monitoring and control of the didactic parsing. Sample implementation of the interface is built in JL (Joint Lesson) computer system. A graph model and a corresponding simulation program are developed that capture relevant dynamic features of control over the didactic parsing and are applied for the further investigation and demonstration of general didactic parsing effects as well as an aid for planning and control of program comprehension teaching during particular lectures. Conclusion. The research results provide creation of an environment, methods and tools enabling to positively impact the processes of program comprehension attainment. In particular, they permit to control the program comprehension level at a particular audience, adjust style of teaching to be most applicable to it, refine time plans of lectures in the area of program engineering. LA - English DB - MTMT ER - TY - CHAP AU - Barros, Djonathan AU - Peldszus, Sven AU - Assunção, Wesley K. G. AU - Berger, Thorsten ED - Eugene, Syriani ED - Houari, Sahraoui TI - Editing support for software languages T2 - MODELS '22: Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems PB - Association for Computing Machinery (ACM) CY - New York, New York SN - 9781450394666 PY - 2022 SP - 232 EP - 243 PG - 12 DO - 10.1145/3550355.3552452 UR - https://m2.mtmt.hu/api/publication/33727987 ID - 33727987 LA - English DB - MTMT ER - TY - JOUR AU - Xu, Hui AU - Chen, Zhuangbin AU - Sun, Mingshen AU - Zhou, Yangfan AU - Lyu, Michael R. TI - Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs JF - ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY J2 - ACM T SOFTW ENG METH VL - 31 PY - 2022 IS - 1 SP - 1 EP - 25 PG - 25 SN - 1049-331X DO - 10.1145/3466642 UR - https://m2.mtmt.hu/api/publication/32295150 ID - 32295150 LA - English DB - MTMT ER - TY - GEN AU - Mraz, Marcel TI - Analysis of Decision Model and Notation tooling in the Visual Studio Code ecosystem PY - 2021 PG - 98 UR - https://m2.mtmt.hu/api/publication/32295226 ID - 32295226 LA - English DB - MTMT ER - TY - GEN AU - Gyén, Attila AU - Pataki, Norbert TI - Format-independent Graph Vizualization with Language Server Protocol PY - 2020 UR - https://m2.mtmt.hu/api/publication/31152686 ID - 31152686 LA - English DB - MTMT ER - TY - JOUR AU - Fekete, Anett AU - Porkoláb, Zoltán TI - A comprehensive review on software comprehension models JF - ANNALES MATHEMATICAE ET INFORMATICAE J2 - ANN MATH INFORM VL - 51 PY - 2020 SP - 103 EP - 111 PG - 9 SN - 1787-5021 DO - 10.33039/ami.2020.07.007 UR - https://m2.mtmt.hu/api/publication/31393725 ID - 31393725 LA - English DB - MTMT ER - TY - JOUR AU - Fülöp, Endre AU - Pataki, Norbert TI - A DSL for Resource Checking Using Finite State Automaton-Driven Symbolic Execution JF - OPEN COMPUTER SCIENCE J2 - OPEN COMPUTER SCIENCE VL - 11 PY - 2020 IS - 1 SP - 107 EP - 115 PG - 9 SN - 2299-1093 DO - 10.1515/comp-2020-0120 UR - https://m2.mtmt.hu/api/publication/31787944 ID - 31787944 N1 - 3in(EFOP-3.6.2-16-2017-00013) Támogató: EFOP Innovatív Informatikai és Infokommunikációs Megoldásokat Megalapozó Tematikus Kutatási Együttműködések LA - English DB - MTMT ER - TY - CONF AU - Cserép, Máté AU - Fekete, Anett ED - Kovásznai, Gergely ED - Fazekas, István ED - Tómács, Tibor TI - Integration of Incremental Build Systems Into Software Comprehension Tools T2 - Proceedings of the 11th International Conference on Applied Informatics (ICAI 2020) PB - CEUR Workshop Proceedings C1 - Eger T3 - CEUR Workshop Proceedings, ISSN 1613-0073 ; 2650. PY - 2020 SP - 85 EP - 93 PG - 9 UR - https://m2.mtmt.hu/api/publication/31397211 ID - 31397211 AB - Standalone code comprehension tools and similar features of integrated development environments (IDE) both aim to support the development and the maintenance of large (legacy) software. When applied to actively developed projects, it is essential to process the most recent revision of the source code in real time. Since a complete analysis of the codebase might take up significant time (even hours), the inclusion of incremental parsing is indispensable. However, the utilized build system of a software project is tightly coupled with the source code: over the time not only the content of the source files can be amended, but translation units can be added or removed and the parameters of the existing build instructions might also change. This paper intends to describe how the incremental update of the build system of a software facilitates the maintenance of the software workspace database in a code comprehension tool by completing the workflow of incremental parsing. We describe why including the build system in incremental parsing is relevant as well as the actual method of parsing build commands. We show that updating the build system is more cost-effective to a ratio than disposing of the existing build command database. The paper also compares the incremental parsing of build systems to that of actual source code. LA - English DB - MTMT ER -