Orion

You are here:

When reengineering software systems, maintainers should be able to assess and compare emph{multiple} change scenarios for a given goal, so as to choose the most pertinent one. We designed Orion, an interactive prototyping tool for reengineering, to simulate changes and compare their impact on multiple versions of software source code models. We deal with requirements such as: interactive simulation of changes, reuse of existing assessment tools, and ability to hold multiple and branching versions simultaneously in memory. Specifically, we devise an infrastructure which optimizes memory usage of multiple versions for large models. This infrastructure uses an extension of the FAMIX source code meta-model but it is not limited to source code analysis tools since it can be applied to models in general. We propose the Orion-Browser, a prototype of browser which allows us to navigate in versions.

We developed an experimental version browser dedicated to analysis of cyclic dependencies between packages. It serves as the central place for running version analyses and cycle analysis (shown in figref{browser}). This section describes the core functions of the browser with respect to our vision, illustrated in the context of cycle removal. We do not claim that this browser is the sole solution to manage simultaneous versions. It is an illustration of our vision and of possibilities currently offered by Orion.

We distinguish two parts in the browser layout: top row for navigation in the system, bottom row for task analysis and change assessment. The reengineer interacts with the browser by selecting elements in the different panels and opening a contextual menu.

Screenshot

Tutorial

Jannik Laval put together a PDF with a tutorial.

Download

Execute this source code in Pharo:

Gofer new
	squeaksource: 'OrionDev'; 
	package: 'ConfigurationOfOrion';
	load.
(Smalltalk at: #ConfigurationOfOrion) perform: #loadDefault

Licence: BSD