Pub Date : 2003-09-22DOI: 10.1109/ICSM.2003.1235410
J. Sayyad-Shirabad, T. Lethbridge, S. Matwin
A considerable amount of system maintenance experience can be found in bug tracking and source code configuration management systems. Data mining and machine learning techniques allow one to extract models from past experience that can be used in future predictions. By mining the software change record, one can therefore generate models that can be used in future maintenance activities. In this paper, we present an example of such a model that represents a relation between pairs of files and show how it can be extracted from the software update records of a real world legacy system. We show how different sources of data can be used to extract sets of features useful in describing this model, as well as how results are affected by these different feature sets and their combinations. Our best results were obtained from text-based features, i.e. those extracted from words in the problem reports as opposed to syntactic structures in the source code.
{"title":"Mining the maintenance history of a legacy software system","authors":"J. Sayyad-Shirabad, T. Lethbridge, S. Matwin","doi":"10.1109/ICSM.2003.1235410","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235410","url":null,"abstract":"A considerable amount of system maintenance experience can be found in bug tracking and source code configuration management systems. Data mining and machine learning techniques allow one to extract models from past experience that can be used in future predictions. By mining the software change record, one can therefore generate models that can be used in future maintenance activities. In this paper, we present an example of such a model that represents a relation between pairs of files and show how it can be extracted from the software update records of a real world legacy system. We show how different sources of data can be used to extract sets of features useful in describing this model, as well as how results are affected by these different feature sets and their combinations. Our best results were obtained from text-based features, i.e. those extracted from words in the problem reports as opposed to syntactic structures in the source code.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134520156","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235401
Jens Gustavsson
For some software systems with high availability requirements, it is not acceptable to have the system shut down when a new version of it is to be deployed. An alternative is to use unanticipated runtime software evolution, which means making changes to the software system while it is executing. We propose a classification of unanticipated runtime software changes. Our classification consists of a code change aspect, a state change aspect and an activity aspect. The purpose of the classification is to get a greater understanding of the nature of such changes, and to facilitate an abstract view of them. We also present results from a case study, where historical changes to an existing software system have been categorized according to the classification. The data from the case study gives an indication that the Java Platform Debugger Architecture, a standard mechanism in Java virtual machines, is a viable technical foundation for runtime software evolution systems.
{"title":"A classification of unanticipated runtime software changes in Java","authors":"Jens Gustavsson","doi":"10.1109/ICSM.2003.1235401","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235401","url":null,"abstract":"For some software systems with high availability requirements, it is not acceptable to have the system shut down when a new version of it is to be deployed. An alternative is to use unanticipated runtime software evolution, which means making changes to the software system while it is executing. We propose a classification of unanticipated runtime software changes. Our classification consists of a code change aspect, a state change aspect and an activity aspect. The purpose of the classification is to get a greater understanding of the nature of such changes, and to facilitate an abstract view of them. We also present results from a case study, where historical changes to an existing software system have been categorized according to the classification. The data from the case study gives an indication that the Java Platform Debugger Architecture, a standard mechanism in Java virtual machines, is a viable technical foundation for runtime software evolution systems.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131123544","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235445
A. S. Klusener
Function point analysis is a well known established method to estimate the size of software systems and software projects. However, because it is based on functional documentation it is hardly used for sizing legacy systems, in particular enhancement projects. In this short note we sketch briefly how function point analysis can be based on source code.
{"title":"Source code based function point analysis for enhancement projects","authors":"A. S. Klusener","doi":"10.1109/ICSM.2003.1235445","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235445","url":null,"abstract":"Function point analysis is a well known established method to estimate the size of software systems and software projects. However, because it is based on functional documentation it is hardly used for sizing legacy systems, in particular enhancement projects. In this short note we sketch briefly how function point analysis can be based on source code.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124201906","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235423
S. Smit, P. D. With, G. V. Dijk
The paper describes experiences with the evolution of a software maintenance organization for digital set-top boxes of a leading electronics company from a cost center towards a service center. Several years ago a dedicated software maintenance group was constituted. As the costs for software maintenance were not recovered from the customers, the software maintenance group was merely considered a cost center. Through starting a metrics program for software maintenance and defining a service strategy with various service levels, the software maintenance group generated sufficient revenues to become self-supporting. An important conclusion is that the use of ITIL (IT infrastructure library) service support has helped to develop a better customer focused approach, which is considered as the most important critical success factor for a professional, self-supporting maintenance organization.
{"title":"Evolution of a software maintenance organization from cost center to service center","authors":"S. Smit, P. D. With, G. V. Dijk","doi":"10.1109/ICSM.2003.1235423","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235423","url":null,"abstract":"The paper describes experiences with the evolution of a software maintenance organization for digital set-top boxes of a leading electronics company from a cost center towards a service center. Several years ago a dedicated software maintenance group was constituted. As the costs for software maintenance were not recovered from the customers, the software maintenance group was merely considered a cost center. Through starting a metrics program for software maintenance and defining a service strategy with various service levels, the software maintenance group generated sufficient revenues to become self-supporting. An important conclusion is that the use of ITIL (IT infrastructure library) service support has helped to develop a better customer focused approach, which is considered as the most important critical success factor for a professional, self-supporting maintenance organization.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128853004","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235441
R. Land, I. Crnkovic
Software systems no longer evolve as separate entities but are also integrated with each other. The purpose of integrating software systems can be to increase user-value or to decrease maintenance costs. Different approaches, one of which is software architectural analysis, can be used in the process of integration planning and design. This paper presents a case study in which three software systems were to be integrated. We show how architectural reasoning was used to design and compare integration alternatives. In particular, four different levels of the integration were discussed (interoperation, a so-called enterprise application integration, an integration based on a common data model, and a full integration). We also show how cost, time to delivery and maintainability of the integrated solution were estimated. On the basis of the case study, we analyze the advantages and limits of the architectural approach as such and conclude by outlining directions for future research: how to incorporate analysis of cost; time to delivery; and risk in architectural analysis, and how to make architectural analysis more suitable for comparing many aspects of many alternatives during development. Finally we outline the limitations of architectural analysis.
{"title":"Software systems integration and architectural analysis - a case study","authors":"R. Land, I. Crnkovic","doi":"10.1109/ICSM.2003.1235441","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235441","url":null,"abstract":"Software systems no longer evolve as separate entities but are also integrated with each other. The purpose of integrating software systems can be to increase user-value or to decrease maintenance costs. Different approaches, one of which is software architectural analysis, can be used in the process of integration planning and design. This paper presents a case study in which three software systems were to be integrated. We show how architectural reasoning was used to design and compare integration alternatives. In particular, four different levels of the integration were discussed (interoperation, a so-called enterprise application integration, an integration based on a common data model, and a full integration). We also show how cost, time to delivery and maintainability of the integrated solution were estimated. On the basis of the case study, we analyze the advantages and limits of the architectural approach as such and conclude by outlining directions for future research: how to incorporate analysis of cost; time to delivery; and risk in architectural analysis, and how to make architectural analysis more suitable for comparing many aspects of many alternatives during development. Finally we outline the limitations of architectural analysis.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129655196","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235428
L. Briand, Y. Labiche, Leeshawn O'Sullivan
The use of Unified Modeling Language (UML) analysis/design models on large projects leads to a large number of interdependent UML diagrams. As software systems evolve, those diagrams undergo changes to, for instance, correct errors or address changes in the requirements. Those changes can in turn lead to subsequent changes to other elements in the UML diagrams. Impact analysis is then defined as the process of identifying the potential consequences (side-effects) of a change, and estimating what needs to be modified to accomplish a change. In this article, we propose a UML model-based approach to impact analysis that can be applied before any implementation of the changes, thus allowing an early decision-making and change planning process. We first verify that the UML diagrams are consistent (consistency check). Then changes between two different versions of a UML model are identified according to a change taxonomy, and model elements that are directly or indirectly impacted by those changes (i.e., may undergo changes) are determined using formally defined impact analysis rules (written with Object Constraint Language). A measure of distance between a changed element and potentially impacted elements is also proposed to prioritize the results of impact analysis according to their likelihood of occurrence. We also present a prototype tool that provides automated support for our impact analysis strategy, that we then apply on a case study to validate both the implementation and methodology.
{"title":"Impact analysis and change management of UML models","authors":"L. Briand, Y. Labiche, Leeshawn O'Sullivan","doi":"10.1109/ICSM.2003.1235428","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235428","url":null,"abstract":"The use of Unified Modeling Language (UML) analysis/design models on large projects leads to a large number of interdependent UML diagrams. As software systems evolve, those diagrams undergo changes to, for instance, correct errors or address changes in the requirements. Those changes can in turn lead to subsequent changes to other elements in the UML diagrams. Impact analysis is then defined as the process of identifying the potential consequences (side-effects) of a change, and estimating what needs to be modified to accomplish a change. In this article, we propose a UML model-based approach to impact analysis that can be applied before any implementation of the changes, thus allowing an early decision-making and change planning process. We first verify that the UML diagrams are consistent (consistency check). Then changes between two different versions of a UML model are identified according to a change taxonomy, and model elements that are directly or indirectly impacted by those changes (i.e., may undergo changes) are determined using formally defined impact analysis rules (written with Object Constraint Language). A measure of distance between a changed element and potentially impacted elements is also proposed to prioritize the results of impact analysis according to their likelihood of occurrence. We also present a prototype tool that provides automated support for our impact analysis strategy, that we then apply on a case study to validate both the implementation and methodology.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129762844","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235420
Steven Klusener, R. Lämmel
A grammar-based approach to tool development in reengineering and reverse engineering promises precise structure awareness, but it is problematic in two respects. Firstly, it is a considerable up-front investment to obtain a grammar for a relevant language or cocktail of languages. Existing work on grammar recovery addresses this concern to some extent. Secondly, it is often not feasible to insist on a precise grammar, e.g., when different dialects need to be covered. This calls for tolerant grammars. In this paper, we provide a well-engineered approach to the derivation of tolerant grammars, which is based on previous work on error recovery, fuzzy parsing, and island grammars. The technology of this paper has been used in a complex Cobol restructuring project on several millions of lines of code in different Cobol dialects. Our approach is founded on an approximation relation between a tolerant grammar and a base-line grammar which serves as a point of reference. Thereby, we avoid false positives and false negatives when parsing constructs of interest in a tolerant mode. Our approach accomplishes the effective derivation of a tolerant grammar from the syntactical structure that is relevant for a certain re- or reverse engineering tool. To this end, the productions for the constructs of interest are reused from the base-line grammar together with further productions that are needed for completion.
{"title":"Deriving tolerant grammars from a base-line grammar","authors":"Steven Klusener, R. Lämmel","doi":"10.1109/ICSM.2003.1235420","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235420","url":null,"abstract":"A grammar-based approach to tool development in reengineering and reverse engineering promises precise structure awareness, but it is problematic in two respects. Firstly, it is a considerable up-front investment to obtain a grammar for a relevant language or cocktail of languages. Existing work on grammar recovery addresses this concern to some extent. Secondly, it is often not feasible to insist on a precise grammar, e.g., when different dialects need to be covered. This calls for tolerant grammars. In this paper, we provide a well-engineered approach to the derivation of tolerant grammars, which is based on previous work on error recovery, fuzzy parsing, and island grammars. The technology of this paper has been used in a complex Cobol restructuring project on several millions of lines of code in different Cobol dialects. Our approach is founded on an approximation relation between a tolerant grammar and a base-line grammar which serves as a point of reference. Thereby, we avoid false positives and false negatives when parsing constructs of interest in a tolerant mode. Our approach accomplishes the effective derivation of a tolerant grammar from the syntactical structure that is relevant for a certain re- or reverse engineering tool. To this end, the productions for the constructs of interest are reused from the base-line grammar together with further productions that are needed for completion.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"72 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126303891","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235455
R. Seacord, J. Elm, Wolfhart B. Goethert, G. Lewis, Daniel Plakosh, John E. Robert, L. Wrage, M. Lindvall
Planning and management of software sustainment is impaired by a lack of consistently applied, practical measures. Without these measures, it is impossible to determine the effect of efforts to improve sustainment practices. In this paper we provide a context for evaluating sustainability and discuss a set of measures developed at the Software Engineering Institute at Carnegie Mellon University.
{"title":"Measuring software sustainability","authors":"R. Seacord, J. Elm, Wolfhart B. Goethert, G. Lewis, Daniel Plakosh, John E. Robert, L. Wrage, M. Lindvall","doi":"10.1109/ICSM.2003.1235455","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235455","url":null,"abstract":"Planning and management of software sustainment is impaired by a lack of consistently applied, practical measures. Without these measures, it is impossible to determine the effect of efforts to improve sustainment practices. In this paper we provide a context for evaluating sustainability and discuss a set of measures developed at the Software Engineering Institute at Carnegie Mellon University.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122442536","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235444
Michael Johnson, C. Dampney
At ICSM01 Johnson and Rosebrugh proposed a new methodology, based on formal specification techniques and partial reverse engineering, for developing interoperations among legacy information systems. The present brief paper reports on progress to date in designing such interoperations for major health informatics information systems. We describe briefly the methodology, argue for the value of partial reverse engineering and the benefits of the formal specification approach (based on category theory) that we use, and evaluate the methodology in two case studies. The main new result is the following. The ICSM01 paper correctly predicted that what was called there "full-duplex interoperation" would often provide more interoperability than is in fact required. We have discovered that the provision of full-duplex interoperability is indeed usually unnecessary, and it is costly because of the need to modify the legacy system. We proposed the development of "half-duplex interoperation" to avoid these costs, and we have since developed the half-duplex techniques. Nevertheless, the half-duplex techniques can still require some legacy system modification. Following recent work on partial information, we are developing an extension to the view based interoperation technique that avoids legacy system modification in over 92% of the cases we have investigated.
{"title":"Experience in developing interoperations among legacy information systems using partial reverse engineering","authors":"Michael Johnson, C. Dampney","doi":"10.1109/ICSM.2003.1235444","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235444","url":null,"abstract":"At ICSM01 Johnson and Rosebrugh proposed a new methodology, based on formal specification techniques and partial reverse engineering, for developing interoperations among legacy information systems. The present brief paper reports on progress to date in designing such interoperations for major health informatics information systems. We describe briefly the methodology, argue for the value of partial reverse engineering and the benefits of the formal specification approach (based on category theory) that we use, and evaluate the methodology in two case studies. The main new result is the following. The ICSM01 paper correctly predicted that what was called there \"full-duplex interoperation\" would often provide more interoperability than is in fact required. We have discovered that the provision of full-duplex interoperability is indeed usually unnecessary, and it is costly because of the need to modify the legacy system. We proposed the development of \"half-duplex interoperation\" to avoid these costs, and we have since developed the half-duplex techniques. Nevertheless, the half-duplex techniques can still require some legacy system modification. Following recent work on partial information, we are developing an extension to the view based interoperation technique that avoids legacy system modification in over 92% of the cases we have investigated.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121601168","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235460
Cees Mul
Summary form only given. Transaction processing in the airline industry has a rich history. The IBM transaction processing facility (TPF) platform played, and still plays, a major role in the airline industry. We introduce a wrapper on the TPF platform itself to access the legacy applications. A very pragmatic and successful approach that resulted in a very thin Web server made it possible to offer real-time e-commerce functionality against a very low price per booking.
{"title":"Making maximum use of legacy code: Transavia Internet booking engine","authors":"Cees Mul","doi":"10.1109/ICSM.2003.1235460","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235460","url":null,"abstract":"Summary form only given. Transaction processing in the airline industry has a rich history. The IBM transaction processing facility (TPF) platform played, and still plays, a major role in the airline industry. We introduce a wrapper on the TPF platform itself to access the legacy applications. A very pragmatic and successful approach that resulted in a very thin Web server made it possible to offer real-time e-commerce functionality against a very low price per booking.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126324091","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}