IP Library Granted Patent US 8,065,658
Granted Patent B1
US 8,065,658 · App. 11/890,927 · Granted Nov 22, 2011

Tool for visualizing software architecture

Assignee: Network Appliance, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,065,658
App. No.
11/890,927
Granted
Nov 22, 2011
Kind
B1
Abstract

An automated tool for partitioning the source code of a software system at heuristic architectural boundaries identified by a bug-reporting process, and for representing the architecture of the software system as a set of visual attributes without constraining the representation to any particular predefined architectural style. The attributes are visualized applying multi-dimensional mapping techniques to software components to generate visual maps of the relationships and interactions among software components that cannot be easily understood or assimilated in a non-graphical form.

Claims (37)

1. A method, comprising:

automatically partitioning software source code into a plurality of software components at architectural boundaries defined by a software tool;

extracting attribute information from the plurality of software components indicative of a plurality of connections among the plurality of software components; and

generating a visual representation indicative of architectural attributes of the plurality of software components, the visual representation corresponding to a data-feature mapping between the attribute information and visual features of the visual representation, wherein generating the visual representation comprises:

generating a plurality of glyphs, wherein each glyph includes visual features representing the architectural attributes of one of the plurality of software components, and wherein a range of displayable values of each visual feature corresponds to a range of scalar values of a corresponding architectural attribute, and

positioning each glyph on a graphic display, wherein a displayed distance between one glyph and another glyph is indicative of an observed level of connection between the one glyph and said another glyph.

2. The method of claim 1 , wherein the software source code comprises a plurality of lines of code, and wherein partitioning the software source code into the plurality of software components comprises associating each line of code with a software type and a software subtype defined by the software tool.

3. The method of claim 2 , wherein the plurality of connections comprises direct procedure calls and accesses to global variables in the plurality of lines of code.

4. The method of claim 1 , wherein

the graphic display is a two-dimensional (2D) graphic display.

5. A system, comprising:

a processing device coupled with a data storage device and a display device, wherein the data storage device is configured to hold a representation of software source code, and wherein the processing device is configured to:

automatically partition the software source code into a plurality of software components at architectural boundaries defined by a software tool;

extract attribute information from the plurality of software components indicative of a plurality of connections among the plurality of software components; and

generate a visual representation in the display device indicative of architectural attributes of the plurality of software components, the visual representation corresponding to a data-feature mapping between the attribute information and visual features of the visual representation;

generate a plurality of glyphs, wherein each glyph includes visual features representing the architectural attributes of one of the plurality of software components, and wherein a range of displayable values of each visual feature corresponds to a range of scalar values of a corresponding architectural attribute; and

position each glyph on a graphic display, wherein a displayed distance between one glyph and another glyph is indicative of an observed level of connection between the one glyph and said another glyph.

6. The system of claim 5 , wherein the software source code comprises a plurality of lines of code, and wherein to partition the software source code into the plurality of software components, the processing device is configured to associate each line of code with a software type and a software subtype defined by the software tool.

7. The system of claim 5 , wherein the plurality of connections comprises direct procedure calls and accesses to global variables in the plurality of lines of code.

8. The system of claim 5 , wherein the

graphic display is a two-dimensional (2D) graphic display.

9. A computer-program product, comprising a computer-readable medium including data that, when read by a computer, cause the computer to perform operations, comprising:

automatically partitioning software source code into a plurality of software components at architectural boundaries defined by a software tool;

extracting attribute information from the plurality of software components indicative of a plurality of connections among the plurality of software components; and

generating a visual representation indicative of architectural attributes of the plurality of software components, the visual representation corresponding to a data-feature mapping between the attribute information and visual features of the visual representation, wherein generating the visual representation comprises:

generating a plurality of glyphs, wherein each glyph includes visual features representing the architectural attributes of one of the plurality of software components, and wherein a range of displayable values of each visual feature corresponds to a range of scalar values of a corresponding architectural attribute, and

positioning each glyph within a graphic display, wherein a displayed distance between one glyph and another glyph is indicative of an observed level of connection between the one glyph and said another glyph.

10. The computer-program product of claim 9 , wherein the software source code comprises a plurality of lines of code, and wherein partitioning the software source code into the plurality of software components comprises associating each line of code with a software type and a software subtype defined by the software tool.

11. The computer-program product of claim 10 , wherein the plurality of connections comprises direct procedure calls and accesses to global variables in the plurality of lines of code.

12. The computer-program product of claim 9 , wherein

the graphic display is a two-dimensional (2D) graphic display.

13. A system, comprising:

means for automatically partitioning software source code into a plurality of software components at architectural boundaries defined by a software tool;

means for extracting attribute information from the plurality of software components indicative of a plurality of connections among the plurality of software components; and

means for generating a visual representation indicative of architectural attributes of the plurality of software components, the visual representation corresponding to a data-feature mapping between the attribute information and visual features of the visual representation, wherein the means for generating the visual representation comprise:

means for generating a plurality of glyphs, wherein each glyph includes visual features representing the architectural attributes of one of the plurality of software components, and wherein a range of displayable values of each visual feature corresponds to a range of scalar values of a corresponding architectural attribute, and

means for positioning each glyph within a graphic display, wherein a displayed distance between one glyph and another glyph is indicative of an observed level of connection between the one glyph and said another glyph.

Assignments (2)
CHANGE OF NAME Recorded Jan 27, 2025
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 070128/0524 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2007
From: BALI, NAVEEN; SAWANT, AMIT P.
To: NETWORK APPLIANCE, INC.
Reel/Frame 019727/0184 →