Architectural Design Exploration 
================================
 
About Inria and the job
-----------------------
Inria, with its academic, institutional and industrial partners, is commited to 
major research and
innovation projects in the field of computational sciences. The institute 
disseminates across France
thanks to its eight research centres.

The Inria Lille - Nord Europe research centre, inaugurated in 2008, employs 357 
people, including 250
scientists, in its seventeen research teams. Recognised for its significant 
contribution to the social
and economic development of the Nord - Pas-de-Calais region, the Inria Lille - 
Nord Europe research 
centre promotes a policy of close cooperation with major businesses and small 
enterprises. By encouraging
synergies between researchers and industrial partners, Inria contributes to the 
transfer of skills and
expertise in computational technologies and provides access to top-level 
European and international
research in order to support innovation and businesses, particularly in the 
region of Lille.

Whether designing innovative software for business or logistics, modelling 
living cells or fusion 
plasma, or developing medical simulators or interfaces to facilitate 
human-computer interaction, 
our research opens up new possibilities that can revolutionise common practice 
and contribute to 
a better understanding of the natural phenomena which surround us.

The postdoc is hosted by Team-Project RMoD. The goal of RMoD is to support 
remodularization of
object-oriented applications. This objective is tackled from two complementary 
perspectives: 
reengineering and modularity constructs for programming languages.

In the reengineering perspective we will propose new analyses to understand and 
restructure 
existing large applications (specialized package metrics, adapted 
visualizations, layer 
identification) on top of Moose [Duca08a], [Bhat12b]. 
http://rmod.lille.inria.fr/web/

Mission
--------
Changes in the architecture may occur during the entire lifecycle of a system. 
Some of them might 
only affect local parts of a system, while others have more systemic impact. In 
general, we 
distinguish three types of approaches for handling change systematically, 
listed in an order 
of increasing severity:

- Refactoring. They correspond to improvements and concern only certain 
components and connectors. 
They do not alter the offered functionality of the system.

- Renovating. Sometimes, parts of the architecture are in such a bad condition 
that refactoring 
cannot work anymore. In such contexts, renovating the architecture – by 
restoring its fundamental
principles or refreshing essential components – may be the better choice. 
Renovating also deals with 
only parts of the system.

- Re-architecting. When an architecture is subject to significant changes, 
refactoring or renovating may 
not suffice. This might be the case if for example the technology platform is 
to be replaced by a new one, 
if there is a large change in business scope, or if the architecture is in such 
a bad shape that errors 
keep emerging. In such cases, re-architecting is required. The re-architecting 
process usually analyzes 
the existing architecture (e.g., using a SWOT analysis) and results in a new 
architecture by: a) reusing 
those components worthwhile to keep, b) modifying some of the existing 
components (refactoring) and c) 
re-building the rest of the components (renovating).[Ieee13]

Because software engineers do not have a full understanding of the complete 
source code, each kind of 
changes may solve some problems (e.g. reduce some cycle between package), while 
creating new problems 
(e.g. creating new cycles). In this situation it would be profitable to have a 
tool that allows to test a 
possible new configuration (refactored, renovated or re-architectured) of the 
source code to see if the 
abstract property one wishes to improve, first actually improved, and second, 
did not improve at the 
expense of another equally important one. For this several alternatives new 
configurations have to be 
considered. In the RMoD team, we developed Orion [Lava10b], a tool that uses 
models as abstract 
representations of the program and enables the definition of several possible 
alternative versions of 
this program. Each version differentiates from the others by a set of 
refactoring operations. Currently, 
once an adequate version is selected, the user has to manually perform the 
operations on the code.
 
Job offer description
----------------------
In this postdoc, we would like to enhance Orion in order to automatically 
generate code or modify the 
existing one once a version is chosen. Thus, it would be possible to study 
various alternatives of 
possible refactoring or restructuring of an existing program, using metrics 
[Abde12a], [Mord12b] or some 
other means [Hema12] to check the improvement in the "quality" of the code, and 
then ask the tool to 
perform the changes of the selected final solution onto the source code. The 
used metamodel enables a 
representation where code details are abstracted. A new metamodel for example 
AST metamodel, representing 
code will be introduced and the links between the two models will have to be 
maintained.

 
Skills and profile
--------------------
The candidate should :
- hold a PhD degree in Computer Science
- be fluent in English (French is an advantage but not required)
- be knowledgeable in the domains of Software Engineering, maintenance, code 
analysis
- have good programming skills in Smalltalk or be able to acquire them in a 
short amount of time
 
Benefits
---------
- Possibility of French courses
- Help for housing
- Participation for transportation
- Scientific Resident card and help for husband/wife visa
 
Additional information
-----------------------
- Duration : 16 months
- Salary:  2 620,84 € gross/month 
- Monthly salary after taxes : around 2 138€ (medical insurance included).
- Before applying, please contact the scientist advisor: 
[email protected]
- For the first selections, please apply before March 2013, 22nd

Security and defense procedure
-------------------------------
In the interests of protecting its scientific and technological assets, Inria 
is a restricted-access 
establishment. Consequently, it follows special regulations for welcoming any 
person who wishes to work 
with the institute. The final acceptance of each candidate thus depends on 
applying this security and 
defense procedure.


        More information: http://rmod.lille.inria.fr/web/pier/blog/2013-02-22-2


Reply via email to