Leveraging component-based software engineering with Fraclet

被引:0
作者
Romain Rouvoy
Philippe Merle
机构
[1] University of Oslo,Department of Informatics
[2] INRIA-USTL-CNRS,ADAM Project
来源
annals of telecommunications - annales des télécommunications | 2009年 / 64卷
关键词
Component-based software engineering; F; Annotation-oriented programming;
D O I
暂无
中图分类号
学科分类号
摘要
Component-based software engineering has achieved wide acceptance in the domain of software engineering by improving productivity, reusability and composition. This success has also encouraged the emergence of a plethora of component models. Nevertheless, even if the abstract models of most of lightweight component models are quite similar, their programming models can still differ a lot. This drawback limits the reuse and composition of components implemented using different programming models. The contribution of this article is to introduce Fraclet as a programming model common to several lightweight component models. This programming model is presented as an annotation framework, which allows the developer to annotate the program code with the elements of the abstract component model. Then, using a generative approach, the annotated program code is completed according to the programming model of the component model to be supported by the component runtime environment. This article shows that this annotation framework provides a significant simplification of the program code by removing all dependencies on the component model interfaces. These benefits are illustrated with the Fractal and OpenCOM component models.
引用
收藏
页码:65 / 79
页数:14
相关论文
共 15 条
[1]  
Bruneton E(2006)The F Softw Prac Exp 36 1257-1284
[2]  
Coupaye T(2008) component model and its support in java ACM Trans Comput Syst 26 1-42
[3]  
Leclercq M(2000)A generic component model for building systems software IEEE Trans Softw Eng 26 70-93
[4]  
Quéma V(undefined)A classification and comparison framework for software architecture description languages undefined undefined undefined-undefined
[5]  
Stefani JB(undefined)undefined undefined undefined undefined-undefined
[6]  
Coulson G(undefined)undefined undefined undefined undefined-undefined
[7]  
Blair G(undefined)undefined undefined undefined undefined-undefined
[8]  
Grace P(undefined)undefined undefined undefined undefined-undefined
[9]  
Taiani F(undefined)undefined undefined undefined undefined-undefined
[10]  
Joolia A(undefined)undefined undefined undefined undefined-undefined