[Pharo-project] PhD proposal: Software re-modularization

Marcus Denker marcus.denker at inria.fr
Sun Feb 28 02:37:11 EST 2010

(I am reposting this with updated links)

The RMoD team at INRIA Lille / France is offering a PhD position. 
"Software re-modularization".

Applications must be submitted online, the deadline is *Mai 4*.
More information and online application: http://bit.ly/ajc1N8
 More on doing a PhD at INRIA: http://www.inria.fr/travailler/opportunites/doc.en.html


Software re-modularization
Position type: PhD Student
Functional area: Lille (Villeneuve d'Asq)
Project: RMOD
For organizations, each software system represents a significant
investment in time, resources, and knowledge. It is fundamental to
keep these systems effective to protect this investment. On the other
side, constant evolution of the systems produces an “architectural
drift” where the initial architecture no longer fits the necessities
of the new requirements. To fight this trend, one must re-architecture
the system, which could sometimes be compared to re-engineer a hand
made canoe to a full cruise ship while at sea. Research already made
good progress, proposing tools that detect the necessity of
architecture re-engineering and point at the most urgent needs. These
tools work by analyzing class dependencies (e.g., when a class makes a
call to a method in another class) and relying on the high
cohesion/low coupling principle: A good architecture should ensure
that packages have high cohesion (lots of dependencies between their
classes) and low coupling with other (few dependencies between classes
in one package and classes outside the package). But re-modularization
is still a difficult task, for example a lot of solutions may be
possible in any specific case, not one with clear advantages over the
others. The next research step is therefore to propose tools helping
software engineers to actually perform and assess these
modularizations. Several paths will be explored, independently or

- Exploration of the space of all possible re-modularization
  solutions. Visual tools and/or tools based on metrics could help
  software engineers foresee and understand the costs and consequences
  of several different re-modularization options so as to help them 
  choose the best one.
- Define a quality model to assess different re-modularisations. There 
  is a need to compare multiple solutions of remodularisation actions.
- Identification of a catalog of high-level re-modularization 
  operations. Just like modern IDE offer high-level refactoring 
  operations (rename an attribute, move a method), one could identify 
  what high-level operations (for example, cut cycle) would be 
  necessary and sufficient to perform most re-modularization. 
- Combining these two approaches, one can even imagine a tool that 
  would explore alone the possible options and choose the best(s) 
  one(s) according to some pre-establish quality model. This would 
  somehow be similar to a program that plays chess and explore the 
  space of possible play to choose the most promising one toward a 
The goals of the project are multiple and could be explored independently:

- exploring existing high level re-factoring operations;
- perform re-modularization so as to identify possibly recurrent 
  high-level operations;
- implementing tools to apply these high-level re-modularization 
- definition of metrics and tools to visualize concurrently different 
  possible re-modularization solutions;
- definition of quality and cost models for re-modularization;
  exploring heuristic to choose the best re-modularization operations   
  to apply in specific cases.
Compétences et Profil
- object-oriented programming with knowledge of Smalltalk
- experience in software maintenance and re-factoring
- english
- good communication
Informations complémentaires
Chercheur(s) à contacter pour plus d’information/advisors :
Stéphane Ducasse: stephane.ducasse at inria.fr
Nicolas Anquetil: nicolas.anquetil at inria.fr

[1] S. Ducasse, D. Pollet, M. Suen, H. Abdeen, I. Alloui, “Package
    Surface Blueprints: Visually Supporting the Understanding of 
    Package Relationships”, IEEE International Conference on Software 
    Maintenance, 2007. ICSM 2007, IEEE Comp. Soc. Press, pp. 94-103
[2] S. Ducasse, D. Pollet, “Software Architecture Reconstruction: a 
    Process-Oriented Taxonomy”, IEEE Transactions on Software 
    Engineering, IEEE Comp. Soc. Press, 35(4), pp. 573-591, 2009
[3] O. Seng, M. Bauer, M. Biehl, G. Pache, “Search-based Improvement 
    of Subsystem Decompositions”, Proceedings of the 2005 conference 
    on Genetic and evolutionary computation, ACM, pp. 1045 - 1051, 
[4] O. Seng, J. Stammel, D. Burkhart, “Search-Based Determination of 
    Refactorings for Improving the Class Structure of Object-Oriented 
    Systems”, Proceedings of the 8th annual conference on Genetic and 
    evolutionary computation, ACM, pp. 1909 – 1916, 2006.
[5] J.B. Tran, M.W. Godfrey, E.H.S. Lee, R.C. Holt, “Architectural 
    Repair of Open Source Software”, 8th International Workshop on 
    Program Comprehension (IWPC'00), IEEE Comp. Soc. Press, p. 48,  

Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.

More information about the Pharo-dev mailing list