29 results on '"Software Understanding"'
Search Results
2. Web Application to Support the Learning of Programming Through the Graphic Visualization of Programs.
- Author
-
Jaimez-González, Carlos R. and Castillo-Cortes, Miguel
- Subjects
WEB-based user interfaces ,WEB development ,VISUALIZATION ,PROGRAMMING languages - Abstract
This paper presents a web application to support the learning of programming at the undergraduate level, which allows students to graphically visualize through animations the execution of programs written in the Java programming language. The web application supports the understanding of programs and the basic concepts of programming, such as declaration of variables, assignment of values to variables, use of control structures, and calls to functions with parameters. The development of the web application, its architecture and the three systems that compose it are presented: data collection, processing and representation. The operation of the web application is shown through three programs, for which their execution is visualized graphically. [ABSTRACT FROM AUTHOR]
- Published
- 2020
- Full Text
- View/download PDF
3. MOPISDE: A collaborative multi-objective information-sharing DE algorithm for software clustering.
- Author
-
Kang, Yan, Xie, Wentao, Wang, Xiaopeng, Wang, Haining, Wang, Xinchao, and Li, Jinyuan
- Subjects
- *
DIFFERENTIAL evolution , *COMPUTER software quality control , *SOFTWARE architecture , *ALGORITHMS , *SOURCE code , *SOFTWARE engineers - Abstract
The software module clustering problem (SMCP) aims to improve the internal quality of software while helping software engineers understand the system architecture and facilitating software system maintenance. However, most current methods ignore modular stability in software evolution and the topological properties of the software architecture and hence obtain decompositions much worse than the expert. Therefore, we propose a collaborative multi-objective information-sharing differential evolution (MOPISDE) algorithm for SMCP with global stability and path complexity as two new objective functions. Specifically, two new concepts are defined for SMCP as two objectives of populations and modular quality (MQ) as an objective of the third population. Population-sharing technology is designed to collaboratively exchange information among different populations to address the lack of diversity in a single population. An information-sharing three-stage differential evolution strategy is presented to reduce the search space and improve search performance by sharing good substructures among elite individuals. New mutation strategies are proposed to utilize the different substructures between two random individuals as a new community to further improve the search performance. Experiments on various projects demonstrate the superiority of the proposed algorithm. The proposed method not only has fast convergence but also provides stable and accurate modularity that is somewhat closer to expert decomposition than that of other methods. • We propose two key concepts in the software module clustering problem (SMCP). • We design a collaborative multi-objective information-sharing DE algorithm based on the new concepts for SMCP. • The experiment results of our method are significantly better than the SOTA methods. • We provide the source code of our proposed method and the datasets used. [ABSTRACT FROM AUTHOR]
- Published
- 2023
- Full Text
- View/download PDF
4. Interactive Explanation of Software Systems
- Author
-
Johnson, W. Lewis, Erdem, Ali, Setliff, Dorothy, editor, and Reubenstein, Howard, editor
- Published
- 1997
- Full Text
- View/download PDF
5. Understanding Interleaved Code
- Author
-
Rugaber, Spencer, Stirewalt, Kurt, Wills, Linda M., Wills, Linda, editor, and Newcomb, Philip, editor
- Published
- 1996
- Full Text
- View/download PDF
6. Weighing lexical information for software clustering in the context of architecture recovery.
- Author
-
Corazza, Anna, Martino, Sergio, Maggio, Valerio, and Scanniello, Giuseppe
- Subjects
LEXEME ,SOURCE code ,SOFTWARE maintenance ,SOFTWARE engineers ,SOFTWARE architecture - Abstract
In this paper, we present a software clustering approach that leverages the information conveyed by the zone in which each lexeme appears in the classes of object oriented systems. We define six zones in the source code: Class Name, Attribute Name, Method Name, Parameter Name, Comment, and Source Code Statement. These zones may convey information with different levels of relevance, and so their contribution should be differently weighed according to the software system under study. To this aim, we define a probabilistic model of the lexemes distribution whose parameters are automatically estimated by the Expectation-Maximization algorithm. The weights of the zones are then exploited to compute similarities among source code classes, which are then grouped by a k-Medoid clustering algorithm. To assess the validity of our solution in the software architecture recovery field, we applied our approach to 19 software systems from different application domains. We observed that the use of our probabilistic model and the defined zones improves the quality of clustering results so that they are close to a theoretical upper bound we have proved. [ABSTRACT FROM AUTHOR]
- Published
- 2016
- Full Text
- View/download PDF
7. Generative software complexity and software understanding.
- Author
-
Heering, Jan
- Subjects
- *
COMPUTER software development , *COMPUTER software research , *SOFTWARE engineering , *COMPUTER programming , *PROGRAMMING languages - Abstract
Taking generative software development as our point of departure, we introduce generative software complexity as a measure for quantifying the structural complexity of software. After explaining that it is the same as Kolmogorov complexity, we discuss its merits from the viewpoint of software understanding. The results obtained are in many ways unsatisfactory, but sufficiently intriguing to warrant further work. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
8. Understanding software through linguistic abstraction.
- Author
-
Visser, Eelco
- Subjects
- *
PROGRAMMING languages , *COMPUTER software development , *COMPUTER programming , *APPLICATION software , *COMPUTER software - Abstract
In this essay, I argue that linguistic abstraction should be used systematically as a tool to capture our emerging understanding of domains of computation. Moreover, to enable that systematic application, we need to capture our understanding of the domain of linguistic abstraction itself in higher-level meta languages. The argument is illustrated with examples from the SDF, Stratego, Spoofax, and WebDSL projects in which I explore these ideas. [ABSTRACT FROM AUTHOR]
- Published
- 2015
- Full Text
- View/download PDF
9. Hypothesis-driven understanding processes during corrective maintenance of large scale software.
- Author
-
von Mayrhauser, A. and Vans, A.M.
- Abstract
This paper reports on an empirical strategy of software understanding during corrective maintenance of large-scale software with professional maintenance programmers. Hypotheses are key drivers in program understanding and influence the direction program understanding can take. This paper reports on the types of hypotheses programmers make, how they resolve them, and the strategies and comprehension processes they tend to use [ABSTRACT FROM PUBLISHER]
- Published
- 1997
- Full Text
- View/download PDF
10. A survey and evaluation of tool features for understanding reverse-engineered sequence diagrams.
- Author
-
Bennett, C., Myers, D., Storey, M. -A., German, D. M., Ouellet, D., Salois, M., and Charland, P.
- Subjects
- *
REVERSE engineering , *GRAPHIC methods software , *COMPUTER software development , *SURVEYS , *TOOLS , *COMMUNICATIONS software , *SOFTWARE engineering , *COMPUTER software - Abstract
Sequence diagrams can be valuable aids to software understanding. However, they can be extremely large and hard to understand in spite of using modern tool support. Consequently, providing the right set of tool features is important if the tools are to help rather than hinder the user. This paper surveys research and commercial sequence diagram tools to determine the features they provide to support program understanding. Although there has been significant effort in developing these tools, many of them have not been evaluated using human subjects. To begin to address this gap, a preliminary study was performed with a specially designed sequence diagram tool that implements the features found during the survey. On the basis of an analysis of the study results, we discuss the features that were found to be useful and relate these to the tasks performed. It concludes by proposing how future tools can be improved to better support the exploration of large sequence diagrams. Copyright © 2008 Crown in the right of Canada. Published by John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
- Published
- 2008
- Full Text
- View/download PDF
11. SUPPORTING SOFTWARE UNDERSTANDING WITH AUTOMATED REQUIREMENTS TRACEABILITY.
- Author
-
EGYED, ALEXANDER and GRÜNBACHER, PAUL
- Subjects
COMPUTER software development ,AUTOMATION ,VIDEO on demand ,SYSTEMS design ,SOFTWARE engineering - Abstract
Requirements traceability (RT) aims at defining and utilizing relationships between stakeholder requirements and artifacts produced during the software development life-cycle and provides an important means to foster software understanding. Although techniques for generating and validating traceability information are available, RT in practice often suffers from the enormous effort and complexity of creating and maintaining traces. This results in invalid or incomplete trace information which cannot support engineers in real-world problems. In this paper we present a tool-supported approach that requires the designer to specify some trace dependencies but eases trace acquisition by generating others automatically. We illustrate the approach using a video-on-demand system and show how the generated traces can be used in various engineering scenarios to improve software understanding. In a case study using an open source software application we demonstrate that the approach is capable of dealing with large-scale systems and delivers valid results. [ABSTRACT FROM AUTHOR]
- Published
- 2005
- Full Text
- View/download PDF
12. Interactive Explanation of Software Systems.
- Author
-
Johnson, W. and Erdem, Ali
- Abstract
This paper describes an effort to provide automated support for the interactive inquiry and explanation process that is at the heart of software understanding. A hypermedia tool called I-Doc allows software engineers to post queries about a software system, and generates focused explanations in response. These explanations are task oriented, i.e., they are sensitive to the software engineering task being performed by the user that led to the query. Task orientation leads to more effective explanations, and is particularly helpful for understanding large software systems. Empirical studies of inquiry episodes were conducted in order to investigate this claim: the kinds of questions users ask, their relation to the user's task and level of expertise. The I-Doc tool is being developed to embody these principles, employing knowledge-based techniques. The presentation mechanism employs World Wide Web (WWW) technology, making it suitable for widespread use. [ABSTRACT FROM AUTHOR]
- Published
- 1997
- Full Text
- View/download PDF
13. Business Domain Knowledge Libraries to Support Software Maintenance Activities.
- Author
-
Mendes-Moreira, H. M. C. L. and Davies, C. G.
- Subjects
SOFTWARE maintenance ,COMPUTER software development ,COMPUTER software industry ,CRISIS management ,KNOWLEDGE management ,LIBRARIES - Abstract
The crisis in software development and maintenance has been widely stated. A great deal of effort has, and is, being made towards its solution (CSM 1985 to 1990). However, the problem persists and it is tending to get worse (Pressman, 1987). Considering the dimension of the software crisis, the authors believe that the solutions required must cover a wide spectrum. The software maintenance component of software development has been recognized as the main factor responsible for the actual crisis. Domain knowledge is a key to requirements recovery and, therefore, for software maintenance. However, it is usually difficult to assimilate because of its nature, its dispersion and the lack of availability of its sources. Commercial business software accounts for the vast majority of existing software and consequently the financial burden is high in maintaining such software. A proposal (purely theoretical) is postulated of a global system for business domain knowledge capture for future reuse. The aim is to make business knowledge maximally reusable by making it publicly accessible in a knowledge repository. The proposed system, the Business Knowledge Library System (BKLS), consists of two types of library: (1) A knowledge library per organization. This library stores knowledge relevant to the execution of that particular organization's activities, including application-dependent knowledge to support the software maintenance process. Every kind of knowledge related to the organization, from its objectives to knowledge about its most elementary activities, would be deposited then. (2) Public business knowledge libraries with general business knowledge; this knowledge is a result of generalizations based on non-confidential business knowledge from organizations. It is relevant for software maintenance, since it works as a context for the exploitation of applications-dependent business knowledge. [ABSTRACT FROM AUTHOR]
- Published
- 1993
- Full Text
- View/download PDF
14. Explaining spreadsheets with spreadsheets (short paper)
- Author
-
GrejucAlex, CunhaJácome, DanMihai, FedorinDanila, ErwigMartin, and Universidade do Minho
- Subjects
Soundness ,Science & Technology ,business.industry ,Computer science ,Programming language ,05 social sciences ,Short paper ,Software Understanding ,Ciências Naturais::Ciências da Computação e da Informação ,020207 software engineering ,Explanation Principles ,02 engineering and technology ,computer.software_genre ,Computer Graphics and Computer-Aided Design ,Work (electrical) ,020204 information systems ,0202 electrical engineering, electronic engineering, information engineering ,0501 psychology and cognitive sciences ,Software engineering ,business ,computer ,050107 human factors ,Software ,Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática ,Simple (philosophy) - Abstract
Based on the concept of explanation sheets, we present an approach to make spreadsheets easier to understand and thus easier to use and maintain. We identify the notion of explanation soundness and show that explanation sheets which conform to simple rules of formula coverage provide sound explanations. We also present a practical evaluation of explanation sheets based on samples drawn from widely used spreadsheet corpora and based on a small user study.In addition to supporting spreadsheet understanding and maintenance, our work on explanation sheets has also uncovered several general principles of explanation languages that can help guide the design of explanations for other programming and domain-specific languages., This work is partially supported by the National Science Foundation under the grant CCF-1717300. Work financed by European Regional Development Fund through the Operational Programme for Competitiveness and Internationalization COMPETE 2020 Programme and by National Funds through the Portuguese funding agency FCT project POCI-01-0145-FEDER-016718 and NOVA LINCS UID/CEC/04516/2013, and by FLAD project 233/2014.
- Published
- 2018
15. Weighing lexical information for software clustering in the context of architecture recovery
- Author
-
Sergio Di Martino, Anna Corazza, Giuseppe Scanniello, Valerio Maggio, Corazza, Anna, DI MARTINO, Sergio, Maggio, Valerio, and Giuseppe, Scanniello
- Subjects
Probabilistic Model ,Fuzzy clustering ,Theoretical computer science ,Source code ,Computer science ,media_common.quotation_subject ,Software understanding ,Static program analysis ,02 engineering and technology ,computer.software_genre ,01 natural sciences ,Clustering ,Software sizing ,0202 electrical engineering, electronic engineering, information engineering ,Software system ,0101 mathematics ,Cluster analysis ,media_common ,Probabilistic model ,Reengineering ,Software clustering ,Software maintenance ,Software ,010102 general mathematics ,Software architecture recovery ,Software Engineering ,020207 software engineering ,software maintenance ,Data mining ,computer - Abstract
In literature some approaches have been proposed to partition software systems into meaningful subsystems exploiting the lexical information provided by programmers into the source code. However these techniques usually do not consider the programming language constructs in which the lexicon appears (e.g.: comments, class names, method names) even if it is a common experience that programmers place di erent care in choosing terms for different constructs. In this paper we present a novel lexical-based software clustering technique which exploits the contribution of terms placed in six different parts of the source code (i.e. zones), namely Class Names, Attribute Names, Method Names, Parameter Names, Comments and Source Code Statements. These zones convey information with different levels of relevance, and so their contribution should be di erently weighted according to the specificities of the analyzed software system. To this aim we dene a probabilistic model of the data whose parameters are estimated automatically by the Expectation-Maximization algorithm. These weights are then exploited to generate the software partitions with two distinct clustering algorithms properly customized to make them more suitable for the specic domain. The overall technique has been assessed in a case study conducted on a dataset of 16 open source software systems whose results are presented in the paper. In particular, we experimentally observed that the use of both the dened zones and the Expectation-Maximization algorithm improves the overall quality of results.
- Published
- 2016
16. ケイシキテキ ガイネン ブンセキ ニヨル グルーピング ノ Cプログラム リカイ シエン エノ テキヨウ オオタニ キンヤ キョウジュ タイショク キネン ロンブンシュウ
- Subjects
形式的概念分析 ,Formal Concept Analysis ,Grouping ,Software Understanding ,グルーピング ,ソフトウェア理解 - Abstract
Formal Concept Analysis is a technique to identify possible groups sharing common propertiesof the target objects. With Formal Concept Analysis, we present a grouping method for C program functions by “use of struct types” and apply the method to the middle-size open-source software, such as Gzip and Bison. As an example, by combining function call graphs and groupings, we present program overviews. Program overviews are used as a map for program exploration in software understanding tools. We develop a generator of the program overviews from C programs and demonstrate that our method can be efficiently applied to software understanding.
- Published
- 2009
17. Understanding software through linguistic abstraction
- Author
-
Eelco Visser
- Subjects
Domain-specific language ,Computer science ,business.industry ,Programming language ,Software understanding ,Programming languages ,computer.software_genre ,Linguistics ,Domain (software engineering) ,Software ,Argument ,Linguistic abstraction ,business ,computer ,Domain-specific languages ,Abstraction (linguistics) - Abstract
In this essay, I argue that linguistic abstraction should be used systematically as a tool to capture our emerging understanding of domains of computation. Moreover, to enable that systematic application, we need to capture our understanding of the domain of linguistic abstraction itself in higher-level meta languages. The argument is illustrated with examples from the SDF, Stratego, Spoofax, and WebDSL projects in which I explore these ideas.
- Published
- 2015
18. Understanding software through linguistic abstraction
- Author
-
Visser, Eelco (author) and Visser, Eelco (author)
- Abstract
In this essay, I argue that linguistic abstraction should be used systematically as a tool to capture our emerging understanding of domains of computation. Moreover, to enable that systematic application, we need to capture our understanding of the domain of linguistic abstraction itself in higher-level meta languages. The argument is illustrated with examples from the SDF, Stratego, Spoofax, and WebDSL projects in which I explore these ideas., Accepted Author Manuscript, Programming Languages, Software Technology
- Published
- 2015
- Full Text
- View/download PDF
19. Understanding software through linguistic abstraction
- Author
-
Visser, E.
- Subjects
software understanding ,domain-specific languages ,programming languages ,linguistic abstraction - Abstract
Preprint submitted to "Science of Computer Programming", Elsevier, http://dx.doi.org/10.1016/j.scico.2013.12.001 In this essay, I argue that linguistic abstraction should be used systematically as a tool to capture our emerging understanding of domains of computation. Moreover, to enable that systematic application, we need to capture our understanding of the domain of linguistic abstraction itself in higher-level meta languages. The argument is illustrated with examples from the SDF, Stratego, Spoofax, and WebDSL projects in which I explore these ideas.
- Published
- 2013
20. Understanding software through linguistic abstraction
- Subjects
software understanding ,domain-specific languages ,programming languages ,linguistic abstraction - Abstract
Preprint submitted to "Science of Computer Programming", Elsevier, http://dx.doi.org/10.1016/j.scico.2013.12.001 In this essay, I argue that linguistic abstraction should be used systematically as a tool to capture our emerging understanding of domains of computation. Moreover, to enable that systematic application, we need to capture our understanding of the domain of linguistic abstraction itself in higher-level meta languages. The argument is illustrated with examples from the SDF, Stratego, Spoofax, and WebDSL projects in which I explore these ideas.
- Published
- 2013
21. Semiautomatic Reverse Engineering Tool on Oracle Forms Information Systems
- Author
-
Chaparro Arenas, Oscar Javier and Aponte Melo, Jairo Hernan
- Subjects
Ingeniería Inversa ,Software Maintenance ,62 Ingeniería y operaciones afines / Engineering ,Entendimiento de software ,Reverse Engineering ,Business Rule Extraction ,0 Generalidades / Computer science, information and general works ,Software Understanding ,Mantenimiento de Software ,Legacy Information Systems ,Extracción de Reglas de Negocio ,65 Gerencia y servicios auxiliares / Management and public relations - Abstract
Los sistemas legados son sistemas que han tenido una larga evolución, más larga que el tiempo típico de los desarrolladores en una empresa. Estos sistemas son esenciales para el negocio y contienen grandes cantidades de información sobre los procesos de negocio. Sin embargo, los cambios continuos en el dominio de algunos sistemas, la falta de procesos estrictos de mantenimiento, y los cambios de desarrolladores conducen de manera inevitable a pérdidas graduales de conocimiento del sistema y su dominio, lo cual es corroborado por el hecho de que la documentación externa es rara vez actualizada, de acuerdo con el código y otros artefactos. SIFI, un sistema de información legado desarrollado y mantenido por la empresa de desarrollo de software IT Consultores S.A.S, presenta tales problemas de mantenimiento: alto acoplamiento, decaimiento de la arquitectura, sin documentación formal y con pérdida de conocimiento acerca de su dominio e implementación, lo cual hace que su evolución sea difícil. En esta tesis se construyó una herramienta de ingeniería inversa para sistemas de información en Oracle Forms y PL/SQL, con el objetivo de apoyar el proceso de mantenimiento de SIFI. La herramienta es capaz de extraer y visualizar información estructural y comporta mental del sistema, e implementa la técnica que hemos propuesto para extraer automáticamente reglas de negocio estructurales de bases de datos legados. A través de una encuesta se evaluó la efectividad de la herramienta considerando el mantenimiento y entendimiento de SIFI. Los resultados muestran que la herramienta es muy útil porque mejora la productividad de los desarrolladores en completar sus tareas y ahora el proceso de mantenimiento de SIFI es menos complicado. Asimismo, la técnica de extracción de reglas de negocio fue evaluada a través de un estudio con 4 colaboradores de ITC. Los resultados muestran que la técnica es práctica, habiendo posibilidad de mejora, y será usada como base para recuperar información adicional. Abstract. Legacy information systems are systems that have had a long evolution, longer than the typical turnaround time of the developers in the company. They are essential to the business and encode large amounts of essential information related to the business processes. However, continuous changes in the domain of some systems, the lack of strict maintenance processes, and the turnaround of developers inevitably leads to gradual loss of knowledge about the system and its domain, most often corroborated by the fact that external documentation is rarely updated in synch with the code and other artifacts. SIFI, financial legacy information system owned by the software development company IT Consultores S.A.S., presents such a maintenance issues: high coupling, architecture decay, no formal documentation and loss of domain and implementation knowledge, making its evolution very difficult. Within this thesis, a reverse engineering tool for Oracle Forms and PL/SQL information systems was built, aiming at supporting the maintenance process on SIFI. The tool is able to extract and visualize structural and behavioral information about the system, and implements the approach we proposed for automatically extracting structural business rules from legacy databases. The effectiveness of the tool was assessed under the understanding and maintenance of SIFI, through a survey. The results show that tool is very useful, as it improves the productivity of developers to complete their tasks and the maintenance process of SIFI is now easier for them. In addition, the implemented business rule extraction approach was assessed though a study with 4 ITC employees. The results show that the recovery technique is practical, while there is room for improvement, and it will be used as basis for the recovery of additional knowledge. Maestría
- Published
- 2012
22. Understanding software through linguistic abstraction
- Author
-
Visser, E. (author) and Visser, E. (author)
- Abstract
Preprint submitted to "Science of Computer Programming", Elsevier, http://dx.doi.org/10.1016/j.scico.2013.12.001 In this essay, I argue that linguistic abstraction should be used systematically as a tool to capture our emerging understanding of domains of computation. Moreover, to enable that systematic application, we need to capture our understanding of the domain of linguistic abstraction itself in higher-level meta languages. The argument is illustrated with examples from the SDF, Stratego, Spoofax, and WebDSL projects in which I explore these ideas., Software Computer Technology, Electrical Engineering, Mathematics and Computer Science
- Published
- 2013
23. Evaluating Dynamic Analysis Techniques for Program Comprehension
- Subjects
software understanding ,reverse engineering ,software maintenance - Abstract
Program comprehension is an essential part of software development and software maintenance, as software must be sufficiently understood before it can be properly modified. One of the common approaches in getting to understand a program is the study of its execution, also known as dynamic analysis. While many such approaches have been proposed in the literature, their empirical evaluation is often missing or inconclusive, and their added values to existing solutions are seldomly quantified. This dissertation aims to characterize, and extend upon, the existing work on program comprehension through dynamic analysis. A strong emphasis in our research is put on empirical evaluation. To structure the current state of the art and to identify research opportunities, we first conduct a systematic survey of all publications on this topic in the past decades. We then propose both a traditional and a more advanced visualization technique, experiment with the necessary abstraction techniques, and provide tool implementations. Our approaches are validated through extensive case studies and a controlled experiment. Finally, we conclude with a set of recommendations for future directions.
- Published
- 2009
24. Evaluating Dynamic Analysis Techniques for Program Comprehension
- Author
-
Cornelissen, S.G.M., Van Deursen, A., and Zaidman, A.E.
- Subjects
software understanding ,reverse engineering ,software maintenance - Abstract
Program comprehension is an essential part of software development and software maintenance, as software must be sufficiently understood before it can be properly modified. One of the common approaches in getting to understand a program is the study of its execution, also known as dynamic analysis. While many such approaches have been proposed in the literature, their empirical evaluation is often missing or inconclusive, and their added values to existing solutions are seldomly quantified. This dissertation aims to characterize, and extend upon, the existing work on program comprehension through dynamic analysis. A strong emphasis in our research is put on empirical evaluation. To structure the current state of the art and to identify research opportunities, we first conduct a systematic survey of all publications on this topic in the past decades. We then propose both a traditional and a more advanced visualization technique, experiment with the necessary abstraction techniques, and provide tool implementations. Our approaches are validated through extensive case studies and a controlled experiment. Finally, we conclude with a set of recommendations for future directions.
- Published
- 2009
25. Evaluating Dynamic Analysis Techniques for Program Comprehension
- Author
-
Cornelissen, S.G.M. (author) and Cornelissen, S.G.M. (author)
- Abstract
Program comprehension is an essential part of software development and software maintenance, as software must be sufficiently understood before it can be properly modified. One of the common approaches in getting to understand a program is the study of its execution, also known as dynamic analysis. While many such approaches have been proposed in the literature, their empirical evaluation is often missing or inconclusive, and their added values to existing solutions are seldomly quantified. This dissertation aims to characterize, and extend upon, the existing work on program comprehension through dynamic analysis. A strong emphasis in our research is put on empirical evaluation. To structure the current state of the art and to identify research opportunities, we first conduct a systematic survey of all publications on this topic in the past decades. We then propose both a traditional and a more advanced visualization technique, experiment with the necessary abstraction techniques, and provide tool implementations. Our approaches are validated through extensive case studies and a controlled experiment. Finally, we conclude with a set of recommendations for future directions., Softeware Technology, Electrical Engineering, Mathematics and Computer Science
- Published
- 2009
26. A New Infrastructure for Evolutionary Design and Implementation
- Author
-
COLUMBIA UNIV NEW YORK DEPT OF COMPUTER SCIENCE, Kaiser, Gail, COLUMBIA UNIV NEW YORK DEPT OF COMPUTER SCIENCE, and Kaiser, Gail
- Abstract
Columbia University developed and packaged technologies intended to reduce the time and costs of maintaining large legacy software systems and increase the efficiency and quality of changes to those systems. Columbia produced frameworks, middleware, and components that can be combined with other software development environment and tool products. The focus was on facilities that help software designers, developers, maintainers, users, their managers and other stakeholders to efficiently find, organize, analyze, synthesize and exploit the design rationale and other information they need in large, heterogeneous, disconnected repositories of formal and informal materials describing complex software systems and their development processes. Columbia was particularly concerned with intra-team and inter-team collaboration services, process/workflow, and information management. Their prototype systems enabled users to continually customize and configure the group information spaces of software development environments to optimize them to the software requirements and evolutionary trajectory of immediate concern.
- Published
- 2001
27. How Cognitive Processes Aid Program Understanding.
- Author
-
NAVAL POSTGRADUATE SCHOOL MONTEREY CA, Dorin,P R, NAVAL POSTGRADUATE SCHOOL MONTEREY CA, and Dorin,P R
- Abstract
A theoretical model of how an expert programmer goes about understanding a piece of software is presented. This understanding plays an especially critical role in software maintenance tasks. The model is based on three cognitive processes: CHUNKING, SLICING, and HYPOTHESIS GENERATION and VERIFICATION. These processes are used in conjunction with a programmer's knowledge base and categories of information critical to program understanding are identified. The model also takes advantage of certain characteristics of an associative memory to describe, using a semantic net representation, the mechanisms behind these processes and the organization of memory resulting from their use. The benefits of documentation and the use of commenting and mnemonics are described in terms of the model and may be useful as a guide for incorporating these into the code.
- Published
- 1985
28. How cognitive processes aid program understanding
- Author
-
Bradley, Gordon H., MacLennan, Bruce J., Naval Postgraduate School (U.S.), Department of Computer Science, Dorin, Paul Roderick, Bradley, Gordon H., MacLennan, Bruce J., Naval Postgraduate School (U.S.), Department of Computer Science, and Dorin, Paul Roderick
- Abstract
A theoretical model of how an expert programmer goes about understanding a piece of software is presented. This understanding plays an especially critical role in software maintenance tasks. The model is based on three cognitive processes: CHUNKING, SLICING and HYPOTHESIS GENERATION and VERIFICATION. These processes are used in conjunction with a programmer's knowledge base and categories of information critical to program understanding are identified. The model also takes advantage of certain characteristics of an associative memory to describe, using a semantic net representation, the mechanisms behind these processes and the organization of memory resulting from their use. The benefits of documentation and the use of commenting and mnemonics are described in terms of the model and may be useful as a guide for incorporating these into the code., http://archive.org/details/howcognitiveproc1094521365, Lieutenant Commander, United States Navy, Approved for public release; distribution is unlimited.
29. How cognitive processes aid program understanding
- Author
-
Dorin, Paul Roderick, Bradley, Gordon H., MacLennan, Bruce J., Naval Postgraduate School (U.S.), and Department of Computer Science
- Subjects
Chunking ,Cognitive ,Software understanding ,Computer science ,Program understanding ,Slicing ,Hypothesis generation - Abstract
A theoretical model of how an expert programmer goes about understanding a piece of software is presented. This understanding plays an especially critical role in software maintenance tasks. The model is based on three cognitive processes: CHUNKING, SLICING and HYPOTHESIS GENERATION and VERIFICATION. These processes are used in conjunction with a programmer's knowledge base and categories of information critical to program understanding are identified. The model also takes advantage of certain characteristics of an associative memory to describe, using a semantic net representation, the mechanisms behind these processes and the organization of memory resulting from their use. The benefits of documentation and the use of commenting and mnemonics are described in terms of the model and may be useful as a guide for incorporating these into the code. http://archive.org/details/howcognitiveproc1094521365 Lieutenant Commander, United States Navy Approved for public release; distribution is unlimited.
- Published
- 1985
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.