首页 > 最新文献

Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.最新文献

英文 中文
Understanding Web applications through dynamic analysis 通过动态分析理解Web应用程序
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311054
G. Antoniol, M. D. Penta, M. Zazzara
The relevance and pervasiveness of Web applications as a vital part of modern enterprise systems has significantly increased in recent years. However, the lack of adequate documentation promotes the need for reverse engineering tools aiming at supporting Web application maintenance and evolution tasks. A nontrivial Web application is a complex artifact integrating technologies such as scripting languages, middleware, Web services, data warehouses and databases. The task to recover abstractions requires the adoption of dynamic analyses to complement the information gathered with static analyses. This paper presents an approach and a tool, named WANDA, that instruments Web applications and combines static and dynamic information to recover the as-is architecture and, in general, the UML documentation of the application itself. To this aim we propose an extension of the Conallen UML diagrams to account for detailed dynamic information. The tool has been implemented and tested on several Web applications. Its architecture has been conceived to allow easy customization and extension. The paper presents our tool in the context of a program understanding task; however, it can be usefully applied to many other tasks such as profiling, security and dependability verification and application restructuring.
Web应用程序作为现代企业系统的重要组成部分,其相关性和普遍性近年来显著提高。然而,缺乏足够的文档促使人们需要旨在支持Web应用程序维护和演进任务的逆向工程工具。一个重要的Web应用程序是一个复杂的工件,它集成了脚本语言、中间件、Web服务、数据仓库和数据库等技术。恢复抽象的任务需要采用动态分析来补充用静态分析收集的信息。本文提出了一种方法和一种名为WANDA的工具,它将Web应用程序和静态和动态信息结合起来,以恢复原有的体系结构,以及通常情况下应用程序本身的UML文档。为此,我们提出了Conallen UML图的扩展,以说明详细的动态信息。该工具已经在几个Web应用程序上实现并进行了测试。它的体系结构被设计成允许轻松的定制和扩展。本文在程序理解任务的背景下介绍了我们的工具;然而,它可以有效地应用于许多其他任务,如分析、安全性和可靠性验证以及应用程序重构。
{"title":"Understanding Web applications through dynamic analysis","authors":"G. Antoniol, M. D. Penta, M. Zazzara","doi":"10.1109/WPC.2004.1311054","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311054","url":null,"abstract":"The relevance and pervasiveness of Web applications as a vital part of modern enterprise systems has significantly increased in recent years. However, the lack of adequate documentation promotes the need for reverse engineering tools aiming at supporting Web application maintenance and evolution tasks. A nontrivial Web application is a complex artifact integrating technologies such as scripting languages, middleware, Web services, data warehouses and databases. The task to recover abstractions requires the adoption of dynamic analyses to complement the information gathered with static analyses. This paper presents an approach and a tool, named WANDA, that instruments Web applications and combines static and dynamic information to recover the as-is architecture and, in general, the UML documentation of the application itself. To this aim we propose an extension of the Conallen UML diagrams to account for detailed dynamic information. The tool has been implemented and tested on several Web applications. Its architecture has been conceived to allow easy customization and extension. The paper presents our tool in the context of a program understanding task; however, it can be usefully applied to many other tasks such as profiling, security and dependability verification and application restructuring.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124313183","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}
引用次数: 55
An eclipse plug-in for model checking 用于模型检查的eclipse插件
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311069
Dirk Beyer, T. Henzinger, Ranjit Jhala, R. Majumdar
While model checking has been successful in uncovering subtle bugs in code, its adoption in software engineering practice has been hampered by the absence of a simple interface to the programmer in an integrated development environment. We describe an integration of the software model checker BLAST into the Eclipse development environment. We provide a verification interface for practical solutions for some typical program analysis problems - assertion checking, reachability analysis, dead code analysis, and test generation - directly on the source code. The analysis is completely automatic, and assumes no knowledge of model checking or formal notation. Moreover, the interface supports incremental program verification to support incremental design and evolution of code.
虽然模型检查成功地发现了代码中的细微错误,但由于在集成开发环境中缺少对程序员的简单接口,它在软件工程实践中的采用受到了阻碍。我们描述了将软件模型检查器BLAST集成到Eclipse开发环境中的过程。我们为一些典型的程序分析问题——断言检查、可达性分析、死代码分析和测试生成——直接在源代码上提供了一个验证接口。分析是完全自动的,并且不需要模型检查或正式符号的知识。此外,该接口支持增量程序验证,以支持代码的增量设计和演进。
{"title":"An eclipse plug-in for model checking","authors":"Dirk Beyer, T. Henzinger, Ranjit Jhala, R. Majumdar","doi":"10.1109/WPC.2004.1311069","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311069","url":null,"abstract":"While model checking has been successful in uncovering subtle bugs in code, its adoption in software engineering practice has been hampered by the absence of a simple interface to the programmer in an integrated development environment. We describe an integration of the software model checker BLAST into the Eclipse development environment. We provide a verification interface for practical solutions for some typical program analysis problems - assertion checking, reachability analysis, dead code analysis, and test generation - directly on the source code. The analysis is completely automatic, and assumes no knowledge of model checking or formal notation. Moreover, the interface supports incremental program verification to support incremental design and evolution of code.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"85 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121497236","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}
引用次数: 18
Understanding class evolution in object-oriented software 理解面向对象软件中的类演化
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311045
Zhenchang Xing, Eleni Stroulia
In the context of object-oriented design, software systems model real-world entities abstractly represented in the system classes. As the system evolves through its lifecycle, its class design also evolves. Thus, understanding class evolution is essential in understanding the current design of the system and the rationale behind its evolution. In this paper, we describe a taxonomy of class-evolution profiles, a method for automatically categorizing a system's classes in one (or more) of eight types in the taxonomy, and a data-mining method for eliciting co-evolution relations among them. These methods rely on our UMLDiff algorithm that, given a sequence of UML class models of a system, surfaces the design-level changes over its lifecycle. The recovered knowledge about class evolution facilitates the overall understanding of the system class-design evolution and the identification of the specific classes that should be investigated in more detail towards improving the system-design qualities. We report on two case studies evaluating our approach.
在面向对象设计的上下文中,软件系统对系统类中抽象表示的现实世界实体进行建模。随着系统生命周期的发展,它的类设计也在发展。因此,理解类的演化对于理解系统的当前设计及其演化背后的基本原理至关重要。在本文中,我们描述了一种类进化概况的分类法,一种将系统的类自动分类为分类法中八种类型中的一种(或多种)的方法,以及一种用于引出它们之间共同进化关系的数据挖掘方法。这些方法依赖于我们的UMLDiff算法,给定系统的UML类模型序列,在其生命周期中显示设计级更改。恢复的关于类演化的知识促进了对系统类设计演化的整体理解,并确定了应该更详细地研究以提高系统设计质量的特定类。我们报告了两个评估我们方法的案例研究。
{"title":"Understanding class evolution in object-oriented software","authors":"Zhenchang Xing, Eleni Stroulia","doi":"10.1109/WPC.2004.1311045","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311045","url":null,"abstract":"In the context of object-oriented design, software systems model real-world entities abstractly represented in the system classes. As the system evolves through its lifecycle, its class design also evolves. Thus, understanding class evolution is essential in understanding the current design of the system and the rationale behind its evolution. In this paper, we describe a taxonomy of class-evolution profiles, a method for automatically categorizing a system's classes in one (or more) of eight types in the taxonomy, and a data-mining method for eliciting co-evolution relations among them. These methods rely on our UMLDiff algorithm that, given a sequence of UML class models of a system, surfaces the design-level changes over its lifecycle. The recovered knowledge about class evolution facilitates the overall understanding of the system class-design evolution and the identification of the specific classes that should be investigated in more detail towards improving the system-design qualities. We report on two case studies evaluating our approach.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128777091","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}
引用次数: 58
Data mining source code to facilitate program comprehension: experiments on clustering data retrieved from C++ programs 便于程序理解的数据挖掘源代码:从c++程序中检索到的聚类数据的实验
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311063
Y. Kanellopoulos, Christos Tjortjis
This paper presents ongoing work on using data mining to discover knowledge about software systems thus facilitating program comprehension. We discuss how this work fits in the context of tool supported maintenance and comprehension and report on applying a new methodology on C++ programs. The overall framework can provide practical insights and guide the maintainer through the specifics of systems, assuming little familiarity with these. The contribution of this work is two-fold: it provides a model and associated method to extract data from C++ source code which is subsequently to be mined, and evaluates a proposed framework for clustering such data to obtain useful knowledge. The methodology is evaluated on three open source applications, results are assessed and conclusions are presented. This paper concludes with directions for future work.
本文介绍了正在进行的使用数据挖掘来发现关于软件系统的知识从而促进程序理解的工作。我们讨论了这项工作如何适应工具支持的维护和理解的环境,并报告了在c++程序中应用一种新的方法。总体框架可以提供实用的见解,并指导维护人员了解系统的细节,假设对这些不太熟悉。这项工作的贡献是双重的:它提供了一个模型和相关的方法来从c++源代码中提取随后要挖掘的数据,并评估了一个建议的框架来聚类这些数据以获得有用的知识。在三个开源应用程序上对该方法进行了评估,对结果进行了评估并给出了结论。最后提出了今后工作的方向。
{"title":"Data mining source code to facilitate program comprehension: experiments on clustering data retrieved from C++ programs","authors":"Y. Kanellopoulos, Christos Tjortjis","doi":"10.1109/WPC.2004.1311063","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311063","url":null,"abstract":"This paper presents ongoing work on using data mining to discover knowledge about software systems thus facilitating program comprehension. We discuss how this work fits in the context of tool supported maintenance and comprehension and report on applying a new methodology on C++ programs. The overall framework can provide practical insights and guide the maintainer through the specifics of systems, assuming little familiarity with these. The contribution of this work is two-fold: it provides a model and associated method to extract data from C++ source code which is subsequently to be mined, and evaluates a proposed framework for clustering such data to obtain useful knowledge. The methodology is evaluated on three open source applications, results are assessed and conclusions are presented. This paper concludes with directions for future work.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117018207","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
Tool-supported customization of UML class diagrams for learning complex system models 工具支持的UML类图定制,用于学习复杂的系统模型
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311044
I. Hammouda, Olcay Guldogan, K. Koskimies, Tarja Systä
To employ an existing software library, its structure should be first learned and the required elements should be identified. This can be challenging if the library is large and only a specific part of it should be comprehended. In this paper, we study the problem of learning complex software libraries modeled in UML. It is argued that the learning process can be supported with a tool environment that allows the customization of the UML model according to the context of the learner, stepwise and dynamically chosen learning tasks, and focusing on a particular learning concern at a time. We show how such an environment can be achieved based on the concept of a pattern, using existing tool support. We demonstrate the idea with a part of Symbian platform architecture. The approach is evaluated in a case study where a pattern-driven learning environment is constructed for JPEG interchange file format specifications.
要使用现有的软件库,首先应该了解它的结构,并确定所需的元素。如果库很大,并且只需要理解其中的特定部分,那么这可能是具有挑战性的。本文研究了用UML建模的复杂软件库的学习问题。有人认为,学习过程可以用一个工具环境来支持,这个工具环境允许根据学习者的上下文定制UML模型,逐步地和动态地选择学习任务,并且一次专注于一个特定的学习关注点。我们将展示如何使用现有的工具支持,基于模式的概念实现这样的环境。我们用Symbian平台架构的一部分来演示这个想法。在一个案例研究中对该方法进行了评估,该案例研究为JPEG交换文件格式规范构建了模式驱动的学习环境。
{"title":"Tool-supported customization of UML class diagrams for learning complex system models","authors":"I. Hammouda, Olcay Guldogan, K. Koskimies, Tarja Systä","doi":"10.1109/WPC.2004.1311044","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311044","url":null,"abstract":"To employ an existing software library, its structure should be first learned and the required elements should be identified. This can be challenging if the library is large and only a specific part of it should be comprehended. In this paper, we study the problem of learning complex software libraries modeled in UML. It is argued that the learning process can be supported with a tool environment that allows the customization of the UML model according to the context of the learner, stepwise and dynamically chosen learning tasks, and focusing on a particular learning concern at a time. We show how such an environment can be achieved based on the concept of a pattern, using existing tool support. We demonstrate the idea with a part of Symbian platform architecture. The approach is evaluated in a case study where a pattern-driven learning environment is constructed for JPEG interchange file format specifications.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125580124","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
Reengineering Web applications based on cloned pattern analysis 基于克隆模式分析重新设计Web应用程序
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311055
A. D. Lucia, R. Francese, G. Scanniello, G. Tortora
Web applications are subject to continuous and rapid evolution. Often it happens that programmers indiscriminately duplicate Web pages without considering systematic development and maintenance methods. This practice creates code clones that make Web applications hard to maintain and reuse. This paper presents an approach for reengineering Web applications based on clone analysis that aims at identifying and generalizing static and dynamic pages and navigational patterns of a Web application. Clone analysis is also helpful for identifying literals that can be generated from a database. A case study is described which shows how the proposed approach can be used for restructuring the navigational structure of a Web application by removing redundant code.
Web应用程序受到持续快速发展的影响。程序员经常不加选择地复制Web页面,而不考虑系统的开发和维护方法。这种做法会创建代码克隆,使Web应用程序难以维护和重用。本文提出了一种基于克隆分析的Web应用程序再造方法,该方法旨在识别和概括Web应用程序的静态和动态页面以及导航模式。克隆分析还有助于识别可以从数据库生成的文字。本文描述了一个案例研究,该案例研究展示了如何通过删除冗余代码来使用所建议的方法来重构Web应用程序的导航结构。
{"title":"Reengineering Web applications based on cloned pattern analysis","authors":"A. D. Lucia, R. Francese, G. Scanniello, G. Tortora","doi":"10.1109/WPC.2004.1311055","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311055","url":null,"abstract":"Web applications are subject to continuous and rapid evolution. Often it happens that programmers indiscriminately duplicate Web pages without considering systematic development and maintenance methods. This practice creates code clones that make Web applications hard to maintain and reuse. This paper presents an approach for reengineering Web applications based on clone analysis that aims at identifying and generalizing static and dynamic pages and navigational patterns of a Web application. Clone analysis is also helpful for identifying literals that can be generated from a database. A case study is described which shows how the proposed approach can be used for restructuring the navigational structure of a Web application by removing redundant code.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131440289","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}
引用次数: 36
An empirical study on keyword-based Web site clustering 基于关键词的网站聚类的实证研究
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311062
F. Ricca, P. Tonella, Christian Girardi, E. Pianta
Web site evolution is characterized by a limited support to the understanding activities offered to the developers. In fact, design diagrams are often missing or outdated. A potentially interesting option is to reverse engineer high level views of Web sites from the content of the Web pages. Clustering is a valuable technique that can be used in this respect. Web pages can be clustered together based on the similarity of summary information about their content, represented as a list of automatically extracted keywords. This work presents an empirical study that was conducted to determine the meaningfulness for Web developers of clusters automatically produced from the analysis of the Web page content. Natural language processing (NLP) plays a central role in content analysis and keyword extraction. Thus, a second objective of the study was to assess the contribution of some shallow NLP techniques to the clustering task.
网站发展的特点是对提供给开发人员的理解活动提供有限的支持。事实上,设计图经常丢失或过时。一个潜在的有趣的选择是从Web页面的内容对Web站点的高级视图进行反向工程。在这方面,聚类是一种很有价值的技术。Web页面可以根据其内容的摘要信息的相似性聚在一起,表示为自动提取的关键字列表。这项工作提出了一项实证研究,旨在确定从Web页面内容分析自动生成的集群对Web开发人员的意义。自然语言处理(NLP)在内容分析和关键词提取中起着核心作用。因此,本研究的第二个目标是评估一些浅层自然语言处理技术对聚类任务的贡献。
{"title":"An empirical study on keyword-based Web site clustering","authors":"F. Ricca, P. Tonella, Christian Girardi, E. Pianta","doi":"10.1109/WPC.2004.1311062","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311062","url":null,"abstract":"Web site evolution is characterized by a limited support to the understanding activities offered to the developers. In fact, design diagrams are often missing or outdated. A potentially interesting option is to reverse engineer high level views of Web sites from the content of the Web pages. Clustering is a valuable technique that can be used in this respect. Web pages can be clustered together based on the similarity of summary information about their content, represented as a list of automatically extracted keywords. This work presents an empirical study that was conducted to determine the meaningfulness for Web developers of clusters automatically produced from the analysis of the Web page content. Natural language processing (NLP) plays a central role in content analysis and keyword extraction. Thus, a second objective of the study was to assess the contribution of some shallow NLP techniques to the clustering task.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"311 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134647460","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}
引用次数: 27
Requirements driven software evolution 需求驱动的软件演进
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311070
L. Tahvildari, K. Kontogiannis
Software evolution is an integral part of the software life cycle. Furthermore in the recent years the issue of keeping legacy systems operational in new platforms has become critical and one of the top priorities in IT departments worldwide. The research community and the industry have responded to these challenges by investigating and proposing techniques for analyzing, transforming, integrating, and porting software systems to new platforms, languages, and operating environments. However, measuring and ensuring that compliance of the migrant system with specific target requirements have not been formally and thoroughly addressed. We believe that issues such as the identification, measurement, and evaluation of specific re-engineering and transformation strategies and their impact on the quality of the migrant system pose major challenges in the software re-engineering community. Other related problems include the verification, validation, and testing of migrant systems, and the design of techniques for keeping various models (architecture, design, source code) during evolution, synchronized. In this working session, we plan to assess the state of the art in these areas, discuss on-going work, and identify further research issues.
软件进化是软件生命周期中不可分割的一部分。此外,近年来保持遗留系统在新平台上的可操作性问题已经变得至关重要,并且是全球IT部门的首要任务之一。为了应对这些挑战,研究团体和业界已经研究并提出了分析、转换、集成和将软件系统移植到新平台、语言和操作环境的技术。但是,衡量和确保移徙制度符合具体目标要求的问题尚未得到正式和彻底的解决。我们认为,诸如识别、度量和评估特定的再工程和转换策略以及它们对迁移系统质量的影响等问题在软件再工程社区中构成了主要的挑战。其他相关的问题包括迁移系统的验证、确认和测试,以及在演进过程中保持各种模型(架构、设计、源代码)同步的技术设计。在本次工作会议上,我们计划评估这些领域的最新技术,讨论正在进行的工作,并确定进一步的研究问题。
{"title":"Requirements driven software evolution","authors":"L. Tahvildari, K. Kontogiannis","doi":"10.1109/WPC.2004.1311070","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311070","url":null,"abstract":"Software evolution is an integral part of the software life cycle. Furthermore in the recent years the issue of keeping legacy systems operational in new platforms has become critical and one of the top priorities in IT departments worldwide. The research community and the industry have responded to these challenges by investigating and proposing techniques for analyzing, transforming, integrating, and porting software systems to new platforms, languages, and operating environments. However, measuring and ensuring that compliance of the migrant system with specific target requirements have not been formally and thoroughly addressed. We believe that issues such as the identification, measurement, and evaluation of specific re-engineering and transformation strategies and their impact on the quality of the migrant system pose major challenges in the software re-engineering community. Other related problems include the verification, validation, and testing of migrant systems, and the design of techniques for keeping various models (architecture, design, source code) during evolution, synchronized. In this working session, we plan to assess the state of the art in these areas, discuss on-going work, and identify further research issues.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133377407","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}
引用次数: 42
Program comprehension in generative programming: a history of grand challenges 生成式编程中的程序理解:一个巨大挑战的历史
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311042
D. Batory
The communities of generative programming (GP) and program comprehension (PC) look at similar problems: GP derives a program from a specification, PC derives a specification from a program. A basic difference between the two is GP's use of specific knowledge representations and mental models that are essential for program synthesis. In this paper, the author presents a historical review of the grand challenges, results, and outlook for GP as they pertain to PC.
生成编程(GP)和程序理解(PC)的社区关注类似的问题:GP从规范派生程序,PC从程序派生规范。两者之间的一个基本区别是GP使用对程序综合至关重要的特定知识表示和心理模型。在本文中,作者提出了一个历史的大挑战,结果和前景GP,因为他们涉及到PC。
{"title":"Program comprehension in generative programming: a history of grand challenges","authors":"D. Batory","doi":"10.1109/WPC.2004.1311042","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311042","url":null,"abstract":"The communities of generative programming (GP) and program comprehension (PC) look at similar problems: GP derives a program from a specification, PC derives a specification from a program. A basic difference between the two is GP's use of specific knowledge representations and mental models that are essential for program synthesis. In this paper, the author presents a historical review of the grand challenges, results, and outlook for GP as they pertain to PC.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114569167","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}
引用次数: 10
Using development history sticky notes to understand software architecture 使用开发历史便签来理解软件架构
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311060
A. Hassan, R. Holt
Maintenance of evolving software systems has become the most frequently performed activity by software developers. A good understanding of the software system is needed to reduce the cost and length of this activity. Various approaches and tools have been proposed to assist in this process such as code browsers, slicing techniques, etc. These techniques neglect to use a central and vital piece of data available - the historical modification records stored in source control systems. These records offer a rich and detailed account of the evolution of the software system to its current state. In this paper, we present an approach which recovers valuable information from source control systems and attaches this information to the static dependency graph of a software system. We call this recovered information - source sticky notes. We show how to use these notes along with the software reflexion framework to assist in understanding the architecture of large software systems. To demonstrate the viability of our approach, we apply it to understand the architecture of NetBSD - a large open source operating system.
不断发展的软件系统的维护已经成为软件开发人员最经常执行的活动。为了减少这个活动的成本和时间,需要对软件系统有一个很好的理解。已经提出了各种方法和工具来协助这个过程,例如代码浏览器、切片技术等。这些技术忽略了使用中心和重要的可用数据——存储在源代码控制系统中的历史修改记录。这些记录提供了软件系统发展到当前状态的丰富而详细的描述。在本文中,我们提出了一种从源代码控制系统中恢复有价值信息并将这些信息附加到软件系统的静态依赖图中的方法。我们称这种恢复的信息源便利贴。我们将展示如何使用这些注释和软件反射框架来帮助理解大型软件系统的体系结构。为了证明我们的方法的可行性,我们应用它来理解NetBSD(一个大型开源操作系统)的体系结构。
{"title":"Using development history sticky notes to understand software architecture","authors":"A. Hassan, R. Holt","doi":"10.1109/WPC.2004.1311060","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311060","url":null,"abstract":"Maintenance of evolving software systems has become the most frequently performed activity by software developers. A good understanding of the software system is needed to reduce the cost and length of this activity. Various approaches and tools have been proposed to assist in this process such as code browsers, slicing techniques, etc. These techniques neglect to use a central and vital piece of data available - the historical modification records stored in source control systems. These records offer a rich and detailed account of the evolution of the software system to its current state. In this paper, we present an approach which recovers valuable information from source control systems and attaches this information to the static dependency graph of a software system. We call this recovered information - source sticky notes. We show how to use these notes along with the software reflexion framework to assist in understanding the architecture of large software systems. To demonstrate the viability of our approach, we apply it to understand the architecture of NetBSD - a large open source operating system.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"86 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129262560","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}
引用次数: 61
期刊
Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.
全部 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