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
|