首页 > 最新文献

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

英文 中文
Web services composition, execution and visualization Web服务的组合、执行和可视化
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311072
M. D. Backer, G. Dedene, J. Vandenbulcke
This work presents a technique and a tool for Web service composition, execution and visualization. Web services composition refers to the act of interconnecting multiple elementary (or other composite) Web services, in order to create value-added functionality for customers. Graphical tools allow developers to define and create business processes on a "plug and play" basis. Runtime visualization of a business process enables the developers to understand the process and if necessary intervene in the process.
这项工作提供了一种用于Web服务组合、执行和可视化的技术和工具。Web服务组合指的是连接多个基本(或其他组合)Web服务的行为,目的是为客户创建增值功能。图形化工具允许开发人员在“即插即用”的基础上定义和创建业务流程。业务流程的运行时可视化使开发人员能够理解流程,并在必要时对流程进行干预。
{"title":"Web services composition, execution and visualization","authors":"M. D. Backer, G. Dedene, J. Vandenbulcke","doi":"10.1109/WPC.2004.1311072","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311072","url":null,"abstract":"This work presents a technique and a tool for Web service composition, execution and visualization. Web services composition refers to the act of interconnecting multiple elementary (or other composite) Web services, in order to create value-added functionality for customers. Graphical tools allow developers to define and create business processes on a \"plug and play\" basis. Runtime visualization of a business process enables the developers to understand the process and if necessary intervene in the process.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"8 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":"126891522","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
A simple static model for understanding the dynamic behavior of programs 用于理解程序动态行为的简单静态模型
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311046
Pierre Kelsen
To maintain software and to adapt it to changing requirements, one needs to have a solid understanding of both its structure and behavior. While there are a number of reverse engineering tools that aid in understanding the runtime behavior of programs, these are mostly based on variants of UML sequence diagrams or statechart diagrams. We propose a new model for understanding runtime behavior that presents several advantages over the more traditional models: it has a simple syntax (a very small subset of UML). Second one can tailor the same type of model to different abstraction levels while maintaining traceability. Third, they have a clearly defined semantics that makes them executable. Finally they capture both static and dynamic aspects of a system. We present three scenarios where our model - named EOP-model - aids with program comprehension: (1) high-level debugging, with which one can observe the execution of the program at a higher level of abstraction; (2) high-level program slicing, which allows to identify the data items in our model that may influence an operation, regardless of the abstraction level, and (3) generating abstract views at varying levels of detail while maintaining traceability between model elements and the code.
为了维护软件并使其适应不断变化的需求,需要对其结构和行为有扎实的理解。虽然有许多逆向工程工具可以帮助理解程序的运行时行为,但这些工具大多是基于UML序列图或状态图的变体。我们提出了一个新的模型来理解运行时行为,它比传统的模型有几个优点:它有一个简单的语法(UML的一个非常小的子集)。第二种方法可以在保持可追溯性的同时,为不同的抽象级别定制相同类型的模型。第三,它们具有明确定义的语义,使它们可执行。最后,它们捕获系统的静态和动态方面。我们提出了三种场景,其中我们的模型(称为eop模型)有助于程序理解:(1)高级调试,可以在更高的抽象级别上观察程序的执行;(2)高级程序切片,它允许在我们的模型中识别可能影响操作的数据项,而不考虑抽象级别,以及(3)在保持模型元素和代码之间的可追溯性的同时,在不同的细节级别上生成抽象视图。
{"title":"A simple static model for understanding the dynamic behavior of programs","authors":"Pierre Kelsen","doi":"10.1109/WPC.2004.1311046","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311046","url":null,"abstract":"To maintain software and to adapt it to changing requirements, one needs to have a solid understanding of both its structure and behavior. While there are a number of reverse engineering tools that aid in understanding the runtime behavior of programs, these are mostly based on variants of UML sequence diagrams or statechart diagrams. We propose a new model for understanding runtime behavior that presents several advantages over the more traditional models: it has a simple syntax (a very small subset of UML). Second one can tailor the same type of model to different abstraction levels while maintaining traceability. Third, they have a clearly defined semantics that makes them executable. Finally they capture both static and dynamic aspects of a system. We present three scenarios where our model - named EOP-model - aids with program comprehension: (1) high-level debugging, with which one can observe the execution of the program at a higher level of abstraction; (2) high-level program slicing, which allows to identify the data items in our model that may influence an operation, regardless of the abstraction level, and (3) generating abstract views at varying levels of detail while maintaining traceability between model elements and the code.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"65 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":"126112143","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}
引用次数: 12
Building executable union slices using conditioned slicing 使用条件切片构建可执行的联合切片
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311051
S. Danicic, A. D. Lucia, M. Harman
Program slicing can be used as a support for program comprehension, because it allows a large program to be divided up into smaller slices, each of which can be understood in isolation from the rest. As such, slicing facilitates the familiar approach of 'divide and conquer'. Union slicing (the union of dynamic slices) is a useful technique for approximating a precise static slice. For program comprehension (and many other applications) it is often important that the union slice be an executable program, rather than merely a collection of statements which are relevant to the slicing criterion. This paper presents an algorithm for computing executable union slices, using conditioned slicing. A case study is used to illustrate the algorithm and how the executable union slice is preferable to the (possibly nonexecutable) union slice. The paper also shows, briefly, that the approach has wider applications than comprehension.
程序切片可以用作对程序理解的支持,因为它允许将一个大程序分成更小的部分,每个部分都可以与其他部分分开来理解。因此,切片促进了熟悉的“分而治之”方法。联合切片(动态切片的联合)是一种逼近精确静态切片的有用技术。对于程序理解(以及许多其他应用程序)来说,联合切片必须是一个可执行程序,而不仅仅是与切片标准相关的语句集合,这一点通常很重要。本文提出了一种利用条件切片计算可执行联合切片的算法。使用一个案例研究来说明该算法,以及可执行联合片如何优于(可能不可执行的)联合片。本文还简要地表明,该方法具有比理解更广泛的应用。
{"title":"Building executable union slices using conditioned slicing","authors":"S. Danicic, A. D. Lucia, M. Harman","doi":"10.1109/WPC.2004.1311051","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311051","url":null,"abstract":"Program slicing can be used as a support for program comprehension, because it allows a large program to be divided up into smaller slices, each of which can be understood in isolation from the rest. As such, slicing facilitates the familiar approach of 'divide and conquer'. Union slicing (the union of dynamic slices) is a useful technique for approximating a precise static slice. For program comprehension (and many other applications) it is often important that the union slice be an executable program, rather than merely a collection of statements which are relevant to the slicing criterion. This paper presents an algorithm for computing executable union slices, using conditioned slicing. A case study is used to illustrate the algorithm and how the executable union slice is preferable to the (possibly nonexecutable) union slice. The paper also shows, briefly, that the approach has wider applications than comprehension.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"13 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":"128523214","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}
引用次数: 24
Towards a technique for reverse engineering Web transactions from a user's perspective 从用户的角度研究逆向工程Web事务的技术
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311056
Damiano Distante, T. Parveen, S. Tilley
Many Web sites could improve their users' experience through systematic analysis of transaction paths, so that users' expectations and site design are more closely aligned. This paper outlines preliminary steps towards a technique for reverse engineering Web transactions from a user's perspective. The result of the reverse engineering activity is a conceptual model that is based on extensions to the transaction design portion of the ubiquitous Web applications (UWA) framework. In particular, changes to the definition of an "activity", redefinitions of the "PropertySet" associated with an activity, and refinements to the UWA organization and execution models are proposed.
许多网站可以通过系统地分析交易路径来改善用户体验,这样用户的期望和网站设计就能更紧密地结合起来。本文从用户的角度概述了逆向工程Web事务技术的初步步骤。逆向工程活动的结果是一个概念模型,该模型基于对泛在Web应用程序(UWA)框架的事务设计部分的扩展。特别地,提出了对“活动”定义的更改,与活动关联的“PropertySet”的重新定义,以及对UWA组织和执行模型的改进。
{"title":"Towards a technique for reverse engineering Web transactions from a user's perspective","authors":"Damiano Distante, T. Parveen, S. Tilley","doi":"10.1109/WPC.2004.1311056","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311056","url":null,"abstract":"Many Web sites could improve their users' experience through systematic analysis of transaction paths, so that users' expectations and site design are more closely aligned. This paper outlines preliminary steps towards a technique for reverse engineering Web transactions from a user's perspective. The result of the reverse engineering activity is a conceptual model that is based on extensions to the transaction design portion of the ubiquitous Web applications (UWA) framework. In particular, changes to the definition of an \"activity\", redefinitions of the \"PropertySet\" associated with an activity, and refinements to the UWA organization and execution models are proposed.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"1 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":"128183361","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}
引用次数: 20
Reuse in reverse engineering 逆向工程中的重用
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311047
T. Panas, Jonas Lundberg, Welf Löwe
In this paper, we present a framework for reverse engineering allowing the integration and interaction of different analysis and visualization tools. The framework architecture that we propose uses a dynamic type system to guarantee the proper exchange of data between the tools and a set of wrapper classes to handle their communication. This allows for an easy and secure integration of tools that have originally not been designed to work together. In this sense, existing tools can be (re-)used and integrated. As a proof of concept we also present our own instantiation of the proposed framework architecture.
在本文中,我们提出了一个允许不同分析和可视化工具集成和交互的逆向工程框架。我们提出的框架体系结构使用动态类型系统来保证工具和一组包装器类之间适当的数据交换来处理它们的通信。这允许简单而安全地集成最初没有设计为一起工作的工具。从这个意义上说,现有的工具可以被(重新)使用和集成。作为概念的证明,我们还展示了我们自己所提出的框架体系结构的实例。
{"title":"Reuse in reverse engineering","authors":"T. Panas, Jonas Lundberg, Welf Löwe","doi":"10.1109/WPC.2004.1311047","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311047","url":null,"abstract":"In this paper, we present a framework for reverse engineering allowing the integration and interaction of different analysis and visualization tools. The framework architecture that we propose uses a dynamic type system to guarantee the proper exchange of data between the tools and a set of wrapper classes to handle their communication. This allows for an easy and secure integration of tools that have originally not been designed to work together. In this sense, existing tools can be (re-)used and integrated. As a proof of concept we also present our own instantiation of the proposed framework architecture.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"628 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":"127527363","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}
引用次数: 19
On migrating a legacy application to the palm platform 关于将遗留应用程序迁移到palm平台
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311065
Andrew Foss, Kenny Wong
Handheld computing devices such as personal digital assistants (PDAs) and the latest mobile phones are becoming widespread, so migrating desktop applications to these platforms is of great interest to developers. However, little information is available to guide the novice especially for the palm OS, the,most popular platform in the PDA and smartphone arena. This paper highlights the migration challenges involved and potential directions in easing this reengineering process. To explore the practical understanding and reengineering issues, a large legacy application was partially migrated to palm OS.
手持计算设备,如个人数字助理(pda)和最新的移动电话正在普及,因此将桌面应用程序迁移到这些平台是开发人员非常感兴趣的事情。然而,很少有信息可以指导新手,特别是掌上电脑操作系统,在PDA和智能手机领域最流行的平台。本文强调了迁移过程中涉及到的挑战以及简化这一再造过程的潜在方向。为了探索实际理解和重新设计问题,将一个大型遗留应用程序部分迁移到palm OS。
{"title":"On migrating a legacy application to the palm platform","authors":"Andrew Foss, Kenny Wong","doi":"10.1109/WPC.2004.1311065","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311065","url":null,"abstract":"Handheld computing devices such as personal digital assistants (PDAs) and the latest mobile phones are becoming widespread, so migrating desktop applications to these platforms is of great interest to developers. However, little information is available to guide the novice especially for the palm OS, the,most popular platform in the PDA and smartphone arena. This paper highlights the migration challenges involved and potential directions in easing this reengineering process. To explore the practical understanding and reengineering issues, a large legacy application was partially migrated to palm OS.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"15 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":"132047845","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
Empirical assessment of UML static object diagrams UML静态对象图的经验评估
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311064
Marco Torchiano
The essential UML logic diagrams are the class diagrams: they represent the classes of objects that make up a program. Object diagrams are used as the basis to show scenarios of dynamic evolution of the software. The use of object diagrams to depict static structure is very rare. The purpose of this study is to investigate whether the use of static object diagrams can improve the comprehension of software systems. We conducted a study with 17 graduate students during a software engineering course. The students were asked to answer questions about a software system. The system was described either with a class diagram or with both a class diagram and an object diagram. The student asked multiple choice questions on four different systems. This study revealed that there is a statistically significant difference in the comprehension achievement for two of the systems. The effect of the presence of object diagrams can be classified of medium size. These results allow us to formulate new research questions that guide our future work in this area.
基本的UML逻辑图是类图:它们表示组成程序的对象的类。对象图是显示软件动态演化场景的基础。使用对象图来描述静态结构是非常罕见的。本研究的目的是探讨静态对象图的使用是否可以提高对软件系统的理解。我们在软件工程课程中与17名研究生进行了一项研究。学生们被要求回答有关软件系统的问题。该系统要么用类图来描述,要么用类图和对象图来描述。这名学生在四个不同的系统上做了多项选择题。本研究发现,两个系统的理解成绩有统计学上的显著差异。对象图存在的效果可以分为中等大小。这些结果使我们能够提出新的研究问题,指导我们在这一领域的未来工作。
{"title":"Empirical assessment of UML static object diagrams","authors":"Marco Torchiano","doi":"10.1109/WPC.2004.1311064","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311064","url":null,"abstract":"The essential UML logic diagrams are the class diagrams: they represent the classes of objects that make up a program. Object diagrams are used as the basis to show scenarios of dynamic evolution of the software. The use of object diagrams to depict static structure is very rare. The purpose of this study is to investigate whether the use of static object diagrams can improve the comprehension of software systems. We conducted a study with 17 graduate students during a software engineering course. The students were asked to answer questions about a software system. The system was described either with a class diagram or with both a class diagram and an object diagram. The student asked multiple choice questions on four different systems. This study revealed that there is a statistically significant difference in the comprehension achievement for two of the systems. The effect of the presence of object diagrams can be classified of medium size. These results allow us to formulate new research questions that guide our future work in this area.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"1 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":"114185169","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}
引用次数: 28
Universal Report: a generic reverse engineering tool 通用报告:一个通用的逆向工程工具
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311073
C. Tadonki
Source code documentation is a structured report built from the information available in the source of a given program. 'The goal of such a document is to provide more facility for program comprehension and code maintenance. This is particularly crucial for complex program involving a large amount of routines and special statements. Nowadays, there are more and more specialized programs that are provided to programmers through their source code as a module. Their integration into an existing project requires a quick but accurate overview of their technical structure for immediate comprehension. This task needs a so-called source code documentation tool, also called documentation tool, code documenting tool, or reverse engineering tool. Several tools exist, but most of them are dedicated to a specific programming language, probably because they strongly consider the grammar of the target language and the corresponding statements are then hardcoded. In this paper, we present Universal Report, a source code documentation tool developed with C++ Builder, that does not suffer from this limitation and provides several attractive features for a complete documenting task. The tool is generic, specific information being provided by the user as input for the documenting process. This flexibility is due to powerful heuristics and pattern matching algorithms that can identify standard programming statements for a wide range of programming languages. Various options enable the user to format the output documentation at its convenience, and the intuitive interface makes Universal Report the perfect tool for both new and experienced users.
源代码文档是根据给定程序源代码中的可用信息构建的结构化报告。这样一个文档的目标是为程序理解和代码维护提供更多的便利。这对于包含大量例程和特殊语句的复杂程序尤为重要。如今,有越来越多的专门程序通过其源代码作为模块提供给程序员。将它们集成到现有项目中需要对其技术结构进行快速而准确的概述,以便立即理解。这项任务需要一个所谓的源代码文档工具,也称为文档工具、代码文档工具或逆向工程工具。有几种工具存在,但大多数都专用于特定的编程语言,这可能是因为它们强烈考虑目标语言的语法,然后对相应的语句进行硬编码。在本文中,我们介绍了Universal Report,这是一个用c++ Builder开发的源代码文档工具,它没有这种限制,并为完整的文档任务提供了几个有吸引力的特性。该工具是由用户提供的通用的、特定的信息,作为文档编制过程的输入。这种灵活性是由于强大的启发式和模式匹配算法,它们可以识别各种编程语言的标准编程语句。各种选项使用户能够方便地格式化输出文档,直观的界面使Universal Report成为新用户和经验丰富的用户的完美工具。
{"title":"Universal Report: a generic reverse engineering tool","authors":"C. Tadonki","doi":"10.1109/WPC.2004.1311073","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311073","url":null,"abstract":"Source code documentation is a structured report built from the information available in the source of a given program. 'The goal of such a document is to provide more facility for program comprehension and code maintenance. This is particularly crucial for complex program involving a large amount of routines and special statements. Nowadays, there are more and more specialized programs that are provided to programmers through their source code as a module. Their integration into an existing project requires a quick but accurate overview of their technical structure for immediate comprehension. This task needs a so-called source code documentation tool, also called documentation tool, code documenting tool, or reverse engineering tool. Several tools exist, but most of them are dedicated to a specific programming language, probably because they strongly consider the grammar of the target language and the corresponding statements are then hardcoded. In this paper, we present Universal Report, a source code documentation tool developed with C++ Builder, that does not suffer from this limitation and provides several attractive features for a complete documenting task. The tool is generic, specific information being provided by the user as input for the documenting process. This flexibility is due to powerful heuristics and pattern matching algorithms that can identify standard programming statements for a wide range of programming languages. Various options enable the user to format the output documentation at its convenience, and the intuitive interface makes Universal Report the perfect tool for both new and experienced users.","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":"124894655","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
Program comprehension for the purpose of testing 以测试为目的的程序理解
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311058
H. Sneed
In this paper, program comprehension techniques are examined within the context of testing. First, the tasks of a tester are identified, then the information requirements of a tester to fulfill these tasks. Comprehension is viewed as a knowledge acquisition process. The knowledge needed depends on the level at which one is testing. For system testing, other knowledge is required than for unit and integration testing. In light of the scope of testing, the paper concludes that it is the tester who needs the broadest knowledge about a software system. Having established the information requirements of testing, a set of tools are presented which help to satisfy these requirements and their practical application discussed.
在本文中,程序理解技术是在测试的背景下进行检验的。首先,确定测试人员的任务,然后确定测试人员完成这些任务所需的信息。理解被看作是一个获取知识的过程。所需的知识取决于测试的水平。对于系统测试,需要比单元测试和集成测试更多的知识。根据测试的范围,本文得出结论,测试人员需要最广泛的软件系统知识。在建立了测试信息需求的基础上,提出了一套有助于满足这些需求的工具,并讨论了它们的实际应用。
{"title":"Program comprehension for the purpose of testing","authors":"H. Sneed","doi":"10.1109/WPC.2004.1311058","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311058","url":null,"abstract":"In this paper, program comprehension techniques are examined within the context of testing. First, the tasks of a tester are identified, then the information requirements of a tester to fulfill these tasks. Comprehension is viewed as a knowledge acquisition process. The knowledge needed depends on the level at which one is testing. For system testing, other knowledge is required than for unit and integration testing. In light of the scope of testing, the paper concludes that it is the tester who needs the broadest knowledge about a software system. Having established the information requirements of testing, a set of tools are presented which help to satisfy these requirements and their practical application discussed.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"1 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":"130902317","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}
引用次数: 12
Structural evolution of an open source system: a case study 开源系统的结构演变:一个案例研究
Pub Date : 2004-06-24 DOI: 10.1109/WPC.2004.1311059
A. Capiluppi, M. Morisio, J. Fernández-Ramil
Software evolution empirical studies are made possible only when data is available and easily collectable. Open source software provides a good opportunity for observing software products in various phases of their evolution, growth and maturity. One of the aspects that have not been analyzed yet through empirical studies is the relation that exists between code components growth and the evolving code structure. In this paper, we look at the growth of code elements by measuring the total number of files per release and also by visualizing the folder structure as a tree. Both, the number of files and the shape of the folder tree structure offer proxies to study the evolving complexity of the system. In this study, a number of hypotheses about the evolutionary patterns in the size of files and folders, in the folder tree structure, reflecting common assumptions on software engineering and open source are tested against empirical data reflecting the evolution of the ARLA system. We also relate some of the observed patterns to the arrival rate of new developers. Results show that the number of code components (files and folders) over releases can be interpreted as a linear trend with a superimposed ripple. We also describe the more apparent characteristics of the evolution of the folder tree structure. Furthermore, we observe that the average size of files and folders tends to stabilize over releases. The cumulative number of people who have been involved as developers of the system follows a trend which resembles that of the size in files over releases, suggesting that the latter could provide a good indicator for rate of work and productivity. There was no apparent relation between the arrival rate of developers and the changes observed in the code structure.
只有当数据可用且易于收集时,软件进化实证研究才成为可能。开源软件为观察软件产品在其发展、成长和成熟的各个阶段提供了一个很好的机会。代码组件增长与代码结构演化之间的关系是目前尚未通过实证研究进行分析的一个方面。在本文中,我们通过测量每个版本的文件总数以及将文件夹结构可视化为树来查看代码元素的增长。文件的数量和文件夹树结构的形状都为研究系统不断变化的复杂性提供了代理。在本研究中,一些关于文件和文件夹大小的进化模式的假设,在文件夹树结构中,反映了软件工程和开源的常见假设,并根据反映ARLA系统进化的经验数据进行了测试。我们还将一些观察到的模式与新开发者的到达率联系起来。结果表明,超过版本的代码组件(文件和文件夹)的数量可以解释为具有叠加波纹的线性趋势。我们还描述了文件夹树结构演变的更明显的特征。此外,我们观察到文件和文件夹的平均大小在发布过程中趋于稳定。作为系统开发人员参与的累积人数遵循的趋势类似于发布版本的文件大小,这表明后者可以为工作速度和生产力提供一个很好的指标。开发人员的到达率和在代码结构中观察到的变化之间没有明显的关系。
{"title":"Structural evolution of an open source system: a case study","authors":"A. Capiluppi, M. Morisio, J. Fernández-Ramil","doi":"10.1109/WPC.2004.1311059","DOIUrl":"https://doi.org/10.1109/WPC.2004.1311059","url":null,"abstract":"Software evolution empirical studies are made possible only when data is available and easily collectable. Open source software provides a good opportunity for observing software products in various phases of their evolution, growth and maturity. One of the aspects that have not been analyzed yet through empirical studies is the relation that exists between code components growth and the evolving code structure. In this paper, we look at the growth of code elements by measuring the total number of files per release and also by visualizing the folder structure as a tree. Both, the number of files and the shape of the folder tree structure offer proxies to study the evolving complexity of the system. In this study, a number of hypotheses about the evolutionary patterns in the size of files and folders, in the folder tree structure, reflecting common assumptions on software engineering and open source are tested against empirical data reflecting the evolution of the ARLA system. We also relate some of the observed patterns to the arrival rate of new developers. Results show that the number of code components (files and folders) over releases can be interpreted as a linear trend with a superimposed ripple. We also describe the more apparent characteristics of the evolution of the folder tree structure. Furthermore, we observe that the average size of files and folders tends to stabilize over releases. The cumulative number of people who have been involved as developers of the system follows a trend which resembles that of the size in files over releases, suggesting that the latter could provide a good indicator for rate of work and productivity. There was no apparent relation between the arrival rate of developers and the changes observed in the code structure.","PeriodicalId":164866,"journal":{"name":"Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.","volume":"22 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":"114788515","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
期刊
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