1.1 Moose in a nutshell

Moose is a generic platform for engineers that want to understand data in general, and software systems in particular. From a conceptual point of view, Moose is organized as follows.

General workflow of working with Moose

The input is always some piece of data. By data, we understand all sorts of structures that contain objects, properties and relations. For example, a software system written in Java. Or, a set of configuration files written in XML. Or, some meta-data about your system.

Introduce an example of importing from Java and explain the Moose components using this example

This data is loaded in Moose via importers. In Moose, you can import data from various sources and in various formats. For example, Moose can handle importing the structure of software systems written in various programming languages either through internal importers (e.g., Smalltalk, XML, MSE), or through external ones (e.g., Java, JEE, C++).

The importing of data is a rather unexciting step, but a necessary one. Once imported, the data is stored in models. This is where things get more interesting, because on top of these models you can start performing various kinds of analyses.

What do we mean by analyses? Tons of metrics, a multitude of queries, various data mining and graph-based algorithms, duplication detection, interactive visualizations of all sorts, or data browsers. There a multitude of basic services like these provided by default. These tools can be applied interactively, and can be combined to produce more complex analyses such as: computation of dependency cycles, detection of high level design problems, identification of exceptional entities and so on. A key concept is that the results obtained after applying a specific analysis are fed back into the model and are available for further analysis. This enables an iterative process through which the analysis is built and refined gradually.

But, Moose is more than a tool. Moose is a platform. This is not just marketing, but it actually means that it helps you build your own tools. This is achieved by means of several engines through which you can control and customize the complete analysis workflow. In particular, you can:

  • build new importers for new data sets,
  • define new models to store the data, and
  • create new analysis algorithms and tools such as: complex graph visualizations, charts, new queries, or even complete browsers and reporting tools altogether.

User Contributed Notes

tudor (20 May 2013, 6:40 am)

Thanks Oscar. Indeed. I added a note and will work on it.

oscar (16 May 2013, 6:42 pm)

examples are good. start with a concrete example.

tudor (14 November 2011, 9:32 pm)

Thanks a ton :). Fixed.

ross (10 November 2011, 3:04 am)

"Tones of metrics," would be "Tons" in US English. It might be "tonnes" in British. I don't think it's "tones" in any variant.

tudor (21 September 2011, 12:18 pm)

Thanks for the encouragements, mcleod :).


Regarding the video, the point of the book is to be a book that can be made into a PDF. Hence, a video does not work well.

mcleod (19 September 2011, 9:59 am)

I disagree with the above comments. I think the in a nutshell intro is actually very concise and meaningful if you have the sort of problems to address that Moose is intended for! I do agree that an introductory video clip would be great too.

test (31 August 2011, 7:08 pm)

I TOTALLY agree with Carlos. After reading "Moose in a nutshell" I still have no idea what this is about.

carlos.crosetti (23 August 2011, 12:27 am)

Hi, I am reading the "Moose in a nutshell" chapter and not yet clear what is the idea behind. is Moose like Minitab? I beelieve after this chapter and before the gistory of Moose, a screenshow will be of bebefit to the rader and the product, regards, Carlos

Add a Note