Pub Date : 1993-09-01DOI: 10.1109/ICSM.1993.366950
E. Merlo, J. Girard, L. Hendren, R. Mori
An extension of simple constant propagation analysis is presented in the context of the ongoing Macroscope project on the reengineering of user interfaces. Multi-valued constant propagation analysis (MVCP) is needed to extract user interface behavioral specifications from source code. Structural and behavioral specifications are used to generate new user interface code that will be integrated into the original system. The flow analysis aspects involved in the MVCP approach are described together with an overall view of the user interface reengineering project. The motivations and advantages of such an analysis method are presented.<>
{"title":"Multi-valued constant propagation for the reengineering of user interfaces","authors":"E. Merlo, J. Girard, L. Hendren, R. Mori","doi":"10.1109/ICSM.1993.366950","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366950","url":null,"abstract":"An extension of simple constant propagation analysis is presented in the context of the ongoing Macroscope project on the reengineering of user interfaces. Multi-valued constant propagation analysis (MVCP) is needed to extract user interface behavioral specifications from source code. Structural and behavioral specifications are used to generate new user interface code that will be integrated into the original system. The flow analysis aspects involved in the MVCP approach are described together with an overall view of the user interface reengineering project. The motivations and advantages of such an analysis method are presented.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123268704","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366951
H. Sneed, E. Nyáry
There is a great demand in industry to migrate from the mainframe to distributed client/server type systems. Three methods of splitting up oversized host application programs with the goal of off-loading them to workstation computers are proposed. The three approaches are by procedural connection, functional decomposition and abstract data typing. Experience in applying each of the methods is described and other measures necessary to downsize a program are explained.<>
{"title":"Downsizing large application programs","authors":"H. Sneed, E. Nyáry","doi":"10.1109/ICSM.1993.366951","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366951","url":null,"abstract":"There is a great demand in industry to migrate from the mainframe to distributed client/server type systems. Three methods of splitting up oversized host application programs with the goal of off-loading them to workstation computers are proposed. The three approaches are by procedural connection, functional decomposition and abstract data typing. Experience in applying each of the methods is described and other measures necessary to downsize a program are explained.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"14 10","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114040883","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366932
C. D. Turner, D. Robson
State-based testing, a technique used for the validation of object-oriented programs with emphasis on the interaction between the features and the object's state, is described. Because of the nature of the technique, the random order in which features can be invoked is taken into account. The technique is complementary to other functional and structural approaches to validation. A suite of tools to support the state-based testing of object-oriented programs is also outlined. The adaptation of traditional validation techniques to the object-oriented programming model is also discussed.<>
{"title":"The state-based testing of object-oriented programs","authors":"C. D. Turner, D. Robson","doi":"10.1109/ICSM.1993.366932","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366932","url":null,"abstract":"State-based testing, a technique used for the validation of object-oriented programs with emphasis on the interaction between the features and the object's state, is described. Because of the nature of the technique, the random order in which features can be invoked is taken into account. The technique is complementary to other functional and structural approaches to validation. A suite of tools to support the state-based testing of object-oriented programs is also outlined. The adaptation of traditional validation techniques to the object-oriented programming model is also discussed.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"111 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114244617","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366931
T. Pigoski, C. Looney
When large software systems make the transition from a developer to a separate maintenance organization, system-specific software maintenance training becomes an issue. However, in most cases the maintenance organization is left with the problem of training its people to perform maintenance on the new system. This paper addresses the training issue, discusses how one maintenance organization attacked the problem, and provides lessons learned.<>
{"title":"Software maintenance training: Transition experiences","authors":"T. Pigoski, C. Looney","doi":"10.1109/ICSM.1993.366931","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366931","url":null,"abstract":"When large software systems make the transition from a developer to a separate maintenance organization, system-specific software maintenance training becomes an issue. However, in most cases the maintenance organization is left with the problem of training its people to perform maintenance on the new system. This paper addresses the training issue, discusses how one maintenance organization attacked the problem, and provides lessons learned.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"1132 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123347380","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366941
R. Ibba, D. Natale, P. Benedusi, R. Naddei
The characterization of the code reuse practices in existing production environments provides fundamental data and lessons for the establishment or improvement of effective reuse-oriented policies, and for the adoption of up-to-date technologies supporting them. The method and results of an experience of metric-aided clustering of software components, aimed at detecting and characterizing implicit reuse of code and reuse potential in a large-scale data processing environment, are presented. Similar function may be in fact replicated many times, customizing an existing source code component, but this phenomenon may be only partially apparent in the form of explicit reuse. A set of software metrics has been used to create clusters of existing components whose internal structures appear very similar. Functional similarity checks involving human experts were then performed. This was done in the context of a large reuse project, where quantitative software quality indicators are also combined with the feedback collected in pilot groups who know the applications from which the candidate components were extracted. The potential and limitations of metric support in this field are considered in the discussion of the results obtained.<>
{"title":"Structure-based clustering of components for software reuse","authors":"R. Ibba, D. Natale, P. Benedusi, R. Naddei","doi":"10.1109/ICSM.1993.366941","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366941","url":null,"abstract":"The characterization of the code reuse practices in existing production environments provides fundamental data and lessons for the establishment or improvement of effective reuse-oriented policies, and for the adoption of up-to-date technologies supporting them. The method and results of an experience of metric-aided clustering of software components, aimed at detecting and characterizing implicit reuse of code and reuse potential in a large-scale data processing environment, are presented. Similar function may be in fact replicated many times, customizing an existing source code component, but this phenomenon may be only partially apparent in the form of explicit reuse. A set of software metrics has been used to create clusters of existing components whose internal structures appear very similar. Functional similarity checks involving human experts were then performed. This was done in the context of a large reuse project, where quantitative software quality indicators are also combined with the feedback collected in pilot groups who know the applications from which the candidate components were extracted. The potential and limitations of metric support in this field are considered in the discussion of the results obtained.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129999236","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366923
F. Lanubile, G. Visaggio
The identification and extraction of two main kinds of components, environment-dependent operations and domain-dependent functionalities, are proposed. A reference information model drives the process by giving expectations of components and their interface data. Two modified definitions of Weiser's slicing are applied to this function recovery problem: direct slice and transform slice. Direct slice is an executable subset of the original program containing all the statements which directly contribute either to the writing on an external sink or to the reading from an external source. Transform slice is also an executable subset including all the instructions which directly or indirectly contribute to transform an external input into an external output.<>
{"title":"Function recovery based on program slicing","authors":"F. Lanubile, G. Visaggio","doi":"10.1109/ICSM.1993.366923","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366923","url":null,"abstract":"The identification and extraction of two main kinds of components, environment-dependent operations and domain-dependent functionalities, are proposed. A reference information model drives the process by giving expectations of components and their interface data. Two modified definitions of Weiser's slicing are applied to this function recovery problem: direct slice and transform slice. Direct slice is an executable subset of the original program containing all the statements which directly contribute either to the writing on an external sink or to the reading from an external source. Transform slice is also an executable subset including all the instructions which directly or indirectly contribute to transform an external input into an external output.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125984613","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366947
S. Abd-El-Hafiz, V. Basili
An overview of a knowledge-based approach which helps in the mechanical documentation and understanding of computer programs is given. This approach performs mechanical annotation of loops by first decomposing them into fragments, called events. It then recognizes the high-level concepts, represented by the events, based on patterns, called plans, stored in a knowledge-base. The design and utilization of the plans are described in detail, and how to generalize their structure is discussed. The generalized tree structure can facilitate plan recognition and reduce the size of the knowledge-base. A case study on a real program of some practical importance, containing a set of 77 loops, has been performed. Results concerning the plans designed for this case study are given.<>
{"title":"Documenting programs using a library of tree structured plans","authors":"S. Abd-El-Hafiz, V. Basili","doi":"10.1109/ICSM.1993.366947","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366947","url":null,"abstract":"An overview of a knowledge-based approach which helps in the mechanical documentation and understanding of computer programs is given. This approach performs mechanical annotation of loops by first decomposing them into fragments, called events. It then recognizes the high-level concepts, represented by the events, based on patterns, called plans, stored in a knowledge-base. The design and utilization of the plans are described in detail, and how to generalize their structure is discussed. The generalized tree structure can facilitate plan recognition and reduce the size of the knowledge-base. A case study on a real program of some practical importance, containing a set of 77 loops, has been performed. Results concerning the plans designed for this case study are given.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126671649","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366944
D. Foley, F. Calliss
The keys to efficient testing are to detect problems as early as possible in the testing phase and to try and detect problems before they reach the customer. Three product offerings of a major software company are examined, and recommendations on how the testing and maintenance processes for these products can be improved are given. The rationale behind these recommendations is based on an analysis of the types of errors being reported in each product, when these errors are found, and in which modules they are found.<>
{"title":"Improving the quality of three products through improved testing: A case study","authors":"D. Foley, F. Calliss","doi":"10.1109/ICSM.1993.366944","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366944","url":null,"abstract":"The keys to efficient testing are to detect problems as early as possible in the testing phase and to try and detect problems before they reach the customer. Three product offerings of a major software company are examined, and recommendations on how the testing and maintenance processes for these products can be improved are given. The rationale behind these recommendations is based on an analysis of the types of errors being reported in each product, when these errors are found, and in which modules they are found.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"60 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133244114","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366942
G. Canfora, A. Cimitile, M. Munro, C. Taylor
The results of a case study in identifying and extracting reusable abstract data types from C programs are presented. Reuse re-engineering processes already established in the RE/sup 2/ project are applied. The method for identifying abstract data types uses an interconnection graph called a variable-reference graph, and coincidental and spurious connections within the graph are resolved using a statistical technique. A prototype tool is described which demonstrates the feasibility of the method. The tool is used to analyze a C program, and a number of abstract data types are identified and used in the maintenance of the original program. The validity of the method is assessed by a simple manual analysis of the source code. The resulting reusable components are then specified using the formal notation Z.<>
{"title":"Extracting abstract data types from C programs: A case study","authors":"G. Canfora, A. Cimitile, M. Munro, C. Taylor","doi":"10.1109/ICSM.1993.366942","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366942","url":null,"abstract":"The results of a case study in identifying and extracting reusable abstract data types from C programs are presented. Reuse re-engineering processes already established in the RE/sup 2/ project are applied. The method for identifying abstract data types uses an interconnection graph called a variable-reference graph, and coincidental and spurious connections within the graph are resolved using a statistical technique. A prototype tool is described which demonstrates the feasibility of the method. The tool is used to analyze a C program, and a number of abstract data types are identified and used in the maintenance of the original program. The validity of the method is assessed by a simple manual analysis of the source code. The resulting reusable components are then specified using the formal notation Z.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127491357","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 : 1993-09-01DOI: 10.1109/ICSM.1993.366953
Alain Abran, Pierre N. Robillard
The use of productivity models for enhancement projects is illustrated, and the reliability of function points-based models is reported. The results of a field study at a major Canadian financial institution indicate that function points-based productivity models are within the range of the recommended criteria for good models in software engineering: a mean relative error of /spl plusmn/25% in 75% of cases.<>
{"title":"Reliability of function points productivity model for enhancement projects (A field study)","authors":"Alain Abran, Pierre N. Robillard","doi":"10.1109/ICSM.1993.366953","DOIUrl":"https://doi.org/10.1109/ICSM.1993.366953","url":null,"abstract":"The use of productivity models for enhancement projects is illustrated, and the reliability of function points-based models is reported. The results of a field study at a major Canadian financial institution indicate that function points-based productivity models are within the range of the recommended criteria for good models in software engineering: a mean relative error of /spl plusmn/25% in 75% of cases.<<ETX>>","PeriodicalId":228379,"journal":{"name":"1993 Conference on Software Maintenance","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116928018","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}