PhD proposal: Software re-modularization

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

PhD proposal: Software re-modularization

Marcus Denker-4
(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
 
Environnement
=============
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
jointly:

- 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
  win.
 
Missions
========
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
  operations;
- 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: [hidden email]
Nicolas Anquetil: [hidden email]

References
===========
[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,
    2005
[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,  
    2000


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