Reuse contracts: managing the evolution of reusable assets
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using role components in implement collaboration-based designs
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
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Object-oriented framework and product lines
Proceedings of the first conference on Software product lines : experience and research directions: experience and research directions
Comparing frameworks and layered refinement
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
ACM Transactions on Software Engineering and Methodology (TOSEM)
A Discipline of Programming
Specifying Reusable Components Using Contracts
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Implementing Collaboration-Based Designs Using Aspect-Oriented Programming
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Hi-index | 0.00 |
With the advent of eBusiness and mobile computing, the need for software systems that can be automatically configured, assembled, and adapted on the fly has never been so critical. In this context, various proposals have been put forward to realise the vision of software product-lines, among them, GenVoca — a powerful model for component-based product-lines advocating large-scale step-wise refinement as a composition principle. In this paper, we introduce a refinement-oriented generation language — ReGaL — to program GenVoca product-lines. While components are programmed in Java, refinements are programmed in ReGaL by the means of generic refinement aspects. Orders for applications, themselves expressed in ReGaL, are compiled by instantiating and weaving refinement aspects with components to generate the requested Java applications. We illustrate ReGaL on a product-line of graph algorithms and present experiments showing the benefits of application configurability.