Two PhD Thesis Positions

stephane ducasse (home) ducasse at iam.unibe.ch
Wed May 22 19:20:52 UTC 2002


Hi

Please distribute the following information.

The Software Composition Group (www.iam.unibe.ch/~scg/) has two PhD 
positions available in the context of the RECAST SNF Project 
(http://www.iam.unibe.ch/~ducasse/WebPages/Recast.html).
The starting date is flexible but we have a preference for 
September/October 2002. If you are interested please send us your cv to 
ducasse at iam.unibe.ch and oscar at iam.unibe.ch.

Here is the small description of the RECAST project.

Recast: evolution of object-oriented applications.

Abstract. This research project is about reengineering object-oriented 
applications. Reengineering such applications inherits complex problems 
related to software maintenance, i.e., program understanding, program 
analysis, and program transformation and adds to them (1) the complexity 
introduced by late binding, dynamic typing, and incremental definition 
specific to object-oriented programming, and (2) the complexity related to 
the new way of software development (multiple parallel versions, 
frameworks, and products lines). Based on our research experience, this 
research project is structured in three non-orthogonal directions: (a) 
reengineering, (b) analysis of versions and (c) migration of 
object-oriented applications towards components.

Keywords.  Object-Oriented Programming, Reengineering, Reverse Engineering,
  Program Understanding, Architecture Extraction, Meta-Model, Code Analysis,
  Frameworks, Migration towards Component, Modularization, Modules.

Introduction
Most of the effort while developing and maintaining a system is spent 
supporting its evolution [Som96]. This document presents RECAST, a 
research project whose goal is to support the evolution of objectoriented 
applications. The following two laws due to Manny Lehman illustrate the 
vision of RECAST. They stress the fact that software must continuously 
evolve to stay useful and that this evolution is accompanied by complexity.

	*	Continuous Changes. “an E-type program1 that is used must be 
continually adapted else it becomes progressively less satisfactory” 
[Leh96]
	*	Increasing Complexity. “As a program is evolved its complexity 
increases unless work is done to maintain or reduce it.”[Leh96]


RECAST is based on the vision that supporting evolution of applications 
will be always mandatory. This is independent of the language and the 
paradigm used to develop the applications. Tools and techniques are 
necessary to support the evolution of applications. RECAST structures the 
research on evolution of object-oriented applications around three 
directions.

	*	Reengineering. First it considers the reengineering aspect of 
evolution. It addresses questions such as: how can we understand a large 
industrial application, i.e., reverse engineer it, how can we identify 
problems that hamper evolution, how can we change it, i.e., reengineer the 
application to fix those problems.
	*	Versions. Second, it considers multiple versions analysis, i.e., 
systems are put best understood by taking into account their evolution 
over several versions. Hence a temporal dimension is added and used to 
understand applications and predict their future.
	*	Migration. Then finally it approaches paradigm shift by 
investigating how the migration of objectoriented systems into component 
systems can be supported. It introduces the problematic of supporting the 
identification, extraction and migration of code in terms of components.

The concrete results we want to obtain within a period of three to four 
years are the following.

	*	Reengineering - Meta-meta-model. One of the key aspects of this 
project is the new infrastructure and meta-model we want to develop. 
Having an extensible meta-model will support a new range of work such as 
the architecture extraction, program understanding, and program analysis 
and will allow us to create a synergy between the other research 
directions.
	*	Reengineering - Supporting Code Understanding and new IDEs. We 
want to investigate new ways of helping programmers to understand code. 
The idea is to add semantic information to code fragments and integrate it 
into new IDEs.
	*	Version Analysis. We want to use the version information to 
support the understanding of application. We want to be able to analyse 
versions of a system with our tool CODECRAWLER.
	*	Component Migration - A Framework for Component Description. We 
want to work on the migration of object-oriented code towards components. 
For this purpose, we want to design a framework with which different 
component models can be represented and compared.
	*	Component Migration - Component Identification. We want to gain 
experience in the identification of components within object-oriented code.
  We plan to apply concept analysis and cluster
analysis techniques.

RECAST will be based on the MOOSE Reengineering environment developed at 
the SCG. Moose supports the analysis of the following languages: Smalltalk,
  C++ and Java. Moose is developed in VisualWorks Smalltalk and it is 
running on PC, Mac, Unix and  Linux.


Stef

Prof. Dr. Stéphane DUCASSE (ducasse at iam.unibe.ch) http://www.iam.unibe.ch/
~ducasse/
  "if you knew today was your last day on earth, what would you do
  different? ... especially if, by doing something different, today
  might not be your last day on earth" Calvin&Hobbes




More information about the Squeak-dev mailing list