Welcome to the IWPSE 2002, the International Workshop on Principles of Software Evolution, held in conjunction with the 24th International Conference of Software Engineering.The IWPSE 2002 is the fifth workshop in a series started from IWPSE '98 held with International Conference on Software Engineering (ICSE '98) in Kyoto, Japan. Since then, the workshops have been held annually, as IWPSE '99 in Fukuoka, ISPSE 2000 (the International Symposium on Principles of Software Evolution) in Kanazawa, and IWPSE 2001 in Vienna, Austria, in conjunction with ESEC/FSE 2001.We are much honored to have an excellent keynote, by Professor Tetsuo Tamai from Tokyo University, Japan. Professor Tamai is not only a leading researcher on software evolution, but a core member of founding series of the IWPSE.
Evolvable programming based on collaboration-field and role model
This is a brief introduction to our research on a collaboration field and role model aiming to support evolvable software design and programming.
Challenges of refactoring C programs
Refactoring has become a well-known technique for transforming code in a way that preserves behavior. Refactorings may be applied manually, although manual code manipulation is error prone and cumbersome, so maintainers need tools to make automatic ...
A method for detecting faulty code violating implicit coding rules
In the field of legacy software maintenance, there unexpectedly arise a large number of implicit coding rules --- which are seldom written down in specification documents or design documents --- as software becomes more complicated than it used be. ...
Fostering component evolution with C# attributes
This paper discusses the problems arising when object oriented libraries are evolved through the subclass mechanism. The overriding of a method may in fact produce undesirable side effects in the behavior of other methods. More generally, the designer ...
Collaboration-based evolvable software implementations: Java and Hyper/J vs. C++-templates composition
Collaboration-based design is a methodology for de-coupling application aspects in the object-oriented world. Because collaborations are relatively orthogonal to each other, a collaboration can be implemented independently and reused in different ...
Evolution in adaptive hypermedia systems
In this paper, the need of mechanisms of evolution in adaptive hypermedia systems is argued. Moreover, the basic characteristics of these systems are described and the user adaptation carried out in them is situated in the context of evolution models. ...
A framework for flexible evolution in distributed heterogeneous systems
Distributed, heterogeneous systems are becoming very common, as globalized organizations integrate applications running on different platforms, possibly written in different languages. Certain requirements for such features as security, QoS, and ...
Evolving and using coordinated systems
A four-layer architecture is outlined for the design of systems required to accommodate higher levels of evolution and personalization. This architecture is based on the separation of four different aspects that concern change: the computations the ...
DMS: program transformations for practical scalable software evolution
This paper describes the scaling issues and progress towards constructing a practical program transformation system to support software evolution.
A verification of class structure evolution model and its parameters
It is widely accepted that the role of software "architect" that provide frameworks to program developers is important in the object-oriented software development processes. When developers try to extend the base classes given by the architect, they may ...
A software model for flexible & safe adaptation of mobile code programs
Recently, mobile code technology has been utilized in many systems: Java applets, Jini, Active network, Internet appliances, etc. To make mobile code programs work more effectively, we must consider their adaptation on runtime environments. Our goal is ...
The role of dependencies in component-based systems evolution
In this position paper we argue that component dependencies should be treated as a first class problem in component-based systems evolution. We discuss some issues related to dependencies and present an overview of a technique to describe and analyze ...
Library evolution for reliable software
This paper shows a methodology to evolve a library of functions to be with common patterns of usage, called idioms. In source programs written in C, it is commonly seen that library functions are combined in a certain pattern since functionalities ...
Dynamic component and code co-evolution
This papers presents a radically new approach for the dynamic evolution of long-lived systems that can not easily be shut-down for maintenance and restarted afterwards. Conventionally, the source code of a software system is viewed as a static entity ...
Evolution patterns of open-source software systems and communities
Open-Source Software (OSS) development is regarded as a successful model of encouraging "natural product evolution". To understand how this "natural product evolution" happens, we have conducted a case study of four typical OSS projects. Unlike most ...
Tool support for engineering adaptability into software architecture
Development of adaptable software has been receiving much attention recently, as such software could better accommodate changes in user requirements as well as in needs of the developing organization. This paper considers software adaptability as a key ...
Evaluating the applicability of reliability prediction models between different software
The prediction of fault-prone modules in a large software system is an important part in software evolution. Since prediction models in past studies have been constructed and used for individual systems, it has not been practically investigated whether ...
Metrics and analysis of software architecture evolution with discontinuity
This article proposes a set of metrics for software architecture evolution and discusses continuous and discontinuous software evolution with the metrics proposed. We claim that discontinuity arises to reengineer software architecture and is an ...
Change impact analysis for aspect-oriented software evolution
Chang impact analysis is an useful technique for software evolution. Many techniques have been proposed for supporting change impact analysis of procedural or object-oriented software, but no effort has been made for change impact analysis of aspect-...
An approach to evolving database dependent systems
It is common in client/server architectures for components to have SQL statements embedded in their source code. Components submit queries to relational databases using such standards as Universal Data Access (UDA) and Open Database Connectivity (ODBC). ...
Tracking structural evolution using origin analysis
Many long term studies of software evolution have made the simplifying assumption that the system's architecture and low-level structure is relatively stable. In our past work, we have found that this is often untrue; therefore, we have sought to ...
Analysis of software evolution processes using statistical distribution Models
Size data of software systems are constantly collected but so far there have been no studies of applying statistical distribution models to analyze and interpret those data. In this paper, we show that the negative binomial distribution fits well to the ...
SOMA: a paradigm to evolve software based on separation of concerns
Object-oriented paradigm is widely adopted in software development, but it has its own problem to make such software evolution difficult. In this paper, I will propose a new paradigm named SOMA (solid object and medium artifact) as a variation of OO ...
Towards consistency-preserving model evolution
Model-based software development poses requirements on the quality of models which cannot yet be fulfilled by models in the standard object-oriented modeling language, the UML. In particular, the semantic consistency of UML models is an open issue. ...
Environmental scenarios and requirements stability
This paper recognizes the gap in research and practice that exists in addressing the evolution of E-Type systems that result from changes in the operating environment of the system over very long lifecycles. Through the fusion of a Goal Directed ...
Supporting software evolution with intentional software views
Maintaining and evolving large software systems is hard. One underlying cause is that existing modularisation mechanisms are inadequate to handle crosscutting concerns. We propose intentional software views as an intuitive and lightweight means of ...
Computation scrapbooks for software evolution
Previous uses of persistent computation state have focused on fault tolerant computing, continuations of interactive sessions, process migration, and debugging. Dramatic increases in computer power and storage have made additional uses practical. ...