Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Efficient comparison of program slices
Acta Informatica
Communications of the ACM
Object-oriented modeling and design
Object-oriented modeling and design
Combination of inheritance hierarchies
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Typing the specialization interface
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Object-oriented software metrics: a practical guide
Object-oriented software metrics: a practical guide
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Design patterns for object-oriented software development
Design patterns for object-oriented software development
Program integration for languages with procedure calls
ACM Transactions on Software Engineering and Methodology (TOSEM)
Signature matching: a tool for using software libraries
ACM Transactions on Software Engineering and Methodology (TOSEM)
Modular reasoning in the presence of subclassing
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Slicing class hierarchies in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reuse contracts: managing the evolution of reusable assets
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Composition Validation and Subjectivity in GenVoca Generators
IEEE Transactions on Software Engineering
A mechanism for automatically and dynamically changing software components
Proceedings of the 1997 symposium on Software reusability
EVA: A Flexible Programming Method for Evolving Systems
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Specification matching of software components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Object-Oriented Software Construction
Object-Oriented Software Construction
The Java Language Specification
The Java Language Specification
Object-Oriented Software Evolution
IEEE Transactions on Software Engineering
Selecting Regression Tests for Object-Oriented Software
ICSM '94 Proceedings of the International Conference on Software Maintenance
Using C++ Templates to Implement Role-Based Designs
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A new algorithm for semantics-based program integration
A new algorithm for semantics-based program integration
IEEE Transactions on Software Engineering
J&: nested intersection for scalable software composition
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Hi-index | 0.00 |
This paper presents a mechanism for automatically generating new classes from classes existing in a library by using their modification histories. To generate classes that are likely to meet programmer's requirements and that are consistent with the existing classes, we propose three actors, a Specifier, a Finder, and an Integrator. The Specifier records the history of modifications between methods with the same interface of a parent class and its heir. If the required method is not defined in the existing class which a programmer is referring to, the Finder retrieves classes similar to the referenced class and the Integrator applies the past modifications of similar classes to the referenced class. Classes are determined to be similar based on their positions in a class hierarchy tree. Both the Specifier and Integrator are achieved by using a method integration algorithm based on object-oriented bounded program slicing and class dependence graph matching. This mechanism enables programmers to reuse classes with little or no modification and, thus, easily create object-oriented programs.