The design and implementation of hierarchical software systems with reusable components
ACM Transactions on Software Engineering and Methodology (TOSEM)
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Framing software reuse: lessons from the real world
Framing software reuse: lessons from the real world
ICSE '97 Proceedings of the 19th international conference on Software engineering
Analysis patterns: reusable objects models
Analysis patterns: reusable objects models
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Selected writings on computing: a personal perspective
Selected writings on computing: a personal perspective
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
XVCL Approach to Separating Concerns in Product Family Assets
GCSE '01 Proceedings of the Third International Conference on Generative and Component-Based Software Engineering
Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Proceedings of the 25th International Conference on Software Engineering
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Comprehending Reality " Practical Barriers to Industrial Adoption of Software Maintenance Automation
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
A comparative study of language support for generic programming
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
XVCL: a mechanism for handling variants in software product lines
Science of Computer Programming - Special issue: Software variability management
Beyond templates: a study of clones in the STL and some general implications
Proceedings of the 27th international conference on Software engineering
Detecting higher-level similarity patterns in programs
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
"Cloning Considered Harmful" Considered Harmful
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Genericity - a "Missing in Action" Key to Software Simplification and Reuse
APSEC '06 Proceedings of the XIII Asia Pacific Software Engineering Conference
Using Server Pages to Unify Clones in Web Applications: A Trade-Off Analysis
ICSE '07 Proceedings of the 29th international conference on Software Engineering
SPLC '07 Proceedings of the 11th International Software Product Line Conference
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
Hi-index | 0.00 |
The basic idea behind software reuse is to exploit similarities within and across software systems to avoid repetitive development work. Conventional reuse is based on components and architectures. We describe how reuse of structural similarities extends the benefits of conventional component reuse, and realization of the concept with a generative technique of XVCL. Structural similarities are repetition patterns in software of any type or granularity, from similar code fragments to recurring architecture-level component configuration patterns. We represent any significant repetition pattern in subject system(s) with a generic, adaptable, XVCL meta-structure. We develop, reuse and evolve software at the level of meta-structures, deriving specific, custom systems from their meta-level representations. Lab studies and industrial applications of XVCL show that by doing that, on average, we raise reuse rates and productivity by 60-90%, reducing cognitive program complexity and maintenance effort by similar rates. The approach scales to systems of any size. The benefits are proportional to system size, and to the extent of repetitions present in subject system(s). The main application of this reuse strategy is in supporting software Product Lines.