UML Diagrams
and other design
abstractions

High Level Abstractions

Imagix Corp

  

The scope of a typical software system is one of the key barriers preventing the thorough and accurate understanding necessary for effective enhancement and maintenance of the software. Even standard visualization approaches such as call graphs quickly present an overwhelming amount of data when attempting to depict a significant amount of the system.

As you start to analyze such a system, you often want to begin with a high level understanding of the overall structure and design of the system. Often, you'll then delve into lower level details once you have bounded the problem at hand. And at other times, the scope of the problem requires that you continue to work from the higher level view.

Imagix 4D provides a number of abstraction mechanisms to help you study the high level architecture of your software. These include the Graph windows's UML Diagram modes. The Unified Modeling Language has overwhelmingly become the method of choice for forward engineering of object-oriented systems. Imagix 4D applies this notation to represent the inherent design in existing software.


Home
About Imagix
Products
Overview
Visualization
UML Diagrams
Control Flow
Metrics
Quality Checks
HTML Docs
View Sample
Support
Downloads
Related Sites

reverse engineered uml class diagram UML Class Diagrams -- Within the Unified Modeling Language notation, class diagrams are the primary representation of the static design of a system. In Imagix 4D's Graph windows, UML Class Diagram mode applies this representation to help you understand the interfaces, collaborations and relationships of your existing software.

You're able to start by viewing simple as-built UML class diagrams, showing just the classes, their members, and the class hierarchy. Then, as you delve deeped into your design, you can leverage the comprehensive information that Imagix 4D has collected about your software, adding in relevent detailed member-level relationships (associations) to achieve an accurate, comprehensive understanding of complex object-oriented systems.

reverse engineered uml file diagram UML File Diagrams -- The same UML Diagram format is also available for displaying package / member information at the file level. You can again start simply, and add in detail to analyze the packaging of program elements into files, the physical location of the files, and the build dependencies. You're able to apply your resulting understanding to improve the file packaging and use of #include directives in order to improve build times, repartition code responsibilities, and enable reuse.
file browser panel Built-In Abstractions -- Imagix 4D has a number of other mechanisms to address the problem of scope. One of these involves abstracting member to member relationships to the members' containers. For example, if classA::methodA calls classB::methodB, you're able to view a higher level graph where classA is shown as calling classB. You thereby can avoid becoming deluged in the details of the design.

Another useful mechanism is Imagix 4D's grouping function. In the Graph window, you can collapse a set of symbols together, while viewing information about the set's external relationships to the rest of your software. This is useful for examining your software as a number of sub-systems, or for analyzing alternatives for encapsulating your existing software into an object-oriented approach.