Pub Date : 2003-09-22DOI: 10.1109/ICSM.2003.1235446
J. A. Forbes, E. Baker
In this study, we reviewed the deployment practices of selected PEO-STAMIS (Program Executive Office − Standard Management Information System) product managers to better understand the state of the practice within the portfolio of the program executive office. To understand the state of the art in industry and provide a basis of comparison, we examined the practices of government and commercial organizations, with emphasis on identifying best practices that could be utilized by any type of organization, government or commercial, to facilitate the transition to operations and maintenance. The primary results of this study were the development of a "maturity model" of the deployment process and a prioritized set of best practices culled from those in use by government and commercial organizations. This paper discusses the deployment "maturity" model and the best practices.
{"title":"Improving hardware, software, and training deployment processes","authors":"J. A. Forbes, E. Baker","doi":"10.1109/ICSM.2003.1235446","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235446","url":null,"abstract":"In this study, we reviewed the deployment practices of selected PEO-STAMIS (Program Executive Office − Standard Management Information System) product managers to better understand the state of the practice within the portfolio of the program executive office. To understand the state of the art in industry and provide a basis of comparison, we examined the practices of government and commercial organizations, with emphasis on identifying best practices that could be utilized by any type of organization, government or commercial, to facilitate the transition to operations and maintenance. The primary results of this study were the development of a \"maturity model\" of the deployment process and a prioritized set of best practices culled from those in use by government and commercial organizations. This paper discusses the deployment \"maturity\" model and the best practices.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133727217","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235405
D. Binkley, M. Harman
A large-scale study of 43 C programs totaling just over 1 million lines of code is presented. The study includes the forward and backward static slice on every executable statement. In total 2353598 slices were constructed, with an average slice size being just under 30% of the original program. The results also show that ignoring calling-context led to a 50% increase in average slice size and, in contrast to previous results, a 66-77% increase in computation time (due to the increased size). Though not the principal focus of the study, the results also show an average pace for the slicing engine, on a standard PC, of 3 million lines of code per second thereby providing additional evidence for static slicing's practicability.
{"title":"A large-scale empirical study of forward and backward static slice size and context sensitivity","authors":"D. Binkley, M. Harman","doi":"10.1109/ICSM.2003.1235405","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235405","url":null,"abstract":"A large-scale study of 43 C programs totaling just over 1 million lines of code is presented. The study includes the forward and backward static slice on every executable statement. In total 2353598 slices were constructed, with an average slice size being just under 30% of the original program. The results also show that ignoring calling-context led to a 50% increase in average slice size and, in contrast to previous results, a 66-77% increase in computation time (due to the increased size). Though not the principal focus of the study, the results also show an average pace for the slicing engine, on a standard PC, of 3 million lines of code per second thereby providing additional evidence for static slicing's practicability.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114120640","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235412
M. Thwin, T. Quah
The paper presents the application of neural networks in software quality estimation using object-oriented metrics. Quality estimation includes estimating reliability as well as maintainability of software. Reliability is typically measured as the number of defects. Maintenance effort can be measured as the number of lines changed per class. In this paper, two kinds of investigation are performed: predicting the number of defects in a class; and predicting the number of lines change per class. Two neural network models are used: they are Ward neural network; and General Regression neural network (GRNN). Object-oriented design metrics concerning inheritance related measures, complexity measures, cohesion measures, coupling measures and memory allocation measures are used as the independent variables. GRNN network model is found to predict more accurately than Ward network model.
{"title":"Application of neural networks for software quality prediction using object-oriented metrics","authors":"M. Thwin, T. Quah","doi":"10.1109/ICSM.2003.1235412","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235412","url":null,"abstract":"The paper presents the application of neural networks in software quality estimation using object-oriented metrics. Quality estimation includes estimating reliability as well as maintainability of software. Reliability is typically measured as the number of defects. Maintenance effort can be measured as the number of lines changed per class. In this paper, two kinds of investigation are performed: predicting the number of defects in a class; and predicting the number of lines change per class. Two neural network models are used: they are Ward neural network; and General Regression neural network (GRNN). Object-oriented design metrics concerning inheritance related measures, complexity measures, cohesion measures, coupling measures and memory allocation measures are used as the independent variables. GRNN network model is found to predict more accurately than Ward network model.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"99 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121942201","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235454
I. Lovrek, G. Jezic, M. Kusek, I. Ljubi, A. Caric, D. Huljenic, S. Desic, O. Labor
The paper deals with a method developed for software maintenance called remote maintenance shell. It allows software installation, modification and verification on the remote target system without suspending its regular operation. The method is based on remote operations performed by mobile agents. The role of remote maintenance shell in software maintenance is elaborated, as well as its architecture. A case study on version replacement of an object-oriented application is included.
{"title":"Improving software maintenance by using agent-based remote maintenance shell","authors":"I. Lovrek, G. Jezic, M. Kusek, I. Ljubi, A. Caric, D. Huljenic, S. Desic, O. Labor","doi":"10.1109/ICSM.2003.1235454","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235454","url":null,"abstract":"The paper deals with a method developed for software maintenance called remote maintenance shell. It allows software installation, modification and verification on the remote target system without suspending its regular operation. The method is based on remote operations performed by mobile agents. The role of remote maintenance shell in software maintenance is elaborated, as well as its architecture. A case study on version replacement of an object-oriented application is included.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127907666","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235457
I. Baxter
Architectures are intended to be structuring principles for applications. However, with legacy systems they are often based on assumptions which have long since changed, and are now an obstacle. We believe that the fluidity of architecture is a function of the tools available for massively modifying systems. In this paper, we briefly sketch a tool, DMS, for making massive changes, and focus on how its fundamental mechanism, program transformation, is being applied to reengineer the architecture of a very large-scale, distributed avionics software system coded in C++.
{"title":"Massively reengineering architectures with automated tools","authors":"I. Baxter","doi":"10.1109/ICSM.2003.1235457","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235457","url":null,"abstract":"Architectures are intended to be structuring principles for applications. However, with legacy systems they are often based on assumptions which have long since changed, and are now an obstacle. We believe that the fluidity of architecture is a function of the tools available for massively modifying systems. In this paper, we briefly sketch a tool, DMS, for making massive changes, and focus on how its fundamental mechanism, program transformation, is being applied to reengineer the architecture of a very large-scale, distributed avionics software system coded in C++.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"118 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114344284","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235436
Zsolt Balanyi, R. Ferenc
Design patterns are micro architectures that have proved to be reliable, easy-to implement and robust. There is a need in science and industry for recognizing these patterns. We present a new method for discovering design patterns in the source code. This method provides a precise specification of how the patterns work by describing basic structural information like inheritance, composition, aggregation and association, and as an indispensable part, by defining call delegation, object creation and operation overriding. We introduce a new XML-based language, the Design Pattern Markup Language (DPML), which provides an easy way for the users to modify pattern descriptions to suit their needs, or even to define their own patterns or just classes in certain relations they wish to find. We tested our method on four open-source systems, and found it effective in discovering design pattern instances.
{"title":"Mining design patterns from C++ source code","authors":"Zsolt Balanyi, R. Ferenc","doi":"10.1109/ICSM.2003.1235436","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235436","url":null,"abstract":"Design patterns are micro architectures that have proved to be reliable, easy-to implement and robust. There is a need in science and industry for recognizing these patterns. We present a new method for discovering design patterns in the source code. This method provides a precise specification of how the patterns work by describing basic structural information like inheritance, composition, aggregation and association, and as an indispensable part, by defining call delegation, object creation and operation overriding. We introduce a new XML-based language, the Design Pattern Markup Language (DPML), which provides an easy way for the users to modify pattern descriptions to suit their needs, or even to define their own patterns or just classes in certain relations they wish to find. We tested our method on four open-source systems, and found it effective in discovering design pattern instances.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120960763","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235400
A. Kan
Summary form only given. The ING Group is a global financial services institution offering banking, insurance and asset management to 60 million private, corporate and institutional clients world-wide. ING has a market capitalization of 23 billion euros and total assets of over 700 billion euros. Similar to other global financial institutions, ING depends on information technology for delivering its services. Obviously, allocating an IT budget of 2.6 billion euros (2003) requires a sound IT governance. The corporate governance principles of ING assure value creation and protection of stakeholder interests through managing business opportunities and risks. Similarly, IT governance assures the delivery of the expected benefits of IT to help enhance the long term sustainable success of the company. ING's global IT governance structure meshes with the overall corporate governance structure. This helps to align IT strategy with the business goal. The IT Roadmap, as part of the annual planning exercise, is an important instrument to ensure that IT matches the needs of the business. The IT Roadmap outlines the current high level IT issues and the current priorities for IT investments. ING considers IT to be an investment center that drives value creation rather than a typical cost center with a narrow focus on budget controls. The IT and shareholder return project undertaken by IBM in 2001 and taken further by ING and IBM jointly in 2002 sheds a light on how IT helps to increase the shareholder value. One of the key findings of the project is that the best-performing insurers better control their IT maintenance costs and hence create more room for new software development and enhancement. This conclusion matches the belief that striving for better and complete functionality has a favorable effect on software maintenance cost.
{"title":"Managing a multi-billion dollar IT budget","authors":"A. Kan","doi":"10.1109/ICSM.2003.1235400","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235400","url":null,"abstract":"Summary form only given. The ING Group is a global financial services institution offering banking, insurance and asset management to 60 million private, corporate and institutional clients world-wide. ING has a market capitalization of 23 billion euros and total assets of over 700 billion euros. Similar to other global financial institutions, ING depends on information technology for delivering its services. Obviously, allocating an IT budget of 2.6 billion euros (2003) requires a sound IT governance. The corporate governance principles of ING assure value creation and protection of stakeholder interests through managing business opportunities and risks. Similarly, IT governance assures the delivery of the expected benefits of IT to help enhance the long term sustainable success of the company. ING's global IT governance structure meshes with the overall corporate governance structure. This helps to align IT strategy with the business goal. The IT Roadmap, as part of the annual planning exercise, is an important instrument to ensure that IT matches the needs of the business. The IT Roadmap outlines the current high level IT issues and the current priorities for IT investments. ING considers IT to be an investment center that drives value creation rather than a typical cost center with a narrow focus on budget controls. The IT and shareholder return project undertaken by IBM in 2001 and taken further by ING and IBM jointly in 2002 sheds a light on how IT helps to increase the shareholder value. One of the key findings of the project is that the best-performing insurers better control their IT maintenance costs and hence create more room for new software development and enhancement. This conclusion matches the belief that striving for better and complete functionality has a favorable effect on software maintenance cost.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132475189","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235426
G. Antoniol, M. D. Penta
Moving to smaller libraries can be considered as a relevant task when porting software systems to limited-resource devices (e.g., hand-helds). Library miniaturization will be particularly effective if based on both dynamic (keeping into account dependencies exploited during application execution in a given user profile) and static (keeping into account all possible dependencies) information. This paper presents distributed software architecture, based on Web services, to collect dynamic information at run-time, and an approach for miniaturization of libraries, exploiting both dynamic and static information with the aim of reducing the memory requirements of executables. New, smaller libraries are identified via hierarchical clustering and genetic algorithms; clustering produces a first initial solution, then optimized by multi-objective genetic algorithms. The approach has been applied to medium size open source software systems such as Samba and MySQL, allowing to effectively produce smaller, loosely coupled libraries, and to reduce the memory requirements of each application.
{"title":"Library miniaturization using static and dynamic information","authors":"G. Antoniol, M. D. Penta","doi":"10.1109/ICSM.2003.1235426","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235426","url":null,"abstract":"Moving to smaller libraries can be considered as a relevant task when porting software systems to limited-resource devices (e.g., hand-helds). Library miniaturization will be particularly effective if based on both dynamic (keeping into account dependencies exploited during application execution in a given user profile) and static (keeping into account all possible dependencies) information. This paper presents distributed software architecture, based on Web services, to collect dynamic information at run-time, and an approach for miniaturization of libraries, exploiting both dynamic and static information with the aim of reducing the memory requirements of executables. New, smaller libraries are identified via hierarchical clustering and genetic algorithms; clustering produces a first initial solution, then optimized by multi-objective genetic algorithms. The approach has been applied to medium size open source software systems such as Samba and MySQL, allowing to effectively produce smaller, loosely coupled libraries, and to reduce the memory requirements of each application.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125298415","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235414
Miles Barr, S. Eisenbach
The distributed development and maintenance paradigm for component delivery is fraught with problems. One wants a relationship between developers and clients that is autonomous and anonymous. Yet components written in languages such as C++ require the recompilation of all dependent subsystems when a new version of a component is released. The design of Java's binary format has side-stepped this constraint, removing the need for total recompilation with each change. But the potential is not fulfilled if programs have to be stopped to swap in each new component. This paper describes a framework that allows Java programs to be dynamically upgraded. Its key purpose is to allow libraries that are safe to replace existing libraries without adversely affecting running programs. The framework provides developers with a mechanism to release their libraries and provides clients with the surety of only upgrading when it is safe to do so.
{"title":"Safe upgrading without restarting","authors":"Miles Barr, S. Eisenbach","doi":"10.1109/ICSM.2003.1235414","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235414","url":null,"abstract":"The distributed development and maintenance paradigm for component delivery is fraught with problems. One wants a relationship between developers and clients that is autonomous and anonymous. Yet components written in languages such as C++ require the recompilation of all dependent subsystems when a new version of a component is released. The design of Java's binary format has side-stepped this constraint, removing the need for total recompilation with each change. But the potential is not fulfilled if programs have to be stopped to swap in each new component. This paper describes a framework that allows Java programs to be dynamically upgraded. Its key purpose is to allow libraries that are safe to replace existing libraries without adversely affecting running programs. The framework provides developers with a mechanism to release their libraries and provides clients with the surety of only upgrading when it is safe to do so.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121261848","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 : 2003-09-22DOI: 10.1109/ICSM.2003.1235408
N. Madhavji, J. Tassé
Ensuring that software systems evolve in a desired manner has thus far been an elusive goal. In a continuing effort towards this objective, in this paper we propose a new approach that monitors an evolving software system, or its evolution process, against evolutionary policies so that any feedback obtained can be used to improve the system or its process. Two key concepts that make this possible are: (1) a mechanism to detect policy violations; and (2) a contextual framework to support activities of evolving a software system beyond the next release. Together, they could provide a wide and deep scope for managing software evolution. The benefit of our approach is that it would help in: sustaining the quality of a software system as it evolves; reducing evolutionary costs; and improving evolutionary processes.
{"title":"Policy-guided software evolution","authors":"N. Madhavji, J. Tassé","doi":"10.1109/ICSM.2003.1235408","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235408","url":null,"abstract":"Ensuring that software systems evolve in a desired manner has thus far been an elusive goal. In a continuing effort towards this objective, in this paper we propose a new approach that monitors an evolving software system, or its evolution process, against evolutionary policies so that any feedback obtained can be used to improve the system or its process. Two key concepts that make this possible are: (1) a mechanism to detect policy violations; and (2) a contextual framework to support activities of evolving a software system beyond the next release. Together, they could provide a wide and deep scope for managing software evolution. The benefit of our approach is that it would help in: sustaining the quality of a software system as it evolves; reducing evolutionary costs; and improving evolutionary processes.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2003-09-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127209422","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}