Component Connectivity Example

Consider the figure below, which illustrates a set of system components and their interconnections. The components include COBOL programs (.cbl), databases (.rdb, .hdb), temporary files (, and JCL files (.jcl). The highlighted pseudo-code fragments provide the information showing how one component is related to another. For example, the file P1013.cbl contains declarations of X2 and CURRENCY and then contains a call that writes these values to a database identified as DB2.hdb (depicted as a black arrow from the P1013.cbl program node and and the DB2.hdb database node.

Relations are collected as factual evidence (e.g., the evidence in the set of named components provably indicates the fact) or as heuristic evidence. The arc from P1391.cbl to P0791.cbl illustrates one heuristic inference that could conceivably be drawn (although the relationship is too tenuous for the connectivity tool to justify). Here, no concrete relationship between the WRITE in P1391.cbl and the READ in P0791.cbl can be known because the data file that stages these reads and writes is not apparent. However, the matching types in the related data declarations and the unknown aspects of the files that are written and read suggests that such a relationship cannot be completely ruled out.

After running the COBOL and JCL scanners over this system, the Component Connectivity Tool produces a report whose top page is an index into more detailed reports of each of the related components. You can browse these reports to see how they relate to the system diagram with which we introduced this discussion.

An IBM RDZ Eclipse plugin is available that can show the component connectivity graphically. The example below captures the information from the conceptual diagram above. It is worth remembering that real systems to which this is applied have tens of thousands of components, so you really don't want to see the entire graph at once.

For more information:    Follow us at Twitter: @SemanticDesigns