The present disclosure relates to data, and more specifically relates to the visualization of complex information using a set of navigable landmasses.
A product or solution lifecycle includes a number of phases, including initial concept, design and development, testing, support, quality, etc. Each of these phases contains a plethora of information about the specific product or solution that is present in numerous knowledge repositories. As such, it is often difficult to find and understand specific or related information about a product of solution, and the interactions and intra-actions between various lifecycle phases.
The present disclosure is directed to the visualization of complex information using a set of navigable landmasses, with specific information (e.g., source information for complex software code) associated with each landmass. Visualization of interactions between the elements of the data is also provided.
A first aspect of the present disclosure is directed to a method for generating a visualization of a programming code base using a set of navigable landmasses, comprising: representing each of a plurality of different code components using a respective landmass; adjusting a size of each landmass based on a number of lines of code in the code component corresponding to the landmass; and displaying the landmasses.
A second aspect of the present disclosure is directed to a system for generating a visualization of a programming code base using a set of navigable landmasses, comprising: a system for representing each of a plurality of different code components using a respective landmass; a system for adjusting a size of each landmass based on a number of lines of code in the code component corresponding to the landmass; and a system for displaying the landmasses.
A third aspect of the present disclosure is directed to a program product stored on a computer readable medium, which when executed, generates a visualization of a programming code base using a set of navigable landmasses, the computer readable medium comprising program code for: representing each of a plurality of different code components using a respective landmass; adjusting a size of each landmass based on a number of lines of code in the code component corresponding to the landmass; and displaying the landmasses.
A fourth aspect of the present disclosure is directed to a method for deploying an application for generating a visualization of a programming code base using a set of navigable landmasses, comprising: providing a computer infrastructure being operable to: represent each of a plurality of different code components using a respective landmass; adjust a size of each landmass based on a number of lines of code in the code component corresponding to the landmass; and display the landmasses.
A fifth aspect of the present disclosure includes a method for generating a visualization of a programming code base using a set of navigable landmasses, the method including: representing each of a plurality of different code components using a respective landmass; adjusting a size of each landmass based on a number of lines of code in the code component corresponding to the landmass; connecting a plurality of the landmasses using a number of interconnections, wherein the number of interconnections between each of the plurality of landmasses reflects a level of interconnectivity between the corresponding code components of the interconnected landmasses, and wherein a higher number of interconnections indicates a higher level of connectivity between the interconnected landmasses than a lower number of interconnections; and displaying the landmasses and the interconnections between the landmasses, wherein each landmass includes other landmasses displayed within each respective landmass, and wherein a size of each of the other landmasses displayed within each respective landmass is adjusted based on a number of lines of code in the code component corresponding to each of the other landmass.
A sixth aspect of the present disclosure includes a system for generating a visualization of a programming code base using a set of navigable landmasses, the system including a computer system having a processing unit and a memory, the computing system executing computer program code which, upon execution, causes the computing system to perform actions including: representing each of a plurality of different code components using a respective landmass; adjusting a size of each landmass based on a number of lines of code in the code component corresponding to the landmass; connecting a plurality of the landmasses using a number of interconnections, wherein the number of interconnections between each of the plurality of landmasses reflects a level of interconnectivity between the corresponding code components of the interconnected landmasses, and wherein a higher number of interconnections indicates a higher level of connectivity between the interconnected landmasses than a lower number of interconnections; and displaying the landmasses and the interconnections between the landmasses, wherein each landmass includes other landmasses displayed within each respective landmass, and wherein a size of each of the other landmasses displayed within each respective landmass is adjusted based on a number of lines of code in the code component corresponding to each of the other landmass.
A seventh aspect of the present disclosure includes a computer program product stored on a non-transitory computer readable medium, which when executed, generates a visualization of a programming code base using a set of navigable landmasses, the computer readable medium having program code for: representing each of a plurality of different code components using a respective landmass; adjusting a size of each landmass based on a number of lines of code in the code component corresponding to the landmass; connecting a plurality of the landmasses using a number of interconnections, wherein the number of interconnections reflects a level of interconnectivity between the corresponding code components of the interconnected landmasses, and wherein a higher number of interconnections indicates a higher level of connectivity between the interconnected landmasses than a lower number of interconnections; and displaying the landmasses and the interconnections between the landmasses, wherein each landmass includes other landmasses displayed within each respective landmass, and wherein a size of each of the other landmasses displayed within each respective landmass is adjusted based on a number of lines of code in the code component corresponding to each of the other landmass.
The illustrative aspects of the present disclosure are designed to solve the problems herein described and other problems not discussed.
These and other features of this disclosure will be more readily understood from the following detailed description of the various aspects of the disclosure taken in conjunction with the accompanying drawings.
The drawings are merely schematic representations, not intended to portray specific parameters of the disclosure. The drawings are intended to depict only typical embodiments of the disclosure, and therefore should not be considered as limiting the scope of the disclosure. In the drawings, like numbering represents like elements.
As detailed above, the present disclosure to the visualization of complex information using a set of navigable landmasses, with specific information (e.g., source information for complex software code) associated with each landmass. Visualization of interactions between the elements of the data is also provided.
The present disclosure can be used to visualize a large, complex programming code base. As depicted in
An illustrative example of a visualization 14 of a programming code base 12 in accordance with an embodiment of the present disclosure is depicted in
The code modification change rate of the code component associated with each landmass can be reflected by the depth of color of the landmasses. For example, a user can easily determine from
The interconnections 18 between the landmasses 16A-16C reflect the level of interconnectivity between the corresponding code components. This visualization also brings together disparate sources of data: problem reporting sources, design databases, test case repositories, original anecdote repositories from developers, architects, testers and people who have worked on the code components through time, etc., and links these sources to the pertinent landmass. In
Another visualization feature of the present disclosure is the use of real time flow or trace data to see thread level activity among the code components and the resources the active threads share and use. This can be achieved, for example, by dynamically varying the color, thickness, darkness, or type of line (e.g., dashed) used to represent an interconnection 18 between landmasses 16, based on thread level activity. Other techniques, such as animation, etc., can also be used. An example of this is depicted in
The present disclosure can also be used to visualize assurance enablement. Consider, for example, a repository of federated information about the lifecycle of a product or a solution. This can include, for example, information about development, test (e.g., unit test, Function Verification Testing (FVT), System Verification Testing (SVT), integration, performance etc., test scripts and owners for each phase, etc.), support (e.g., known issues and associated resolution), and the like. The present disclosure takes information about the various lifecycle phases and provides visualization of the offering.
For example, as depicted in
The characteristics of the solution or product can be reflected in the landmasses, in a manner similar to that discussed above with regard to
Another visualization feature of the present disclosure is the ability to leverage information across phases (e.g., test, development, support, etc.) to see activity among the components of a solution, and the resources they share in resolving an issue or improve the offering's design.
The computer system 104 is shown as including a processing unit 108, a memory 110, at least one input/output (I/O) interface 114, and a bus 112. Further, the computer system 104 is shown in communication with at least one external device 116 and a storage system 118. In general, the processing unit 108 executes computer program code, such as a visualization system 130, that is stored in memory 110 and/or storage system 118. While executing computer program code, the processing unit 108 can read and/or write data from/to the memory 110, storage system 118, and/or I/O interface(s) 114. Bus 112 provides a communication link between each of the components in the computer system 104. The external device(s) 116 can comprise any device (e.g., display 120) that enables a user to interact with the computer system 104 or any device that enables the computer system 104 to communicate with one or more other computer systems.
The visualization system 130 is configured to implement any/all embodiments of the of the present disclosure, as detailed above. For example, the visualization system 130 can comprise a data system 132 for obtaining data to be visualized, a generating system 134 for generating a visualization 136 of the data based on user specified and/or predefined criteria, and a display system 138 for displaying the visualization 136 to a user 140.
The computer system 104 can comprise any general purpose computing article of manufacture capable of executing computer program code installed by a user (e.g., a personal computer, server, handheld device, etc.). However, it is understood that the computer system 104 is only representative of various possible computer systems that may perform the various processes of the disclosure. To this extent, in other embodiments, the computer system 104 can comprise any specific purpose computing article of manufacture comprising hardware and/or computer program code for performing specific functions, any computing article of manufacture that comprises a combination of specific purpose and general purpose hardware/software, or the like. In each case, the program code and hardware can be created using standard programming and engineering techniques, respectively.
Similarly, the computer infrastructure 102 is only illustrative of various types of computer infrastructures that can be used to implement the present disclosure. For example, in an embodiment, the computer infrastructure 102 comprises two or more computer systems (e.g., a server cluster) that communicate over any type of wired and/or wireless communications link, such as a network, a shared memory, or the like, to perform the various processes of the disclosure. When the communications link comprises a network, the network can comprise any combination of one or more types of networks (e.g., the Internet, a wide area network, a local area network, a virtual private network, etc.). Regardless, communications between the computer systems may utilize any combination of various types of transmission techniques.
It is understood that some of the various systems shown in
It is understood that the disclosure further provides various alternative embodiments. For example, in an embodiment, the disclosure provides a computer-readable medium that includes computer program code to enable a computer infrastructure to carry out and/or implement the various processes of the present disclosure. It is understood that the term “computer-readable medium” comprises one or more of any type of physical embodiment of the program code. In particular, the computer-readable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), on one or more data storage portions of a computer system, such as the memory 110 and/or storage system 118 (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.), and/or as a data signal traveling over a network (e.g., during a wired/wireless electronic distribution of the program code).
In another embodiment, the disclosure provides a business method that performs the processes of the disclosure on a subscription, advertising, and/or fee basis. A service provider can create, maintain, support, etc., a computer infrastructure, such as the computer infrastructure 102, that performs the processes of the disclosure for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising space to one or more third parties.
In still another embodiment, a computer infrastructure, such as the computer infrastructure 102, can be obtained (e.g., created, maintained, having made available to, etc.) and one or more systems for performing the processes of the disclosure can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, the deployment of each system can comprise one or more of (1) installing program code on a computer system, such as the computer system 104, from a computer-readable medium; (2) adding one or more computer systems to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure, to enable the computer infrastructure to perform the processes of the disclosure.
As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computer system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and (b) reproduction in a different material form. The program code can be embodied as one or more types of program products, such as an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like.
The foregoing description of the preferred embodiments of this disclosure has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed, and obviously, many modifications and variations are possible.
Number | Date | Country | |
---|---|---|---|
Parent | 13828998 | Mar 2013 | US |
Child | 14876186 | US | |
Parent | 11747058 | May 2007 | US |
Child | 13828998 | US |