首页 > 最新文献

International Workshop on Principles of Software Evolution最新文献

英文 中文
An evolutionary model of requirements correctness with early aspects 具有早期方面的需求正确性的演化模型
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294965
J. Araújo, D. Zowghi, A. Moreira
The achievement of building evolvable systems depends on how efficiently the changeable requirements are elicited and structured by software engineers. In current requirements approaches changing requirements are not dealt with satisfactorily. Partially, this is due to the crosscutting nature of some of these requirements. Aspect-Oriented Requirements Engineering tackles the problem of crosscutting requirements, and its concepts can be used to address this problem. This work describes how early aspects, i.e. aspects identified at early stages of software development, could be integrated to an evolutionary requirements model.
构建可演化系统的成就取决于软件工程师如何有效地引出和构造可变化的需求。在当前的需求方法中,变化的需求没有得到令人满意的处理。部分原因是由于其中一些需求的横切性质。面向方面的需求工程处理横切需求的问题,它的概念可以用来处理这个问题。这项工作描述了早期的方面,即在软件开发的早期阶段确定的方面,如何集成到一个进化的需求模型中。
{"title":"An evolutionary model of requirements correctness with early aspects","authors":"J. Araújo, D. Zowghi, A. Moreira","doi":"10.1145/1294948.1294965","DOIUrl":"https://doi.org/10.1145/1294948.1294965","url":null,"abstract":"The achievement of building evolvable systems depends on how efficiently the changeable requirements are elicited and structured by software engineers. In current requirements approaches changing requirements are not dealt with satisfactorily. Partially, this is due to the crosscutting nature of some of these requirements. Aspect-Oriented Requirements Engineering tackles the problem of crosscutting requirements, and its concepts can be used to address this problem. This work describes how early aspects, i.e. aspects identified at early stages of software development, could be integrated to an evolutionary requirements model.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"276 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116251279","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Modification analysis support at the requirements level 需求级别的修改分析支持
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294961
Maryam Shiri, J. Hassine, J. Rilling
Modification analysis is part of most maintenance processes and includes among other activities, early prediction of potential change impacts, feasibility studies, cost estimation, etc. Existing impact analysis and regression testing techniques being source code based require at least some understanding of the system implementation. In this research we present a novel approach that combines UCM with FCA to assist decision makers in supporting modification analysis at the requirements level. Our approach provides support for determining the potential modification and re-testing effort associated with a change without the need to analyze or comprehend source code. We demonstrate the applicability of our approach on a telephony system case study.
修改分析是大多数维护过程的一部分,包括其他活动,潜在变更影响的早期预测,可行性研究,成本估算等。现有的基于源代码的影响分析和回归测试技术至少需要对系统实现有一定的了解。在这项研究中,我们提出了一种结合UCM和FCA的新方法,以帮助决策者在需求层面支持修改分析。我们的方法为确定与变更相关的潜在修改和重新测试工作提供了支持,而不需要分析或理解源代码。我们演示了我们的方法在电话系统案例研究中的适用性。
{"title":"Modification analysis support at the requirements level","authors":"Maryam Shiri, J. Hassine, J. Rilling","doi":"10.1145/1294948.1294961","DOIUrl":"https://doi.org/10.1145/1294948.1294961","url":null,"abstract":"Modification analysis is part of most maintenance processes and includes among other activities, early prediction of potential change impacts, feasibility studies, cost estimation, etc. Existing impact analysis and regression testing techniques being source code based require at least some understanding of the system implementation. In this research we present a novel approach that combines UCM with FCA to assist decision makers in supporting modification analysis at the requirements level. Our approach provides support for determining the potential modification and re-testing effort associated with a change without the need to analyze or comprehend source code. We demonstrate the applicability of our approach on a telephony system case study.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"87 4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133718538","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Requiem for software evolution research: a few steps toward the creative age 软件进化研究的安魂曲:迈向创造性时代的几步
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294950
G. Antoniol
Nowadays almost every company depends on software technologies to function, the challenge is that the technologies and software applications are constantly changing and adapting to the needs of users. This process of change is risky, since unplanned and undisciplined changes in any software system of realistic size risk degrading the quality of the software and producing unexpected side effects. The need for disciplined, intelligent, cost-effective software change and evolution is an urgent technological challenge in the software engineering field. New technologies, new social and cultural trends, a widespread adoption of open source software, the market globalization and new development environments are spelling the requiem to the traditional way in which software evolution research was carried out. Evolution research must evolve and adapt to the new society needs and trends thus turning challenges into opportunities. This keynote attempts to shed some light on key factors such new technology transfer opportunity, the need of benchmarks and the three items each and every research program in software evolution should integrate in one way or the other.
如今,几乎每家公司都依赖软件技术来运作,挑战在于技术和软件应用程序不断变化并适应用户的需求。这种变化过程是有风险的,因为在任何实际规模的软件系统中,没有计划和没有纪律的变化都有可能降低软件的质量,并产生意想不到的副作用。在软件工程领域,对有纪律的、智能的、经济的软件变更和发展的需求是一个紧迫的技术挑战。新技术、新的社会和文化趋势、开源软件的广泛采用、市场全球化和新的开发环境正在为进行软件进化研究的传统方式奏响安魂曲。进化研究必须不断进化,适应新的社会需求和趋势,变挑战为机遇。本主题试图阐明一些关键因素,如新技术转移的机会,基准的需要,以及软件发展中的每个研究项目都应该以这样或那样的方式集成的三个项目。
{"title":"Requiem for software evolution research: a few steps toward the creative age","authors":"G. Antoniol","doi":"10.1145/1294948.1294950","DOIUrl":"https://doi.org/10.1145/1294948.1294950","url":null,"abstract":"Nowadays almost every company depends on software technologies to function, the challenge is that the technologies and software applications are constantly changing and adapting to the needs of users. This process of change is risky, since unplanned and undisciplined changes in any software system of realistic size risk degrading the quality of the software and producing unexpected side effects. The need for disciplined, intelligent, cost-effective software change and evolution is an urgent technological challenge in the software engineering field.\u0000 New technologies, new social and cultural trends, a widespread adoption of open source software, the market globalization and new development environments are spelling the requiem to the traditional way in which software evolution research was carried out. Evolution research must evolve and adapt to the new society needs and trends thus turning challenges into opportunities. This keynote attempts to shed some light on key factors such new technology transfer opportunity, the need of benchmarks and the three items each and every research program in software evolution should integrate in one way or the other.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116642905","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Structural analysis and visualization of C++ code evolution using syntax trees 结构分析和可视化c++代码演变使用语法树
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294971
Fanny Chevalier, D. Auber, A. Telea
We present a method to detect and visualize evolution patterns in C++ source code. Our method consists of three steps. First, we extract an annotated syntax tree (AST) from each version of a given C++ source code. Next, we hash the extracted syntax nodes based on a metric combining structure and type information, and construct matches (correspondences) between similar-hash subtrees. Our technique detects code fragments which have not changed, or changed little, during the software evolution. By parameterizing the similarity metric, we can flexibly decide what is considered to be identical or not during the software evolution. Finally, we visualize the evolution of the code structure by emphasizing both changing and constant code patterns. We demonstrate our technique on a versioned code base containing a variety of changes ranging from simple to complex.
提出了一种在c++源代码中检测和可视化演化模式的方法。我们的方法包括三个步骤。首先,我们从给定c++源代码的每个版本中提取一个带注释的语法树(AST)。接下来,我们基于结合结构和类型信息的度量对提取的语法节点进行哈希,并在相似哈希子树之间构造匹配(对应)。我们的技术检测在软件发展过程中没有变化或变化很小的代码片段。通过参数化相似度度量,我们可以灵活地决定在软件进化过程中哪些是相同的,哪些是不相同的。最后,我们通过强调变化和不变的代码模式来可视化代码结构的演变。我们在包含从简单到复杂的各种更改的版本化代码库上演示我们的技术。
{"title":"Structural analysis and visualization of C++ code evolution using syntax trees","authors":"Fanny Chevalier, D. Auber, A. Telea","doi":"10.1145/1294948.1294971","DOIUrl":"https://doi.org/10.1145/1294948.1294971","url":null,"abstract":"We present a method to detect and visualize evolution patterns in C++ source code. Our method consists of three steps. First, we extract an annotated syntax tree (AST) from each version of a given C++ source code. Next, we hash the extracted syntax nodes based on a metric combining structure and type information, and construct matches (correspondences) between similar-hash subtrees. Our technique detects code fragments which have not changed, or changed little, during the software evolution. By parameterizing the similarity metric, we can flexibly decide what is considered to be identical or not during the software evolution. Finally, we visualize the evolution of the code structure by emphasizing both changing and constant code patterns. We demonstrate our technique on a versioned code base containing a variety of changes ranging from simple to complex.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127003658","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 30
Assessment of software system evolvability 软件系统可发展性的评估
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294966
Bente Anda
The evolvability, the ease of further development, of a software systems is difficult to assess, but may have large economic consequences. Many studies have investigated the relations between particular software metrics and effort on evolving individual classes, but little attention has been given to methods for assessing and measuring evolvability of complete software systems. This paper discusses such methods, and motivates that they should use a combination of structural code measures and expert assessments. This is exemplified in a case study assessing the evolvability of four functionally equivalent systems. The paper also gives with directions for future work on evolvability assessments.
软件系统的可发展性和进一步开发的容易程度很难评估,但可能会产生很大的经济后果。许多研究已经调查了特定软件度量和发展单个类的努力之间的关系,但是很少注意到评估和测量完整软件系统的可发展性的方法。本文对这些方法进行了讨论,并提出了结构代码度量和专家评估相结合的方法。这在评估四个功能等效系统的可演化性的案例研究中得到了例证。本文还对今后的演化性评价工作提出了指导意见。
{"title":"Assessment of software system evolvability","authors":"Bente Anda","doi":"10.1145/1294948.1294966","DOIUrl":"https://doi.org/10.1145/1294948.1294966","url":null,"abstract":"The evolvability, the ease of further development, of a software systems is difficult to assess, but may have large economic consequences. Many studies have investigated the relations between particular software metrics and effort on evolving individual classes, but little attention has been given to methods for assessing and measuring evolvability of complete software systems. This paper discusses such methods, and motivates that they should use a combination of structural code measures and expert assessments. This is exemplified in a case study assessing the evolvability of four functionally equivalent systems. The paper also gives with directions for future work on evolvability assessments.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134258402","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Improving context awareness in subversion through fine-grained versioning of Java code 通过对Java代码进行细粒度的版本控制,改进subversion中的上下文感知
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294975
A. D. Lucia, F. Fasano, R. Oliveto, Domenico Santonicola
In this paper, we present an extension of the Subversion command line to support fine-grained versioning of Java code. To this aim, for each Java file under versioning, an XML-based file representing the logical structure of the original file is automatically built by parsing the code. An additional XML-based file is also built to model collaboration constraints. This information is useful to enrich the context awareness by providing developers information about changes made by others to the same logical unit (i.e., class, method, or attribute) of the Java file. Finally, we present an extension of Subclipse, a Subversion front-end implemented as an Eclipse plug-in, aiming to support the fine-grained versioning in Subversion.
在本文中,我们提供了Subversion命令行的扩展,以支持Java代码的细粒度版本控制。为此,对于版本控制下的每个Java文件,通过解析代码自动构建一个表示原始文件逻辑结构的基于xml的文件。另外还构建了一个基于xml的文件来对协作约束进行建模。通过向开发人员提供关于其他人对Java文件的相同逻辑单元(例如,类、方法或属性)所做更改的信息,这些信息对于丰富上下文感知非常有用。最后,我们给出Subclipse的扩展,这是一个作为Eclipse插件实现的Subversion前端,旨在支持Subversion中的细粒度版本控制。
{"title":"Improving context awareness in subversion through fine-grained versioning of Java code","authors":"A. D. Lucia, F. Fasano, R. Oliveto, Domenico Santonicola","doi":"10.1145/1294948.1294975","DOIUrl":"https://doi.org/10.1145/1294948.1294975","url":null,"abstract":"In this paper, we present an extension of the Subversion command line to support fine-grained versioning of Java code. To this aim, for each Java file under versioning, an XML-based file representing the logical structure of the original file is automatically built by parsing the code. An additional XML-based file is also built to model collaboration constraints. This information is useful to enrich the context awareness by providing developers information about changes made by others to the same logical unit (i.e., class, method, or attribute) of the Java file. Finally, we present an extension of Subclipse, a Subversion front-end implemented as an Eclipse plug-in, aiming to support the fine-grained versioning in Subversion.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114075608","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Aggregating changes to efficiently check consistency 聚合更改以有效地检查一致性
Pub Date : 2007-09-03 DOI: 10.1145/1294948.1294959
M. Subramaniam, P. Chundi, Harvey P. Siy
Evolving complex systems from one consistent version to another is a challenging problem. Each version usually requires multiple changes in multiple system components having subtle functional dependencies. Mitigating the costs incurred to check the consistency of a new version is an important concern. An efficient approach to guarantee consistency of the new system is proposed. System components are modeled as communicating finite state machines. A change is a set of update rules that add or delete transitions in the system components. Given a set of changes, the proposed approach automatically generates an aggregated update comprised of groups of update rules. The interactions among the update rules are analyzed in terms of their impacts on the states of the system. Groups of update rules are computed such that each group contains one special rule whose impacted states subsume that of the others in the group. If that rule preserves consistency then the entire group preserves consistency. The proposed approach has been applied to consistently evolve a family of cache coherence protocols with highly encouraging results.
将复杂的系统从一个一致的版本进化到另一个是一个具有挑战性的问题。每个版本通常需要对具有微妙功能依赖关系的多个系统组件进行多次更改。减少检查新版本一致性所产生的成本是一个重要的关注点。提出了一种保证新系统一致性的有效方法。系统组件被建模为通信有限状态机。变更是一组更新规则,用于在系统组件中添加或删除转换。给定一组更改,建议的方法自动生成由更新规则组组成的聚合更新。根据更新规则对系统状态的影响,分析了更新规则之间的相互作用。计算更新规则组,使每个组包含一个特殊规则,其受影响的状态包含该组中其他规则的状态。如果该规则保持一致性,那么整个组保持一致性。所提出的方法已被应用于一致地发展一系列缓存一致性协议,并取得了非常令人鼓舞的结果。
{"title":"Aggregating changes to efficiently check consistency","authors":"M. Subramaniam, P. Chundi, Harvey P. Siy","doi":"10.1145/1294948.1294959","DOIUrl":"https://doi.org/10.1145/1294948.1294959","url":null,"abstract":"Evolving complex systems from one consistent version to another is a challenging problem. Each version usually requires multiple changes in multiple system components having subtle functional dependencies. Mitigating the costs incurred to check the consistency of a new version is an important concern. An efficient approach to guarantee consistency of the new system is proposed. System components are modeled as communicating finite state machines. A change is a set of update rules that add or delete transitions in the system components. Given a set of changes, the proposed approach automatically generates an aggregated update comprised of groups of update rules. The interactions among the update rules are analyzed in terms of their impacts on the states of the system. Groups of update rules are computed such that each group contains one special rule whose impacted states subsume that of the others in the group. If that rule preserves consistency then the entire group preserves consistency. The proposed approach has been applied to consistently evolve a family of cache coherence protocols with highly encouraging results.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126488463","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Species evolve, individuals age 物种进化,个体衰老
Pub Date : 2005-09-05 DOI: 10.1109/IWPSE.2005.27
M. Jazayeri
The phenomenon of "software evolution" was observed back in the 1970s when the first large software systems were being developed, and it has attracted renewed attention in the 1990s. Yet, the difficulties of software evolution are still treated as problems that pop up unexpectedly in software projects. In this talk, I look at some possible reasons to explain this apparent contradiction and the possibly related confusion in software evolution research. I point out some ways we can make software evolution research more relevant to software engineering practice. My primary goal is to clarify that what evolves is not the software but our knowledge about a particular type of software.
“软件进化”现象早在20世纪70年代第一个大型软件系统被开发出来的时候就被观察到,并且在20世纪90年代再次引起了人们的关注。然而,软件发展的困难仍然被视为软件项目中突然出现的问题。在这次演讲中,我将探讨一些可能的原因来解释这个明显的矛盾,以及软件进化研究中可能存在的相关困惑。我指出了一些可以使软件进化研究与软件工程实践更加相关的方法。我的主要目标是澄清,进化的不是软件,而是我们对特定类型软件的认识。
{"title":"Species evolve, individuals age","authors":"M. Jazayeri","doi":"10.1109/IWPSE.2005.27","DOIUrl":"https://doi.org/10.1109/IWPSE.2005.27","url":null,"abstract":"The phenomenon of \"software evolution\" was observed back in the 1970s when the first large software systems were being developed, and it has attracted renewed attention in the 1990s. Yet, the difficulties of software evolution are still treated as problems that pop up unexpectedly in software projects. In this talk, I look at some possible reasons to explain this apparent contradiction and the possibly related confusion in software evolution research. I point out some ways we can make software evolution research more relevant to software engineering practice. My primary goal is to clarify that what evolves is not the software but our knowledge about a particular type of software.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"194 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116302064","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 26
Evolvable programming based on collaboration-field and role model 基于协作领域和角色模型的可进化编程
Pub Date : 2002-05-19 DOI: 10.1145/512035.512037
T. Tamai
This is a brief introduction to our research on a collaboration field and role model aiming to support evolvable software design and programming.
本文简要介绍了我们对协作领域和角色模型的研究,旨在支持可进化的软件设计和编程。
{"title":"Evolvable programming based on collaboration-field and role model","authors":"T. Tamai","doi":"10.1145/512035.512037","DOIUrl":"https://doi.org/10.1145/512035.512037","url":null,"abstract":"This is a brief introduction to our research on a collaboration field and role model aiming to support evolvable software design and programming.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127474296","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 17
Fostering component evolution with C# attributes 用c#属性促进组件进化
Pub Date : 2002-05-19 DOI: 10.1145/512035.512041
C. Ghezzi, Mattia Monga
This paper discusses the problems arising when object oriented libraries are evolved through the subclass mechanism. The overriding of a method may in fact produce undesirable side effects in the behavior of other methods. More generally, the designer of an extension may be unaware of the dependencies among class features, which should be taken into account when a class is evolved.The paper shows how the C# language allows such dependencies to be documented using attributes. Attributes may be retrieved via reflective mechanisms that can be used by a tool --- a design assistant --- which may guide designers while they evolve and reuse existing class libraries. To facilitate the approach another tool may automatically record dependency attributes for each class.The approach is also shown to help in the case of the so-called semantic fragile base class problem that has been illustrated in the literature.
本文讨论了通过子类机制发展面向对象库时出现的问题。实际上,方法的重写可能会对其他方法的行为产生不良的副作用。更一般地说,扩展的设计者可能不知道类特性之间的依赖关系,而这在类进化时应该考虑进去。这篇论文展示了c#语言如何允许使用属性来记录这种依赖关系。属性可以通过反射机制来检索,这种机制可以被一个工具——一个设计助手——使用,它可以在设计人员发展和重用现有类库时指导他们。为了方便这种方法,另一个工具可以自动记录每个类的依赖属性。该方法还被证明有助于解决文献中所阐述的所谓的语义脆弱基类问题。
{"title":"Fostering component evolution with C# attributes","authors":"C. Ghezzi, Mattia Monga","doi":"10.1145/512035.512041","DOIUrl":"https://doi.org/10.1145/512035.512041","url":null,"abstract":"This paper discusses the problems arising when object oriented libraries are evolved through the subclass mechanism. The overriding of a method may in fact produce undesirable side effects in the behavior of other methods. More generally, the designer of an extension may be unaware of the dependencies among class features, which should be taken into account when a class is evolved.The paper shows how the C# language allows such dependencies to be documented using attributes. Attributes may be retrieved via reflective mechanisms that can be used by a tool --- a design assistant --- which may guide designers while they evolve and reuse existing class libraries. To facilitate the approach another tool may automatically record dependency attributes for each class.The approach is also shown to help in the case of the so-called semantic fragile base class problem that has been illustrated in the literature.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126086489","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
期刊
International Workshop on Principles of Software Evolution
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1