Pub Date : 2003-09-22DOI: 10.1109/ICSM.2003.1235425
K. Sartipi, K. Kontogiannis
This paper presents a graph matching model for the software architecture recovery problem. Because of their expressiveness, the graphs have been widely used for representing both the software system and its high-level view, known as the conceptual architecture. Modeling the recovery process as graph matching is an attempt to identify a sub-optimal transformation from a pattern graph, representing the high-level view of the system, onto a subgraph of the software system graph. A successful match yields a restructured system that conforms to the given pattern graph. A failed match indicates the points where the system violates specific constraints. The pattern graph generation and the incrementality of the recovery process are the important issues to be addressed. The approach is evaluated through case studies using a prototype toolkit that implements the proposed interactive recovery environment.
{"title":"On modeling software architecture recovery as graph matching","authors":"K. Sartipi, K. Kontogiannis","doi":"10.1109/ICSM.2003.1235425","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235425","url":null,"abstract":"This paper presents a graph matching model for the software architecture recovery problem. Because of their expressiveness, the graphs have been widely used for representing both the software system and its high-level view, known as the conceptual architecture. Modeling the recovery process as graph matching is an attempt to identify a sub-optimal transformation from a pattern graph, representing the high-level view of the system, onto a subgraph of the software system graph. A successful match yields a restructured system that conforms to the given pattern graph. A failed match indicates the points where the system violates specific constraints. The pattern graph generation and the incrementality of the recovery process are the important issues to be addressed. The approach is evaluated through case studies using a prototype toolkit that implements the proposed interactive recovery environment.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"25 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":"128370145","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.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.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.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.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.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.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.1235402
Dirk Ohst, M. Welle, U. Kelter
This paper presents a concept and tools for the detection and visualization of differences between versions of graphical software documents such as ER, class or object diagrams, state charts, etc. We first analyze the problems which occur when comparing graphical documents and displaying their similarities and differences. Our basic approach is to use a unified document which contains the common and specific parts of both base documents with the specific parts being highlighted. The central problem is how to reduce the amount of highlighted elements and enable the developer to have a certain amount of control over the changes be selectively highlighted. With regard to tool construction, we assume that software documents are modeled in a fine-grained way, that they are stored as syntax trees in XML (eXtensible Markup Language) files or a repository system and that a version management system is used. By using the features of the data model and the version model we are able to detect and visualize differences between diagram versions, including structural changes (e.g. shifting of a method from one class to another). We further exploit information about the version history delivered by the underlying version management system by highlighting only differences based on structural or logical changes.
{"title":"Difference tools for analysis and design documents","authors":"Dirk Ohst, M. Welle, U. Kelter","doi":"10.1109/ICSM.2003.1235402","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235402","url":null,"abstract":"This paper presents a concept and tools for the detection and visualization of differences between versions of graphical software documents such as ER, class or object diagrams, state charts, etc. We first analyze the problems which occur when comparing graphical documents and displaying their similarities and differences. Our basic approach is to use a unified document which contains the common and specific parts of both base documents with the specific parts being highlighted. The central problem is how to reduce the amount of highlighted elements and enable the developer to have a certain amount of control over the changes be selectively highlighted. With regard to tool construction, we assume that software documents are modeled in a fine-grained way, that they are stored as syntax trees in XML (eXtensible Markup Language) files or a repository system and that a version management system is used. By using the features of the data model and the version model we are able to detect and visualize differences between diagram versions, including structural changes (e.g. shifting of a method from one class to another). We further exploit information about the version history delivered by the underlying version management system by highlighting only differences based on structural or logical changes.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"23 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":"121419151","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.1235447
M. Mäntylä, Jari Vanhanen, C. Lassenius
This paper presents research in progress, as well as tentative findings related to the empirical study of so called bad code smells. We present a taxonomy that categorizes similar bad smells. We believe that taxonomy makes the smells more understandable and recognizes the relationships between smells. Additionally, we present our initial findings from an empirical study of the use of the smells for evaluating code quality in a small Finnish software product company. Our findings indicate that the taxonomy for the smells could help explain the identified correlations between the subjective evaluations of the existence of the smells.
{"title":"A taxonomy and an initial empirical study of bad smells in code","authors":"M. Mäntylä, Jari Vanhanen, C. Lassenius","doi":"10.1109/ICSM.2003.1235447","DOIUrl":"https://doi.org/10.1109/ICSM.2003.1235447","url":null,"abstract":"This paper presents research in progress, as well as tentative findings related to the empirical study of so called bad code smells. We present a taxonomy that categorizes similar bad smells. We believe that taxonomy makes the smells more understandable and recognizes the relationships between smells. Additionally, we present our initial findings from an empirical study of the use of the smells for evaluating code quality in a small Finnish software product company. Our findings indicate that the taxonomy for the smells could help explain the identified correlations between the subjective evaluations of the existence of the smells.","PeriodicalId":141256,"journal":{"name":"International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.","volume":"1 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":"130727291","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}