Technological innovation and diffusion within an enterprise are key success factors. The introduction of a new technology aims to improve productivity and quality of production processes, and to better adapt the products to market needs. Therefore, it can be used to improve effectiveness and efficiency of business goals. Unfortunately, innovation is not always well seen and accepted in that it introduces a change of techniques and methods that are ingrained in the production processes. It is often judged as too high of a risk for management that is unable to evaluate the exact costs and consequent benefits. Because of these reasons it is necessary to support technological innovation with theoretical and empirical results and to gradually transfer them within production lines. This allows to better estimate risks, costs and benefits. To face these issues EDS Italia Software uses Industrial Research Projects as a mean for technological innovation. In this way it is able to evaluate the feasibility of an innovation and to carrying out a gradual technological transfer within enterprise process. This paper presents the EDS Software Italia Technological Transfer Process, based on the collaboration with several Italian Universities
{"title":"Technological innovation within EDS Italia Software: experience report","authors":"Arturo D'Aniello, Andrea Masone, Aldo Tammaro","doi":"10.1109/CSMR.2006.54","DOIUrl":"https://doi.org/10.1109/CSMR.2006.54","url":null,"abstract":"Technological innovation and diffusion within an enterprise are key success factors. The introduction of a new technology aims to improve productivity and quality of production processes, and to better adapt the products to market needs. Therefore, it can be used to improve effectiveness and efficiency of business goals. Unfortunately, innovation is not always well seen and accepted in that it introduces a change of techniques and methods that are ingrained in the production processes. It is often judged as too high of a risk for management that is unable to evaluate the exact costs and consequent benefits. Because of these reasons it is necessary to support technological innovation with theoretical and empirical results and to gradually transfer them within production lines. This allows to better estimate risks, costs and benefits. To face these issues EDS Italia Software uses Industrial Research Projects as a mean for technological innovation. In this way it is able to evaluate the feasibility of an innovation and to carrying out a gradual technological transfer within enterprise process. This paper presents the EDS Software Italia Technological Transfer Process, based on the collaboration with several Italian Universities","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125431803","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}
Change is an essential element of the software development cycle, certainly since systems which do not change, perish. Despite the importance of changes, most evolution studies evaluate the impact of changes by comparing two or more snapshots of a system over time instead of reconstructing and evaluating the actual change operations. Therefore we propose a number of techniques which are capable of reconstructing change-operations from the low-level data stored in versioning systems in order to learn more about the current system as well as the change process. More specifically, we show how these techniques can be used to study the use of move-operations
{"title":"Reconstructing higher level change information from versioning data","authors":"F. V. Rysselberghe","doi":"10.1109/CSMR.2006.44","DOIUrl":"https://doi.org/10.1109/CSMR.2006.44","url":null,"abstract":"Change is an essential element of the software development cycle, certainly since systems which do not change, perish. Despite the importance of changes, most evolution studies evaluate the impact of changes by comparing two or more snapshots of a system over time instead of reconstructing and evaluating the actual change operations. Therefore we propose a number of techniques which are capable of reconstructing change-operations from the low-level data stored in versioning systems in order to learn more about the current system as well as the change process. More specifically, we show how these techniques can be used to study the use of move-operations","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134497744","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}
In this paper, we present ADAMS (ADvanced Artefact Management System), a Web-based system that integrates project management and artefact management features, as well as context-awareness and artefact traceability features. In particular, we focus on two features of the tool, namely hierarchical versioning and traceability support
{"title":"ADAMS: advanced artefact management system","authors":"A. D. Lucia, F. Fasano, R. Oliveto, G. Tortora","doi":"10.1109/CSMR.2006.7","DOIUrl":"https://doi.org/10.1109/CSMR.2006.7","url":null,"abstract":"In this paper, we present ADAMS (ADvanced Artefact Management System), a Web-based system that integrates project management and artefact management features, as well as context-awareness and artefact traceability features. In particular, we focus on two features of the tool, namely hierarchical versioning and traceability support","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126105591","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}
Understanding large software systems is simplified when a combination of techniques for static and dynamic analysis is employed. Effective dynamic analysis requires that execution traces be generated by executing scenarios that are representative of the system's typical usage. This paper presents an approach that uses dynamic analysis to extract views of a software system at different levels, namely (1) use cases views, (2) module interaction views, and (3) class interaction views. The proposed views can be used to help maintainers locate features to be changed. The proposed approach is evaluated against a large software system, the Mozilla Web browser
{"title":"Scenario-driven dynamic analysis for comprehending large software systems","authors":"M. Salah, S. Mancoridis, G. Antoniol, M. D. Penta","doi":"10.1109/CSMR.2006.47","DOIUrl":"https://doi.org/10.1109/CSMR.2006.47","url":null,"abstract":"Understanding large software systems is simplified when a combination of techniques for static and dynamic analysis is employed. Effective dynamic analysis requires that execution traces be generated by executing scenarios that are representative of the system's typical usage. This paper presents an approach that uses dynamic analysis to extract views of a software system at different levels, namely (1) use cases views, (2) module interaction views, and (3) class interaction views. The proposed views can be used to help maintainers locate features to be changed. The proposed approach is evaluated against a large software system, the Mozilla Web browser","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134389005","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}
Design patterns are important in software maintenance because they help in designing, in understanding, and in re-engineering programs. The identification of occurrences of a design pattern consists in identifying, in a program, classes which structure and organisation match - strictly or approximately - the structure and organisation of classes as suggested by the design pattern. We express the problem of design pattern identification with operations on finite sets of bit-vectors. We use the inherent parallelism of bit-wise operations to derive an efficient bit-vector algorithm that finds exact and approximate occurrences of design patterns in a program. We apply our algorithm on three small-to-medium size programs, JHotDraw, Juzzle, and QuickUML, with the Abstract Factory and Composite design patterns and compare its performance and results with two existing constraint-based approaches
{"title":"Efficient identification of design patterns with bit-vector algorithm","authors":"Olivier Kaczor, Yann-Gaël Guéhéneuc, Sylvie Hamel","doi":"10.1109/CSMR.2006.25","DOIUrl":"https://doi.org/10.1109/CSMR.2006.25","url":null,"abstract":"Design patterns are important in software maintenance because they help in designing, in understanding, and in re-engineering programs. The identification of occurrences of a design pattern consists in identifying, in a program, classes which structure and organisation match - strictly or approximately - the structure and organisation of classes as suggested by the design pattern. We express the problem of design pattern identification with operations on finite sets of bit-vectors. We use the inherent parallelism of bit-wise operations to derive an efficient bit-vector algorithm that finds exact and approximate occurrences of design patterns in a program. We apply our algorithm on three small-to-medium size programs, JHotDraw, Juzzle, and QuickUML, with the Abstract Factory and Composite design patterns and compare its performance and results with two existing constraint-based approaches","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123974275","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}
Recovering the architecture is the first step towards reengineering a software system. Many reverse engineering tools use top-down exploration as a way of providing a visual and interactive process for architecture recovery. During the exploration process, the user navigates through various views on the system by choosing from several exploration operations. Although some sequences of these operations lead to views which, from the architectural point of view, are mode relevant than others, current tools do not provide a way of predicting which exploration paths are worth taking and which are not. In this article, we propose a set of package patterns which are used for augmenting the exploration process with information about the worthiness of the various exploration paths. The patterns are defined based on the internal package structure and on the relationships between the package and the other packages in the system. To validate our approach, we verify the relevance of the proposed patterns for real-world systems by analyzing their frequency of occurrence in six open-source software projects
{"title":"Package patterns for visual architecture recovery","authors":"M. Lungu, Michele Lanza, Tudor Gîrba","doi":"10.1109/CSMR.2006.39","DOIUrl":"https://doi.org/10.1109/CSMR.2006.39","url":null,"abstract":"Recovering the architecture is the first step towards reengineering a software system. Many reverse engineering tools use top-down exploration as a way of providing a visual and interactive process for architecture recovery. During the exploration process, the user navigates through various views on the system by choosing from several exploration operations. Although some sequences of these operations lead to views which, from the architectural point of view, are mode relevant than others, current tools do not provide a way of predicting which exploration paths are worth taking and which are not. In this article, we propose a set of package patterns which are used for augmenting the exploration process with information about the worthiness of the various exploration paths. The patterns are defined based on the internal package structure and on the relationships between the package and the other packages in the system. To validate our approach, we verify the relevance of the proposed patterns for real-world systems by analyzing their frequency of occurrence in six open-source software projects","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115284159","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}
D. Draheim, J. Grundy, J. Hosking, C. Lutteroth, Gerald Weber
We present a new approach for performing load testing of Web applications by simulating realistic user behaviour with stochastic form-oriented analysis models. Realism in the simulation of user behaviour is necessary in order to achieve valid testing results. In contrast to many other user models, Web site navigation and time delay are modelled stochastically. The models can be constructed from sample data and can take into account effects of session history on user behaviour and the existence of different categories of users. The approach is implemented in an existing architecture modelling and performance evaluation tool and is integrated with existing methods for forward and reverse engineering
{"title":"Realistic load testing of Web applications","authors":"D. Draheim, J. Grundy, J. Hosking, C. Lutteroth, Gerald Weber","doi":"10.1109/CSMR.2006.43","DOIUrl":"https://doi.org/10.1109/CSMR.2006.43","url":null,"abstract":"We present a new approach for performing load testing of Web applications by simulating realistic user behaviour with stochastic form-oriented analysis models. Realism in the simulation of user behaviour is necessary in order to achieve valid testing results. In contrast to many other user models, Web site navigation and time delay are modelled stochastically. The models can be constructed from sample data and can take into account effects of session history on user behaviour and the existence of different categories of users. The approach is implemented in an existing architecture modelling and performance evaluation tool and is integrated with existing methods for forward and reverse engineering","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116059508","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}
Michael Eichberg, Daniel Germanus, M. Mezini, Lukas Mrokon, Thorsten Schäfer
To measure the particularities of modern software development projects that use different types of documents for the implementation of a program, new metrics need to be defined. Further, well established metrics, such as e.g., lack of cohesion or coupling between objects need to be reconsidered in the presence of new language features. Not being able to thoroughly measure a project can lead to false conclusions with respect to the measured source files. Currently, a large number of metrics tools exists, but unfortunately most tools are not extensible, or they are limited with respect to the types of documents that can be taken into account. Further, support for testing newly developed metrics is also missing. In this paper, we present QScope $an open, extensible metrics framework. QScope is open with respect to the supported artifacts and explicitly enables the user to implement new metrics by reasoning over all artifacts using a declarative query language. As we showed in this paper, using a declarative query language enables a concise definition of new metrics
{"title":"QScope: an open, extensible framework for measuring software projects","authors":"Michael Eichberg, Daniel Germanus, M. Mezini, Lukas Mrokon, Thorsten Schäfer","doi":"10.1109/CSMR.2006.42","DOIUrl":"https://doi.org/10.1109/CSMR.2006.42","url":null,"abstract":"To measure the particularities of modern software development projects that use different types of documents for the implementation of a program, new metrics need to be defined. Further, well established metrics, such as e.g., lack of cohesion or coupling between objects need to be reconsidered in the presence of new language features. Not being able to thoroughly measure a project can lead to false conclusions with respect to the measured source files. Currently, a large number of metrics tools exists, but unfortunately most tools are not extensible, or they are limited with respect to the types of documents that can be taken into account. Further, support for testing newly developed metrics is also missing. In this paper, we present QScope $an open, extensible metrics framework. QScope is open with respect to the supported artifacts and explicitly enables the user to implement new metrics by reasoning over all artifacts using a declarative query language. As we showed in this paper, using a declarative query language enables a concise definition of new metrics","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"70 7","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120992567","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}
As size and complexity of software systems increase, preserving the design and specification of their implementation structure gains importance in order to maintain the evolvability of the system. However, due to constant changes, the implementation structure and its documentation tend to dilute over time. To address this problem, we developed IntensiVE: a toolsuite for documenting and checking structural source-code regularities. Building on the underlying models of intensional views and relations, the toolsuite helps a developer in documenting structural source-code regularities, verifying them and offering fine-grained feedback when the source-code does not satisfy those regularities. By illustrating our tools on a Smalltalk application, we show that violations of the source code against the structural regularities can be detected easily and that our toolsuite provides useful feedback for a developer to refine the regularities or to fix the code so that it does satisfy the regularities
{"title":"IntensiVE, a toolsuite for documenting and checking structural source-code regularities","authors":"K. Mens, Andy Kellens","doi":"10.1109/CSMR.2006.29","DOIUrl":"https://doi.org/10.1109/CSMR.2006.29","url":null,"abstract":"As size and complexity of software systems increase, preserving the design and specification of their implementation structure gains importance in order to maintain the evolvability of the system. However, due to constant changes, the implementation structure and its documentation tend to dilute over time. To address this problem, we developed IntensiVE: a toolsuite for documenting and checking structural source-code regularities. Building on the underlying models of intensional views and relations, the toolsuite helps a developer in documenting structural source-code regularities, verifying them and offering fine-grained feedback when the source-code does not satisfy those regularities. By illustrating our tools on a Smalltalk application, we show that violations of the source code against the structural regularities can be detected easily and that our toolsuite provides useful feedback for a developer to refine the regularities or to fix the code so that it does satisfy the regularities","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125120736","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}
Architectural stability refers to the extent software architecture is flexible to endure evolutionary changes while leaving the architecture intact. Approaches to evaluate software architectures for stability can be retrospective or predictive. Retrospective evaluation looks at successive releases of a software system to analyze how smoothly the evolution has taken place. Predictive evaluation examines a set of likely changes and shows the architecture can endure these changes. This paper proposes a metric-based approach to evaluate architectural stability of a software system by combining these two traditional analysis techniques. Such an approach performs on the fact bases extracted from the source code by reverse engineering techniques. We also present experimental results by applying the proposed approach to analyze the architectural stability across different versions of two spreadsheet systems
{"title":"Evaluating architectural stability using a metric-based approach","authors":"Subrina Anjum Tonu, Azin Ashkan, L. Tahvildari","doi":"10.1109/CSMR.2006.26","DOIUrl":"https://doi.org/10.1109/CSMR.2006.26","url":null,"abstract":"Architectural stability refers to the extent software architecture is flexible to endure evolutionary changes while leaving the architecture intact. Approaches to evaluate software architectures for stability can be retrospective or predictive. Retrospective evaluation looks at successive releases of a software system to analyze how smoothly the evolution has taken place. Predictive evaluation examines a set of likely changes and shows the architecture can endure these changes. This paper proposes a metric-based approach to evaluate architectural stability of a software system by combining these two traditional analysis techniques. Such an approach performs on the fact bases extracted from the source code by reverse engineering techniques. We also present experimental results by applying the proposed approach to analyze the architectural stability across different versions of two spreadsheet systems","PeriodicalId":443362,"journal":{"name":"Conference on Software Maintenance and Reengineering (CSMR'06)","volume":"127 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120843986","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}