From Rse

Jump to: navigation, search

Bark is a software developer's design watchdog. It is an Eclipse plugin that analyzes your system as you develop it and helps you to remain faithful to your design or to evolve it in a controlled manner.

Bark is a tool for analysing the structural properties of Java software systems under development. It is aimed at software developers working on medium-sized and large Java projects. The goal of Bark is to help developers and project managers to maintain an overview of their system as they build it. Bark is realised as plugin for Eclipse.



Bark analyses bytecode (class files or JAR files) and shows the relationships between classes and packages in a diagram or model. It allows the user to:

  • Make irrelevant parts of the model invisible
  • Declare dependencies between parts illegal (to indicate unsound design)
  • Modify layout of the model
  • Group related packages into modules to get a more abstract model
  • Save and load models


Screenshot of Bark showing the package structure of JUnit 3.8.2.


Example of Bark in action

See separate page where we show how to dissect Apache Ant using Bark.

Getting Bark

Bark is open source software, released under the Eclipse Public Licence version 1.0. There is also a SourceForge project site for further information about Bark.

Bark may be obtained from two sources.

From the Bark Update Site

This is the most conventient and reliable option: it uses a stable version of Bark and loads a ready-made binary plugin directly into Eclipse.

  • The update site works with Eclipse 3.1 and 3.2.
  • Point your Eclipse to the Bark Update Site:
  • You may need to make Eclipse use a Java 1.5.x runtime environment (VM)

From the Bark Subversion repository

Building Bark from source is strictly for intrepid hackers who want to live on the bleeding edge of Bark development. Do as follows:

  1. Install the Graphical Editing Framework from the GEF update site
  2. Install a Subversion plugin for Eclipse, e.g., Subversive or Subclipse
  3. Check out as a project from Subversion
  4. Make Eclipse use a Java 5.0 compiler and runtime for the project
  5. Install the ANLTR 3 Eclipse plugin from the JavaDude update site. Make sure that the Bark project has ANTLR nature enabled.

If you get the build error "The project cannot be built until build path errors are resolved" try to do a Clean (on the Project menu) to succeed in compiling Bark.

Status and future directions

Stable release 0.1.0 (July, 2006): First public release. Basic support for creating and saving models.

Feature for inclusion in future versions of Bark: Support for using a model to monitor a system as it evolves, with emphasis on indicating violations of pre-defined design principles.

Technical description

The Bark plugin parses Java bytecode and builds a model of all dependencies between classes and packages/package hierarchies. It also allows the user to group packages/hierarchies into larger entities called "modules" to indicate design relatedness. Users may also mark dependencies between entities as illegal, e.g., to represent the design decision that packages in hierarchy* must not depend upon packages in*.

Bark is realised as an Eclipse Editor. This editor depicts the model graphically using SWT and related libraries and it allows the user to edit the model's properties, including its geometry. Models may be persisted as XML (currently using JDO).


For more information contact Bjarte M. Østvold.

Personal tools