WCRE 2013 – Author Index |
Contents -
Abstracts -
Authors
|
A B C F H J K L M N P S T V W Z Ä
Aeschlimann, Erik |
WCRE '13-PRACTICE: "Analyzing PL/1 Legacy Ecosystems: ..."
Analyzing PL/1 Legacy Ecosystems: An Experience Report
Erik Aeschlimann, Mircea Lungu, Oscar Nierstrasz, and Carl Worms (University of Bern, Switzerland; Credit Suisse, Switzerland) This paper presents a case study of analyzing a legacy PL/1 ecosystem that has grown for 40 years to support the busi- ness needs of a large banking company. In order to support the stakeholders in analyzing it we developed St1-PL/1— a tool that parses the code for association data and computes structural metrics which it then visualizes using top-down interactive exploration. Before building the tool and after demonstrating it to stakeholders we conducted several inter- views to learn about legacy ecosystem analysis requirements. We briefly introduce the tool and then present results of analysing the case study. We show that although the vision for the future is to have an ecosystem architecture in which systems are as decoupled as possible the current state of the ecosystem is still removed from this. We also present some of the lessons learned during our experience discussions with stakeholders which include their interests in automatically assessing the quality of the legacy code. @InProceedings{WCRE13p441, author = {Erik Aeschlimann and Mircea Lungu and Oscar Nierstrasz and Carl Worms}, title = {Analyzing PL/1 Legacy Ecosystems: An Experience Report}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {441--448}, doi = {}, year = {2013}, } |
|
Albert, Patrick |
WCRE '13-PRACTICE: "Extracting Business Rules ..."
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino, Jordi Cabot, Patrick Albert, Philippe Bauquel, and Jacques Perronnet (AtlanMod, France; IBM, France) Organizations rely on the logic embedded in their Information Systems for their daily operations. This logic implements the business rules in place in the organization, which must be continuously adapted in response to market changes. Unfortunately, this evolution implies understanding and evolving also the underlying software components enforcing those rules. This is challenging because, first, the code implementing the rules is scattered throughout the whole system and, second, most of the time documentation is poor and out-of-date. This is specially true for older systems that have been maintained and evolved for several years (even decades). In those systems, it is not even clear which business rules are enforced nor whether rules are still consistent with the current organizational policies. In this sense, the goal of this paper is to facilitate the comprehension of legacy systems (in particular COBOL-based ones) by providing a model driven reverse engineering framework able to extract and visualize the business logic embedded in them. @InProceedings{WCRE13p409, author = {Valerio Cosentino and Jordi Cabot and Patrick Albert and Philippe Bauquel and Jacques Perronnet}, title = {Extracting Business Rules from COBOL: A Model-Based Framework}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {409--416}, doi = {}, year = {2013}, } |
|
Aversano, Lerina |
WCRE '13-PRACTICE: "Evaluating Architecture Stability ..."
Evaluating Architecture Stability of Software Projects
Lerina Aversano, Marco Molfetta, and Maria Tortorella (University of Sannio, Italy) Reuse of software components depends from different aspects of high level software artifacts. In particular, software architecture and its stability should be taken into account before selecting software components for reuse. In this direction, this paper presents an empirical study aimed at assessing software architecture stability and its evolution along the software project history. The study entails the gathering and analysis of relevant information from several open source projects. The analysis of the software architectures stability of the core components of the analysed projects and related trends are presented as results. @InProceedings{WCRE13p417, author = {Lerina Aversano and Marco Molfetta and Maria Tortorella}, title = {Evaluating Architecture Stability of Software Projects}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {417--424}, doi = {}, year = {2013}, } |
|
Bauquel, Philippe |
WCRE '13-PRACTICE: "Extracting Business Rules ..."
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino, Jordi Cabot, Patrick Albert, Philippe Bauquel, and Jacques Perronnet (AtlanMod, France; IBM, France) Organizations rely on the logic embedded in their Information Systems for their daily operations. This logic implements the business rules in place in the organization, which must be continuously adapted in response to market changes. Unfortunately, this evolution implies understanding and evolving also the underlying software components enforcing those rules. This is challenging because, first, the code implementing the rules is scattered throughout the whole system and, second, most of the time documentation is poor and out-of-date. This is specially true for older systems that have been maintained and evolved for several years (even decades). In those systems, it is not even clear which business rules are enforced nor whether rules are still consistent with the current organizational policies. In this sense, the goal of this paper is to facilitate the comprehension of legacy systems (in particular COBOL-based ones) by providing a model driven reverse engineering framework able to extract and visualize the business logic embedded in them. @InProceedings{WCRE13p409, author = {Valerio Cosentino and Jordi Cabot and Patrick Albert and Philippe Bauquel and Jacques Perronnet}, title = {Extracting Business Rules from COBOL: A Model-Based Framework}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {409--416}, doi = {}, year = {2013}, } |
|
Borges, Hudson |
WCRE '13-PRACTICE: "Documenting APIs with Examples: ..."
Documenting APIs with Examples: Lessons Learned with the APIMiner Platform
João Eduardo Montandon, Hudson Borges, Daniel Felix, and Marco Tulio Valente (UFMG, Brazil) Software development increasingly relies on Application Programming Interfaces (APIs) to increase productivity. However, learning how to use new APIs in many cases is a non-trivial task given their ever-increasing complexity. To help developers during the API learning process, we describe in this paper a platform---called APIMiner---that instruments the standard Java-based API documentation format with concrete examples of usage. The examples are extracted from a private source code repository---composed by real systems---and summarized using a static slicing algorithm. We also describe a particular instantiation of our platform for the Android API. To evaluate the proposed solution, we performed a field study, when professional Android developers used the platform by four months. @InProceedings{WCRE13p401, author = {João Eduardo Montandon and Hudson Borges and Daniel Felix and Marco Tulio Valente}, title = {Documenting APIs with Examples: Lessons Learned with the APIMiner Platform}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {401--408}, doi = {}, year = {2013}, } Info |
|
Broek, Niels van Den |
WCRE '13-PRACTICE: "Assessing the Complexity of ..."
Assessing the Complexity of Upgrading Software Modules
Bram Schoenmakers, Niels van Den Broek, Istvan Nagy, Bogdan Vasilescu, and Alexander Serebrenik (ASML, Netherlands; Eindhoven University of Technology, Netherlands) Modern software development frequently involves developing multiple codelines simultaneously. Improvements to one codeline should often be applied to other codelines as well, which is typically a time consuming and error-prone process. In order to reduce this (manual) effort, changes are applied to the system's modules and those affected modules are upgraded on the target system. This is a more coarse-grained approach than upgrading the affected files only. However, when a module is upgraded, one must make sure that all its dependencies are still satisfied. This paper proposes an approach to assess the ease of upgrading a software system. An algorithm was developed to compute the smallest set of upgrade dependencies, given the current version of a module and the version it has to be upgraded to. Furthermore, a visualization has been designed to explain why upgrading one module requires upgrading many additional modules. A case study has been performed at ASML to study the ease of upgrading the TwinScan software. The analysis shows that removing elements from interfaces leads to many additional upgrade dependencies. Moreover, based on our analysis we have formulated a number improvement suggestions such as a clear separation between the test code and the production code as well as an introduction of a structured process of symbols deprecation and removal. @InProceedings{WCRE13p433, author = {Bram Schoenmakers and Niels van Den Broek and Istvan Nagy and Bogdan Vasilescu and Alexander Serebrenik}, title = {Assessing the Complexity of Upgrading Software Modules}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {433--440}, doi = {}, year = {2013}, } |
|
Cabot, Jordi |
WCRE '13-PRACTICE: "Extracting Business Rules ..."
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino, Jordi Cabot, Patrick Albert, Philippe Bauquel, and Jacques Perronnet (AtlanMod, France; IBM, France) Organizations rely on the logic embedded in their Information Systems for their daily operations. This logic implements the business rules in place in the organization, which must be continuously adapted in response to market changes. Unfortunately, this evolution implies understanding and evolving also the underlying software components enforcing those rules. This is challenging because, first, the code implementing the rules is scattered throughout the whole system and, second, most of the time documentation is poor and out-of-date. This is specially true for older systems that have been maintained and evolved for several years (even decades). In those systems, it is not even clear which business rules are enforced nor whether rules are still consistent with the current organizational policies. In this sense, the goal of this paper is to facilitate the comprehension of legacy systems (in particular COBOL-based ones) by providing a model driven reverse engineering framework able to extract and visualize the business logic embedded in them. @InProceedings{WCRE13p409, author = {Valerio Cosentino and Jordi Cabot and Patrick Albert and Philippe Bauquel and Jacques Perronnet}, title = {Extracting Business Rules from COBOL: A Model-Based Framework}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {409--416}, doi = {}, year = {2013}, } |
|
Cosentino, Valerio |
WCRE '13-PRACTICE: "Extracting Business Rules ..."
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino, Jordi Cabot, Patrick Albert, Philippe Bauquel, and Jacques Perronnet (AtlanMod, France; IBM, France) Organizations rely on the logic embedded in their Information Systems for their daily operations. This logic implements the business rules in place in the organization, which must be continuously adapted in response to market changes. Unfortunately, this evolution implies understanding and evolving also the underlying software components enforcing those rules. This is challenging because, first, the code implementing the rules is scattered throughout the whole system and, second, most of the time documentation is poor and out-of-date. This is specially true for older systems that have been maintained and evolved for several years (even decades). In those systems, it is not even clear which business rules are enforced nor whether rules are still consistent with the current organizational policies. In this sense, the goal of this paper is to facilitate the comprehension of legacy systems (in particular COBOL-based ones) by providing a model driven reverse engineering framework able to extract and visualize the business logic embedded in them. @InProceedings{WCRE13p409, author = {Valerio Cosentino and Jordi Cabot and Patrick Albert and Philippe Bauquel and Jacques Perronnet}, title = {Extracting Business Rules from COBOL: A Model-Based Framework}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {409--416}, doi = {}, year = {2013}, } |
|
Felix, Daniel |
WCRE '13-PRACTICE: "Documenting APIs with Examples: ..."
Documenting APIs with Examples: Lessons Learned with the APIMiner Platform
João Eduardo Montandon, Hudson Borges, Daniel Felix, and Marco Tulio Valente (UFMG, Brazil) Software development increasingly relies on Application Programming Interfaces (APIs) to increase productivity. However, learning how to use new APIs in many cases is a non-trivial task given their ever-increasing complexity. To help developers during the API learning process, we describe in this paper a platform---called APIMiner---that instruments the standard Java-based API documentation format with concrete examples of usage. The examples are extracted from a private source code repository---composed by real systems---and summarized using a static slicing algorithm. We also describe a particular instantiation of our platform for the Android API. To evaluate the proposed solution, we performed a field study, when professional Android developers used the platform by four months. @InProceedings{WCRE13p401, author = {João Eduardo Montandon and Hudson Borges and Daniel Felix and Marco Tulio Valente}, title = {Documenting APIs with Examples: Lessons Learned with the APIMiner Platform}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {401--408}, doi = {}, year = {2013}, } Info |
|
Haas, Geer P. |
WCRE '13-PRACTICE: "Migrating a Large Scale Legacy ..."
Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned
Ravi Khadka, Amir Saeidi, Slinger Jansen, Jurriaan Hage , and Geer P. Haas (Utrecht University, Netherlands; IBM, Netherlands) This paper presents the findings of a case study of a large scale legacy to service-oriented architecture migration process in the payments domain of a Dutch bank. The paper presents the business drivers that initiated the migration, and describes a 4-phase migration process. For each phase, the paper details benefits of using the techniques, best practices that contribute to the success, and possible challenges that are faced during migration. Based on these observations, the findings are discussed as lessons learned, including the implications of using reverse engineering techniques to facilitate the migration process, adopting a pragmatic migration realization approach, emphasizing the organizational and business perspectives, and harvesting knowledge of the system throughout the system's life cycle. @InProceedings{WCRE13p425, author = {Ravi Khadka and Amir Saeidi and Slinger Jansen and Jurriaan Hage and Geer P. Haas}, title = {Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {425--432}, doi = {}, year = {2013}, } Info |
|
Hage, Jurriaan |
WCRE '13-PRACTICE: "Migrating a Large Scale Legacy ..."
Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned
Ravi Khadka, Amir Saeidi, Slinger Jansen, Jurriaan Hage , and Geer P. Haas (Utrecht University, Netherlands; IBM, Netherlands) This paper presents the findings of a case study of a large scale legacy to service-oriented architecture migration process in the payments domain of a Dutch bank. The paper presents the business drivers that initiated the migration, and describes a 4-phase migration process. For each phase, the paper details benefits of using the techniques, best practices that contribute to the success, and possible challenges that are faced during migration. Based on these observations, the findings are discussed as lessons learned, including the implications of using reverse engineering techniques to facilitate the migration process, adopting a pragmatic migration realization approach, emphasizing the organizational and business perspectives, and harvesting knowledge of the system throughout the system's life cycle. @InProceedings{WCRE13p425, author = {Ravi Khadka and Amir Saeidi and Slinger Jansen and Jurriaan Hage and Geer P. Haas}, title = {Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {425--432}, doi = {}, year = {2013}, } Info |
|
Jansen, Slinger |
WCRE '13-PRACTICE: "Migrating a Large Scale Legacy ..."
Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned
Ravi Khadka, Amir Saeidi, Slinger Jansen, Jurriaan Hage , and Geer P. Haas (Utrecht University, Netherlands; IBM, Netherlands) This paper presents the findings of a case study of a large scale legacy to service-oriented architecture migration process in the payments domain of a Dutch bank. The paper presents the business drivers that initiated the migration, and describes a 4-phase migration process. For each phase, the paper details benefits of using the techniques, best practices that contribute to the success, and possible challenges that are faced during migration. Based on these observations, the findings are discussed as lessons learned, including the implications of using reverse engineering techniques to facilitate the migration process, adopting a pragmatic migration realization approach, emphasizing the organizational and business perspectives, and harvesting knowledge of the system throughout the system's life cycle. @InProceedings{WCRE13p425, author = {Ravi Khadka and Amir Saeidi and Slinger Jansen and Jurriaan Hage and Geer P. Haas}, title = {Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {425--432}, doi = {}, year = {2013}, } Info |
|
Khadka, Ravi |
WCRE '13-PRACTICE: "Migrating a Large Scale Legacy ..."
Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned
Ravi Khadka, Amir Saeidi, Slinger Jansen, Jurriaan Hage , and Geer P. Haas (Utrecht University, Netherlands; IBM, Netherlands) This paper presents the findings of a case study of a large scale legacy to service-oriented architecture migration process in the payments domain of a Dutch bank. The paper presents the business drivers that initiated the migration, and describes a 4-phase migration process. For each phase, the paper details benefits of using the techniques, best practices that contribute to the success, and possible challenges that are faced during migration. Based on these observations, the findings are discussed as lessons learned, including the implications of using reverse engineering techniques to facilitate the migration process, adopting a pragmatic migration realization approach, emphasizing the organizational and business perspectives, and harvesting knowledge of the system throughout the system's life cycle. @InProceedings{WCRE13p425, author = {Ravi Khadka and Amir Saeidi and Slinger Jansen and Jurriaan Hage and Geer P. Haas}, title = {Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {425--432}, doi = {}, year = {2013}, } Info |
|
Křoustek, Jakub |
WCRE '13-PRACTICE: "Psyb0t Malware: A Step-by-Step ..."
Psyb0t Malware: A Step-by-Step Decompilation Case Study
Lukáš Ďurfina, Jakub Křoustek, and Petr Zemek (Brno University of Technology, Czech Republic) Decompilation (i.e. reverse compilation) represents one of the most toughest and challenging tasks in reverse engineering. Even more difficult task is the decompilation of malware because it typically does not follow standard application binary interface conventions, has stripped symbols, is obfuscated, and can contain polymorphic code. Moreover, in the recent years, there is a rapid expansion of various smart devices, running different types of operating systems on many types of processors, and malware targeting these platforms. These facts, combined with the boundedness of standard decompilation tools to a particular platform, imply that a considerable amount of effort is needed when decompiling malware for such a diversity of platforms. This is an experience paper reporting the decompilation of a real-world malware. We give a step-by-step case study of decompiling a MIPS worm called psyb0t by using a retargetable decompiler that is being developed within the Lissom project. First, we describe the decompiler in detail. Then, we present the case study. After that, we analyse the results obtained during the decompilation and present our personal experience. The paper is concluded by discussing future research possibilities. @InProceedings{WCRE13p449, author = {Lukáš Ďurfina and Jakub Křoustek and Petr Zemek}, title = {Psyb0t Malware: A Step-by-Step Decompilation Case Study}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {449--456}, doi = {}, year = {2013}, } Info |
|
Lungu, Mircea |
WCRE '13-PRACTICE: "Analyzing PL/1 Legacy Ecosystems: ..."
Analyzing PL/1 Legacy Ecosystems: An Experience Report
Erik Aeschlimann, Mircea Lungu, Oscar Nierstrasz, and Carl Worms (University of Bern, Switzerland; Credit Suisse, Switzerland) This paper presents a case study of analyzing a legacy PL/1 ecosystem that has grown for 40 years to support the busi- ness needs of a large banking company. In order to support the stakeholders in analyzing it we developed St1-PL/1— a tool that parses the code for association data and computes structural metrics which it then visualizes using top-down interactive exploration. Before building the tool and after demonstrating it to stakeholders we conducted several inter- views to learn about legacy ecosystem analysis requirements. We briefly introduce the tool and then present results of analysing the case study. We show that although the vision for the future is to have an ecosystem architecture in which systems are as decoupled as possible the current state of the ecosystem is still removed from this. We also present some of the lessons learned during our experience discussions with stakeholders which include their interests in automatically assessing the quality of the legacy code. @InProceedings{WCRE13p441, author = {Erik Aeschlimann and Mircea Lungu and Oscar Nierstrasz and Carl Worms}, title = {Analyzing PL/1 Legacy Ecosystems: An Experience Report}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {441--448}, doi = {}, year = {2013}, } |
|
Molfetta, Marco |
WCRE '13-PRACTICE: "Evaluating Architecture Stability ..."
Evaluating Architecture Stability of Software Projects
Lerina Aversano, Marco Molfetta, and Maria Tortorella (University of Sannio, Italy) Reuse of software components depends from different aspects of high level software artifacts. In particular, software architecture and its stability should be taken into account before selecting software components for reuse. In this direction, this paper presents an empirical study aimed at assessing software architecture stability and its evolution along the software project history. The study entails the gathering and analysis of relevant information from several open source projects. The analysis of the software architectures stability of the core components of the analysed projects and related trends are presented as results. @InProceedings{WCRE13p417, author = {Lerina Aversano and Marco Molfetta and Maria Tortorella}, title = {Evaluating Architecture Stability of Software Projects}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {417--424}, doi = {}, year = {2013}, } |
|
Montandon, João Eduardo |
WCRE '13-PRACTICE: "Documenting APIs with Examples: ..."
Documenting APIs with Examples: Lessons Learned with the APIMiner Platform
João Eduardo Montandon, Hudson Borges, Daniel Felix, and Marco Tulio Valente (UFMG, Brazil) Software development increasingly relies on Application Programming Interfaces (APIs) to increase productivity. However, learning how to use new APIs in many cases is a non-trivial task given their ever-increasing complexity. To help developers during the API learning process, we describe in this paper a platform---called APIMiner---that instruments the standard Java-based API documentation format with concrete examples of usage. The examples are extracted from a private source code repository---composed by real systems---and summarized using a static slicing algorithm. We also describe a particular instantiation of our platform for the Android API. To evaluate the proposed solution, we performed a field study, when professional Android developers used the platform by four months. @InProceedings{WCRE13p401, author = {João Eduardo Montandon and Hudson Borges and Daniel Felix and Marco Tulio Valente}, title = {Documenting APIs with Examples: Lessons Learned with the APIMiner Platform}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {401--408}, doi = {}, year = {2013}, } Info |
|
Nagy, Istvan |
WCRE '13-PRACTICE: "Assessing the Complexity of ..."
Assessing the Complexity of Upgrading Software Modules
Bram Schoenmakers, Niels van Den Broek, Istvan Nagy, Bogdan Vasilescu, and Alexander Serebrenik (ASML, Netherlands; Eindhoven University of Technology, Netherlands) Modern software development frequently involves developing multiple codelines simultaneously. Improvements to one codeline should often be applied to other codelines as well, which is typically a time consuming and error-prone process. In order to reduce this (manual) effort, changes are applied to the system's modules and those affected modules are upgraded on the target system. This is a more coarse-grained approach than upgrading the affected files only. However, when a module is upgraded, one must make sure that all its dependencies are still satisfied. This paper proposes an approach to assess the ease of upgrading a software system. An algorithm was developed to compute the smallest set of upgrade dependencies, given the current version of a module and the version it has to be upgraded to. Furthermore, a visualization has been designed to explain why upgrading one module requires upgrading many additional modules. A case study has been performed at ASML to study the ease of upgrading the TwinScan software. The analysis shows that removing elements from interfaces leads to many additional upgrade dependencies. Moreover, based on our analysis we have formulated a number improvement suggestions such as a clear separation between the test code and the production code as well as an introduction of a structured process of symbols deprecation and removal. @InProceedings{WCRE13p433, author = {Bram Schoenmakers and Niels van Den Broek and Istvan Nagy and Bogdan Vasilescu and Alexander Serebrenik}, title = {Assessing the Complexity of Upgrading Software Modules}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {433--440}, doi = {}, year = {2013}, } |
|
Nierstrasz, Oscar |
WCRE '13-PRACTICE: "Analyzing PL/1 Legacy Ecosystems: ..."
Analyzing PL/1 Legacy Ecosystems: An Experience Report
Erik Aeschlimann, Mircea Lungu, Oscar Nierstrasz, and Carl Worms (University of Bern, Switzerland; Credit Suisse, Switzerland) This paper presents a case study of analyzing a legacy PL/1 ecosystem that has grown for 40 years to support the busi- ness needs of a large banking company. In order to support the stakeholders in analyzing it we developed St1-PL/1— a tool that parses the code for association data and computes structural metrics which it then visualizes using top-down interactive exploration. Before building the tool and after demonstrating it to stakeholders we conducted several inter- views to learn about legacy ecosystem analysis requirements. We briefly introduce the tool and then present results of analysing the case study. We show that although the vision for the future is to have an ecosystem architecture in which systems are as decoupled as possible the current state of the ecosystem is still removed from this. We also present some of the lessons learned during our experience discussions with stakeholders which include their interests in automatically assessing the quality of the legacy code. @InProceedings{WCRE13p441, author = {Erik Aeschlimann and Mircea Lungu and Oscar Nierstrasz and Carl Worms}, title = {Analyzing PL/1 Legacy Ecosystems: An Experience Report}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {441--448}, doi = {}, year = {2013}, } |
|
Perronnet, Jacques |
WCRE '13-PRACTICE: "Extracting Business Rules ..."
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino, Jordi Cabot, Patrick Albert, Philippe Bauquel, and Jacques Perronnet (AtlanMod, France; IBM, France) Organizations rely on the logic embedded in their Information Systems for their daily operations. This logic implements the business rules in place in the organization, which must be continuously adapted in response to market changes. Unfortunately, this evolution implies understanding and evolving also the underlying software components enforcing those rules. This is challenging because, first, the code implementing the rules is scattered throughout the whole system and, second, most of the time documentation is poor and out-of-date. This is specially true for older systems that have been maintained and evolved for several years (even decades). In those systems, it is not even clear which business rules are enforced nor whether rules are still consistent with the current organizational policies. In this sense, the goal of this paper is to facilitate the comprehension of legacy systems (in particular COBOL-based ones) by providing a model driven reverse engineering framework able to extract and visualize the business logic embedded in them. @InProceedings{WCRE13p409, author = {Valerio Cosentino and Jordi Cabot and Patrick Albert and Philippe Bauquel and Jacques Perronnet}, title = {Extracting Business Rules from COBOL: A Model-Based Framework}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {409--416}, doi = {}, year = {2013}, } |
|
Saeidi, Amir |
WCRE '13-PRACTICE: "Migrating a Large Scale Legacy ..."
Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned
Ravi Khadka, Amir Saeidi, Slinger Jansen, Jurriaan Hage , and Geer P. Haas (Utrecht University, Netherlands; IBM, Netherlands) This paper presents the findings of a case study of a large scale legacy to service-oriented architecture migration process in the payments domain of a Dutch bank. The paper presents the business drivers that initiated the migration, and describes a 4-phase migration process. For each phase, the paper details benefits of using the techniques, best practices that contribute to the success, and possible challenges that are faced during migration. Based on these observations, the findings are discussed as lessons learned, including the implications of using reverse engineering techniques to facilitate the migration process, adopting a pragmatic migration realization approach, emphasizing the organizational and business perspectives, and harvesting knowledge of the system throughout the system's life cycle. @InProceedings{WCRE13p425, author = {Ravi Khadka and Amir Saeidi and Slinger Jansen and Jurriaan Hage and Geer P. Haas}, title = {Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {425--432}, doi = {}, year = {2013}, } Info |
|
Schoenmakers, Bram |
WCRE '13-PRACTICE: "Assessing the Complexity of ..."
Assessing the Complexity of Upgrading Software Modules
Bram Schoenmakers, Niels van Den Broek, Istvan Nagy, Bogdan Vasilescu, and Alexander Serebrenik (ASML, Netherlands; Eindhoven University of Technology, Netherlands) Modern software development frequently involves developing multiple codelines simultaneously. Improvements to one codeline should often be applied to other codelines as well, which is typically a time consuming and error-prone process. In order to reduce this (manual) effort, changes are applied to the system's modules and those affected modules are upgraded on the target system. This is a more coarse-grained approach than upgrading the affected files only. However, when a module is upgraded, one must make sure that all its dependencies are still satisfied. This paper proposes an approach to assess the ease of upgrading a software system. An algorithm was developed to compute the smallest set of upgrade dependencies, given the current version of a module and the version it has to be upgraded to. Furthermore, a visualization has been designed to explain why upgrading one module requires upgrading many additional modules. A case study has been performed at ASML to study the ease of upgrading the TwinScan software. The analysis shows that removing elements from interfaces leads to many additional upgrade dependencies. Moreover, based on our analysis we have formulated a number improvement suggestions such as a clear separation between the test code and the production code as well as an introduction of a structured process of symbols deprecation and removal. @InProceedings{WCRE13p433, author = {Bram Schoenmakers and Niels van Den Broek and Istvan Nagy and Bogdan Vasilescu and Alexander Serebrenik}, title = {Assessing the Complexity of Upgrading Software Modules}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {433--440}, doi = {}, year = {2013}, } |
|
Serebrenik, Alexander |
WCRE '13-PRACTICE: "Assessing the Complexity of ..."
Assessing the Complexity of Upgrading Software Modules
Bram Schoenmakers, Niels van Den Broek, Istvan Nagy, Bogdan Vasilescu, and Alexander Serebrenik (ASML, Netherlands; Eindhoven University of Technology, Netherlands) Modern software development frequently involves developing multiple codelines simultaneously. Improvements to one codeline should often be applied to other codelines as well, which is typically a time consuming and error-prone process. In order to reduce this (manual) effort, changes are applied to the system's modules and those affected modules are upgraded on the target system. This is a more coarse-grained approach than upgrading the affected files only. However, when a module is upgraded, one must make sure that all its dependencies are still satisfied. This paper proposes an approach to assess the ease of upgrading a software system. An algorithm was developed to compute the smallest set of upgrade dependencies, given the current version of a module and the version it has to be upgraded to. Furthermore, a visualization has been designed to explain why upgrading one module requires upgrading many additional modules. A case study has been performed at ASML to study the ease of upgrading the TwinScan software. The analysis shows that removing elements from interfaces leads to many additional upgrade dependencies. Moreover, based on our analysis we have formulated a number improvement suggestions such as a clear separation between the test code and the production code as well as an introduction of a structured process of symbols deprecation and removal. @InProceedings{WCRE13p433, author = {Bram Schoenmakers and Niels van Den Broek and Istvan Nagy and Bogdan Vasilescu and Alexander Serebrenik}, title = {Assessing the Complexity of Upgrading Software Modules}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {433--440}, doi = {}, year = {2013}, } |
|
Tortorella, Maria |
WCRE '13-PRACTICE: "Evaluating Architecture Stability ..."
Evaluating Architecture Stability of Software Projects
Lerina Aversano, Marco Molfetta, and Maria Tortorella (University of Sannio, Italy) Reuse of software components depends from different aspects of high level software artifacts. In particular, software architecture and its stability should be taken into account before selecting software components for reuse. In this direction, this paper presents an empirical study aimed at assessing software architecture stability and its evolution along the software project history. The study entails the gathering and analysis of relevant information from several open source projects. The analysis of the software architectures stability of the core components of the analysed projects and related trends are presented as results. @InProceedings{WCRE13p417, author = {Lerina Aversano and Marco Molfetta and Maria Tortorella}, title = {Evaluating Architecture Stability of Software Projects}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {417--424}, doi = {}, year = {2013}, } |
|
Valente, Marco Tulio |
WCRE '13-PRACTICE: "Documenting APIs with Examples: ..."
Documenting APIs with Examples: Lessons Learned with the APIMiner Platform
João Eduardo Montandon, Hudson Borges, Daniel Felix, and Marco Tulio Valente (UFMG, Brazil) Software development increasingly relies on Application Programming Interfaces (APIs) to increase productivity. However, learning how to use new APIs in many cases is a non-trivial task given their ever-increasing complexity. To help developers during the API learning process, we describe in this paper a platform---called APIMiner---that instruments the standard Java-based API documentation format with concrete examples of usage. The examples are extracted from a private source code repository---composed by real systems---and summarized using a static slicing algorithm. We also describe a particular instantiation of our platform for the Android API. To evaluate the proposed solution, we performed a field study, when professional Android developers used the platform by four months. @InProceedings{WCRE13p401, author = {João Eduardo Montandon and Hudson Borges and Daniel Felix and Marco Tulio Valente}, title = {Documenting APIs with Examples: Lessons Learned with the APIMiner Platform}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {401--408}, doi = {}, year = {2013}, } Info |
|
Vasilescu, Bogdan |
WCRE '13-PRACTICE: "Assessing the Complexity of ..."
Assessing the Complexity of Upgrading Software Modules
Bram Schoenmakers, Niels van Den Broek, Istvan Nagy, Bogdan Vasilescu, and Alexander Serebrenik (ASML, Netherlands; Eindhoven University of Technology, Netherlands) Modern software development frequently involves developing multiple codelines simultaneously. Improvements to one codeline should often be applied to other codelines as well, which is typically a time consuming and error-prone process. In order to reduce this (manual) effort, changes are applied to the system's modules and those affected modules are upgraded on the target system. This is a more coarse-grained approach than upgrading the affected files only. However, when a module is upgraded, one must make sure that all its dependencies are still satisfied. This paper proposes an approach to assess the ease of upgrading a software system. An algorithm was developed to compute the smallest set of upgrade dependencies, given the current version of a module and the version it has to be upgraded to. Furthermore, a visualization has been designed to explain why upgrading one module requires upgrading many additional modules. A case study has been performed at ASML to study the ease of upgrading the TwinScan software. The analysis shows that removing elements from interfaces leads to many additional upgrade dependencies. Moreover, based on our analysis we have formulated a number improvement suggestions such as a clear separation between the test code and the production code as well as an introduction of a structured process of symbols deprecation and removal. @InProceedings{WCRE13p433, author = {Bram Schoenmakers and Niels van Den Broek and Istvan Nagy and Bogdan Vasilescu and Alexander Serebrenik}, title = {Assessing the Complexity of Upgrading Software Modules}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {433--440}, doi = {}, year = {2013}, } |
|
Worms, Carl |
WCRE '13-PRACTICE: "Analyzing PL/1 Legacy Ecosystems: ..."
Analyzing PL/1 Legacy Ecosystems: An Experience Report
Erik Aeschlimann, Mircea Lungu, Oscar Nierstrasz, and Carl Worms (University of Bern, Switzerland; Credit Suisse, Switzerland) This paper presents a case study of analyzing a legacy PL/1 ecosystem that has grown for 40 years to support the busi- ness needs of a large banking company. In order to support the stakeholders in analyzing it we developed St1-PL/1— a tool that parses the code for association data and computes structural metrics which it then visualizes using top-down interactive exploration. Before building the tool and after demonstrating it to stakeholders we conducted several inter- views to learn about legacy ecosystem analysis requirements. We briefly introduce the tool and then present results of analysing the case study. We show that although the vision for the future is to have an ecosystem architecture in which systems are as decoupled as possible the current state of the ecosystem is still removed from this. We also present some of the lessons learned during our experience discussions with stakeholders which include their interests in automatically assessing the quality of the legacy code. @InProceedings{WCRE13p441, author = {Erik Aeschlimann and Mircea Lungu and Oscar Nierstrasz and Carl Worms}, title = {Analyzing PL/1 Legacy Ecosystems: An Experience Report}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {441--448}, doi = {}, year = {2013}, } |
|
Zemek, Petr |
WCRE '13-PRACTICE: "Psyb0t Malware: A Step-by-Step ..."
Psyb0t Malware: A Step-by-Step Decompilation Case Study
Lukáš Ďurfina, Jakub Křoustek, and Petr Zemek (Brno University of Technology, Czech Republic) Decompilation (i.e. reverse compilation) represents one of the most toughest and challenging tasks in reverse engineering. Even more difficult task is the decompilation of malware because it typically does not follow standard application binary interface conventions, has stripped symbols, is obfuscated, and can contain polymorphic code. Moreover, in the recent years, there is a rapid expansion of various smart devices, running different types of operating systems on many types of processors, and malware targeting these platforms. These facts, combined with the boundedness of standard decompilation tools to a particular platform, imply that a considerable amount of effort is needed when decompiling malware for such a diversity of platforms. This is an experience paper reporting the decompilation of a real-world malware. We give a step-by-step case study of decompiling a MIPS worm called psyb0t by using a retargetable decompiler that is being developed within the Lissom project. First, we describe the decompiler in detail. Then, we present the case study. After that, we analyse the results obtained during the decompilation and present our personal experience. The paper is concluded by discussing future research possibilities. @InProceedings{WCRE13p449, author = {Lukáš Ďurfina and Jakub Křoustek and Petr Zemek}, title = {Psyb0t Malware: A Step-by-Step Decompilation Case Study}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {449--456}, doi = {}, year = {2013}, } Info |
|
Ďurfina, Lukáš |
WCRE '13-PRACTICE: "Psyb0t Malware: A Step-by-Step ..."
Psyb0t Malware: A Step-by-Step Decompilation Case Study
Lukáš Ďurfina, Jakub Křoustek, and Petr Zemek (Brno University of Technology, Czech Republic) Decompilation (i.e. reverse compilation) represents one of the most toughest and challenging tasks in reverse engineering. Even more difficult task is the decompilation of malware because it typically does not follow standard application binary interface conventions, has stripped symbols, is obfuscated, and can contain polymorphic code. Moreover, in the recent years, there is a rapid expansion of various smart devices, running different types of operating systems on many types of processors, and malware targeting these platforms. These facts, combined with the boundedness of standard decompilation tools to a particular platform, imply that a considerable amount of effort is needed when decompiling malware for such a diversity of platforms. This is an experience paper reporting the decompilation of a real-world malware. We give a step-by-step case study of decompiling a MIPS worm called psyb0t by using a retargetable decompiler that is being developed within the Lissom project. First, we describe the decompiler in detail. Then, we present the case study. After that, we analyse the results obtained during the decompilation and present our personal experience. The paper is concluded by discussing future research possibilities. @InProceedings{WCRE13p449, author = {Lukáš Ďurfina and Jakub Křoustek and Petr Zemek}, title = {Psyb0t Malware: A Step-by-Step Decompilation Case Study}, booktitle = {Proc.\ WCRE}, publisher = {IEEE}, pages = {449--456}, doi = {}, year = {2013}, } Info |
29 authors
proc time: 0.27