Class diagrams

Zoltan Padrah edited this page Aug 25, 2012 · 1 revision
Clone this wiki locally

The following class diagrams were created by using Bouml.

In order to recreate the diagrams, create e new project in Bouml, select from the menu Languages -> C++ Management and default declaration. Then enter Tools -> Reverse C++, and select the ktechlab source directory. After that create new class diagrams and place there the classes of interest.

ktechlab, document, documentifaces, views, viewifaces

Here are 4 class categories:

  • Document
  • DocumentIface
  • View
  • ViewIface

From each category there are 5 levels of abstraction:

  • Document
  • TextDocument
  • ItemDocument
    • ICNDocument
      • FlowICNDocument
        • FlowCodeDocument
      • CircuitDocument
        • CircuitICNDocument

Circuit: circuitdocument, *node, connector,*item, component, element


  • an Item knows about ItemDocument
  • CNItem about ICNDocument
  • Component about CircuitDocument
A Connector connects two Nodes. There are separate connectors for circuits and for flow documents. ECNode is split into JunctionNode and PinNode.

And Mediawiki doesn't like == in template arguments.

Flowdocument: FlowPart, FPNode, FlowCodeDocument, FlowCode

This diagram is similar to the circuitdocument; the separation of abstraction levels is better. The product of this class structure is the FlowCode; the FlowPart class has a generateMicrobe virtual member.