News Column

Patent Issued for Augmented Design Structure Matrix Visualizations for Software System Analysis

August 21, 2014



By a News Reporter-Staff News Editor at Computer Weekly News -- According to news reporting originating from Alexandria, Virginia, by VerticalNews journalists, a patent by the inventor Wehrwein, Bradley (Princeton, NJ), filed on May 18, 2012, was published online on August 5, 2014.

The assignee for this patent, patent number 8799859, is Siemens Aktiengesellschaft (Munich, DE).

Reporters obtained the following quote from the background information supplied by the inventors: "Software systems of sufficient scale are inherently complex. No single visual representation of a software system provides enough information to support reasoning about all aspects of the system. For this reason, a software architecture is described using a set of views that are often created to address the needs of specific system users and to support each in reasoning about their specific concerns. For example, a developer (or maintainer) of a software system might be interested in the organization of the code into modules. In contrast, a performance engineer might be more interested in how the system processes information, or how elements of the system are assigned to various hardware components.

"Software visualizations, like software architecture views, are created to address the needs of specific, different users. In order to visualize a software system, one needs to first extract both the structure and relationship data from the development artifacts (source code). Even though many tools exist for this extraction, the information these tools tend to provide is voluminous and far too much to comprehend all at once. One purpose of software visualization, therefore, is to simplify the available information so as to convey enough information for the stated purpose without overwhelming the user with detail unrelated to the specified goals.

"Design structure matrices (DSMs) have long been used for visualizing and reasoning about the structure and relationships of software systems at the highest levels, and are well-suited for providing concise, unambiguous answers to a specific set of questions related to the understanding and analysis of a software system's structure (i.e., code entities) and relationships (i.e., dependencies). A DSM is a square matrix where a code entity of a given system is placed as a header of a row of the matrix, and also placed as a header of a column of the matrix. In typical representations, the row and column order of each code entity is the same such that the DSM content is mirrored across the upper-left to lower-right diagonal line, where self-dependencies (e.g., 'A' depending on 'A') appear along the diagonal of the matrix. Typically, the DSM is a binary matrix, where matrix cells contain either a 1 or a 0 (for example) to indicate a dependency of the code entity associated with the row on the code entity associated with the column.

"In the context of the present invention, DSMs have been found to exhibit several properties that make them suitable for application to software systems analysis. Firstly, unlike graphical representations, the DSM representation scales and can describe and depict the inward and outward relationships between an extremely large set of code entities within the grid of the matrix. Additionally, DSMs are suitable for displaying hierarchical structural data and containment relationships--a close match to the file system structure within which developers logically organize the code entities into systems and subsystems, and the class hierarchy structure of object-oriented software systems.

"DSMs are symmetric and, therefore, the order of elements along the axis can be changed without altering the representation semantics (as long as the same changes are made in the element ordering along each axis). For this purpose, as well as to aid in the analysis, algorithms have been developed to sort DSMs based on their dependency relationships (for example, from the highest to the lowest level of abstraction--in general, any specified ordering may be used). FIG. 1 illustrates a simple DSM, displaying a set of four elements A, B, C and D that have been sorted in this manner. Once sorted, violations in layering (dependency cycles) become directly visible as 'above the diagonal' dependencies. That is, from the logic structure perspective, the existence of 'above the diagonal' dependencies define a relationship from a lower level of abstraction upward to a high level, where this is counter to software engineering best practices. Referring to FIG. 1, the relationship between elements C and D is 'above' the diagonal and should be evaluated. The remaining relationships shown in FIG. 1 are properly 'downward'--from an element at a higher level of abstraction to an element at a lower level of abstraction.

"Many tools currently exist for creating DSM visualizations of software systems from source code. Most of these tools allow a user to navigate through source code by collapsing and expanding successive levels of detail to move up and down through the file system or class hierarchy, allowing for the inspection of various code entity properties. One such tool is disclosed in U.S. Pat. No. 7,512,929, entitled 'Apparatus and Method for Managing Design of a Software System Using Dependency Structure' and issued to N. Sangal et al. on Mar. 31, 2009. These various visualization tools are intended to provide complete contextual information about the displayed code entities (i.e., path and filename information), as well as detailed information about the number of inward and outward relationships and the existence of dependence between code entities--at least to the extent that the dependent entities are also directly present in the visualization.

"It is this last point, however, that highlights the limitation in current DSM visualization techniques. Since the current DSM visualization techniques provide complete contextual information for its contents, and a user's screen size is finite, relationships to code entities not appearing in the visualization may not be displayed, or they may be displayed as aggregated relationship groupings at higher levels of abstraction. Similarly, structural entities are often displayed as higher level aggregations. As a result, only partial system information is displayed in the current DSM visualization techniques and as such it is only useful for inspecting and reasoning about the detailed relationships of a limited subset of the system's code entities at a time.

"Thus, a need remains in the art for a way to utilize the DSM visualization technique that retains the detail required to fully define and analyze a specific software system, yet does not overwhelm the user (or the user's graphical capabilities) in the presentation of this detail."

