Generating product-lines of product-families

被引:12
作者
Batory, D [1 ]
Lopez-Herrejon, RE [1 ]
Martin, JP [1 ]
机构
[1] Univ Texas, Dept Comp Sci, Austin, TX 78712 USA
来源
ASE 2002: 17TH IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING | 2002年
关键词
D O I
10.1109/ASE.2002.1114997
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
GenVoca is a methodology and technology for generating product-lines, i.e. building variants of a program. The primitive components from which applications are constructed are refinements or layers, which are modules that implement a feature that many, programs of a product-line can share. Unlike conventional components (e.g., COM, CORBA, EJB), a layer encapsulates fragments of multiple classes. Sets of fully-formed classes can be produced by composing layers. Layers are modular, albeit unconventional, building blocks of programs. But what are the building blocks of layers? We argue that facets is an answer A facet encapsulates fragments of multiple layers, and compositions of facets Yields sets of fully-formed layers. Facets arise when refinements scale from producing variants of individual programs to producing variants of multiple integrated programs, as typified by product families (e.g., MS Office). We present a mathematical model that explains relationships between layers and facets. We use the model to develop a generator for tools (i.e., product-family) that are used in language-extensible Integrated Development Environments (IDEs).
引用
收藏
页码:81 / 92
页数:12
相关论文
共 35 条
[1]   Composition validation and subjectivity in GenVoca generators [J].
Batory, D ;
Geraci, BJ .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1997, 23 (02) :67-82
[2]  
BATORY D, 1992, ACM TOSEM
[3]  
BATORY D, 2000, IEEE T SOFTWARE MAY
[4]  
BATORY D, 1998, 5 INT C SOFTW REUS V
[5]  
BATORY D, IN PRESS ACM TOSEM
[6]  
Baxter I.D., 1992, CACM APR
[7]  
CARDONE R, AOSD 2002
[8]  
CZARNECKI K, GCSE SAIG 2002
[9]  
Czarnecki K., 2000, Generative Programming: Methods, Tools, and Applications
[10]  
Dijkstra E. W, 1976, A Discipline of Programming