Pub Date : 1998-03-16DOI: 10.1109/ICSM.1998.738492
J. Munson
A great deal has been contributed to the body of literature in software engineering recently on the subject of software development processes. Unfortunately, missing from the software engineering literature is the notion of software measurement process. Somehow, measurement is something that you do once on a piece of software. These measurement data are then given to the software quality people who manage to misuse these data, draw the wrong conclusions about the meaning of the data, write reports about the data, and who are ultimately ignored by all concerned with the software development process. At the other end of this measurement data continuum is the university professor who takes these data of unknown value and origin from the software quality staff and proceeds to develop models of software development, software quality, or whatever else pleases his/her fancy.
{"title":"Some comments on the software measurement process","authors":"J. Munson","doi":"10.1109/ICSM.1998.738492","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738492","url":null,"abstract":"A great deal has been contributed to the body of literature in software engineering recently on the subject of software development processes. Unfortunately, missing from the software engineering literature is the notion of software measurement process. Somehow, measurement is something that you do once on a piece of software. These measurement data are then given to the software quality people who manage to misuse these data, draw the wrong conclusions about the meaning of the data, write reports about the data, and who are ultimately ignored by all concerned with the software development process. At the other end of this measurement data continuum is the university professor who takes these data of unknown value and origin from the software quality staff and proceeds to develop models of software development, software quality, or whatever else pleases his/her fancy.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114932875","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738510
M. Lehman, D. Perry, J. Fernández-Ramil
In the context of a hypothesis attributing the slow progress in achieving major global software process improvement, in part, to overlooking the role of feedback in that process, the FEAST/1 project is studying the impact of feedback on software evolution. Amongst its activities the project is analysing metrics of the evolution of several industrial systems, ranging from a financial transaction system to a very large real time system. The similarities which have emerged from a comparison of evolution metrics from several systems, support conclusions reached in a 1970s study of OS/360 evolution. The latest results suggest some refinement of earlier conclusions but indicate that both the metrics and the conclusions derived from them must be taken into account in the planning and implementation of successful software maintenance. Papers discussing the FEAST/1 results may accessed via the FEAST web page [fwp98].
{"title":"Implications of evolution metrics on software maintenance","authors":"M. Lehman, D. Perry, J. Fernández-Ramil","doi":"10.1109/ICSM.1998.738510","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738510","url":null,"abstract":"In the context of a hypothesis attributing the slow progress in achieving major global software process improvement, in part, to overlooking the role of feedback in that process, the FEAST/1 project is studying the impact of feedback on software evolution. Amongst its activities the project is analysing metrics of the evolution of several industrial systems, ranging from a financial transaction system to a very large real time system. The similarities which have emerged from a comparison of evolution metrics from several systems, support conclusions reached in a 1970s study of OS/360 evolution. The latest results suggest some refinement of earlier conclusions but indicate that both the metrics and the conclusions derived from them must be taken into account in the planning and implementation of successful software maintenance. Papers discussing the FEAST/1 results may accessed via the FEAST web page [fwp98].","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124436836","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738527
Donglin Liang, M. J. Harrold
We present an SDG for object oriented software that is more precise than previous representations and is more efficient to construct than previous approaches. The new SDG distinguishes data members for different objects, provides a way to represent object parameters, represents the effects of polymorphism on parameters and parameter bindings, represents incomplete classes efficiently, and provides a way to represent class libraries. Based on this system dependence graph, we introduce the concept of object slicing and an algorithm to implement this concept. Object slicing enables the user to inspect the statements in the slice, object-by-object, and is helpful for debugging and impact analysis.
{"title":"Slicing objects using system dependence graphs","authors":"Donglin Liang, M. J. Harrold","doi":"10.1109/ICSM.1998.738527","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738527","url":null,"abstract":"We present an SDG for object oriented software that is more precise than previous representations and is more efficient to construct than previous approaches. The new SDG distinguishes data members for different objects, provides a way to represent object parameters, represents the effects of polymorphism on parameters and parameter bindings, represents incomplete classes efficiently, and provides a way to represent class libraries. Based on this system dependence graph, we introduce the concept of object slicing and an algorithm to implement this concept. Object slicing enables the user to inspect the statements in the slice, object-by-object, and is helpful for debugging and impact analysis.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124837282","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738485
C. M. D. Oca, D. Carver
The activity of reengineering and maintaining large legacy systems involves the use of design recovery techniques to produce abstractions that facilitate the understanding of the system. We present an approach to design recovery based on data mining. This approach derives from the observation that data mining can discover unsuspected non-trivial relationships among elements in large databases. This observation suggests that data mining can be used to elicit new knowledge about the design of a subject system and that it can be applied to large legacy systems. We describe the ISA methodology which uses data mining to identify data cohesive subsystems. We were able to decompose COBOL systems into subsystems by using this approach. Our experience shows that data mining can identify data cohesive subsystems without any previous knowledge of the subject system. Furthermore, data mining can produce meaningful results regardless of system size making this approach especially appropriate to the analysis of large undocumented systems.
{"title":"Identification of data cohesive subsystems using data mining techniques","authors":"C. M. D. Oca, D. Carver","doi":"10.1109/ICSM.1998.738485","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738485","url":null,"abstract":"The activity of reengineering and maintaining large legacy systems involves the use of design recovery techniques to produce abstractions that facilitate the understanding of the system. We present an approach to design recovery based on data mining. This approach derives from the observation that data mining can discover unsuspected non-trivial relationships among elements in large databases. This observation suggests that data mining can be used to elicit new knowledge about the design of a subject system and that it can be applied to large legacy systems. We describe the ISA methodology which uses data mining to identify data cohesive subsystems. We were able to decompose COBOL systems into subsystems by using this approach. Our experience shows that data mining can identify data cohesive subsystems without any previous knowledge of the subject system. Furthermore, data mining can produce meaningful results regardless of system size making this approach especially appropriate to the analysis of large undocumented systems.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"110 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127983015","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738512
L. Briand
COTS-based development raises a number of issues that are usually not encountered in more classical software development settings. For instance, how to select appropriate COTS? (e.g., middleware for distributed applications, GUI builders). How to integrate COTS selection and evaluation in the requirements engineering and design phases? In this position paper, we address a number of questions regarding COTS evaluation and selection. We first try to better state why this problem is an important one, and why it is likely to become pervasive in the near future. Then, we attempt to clearly identify the difficulties associated with evaluating and selecting COTS. A number of solutions that may alleviate these problems are then discussed. Last, we will list a number of open research questions.
{"title":"COTS evaluation and selection","authors":"L. Briand","doi":"10.1109/ICSM.1998.738512","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738512","url":null,"abstract":"COTS-based development raises a number of issues that are usually not encountered in more classical software development settings. For instance, how to select appropriate COTS? (e.g., middleware for distributed applications, GUI builders). How to integrate COTS selection and evaluation in the requirements engineering and design phases? In this position paper, we address a number of questions regarding COTS evaluation and selection. We first try to better state why this problem is an important one, and why it is likely to become pervasive in the near future. Then, we attempt to clearly identify the difficulties associated with evaluating and selecting COTS. A number of solutions that may alleviate these problems are then discussed. Last, we will list a number of open research questions.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134500586","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738523
A. Andrews, A. M. Vans
This paper reports on a software understanding study during adaptation of large-scale software by software maintenance professionals. The paper explains the general understanding process, the information needs of these software engineers during their tasks, and the tool capabilities that would help them to be more productive. We also contrast programmer behavior during adaptation with that during other maintenance activities like corrective maintenance and enhancement.
{"title":"Program understanding during software adaptation tasks","authors":"A. Andrews, A. M. Vans","doi":"10.1109/ICSM.1998.738523","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738523","url":null,"abstract":"This paper reports on a software understanding study during adaptation of large-scale software by software maintenance professionals. The paper explains the general understanding process, the information needs of these software engineers during their tasks, and the tool capabilities that would help them to be more productive. We also contrast programmer behavior during adaptation with that during other maintenance activities like corrective maintenance and enhancement.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133108130","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738526
S. Sinha, M. J. Harrold
Analysis techniques, such as control flow, data flow, and control dependence, are used for a variety of maintenance tasks, including regression testing, dynamic execution profiling, and static and dynamic slicing. To be applicable to programs in languages, such as Java and C++ however, these analysis techniques should, to the extent possible, account for the effects of exception occurrences and exception handling constructs. The paper presents techniques to construct intraprocedural and interprocedural representations on which existing techniques can be performed and demonstrates their applicability to several maintenance tasks.
{"title":"Analysis of programs with exception-handling constructs","authors":"S. Sinha, M. J. Harrold","doi":"10.1109/ICSM.1998.738526","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738526","url":null,"abstract":"Analysis techniques, such as control flow, data flow, and control dependence, are used for a variety of maintenance tasks, including regression testing, dynamic execution profiling, and static and dynamic slicing. To be applicable to programs in languages, such as Java and C++ however, these analysis techniques should, to the extent possible, account for the effects of exception occurrences and exception handling constructs. The paper presents techniques to construct intraprocedural and interprocedural representations on which existing techniques can be performed and demonstrates their applicability to several maintenance tasks.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122193499","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738520
Hongji Yang, Xiaodong Liu, H. Zedan
It is widely accepted that reverse engineering has three components: restructuring, comprehension and production of formal specification. In this paper, we advocate that the three components could be achieved in a systematic approach by successfully applying a series of sound rules. The key approach to comprehension and the production of formal specification is a notion of abstraction. Abstraction is often interpreted as the act of hiding irrelevant details. What constitute as relevant details is often left open to different interpretations. A unified approach for reverse engineering is described within which the notion of abstraction is classified and precisely defined. Abstraction rules are given and applied to various small examples.
{"title":"Tackling the abstraction problem for reverse engineering in a system re-engineering approach","authors":"Hongji Yang, Xiaodong Liu, H. Zedan","doi":"10.1109/ICSM.1998.738520","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738520","url":null,"abstract":"It is widely accepted that reverse engineering has three components: restructuring, comprehension and production of formal specification. In this paper, we advocate that the three components could be achieved in a systematic approach by successfully applying a series of sound rules. The key approach to comprehension and the production of formal specification is a notion of abstraction. Abstraction is often interpreted as the act of hiding irrelevant details. What constitute as relevant details is often left open to different interpretations. A unified approach for reverse engineering is described within which the notion of abstraction is classified and precisely defined. Abstraction rules are given and applied to various small examples.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123952815","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738491
T. Khoshgoftaar, E. B. Allen
This paper examines factors that make accurate quality modeling of an evolving software system challenging. The context of our discussion is development of a sequence of software releases. Our goal is to predict software quality of a release early enough co make significant quality improvements prior to release.
{"title":"Can a software quality model hit a moving target?","authors":"T. Khoshgoftaar, E. B. Allen","doi":"10.1109/ICSM.1998.738491","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738491","url":null,"abstract":"This paper examines factors that make accurate quality modeling of an evolving software system challenging. The context of our discussion is development of a sequence of software releases. Our goal is to predict software quality of a release early enough co make significant quality improvements prior to release.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133111540","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 : 1998-03-16DOI: 10.1109/ICSM.1998.738519
M. Ramage, K. Bennett
Conventionally, maintainability is seen as an attribute of software; measures which aim to quantify maintainability are all expressed in terms of attributes of the source code or related documentation. Such metrics do not correspond with intuition, and fail in important ways; for example they are not used by industry in assessing lifecycle costs. Maintainability is related to the skills of the maintenance team, the tools available, the maturity of the process and so on. We propose a new model, which takes a systemic view of the maintenance process and organisation as well as the software. The changing relationships between components of the model are identified as key properties for assessing maintainability. We suggest empirical approaches which could use the model to quantify maintainability. We hope the model could be used for assessing the effect of evolution, not only in the software, but in its environment.
{"title":"Maintaining maintainability","authors":"M. Ramage, K. Bennett","doi":"10.1109/ICSM.1998.738519","DOIUrl":"https://doi.org/10.1109/ICSM.1998.738519","url":null,"abstract":"Conventionally, maintainability is seen as an attribute of software; measures which aim to quantify maintainability are all expressed in terms of attributes of the source code or related documentation. Such metrics do not correspond with intuition, and fail in important ways; for example they are not used by industry in assessing lifecycle costs. Maintainability is related to the skills of the maintenance team, the tools available, the maturity of the process and so on. We propose a new model, which takes a systemic view of the maintenance process and organisation as well as the software. The changing relationships between components of the model are identified as key properties for assessing maintainability. We suggest empirical approaches which could use the model to quantify maintainability. We hope the model could be used for assessing the effect of evolution, not only in the software, but in its environment.","PeriodicalId":271895,"journal":{"name":"Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122503795","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}