Sotograph Product Family
Sotoarc comes as a complementary tool with Sotograph and is a software analysis tool for software architects, technical project leaders and quality experts. It helps them to:
- Visualize and understand the static structure of a software system,
- Model the intended architecture for the software system,
- Perform an architecture conformance check and detect where the implemented code does not correspond to the intended architecture,
- Simulate potential restructurings of a software system and investigate their effects.
Sotoarc analyzes ABAP/ABAPObjects, Typescript, PHP, C/C++, C# and Java code.
Visualization of Structures and Relationships
Sotoarc's sophisticated usage paradigm and a new graphical user interface result in a minimal learning curve. Its innovative concept to visualize software systems provides intuitive high-level views of software systems and flexible mechanisms to drill down to the source code. The integrated focusing technology makes it possible to visually investigate detailed aspects of large and complex software systems. This is also the case for software systems with many millions of lines of source code.
Sotoarc visualizes the structure of a software system on flexibly selectable abstraction levels. This gives an architect the opportunity to quickly gain an overview of the top-level structure as well as to investigate the underlying structures and dependencies.
Sotoarc operates on models of the source code (code models). These are extracted by a parser and stored into an integrated database. A code model is an abstraction of the corresponding software system. It is structured into files and logical packages which are cross-linked by their syntactical dependencies. Logical packages are automatically generated from Java packages, C# namespaces or directories.
Sotoarc makes it possible to flexibly modify the displayed abstraction level by zooming in and out of the code model tree. This enables the architect to investigate very large software systems on different abstraction levels without ever losing the context of the overall structure. While browsing with Sotoarc, it is always possible to drill down to the source code at the base of the visual abstraction.
Sotoarc's focusing technology provides the means to avoid getting lost in a flood of information by zooming in to more detailed abstraction levels. It is possible to group structures that are far apart in the code model into a local context. This is a prerequisite for investigating aspects of the code model in detail. For example, it is possible to set a focus and display only those files which are involved in an architecture violation between two layers.
Architecture Modeling with Drag & Drop
Sotoarc's graphical drag & drop based architecture modeling approach provides a simple but powerful means for the efficient modeling of software architectures. Complex architectures can be expressed by partitioning a software system on different levels of abstraction, into nested modules and layers, and by defining interfaces to these modules.
Checking for Architecture Conformance
Sotoarc determines where the source code does not correspond to the designed architecture for the entire software system and then provides visualizations of the architecture violations using graphs.
From the very beginning of the architecture model definition process, the evolving model is checked continuously against the implemented code. Illegal dependencies are shown in red. The architecture violations are immediately updated after every modification of the architecture model. Architecture violations can be investigated by zooming through the abstraction levels down to the source code causing the problem.
Sotograph, a separate tool, makes it possible to compare the architecture violations of different versions of the software system. The user can identify new and removed architecture violations and explore long-term trends. The Sotoweb and Sotoreport add-on tools provide further means to visualize and investigate trend related information.
Sotoarc allows architects to plan and simulate restructurings on the code level. It is possible to restructure a code model with direct manipulation in the Sotoarc GUI and to immediately investigate the architectural consequences of the restructurings.
By restructuring the logical package tree and moving files, it is often possible to eliminate a large part of the detected architecture violations. With Sotoarc the user can simulate these modifications and review their effects before they are carried out on the source code. Different scenarios can be played out with only minimal effort.
Restructuring operations include moving packages and files, creating new packages, and deleting packages and files. A typical example is moving a file that has been implemented in the wrong package and hence causes architecture violations. The list of virtual restructurings can be used as refactoring plan at a later point in time.
Virtual restructuring is also very useful for planning reengineering efforts. Sotoarc provides extensive information about the current state of a software system and makes it possible to specify the target architecture. The intended restructurings can be simulated and their effects on structure and quality can be investigated.