Results 1 - 10
of
10
Recovering traceability links between code and documentation
- IEEE Trans. Softw. Eng
, 2002
"... Abstract—Software system documentation is almost always expressed informally in natural language and free text. Examples include requirement specifications, design documents, manual pages, system development journals, error logs, and related maintenance reports. We propose a method based on informat ..."
Abstract
-
Cited by 140 (15 self)
- Add to MetaCart
Abstract—Software system documentation is almost always expressed informally in natural language and free text. Examples include requirement specifications, design documents, manual pages, system development journals, error logs, and related maintenance reports. We propose a method based on information retrieval to recover traceability links between source code and free text documents. A premise of our work is that programmers use meaningful names for program items, such as functions, variables, types, classes, and methods. We believe that the application-domain knowledge that programmers process when writing the code is often captured by the mnemonics for identifiers; therefore, the analysis of these mnemonics can help to associate high-level concepts with program concepts and vice-versa. We apply both a probabilistic and a vector space information retrieval model in two case studies to trace C++ source code onto manual pages and Java code to functional requirements. We compare the results of applying the two models, discuss the benefits and limitations, and describe directions for improvements.
Recovering Documentation-to-Source-Code Traceability Links using Latent Semantic Indexing
"... An information retrieval technique, latent semantic indexing, is used to automatically identi traceability links from system documentation to program source code. The results of two experiments to identi links in existing software systems (i.e., the LEDA library, and Albergate) are presented. These ..."
Abstract
-
Cited by 100 (10 self)
- Add to MetaCart
An information retrieval technique, latent semantic indexing, is used to automatically identi traceability links from system documentation to program source code. The results of two experiments to identi links in existing software systems (i.e., the LEDA library, and Albergate) are presented. These results are compared with other similar type experimental results of traceability link identification using different types of information retrieval techniques. The method presented proves to give good results by comparison and additionally it is a low cost, highly flexible method to apply with regards to preprocessing and/or parsing of the source code and documentation.
An automatic approach to identify class evolution discontinuities
- In IWPSE
, 2004
"... When a software system evolves, features are added, removed and changed. Moreover, refactoring activities are periodically performed to improve the software internal structure. A class may be replaced by another, two classes can be merged, or a class may be split in two others. As a consequence, it ..."
Abstract
-
Cited by 26 (2 self)
- Add to MetaCart
When a software system evolves, features are added, removed and changed. Moreover, refactoring activities are periodically performed to improve the software internal structure. A class may be replaced by another, two classes can be merged, or a class may be split in two others. As a consequence, it may not be possible to trace software features between a release and another. When studying software evolution, we should be able to trace a class lifetime even when it disappears because it is replaced by a similar one, split or merged. Such a capability is also essential to perform impact analysis. This paper proposes an automatic approach, inspired on vector space information retrieval, to identify class evolution discontinuities and, therefore, cases of possible refactoring. The approach has been applied to identify refactorings performed over 40 releases of a Java open source domain name server. Almost all the refactorings found were actually performed in the analyzed system, thus indicating the helpfulness of the approach and of the developed tool.
RIPPLES: Tool for Change in Legacy Software
, 2001
"... Key parts of software change are concept location and change propagation. We introduce a tool RIPPLES that supports both. It uses the Abstract System Dependence Graph (ASDG) of the program, enriched by conceptual dependencies. A case study of NCSA Mosaic demonstrates the use of the tool. Precision ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
Key parts of software change are concept location and change propagation. We introduce a tool RIPPLES that supports both. It uses the Abstract System Dependence Graph (ASDG) of the program, enriched by conceptual dependencies. A case study of NCSA Mosaic demonstrates the use of the tool. Precision and recall are used to evaluate the quality of support provided by RIPPLES.
Recovery of traceability links between software documentation and source code
- International Journal of Software Engineering and Knowledge Engineering
"... An approach for the semi-automated recovery of traceability links between software documentation and source code is presented. The methodology is based on the application of information retrieval techniques to extract and analyze the semantic information from the source code and associated documenta ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
An approach for the semi-automated recovery of traceability links between software documentation and source code is presented. The methodology is based on the application of information retrieval techniques to extract and analyze the semantic information from the source code and associated documentation. A semi-automatic process is defined based on the proposed methodology. The paper advocates the use of latent semantic indexing (LSI) as the supporting information retrieval technique. Two case studies using existing software are presented comparing this approach with others. The case studies show positive results for the proposed approach, especially considering the flexibility of the methods used.
Automatically Identifying Changes that Impact Code-to-Design Traceability
"... An approach is presented that automatically determines if a given source code change impacts the design (i.e., UML class diagram) of the system. This allows code-to-design traceability to be consistently maintained as the source code evolves. The approach uses lightweight analysis and syntactic diff ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
An approach is presented that automatically determines if a given source code change impacts the design (i.e., UML class diagram) of the system. This allows code-to-design traceability to be consistently maintained as the source code evolves. The approach uses lightweight analysis and syntactic differencing of the source code changes to determine if the change alters the class diagram in the context of abstract design. The intent is to support both the simultaneous updating of design documents with code changes and bringing old design documents up to date with current code given the change history. An efficient tool was developed to support the approach and is applied to an open source system (i.e., HippoDraw). The results are evaluated and compared against manual inspection by human experts. The tool performs better than (error prone) manual inspection. 1.
Understanding how the requirements are implemented in source code
- In Proceedings of the 10th Asia-Pacific Software Engineering Conference (Chiang Mai
, 2003
"... For software maintenance and evolution, a common problem is to understand how each requirement is implemented in the source code. The basic solution of this problem is to find the fragment of source code that is corresponding to the implementation of each requirement. This can be viewed as a require ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
For software maintenance and evolution, a common problem is to understand how each requirement is implemented in the source code. The basic solution of this problem is to find the fragment of source code that is corresponding to the implementation of each requirement. This can be viewed as a requirement-slicing problem-slicing the source code according to each individual requirement. In this paper, we present an approach to find the set of functions that is corresponding to each requirement. The main idea of our method is to combine the information retrieval technology with the static analysis of source code structures. First, we retrieve the initial function sets through some information retrieval model using functional requirements as the queries and identifier information (such as function names, parameter names, variable names etc.) of functions in the source code as target documents. Then we complement each retrieved initial function set by analyzing the call graph extracted from the source code. A premise of our approach is that programmers should use meaningful names as identifiers. Furthermore, we perform an experimental study based on a GNU system. We use two basic metrics: precision and recall (which are the common practice in the information retrieval field), to evaluate our approach. We also compare the results directly acquired from information retrieval with those that are complemented through static source code structure analysis.
Traceability Recovery in RAD Software Systems
- In Proc. of the 10th Int. Workshop on Program Comprehension
, 2002
"... This paper proposes an approach and a process to recover traceability links between source code and free text documents in software system developed with extensive use of COTS, middleware, and automatically generated code. ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This paper proposes an approach and a process to recover traceability links between source code and free text documents in software system developed with extensive use of COTS, middleware, and automatically generated code.
An Ontology-based Program Comprehension Model
, 2007
"... Program comprehension is often regarded as a learning process where programmers actively acquire knowledge from various software artifacts to construct well formed, representative mental models of existing software systems. In this research, we introduce a novel ontology-based program comprehension ..."
Abstract
- Add to MetaCart
Program comprehension is often regarded as a learning process where programmers actively acquire knowledge from various software artifacts to construct well formed, representative mental models of existing software systems. In this research, we introduce a novel ontology-based program comprehension model that addresses both the challenge of knowledge acquisition and the construction of mental models. Our approach provides ontological support for program comprehension by: 1) representing various software artifacts, including source code and documents as formal ontologies; 2) utilizing ontological reasoning services to allow programmers not only to reason about properties of the software systems, but also to actively acquire and construct new concepts based on their current understanding; and 3) introducing an ontology-based comprehension model and a supporting comprehension methodology that characterize program comprehension as an iterative process of concept recognition and relationship discovery. The research presented in this thesis is significant for several reasons. Firstly, we describe program comprehension as a process of mental ontology construction, which is
code-to-design traceability during evolution
"... Automatically identifying changes that impact ..."

