Skip to content
Jens Schauder edited this page Sep 5, 2013 · 2 revisions

This page is deprecated and will go away. It got replaced by the official documentation of Degraph.

Degraph abstracts over some things which most of the time don't get abstract over. Therefore I had to come up with some names. This of course is somewhat confusing for people until they understand these name, so this page is here to help.

Node

A node is something displayed as a box by yed. It might represent a class, package or the intersection of slices of different slice type.

Simple Node

A simple node is a node that doesn't have any further substructure. Currently simple nodes represent classes, but one day there might be simple nodes representing a bean in a spring configuration or similar things.

Complex Node

A Complex Node is one which has content. There are two kinds of complex nodes: Slice Nodes (see below) and nodes representing classes with inner classes.

Slice

A slice is a collection of simple nodes. A slice has a slice type. All the classes in the package 'de.schauderhaft.degraph' might be a slice, with the slice type 'package'. All the classes in the package or subpackages of 'org.apache' might be part of the slice 'apache' of type 'lib'. What slices exist depends on the slicings defined in the configuration file. Note: slices are not slice nodes these are different things although the difference is maybe a little hard to grasp. See below for details

Slice Type

A slice type is a categorization of slices. It can be considered the name of a slicing. All slices with the same type are disjunct, i.e. no simple node is in more than one slice of the same slice type.

Slicing

The way how all the simple nodes gets distributed into a set of slices which all have the same slice type. This is what you define in a configuration file with something like

lib {
    org.(*).**
    (*.*).**
}

This says: I define the slicing of type 'lib' such that everything starting with 'org.' ends up in the slice given by the second part of the package name. Everything else ends up in the slice given by the first two parts of the package name.

There is one implicit slicing: the one defined by packages.

Slice Node

a slice node is a node representing a set of slices with mutual distinct type. Ok, I think I need a break before I can explain that.