Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972760
K. Geihs, C. Becker
Quality of service (QoS) management is a popular demand on distribution infrastructures. We present MAQS, a generic framework for QoS management based on standard CORBA middleware. The framework facilitates the specification and generation of QoS-enabled client/server applications. Architectural support for re-use and maintenance of implementations of QoS mechanisms is one of our main objectives. Our approach is based on the aspect-oriented programming paradigm. We discuss the design of the framework and how AOP facilitates the re-use and maintenance of QoS components.
{"title":"A framework for re-use and maintenance of Quality of Service mechanisms in distributed object systems","authors":"K. Geihs, C. Becker","doi":"10.1109/ICSM.2001.972760","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972760","url":null,"abstract":"Quality of service (QoS) management is a popular demand on distribution infrastructures. We present MAQS, a generic framework for QoS management based on standard CORBA middleware. The framework facilitates the specification and generation of QoS-enabled client/server applications. Architectural support for re-use and maintenance of implementations of QoS mechanisms is one of our main objectives. Our approach is based on the aspect-oriented programming paradigm. We discuss the design of the framework and how AOP facilitates the re-use and maintenance of QoS components.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127189378","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972720
Massimo Contini, S. D. Vettimo, A. Botta, T. Vimercati, D. Tagliabue
The Research&Development Department of Siemens Information and Communication Networks SpA-ICM N MR developed an application based on web technologies to shorten the effort spent by new employees for acquiring know how on large software system undergoing maintenance activities and to continuously improve quality and readability of source code modules for the sake of maintainability.
西门子信息与通信网络SpA-ICM N MR研发部开发了一款基于web技术的应用程序,以缩短新员工在进行维护活动的大型软件系统上获取知识的时间,并不断提高源代码模块的质量和可读性,以达到可维护性的目的。
{"title":"An Intranet-based application for supporting effective maintenance activities on large software systems","authors":"Massimo Contini, S. D. Vettimo, A. Botta, T. Vimercati, D. Tagliabue","doi":"10.1109/ICSM.2001.972720","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972720","url":null,"abstract":"The Research&Development Department of Siemens Information and Communication Networks SpA-ICM N MR developed an application based on web technologies to shorten the effort spent by new employees for acquiring know how on large software system undergoing maintenance activities and to continuously improve quality and readability of source code modules for the sake of maintainability.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124687670","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972709
Michael Johnson, R. Rosebrugh
The maintenance of legacy information systems is becoming increasingly common as needs for Internet based interoperation drive system changes. This paper outlines new techniques for achieving interoperability among legacy information systems, usually without making major changes to the legacy code. The techniques involved use a limited type of reverse engineering to establish a formal model of relevant parts of the legacy systems, and they use existing interfaces to communicate between the code written to support the reverse engineered models and the legacy code. Interoperation is then achieved using mathematical techniques to support common logically data independent views of the reverse engineered models. The paper is somewhat theoretical as it provides a detailed exposition of the new techniques, but the techniques themselves are currently being tested in industrial applications with considerable success, and they are based on a framework which has been used in a number of major consultancies.
{"title":"Engineering legacy information systems for internet based interoperation","authors":"Michael Johnson, R. Rosebrugh","doi":"10.1109/ICSM.2001.972709","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972709","url":null,"abstract":"The maintenance of legacy information systems is becoming increasingly common as needs for Internet based interoperation drive system changes. This paper outlines new techniques for achieving interoperability among legacy information systems, usually without making major changes to the legacy code. The techniques involved use a limited type of reverse engineering to establish a formal model of relevant parts of the legacy systems, and they use existing interfaces to communicate between the code written to support the reverse engineered models and the legacy code. Interoperation is then achieved using mathematical techniques to support common logically data independent views of the reverse engineered models. The paper is somewhat theoretical as it provides a detailed exposition of the new techniques, but the techniques themselves are currently being tested in industrial applications with considerable success, and they are based on a framework which has been used in a number of major consultancies.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125054956","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972796
R. Schauer, R. Keller
Object-oriented programming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of extending the methods of these classes, programmers often introduce subclasses in which they replace these methods with implementations that are completely detached from the superclass; that is, the subclass method does not invoke, directly or indirectly, its counterpart in the superclass. In this paper we apply the SPOOL environment to the reverse-engineered C++ source code of two industrial systems to investigate the occurrences and causes for method replacements, both at the method and at the class level. We define the method replacement indicator (MRI), which quantifies the extent of method replacements. Based on the data obtained in the analysis, we identify and discuss the causes why programmers replace non-primitive method implementations of reusable classes.
{"title":"The method replacement indicator: a metric for analyzing behavioral substitution","authors":"R. Schauer, R. Keller","doi":"10.1109/ICSM.2001.972796","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972796","url":null,"abstract":"Object-oriented programming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of extending the methods of these classes, programmers often introduce subclasses in which they replace these methods with implementations that are completely detached from the superclass; that is, the subclass method does not invoke, directly or indirectly, its counterpart in the superclass. In this paper we apply the SPOOL environment to the reverse-engineered C++ source code of two industrial systems to investigate the occurrences and causes for method replacements, both at the method and at the class level. We define the method replacement indicator (MRI), which quantifies the extent of method replacements. Based on the data obtained in the analysis, we identify and discuss the causes why programmers replace non-primitive method implementations of reusable classes.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130668827","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972766
Celeste See Pui Ng, Taizan Chan, G. Gable
The worldwide installed base of Enterprise Resource Planning (ERP) systems has increased rapidly in size over the past 10 years now comprising tens of thousands of installations in large- and medium-sized organizations and millions of licensed users. Similar to traditional Information Systems (IS), ERP systems must be maintained and upgraded. It is therefore not surprising that EPP maintenance activities have become the largest budget provision in the IS departments of ERP-adopting organizations. Yet, there has been very limited study conducted on ERP maintenance activities. Are they simply instances of traditional software maintenance activities to which traditional software maintenance research findings can be generalized? Or are they fundamentally different activities, such that new research, specific to ERP maintenance, is required to help alleviate the ERP maintenance burden? This paper reports a case study of a large organization that implemented ERP (an SAP system) two years ago. From the case study and data collected, we observe that (1) an ERP-employing organization does not only maintain user change request but also implement maintenance introduced by the vendor; (2) request for user-support. concerning the ERP system usage, and training constitutes a main part of ERP maintenance activities; and (3) configuration is a major ERP maintenance component. We find that ERP maintenance activities are indeed different from traditional in-house software maintenance in a way that these maintenance activities cannot be sufficiently described by existing taxonomies used to classify traditional software maintenance activities. We propose a benefits-oriented taxonomy that better represents ERP enhancement maintenance activities.
{"title":"A client-benefits oriented taxonomy of ERP maintenance","authors":"Celeste See Pui Ng, Taizan Chan, G. Gable","doi":"10.1109/ICSM.2001.972766","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972766","url":null,"abstract":"The worldwide installed base of Enterprise Resource Planning (ERP) systems has increased rapidly in size over the past 10 years now comprising tens of thousands of installations in large- and medium-sized organizations and millions of licensed users. Similar to traditional Information Systems (IS), ERP systems must be maintained and upgraded. It is therefore not surprising that EPP maintenance activities have become the largest budget provision in the IS departments of ERP-adopting organizations. Yet, there has been very limited study conducted on ERP maintenance activities. Are they simply instances of traditional software maintenance activities to which traditional software maintenance research findings can be generalized? Or are they fundamentally different activities, such that new research, specific to ERP maintenance, is required to help alleviate the ERP maintenance burden? This paper reports a case study of a large organization that implemented ERP (an SAP system) two years ago. From the case study and data collected, we observe that (1) an ERP-employing organization does not only maintain user change request but also implement maintenance introduced by the vendor; (2) request for user-support. concerning the ERP system usage, and training constitutes a main part of ERP maintenance activities; and (3) configuration is a major ERP maintenance component. We find that ERP maintenance activities are indeed different from traditional in-house software maintenance in a way that these maintenance activities cannot be sufficiently described by existing taxonomies used to classify traditional software maintenance activities. We propose a benefits-oriented taxonomy that better represents ERP enhancement maintenance activities.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124134192","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972741
Harvey P. Siy, L. Votta
For years, it was believed that the value of inspections is in finding and fixing defects early in the development process. Otherwise, the cost to find and fix them later is much higher However in examining code inspection data, we are finding that inspections are beneficial for an additional reason. They make the code easier to understand and change. An analysis of data from a recent code inspection experiment shows that 60% of all issues raised in the code inspections are not problems that could have been uncovered by latter phases of testing or field usage because they have little or nothing to do with the visible execution behavior of the software. Rather they improve the maintainability of the code by making the code conform to coding standards, minimizing redundancies, improving language proficiency, improving safety and portability, and raising the quality of the documentation. We conclude that even if advances in software technology have diminished the value of inspections as a defect detection tool, in most cases, it continues to be of value as a maintenance tool.
{"title":"Does the modern code inspection have value?","authors":"Harvey P. Siy, L. Votta","doi":"10.1109/ICSM.2001.972741","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972741","url":null,"abstract":"For years, it was believed that the value of inspections is in finding and fixing defects early in the development process. Otherwise, the cost to find and fix them later is much higher However in examining code inspection data, we are finding that inspections are beneficial for an additional reason. They make the code easier to understand and change. An analysis of data from a recent code inspection experiment shows that 60% of all issues raised in the code inspections are not problems that could have been uncovered by latter phases of testing or field usage because they have little or nothing to do with the visible execution behavior of the software. Rather they improve the maintainability of the code by making the code conform to coding standards, minimizing redundancies, improving language proficiency, improving safety and portability, and raising the quality of the documentation. We conclude that even if advances in software technology have diminished the value of inspections as a defect detection tool, in most cases, it continues to be of value as a maintenance tool.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121147789","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972723
N. Schneidewind
In order to continue to make progress in software measurement, as it pertains to reliability and maintainability, we must shift the emphasis from design and code metrics to metrics that characterize the risk of making requirements changes. Although these software attributes can be difficult to deal with due to the fuzzy requirements from which they are derived, the advantage of having early indicators of future software problems outweighs this inconvenience. We developed an approach for identifying requirements change risk factors as predictors of reliability and maintainability problems. Our case example consists of twenty-four Space Shuttle change requests, nineteen risk factors, and the associated failures and software metrics. The approach can be generalized to other domains with numerical results that would vary according to application.
{"title":"Investigation of the risk to software reliability and maintainability of requirements changes","authors":"N. Schneidewind","doi":"10.1109/ICSM.2001.972723","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972723","url":null,"abstract":"In order to continue to make progress in software measurement, as it pertains to reliability and maintainability, we must shift the emphasis from design and code metrics to metrics that characterize the risk of making requirements changes. Although these software attributes can be difficult to deal with due to the fuzzy requirements from which they are derived, the advantage of having early indicators of future software problems outweighs this inconvenience. We developed an approach for identifying requirements change risk factors as predictors of reliability and maintainability problems. Our case example consists of twenty-four Space Shuttle change requests, nineteen risk factors, and the associated failures and software metrics. The approach can be generalized to other domains with numerical results that would vary according to application.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125698871","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972778
Timothy S. Souder, S. Mancoridis, M. Salah
Form is a framework used to construct tools for analyzing the runtime behavior of standalone and distributed software systems. The architecture of Form is based on the event broadcast and pipe and filter styles. In the implementation of this architecture, execution profiles may be generated from standalone or distributed systems. The profile data is subsequently broadcast by Form to one or more views. Each view is a tool used to support program understanding or other software development activities. The authors describe the Form architecture and implementation, as well as a tool that was built using Form. This tool profiles Java-based distributed systems and generates UML sequence diagrams to describe their execution. We also present a case study that shows how this tool was used to extract sequence diagrams from a three-tiered EJB-based distributed application.
{"title":"Form: a framework for creating views of program executions","authors":"Timothy S. Souder, S. Mancoridis, M. Salah","doi":"10.1109/ICSM.2001.972778","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972778","url":null,"abstract":"Form is a framework used to construct tools for analyzing the runtime behavior of standalone and distributed software systems. The architecture of Form is based on the event broadcast and pipe and filter styles. In the implementation of this architecture, execution profiles may be generated from standalone or distributed systems. The profile data is subsequently broadcast by Form to one or more views. Each view is a tool used to support program understanding or other software development activities. The authors describe the Form architecture and implementation, as well as a tool that was built using Form. This tool profiles Java-based distributed systems and generates UML sequence diagrams to describe their execution. We also present a case study that shows how this tool was used to extract sequence diagrams from a three-tiered EJB-based distributed application.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"71 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132079039","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972795
B. Mitchell, S. Mancoridis
Decomposing source code components and relations into subsystem clusters is an active area of research. Numerous clustering approaches have been proposed in the reverse engineering literature, each one using a different algorithm to identify subsystems. Since different clustering techniques may not produce identical results when applied to the same system, mechanisms that can measure the extent of these differences are needed. Some work to measure the similarity between decompositions has been done, but this work considers the assignment of source code components to clusters as the only criterion for similarity. We argue that better similarity measurements can be designed if the relations between the components are considered. The authors propose two similarity measurements that overcome certain problems in existing measurements. We also provide some suggestions on how to identify and deal with source code components that tend to contribute to poor similarity results. We conclude by presenting experimental results, and by highlighting some of the benefits of our similarity measurements.
{"title":"Comparing the decompositions produced by software clustering algorithms using similarity measurements","authors":"B. Mitchell, S. Mancoridis","doi":"10.1109/ICSM.2001.972795","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972795","url":null,"abstract":"Decomposing source code components and relations into subsystem clusters is an active area of research. Numerous clustering approaches have been proposed in the reverse engineering literature, each one using a different algorithm to identify subsystems. Since different clustering techniques may not produce identical results when applied to the same system, mechanisms that can measure the extent of these differences are needed. Some work to measure the similarity between decompositions has been done, but this work considers the assignment of source code components to clusters as the only criterion for similarity. We argue that better similarity measurements can be designed if the relations between the components are considered. The authors propose two similarity measurements that overcome certain problems in existing measurements. We also provide some suggestions on how to identify and deal with source code components that tend to contribute to poor similarity results. We conclude by presenting experimental results, and by highlighting some of the benefits of our similarity measurements.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130209451","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972706
H. Sneed
The paper proposes that the evolution of software systems is determined by the type of application and that one must distinguish between static and dynamic applications. Static evolution can be anticipated and planned. Dynamic evolution is by nature ad hoc and must be reactive. Some degree of stability can be brought to dynamic systems by dividing them into components, based on their propensity to change. In the world of electronic commerce, evolution has become the standard mode of development.
{"title":"Software evolution. A road map","authors":"H. Sneed","doi":"10.1109/ICSM.2001.972706","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972706","url":null,"abstract":"The paper proposes that the evolution of software systems is determined by the type of application and that one must distinguish between static and dynamic applications. Static evolution can be anticipated and planned. Dynamic evolution is by nature ad hoc and must be reactive. Some degree of stability can be brought to dynamic systems by dividing them into components, based on their propensity to change. In the world of electronic commerce, evolution has become the standard mode of development.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133133811","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}