Boost logo

Boost :

Subject: [boost] Architecture Analysis of the boost libraries, e.g. spirit
From: Bernhard Merkle (bernhard.merkle_at_[hidden])
Date: 2009-02-18 16:28:19

Hi boost developers,

I have a question regarding the architecture of boost libraries.

First some (short) background info: I have done some architectural analysis
in the past for C++, C and Java projects.
It is a static toolbased analysis approach and essentially it enables you to
compare the "should"-architecture with the "is"-architecture.
Nearly all projects suffer from some architectural decay over time (e.g.
unwanted dependencies etc.)
So I was interested how well those tools for architectural analysis cope
with C++ template code and boost is an ideal candidate. :-)

I have already successfully analyzed the boost spirit library. The
architecture for spirit is documented under
and if that is still the "should"-architecture then i was already able to
find some deviations/violations in the "is"-architecture.
So my question: should all modules of Core (scanner, primitives, composite,
non_terminal) be independent of each other ?

other questions:

- are there architectural documents for the other libraries ?

- which would be good candidates from your point of view ?
(I think e.g. analyzing dependencies to the mpl libs is interesting)

- is there a common rule which parts are public and which are private ?
(I saw some impl directories but am a bit unsure about the API stuff)

- is there a document describing the dependencies between the different libs
(the "should" architecture).
(I know of the bcp tool but this documents the "is"architecture essentially)

sorry for the long post, but I think this is really interesting stuff and I
am open to contribute in the architectural area :-)

kind regards,

Boost list run by bdawes at, gregod at, cpdaniel at, john at