Technical Manual

Global State GUI Window2D Polygon Drawing Window3D MeshObject (UPDATED FOR 2000) MeshOptions (NEW FOR 2000) VoxData

Module Cohesion and Coupling

Testing and Planning

Design Analysis

Module Cohesion and Coupling

 

Intramodule Cohesion

  • VoxelData This class is functionally cohesive. It's responsibility is the storage of the volumetric data set, which is stored as voxels. It's tasks include reading in and writing out data, storing information about voxels that have been segmented, and keeping track of any color labels that have been applied to the data set.
  • GlobalState This class has aspects of both functional and sequential cohesion. Its overall purpose is to store information which is common to other classes, giving it functional cohesion; but it is only useful for providing input for functions in other classes, giving it sequential cohesion.
  • GUI This class is sequentially cohesive. Output from the GUI's callback functions is redirected to be input for the functions that actually change the state of the program, whether it's a change of modes or a change in what's displayed in any of the windows.
  • Window2D This class is functionally cohesive. It's purpose is to manage a single window in which a two dimensional slice of a 3D voxel data set is displayed. Segmentation of the 3D object takes place in any of the three 2D windows in this program.
  • Window3D This class is functionally cohesive. It's purpose is to manage a single window in which a three dimensional object is displayed. For the purpose of this program, the object displayed is the segmentation that has occurred within the two dimensional windows.
  • PolygonDrawing This class is functionally cohesive in that it has the primary purpose of storing the vertices of a polygon which is being drawn, but it is sequentially cohesive in that its output serves as input for drawing to the 2D windows.
  • MeshObject This class is functionally cohesive in that its purpose is to manage a MeshObject which represents a 3D segmentation as a mesh composed of triangles, but like the PolygonDrawing class, it is sequentially cohesive in that its output serves as input for drawing to the 3D window.
  • MeshOptions This class is functionally cohesive in that its purpose is to keep track of the parameters for the various stages of the VTK pipeline for 3D rendering.

 

Intermodular Coupling

  • VoxelData This class is commonly coupled with every other class with the exception of the GlobalState class. This is due to the need for the same voxel data set to be accessible by all the other classes.
  • GlobalState This class is commonly coupled with every other class with the exception of theVoxelData class. This is due to the need for the same set of program parameters to be accessible by all the other classes.
  • GUI This class is data coupled with the Window2D class and Window3D class. It controls whether or not certain buttons and functions are active within these classes, as well as telling these windows to when to update.
  • Window2D This class is data coupled with the PolygonDrawing class. It queries the PolygonDrawing class for information about the polygon currently being stored
  • Window3D This class is data coupled with the MeshObject class and VoxelData Class.
  • PolygonDrawing see above
  • MeshObject see above
  • MeshOptions This class is commonly coupled with the GlobalState class, the GUI class, and the MeshObject class because the parameters for the VTK pipeline are global, they are changed by the GUI, and they are used by MeshObject and GUI.

The main reason for much of the common coupling in our design is that Fluid (the tool we used to build our GUI) requires global data.

 

Main

Users Manual
Technical Manual
Source Code
Download
Contact