首页 > 最新文献

Proceedings International Symposium on Principles of Software Evolution最新文献

英文 中文
Managing software evolution with the service concept 用服务概念管理软件演进
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913220
T. Mikkonen, Eero Liihde, Juhapekka Niemi, Marko Siiskonen
Software-intensive systems evolve. Properties embedded in them seldom benefit from this, as the modifications needed for supporting new features do not always match with software structures that originally constitute the system. This results in special cases and exceptions for intended abstractions, and consequently creates problems for the future evolution of the system. In order to improve the facilities that enable the management of the evolution of telecommunications system software, we have introduced the notion of services. The purpose of the service concept is to enable an abstract description of conceptual properties of the system disregarding their final relation to underlying software components of the implementation. Therefore, services provide a view of the system where the focus can be shifted from individual implementation components to their collaboration at varying levels of abstraction. Based on this collaboration, we then define a virtual architecture that helps in managing software evolution. We introduce the basic notion of services, and present experiences on employing the concept in practice.
软件密集型系统不断发展。嵌入其中的属性很少从中受益,因为支持新特性所需的修改并不总是与最初构成系统的软件结构相匹配。这将导致预期抽象的特殊情况和异常,并最终为系统的未来发展带来问题。为了改善管理电讯系统软件发展的设施,我们引入了服务的概念。服务概念的目的是支持对系统的概念性属性的抽象描述,而不考虑它们与实现的底层软件组件的最终关系。因此,服务提供了一个系统视图,在这个视图中,焦点可以从单个实现组件转移到它们在不同抽象级别上的协作。在此协作的基础上,我们定义了一个有助于管理软件演进的虚拟架构。介绍了服务的基本概念,并介绍了在实践中运用服务的经验。
{"title":"Managing software evolution with the service concept","authors":"T. Mikkonen, Eero Liihde, Juhapekka Niemi, Marko Siiskonen","doi":"10.1109/ISPSE.2000.913220","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913220","url":null,"abstract":"Software-intensive systems evolve. Properties embedded in them seldom benefit from this, as the modifications needed for supporting new features do not always match with software structures that originally constitute the system. This results in special cases and exceptions for intended abstractions, and consequently creates problems for the future evolution of the system. In order to improve the facilities that enable the management of the evolution of telecommunications system software, we have introduced the notion of services. The purpose of the service concept is to enable an abstract description of conceptual properties of the system disregarding their final relation to underlying software components of the implementation. Therefore, services provide a view of the system where the focus can be shifted from individual implementation components to their collaboration at varying levels of abstraction. Based on this collaboration, we then define a virtual architecture that helps in managing software evolution. We introduce the basic notion of services, and present experiences on employing the concept in practice.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115012892","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}
引用次数: 11
Speed and scale up software reengineering with abstraction patterns and rules 使用抽象模式和规则来加速和扩展软件再工程
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913226
Xiaodong Liu, Hongji Yang, H. Zedan, A. Cau
Software reengineering is an essential part of software evolution. Two important issues faced by software reengineering techniques are the time involved and the ability to cope with the scale of software systems. Unless these two issues have been addressed properly, the real use of any reengineering technique is limited. Our observation shows that these two issues mainly occur at the reverse engineering stage of reengineering, i.e., the stage to understand the existing software systems. We propose an approach to address these two issues through executable stepwise abstraction. A semi-automatic tool environment is built to abstract the target system into higher level views more quickly to improve the efficiency, and to stepwise abstract the sub-systems of the target system first and then to further abstract the higher level view of the sub-systems into the full view of the target system. Since full automation of reengineering is not possible yet, which is a well accepted view by the community, a set of abstraction patterns are developed to acquire expert observations of the target system as abstraction pattern assertions. Our approach attempts to maximise the automation with the assistance of abstraction rules and abstraction pattern assertions.
软件再造是软件发展的重要组成部分。软件再造技术面临的两个重要问题是所涉及的时间和处理软件系统规模的能力。除非这两个问题得到妥善解决,否则任何再工程技术的真正使用都是有限的。我们的观察表明,这两个问题主要发生在再造的逆向工程阶段,即了解现有软件系统的阶段。我们提出了一种通过可执行的逐步抽象来解决这两个问题的方法。为了提高效率,构建了一个半自动的工具环境,将目标系统更快地抽象为更高层次的视图,并先对目标系统的子系统进行逐步抽象,然后再将子系统的更高层次视图抽象为目标系统的整体视图。由于再造的完全自动化还不可能实现(这是社区普遍接受的观点),因此开发了一组抽象模式,以获取作为抽象模式断言的目标系统的专家观察结果。我们的方法试图在抽象规则和抽象模式断言的帮助下最大限度地实现自动化。
{"title":"Speed and scale up software reengineering with abstraction patterns and rules","authors":"Xiaodong Liu, Hongji Yang, H. Zedan, A. Cau","doi":"10.1109/ISPSE.2000.913226","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913226","url":null,"abstract":"Software reengineering is an essential part of software evolution. Two important issues faced by software reengineering techniques are the time involved and the ability to cope with the scale of software systems. Unless these two issues have been addressed properly, the real use of any reengineering technique is limited. Our observation shows that these two issues mainly occur at the reverse engineering stage of reengineering, i.e., the stage to understand the existing software systems. We propose an approach to address these two issues through executable stepwise abstraction. A semi-automatic tool environment is built to abstract the target system into higher level views more quickly to improve the efficiency, and to stepwise abstract the sub-systems of the target system first and then to further abstract the higher level view of the sub-systems into the full view of the target system. Since full automation of reengineering is not possible yet, which is a well accepted view by the community, a set of abstraction patterns are developed to acquire expert observations of the target system as abstraction pattern assertions. Our approach attempts to maximise the automation with the assistance of abstraction rules and abstraction pattern assertions.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117075175","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}
引用次数: 7
Generating linkage between source code and evolvable domain knowledge for the ease of software evolution 生成源代码和可演化领域知识之间的链接,以方便软件演化
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913239
Yang Li, Hongji Yang, W. Chu
Business software systems without exception need to be evolved to cater for new/changed market requirements, or to adapt to a new operating environment. One of the most significant problems in current software evolution practice is that software maintainers usually find it quite difficult to locate the program sections in the source code which need to be modified and to identify the extent to which the changes in these program sections could affect the rest of the software system. In this paper, we propose a knowledge engineering-based approach to solving this problem. In particular, we match a software program with a pre-defined domain knowledge base in the representation of a simplified semantic network that we have proposed in order to link the source program with its domain-level interpretation. The domain knowledge base contains only important domain knowledge where potential evolutions could occur; this reduces the size of the knowledge base. Moreover, a domain-oriented program partitioning method is also proposed in order to partition a program into self-contained modules of manageable size. In these ways, the computational complexity involved in generating the linkage is significantly reduced, which makes this approach usable. An example shows that software evolution can be carried out easily as the domain knowledge that it links with evolves.
商业软件系统无一例外地需要不断发展,以迎合新的/变化的市场需求,或适应新的操作环境。当前软件发展实践中最重要的问题之一是,软件维护者通常发现很难找到源代码中需要修改的程序部分,也很难确定这些程序部分的更改对软件系统其余部分的影响程度。在本文中,我们提出了一种基于知识工程的方法来解决这个问题。特别是,我们将软件程序与我们提出的简化语义网络表示中的预定义领域知识库相匹配,以便将源程序与其领域级解释联系起来。领域知识库只包含可能发生潜在演化的重要领域知识;这减少了知识库的大小。此外,还提出了一种面向领域的程序划分方法,将程序划分为可管理大小的自包含模块。通过这些方法,生成连杆所涉及的计算复杂性大大降低,这使得该方法可用。一个实例表明,软件进化可以很容易地作为它所链接的领域知识进行进化。
{"title":"Generating linkage between source code and evolvable domain knowledge for the ease of software evolution","authors":"Yang Li, Hongji Yang, W. Chu","doi":"10.1109/ISPSE.2000.913239","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913239","url":null,"abstract":"Business software systems without exception need to be evolved to cater for new/changed market requirements, or to adapt to a new operating environment. One of the most significant problems in current software evolution practice is that software maintainers usually find it quite difficult to locate the program sections in the source code which need to be modified and to identify the extent to which the changes in these program sections could affect the rest of the software system. In this paper, we propose a knowledge engineering-based approach to solving this problem. In particular, we match a software program with a pre-defined domain knowledge base in the representation of a simplified semantic network that we have proposed in order to link the source program with its domain-level interpretation. The domain knowledge base contains only important domain knowledge where potential evolutions could occur; this reduces the size of the knowledge base. Moreover, a domain-oriented program partitioning method is also proposed in order to partition a program into self-contained modules of manageable size. In these ways, the computational complexity involved in generating the linkage is significantly reduced, which makes this approach usable. An example shows that software evolution can be carried out easily as the domain knowledge that it links with evolves.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128731357","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
Towards a theory of software evolution - and its practical impact 迈向软件进化的理论——以及它的实际影响
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913215
M. Lehman, J. F. Ramil
After years of study of software evolution processes, most recently in the FEASTprojects, it appears that there is now a sufJicient body of knowledge to provide a basis for development of a theory of software evolution rooted in axioms derived from observation. That body includes, for example, behavioural patterns and invariants in the evolutionary attributes of industrially evolved systems and the processes applied to implement them. This paper discusses the need for such a theory, underlying concepts and the contribution that a theory could make to achieving greater software evolvability and improved planning and management for effective and responsive evolution. A brief discussion of the evolution phenomenon and some of its characteristics is followed by a listing of some of the management guidelines that have arisen from recent FEAST studies. These were derived from a series of observations and inferences that suggest an initial set of axioms from which a formal theory of software evolution may be developed. The set is of interest because it is believed that, after further clarification, the set suffices for a proof of the principle of software uncertainty. As more theorems are proven their interpretation should provide guidelines for the development of evolvable software architectures and suggest rules and guidelines for software evolution planning and management. Eventually, the rules already developed by ad hoc means, together with additional rules and other good practices should be formally derivable from the emerging theory.
经过多年对软件进化过程的研究,最近在feast项目中,现在似乎已经有了足够的知识体系,可以为基于观察得出的公理的软件进化理论的发展提供基础。例如,该机构包括工业进化系统的进化属性中的行为模式和不变量,以及用于实施它们的过程。本文讨论了对这样一个理论的需求,潜在的概念,以及理论对实现更大的软件可发展性和改进的计划和管理的贡献,以实现有效和响应性的发展。简要讨论了进化现象及其一些特征,然后列出了从最近的FEAST研究中产生的一些管理准则。这些是从一系列的观察和推论中得出的,这些观察和推论提出了一组初始的公理,从这些公理中可以发展出软件进化的形式化理论。我们对这个集合感兴趣是因为我们相信,在进一步澄清之后,这个集合足以证明软件不确定性原理。随着越来越多的定理被证明,它们的解释应该为可演化软件架构的开发提供指导方针,并为软件演化计划和管理提供规则和指导方针。最终,已经通过特别手段制定的规则,连同其他规则和其他良好实践,应该从新兴理论中正式推导出来。
{"title":"Towards a theory of software evolution - and its practical impact","authors":"M. Lehman, J. F. Ramil","doi":"10.1109/ISPSE.2000.913215","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913215","url":null,"abstract":"After years of study of software evolution processes, most recently in the FEASTprojects, it appears that there is now a sufJicient body of knowledge to provide a basis for development of a theory of software evolution rooted in axioms derived from observation. That body includes, for example, behavioural patterns and invariants in the evolutionary attributes of industrially evolved systems and the processes applied to implement them. This paper discusses the need for such a theory, underlying concepts and the contribution that a theory could make to achieving greater software evolvability and improved planning and management for effective and responsive evolution. A brief discussion of the evolution phenomenon and some of its characteristics is followed by a listing of some of the management guidelines that have arisen from recent FEAST studies. These were derived from a series of observations and inferences that suggest an initial set of axioms from which a formal theory of software evolution may be developed. The set is of interest because it is believed that, after further clarification, the set suffices for a proof of the principle of software uncertainty. As more theorems are proven their interpretation should provide guidelines for the development of evolvable software architectures and suggest rules and guidelines for software evolution planning and management. Eventually, the rules already developed by ad hoc means, together with additional rules and other good practices should be formally derivable from the emerging theory.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115859448","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}
引用次数: 63
Cooperative constraint functional logic programming 协同约束函数逻辑规划
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913241
M. Marin, T. Ida
Describes the current status of the development of CFLP (constraint functional logic programming), a system which aims at the integration of the best features of functional logic programming (FLP), cooperative constraint solving (CCS) and distributed constraint solving. FLP provides support for defining one's own abstractions (user-defined functions and predicates) over a constraint domain in an easy and comfortable way, whereas CCS is employed to solve systems of mixed constraints by iterating specialized constraint-solving methods in accordance with a well-defined strategy. CFLP is a distributed implementation of a cooperative FLP scheme obtained from the integration of higher-order lazy narrowing for FLP with CCS. The implementation takes advantage of the existence of several constraint-solving resources located in a distributed environment, which communicate asynchronously via message passing.
介绍了约束功能逻辑规划(CFLP)的发展现状,CFLP是一个旨在将功能逻辑规划(FLP)、协同约束求解(CCS)和分布式约束求解的最佳特性集成在一起的系统。FLP支持以一种简单舒适的方式在约束域上定义自己的抽象(用户定义的函数和谓词),而CCS则通过根据定义良好的策略迭代专门的约束求解方法来解决混合约束系统。CFLP是一种协作FLP方案的分布式实现,该方案是将FLP的高阶延迟缩小与CCS相结合而得到的。该实现利用了分布式环境中存在的几个约束解决资源,这些资源通过消息传递进行异步通信。
{"title":"Cooperative constraint functional logic programming","authors":"M. Marin, T. Ida","doi":"10.1109/ISPSE.2000.913241","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913241","url":null,"abstract":"Describes the current status of the development of CFLP (constraint functional logic programming), a system which aims at the integration of the best features of functional logic programming (FLP), cooperative constraint solving (CCS) and distributed constraint solving. FLP provides support for defining one's own abstractions (user-defined functions and predicates) over a constraint domain in an easy and comfortable way, whereas CCS is employed to solve systems of mixed constraints by iterating specialized constraint-solving methods in accordance with a well-defined strategy. CFLP is a distributed implementation of a cooperative FLP scheme obtained from the integration of higher-order lazy narrowing for FLP with CCS. The implementation takes advantage of the existence of several constraint-solving resources located in a distributed environment, which communicate asynchronously via message passing.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"237-240 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130748833","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}
引用次数: 9
Supporting compositional styles for software evolution 支持软件进化的组合样式
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913216
Oscar Nierstrasz, F. Achermann
Software is not just difficult to develop, it is even more difficult to maintain in the face of changing requirements. The complexity of software evolution can, however be significantly reduced if we manage to separate the stable artifacts (the "components") from their configuration (the "scripts"). We have proposed a simple, unifying framework of forms, agents, and channels for modelling components and scripts, and we have developed an experimental composition language, called Piccola, based on this framework, that supports the specification of applications as flexible compositions of stable components. We show how Piccola can be used to reduce the complexity of software evolution through the specification and use of an appropriate compositional style, and we illustrate the approach through a non-trivial example of mixin layer composition.
软件不仅难以开发,在面对不断变化的需求时,维护更是难上加难。然而,如果我们设法将稳定的工件(“组件”)与它们的配置(“脚本”)分离,那么软件进化的复杂性可以显著降低。我们提出了一个简单、统一的表单、代理和通道框架,用于对组件和脚本进行建模,我们还基于这个框架开发了一种实验性的组合语言Piccola,它支持将应用程序规范为稳定组件的灵活组合。我们展示了Piccola如何通过规范和使用适当的组合风格来降低软件进化的复杂性,并通过一个重要的混合层组合示例来说明该方法。
{"title":"Supporting compositional styles for software evolution","authors":"Oscar Nierstrasz, F. Achermann","doi":"10.1109/ISPSE.2000.913216","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913216","url":null,"abstract":"Software is not just difficult to develop, it is even more difficult to maintain in the face of changing requirements. The complexity of software evolution can, however be significantly reduced if we manage to separate the stable artifacts (the \"components\") from their configuration (the \"scripts\"). We have proposed a simple, unifying framework of forms, agents, and channels for modelling components and scripts, and we have developed an experimental composition language, called Piccola, based on this framework, that supports the specification of applications as flexible compositions of stable components. We show how Piccola can be used to reduce the complexity of software evolution through the specification and use of an appropriate compositional style, and we illustrate the approach through a non-trivial example of mixin layer composition.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133774555","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}
引用次数: 23
Describing consistent component extension with expression of dependence 用依赖表达式描述一致的组件扩展
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913218
W. Qiu
The component technology will promise to cope with software evolution by extending and adapting only the affected parts. It is important to ensure consistency of extended and extending components. The consistency is generally determined with respect to some desired properties. The paper concentrates on the issue of composition safety: system-wide rules must not be violated by an extension. A component dependence model is presented in the paper. Besides the interface specification, we also require the model to explicitly express the needs provided by other components. Semantically, the dependence relationship asserts that a component satisfies property P if its depended component preserves property Q. The paper shows a crucial requirement to ensure composition safety is that an extending component should enhance functionality of the extended component but weaken the dependence. The logical framework is based on refinement calculus.
组件技术将承诺通过仅扩展和适应受影响的部分来应对软件的演变。确保扩展组件和扩展组件的一致性非常重要。一致性通常是根据某些期望的性质来确定的。本文集中讨论了组合安全问题:系统范围内的规则不能被扩展所违反。提出了一种组件依赖模型。除了接口规范之外,我们还要求模型显式地表达其他组件提供的需求。在语义上,依赖关系断言,如果被依赖的组件保持属性q,则组件满足属性P。本文指出,确保组合安全的一个关键要求是,扩展组件应增强被扩展组件的功能,但减弱依赖。逻辑框架是基于细化演算的。
{"title":"Describing consistent component extension with expression of dependence","authors":"W. Qiu","doi":"10.1109/ISPSE.2000.913218","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913218","url":null,"abstract":"The component technology will promise to cope with software evolution by extending and adapting only the affected parts. It is important to ensure consistency of extended and extending components. The consistency is generally determined with respect to some desired properties. The paper concentrates on the issue of composition safety: system-wide rules must not be violated by an extension. A component dependence model is presented in the paper. Besides the interface specification, we also require the model to explicitly express the needs provided by other components. Semantically, the dependence relationship asserts that a component satisfies property P if its depended component preserves property Q. The paper shows a crucial requirement to ensure composition safety is that an extending component should enhance functionality of the extended component but weaken the dependence. The logical framework is based on refinement calculus.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"170 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124136481","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
A meta-model for language-independent refactoring 用于独立于语言的重构的元模型
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913233
S. Tichelaar, Stéphane Ducasse, S. Demeyer, Oscar Nierstrasz
Refactoring-transforming code while preserving behaviour-is considered a key approach for improving object-oriented software systems. Unfortunately, all of the current refactoring tools depend on language-dependent refactoring engines, which prevents a smooth integration with mainstream development environments. We investigate the similarities between refactorings for Smalltalk and Java, derive a language-independent meta-model and show that it is feasible to build a language-independent refactoring engine on top of this meta-model. Our feasibility study is validated by means of a tool prototype which uses the same engine to refactor both Smalltalk and Java code. Using our approach we minimize the language-dependent part of refactoring tools, providing a standard way for programmers and tools to perform refactorings no matter what language they work in.
重构——在保留行为的同时转换代码——被认为是改进面向对象软件系统的关键方法。不幸的是,当前所有的重构工具都依赖于依赖于语言的重构引擎,这阻碍了与主流开发环境的顺利集成。我们研究了Smalltalk和Java的重构之间的相似之处,推导了一个独立于语言的元模型,并证明了在这个元模型之上构建一个独立于语言的重构引擎是可行的。我们的可行性研究是通过一个工具原型来验证的,这个工具原型使用了相同的引擎来重构Smalltalk和Java代码。使用我们的方法,我们最大限度地减少了重构工具中与语言相关的部分,为程序员和工具提供了一种执行重构的标准方法,无论他们使用的是哪种语言。
{"title":"A meta-model for language-independent refactoring","authors":"S. Tichelaar, Stéphane Ducasse, S. Demeyer, Oscar Nierstrasz","doi":"10.1109/ISPSE.2000.913233","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913233","url":null,"abstract":"Refactoring-transforming code while preserving behaviour-is considered a key approach for improving object-oriented software systems. Unfortunately, all of the current refactoring tools depend on language-dependent refactoring engines, which prevents a smooth integration with mainstream development environments. We investigate the similarities between refactorings for Smalltalk and Java, derive a language-independent meta-model and show that it is feasible to build a language-independent refactoring engine on top of this meta-model. Our feasibility study is validated by means of a tool prototype which uses the same engine to refactor both Smalltalk and Java code. Using our approach we minimize the language-dependent part of refactoring tools, providing a standard way for programmers and tools to perform refactorings no matter what language they work in.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"222 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124394997","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}
引用次数: 121
Calculation carrying programs - how to code program transformations 计算承载程序-如何编码程序转换
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913246
M. Takeichi, Zhenjiang Hu
Proposes a new mechanism called "calculation-carrying programs" that can relax the tension between efficiency and clarity in programming. The idea is to accompany clear programs with some calculation specifying the intention of how to manipulate the programs to be efficient. This calculation specification can be executed automatically by our compiler to derive efficient programs. As a result, each calculation-carrying program becomes a complete document, including a concise specification of the given problem, as well as an effective way to derive both efficient and correct code.
提出了一种新的机制,称为“计算承载程序”,可以缓解编程效率和清晰度之间的紧张关系。这个想法是伴随着清晰的程序和一些计算来指定如何操作程序以提高效率的意图。该计算规范可由编译器自动执行,从而生成高效的程序。因此,每个承载计算的程序都成为一个完整的文档,包括给定问题的简明说明,以及获得高效和正确代码的有效方法。
{"title":"Calculation carrying programs - how to code program transformations","authors":"M. Takeichi, Zhenjiang Hu","doi":"10.1109/ISPSE.2000.913246","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913246","url":null,"abstract":"Proposes a new mechanism called \"calculation-carrying programs\" that can relax the tension between efficiency and clarity in programming. The idea is to accompany clear programs with some calculation specifying the intention of how to manipulate the programs to be efficient. This calculation specification can be executed automatically by our compiler to derive efficient programs. As a result, each calculation-carrying program becomes a complete document, including a concise specification of the given problem, as well as an effective way to derive both efficient and correct code.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125883734","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}
引用次数: 4
Object-oriented modeling of software patterns 软件模式的面向对象建模
Pub Date : 2000-11-01 DOI: 10.1109/ISPSE.2000.913227
T. Kobayashi, M. Kamo, T. Sanui, M. Saeki
This paper discusses a technique to model software patterns such as Gang-OF-Four (GOF) design patterns for supporting pattern based software development. Software patterns are general structures that frequently appear in the artifacts and encourage effective reuse of past successful experience. To support pattern based software development, we model the patterns from an object-oriented view so that machine processing is possible. In our approach, we consider that a pattern consists of a pattern structure (a class diagram) and manipulation operations on the pattern structure in order to use it. These manipulations are classified into three types; pattern instantiation (applying a pattern to an actual problem, i.e. filling their hot spots), pattern combination (combining several patterns into larger one) and pattern refinement (refine a pattern into more concrete one). These manipulation operations are specific to patterns and each pattern is a class which they are encapsulated into. We describe 22 Gang-Of-Four design patterns with Java and develop a supporting tool for using patterns. The tool has been developed by using our approach itself and it shows the usefulness of our approach.
本文讨论了一种建模软件模式的技术,例如四人组(GOF)设计模式,以支持基于模式的软件开发。软件模式是经常出现在工件中的一般结构,并鼓励对过去成功经验的有效重用。为了支持基于模式的软件开发,我们从面向对象的视图对模式进行建模,以便机器处理成为可能。在我们的方法中,我们认为模式由模式结构(类图)和对模式结构的操作操作组成,以便使用它。这些操作分为三种类型;模式实例化(将模式应用于实际问题,即填充其热点)、模式组合(将多个模式组合为一个更大的模式)和模式细化(将模式细化为更具体的模式)。这些操作操作是特定于模式的,每个模式都是它们被封装到的一个类。我们用Java描述了22种Gang-Of-Four设计模式,并开发了一个使用模式的支持工具。该工具是通过使用我们的方法本身开发的,它显示了我们的方法的有用性。
{"title":"Object-oriented modeling of software patterns","authors":"T. Kobayashi, M. Kamo, T. Sanui, M. Saeki","doi":"10.1109/ISPSE.2000.913227","DOIUrl":"https://doi.org/10.1109/ISPSE.2000.913227","url":null,"abstract":"This paper discusses a technique to model software patterns such as Gang-OF-Four (GOF) design patterns for supporting pattern based software development. Software patterns are general structures that frequently appear in the artifacts and encourage effective reuse of past successful experience. To support pattern based software development, we model the patterns from an object-oriented view so that machine processing is possible. In our approach, we consider that a pattern consists of a pattern structure (a class diagram) and manipulation operations on the pattern structure in order to use it. These manipulations are classified into three types; pattern instantiation (applying a pattern to an actual problem, i.e. filling their hot spots), pattern combination (combining several patterns into larger one) and pattern refinement (refine a pattern into more concrete one). These manipulation operations are specific to patterns and each pattern is a class which they are encapsulated into. We describe 22 Gang-Of-Four design patterns with Java and develop a supporting tool for using patterns. The tool has been developed by using our approach itself and it shows the usefulness of our approach.","PeriodicalId":170375,"journal":{"name":"Proceedings International Symposium on Principles of Software Evolution","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130023372","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}
引用次数: 4
期刊
Proceedings International Symposium 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