Table of contents
- Table of contents
- Acknowledgments
- 1
- Introduction
- 1.1
- Moose in a nutshell
- 1.2
- A brief history of Moose
- 1.2.1
- 1996-1999: First infrastructure, meta-model
- 1.2.2
- 1999-2003: Interchange formats, visualizations
- 1.2.3
- 2003-2007: Generic UI, interchange format, scriptable visualizations
- 1.2.4
- 2007-2010: FAMIX 3.0, scriptable browsers, parsing framework, Pharo
- 1.2.5
- 2011-2012: Improved browsers and visualization engines, query API
- 1.3
- Why Smalltalk
- 1.4
- Book organization
- 1.5
- About the book
- 1.6
- About the online version of the book
- I
- Moose externals
- 2
- Installation
- 3
- Running example: ArgoUML 0.28.1
- 4
- Importing and exporting models
- 4.1
- Importing and exporting with MSE
- 4.2
- Importing Smalltalk code
- 4.3
- Importing using external parsers
- 4.3.1
- Importing Java using the VerveineJ external parser
- 4.3.2
- Importing Java and C/C++ using the inFamix external parser
- 4.4
- Others
- 4.5
- Setting the root folder
- 5
- Generic user interface for analysis
- 5.1
- Everything is an entity
- 5.2
- Finding your way through models
- 6
- Visualizing software models
- 6.1
- System Complexity
- 6.2
- Class Blueprint
- 6.3
- Side-by-side duplications
- 6.4
- Namespace and package dependencies
- 6.5
- Enriched dependencies structure matrix
- 6.6
- Name cloud
- 6.7
- Annotation constellation
- 6.8
- Distribution Map
- 6.9
- Multiplication constellation
- 7
- Detecting duplication
- 7.1
- Algorithm
- 8
- Dedicated browsers
- 8.1
- Code browsers
- 8.2
- Multiplication constellation browser
- II
- Moose internals
- 9
- Architecture
- 10
- Dealing with models
- 10.1
- The Entity
- 10.2
- The Group
- 10.3
- The Model
- 11
- The FAMIX family of meta-models
- 11.1
- The core language-independent meta-model
- 11.1.1
- An incorrect, but useful overview
- 11.1.2
- Types
- 11.1.3
- The invocation
- 11.1.4
- The annotations
- 11.1.5
- Chef
- 11.2
- Meta-model extensions
- 11.3
- The Meta Browser
- 12
- Meta-modeling with Fame
- 12.1
- The FM3 meta-meta-model
- 12.2
- Subject, model, meta-model, meta-meta-model
- 12.3
- Smalltalk integration
- 13
- Annotating with Metanool
- 14
- Writing parsers with PetitParser
- 14.1
- Step by step parsing of MSE
- 14.1.1
- Starting small with parsing names
- 14.1.2
- Manipulating the output of parsing strings and numbers
- 14.1.3
- Dealing with cyclic dependencies when scripting the MSE grammar
- 14.1.4
- Encapsulating the MSE grammar in a class
- 14.1.5
- Testing the MSE grammar class
- 14.1.6
- Creating an MSE parser
- 14.2
- Parsing operators
- 14.3
- Dedicated user interface
- 15
- Painting models with Mondrian
- 15.1
- Painting a small view
- 15.2
- Mondrian architecture
- 15.3
- Putting it all together with scripts
- 15.3.1
- Constructing the graph
- 15.3.2
- Adding nodes
- 15.3.3
- Adding edges
- 15.3.4
- Using layouts
- 15.3.5
- Specifying shapes
- 15.3.6
- Handling interaction
- 15.3.7
- Conventions for Mondrian scripts
- 15.3.8
- Scripting in Mondrian Easel
- 16
- Roassal
- 17
- Drawing diagrams with EyeSee
- 18
- Building browsers with Glamour
- 18.1
- A glimpse of Glamour
- 18.2
- Glamour architecture
- 18.3
- Sketching browsers
- 18.4
- Handling transmissions
- 18.5
- Specifying presentations
- 18.5.1
- Composite presentation
- 18.5.2
- Listing presentations
- 18.5.3
- Text presentation
- 18.5.4
- Label presentation
- 18.5.5
- Smalltalk code presentation
- 18.5.6
- Mondrian presentation
- 18.5.7
- Magritte presentation
- 18.5.8
- Diff presentation
- 18.5.9
- Action list presentation
- 18.5.10
- Dynamic presentation
- 18.5.11
- Custom presentations
- 18.5.12
- EyeSee presentation
- 18.6
- Scripting browsers
- 18.6.1
- Tabulator
- 18.6.2
- Finder
- 18.6.3
- Accumulator
- 18.6.4
- Composing browsers
- 18.7
- Handling actions
- 18.8
- Updating browsers
- 18.9
- Rendering
- 18.10
- Examples
- 19
- Mining data and manipulating graphs
- 20
- Checking and reporting with Arki
- 20.1
- Creating a dedicated report from scratch
- 21
- Importing
- 22
- Development concerns
- 22.1
- Loading the latest development version
- 22.2
- Issue tracker and mailing list
- 22.3
- Nightly builds
- 23
- Automating Moose with AutoMoose
- 23.1
- Installation
- 23.2
- Integrating with Jenkins (Hudson)