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 ?
- 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 :-)