{"title":"Assembler to C migration using the FermaT transformation system","authors":"Martin P. Ward","doi":"10.1109/ICSM.1999.792571","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792571","url":null,"abstract":"The FermaT transformation system, based on research carried out over the last twelve years (1987-99) at Durham University and Software Migrations Ltd., is an industrial-strength formal transformation engine with many applications in program comprehension and language migration. The paper describes one application of the system: the migration of IBM 370 Assembler code to equivalent, maintainable C code. We present an example of using the tool to migrate a small, but complex, assembler module to C with no manual intervention required. We briefly discuss a mass migration exercise where 1925 assembler modules were successfully migrated to C code.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131038854","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}
{"title":"Evolutionary migration of legacy systems to an object-based distributed environment","authors":"Miguel A. Serrano, C. M. D. Oca, D. Carver","doi":"10.1109/ICSM.1999.792579","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792579","url":null,"abstract":"There is an increasing interest in migrating legacy systems to new hardware platforms and to new software development paradigms. High maintenance costs and lack of documentation are among the challenges facing software engineers who wish to migrate such systems. The increasing emphasis on distributed systems and on the object-oriented paradigm suggests that object-oriented, component-based, distributed systems will represent a significant portion of the next generation of software systems. We present a semiautomatic, evolutionary migration methodology for legacy systems which produces an object-based distributed system. We use ISA which is a design recovery and subsystem classification technique that produces a data-cohesive hierarchical subsystem decomposition of the subject system. We adapt the subsystems to the object-oriented paradigm. We wrap and define interfaces of the subsystems in order to define components. Components are allocated to multiple sites. Finally, middleware technologies for distributed systems are used to implement the communication between components. The approach is suitable for the evolutionary migration of legacy systems since each component can be reengineered separately.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"584 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131890972","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}
{"title":"Bunch: a clustering tool for the recovery and maintenance of software system structures","authors":"S. Mancoridis, B. Mitchell, Y. Chen, E. Gansner","doi":"10.1109/ICSM.1999.792498","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792498","url":null,"abstract":"Software systems are typically modified in order to extend or change their functionality, improve their performance, port them to different platforms, and so on. For developers, it is crucial to understand the structure of a system before attempting to modify it. The structure of a system, however, may not be apparent to new developers, because the design documentation is non-existent or, worse, inconsistent with the implementation. This problem could be alleviated if developers were somehow able to produce high-level system decomposition descriptions from the low-level structures present in the source code. We have developed a clustering tool called Bunch that creates a system decomposition automatically by treating clustering as an optimization problem. The paper describes the extensions made to Bunch in response to feedback we received from users. The most important extension, in terms of the quality of results and execution efficiency, is a feature that enables the integration of designer knowledge about the system structure into an otherwise fully automatic clustering process. We use a case study to show how our new features simplified the task of extracting the subsystem structure of a medium size program, while exposing an interesting design flaw in the process.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134095674","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}
{"title":"Reuse-driven interprocedural slicing in the presence of pointers and recursion","authors":"Donglin Liang, M. J. Harrold","doi":"10.1109/ICSM.1999.792640","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792640","url":null,"abstract":"Program slicing, a technique to compute the subset of program statements that can affect the value of a program variable at a specific program point, is widely used in tools to support maintenance activities. To be useful for supporting these activities, a slicing technique must be sufficiently precise and efficient. Harrold and Ci (1998) proposed a method for improving the efficiency of slicing by reusing slicing information for subsequent slicing. This paper presents an interprocedural slicing algorithm that improves the efficiency and precision of Harrold and Ci's algorithm for programs with pointer variables and recursion. Our empirical results show that our improvements can effectively achieve more reuse in slice computation, for programs with pointers, and can significantly reduce the sizes of slices, for programs with recursion.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114148087","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}
{"title":"Quality improvement in switching-system software","authors":"Takaaki Fukuda, Tetsuyasu Yamada, Tomoharu Yamaguchi","doi":"10.1109/ICSM.1999.792633","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792633","url":null,"abstract":"The paper describes the effects on switching system software quality of development and maintenance activities. The effect of the application of object oriented methods and quantitative quality control methods in the development of switching system programs is evaluated by comparing the number of errors after shipping to that of earlier systems. Effective approaches to further improving the quality have been developed by analyzing error data obtained during development and maintenance. The main findings are as follows. (1) Although the error density in switching programs, which include call processing and system management functions, is the same as that in maintenance programs, errors in the switching programs are more likely to have a serious impact on the system when the errors are not discovered. Thus, quality control management that takes the potential impact of errors into account will more effectively improve the total software quality. (2) To increase the error detection rate in each testing phase, the omission of test items must be prevented by managing the correspondence of test items between each testing phase, and by supporting the generation of test items from the system specifications.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"406 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122900400","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}
{"title":"Simultaneous demand-driven data-flow and call graph analysis","authors":"G. Agrawal","doi":"10.1109/ICSM.1999.792643","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792643","url":null,"abstract":"Recently, there has been much interest in performing demand-driven data flow analysis in software development environments. Demand-driven analysis techniques compute data flow fact(s) for a particular program point, rather than computing data flow information for the entire program. The existing work in this area however, assumes that the static call graph is available for the entire program. Constructing exhaustive call graphs can be extremely time and space inefficient for large object oriented programs. Therefore, it is desirable to compute the call graph information on a demand basis as well. We present an algorithm for demand-driven construction of reaching definitions, which also performs call graph analysis on a demand basis.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"119 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132346692","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}
{"title":"Experience with a reverse architecture approach to increase understanding","authors":"A. von Mayrhauser, J. Wang, Q. Li","doi":"10.1109/ICSM.1999.792596","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792596","url":null,"abstract":"Reverse architecting code has been advocated to identify the current software architecture of existing software, to assess its quality, and to determine areas of improvement. At its most basic level, reverse architecting provides a way to determine what the current architecture is. We were interested in identifying the current architecture of an existing system, because it might aid in comprehension, particularly when existing architectural descriptions are outdated. To this end, we applied a known technique to a midsize system, and evaluated the practicality of the technique.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"845 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124151486","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}
{"title":"Software quality maintenance model","authors":"N. Schniedewind","doi":"10.1109/ICSM.1999.792625","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792625","url":null,"abstract":"We develop a quality control and prediction model for improving the quality of software delivered by development to maintenance. This model identifies modules that require priority attention during development and maintenance. The model also predicts during development the quality that will be delivered to maintenance. We show that it is important to perform a marginal analysis when making a decision about how many metrics to include in a discriminant function. If many metrics are added at once, the contribution of individual metrics is obscured. Also, the marginal analysis provides an effective rule for deciding when to stop adding metrics. We also show that certain metrics are dominant in their effects on classifying quality and that additional metrics are not needed to increase the accuracy of classification. Data from the Space Shuttle flight software are used to illustrate the model process.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123847498","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}
{"title":"Maintenance at ABB. II. Change execution processes (the state of practice)","authors":"Mira Kajko-Mattsson","doi":"10.1109/ICSM.1999.792628","DOIUrl":"https://doi.org/10.1109/ICSM.1999.792628","url":null,"abstract":"For pt.I see Internat. Conf. Software Maintenance (1999). In large software organisations, a software maintenance process is seldom monolithic. Instead, it is a complex family of various processes collaborating with each other, where each process executes a clearly defined task. We describe and compare two change execution processes utilised within maintenance by two ABB organisations, namely ABB Automation Products AB and ABB Robotics AB. Thus, the paper is the report of the current state of practice in change execution at ABB. It also compares the collaborating maintenance processes used for the administration of software problems.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122178909","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}