Linked e-resources
Details
Table of Contents
Intro
Foreword
Preface
What Is This Handbook About?
Who Should Read This Handbook?
Acknowledgements
Contents
Editors and Contributors
Acronyms
Part I Feature Location and Variability Model Extraction
1 Feature Location in Software Variants Toward Software Product Line Engineering
1.1 Introduction
1.2 Product Variants
1.3 Types of Feature Location
1.3.1 Static-Based Feature Location
1.3.2 Textual-Based Feature Location
1.3.2.1 Pattern Matching
1.3.2.2 Natural Language Processing (NLP)
1.3.2.3 Information Retrieval (IR)
1.3.3 Dynamic-Based Feature Location
1.4 Feature Location in Software Variants
1.4.1 Feature Location with IR in Product Variants: Conventional Application
1.4.1.1 VSM-Based Feature Location
1.4.1.2 LSI-Based Feature Location
1.4.1.3 Feature Location by Combining IR with Static Analysis
1.4.1.4 Feature Location by Combining IR with Dynamic Analysis
1.4.2 Feature Location with IR in Product Variants: Variability Awareness
1.5 An Illustrative Approach for Feature Location with IR: Variability Awareness
1.5.1 An Overview of the Feature Location Process
1.5.2 Reducing IR Search Spaces
1.5.2.1 Determining Common and Variable Partitions at the Feature Level
1.5.2.2 Determining Common and Variable Partitions at the Source Code Level
1.5.2.3 Fragmentation of the Variable Partitions into Minimal Disjoint Sets
1.5.3 Reducing the Abstraction Gap Between Feature and Source Code Levels Using Code-Topic
1.5.3.1 Code-Topic Identification as a Partitioning Problem
1.5.3.2 Computing Similarity Between Classes for Supporting Code-Topic Identification
1.5.3.3 Clustering Classes as Code-Topics
1.5.4 Locating Features by LSI
1.5.4.1 Establishing a Mapping Between Features and Code-Topics
1.5.4.2 Decomposing Code-Topics to their Classes
1.6 Conclusions
References
2 Feature and Variability Extraction from Natural Language Requirements
2.1 Introduction
2.2 Natural Language Processing in a Nutshell
2.3 Feature Extraction
2.3.1 Similarity-Based Feature Extraction
2.3.1.1 Similarity Measures
2.3.1.2 Rules & Heuristics
2.3.2 Graph-Based Feature Extraction
2.3.3 Feature Term Extraction
2.3.4 Evaluation Metric
2.4 Variability Extraction
2.4.1 Optionality
2.4.2 Group Constraints
2.4.3 Cross-Tree Constraints
2.4.4 Evaluation Metric
2.5 Related Work
2.6 Challenges and Risks
References
3 Semantic History Slicing
3.1 Introduction
3.1.1 Locating Features in Software Histories
3.1.2 Semantic History Slicing
3.1.3 Chapter Organization
3.2 Representing Programs and Program Changes
3.2.1 Program Representation
3.2.2 Changes and Change Histories
3.2.2.1 AST-Based View
3.2.2.2 Line-Based View
3.2.3 Tests and Test Suites
3.3 Semantics-Preserving History Slices
3.4 Semantic History Slicing
3.4.1 CSlicer by Example
Foreword
Preface
What Is This Handbook About?
Who Should Read This Handbook?
Acknowledgements
Contents
Editors and Contributors
Acronyms
Part I Feature Location and Variability Model Extraction
1 Feature Location in Software Variants Toward Software Product Line Engineering
1.1 Introduction
1.2 Product Variants
1.3 Types of Feature Location
1.3.1 Static-Based Feature Location
1.3.2 Textual-Based Feature Location
1.3.2.1 Pattern Matching
1.3.2.2 Natural Language Processing (NLP)
1.3.2.3 Information Retrieval (IR)
1.3.3 Dynamic-Based Feature Location
1.4 Feature Location in Software Variants
1.4.1 Feature Location with IR in Product Variants: Conventional Application
1.4.1.1 VSM-Based Feature Location
1.4.1.2 LSI-Based Feature Location
1.4.1.3 Feature Location by Combining IR with Static Analysis
1.4.1.4 Feature Location by Combining IR with Dynamic Analysis
1.4.2 Feature Location with IR in Product Variants: Variability Awareness
1.5 An Illustrative Approach for Feature Location with IR: Variability Awareness
1.5.1 An Overview of the Feature Location Process
1.5.2 Reducing IR Search Spaces
1.5.2.1 Determining Common and Variable Partitions at the Feature Level
1.5.2.2 Determining Common and Variable Partitions at the Source Code Level
1.5.2.3 Fragmentation of the Variable Partitions into Minimal Disjoint Sets
1.5.3 Reducing the Abstraction Gap Between Feature and Source Code Levels Using Code-Topic
1.5.3.1 Code-Topic Identification as a Partitioning Problem
1.5.3.2 Computing Similarity Between Classes for Supporting Code-Topic Identification
1.5.3.3 Clustering Classes as Code-Topics
1.5.4 Locating Features by LSI
1.5.4.1 Establishing a Mapping Between Features and Code-Topics
1.5.4.2 Decomposing Code-Topics to their Classes
1.6 Conclusions
References
2 Feature and Variability Extraction from Natural Language Requirements
2.1 Introduction
2.2 Natural Language Processing in a Nutshell
2.3 Feature Extraction
2.3.1 Similarity-Based Feature Extraction
2.3.1.1 Similarity Measures
2.3.1.2 Rules & Heuristics
2.3.2 Graph-Based Feature Extraction
2.3.3 Feature Term Extraction
2.3.4 Evaluation Metric
2.4 Variability Extraction
2.4.1 Optionality
2.4.2 Group Constraints
2.4.3 Cross-Tree Constraints
2.4.4 Evaluation Metric
2.5 Related Work
2.6 Challenges and Risks
References
3 Semantic History Slicing
3.1 Introduction
3.1.1 Locating Features in Software Histories
3.1.2 Semantic History Slicing
3.1.3 Chapter Organization
3.2 Representing Programs and Program Changes
3.2.1 Program Representation
3.2.2 Changes and Change Histories
3.2.2.1 AST-Based View
3.2.2.2 Line-Based View
3.2.3 Tests and Test Suites
3.3 Semantics-Preserving History Slices
3.4 Semantic History Slicing
3.4.1 CSlicer by Example