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.
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: http://bark.nr.no/bark-update/stable/
- 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:
- Install the Graphical Editing Framework from the GEF update site
- Install a Subversion plugin for Eclipse, e.g., Subversive or Subclipse
- Check out https://bark.svn.sourceforge.net/svnroot/bark/trunk/bark-plugin/ as a project from Subversion
- Make Eclipse use a Java 5.0 compiler and runtime for the project
- 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.
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 com.foo.util.* must not depend upon packages in com.foo.services.*.
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.