Results 1 -
7 of
7
Feature Location in Source Code: A Taxonomy and Survey
- Journal of Software Maintenance and Evolution: Research and Practice
, 2011
"... Feature location is the activity of identifying an initial location in the source code that implements functionality in a software system. Many feature location techniques have been introduced that automate some or all of this process, and a comprehensive overview of this large body of work would be ..."
Abstract
-
Cited by 74 (14 self)
- Add to MetaCart
Feature location is the activity of identifying an initial location in the source code that implements functionality in a software system. Many feature location techniques have been introduced that automate some or all of this process, and a comprehensive overview of this large body of work would be beneficial to researchers and practitioners. This paper presents a systematic literature survey of feature location techniques. Eighty-nine articles from 25 venues have been reviewed and classified within the taxonomy in order to organize and structure existing work in the field of feature location. The paper also discusses open issues and defines future directions in the field of feature location.
Can we predict dependencies using domain information?
"... Abstract—Software dependencies play a vital role in program comprehension, change impact analysis and other software maintenance activities. Traditionally, these activities are supported by source code analysis; however, the source code is sometimes inaccessible, and not all stakeholders have adequa ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
(Show Context)
Abstract—Software dependencies play a vital role in program comprehension, change impact analysis and other software maintenance activities. Traditionally, these activities are supported by source code analysis; however, the source code is sometimes inaccessible, and not all stakeholders have adequate knowledge to perform such analysis. For example, non-technical domain experts and consultants raise most maintenance requests; however, they cannot predict the cost and impact of the requested changes without the support of the developers. We propose a novel approach to predict software dependencies by exploiting coupling present in domain-level information. Our approach is independent of the software implementation; hence, it can be used to evaluate architectural dependencies without access to the source code or the database. We evaluate our approach with a case study on a large-scale enterprise system, in which we demonstrate how up to 68 % of the source code dependencies and 77 % of the database dependencies are predicted solely based on domain information. I.
Supporting Feature-Level Software Maintenance
, 2010
"... Software maintenance is the process of modifying a software system to fix defects, improve performance, add new functionality, or adapt the system to a new environment. A maintenance task is often initiated by a bug report or a request for new functionality. Bug reports typically describe problems w ..."
Abstract
- Add to MetaCart
(Show Context)
Software maintenance is the process of modifying a software system to fix defects, improve performance, add new functionality, or adapt the system to a new environment. A maintenance task is often initiated by a bug report or a request for new functionality. Bug reports typically describe problems with incorrect behaviors or functionalities. These behaviors or functionalities are known as features. Even in very well-designed systems, the source code that implements features is often not completely modularized. The delocalized nature of features makes maintaining them challenging. Since maintenance tasks are expressed in terms of features, the goal of this dissertation is to support software maintenance at the feature-level. We focus on two tasks in particular: feature location and impact analysis via feature coupling. Feature location is the process of identifying the source code that implements a feature, and it is an essential first step to any maintenance task. There are many existing techniques for feature location that incorporate various types of analyses such as static, dynamic, and textual. In this dissertation, we recognize the advantages of leveraging several types of analyses and introduce a new approach to feature location based on combining dynamic
USING THE STRUCTURAL LOCATION OF TERMS TO IMPROVE THE RESULTS OF TEXT RETRIEVAL BASED APPROACHES TO FEATURE LOCATION
"... Software maintenance and evolution make up a considerable portion of the time and effort spent during the life cycle of a software system. During the maintenance and evolution phase, the majority of a developer’s time is spent on program comprehension tasks. Feature location (i.e., identifying a sta ..."
Abstract
- Add to MetaCart
(Show Context)
Software maintenance and evolution make up a considerable portion of the time and effort spent during the life cycle of a software system. During the maintenance and evolution phase, the majority of a developer’s time is spent on program comprehension tasks. Feature location (i.e., identifying a starting point for a change), impact analysis (i.e., identifying all source elements involved in a change), and software summarization (i.e., automatically summarizing the responsi-bilities of a source element) are examples of such tasks. Recent research in these areas has focused on improving each process to ease the burden on developers and decrease the time spent in each task through the use of textual information, dependency graphs, and execution traces. Further-more, the success of text retrieval in other areas (e.g., traceability) has initiated new studies in automating feature location by the use of text retrieval techniques, such as the vector space model (VSM), latent semantic indexing (LSI), and latent Dirichlet allocation (LDA). Some research has been done to improve LSI and VSM models by combining structural information (i.e., information regarding the creation and use of objects and methods within the code) with the corpus obtained from extracting text from source code. However, little research has focused on improving LDA
1 Can we predict dependencies
"... Abstract—Software dependencies play a vital role in program comprehension, change impact analysis and other software maintenance activities. Traditionally, these activities are supported by source code analysis; however, the source code is sometimes inaccessible, and not all stakeholders have adequa ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract—Software dependencies play a vital role in program comprehension, change impact analysis and other software maintenance activities. Traditionally, these activities are supported by source code analysis; however, the source code is sometimes inaccessible, and not all stakeholders have adequate knowledge to perform such analysis. For example, non-technical domain experts and consultants raise most maintenance requests; however, they cannot predict the cost and impact of the requested changes without the support of the developers. We propose a novel approach to predict software dependencies by exploiting coupling present in domain-level information. Our approach is independent of the software implementation; hence, it can be used to evaluate architectural dependencies without access to the source code or the database. We evaluate our approach with a case study on a large-scale enterprise system, in which we demonstrate how up to 68 % of the source code dependencies and 77 % of the database dependencies are predicted solely based on domain information. I.
Hybrid Storage for Enabling Fully-Featured Text Search and Fine-Grained Structural Search over Source Code
"... Searching is an important activity in software main-tenance. Dedicated data structures have been used to support either textual or structural queries over source code. The goal of this ongoing research is to elabo-rate a hybrid data storage that enables simultaneous textual and structural search. Th ..."
Abstract
- Add to MetaCart
(Show Context)
Searching is an important activity in software main-tenance. Dedicated data structures have been used to support either textual or structural queries over source code. The goal of this ongoing research is to elabo-rate a hybrid data storage that enables simultaneous textual and structural search. The naive adjacency list method has been combined with the inverted index ap-proach. The data model has been enhanced with the use of recent data compression approaches for column-oriented databases to allow no-loss albeit compact stor-age of fine-grained structural data. The graph indexing has enabled the proposed data model to expeditiously answer fine-grained structural queries. This paper de-scribes the basics of the proposed approach and esti-mates its feasibility. 1
Published online in Wiley InterScience (www.interscience.wiley.com). DOI: 10.1002/smr.1598 Predicting Dependencies Using Domain-Based Coupling
"... Software dependencies play a vital role in program comprehension, change impact analysis and other software maintenance activities. Traditionally, these activities are supported by source code analysis; however, the source code is sometimes inaccessible or difficult to analyse, as in hybrid systems ..."
Abstract
- Add to MetaCart
(Show Context)
Software dependencies play a vital role in program comprehension, change impact analysis and other software maintenance activities. Traditionally, these activities are supported by source code analysis; however, the source code is sometimes inaccessible or difficult to analyse, as in hybrid systems composed of source code in multiple languages using various paradigms (e.g., object-oriented programming and relational databases). Moreover, not all stakeholders have adequate knowledge to perform such analyses. For example, non-technical domain experts and consultants raise most maintenance requests; however, they cannot predict the cost and impact of the requested changes without the support of the developers. We propose a novel approach to predicting software dependencies by exploiting the coupling present in domain-level information. Our approach is independent of the software implementation; hence, it can be used to approximate architectural dependencies without access to the source code or the database. As such, it can be applied to hybrid systems with heterogeneous source code or legacy systems with missing source code. In addition, this approach is based solely on information visible and understandable to domain users; therefore, it can be efficiently used by domain experts without the support of software developers. We evaluate our approach with a case study on a large-scale enterprise system, in which we demonstrate how up to 65 % of the source code dependencies and 77 % of the database dependencies are predicted solely based on domain