Identification of program similarity in large populations
The Computer Journal - Special issue on procedural programming
Software product-line engineering: a family-based software development process
Software product-line engineering: a family-based software development process
A modular approach for exploring the semantic structure of technical document collections
AVI '00 Proceedings of the working conference on Advanced visual interfaces
Information visualization in data mining and knowledge discovery
Information visualization in data mining and knowledge discovery
Software product lines: practices and patterns
Software product lines: practices and patterns
Evaluating strategies for similarity search on the web
Proceedings of the 11th international conference on World Wide Web
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
SODA '03 Proceedings of the fourteenth annual ACM-SIAM symposium on Discrete algorithms
Generic Components: A Symbiosis of Paradigms
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
Clustering and Identifying Temporal Trends in Document Databases
ADL '00 Proceedings of the IEEE Advances in Digital Libraries 2000
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Eliminating redundancies with a "composition with adaptation" meta-programming technique
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Package-Based Software Development
EUROMICRO '03 Proceedings of the 29th Conference on EUROMICRO
A Metrics Suite for Measuring Reusability of Software Components
METRICS '03 Proceedings of the 9th International Symposium on Software Metrics
Generalization for component reuse
ACM-SE 42 Proceedings of the 42nd annual Southeast regional conference
Variability management with feature models
Science of Computer Programming - Special issue: Software variability management
Using Origin Analysis to Detect Merging and Splitting of Source Code Entities
IEEE Transactions on Software Engineering
Clustering Software Artifacts Based on Frequent Common Changes
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Reuse and variability in large software applications
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Software Reuse Research: Status and Future
IEEE Transactions on Software Engineering
Unifying clones with a generative programming technique: a case study: Practice Articles
Journal of Software Maintenance and Evolution: Research and Practice
Evolving similarity functions for code plagiarism detection
Proceedings of the 10th annual conference on Genetic and evolutionary computation
Measuring similarity of large software systems based on source code correspondence
PROFES'05 Proceedings of the 6th international conference on Product Focused Software Process Improvement
Hi-index | 0.00 |
To achieve better software quality, to shorten software development time and to lower development costs, software engineers are adopting generative reuse as a software design process. The usage of generic components allows increasing reuse and design productivity in software engineering. Generic component design requires systematic domain analysis to identify similar components as candidates for generalization. However, component feature analysis and identification of components for generalization usually is done ad hoc. In this paper, we propose to apply a data visualization method, called Multidimensional Scaling (MDS), to analyze software components in the multidimensional feature space. Multidimensional data that represent syntactical and semantic features of source code components are mapped to 2D space. The results of MDS are used to partition an initial set of components into groups of similar source code components that can be further used as candidates for generalization. STRESS value is used to estimate the generalizability of a given set of components. Case studies for Java Buffer and Geom class libraries are presented.