(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. |
Free forum by Nabble | Edit this page |