@article {67, title = {Synthesizing objects}, journal = {Concurrency - Practice and Experience}, volume = {12}, number = {14}, year = {2000}, pages = {1347-1377}, abstract = {This paper argues that the current OO technology does not support reuse and configurability in an effective way. This problem can be addressed by augmenting OO Analysis and Design with feature modeling and by applying generative implementation techniques. Feature modeling allows capturing the variability of domain concepts. Concrete concept instances can then be synthesized from abstract specifications. Using a simple example of a configurable list component, we demonstrate the application of feature modeling and how to implement a feature model as a generator. We introduce the concepts of configuration repositories and configuration generators and show how to implement them using object- oriented, generic, and generative language mechanisms. Interestingly, a configuration repository represents an effective approach for typing synthesized recursive classes. The configuration generator utilizes C++ template metaprogramming, which enables its execution at compile-time. }, doi = {10.1002/1096-9128(20001210)12:14<1347::AID-CPE513>3.0.CO;2-N}, url = {http://www3.interscience.wiley.com/cgi-bin/fulltext/76500719/PDFSTART}, attachments = {http://gsd.uwaterloo.ca/sites/default/files/ecoop99_0.pdf}, author = {Krzysztof Czarnecki and Ulrich, Eisenecker} }