Sequence DiagramsA sequence diagram shows interactions between objects in temporal order. It displays the objects involved in a system, indicating how and in what order the objects function. When forward engineering a software system, there are three areas where sequence diagrams are often applied. They are used to show details of use case diagrams, to model how messages and tasks move between components in a system, and to visualize the logic behind a sophisticated function, operation or procedure. This third use is also valuable when reverse engineering an existing software system, in order to display aspects of control flow for the software. Imagix 4D generates sequence diagrams to aid in understanding and analysis of existing source code, by extending control flow analysis of the interactions between functions and variables beyond what can be depicted in and understood from standard call trees.
From its database containing comprehensive control and data flow information about the software being studied, Imagix 4D creates sequence diagrams to provide greater insight into the order of function calls and variable usage than exists in standard call trees. To this traditional sequence information, Imagix 4D adds a second critical component of advanced analysis -- indication of the conditionality controlling the object interactions. Many function calls or variable sets and reads only occur when specific conditions are met; Imagix 4D sequence diagrams show this. In order to (1) provide this additional analytical insight and (2) at the same time support visualization of a wider scope of software in limited screen space, Imagix 4D sequence diagrams differ from the standard UML sequence diagram format.
Sequence InformationHere are a set of functions and variables displayed in a standard call tree graph on the left, and an equivalent sequence diagram on the right.
Conditionality InformationHere is a more complex sequence diagram, where the conditionality, as well as the sequence, of the function calls and variable usage is indicated.