Software Reuse versus Stability: Evaluating Advanced Programming Techniques

F. Dantas, Alessandro F. Garcia
{"title":"Software Reuse versus Stability: Evaluating Advanced Programming Techniques","authors":"F. Dantas, Alessandro F. Garcia","doi":"10.1109/SBES.2010.13","DOIUrl":null,"url":null,"abstract":"With system development becoming increasingly incremental, software reuse and stability stand out as two of the most desirable attributes of high-quality software. In this context, a key goal in contemporary software design is to simultaneously promote reuse and stability of the software modules. However, the achievement of this goal is far from trivial as it largely depends on the programming techniques being employed in the software implementation. While the use of a specific advanced mechanism can somehow contribute to modules’ reuse, it might also require developers to make various undesirable changes in their interfaces and implementation. In this context, there are a growing number of techniques for improving modularity, ranging from aspect-oriented and feature-oriented programming to composition filters. This paper presents an exploratory analysis of advanced programming techniques on how they make it possible to reach a better tradeoff of software reuse and stability. The evaluation was carried out based on 11 releases of 2 product lines, which were originally built to promote the stable reuse of common modules across different products. Our results revealed that a hybrid incarnation of feature-oriented and aspect-oriented programming seems to be the most promising programming technique. For instance, the combined use of virtual inner classes, mixin composition, and point cut-advice tended to promote product-line modules with both superior stability and reusability.","PeriodicalId":306692,"journal":{"name":"2010 Brazilian Symposium on Software Engineering","volume":"11 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2010-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"22","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2010 Brazilian Symposium on Software Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SBES.2010.13","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 22

Abstract

With system development becoming increasingly incremental, software reuse and stability stand out as two of the most desirable attributes of high-quality software. In this context, a key goal in contemporary software design is to simultaneously promote reuse and stability of the software modules. However, the achievement of this goal is far from trivial as it largely depends on the programming techniques being employed in the software implementation. While the use of a specific advanced mechanism can somehow contribute to modules’ reuse, it might also require developers to make various undesirable changes in their interfaces and implementation. In this context, there are a growing number of techniques for improving modularity, ranging from aspect-oriented and feature-oriented programming to composition filters. This paper presents an exploratory analysis of advanced programming techniques on how they make it possible to reach a better tradeoff of software reuse and stability. The evaluation was carried out based on 11 releases of 2 product lines, which were originally built to promote the stable reuse of common modules across different products. Our results revealed that a hybrid incarnation of feature-oriented and aspect-oriented programming seems to be the most promising programming technique. For instance, the combined use of virtual inner classes, mixin composition, and point cut-advice tended to promote product-line modules with both superior stability and reusability.
软件重用与稳定性:评估高级编程技术
随着系统开发变得越来越增量化,软件重用和稳定性成为高质量软件最理想的两个属性。在这种情况下,当代软件设计的一个关键目标是同时促进软件模块的重用和稳定性。然而,这个目标的实现远非微不足道,因为它在很大程度上取决于软件实现中使用的编程技术。虽然使用特定的高级机制可以以某种方式促进模块的重用,但它也可能要求开发人员在其接口和实现中进行各种不希望的更改。在这种情况下,有越来越多的技术可以改进模块化,从面向方面和面向特性的编程到组合过滤器。本文对高级编程技术进行了探索性分析,分析了它们是如何在软件重用和稳定性之间取得更好的平衡的。评估是基于2个产品线的11个版本进行的,这些产品线最初是为了促进通用模块在不同产品之间的稳定重用而构建的。我们的结果表明,面向功能和面向方面编程的混合形式似乎是最有前途的编程技术。例如,虚拟内部类、混合组合和切点通知的组合使用倾向于提高产品线模块的稳定性和可重用性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信