FAMOOSr 2011 - 5th Workshop on FAMIX and Moose in Reengineering

Co-located with ESUG 2011, Edinburgh, Scotland
Date: August 23, 2011 (9:00 — 12:00)

Summary

Motivation

FAMOOSr is a workshop aimed at researchers and practitioners in the field of object-oriented reengineering and software analysis. The workshop is focused on how to put research ideas and results from these fields into practice using the FAMIX family of meta-models and the MOOSE analysis platform.

Research reaps many benefits through collaborations and tool support. For this reason MOOSE is an open-source project for researchers and industrial to build and share their analysis, meta-models, and data. Several research groups from different universities are actively using MOOSE as an analysis platform, or FAMIX as a meta-model: University of Bern, University of Lugano, INRIA Lille, Politehnica University of Timisoara, University of Zurich, Université Catholique de Louvain, Universidad de Chile.

Goals and target audience

The main goals of the workshop are as follows:

  1. To offer researchers using and building infrastructures like MOOSE and FAMIX the opportunity to meet, exchange ideas, and to identify possible future collaborations.
  2. To facilitate interoperability of the extensions of FAMIX that have evolved at the different groups over the past years.
  3. To increase awareness of the capabilities of MOOSE and FAMIX. The target audience in this case are researchers and industry practitioners with an interest in reverse and re-engineering software systems.
  4. To exchange experiences and trigger collaborations on meta-modeling and software visualization.

Organization

FAMOOSR is organized as an half-day workshop. The workshop focuses on enabling discussions, rather than on being a forum for formal presentations. Thus, after a brief introduction, the workshop starts with short and dynamic presentations (up to 7 minutes), which may include tool demonstration, and then it follows up with round tables, discussions and eventually a pair programming session. One goal of the workshop is to achieve hands-on directions for further implementations, and possible future collaborations between the participants. Thus, we also encourage the participants to actively show their tools and ideas in practice by means of informal demos. The workshop is concluded by a wrap-up discussion.

Submission selection

The goal of the submission selection is to guide and organize the presentations and discussions. We expect two types of contributions:

  1. Experience reports are descriptions of performed experiments, implemented tools and/or (meta-)models.
  2. Position statements describe new directions and challenges for re- and reverse engineering infrastructures.

Submissions may address issues along general themes, including but not limited to:

  • Meta-models,
  • Persistency and manipulation of models and meta-models,
  • Visualization techniques and modeling,
  • Analysis techniques: pattern matching, data mining, machine learning, or probabilistic approaches,
  • Parsing back-ends,
  • Mechanisms for tool composition and rapid tool prototyping,
  • Dynamic analysis,
  • Reusability of research: issues related to reusing tools written by other researchers, mechanisms for making research results and tools available to the community.

The selection process favors the submissions with higher potential of spawning discussions. The accepted submissions are presented during the workshop. Each presentation lasts for maximum 7 minutes. Because the presentations need to be short and dynamic, the review process goes beyond accept/reject, and gives feedback to the authors about their upcoming presentation. Thus, the reviewers decide the length of the presentation, suggest the three most important points that should be touched in the presentation, and suggest questions that could be asked during the workshop.

How to participate: you need to send a 10-lines description before Monday 15 August, to Jannik Laval and Alexandre Bergel (Google will help you find our emails)

Presentations

"The curse of Pharo", digging in Cobol - Diego Lont, Stephan Eggermont

Currently we are using MOOSE to do a data conversion project. Input is Cobol, output is csv files as input for a modern ERP system. Challenges: The developer of the old system died 10 years ago, there is no documentation of the system, just source and data files, some data files contain multiple record types. Approach: We use Mondrian and Glamour to analyze the system and present results and issues to the customer. This provides us with a gradually increasing insight in the system and allows the customer to understand what we are doing and to make informed decisions on what to do next and when to stop putting effort in the conversion.

Exposing hidden dependencies in heterogenous applications - Fabrizo Perin

Java Enterprise Applications (JEAs) are complex systems composed of various technologies and programming languages other than Java, such as XML, SQL or even specific Domain Specific Languages (DSLs). In this heterogenous context, information is spread across various components and languages. This heterogeneity makes the code more diffi- cult to understand and could hide interactions among different application elements. In this presentation we want to describe some novel components added to the FAMIX meta-model. These new components are used to expose hidden dependencies between different software artifacts. The hidden dependencies between the software artifacts can be derived in a context dependent manner. In our use-case we want to derive the connections among source code elements written in different languages (such are Java classes and scripts written in a DSL), by evaluating their connections with a relational data base. The extensions to the FAMIX meta-model have been used in the analysis of an industrial application. The outcome of this analysis is actually in use by our industrial partner. The purpose is to monitor the dependencies between Java code, that is part of a new version of the system, and the scripts written in a DSL, which are part of a the legacy application to decommission.

Extending Mondrian with Interactive HTML Visualisation - Santiago Vidal, Alexandre Bergel, Claudia Marcos, Tudor Girba

Mondrian is an agile visualization engine primarily used to visualize software1. Mondrian support vectorial rendering made of primitive geometrical objects. Mondrian is built in Pharo and use Morphic canvas to render a visualization. We realized an experiment to render Mondrian visualizations in a web browser. This paper presents the exporter we built for Protovis, a Javascript graphical toolkit for data visualization.

Using unit tests to increase accuracy of inter-method dependencies - Alexandre Bergel

Identifying methods interrelation in a dynamic typed applications is challenging because of the lack of static type annotations. Consider this extreme example: if your applications contains the expression ’obj printOn: stream’, then the Moose importer will make your method on all the implementors of #printOn: in the system. We propose to profile the execution of unit tests to address this problem.

Modeling Check style rules - Angel Nunez, Alexandre Bergel, Stéphane Ducasse

Numerous tools have been proposed to help developer comply corporative programming conventions and target refactoring effort. Checkstyle, Pmd and Lint scan source code and look for potential problems, bug, unused and sub-optimal codes. Each of these tools comes with hundreds of rules. Each of these rules may themselves suggest thousands of source code improvements for a medium-sized application. Running Lint on the Pharo class libraries (large of 2300 classes) gives over 50,000 improvements. This presentation introduces the objectives and a preliminary plan of a postdoc that looks for identifying which of these improvements have to be addressed first for an effective improvement. "How to help developers smartly improve their software" is the general context of the topic. Three planned experiences are briefly described. They look for get a better understanding about the use of checker rules and an initial classification.