{"title":"Reverse Engineering Distributed Algorithms","authors":"K. Sere, M. Waldén","doi":"10.1002/(SICI)1096-908X(199603)8:2%3C117::AID-SMR126%3E3.0.CO;2-I","DOIUrl":"https://doi.org/10.1002/(SICI)1096-908X(199603)8:2%3C117::AID-SMR126%3E3.0.CO;2-I","url":null,"abstract":"Recently, formal approaches to reverse engineering have received considerable attention as a means of creating correct high level specifications. We show how a formal approach to reverse engineering can be applied when constructing distributed systems, eg. if we want to reuse an existing algorithm, but in a different environment, or develop a new distributed algorithm that is somehow similar to an existing one. We introduce a formal approach to reverse engineering that is dedicated to distributed systems. Our approach is based on a technique we call coarsement. The idea is that an implementation is stepwise turned into a high level specification through a number of intermediate coarsement steps that abstract away the details while preserving the behaviour of the implementation.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-03-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125564833","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":"Effective Size: An Example of Use from Legacy Systems","authors":"N. Chapin, Tony S. Lau","doi":"10.1002/(SICI)1096-908X(199603)8:2%3C101::AID-SMR125%3E3.0.CO;2-3","DOIUrl":"https://doi.org/10.1002/(SICI)1096-908X(199603)8:2%3C101::AID-SMR125%3E3.0.CO;2-3","url":null,"abstract":"","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"161 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-03-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114526338","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":"Defining and Implementing a Measurement-based Software Maintenance Process","authors":"J. Henry, Robert Blasewitz, David Kettinger","doi":"10.1002/(SICI)1096-908X(199603)8:2%3C79::AID-SMR123%3E3.0.CO;2-K","DOIUrl":"https://doi.org/10.1002/(SICI)1096-908X(199603)8:2%3C79::AID-SMR123%3E3.0.CO;2-K","url":null,"abstract":"This paper describes the measurement-based software maintenance process defined and implemented at Lockheed-Martin, Moorestown, NJ. The documented process includes extensive data collection, a tightly controlled but highly accessible database, data analysis techniques supported by software tools, and process assessment and improvement activities. The methods and techniques used are presented in a ‘how to’ fashion so that other organizations can leverage our efforts to define and implement a measurement-based process of their own. Our approach is an evolutionary one, rather than a revolutionary organizational upheaval. We describe the benefits gained from our process, including statistically validated metric results, and the subsequent process improvements implemented. This paper describes solutions to the ‘real-world’ issues faced by an organization which successfully implemented a measurement-based software maintenance process.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-03-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125935784","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":"Regression Control Charts to Manage Software Maintenance","authors":"Dwight A. Haworth","doi":"10.1002/(SICI)1096-908X(199601)8:1%3C35::AID-SMR124%3E3.0.CO;2-%23","DOIUrl":"https://doi.org/10.1002/(SICI)1096-908X(199601)8:1%3C35::AID-SMR124%3E3.0.CO;2-%23","url":null,"abstract":"","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-01-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122664997","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":"DECODE: A Co-operative Program Understanding Environment","authors":"David N. Chin, A. Quilici","doi":"10.1002/(SICI)1096-908X(199601)8:1%3C3::AID-SMR122%3E3.0.CO;2-I","DOIUrl":"https://doi.org/10.1002/(SICI)1096-908X(199601)8:1%3C3::AID-SMR122%3E3.0.CO;2-I","url":null,"abstract":"","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"100 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1996-01-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114022583","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":"Decision-driven Maintenance","authors":"F. Lanubile, G. Visaggio","doi":"10.1002/smr.4360070204","DOIUrl":"https://doi.org/10.1002/smr.4360070204","url":null,"abstract":"This paper presents our approach to design recording which aims to facilitate the impact analysis of changes in data, functions, or the external environment. A whole software system is represented as a web which integrates the different work products of the software life cycle and their mutual relationships. A traceability relationship associates the objects with each other so that impact analysis can be performed. Internal traceability is provided by semantic links between software objects representing the work products of a development phase, while external traceability is assured by the cognitive links between software objects from different phases. System understanding is supported by the decisions which are involved in the transformation process. The history of these decisions is retained over time so that previous decisions can be examined for maintenance and reuse activities. The approach has been implemented through a Traceability Support System, a maintenance tool which combines the characteristics of program abstractors, project databases and design rationale capture tools. The approach and the tool also both support traceability in heterogeneous systems, which have subsystems implemented on different platforms. Finally, analysis is made of the results of an empirical investigation carried out to assess the approach.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-03-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"118599631","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":"Debugging program failure exhibited by voluminous data","authors":"Tat W. Chan, Arun Lakhotia","doi":"10.1002/(SICI)1096-908X(199803/04)10:2%3C111::AID-SMR167%3E3.0.CO;2-8","DOIUrl":"https://doi.org/10.1002/(SICI)1096-908X(199803/04)10:2%3C111::AID-SMR167%3E3.0.CO;2-8","url":null,"abstract":"In debugging, a programmer often observes the values of program variables--the state--at various points of program execution. A large data may cause a program failure after several iterations, hence generating a large number of intermediate states. Debugging a program when the failure is exhibited by a large data is hard because the clues that may help in locating the fault are obscured by the large amount of information the programmer has to process. From a database of debugging experiences maintained at the Open University in the United Kingdom, we found cases where programmers had to abandon the debugging of such failures, while in other such cases programmers spent weeks and/or months doing debugging. \u0000Clearly, a smaller data which exhibits the same failure should lead to the diagnosis of faults more quickly than its larger counterpart. In this dissertation, we investigate five techniques for deriving a smaller data that reproduces the failure as an original input data. We term such a smaller data a data slice. The process of creating a data slice is called data slicing. The five techniques are: invariance analysis, origin tracking, random elimination, input-output analysis, and program-specific heuristics. The choice of a technique for data slicing may be based on the properties of a program, classified by the relationship between the input and output elements. Once a data slice is obtained, other general purpose debugging techniques can be employed to locate the fault. Data slicing enables the programmer to debug failures exhibited by a large data more efficiently, and, more importantly, to proceed with debugging tasks in cases where it seems impossible otherwise.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-12-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131958149","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":"A framework for software maintenance: A foundation for scientific inquiry","authors":"Dwight A. Haworth, S. Sharpe, D. Hale","doi":"10.1002/smr.4360040204","DOIUrl":"https://doi.org/10.1002/smr.4360040204","url":null,"abstract":"This manuscript develops a framework for software maintenance. The development is based on an approach called ‘grounded theory’, which is an iterative process of theory formation and empirical assessment. The framework's purpose is to unite past theoretical concepts and scientifically observed facts. The result is a four-component model consisting of programmers, source code, maintenance requirement, and organizational influences. The interaction of these four components provides 16 distinct areas of software maintenance inquiry. The manuscript concludes by providing sample uses and implications for the use of the framework.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1992-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"118535456","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":"Design metrics and software maintainability: An experimental investigation","authors":"M. Shepperd, D. Ince","doi":"10.1002/smr.4360030404","DOIUrl":"https://doi.org/10.1002/smr.4360030404","url":null,"abstract":"An empirical study was conducted into the relationship between various design metrics and software maintainability. This was based upon maintenance changes made to four different versions of a project management tool carried out by a total of 60 programmers. The overall conclusion from the investigation, was that accurate prediction of quality characteristics for single maintenance changes is extremely difficult. This is due to the many sources of variation—principally change type and programmer ability. Nevertheless, we show that measures of information flow local to specific modifications are significantly related to error rates, with a 600% greater probability of a residual error as a consequence of a change in a module with a high level of information flow-based coupling, than a module with a low level of coupling. Furthermore, we show that different types of change reveal marked variations in their relationships with the design metrics. Consequently, we argue that using robust statistical techniques and theoretically well-founded design metrics, engineering approximations are possible.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1991-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128330254","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}