Powered by
Conference Publishing Consulting

2013 13th International Workshop on Principles of Software Evolution (IWPSE), August 19-20, 2013, Saint Petersburg, Russia

IWPSE 2013 – Proceedings

Contents - Abstracts - Authors

2013 13th International Workshop on Principles of Software Evolution (IWPSE)


Title Page

It is our great pleasure to welcome you to the 13th International Workshop on Principles on Software Evolution – IWPSE 2013. Research in software evolution has been thriving in the past years, with a constant stream of new formalisms, tools, techniques, and development methodologies trying, on the one hand, to facilitate the way long-lived successful software systems can be changed in order to cope with demands from users and the increasing complexity and volatility of the contexts in which such systems operate, and, on the other hand, to understand and if possible control the processes by which demand for these changes come about.


Customizing Model Migrations by Rule Schemes
Florian Mantz, Gabriele Taentzer, and Yngve Lamo
(Bergen University College, Norway; Philipps-Universität Marburg, Germany)
Model-driven engineering (MDE) is a software engineering discipline focusing on models as the primary artifacts in the software development process while programs are mainly generated by means of model-to-code transformations. In particular, modeling languages tailored to specific application domains promise to increase the productivity and quality of software development. Nevertheless due to e.g. evolving requirements, modeling languages and their meta-models evolve which means that existing models have to be migrated correspondingly. In our approach, such co-evolutions are specified as related graph transformations ensuring well-typed model migration results. Based on our earlier work on co-transformations, we now consider the automatic deduction of migration rule schemes from given meta-model evolution rules. Rule schemes form the basis for user customizations on a high abstraction level. A rule scheme deduction algorithm is presented and several customized migration schemes for different co-evolution examples are discussed.
Publisher's Version Article Search


Applying Lehman's Laws to Game Evolution
Timo Nummenmaa, Annakaisa Kultima, Kati Alha, and Tommi Mikkonen
(University of Tampere, Finland; Tampere University of Technology, Finland)
Computer games are a genre of software systems that in many ways differs from more traditional applications. In particular, when designing games, the end result of game development resembles work of art rather than that of engineering, emphasizing the need for creativity and artistic abilities. However, as technology, tools, methods, and artifacts that are used in the development of games are to a large extent similar to those used in the development of more traditional system, games should conform to the basic laws of software, including software evolution. In this paper, we reflect the principles of software evolution distilled by Manny Lehman in the form of laws of software evolution to the game domain. We present how the laws can be interpreted and applied in games projects, and argue that many of the laws apply to many games, but not all laws apply to all games. The way the game is evolved especially has an effect on the applicable laws as changes in games can be emerging, reactive or pre-planned.
Publisher's Version Article Search
What Can Commit Metadata Tell Us About Design Degradation?
Gustavo Ansaldi Oliva, Igor Steinmacher, Igor Wiese, and Marco Aurélio Gerosa
(USP, Brazil; UTFPR, Brazil)
Design degradation has long been assessed by means of structural analyses applied on successive versions of a software system. More recently, repository mining techniques have been developed in order to uncover rich historical information of software projects. In this paper, we leverage such information and propose an approach to assess design degradation that is programming language agnostic and relies almost exclusively on commit metadata. Our approach currently focuses on the assessment of two particular design smells: rigidity and fragility. Rigidity refer to designs that are difficult to change due to ripple effects and fragility refer to designs that tend to break in different areas every time a change is performed. We conducted an evaluation of our approach in the project Apache Maven 1 and the results indicated that our approach is feasible and that the project suffered from increasing fragility.
Publisher's Version Article Search
Enhancement of CRD-Based Clone Tracking
Yoshiki Higo, Keisuke Hotta, and Shinji Kusumoto
(Osaka University, Japan)
Many researchers have conducted a variety of research related to clone evolution. In order to grasp how clones have evolved, clones must be tracked. However, conventional clone tracking techniques are not feasible to track clones if they moved to another location in the source code. Consequently, in this research, we propose a new clone tracking technique. The proposed technique is an enhanced version of clone tracking with clone region descriptor (CRD) proposed by Duala-Ekoko and Robillard. The proposed technique can track clones even if they moved to another location. We have implemented a software tool based on the proposed technique, and applied it to two open source systems. In the experiment, we confirmed that the proposed technique could track 44 clone groups, which the conventional CRD tracking could not track. The accuracy of the tracking for those clones was 91%.
Publisher's Version Article Search


Tracking Performance Failures with Rizel
Juan Pablo Sandoval Alcocer and Alexandre Bergel
(University of Chile, Chile)
Understanding and minimizing the impact of software changes on performance are both challenging and essential when developing software. Unfortunately, current code execution profilers do not offer efficient abstractions and adequate representations to keep track of performance across multiple versions. Consequently, understanding the cause of a slow execution stemming from a software evolution is often realized in an ad hoc fashion. We have designed Rizel, a code profiler that identifies the root of performance variations thanks to an expressive and intuitive visual representation. Rizel highlights variation of executions and time distribution between multiple software versions. Rizel is available for the Pharo programming language under the MIT License.
Publisher's Version Article Search

Mining Software Repositories

An Analysis of Requirements Evolution in Open Source Projects: Recommendations for Issue Trackers
Petra Heck and Andy Zaidman
(Fontys University of Applied Sciences, Netherlands; Delft University of Technology, Netherlands)
While requirements for open source projects originate from a variety of sources like e.g. mailing lists or blogs, typically, they eventually end up as feature requests in an issue tracking system. When analyzing how these issue trackers are used for requirements evolution, we witnessed a high percentage of duplicates in a number of high-prole projects. Further investigation of six open source projects and their users led us to a number of important observations and a categorization of the root causes of these duplicates. Based on this, we propose a set of improvements for future issue tracking systems.
Publisher's Version Article Search
Understanding the Interactions between Users and Versions in Multi-tenant Systems
Tiago Espinha, Andy Zaidman, and Hans-Gerhard Gross
(Delft University of Technology, Netherlands)
Multi-tenant systems represent a class of software-as-a-service (SaaS) applications in which several groups of users, i.e. the tenants, share the same resources. This resource sharing results in multiple business organizations using the same base application, yet, requiring specific adaptations or extensions for their specific business models. Each configuration must be tended to during evolution of a multi-tenant system, because the existing application is mended, or because new tenants request additional features. In order to facilitate the understanding of multi-tenant systems, we propose to use a runtime topology augmented with user and version information, to help understand usage patterns exhibited by tenants of the different components in the system. We introduce Serviz, our implementation of the augmented runtime topology, and evaluate it through a field user study to see to which extent Serviz aids in the analysis and understanding of a multi-tenant system.
Publisher's Version Article Search
Identifying Clone Removal Opportunities Based on Co-evolution Analysis
Yoshiki Higo and Shinji Kusumoto
(Osaka University, Japan)
Previous research efforts have proposed various techniques for supporting code clone removal. They identify removal candidates based on the states of the source code in the latest version. However, those techniques suggest many code clones that are not suited for removal in addition to appropriate candidates. That is because the presence of code clones do not necessarily motivate developers to remove them if they are stable and do not require simultaneous modifications. In this paper, we propose a new technique that identifies removal candidates based on past records of code modifications. By using the proposed technique, we can identify code clones that actually required simultaneous modifications in the past.
Publisher's Version Article Search

proc time: 0.03