In addition to obtaining background information on this patent, VerticalNews editors also obtained the inventor's summary information for this patent: "The need remaining in the prior art is addressed by the present invention, which relates to performing software system analysis within a computer system and, more particularly, to the use of an augmented design structure matrix (DSM) visualization tool and technique as part of a computer system for analyzing one or more aspects of a particular software system.

"In accordance with the present invention, a DSM visualization tool and technique has been developed that creates a view of a 'full' software system, based upon a selected focusing mechanism that is utilized to guide an evaluation process to those code entities most relevant to the specific task at hand. Additionally, the DSM visualization is configured so as to ensure that the most relevant contextual information is displayed across all levels of abstraction. The displayed information contains an identifier for each of the larger blocks included in the display, as well as the total number of dependencies between the various displayed blocks.

"The use of a focusing metric in accordance with the present invention allows for the desired 'full view' of a software system to be retained, while essentially filtering the type of information that is displayed to only show that which is relevant to a specific user (as defined by the focusing metric).

"The focusing metric may be an attribute of the source code itself, or any other useful parameter associated with the creation of the software system. Indeed, any quantifiable measure associated with the software system may be used as the focusing metric. For example, a focusing metric may be the total number of low level entities contained within a higher level entity, or a history of how many revisions have been created for each code entity, or virtually any measure of the system.

"In a preferred embodiment of the present invention, the visualization tool retains the ability to 'zoom' into lower levels of description of the system and update the 'view' to show details within lower levels. That is, while the 'full' view is the initial display, should a user want to further investigate smaller blocks in the display (for example, to determine the identifiers for blocks too small to include this in the original view), by virtue of retaining all of the information, any portion of the full visualization may be enlarged and studied in detail.

"In one embodiment, the present invention is defined as a method for visually displaying relationships between code entities forming a software system comprising the steps of: defining a plurality of code entities forming the software system; determining and storing all relationships between various pairs of code entities forming the plurality of code entities; selecting a metric to be used in evaluating the software system; creating a design structure matrix visualization of the software system, using the selected metric as the definition of the coordinates of the matrix and displaying code entities as squares of size relative to the selected metric and arranged along a diagonal of the matrix according to a specified ordering (for example, from highest to lowest level of abstraction), with sub-entities of appropriate size displayed within their associated higher-level code entities, the design structure matrix being a symmetric square matrix with downward relationships from higher to lower code entities displayed below the diagonal and upward relationships displayed above the diagonal; determining aggregated values of relationships between pairs of code entities displayed in the design structure matrix visualization and displaying the aggregated values within the intersections between the pairs of appropriate code entities.

"In another embodiment, a system is provided for creating a visual display of relationships between code entities forming a software system as a function of a user-defined focusing metric, the system including means for identifying and storing all relationships between various pairs of the code entities forming the software system, means for creating a design structure matrix visualization of the software system, using the focusing metric as the definition of the coordinates of the matrix and displaying code entities as squares of size relative to the selected metric and arranged along a diagonal of the matrix according to a specified ordering, with sub-entities of appropriate size displayed within their associated higher-level code entities, the design structure matrix being a symmetric square matrix with downward relationships from higher to lower code entities displayed below the diagonal and upward relationships displayed above the diagonal, and means for determining aggregated values of relationships between pairs of code entities displayed in the design structure matrix visualization and displaying the aggregated values within the intersections between the pairs of appropriate code entities.

"Moreover, while the augmented DSM visualization technique of the present invention is described below in the analysis of a software system, it is contemplated that the same techniques can be used to view and analyze any system that contains a large number of inter-related elements, particularly a system that can be diagrammed as a tree structure comprising a large plurality of branches at various levels and a set of relationships between the leaf nodes at the lowest level of the tree structure.

"Indeed, in this larger context of the present invention, an embodiment can be defined as disclosing a method for visually displaying relationships between entities forming a system, the system being of a hierarchical tree structure and including relationships between the lowest-level leaf node entities of the structure and comprising the steps of: defining a plurality of entities forming the system; determining and storing all relationships between various pairs of entities forming the plurality of entities; selecting a metric to be used in evaluating the system; creating a design structure matrix visualization of the system, using the selected metric as the coordinates of the matrix and displaying code entities as squares of size relative to the selected metric and arranged along a diagonal of the matrix according to a specified ordering, with sub-entities of appropriate size displayed within their associated higher-level code entities, the design structure matrix being a symmetric square matrix with downward relationships from higher to lower code entities displayed below the diagonal and upward relationships displayed above the diagonal; determining aggregated values of relationships between pairs of entities displayed in the design structure matrix visualization and displaying the aggregated values within the intersections between the pairs of appropriate entities. Similar apparatus for performing this method is also contemplated as being an embodiment of the present invention.

"Thus, various other modifications and implementations are considered to fall within the spirit and scope of the present invention as will be discussed in detail hereinbelow."

For more information, see this patent: Wehrwein, Bradley. Augmented Design Structure Matrix Visualizations for Software System Analysis. U.S. Patent Number 8799859, filed May 18, 2012, and published online on August 5, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8799859.PN.&OS=PN/8799859RS=PN/8799859

Keywords for this news article include: Software, Siemens Aktiengesellschaft.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Computer Weekly News


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters