A design matrix structure visualization technique and tool for the study and analysis of systems, such as software systems, where the bounds of the matrix are defined by a selected focusing metric and entities forming the system are displayed in the matrix as blocks of size relative to their proportion of the selected focusing metric. Relationships between entities are illustrated by summing all relationships between individual elements forming each displayed entity. Where possible, an identifier defining the characteristic of a displayed block is also shown. Preferably, the technique and tool includes a “zoom” feature to allow a user to drill down and uncover details associated with smaller blocks as shown in the original view.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented method for visually displaying relationships between code entities forming a software system, the method 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, 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; identifying a subset of the code entities as large code entities based on the size of the squares displayed in the design structure matrix visualization exceeding a specific threshold; determining aggregated values of relationships between pairs of code entities displayed in the design structure matrix visualization, each aggregated value indicating a total number of relationships between a pair of code entities; and only for pairs of large code entities, displaying the aggregated values within the intersections between the pairs of appropriate code entities.
2. The computer-implemented method as defined in claim 1 wherein larger code entities within the design structure matrix each include an identifier defining that specific code entity.
3. The computer-implemented method as defined in claim 1 wherein the selected metric is computable from the source code of the software system.
4. The computer-implemented method as defined in claim 3 wherein the selected metric is defined as the number of lower-level code entities contained within a higher-level code entity.
5. The computer-implemented method as defined in claim 3 wherein the selected metric is defined as the cyclomatic complexity of the software system.
6. The computer-implemented method as defined in claim 1 wherein the selected metric is associated with software development lifecycle artifacts.
7. The computer-implemented method as defined in claim 6 wherein the selected metric is associated with the number of defects identified within each code entity.
8. The computer-implemented method as defined in claim 6 wherein the selected metric is associated with the technical debt of each code entity.
9. The computer-implemented method as defined in claim 1 , where the method further comprises the ability to zoom into selected regions of the matrix and create an enlarged view of a selected portion of the matrix so to display aggregated relationship information and code identity information not shown in the original visualization.
10. A system having a memory storing executable instructions 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 comprising: 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 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, 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; means for identifying a subset of the code entities as large code entities based on the size of the squares displayed in the design structure matrix visualization exceeding a specific threshold; determining aggregated values of relationships between pairs of code entities displayed in the design structure matrix visualization, each aggregated value indicating a total number of relationships between a pair of code entities; and, only for pairs of large code entities, displaying the aggregated values within the intersections between the pairs of appropriate code entities.
11. The system as defined in claim 10 wherein the means for creating a design structure matrix visualization further includes the capability to zoom in on code entities and display identification and relationship information hidden in the original display view.
12. A computer implemented method for visually displaying relationships between entities forming a system, the system being of a hierarchical tree-and-branch structure and including relationships between the lowest-level entities of the system, the method 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 definition of the coordinates of the matrix and displaying 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; identifying a subset of the entities as large entities based on the size of the squares displayed in the design structure matrix visualization exceeding a specific threshold; determining aggregated values of relationships between pairs of entities displayed in the design structure matrix visualization, each aggregated value indicating a total number of relationships between a pair of code entities; and only for pairs of large entities, displaying the aggregated values within the intersections between the pairs of appropriate entities.
13. Apparatus having a memory storing executable instructions for creating a visual display of relationships between entities forming a system as a function of a user-defined focusing metric, the system being of a hierarchical tree-and-branch structure and including relationships between the lowest-level entities of the system, the apparatus comprising: means for identifying and storing all relationships between various pairs of the entities forming the system; means for creating a design structure matrix visualization of the system, using the selected metric as the definition of the coordinates of the matrix and displaying c-oge 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; means for identifying a subset of the entities as large entities based on the size of the squares displayed in the design structure matrix visualization exceeding a specific threshold; determining aggregated values of relationships between pairs of entities displayed in the design structure matrix visualization, each aggregated value indicating a total number of relationships between a pair of entities; and only for pairs of large entities, displaying the aggregated values within the intersections between the pairs of appropriate entities.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
May 18, 2012
August 5, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.