Pub Date : 2000-10-11DOI: 10.1109/ICSM.2000.882961
N. Chapin
This paper reviews five key questions about determining software value. It then groups some major trend issues that are relevant to software value into four clusters. Then, drawing upon existing practices, it notes trends in seven value-preserving and value-enhancing groups of processes. In conclusion, it points to the critical role of management in preserving and enhancing the value of software.
{"title":"Trends in preserving and enhancing the value of software","authors":"N. Chapin","doi":"10.1109/ICSM.2000.882961","DOIUrl":"https://doi.org/10.1109/ICSM.2000.882961","url":null,"abstract":"This paper reviews five key questions about determining software value. It then groups some major trend issues that are relevant to software value into four clusters. Then, drawing upon existing practices, it notes trends in seven value-preserving and value-enhancing groups of processes. In conclusion, it points to the critical role of management in preserving and enhancing the value of software.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124857965","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 : 2000-10-11DOI: 10.1109/ICSM.2000.883017
F. Ricca, P. Tonella
Web sites are becoming important assets for several companies, which need to incorporate sophisticated technologies into complex and large Web based systems. As a consequence, methodologies and tools are required for their design, implementation and maintenance. In particular the possibility for a site to evolve so as to provide updated and accessible information is a fundamental need. Web sites are considered the object of several analyses, focused on their structure and their history, with the purpose of supporting maintenance activities. Structural information may help understanding the organization of the pages in the site, while history analysis provides indications on modifications that do not correspond to the original design or that produce undesirable effects. A tool was developed to implement the analysis of Web site structure and evolution. Its application to some examples downloaded from the Web highlights several areas where the extracted information can improve the control on the maintenance phase and provide valuable support.
{"title":"Web site analysis: structure and evolution","authors":"F. Ricca, P. Tonella","doi":"10.1109/ICSM.2000.883017","DOIUrl":"https://doi.org/10.1109/ICSM.2000.883017","url":null,"abstract":"Web sites are becoming important assets for several companies, which need to incorporate sophisticated technologies into complex and large Web based systems. As a consequence, methodologies and tools are required for their design, implementation and maintenance. In particular the possibility for a site to evolve so as to provide updated and accessible information is a fundamental need. Web sites are considered the object of several analyses, focused on their structure and their history, with the purpose of supporting maintenance activities. Structural information may help understanding the organization of the pages in the site, while history analysis provides indications on modifications that do not correspond to the original design or that produce undesirable effects. A tool was developed to implement the analysis of Web site structure and evolution. Its application to some examples downloaded from the Web highlights several areas where the extracted information can improve the control on the maintenance phase and provide valuable support.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126349542","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 : 2000-10-11DOI: 10.1109/ICSM.2000.882971
Risto Vehvilainen
Approaches software maintenance from the service point of view. I particularly emphasize co-operation with the client. My definition of software maintenance is that software maintenance refers to all the actions that are needed to keep software in such a running order that it achieves all its objectives from the beginning until the end of its usage. The ideas I present are based on several software maintenance development projects that I have been involved in as a consultant. I answer the title question by describing 'preventive software maintenance' in connection with classification factors.
{"title":"What is preventive software maintenance?","authors":"Risto Vehvilainen","doi":"10.1109/ICSM.2000.882971","DOIUrl":"https://doi.org/10.1109/ICSM.2000.882971","url":null,"abstract":"Approaches software maintenance from the service point of view. I particularly emphasize co-operation with the client. My definition of software maintenance is that software maintenance refers to all the actions that are needed to keep software in such a running order that it achieves all its objectives from the beginning until the end of its usage. The ideas I present are based on several software maintenance development projects that I have been involved in as a consultant. I answer the title question by describing 'preventive software maintenance' in connection with classification factors.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":" 39","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133051224","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 : 2000-10-11DOI: 10.1109/ICSM.2000.883058
J. Andersson
Software has for a long time been used for controlling different systems. Today, there is a trend towards integrating more software in consumer electronics, home appliances, cars etc. Suddenly software is moving from traditional environments, such as the desktop computer into new and unknown territory. This will influence many aspects of the software engineering process; above all, several new problems have arisen in the domain of software deployment. How can software be effectively deployed in these environments? Current deployment strategies are not directly applicable. The paper discusses problems with current deployment models and proposes a new, modified model. A deployment model for pervasive computing must support component based development, different delivery models, and installation and activation strategies. Support for dynamic installation and activation (i.e. making modifications without de-activating the software), is especially important. We introduce a prototype implementation, the Java Distributed Run-time Updating Management System (JDRUMS), which we have used as a vehicle for eliciting requirements for our deployment model.
{"title":"A deployment system for pervasive computing","authors":"J. Andersson","doi":"10.1109/ICSM.2000.883058","DOIUrl":"https://doi.org/10.1109/ICSM.2000.883058","url":null,"abstract":"Software has for a long time been used for controlling different systems. Today, there is a trend towards integrating more software in consumer electronics, home appliances, cars etc. Suddenly software is moving from traditional environments, such as the desktop computer into new and unknown territory. This will influence many aspects of the software engineering process; above all, several new problems have arisen in the domain of software deployment. How can software be effectively deployed in these environments? Current deployment strategies are not directly applicable. The paper discusses problems with current deployment models and proposes a new, modified model. A deployment model for pervasive computing must support component based development, different delivery models, and installation and activation strategies. Support for dynamic installation and activation (i.e. making modifications without de-activating the software), is especially important. We introduce a prototype implementation, the Java Distributed Run-time Updating Management System (JDRUMS), which we have used as a vehicle for eliciting requirements for our deployment model.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129682284","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 : 2000-10-11DOI: 10.1109/ICSM.2000.883056
N. Chapin
Compatible with the recently proposed ontology of software maintenance, the paper proposes a fresh view of the types of software maintenance. The paper offers a classification based not on people's intentions, but upon objective evidence of activities based on documentation that may include the source code. The classification includes taking into account evidence of: (1) changes in the character and use of the documentation, (2) changes in the properties of the software and (3) changes in the functionality of the software. The paper provides a hierarchic summary guide to the proposed fresh view of the types of software maintenance.
{"title":"Software maintenance types-a fresh view","authors":"N. Chapin","doi":"10.1109/ICSM.2000.883056","DOIUrl":"https://doi.org/10.1109/ICSM.2000.883056","url":null,"abstract":"Compatible with the recently proposed ontology of software maintenance, the paper proposes a fresh view of the types of software maintenance. The paper offers a classification based not on people's intentions, but upon objective evidence of activities based on documentation that may include the source code. The classification includes taking into account evidence of: (1) changes in the character and use of the documentation, (2) changes in the properties of the software and (3) changes in the functionality of the software. The paper provides a hierarchic summary guide to the proposed fresh view of the types of software maintenance.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129161422","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 : 2000-10-11DOI: 10.1109/ICSM.2000.883028
A. Mockus, L. Votta
Large scale software products must constantly change in order to adapt to a changing environment. Studies of historic data from legacy software systems have identified three specific causes of this change: adding new features; correcting faults; and restructuring code to accommodate future changes. Our hypothesis is that a textual description field of a change is essential to understanding why that change was performed. Also, we expect that difficulty, size, and interval would vary strongly across different types of changes. To test these hypotheses we have designed a program which automatically classifies maintenance activity based on a textual description of changes. Developer surveys showed that the automatic classification was in agreement with developer opinions. Tests of the classifier on a different product found that size and interval for different types of changes did not vary across two products. We have found strong relationships between the type and size of a change and the time required to carry it out. We also discovered a relatively large amount of perfective changes in the system we examined. From this study we have arrived at several suggestions on how to make version control data useful in diagnosing the state of a software project, without significantly increasing the overhead for the developer using the change management system.
{"title":"Identifying reasons for software changes using historic databases","authors":"A. Mockus, L. Votta","doi":"10.1109/ICSM.2000.883028","DOIUrl":"https://doi.org/10.1109/ICSM.2000.883028","url":null,"abstract":"Large scale software products must constantly change in order to adapt to a changing environment. Studies of historic data from legacy software systems have identified three specific causes of this change: adding new features; correcting faults; and restructuring code to accommodate future changes. Our hypothesis is that a textual description field of a change is essential to understanding why that change was performed. Also, we expect that difficulty, size, and interval would vary strongly across different types of changes. To test these hypotheses we have designed a program which automatically classifies maintenance activity based on a textual description of changes. Developer surveys showed that the automatic classification was in agreement with developer opinions. Tests of the classifier on a different product found that size and interval for different types of changes did not vary across two products. We have found strong relationships between the type and size of a change and the time required to carry it out. We also discovered a relatively large amount of perfective changes in the system we examined. From this study we have arrived at several suggestions on how to make version control data useful in diagnosing the state of a software project, without significantly increasing the overhead for the developer using the change management system.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126894884","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 : 2000-10-11DOI: 10.1109/ICSM.2000.883034
H. Sahraoui, R. Godin, Thierry Miceli
During the evolution of object-oriented (OO) systems, the preservation of a correct design should be a permanent quest. However, for systems involving a large number of classes and that are subject to frequent modifications, the detection and correction of design flaws may be a complex and resource-consuming task. The use of automatic detection and correction tools can be helpful for this task. Various works have proposed transformations that improve the quality of an OO system while preserving its behavior. In this paper, we investigate whether some OO metrics can be used as indicators for automatically detecting situations where a particular transformation can be applied to improve the quality of a system. The detection process is based on analyzing the impact of various transformations on these OO metrics using quality estimation models.
{"title":"Can metrics help to bridge the gap between the improvement of OO design quality and its automation?","authors":"H. Sahraoui, R. Godin, Thierry Miceli","doi":"10.1109/ICSM.2000.883034","DOIUrl":"https://doi.org/10.1109/ICSM.2000.883034","url":null,"abstract":"During the evolution of object-oriented (OO) systems, the preservation of a correct design should be a permanent quest. However, for systems involving a large number of classes and that are subject to frequent modifications, the detection and correction of design flaws may be a complex and resource-consuming task. The use of automatic detection and correction tools can be helpful for this task. Various works have proposed transformations that improve the quality of an OO system while preserving its behavior. In this paper, we investigate whether some OO metrics can be used as indicators for automatically detecting situations where a particular transformation can be applied to improve the quality of a system. The detection process is based on analyzing the impact of various transformations on these OO metrics using quality estimation models.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132624660","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 : 2000-10-11DOI: 10.1109/ICSM.2000.883015
James E. Kimble, L. White
All aspects of software engineering strive toward guaranteeing that an implemented algorithm performs the intended tasks. The paper describes results in investigating the relationship between specifications and re-engineered code for data processing programs in COBOL, and develops strategies for assigning significance to identified differences. A modified F(p) notation representation of the program will be manipulated into a standard form, from which features called program points will be used to guide complexity reduction. Finally, backbone elements called threads will be identified to explore the equivalence between the specifications and the program, where each thread will represent a different behavior mode of the program.
{"title":"An alternative source code analysis","authors":"James E. Kimble, L. White","doi":"10.1109/ICSM.2000.883015","DOIUrl":"https://doi.org/10.1109/ICSM.2000.883015","url":null,"abstract":"All aspects of software engineering strive toward guaranteeing that an implemented algorithm performs the intended tasks. The paper describes results in investigating the relationship between specifications and re-engineered code for data processing programs in COBOL, and develops strategies for assigning significance to identified differences. A modified F(p) notation representation of the program will be manipulated into a standard form, from which features called program points will be used to guide complexity reduction. Finally, backbone elements called threads will be identified to explore the equivalence between the specifications and the program, where each thread will represent a different behavior mode of the program.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"103 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114246376","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 : 2000-10-11DOI: 10.1109/ICSM.2000.882985
Kazimiras Lukoit, N. Wilde, S. Stowell, T. Hennessey
Software engineers often need to locate where particular features of a program are implemented in order to fix a bug or introduce an enhancement. This paper describes a tool called TraceGraph to support this task, particularly for large, long-running or interactive software. TraceGraph provides a simple visual display of the program's trace which allows changes in execution to be easily distinguished. A software engineer can run the feature he or she is interested in, and immediately view how program execution varies. Case studies on two large systems show how TraceGraph may be applied to different kinds of traces. Displays similar to TraceGraph would be good candidates for inclusion in software monitoring or debugging systems.
{"title":"TraceGraph: immediate visual location of software features","authors":"Kazimiras Lukoit, N. Wilde, S. Stowell, T. Hennessey","doi":"10.1109/ICSM.2000.882985","DOIUrl":"https://doi.org/10.1109/ICSM.2000.882985","url":null,"abstract":"Software engineers often need to locate where particular features of a program are implemented in order to fix a bug or introduce an enhancement. This paper describes a tool called TraceGraph to support this task, particularly for large, long-running or interactive software. TraceGraph provides a simple visual display of the program's trace which allows changes in execution to be easily distinguished. A software engineer can run the feature he or she is interested in, and immediately view how program execution varies. Case studies on two large systems show how TraceGraph may be applied to different kinds of traces. Displays similar to TraceGraph would be good candidates for inclusion in software monitoring or debugging systems.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129334142","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 : 2000-10-11DOI: 10.1109/ICSM.2000.883030
Michael W. Godfrey, Q. Tu
Most studies of software evolution have been performed on systems developed within a single company using traditional management techniques. With the widespread availability of several large software systems that have been developed using an "open source" development approach, we now have a chance to examine these systems in detail, and see if their evolutionary narratives are significantly different from commercially developed systems. The paper summarizes our preliminary investigations into the evolution of the best known open source system: the Linux operating system kernel. Because Linux is large (over two million lines of code in the most recent version) and because its development model is not as tightly planned and managed as most industrial software processes, we had expected to find that Linux was growing more slowly as it got bigger and more complex. Instead, we have found that Linux has been growing at a super-linear rate for several years. The authors explore the evolution of the Linux kernel both at the system level and within the major subsystems, and they discuss why they think Linux continues to exhibit such strong growth.
{"title":"Evolution in open source software: a case study","authors":"Michael W. Godfrey, Q. Tu","doi":"10.1109/ICSM.2000.883030","DOIUrl":"https://doi.org/10.1109/ICSM.2000.883030","url":null,"abstract":"Most studies of software evolution have been performed on systems developed within a single company using traditional management techniques. With the widespread availability of several large software systems that have been developed using an \"open source\" development approach, we now have a chance to examine these systems in detail, and see if their evolutionary narratives are significantly different from commercially developed systems. The paper summarizes our preliminary investigations into the evolution of the best known open source system: the Linux operating system kernel. Because Linux is large (over two million lines of code in the most recent version) and because its development model is not as tightly planned and managed as most industrial software processes, we had expected to find that Linux was growing more slowly as it got bigger and more complex. Instead, we have found that Linux has been growing at a super-linear rate for several years. The authors explore the evolution of the Linux kernel both at the system level and within the major subsystems, and they discuss why they think Linux continues to exhibit such strong growth.","PeriodicalId":348184,"journal":{"name":"Proceedings 2000 International Conference on Software Maintenance","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-10-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117129552","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}