首页 > 最新文献

International Conference on Software Maintenance, 2002. Proceedings.最新文献

英文 中文
The information gathering strategies of software maintainers 软件维护人员的信息收集策略
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167761
C. Seaman
In examining software maintenance processes for improvement opportunities, an obvious choice is information flow. Obtaining accurate, up-to-date, and useful information about a system being maintained is a major task. It is also a difficult task because the sources of this information are often limited, inaccessible, or unknown. Clearly this impacts maintenance productivity-simply because of the time it takes to find and use the appropriate information sources-as well as the quality of system changes, which depends on the quality of the system information available. This paper describes the results of a survey study that aims to discover the information gathering strategies that software maintainers employ. The survey was completed by 45 software professionals in two different organizations with varying degrees of experience in maintenance. Their responses, on the surface, simply show that maintainers overwhelmingly rely on source code, which is not surprising. However, a deeper analysis of the responses show that other sources of information, in particular human sources, some types of CASE support, and lessons learned recorded from previous projects are at least as valuable than source code under some conditions. The results of this ongoing survey study are meant to determine a set of hypotheses about information gathering strategies, which will then be empirically evaluated in future studies.
在检查软件维护过程以获得改进机会时,一个明显的选择是信息流。获取有关所维护系统的准确、最新和有用的信息是一项主要任务。这也是一项艰巨的任务,因为这些信息的来源往往是有限的、难以获得的或未知的。显然,这影响了维护效率——仅仅是因为查找和使用适当的信息源所花费的时间——以及系统更改的质量,这取决于可用的系统信息的质量。本文描述了一项调查研究的结果,该研究旨在发现软件维护者使用的信息收集策略。这项调查是由来自两个不同组织的45名软件专业人员完成的,他们在维护方面有不同程度的经验。从表面上看,他们的反应只是表明维护者压倒性地依赖源代码,这并不奇怪。然而,对响应进行更深入的分析表明,在某些条件下,其他信息来源,特别是人力资源,某些类型的CASE支持,以及从以前的项目中获得的经验至少与源代码一样有价值。这项正在进行的调查研究的结果是为了确定一组关于信息收集策略的假设,这些假设将在未来的研究中进行实证评估。
{"title":"The information gathering strategies of software maintainers","authors":"C. Seaman","doi":"10.1109/ICSM.2002.1167761","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167761","url":null,"abstract":"In examining software maintenance processes for improvement opportunities, an obvious choice is information flow. Obtaining accurate, up-to-date, and useful information about a system being maintained is a major task. It is also a difficult task because the sources of this information are often limited, inaccessible, or unknown. Clearly this impacts maintenance productivity-simply because of the time it takes to find and use the appropriate information sources-as well as the quality of system changes, which depends on the quality of the system information available. This paper describes the results of a survey study that aims to discover the information gathering strategies that software maintainers employ. The survey was completed by 45 software professionals in two different organizations with varying degrees of experience in maintenance. Their responses, on the surface, simply show that maintainers overwhelmingly rely on source code, which is not surprising. However, a deeper analysis of the responses show that other sources of information, in particular human sources, some types of CASE support, and lessons learned recorded from previous projects are at least as valuable than source code under some conditions. The results of this ongoing survey study are meant to determine a set of hypotheses about information gathering strategies, which will then be empirically evaluated in future studies.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124802989","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
A technique for dynamic updating of Java software Java软件的动态更新技术
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167829
A. Orso, Anup B. Rao, M. J. Harrold
During maintenance, systems are updated to correct faults, improve functionality, and adapt the software to changes in its execution environment. The typical software update process consists of stopping the system to be updated, performing the update of the code, and restarting the system. For systems such as banking and telecommunication software, however the cost of downtime can be prohibitive. The situation is even worse for systems such as air-traffic controllers and life-support software, for which a shut-down is in general not an option. In those cases, the use of some form of on-the-fly program modification is required. In this paper, we present a new technique for dynamic updating of Java software. Our technique is based oil the use of proxy classes and requires no support from the runtime system. The technique allows for updating a running Java program by substituting, adding, and deleting classes. We also present DUSC (dynamic updating through swapping of classes), a tool that we developed and that implements our technique. Finally, we describe an empirical study that we performed to validate the technique of a real Java subject. The results of the study show that our technique can be effectively applied to Java software with only little overhead in both execution time and program size.
在维护过程中,需要对系统进行更新,以纠正错误,改进功能,并使软件适应其执行环境的变化。典型的软件更新过程包括停止要更新的系统、执行代码更新和重新启动系统。然而,对于诸如银行和电信软件之类的系统,停机时间的成本可能是令人望而却步的。对于像空中交通管制和生命支持软件这样的系统来说,情况甚至更糟,对于这些系统来说,关闭通常是不可能的。在这些情况下,需要使用某种形式的动态程序修改。本文提出了一种新的Java软件动态更新技术。我们的技术基于代理类的使用,不需要运行时系统的支持。该技术允许通过替换、添加和删除类来更新正在运行的Java程序。我们还介绍了DUSC(通过交换类进行动态更新),这是我们开发并实现了我们的技术的工具。最后,我们描述了一个实证研究,我们执行该研究来验证一个真实的Java主题的技术。研究结果表明,我们的技术可以有效地应用于Java软件,在执行时间和程序大小方面的开销都很小。
{"title":"A technique for dynamic updating of Java software","authors":"A. Orso, Anup B. Rao, M. J. Harrold","doi":"10.1109/ICSM.2002.1167829","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167829","url":null,"abstract":"During maintenance, systems are updated to correct faults, improve functionality, and adapt the software to changes in its execution environment. The typical software update process consists of stopping the system to be updated, performing the update of the code, and restarting the system. For systems such as banking and telecommunication software, however the cost of downtime can be prohibitive. The situation is even worse for systems such as air-traffic controllers and life-support software, for which a shut-down is in general not an option. In those cases, the use of some form of on-the-fly program modification is required. In this paper, we present a new technique for dynamic updating of Java software. Our technique is based oil the use of proxy classes and requires no support from the runtime system. The technique allows for updating a running Java program by substituting, adding, and deleting classes. We also present DUSC (dynamic updating through swapping of classes), a tool that we developed and that implements our technique. Finally, we describe an empirical study that we performed to validate the technique of a real Java subject. The results of the study show that our technique can be effectively applied to Java software with only little overhead in both execution time and program size.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123554593","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}
引用次数: 166
Union slices for program maintenance 用于程序维护的联合片
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167743
Árpád Beszédes, Csaba Faragó, Z. Szabó, J. Csirik, T. Gyimóthy
Owing to their relative simplicity and wide range of applications, static slices are specifically proposed for software maintenance and program understanding. Unfortunately, in many cases static slices are overly conservative and therefore too large to supply useful information to the software maintainer. Dynamic slicing methods can produce more precise results, but only for one test case. In this paper we introduce the concept of union slices (the union of dynamic slices for many test cases) and suggest using a combination of static and union slices. This way the size of program parts that need to be investigated can be reduced by concentrating on the most important parts first. We performed a series of experiments with our experimental implementation on three medium size C programs. Our initial results suggest that union slices are in most cases far smaller than static slices, and that the growth rate of union slices (by adding more test cases) significantly declines after several representative executions of the program.
由于其相对简单和广泛的应用范围,静态切片被特别提出用于软件维护和程序理解。不幸的是,在许多情况下,静态切片过于保守,因此太大,无法为软件维护人员提供有用的信息。动态切片方法可以产生更精确的结果,但只适用于一个测试用例。在本文中,我们引入了联合片(许多测试用例的动态片的联合)的概念,并建议使用静态片和联合片的组合。这样,通过首先集中于最重要的部分,可以减少需要调查的程序部分的大小。我们用我们的实验实现在三个中等大小的C程序上进行了一系列的实验。我们最初的结果表明,在大多数情况下,联合片比静态片小得多,并且联合片的增长率(通过添加更多的测试用例)在几个有代表性的程序执行之后显著下降。
{"title":"Union slices for program maintenance","authors":"Árpád Beszédes, Csaba Faragó, Z. Szabó, J. Csirik, T. Gyimóthy","doi":"10.1109/ICSM.2002.1167743","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167743","url":null,"abstract":"Owing to their relative simplicity and wide range of applications, static slices are specifically proposed for software maintenance and program understanding. Unfortunately, in many cases static slices are overly conservative and therefore too large to supply useful information to the software maintainer. Dynamic slicing methods can produce more precise results, but only for one test case. In this paper we introduce the concept of union slices (the union of dynamic slices for many test cases) and suggest using a combination of static and union slices. This way the size of program parts that need to be investigated can be reduced by concentrating on the most important parts first. We performed a series of experiments with our experimental implementation on three medium size C programs. Our initial results suggest that union slices are in most cases far smaller than static slices, and that the growth rate of union slices (by adding more test cases) significantly declines after several representative executions of the program.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114919826","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}
引用次数: 60
Maintenance of distributed systems with mobile agents 使用移动代理维护分布式系统
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167830
Michael Friedrich, G. Nusser, W. Küchlin
We introduce the use of mobile agents for maintaining distributed heterogeneous systems with respect to monitoring and configuration. Code mobility can ensure the maintainability even for small and/or partially connected devices and scalability for highly distributed systems. Our approach leads to a system which allows to describe the jobs to perform in an abstract way. This is supported by a generalization of system parameters as well as the use of a rule-based decision system to describe the behavior of a mobile agent and its tasks. Application scenarios deploying our approach are illustrated showing the integration of different systems from PCs to embedded devices and even fieldbus nodes. Finally, differences to other approaches are discussed.
我们将介绍如何使用移动代理来维护分布式异构系统的监控和配置。代码移动性可以确保小型和/或部分连接设备的可维护性,以及高度分布式系统的可扩展性。我们的方法导致了一个系统,它允许以抽象的方式描述要执行的工作。这是由系统参数的泛化以及使用基于规则的决策系统来描述移动代理的行为及其任务所支持的。应用场景部署了我们的方法,展示了从pc到嵌入式设备甚至现场总线节点的不同系统的集成。最后,讨论了与其他方法的区别。
{"title":"Maintenance of distributed systems with mobile agents","authors":"Michael Friedrich, G. Nusser, W. Küchlin","doi":"10.1109/ICSM.2002.1167830","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167830","url":null,"abstract":"We introduce the use of mobile agents for maintaining distributed heterogeneous systems with respect to monitoring and configuration. Code mobility can ensure the maintainability even for small and/or partially connected devices and scalability for highly distributed systems. Our approach leads to a system which allows to describe the jobs to perform in an abstract way. This is supported by a generalization of system parameters as well as the use of a rule-based decision system to describe the behavior of a mobile agent and its tasks. Application scenarios deploying our approach are illustrated showing the integration of different systems from PCs to embedded devices and even fieldbus nodes. Finally, differences to other approaches are discussed.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129922250","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
Migration to object oriented platforms: a state transformation approach 迁移到面向对象平台:一种状态转换方法
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167814
Ying Zou, K. Kontogiannis
It has become evident that the benefits of object orientation warrant the design and development of reengineering methods that aim to migrate legacy procedural systems to modern object oriented platforms. However, most research efforts in this direction focus mostly on the extraction of an object model from the legacy procedural code without taking into account quality requirements for the target migrant system. This paper presents a reengineering workbench that allows for quality requirements of the target system to be modeled as soft-goals and software transformations to be applied selectively towards achieving specific quality requirements for the target system. In this context, the migration process is denoted by a sequence of transformations that alter the state of the system being reengineered. A Markov model approach and the Viterbi algorithm are used to identify the optimal sequence of transformations that can be applied at any given state of the migration process. For the evaluation of the proposed workbench, a migration experiment of gnu AVL tree libraries is presented.
很明显,面向对象的好处保证了旨在将遗留过程系统迁移到现代面向对象平台的再工程方法的设计和开发。然而,在这个方向上的大多数研究工作主要集中在从遗留过程代码中提取对象模型,而没有考虑目标迁移系统的质量要求。本文提出了一个再工程工作台,它允许将目标系统的质量需求建模为软件目标,并有选择地应用软件转换来实现目标系统的特定质量需求。在这种情况下,迁移过程由一系列改变被重新设计的系统状态的转换来表示。马尔可夫模型方法和维特比算法用于确定在迁移过程的任何给定状态下可应用的最优转换序列。为了对所提出的工作平台进行评估,给出了一个gnu AVL树库的迁移实验。
{"title":"Migration to object oriented platforms: a state transformation approach","authors":"Ying Zou, K. Kontogiannis","doi":"10.1109/ICSM.2002.1167814","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167814","url":null,"abstract":"It has become evident that the benefits of object orientation warrant the design and development of reengineering methods that aim to migrate legacy procedural systems to modern object oriented platforms. However, most research efforts in this direction focus mostly on the extraction of an object model from the legacy procedural code without taking into account quality requirements for the target migrant system. This paper presents a reengineering workbench that allows for quality requirements of the target system to be modeled as soft-goals and software transformations to be applied selectively towards achieving specific quality requirements for the target system. In this context, the migration process is denoted by a sequence of transformations that alter the state of the system being reengineered. A Markov model approach and the Viterbi algorithm are used to identify the optimal sequence of transformations that can be applied at any given state of the migration process. For the evaluation of the proposed workbench, a migration experiment of gnu AVL tree libraries is presented.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128782865","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}
引用次数: 37
Transforming procedural program structures to object-oriented class structures for the purpose of populating a common software repository 将过程程序结构转换为面向对象的类结构,以填充公共软件存储库
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167782
H. Sneed
The purpose of the work presented here is to convert the design documentation of procedural application systems into an object-oriented design for the purpose of populating an object-oriented repository. The prerequisite is to have a single design representation-the object model as specified in the OMG Unified Modeling Language. That entails transforming procedural programs into class hierarchies as described in this paper. The technique used is an adaptation of the dominance tree approach described in previous papers from Burd and Munro combined with the precedence graphs proposed by Horwitz and Reps.
这里介绍的工作的目的是将过程应用程序系统的设计文档转换为面向对象的设计,以填充面向对象的存储库。前提是要有一个单一的设计表示——OMG统一建模语言中指定的对象模型。如本文所述,这需要将过程程序转换为类层次结构。所使用的技术是Burd和Munro在之前的论文中描述的优势树方法的改编,结合了Horwitz和Reps提出的优先图。
{"title":"Transforming procedural program structures to object-oriented class structures for the purpose of populating a common software repository","authors":"H. Sneed","doi":"10.1109/ICSM.2002.1167782","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167782","url":null,"abstract":"The purpose of the work presented here is to convert the design documentation of procedural application systems into an object-oriented design for the purpose of populating an object-oriented repository. The prerequisite is to have a single design representation-the object model as specified in the OMG Unified Modeling Language. That entails transforming procedural programs into class hierarchies as described in this paper. The technique used is an adaptation of the dominance tree approach described in previous papers from Burd and Munro combined with the precedence graphs proposed by Horwitz and Reps.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128656995","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
A case study of unanticipated incremental change 一个意想不到的增量变化的案例研究
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167801
V. Rajlich, Prashant Gosavi
Incremental changes add new functionality and properties to software. They are the core of software evolution, maintenance, iterative development, agile development, and similar software processes. This paper presents a technique for unanticipated incremental software change and a case study. The technique uses programming concepts as the foundation, and contains steps of concept location, actualization, incorporation, and change propagation. The case study presents an unanticipated change in the open source software "Drawlets".
增量更改为软件添加新的功能和属性。它们是软件演化、维护、迭代开发、敏捷开发和类似软件过程的核心。本文提出了一种用于意外增量软件变更的技术,并给出了一个案例研究。该技术以编程概念为基础,包含概念定位、实现、合并和变更传播等步骤。这个案例研究展示了开源软件“Drawlets”中一个意想不到的变化。
{"title":"A case study of unanticipated incremental change","authors":"V. Rajlich, Prashant Gosavi","doi":"10.1109/ICSM.2002.1167801","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167801","url":null,"abstract":"Incremental changes add new functionality and properties to software. They are the core of software evolution, maintenance, iterative development, agile development, and similar software processes. This paper presents a technique for unanticipated incremental software change and a case study. The technique uses programming concepts as the foundation, and contains steps of concept location, actualization, incorporation, and change propagation. The case study presents an unanticipated change in the open source software \"Drawlets\".","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124219125","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}
引用次数: 25
Implications of software measurement to Lehman's eight laws 软件测量对雷曼八定律的影响
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167750
J. Munson
Software systems change dramatically as they go through their various stages of development. From the first build of each such system to the last build the differences may be so great as to obscure the fact that it is still the same system. Developers commonly make this mistake when they talk about the system that they are developing. It might be referred to as the "File Management System" or whatever name seems to describe the software. This seems to imply that there is but one File Management System. The fact that is obscured when we talk about the File Management System is that today's build of the File Management System is probably vastly different in composition and in functionality from the original first-born File Management System of the first system build. We would like to be able to quantify the differences in the system from its first build, through all builds to the current one. Then and only then will it be possible to know how these systems have changed. The focus of my recent research in software maintenance has been in the area of measurement of software evolution. This research has led to some interesting empirical results that have direct implications for Lehman's eight laws of software evolution. Not all aspects of these eight laws of software evolution lend themselves to direct measurement. In particular the First Law suggests that a system must be continually adapted. This law is driven by forces outside of the software development arena that are very difficult to quantify. The third law is very similar from a measurement perspective. Self regulation is again a property that is attributable to outside forces. The 8th law is confined to the feedback systems nature of the processes controlling software evolution. This, again, is outside the purview of direct measurement. The remaining five laws do lend themselves to direct measurement from the products of software evolution. The main problem with measuring evolving software is that software systems have multiple attribute domains that are changing simultaneously. The size of a program changes. The data structures of that program change. The control complexity changes. In essence, measuring the software evolution process is a multivariate problem. The measurement of an evolving software system through the shifting sands of time is not an easy task. Perhaps one of the most difficult issues relates to the establishment of a baseline against which the evolving systems may be compared. When a number of successive system builds are to be measured, we will choose one of the systems as a baseline system. All others will be measured in relation to the chosen system. Sometimes it will be useful to select the initial system build for this baseline. If we select this system, then the measurements on all other systems will be taken in relation to the initial system configuration. Within this context, laws 4, 5, and 6 lend themselves directly to measurement directly from a baseline system. D
软件系统在经历不同的开发阶段时会发生巨大的变化。从每个这样的系统的第一个构建到最后一个构建,差异可能是如此之大,以至于掩盖了它仍然是同一个系统的事实。开发人员在谈论他们正在开发的系统时通常会犯这个错误。它可能被称为“文件管理系统”或任何看起来描述该软件的名称。这似乎意味着只有一个文件管理系统。当我们谈论文件管理系统时,我们忽略了一个事实,即今天构建的文件管理系统在组成和功能上可能与第一个系统构建的原始文件管理系统有很大的不同。我们希望能够量化系统从第一次构建到所有构建到当前构建的差异。到那时,也只有到那时,才有可能知道这些系统是如何变化的。我最近在软件维护方面的研究重点是软件演进的度量领域。这项研究得出了一些有趣的实证结果,这些结果对雷曼的软件进化八定律有直接的影响。并非这八条软件进化定律的所有方面都适合直接测量。第一定律特别指出,一个系统必须不断地适应。这个法则是由软件开发领域之外的力量驱动的,很难量化。从测量的角度来看,第三定律非常相似。自我调节又是一种归因于外部力量的属性。第八定律局限于控制软件进化的过程的反馈系统性质。这再次超出了直接测量的范围。剩下的5条定律确实有助于从软件进化的产品中直接度量。测量演化软件的主要问题是软件系统有多个同时变化的属性域。程序的大小会发生变化。程序的数据结构改变了。控制复杂性改变。本质上,软件演化过程的度量是一个多变量问题。通过时间的流逝来衡量一个不断发展的软件系统并不是一件容易的事。也许最困难的问题之一是建立一个基线,以便对发展中的系统进行比较。当要度量许多连续的系统构建时,我们将选择其中一个系统作为基线系统。所有其他的都将根据所选系统进行测量。有时候,为这个基线选择初始系统构建是很有用的。如果我们选择这个系统,那么将根据初始系统配置对所有其他系统进行测量。在这种情况下,定律4、5和6直接适用于基线系统的测量。喷气推进实验室几个项目的数据支持这一猜想。直到最近,这还很难
{"title":"Implications of software measurement to Lehman's eight laws","authors":"J. Munson","doi":"10.1109/ICSM.2002.1167750","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167750","url":null,"abstract":"Software systems change dramatically as they go through their various stages of development. From the first build of each such system to the last build the differences may be so great as to obscure the fact that it is still the same system. Developers commonly make this mistake when they talk about the system that they are developing. It might be referred to as the \"File Management System\" or whatever name seems to describe the software. This seems to imply that there is but one File Management System. The fact that is obscured when we talk about the File Management System is that today's build of the File Management System is probably vastly different in composition and in functionality from the original first-born File Management System of the first system build. We would like to be able to quantify the differences in the system from its first build, through all builds to the current one. Then and only then will it be possible to know how these systems have changed. The focus of my recent research in software maintenance has been in the area of measurement of software evolution. This research has led to some interesting empirical results that have direct implications for Lehman's eight laws of software evolution. Not all aspects of these eight laws of software evolution lend themselves to direct measurement. In particular the First Law suggests that a system must be continually adapted. This law is driven by forces outside of the software development arena that are very difficult to quantify. The third law is very similar from a measurement perspective. Self regulation is again a property that is attributable to outside forces. The 8th law is confined to the feedback systems nature of the processes controlling software evolution. This, again, is outside the purview of direct measurement. The remaining five laws do lend themselves to direct measurement from the products of software evolution. The main problem with measuring evolving software is that software systems have multiple attribute domains that are changing simultaneously. The size of a program changes. The data structures of that program change. The control complexity changes. In essence, measuring the software evolution process is a multivariate problem. The measurement of an evolving software system through the shifting sands of time is not an easy task. Perhaps one of the most difficult issues relates to the establishment of a baseline against which the evolving systems may be compared. When a number of successive system builds are to be measured, we will choose one of the systems as a baseline system. All others will be measured in relation to the chosen system. Sometimes it will be useful to select the initial system build for this baseline. If we select this system, then the measurements on all other systems will be taken in relation to the initial system configuration. Within this context, laws 4, 5, and 6 lend themselves directly to measurement directly from a baseline system. D","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132134889","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
Laws of software evolution and their empirical support 软件进化规律及其经验支持
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167752
J. F. Ramil
Empirical support for the laws of software evolution cannot be rigorously tested as long as they are stated in natural language [1, 2]. Let’s consider the laws that directly relate to measurable phenomena (law 1 to 7) the eighth law “feedback system” is for the moment excluded of this discussion. Let’s assume that sufficient empirical data is available. One approach that has been used to assess the empirical support for the first seven laws uses quantitative models that are consistent with the laws. One fits such models to the empirical data and assesses the magnitude of the residuals. If these are small, the law will be supported by the data. If not, the law will remain unsupported. To illustrate this approach, let’s consider the 6th law “continuing growth”, which states that “the functional capability of E-type systems must be continually increased to maintain user satisfaction over the system lifetime”. Possible formal models of the law include the following: S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3 where S represents the size of a system measured, for example, in number of modules, t is the age of the system, and i is the release sequence number. a, b, g, and e are parameters suitably chosen to minimise the fitting error. Eqs. 1-3 provide models of system growth. In fact, Eq. 1 replicates the linear growth pattern of OS 360 (rsn 1-19). Eqs. 2 and 3 replicate within segments the growth of systems studied in FEAST [3, 4]. However, Eqs. 1-3 imply additional detail than that in the statement of the 6 law. Each model prescribes a particular type of growth trajectory. The law prescribes none. For this reason none of the models in isolation will be sufficient if used with the sole purpose of testing the 6th law. Data suggesting a trajectory, different than that of Eqs. 1-3, as for example in [5], is still supportive of the law. Models such as those of Eqs. 1-3 in isolation are not proper tests. A workaround to this problem uses a formalism that considers the phenomenon at a higher level of abstraction than that implied by conventional quantitative modelling, such as qualitative differential equations (QDE) [6]. For example, the 6th law can be expressed in QDE form as: dS/dt = M(t) Eq. 4 M represents any monotonically increasing function. A simple test based on Eq. 4 evaluates S(t) – S(t-1) over the whole data set and checks whether they are greater than zero. If so, the data supports the law. Since a superimposed ripple have been observed in growth patterns [1], data smoothing techniques may have to be applied before the test. However, the fuller potential of the qualitative simulation techniques becomes apparent if one considers that the laws are interrelated. The combined action of the forces implied by the laws may lead to more complex behaviours than monotonic increase or decrease. In order to address this, one can write several QDEs formalising several “measurable” laws. The resulting system of QDEs can be simulated [6,
只要是用自然语言表述的,软件进化规律的经验支持就不能得到严格的测试[1,2]。让我们考虑与可测量现象直接相关的定律(定律1至定律7),第八定律“反馈系统”暂时不在讨论范围之内。让我们假设有足够的经验数据。一种用于评估前七条定律的实证支持的方法使用了与定律一致的定量模型。人们将这些模型拟合到经验数据中,并评估残差的大小。如果这些数字很小,该法律将得到数据的支持。否则,该法案将继续得不到支持。为了说明这种方法,让我们考虑第6定律“持续增长”,它指出“e型系统的功能能力必须不断增加,以在系统生命周期内保持用户满意度”。该定律可能的形式模型包括:S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3其中S表示所测量系统的大小,例如,以模块数为单位,t是系统的年龄,i是发布序列号。A, b, g和e是为了最小化拟合误差而选择的参数。公式1-3提供了系统增长的模型。实际上,Eq. 1复制了OS 360的线性增长模式(rsn 1-19)。方程2和3在节段内重复了FEAST中研究的系统的生长[3,4]。然而,公式1-3暗示了比6定律陈述中更多的细节。每个模型都规定了一种特定类型的增长轨迹。法律没有规定。由于这个原因,如果仅用于测试第六定律,单独的模型都是不够的。数据显示的轨迹与公式1-3不同,例如[5],仍然支持该定律。如式1-3所示的模型孤立地不是适当的测试。解决这个问题的一个方法是使用一种形式化的方法,这种方法比传统的定量建模(如定性微分方程(QDE))所隐含的更高的抽象层次来考虑这种现象[6]。例如,第六定律可以用QDE形式表示为:dS/dt = M(t) Eq. 4 M表示任意单调递增函数。基于Eq. 4的简单测试评估整个数据集上的S(t) - S(t-1),并检查它们是否大于零。如果是这样,数据就支持这一定律。由于在生长模式中已经观察到叠加纹波[1],因此可能必须在测试之前应用数据平滑技术。然而,如果考虑到这些规律是相互关联的,则定性模拟技术的更充分潜力就会变得明显。这些规律所隐含的力的共同作用可能导致比单调的增减更为复杂的行为。为了解决这个问题,我们可以编写几个qde来形式化几个“可测量的”定律。可以模拟得到的qde系统[6,7],并将输出与经验观测结果进行比较。这种定性模拟方法以一种自然的方式解释了这些定律是相互关联的这一事实。公式2和3在某种程度上说明了相互关系。它们暗示着正但递减的增长率,这样做与第二定律“增加复杂性”和第六定律一致。在应用传统的定量方法时,需要模型构建者的聪明才智来识别承认不止一个规律的模型。这并不简单。定性模拟技术的使用是一个有待进一步研究的课题[7],它可能有助于以系统的方式在更高的抽象层次上对联合支持进行评估。第八定律已经根据几个观察得到了证明[1,2]。不幸的是,很难对其经验支持进行直接严格的测试,因为即使是简单的反馈系统的行为也没有被完全编纂[8]。根据整个e型演化过程中的反馈回路结构,可以对前七条规律进行合理化[2]。因此,对前七条定律中的任何一条的积极支持都会在一定程度上支持第八条定律。
{"title":"Laws of software evolution and their empirical support","authors":"J. F. Ramil","doi":"10.1109/ICSM.2002.1167752","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167752","url":null,"abstract":"Empirical support for the laws of software evolution cannot be rigorously tested as long as they are stated in natural language [1, 2]. Let’s consider the laws that directly relate to measurable phenomena (law 1 to 7) the eighth law “feedback system” is for the moment excluded of this discussion. Let’s assume that sufficient empirical data is available. One approach that has been used to assess the empirical support for the first seven laws uses quantitative models that are consistent with the laws. One fits such models to the empirical data and assesses the magnitude of the residuals. If these are small, the law will be supported by the data. If not, the law will remain unsupported. To illustrate this approach, let’s consider the 6th law “continuing growth”, which states that “the functional capability of E-type systems must be continually increased to maintain user satisfaction over the system lifetime”. Possible formal models of the law include the following: S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3 where S represents the size of a system measured, for example, in number of modules, t is the age of the system, and i is the release sequence number. a, b, g, and e are parameters suitably chosen to minimise the fitting error. Eqs. 1-3 provide models of system growth. In fact, Eq. 1 replicates the linear growth pattern of OS 360 (rsn 1-19). Eqs. 2 and 3 replicate within segments the growth of systems studied in FEAST [3, 4]. However, Eqs. 1-3 imply additional detail than that in the statement of the 6 law. Each model prescribes a particular type of growth trajectory. The law prescribes none. For this reason none of the models in isolation will be sufficient if used with the sole purpose of testing the 6th law. Data suggesting a trajectory, different than that of Eqs. 1-3, as for example in [5], is still supportive of the law. Models such as those of Eqs. 1-3 in isolation are not proper tests. A workaround to this problem uses a formalism that considers the phenomenon at a higher level of abstraction than that implied by conventional quantitative modelling, such as qualitative differential equations (QDE) [6]. For example, the 6th law can be expressed in QDE form as: dS/dt = M(t) Eq. 4 M represents any monotonically increasing function. A simple test based on Eq. 4 evaluates S(t) – S(t-1) over the whole data set and checks whether they are greater than zero. If so, the data supports the law. Since a superimposed ripple have been observed in growth patterns [1], data smoothing techniques may have to be applied before the test. However, the fuller potential of the qualitative simulation techniques becomes apparent if one considers that the laws are interrelated. The combined action of the forces implied by the laws may lead to more complex behaviours than monotonic increase or decrease. In order to address this, one can write several QDEs formalising several “measurable” laws. The resulting system of QDEs can be simulated [6, ","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129860714","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
Restructuring multilingual web sites 重组多语种网站
Pub Date : 2002-10-03 DOI: 10.1109/ICSM.2002.1167784
P. Tonella, F. Ricca, E. Pianta, Christian Girardi
Current practice of Web site development does not address explicitly the problems related to multilingual sites. The same information, as well as the same navigation paths, page formatting and organization, are expected to be provided by the site independently from the chosen language. This is typically ensured by adopting personal conventions on the way pages are named and on their location in the file system. Updates are then performed manually and consistency depends on the ability of the programmers not to miss any impact of the change. In this paper an extension to XHTML, called MLHTML (MultiLingual XHTML), is proposed as the target representation of a restructuring process aimed at producing a maintainable and consistent multilingual Web site. MLHTML centralizes the language dependent variants of a page in a single representation, where shared parts are not duplicated Existing sites can be migrated to MLHTML by means of the algorithms described in this paper. After classifying the pages according to their language, a page alignment technique is exploited to identify corresponding pages and to eliminate inconsistencies. Transformation into MLHTML can then be achieved automatically.
当前的Web站点开发实践并没有明确地解决与多语言站点相关的问题。相同的信息,以及相同的导航路径,页面格式和组织,预计将独立于所选择的语言由网站提供。这通常通过对页面的命名方式及其在文件系统中的位置采用个人约定来确保。然后手动执行更新,一致性取决于程序员不错过任何更改影响的能力。本文提出了XHTML的扩展,称为MLHTML(多语言XHTML),作为旨在生成可维护且一致的多语言Web站点的重构过程的目标表示形式。MLHTML将与语言相关的页面变体集中在单一表示中,其中共享部分不会重复,现有站点可以通过本文中描述的算法迁移到MLHTML。在根据语言对页面进行分类之后,利用页面对齐技术来识别相应的页面并消除不一致。然后可以自动实现到MLHTML的转换。
{"title":"Restructuring multilingual web sites","authors":"P. Tonella, F. Ricca, E. Pianta, Christian Girardi","doi":"10.1109/ICSM.2002.1167784","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167784","url":null,"abstract":"Current practice of Web site development does not address explicitly the problems related to multilingual sites. The same information, as well as the same navigation paths, page formatting and organization, are expected to be provided by the site independently from the chosen language. This is typically ensured by adopting personal conventions on the way pages are named and on their location in the file system. Updates are then performed manually and consistency depends on the ability of the programmers not to miss any impact of the change. In this paper an extension to XHTML, called MLHTML (MultiLingual XHTML), is proposed as the target representation of a restructuring process aimed at producing a maintainable and consistent multilingual Web site. MLHTML centralizes the language dependent variants of a page in a single representation, where shared parts are not duplicated Existing sites can be migrated to MLHTML by means of the algorithms described in this paper. After classifying the pages according to their language, a page alignment technique is exploited to identify corresponding pages and to eliminate inconsistencies. Transformation into MLHTML can then be achieved automatically.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125499786","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
期刊
International Conference on Software Maintenance, 2002. Proceedings.
全部 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