BTV Toolkit

We have developed a toolkit to aid in understanding software manufacture. The tool severs several purposes. It collects build-time information related to system manufacture using gnu make; to aggregate BTV elements recursively to form any level of abstraction; and to aid in exploring and visualizing BTV.

Its architecture is shown in the following figure.

Figure BTV Toolkit Architecture

  1. A build time facts extractor
  2. The basic idea about the fact extractor is to modify build tools and make them collect information during build time. Currently, BTV fact extractor only support to extract build time facts from system manufacture using gnu make.

  3. An analyzer engine
  4. Analyzer is composed of a set of programs. It is responsible for three main tasks. First, it constructs BTVs from the collected build time facts. Second, it does isolating, lifting and comparing operation on BTVs. Finally, it provides supports for visualization of BTVs, including data format transformation and relation calculation.

  5. A repository
  6. The repository is built on PostgreSQL. All the collected information by fact extractors is stored in the repository.

  7. A browsing tool
  8. BTV browser provides an interactive GUI environment to explore and visualize BTV. It is built on AT&T's graphviz package, an open source graph drawing software. Currently, BTV browser supports two kinds of view: normal view and comparison view. A normal view represents one SMG and a comparison view represent the comparing result of two BTVs.