# US 2008/0189308 A1 · Apparatus and Methods for Displaying and Determining Dependency Relationships Among Subsystems in a Computer Software System

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2008/0189308 A1
- Document ID: US20080189308A1
- Status: Published application
- Kind: A1
- Application number: 12/017,196
- Filed: 2008-01-21
- Published: 2008-08-07
- Earliest claimed: 2003-09-19
- Assignees: Lattix, Inc.
- Inventors: Neeraj Sangal; Francis A. Waldman; Carl D. Parisi; Stephen C. Brennan
- Web page: https://patentgrep.com/patent/US20080189308A1

## CPC

- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06F 8/20: Software design
- G06F 11/3604: Analysis of software for verifying properties of programs (testing of software G06F11/3668)
- G06Q 10/10: Office automation; Time management
- Y10S 707/968: Partitioning
- Y10S 707/97: Vertical partitioning
- Y10S 707/972: Partitioning
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A method is provided for managing, in a computer system, design of a database system having a set of schemata. The method includes, in a first computer process, extracting dependencies from the database system and identifying the set of schemata. The method further includes, for each specific schema in the set of schemata, creating in a second computer process a partition that, in turn, contains a further partition for each element of the specific schema, so as to establish a hierarchy of partitions in accordance with the structure of the set of schemata. The method also includes storing a representation of the database system including subsystems, dependency relationships among the subsystems, and the hierarchy of partitions. Finally, the method includes providing a graphical output from the computer system, based on the stored representation, in which appears a display of the subsystems in a hierarchy of partitions within a dependency structure matrix, such matrix graphically indicating the dependency relationships among subsystems. Related apparatus and computer products are also provided.

## Claims

### Claim 1

A method for managing, in a computer system, design of a database system, the database system having a set of schemata, the method comprising:
in a first computer process, extracting dependencies from the database system and identifying the set of schemata;
for each specific schema in the set of schemata, creating in a second computer process a partition that, in turn, contains a further partition for each element of the specific schema, so as to establish a hierarchy of partitions in accordance with the structure of the set of schemata;
storing a representation of the database system including subsystems, dependency relationships among the subsystems, and the hierarchy of partitions; and
providing a graphical output from the computer system, based on the stored representation, in which appears a display of the hierarchy of partitions within a dependency structure matrix, such matrix graphically indicating the dependency relationships among subsystems.

### Claim 2 (depends on 1)

A method according to claim 1, wherein creating the partition in the second computer process includes creating the partition for a database table, the partition for the database table containing partitions for columns of the database table and partitions for all indices of the database table.

### Claim 3 (depends on 1)

A method according to claim 1, wherein the hierarchy of partitions within the dependency structure matrix is selectively expandable and collapsible.

### Claim 4 (depends on 3)

A method according to claim 3, wherein, in an instance when a given parent subsystem has been expanded to show its hierarchical children, dependencies are shown for such hierarchical children but not for such parent subsystem.

### Claim 5 (depends on 4)

A method according to claim 4, where a relationship of such hierarchical children to such parent subsystem is shown by placing the parent subsystem sidewise alongside such children.

### Claim 6 (depends on 1)

A method according to claim 1, further comprising:
in response to a graphical user input that alters the hierarchy of partitions displayed in the dependency structure matrix, automatically altering the dependency relationships among the subsystems to be consistent therewith, and updating the stored representation of the subsystems and dependency relationships among the subsystems.

### Claim 7 (depends on 6)

A method according to claim 6, wherein the graphical user input includes moving a subsystem from one location to another, and automatically altering the dependency relationships includes operating in a manner so as to preserve dependencies of subsystems affected by the alteration.

### Claim 8 (depends on 6)

A method according to claim 6, wherein the graphical user input includes removing a subsystem, and automatically altering the dependency relationships includes operating in a manner so as to cause removal of dependencies of the removed subsystem.

### Claim 9 (depends on 6)

A method according to claim 6, wherein the graphical user input includes adding a subsystem, and automatically altering the dependency relationships includes operating in a manner so as to preserve the dependencies of the added subsystem.

### Claim 10 (depends on 1)

A method according to claim 1, wherein storing a representation of the database system includes causing elements, of the database system, that are public synonyms for other elements of the database system to be excluded from the stored representation.

### Claim 11 (depends on 1)

A method according to claim 1, wherein storing a representation of the database system includes causing an element, of the database system, that is a public synonym for other elements of the database system to be placed within a partition that represents a schema containing an element upon which that synonym depends.

### Claim 12 (depends on 1)

A method according to claim 1, wherein storing a representation of the database system includes causing an element, of the database system, that is a public synonym for other elements of the database system to be placed within a subsystem containing all public synonyms.

### Claim 13

A method for managing, in a computer system, design of a Spring Framework software system containing a set of configuration files, the method comprising:
in a first computer process, parsing the set of Spring Framework configuration files to produce a stored representation of the Spring Framework software system including subsystems and dependency relationships among the subsystems;
in a second computer process, for each specific Spring Framework configuration file of the set, creating a partition that, in turn, contains a further partition for each Spring Bean that is specified in such Spring Framework configuration file, so as to establish a hierarchy of partitions in accordance with the structure of the set of Spring Framework configuration files; and
providing a graphical output from the computer system, based on the stored representation, in which appears a display of the hierarchy of partitions within a dependency structure matrix, such matrix graphically indicating the dependency relationships among subsystems.

### Claim 14

A method for managing, in a computer system, design of a software system containing a plurality of domains, the method comprising:
in a first computer process, extracting atoms and dependencies from the software system for a first one of the domains and a second one of the domains;
in a second computer process, generating a hierarchy of partitions for each of the first and second domains based on the extracted atoms and dependencies;
in a third computer process, with respect to atoms associated with both the first and the second domains, merging partitions of the first and second domains into a merged partition containing such atoms;
storing a representation of the software system based on results of the first, second, and third computer processes; and
providing a graphical output, from the computer system, based on the stored representation of the software system, in which appears a display of the merged partition in a hierarchy within a dependency structure matrix, such matrix graphically indicating the dependency relationships in the merged partition.

### Claim 15 (depends on 14)

A method according to claim 14 wherein the first domain is a Spring Framework domain and the second domain is a Java domain.

### Claim 16

A method for displaying dependency relationships among subsystems of a software system, the method comprising:
in a first computer process, parsing the software system (i) to produce a stored representation of the software system including subsystems and dependency relationships among the subsystems and (ii) to provide a graphical output, from the computer system, based on the stored representation of the software system, in which appears a display of the subsystems in a hierarchy within a dependency structure matrix, such dependency structure matrix graphically indicating the dependency relationships among subsystems;
providing a user input, through a graphical interface, for marking, in the dependency structure matrix, at least one subsystem according to a proposed scheme;
in a third computer process, identifying related subsystems that are in a direct or indirect dependency relationship with the at least one marked subsystem to produce a modified stored representation including the related subsystems, the at least one marked subsystem, and dependency relationships among them; and
providing a graphical output, from the computer system, based on the modified stored representation, in which appears a display of the related subsystems and the at least one marked subsystem in a hierarchy within a modified dependency structure matrix, such modified matrix graphically indicating dependency relationships only among the related subsystems and the at least one marked subsystem.

### Claim 17 (depends on 16)

A method according to claim 16, wherein providing a user input, through a graphical interface for marking at least one subsystem according to a proposed scheme includes marking at least one subsystem associated with a specific property or metadata.

### Claim 18 (depends on 16)

A method according to claim 16, wherein identifying related subsystems includes identifying related subsystems that either use or are used by the at least one marked subsystem.

### Claim 19

An apparatus, implemented in a computer system, for managing design of a database system, the database system having a set of schemata, the apparatus comprising:
an input for receiving the database system to be managed;
a dependency extractor, coupled to the input, and a partitioner, coupled to the dependency extractor, the dependency extractor and the partitioner collectively querying the database system to produce a representation of the database system including atoms therein and dependency relationships among the atoms, according to a structure of the database system;
a system representation storage arrangement, coupled to the dependency extractor and the partitioner, that stores the representation of the database system;
a graphical interface that receives a user input of a new rule governing a dependency relationship among at least two specific atoms;
a design rules storage arrangement that stores design rules associated with the database system;
a rule engine, coupled to the system representation storage arrangement and to the design rules storage arrangement, that creates, modifies, and evaluates the design rules; and
a display output, such output coupled to the system representation storage arrangement and to the rule engine, that provides a graphical display of the stored representation of the database system and visual indication, in the graphical display, of atoms with respect to which the new rule has been applied;
wherein at least one of the graphical interface and the graphical display is in the form of a dependency structure matrix.

### Claim 20

An apparatus, implemented in a computer system, for managing design of a software system, the software system comprising subsystems from a plurality of domains, the apparatus comprising:
an input that receives the software system to be managed;
a first dependency extractor, coupled to the input, that extracts atoms and dependencies among the atoms, of a first subsystem in a first domain;
a second dependency extractor, coupled to the input, that extracts atoms and dependencies among the atoms, of a second subsystem in a second domain;
a partitioner, coupled to the first and the second dependency extractors, that creates partitions for each of the first and the second domains based on the respectively extracted atoms and dependencies,
a merge manager that merges the partitions for each of the first and second domains into merged partitions having atoms associated with both the first and the second domains,
wherein the dependency extractors, the partitioner, and the merge manager collectively produce a representation of the software system including the subsystems and dependency relationships among the subsystems and including the atoms and dependency relationships among the atoms;
a system representation storage arrangement, coupled to the dependency extractor, the partitioner, and the merge manager, the system representation storage arrangement storing the representation of the software system; and
a display output coupled to the system representation storage arrangement, such output configured to provide a graphical display, based on the representation of the software system stored in the system representation storage arrangement, of the subsystems in a hierarchy within a dependency structure matrix, the dependency structure matrix graphically indicating the dependency relationships among subsystems.

### Claim 21

A computer program product for use on a computer system for managing design of a database system, the database system having a set of schemata, the computer program product comprising a computer usable medium having computer readable program code thereon, which, when loaded into the computer system, establishes an apparatus, implemented in the computer system, the apparatus comprising:
an input for receiving a database system to be managed;
a dependency extractor, coupled to the input, and a partitioner, coupled to the dependency extractor, collectively querying the database system to produce a representation of the database system including the database elements and dependency relationship among the database elements, according to a structure of the database system;
a system representation storage arrangement, coupled to the partitioner and the dependency extractor, that stores the database system representation;
a graphical interface configured to receive a user input of a new rule governing a dependency relationship among at least two of the database elements;
a design rules storage arrangement that stores design rules associated with the database system;
a rule engine, coupled to the system representation storage arrangement and to the design rules storage arrangement, that creates, modifies, and evaluates the design rules; and
a display output, such output coupled to the system representation storage arrangement and to the rule engine, that is configured to provide a graphical display of the stored representation of the database system and visual indication, in the graphical display, of the database elements with respect to which the new rule has been applied;
wherein at least one of the graphical interface and the graphical display is in the form of a dependency structure matrix.

### Claim 22 (depends on 21)

A computer program product according to claim 21, wherein the display output is further configured to provide a display of the database elements in a hierarchy within the dependency structure matrix, the hierarchy being selectively expandable and collapsible and the dependency structure matrix graphically indicating dependency relationships among the database elements.

### Claim 23 (depends on 21)

A computer program product according to claim 21, wherein the graphical interface is further configured to receive the user input specifying elements, of the database, that are synonyms for other database elements to be excluded from the stored database system representation.

### Claim 24 (depends on 21)

A computer program product according to claim 21, wherein the graphical user interface is further configured to receive the user input causing an element, of the database, that is a synonym for other database elements, to be placed within a partition that represents a schema containing an element upon which that synonym depends.

### Claim 25 (depends on 21)

A computer program product according to claim 21, wherein the graphical interface is further configured to receive the user input causing an element, of the database, which is a public synonym for other database elements to be placed in a subsystem containing all public synonyms.

### Claim 26

A computer program product for use on a computer system for managing, in a computer system, design of a Spring Framework software system containing a set of configuration files, the computer program product comprising a computer usable medium having computer readable program code thereon, which, when loaded into the computer system, establishes an apparatus, implemented in the computer system, the apparatus comprising:
an input for receiving the Spring Framework software system to be managed;
a dependency extractor and a partitioner, collectively parsing the set of Spring Framework configuration files and creating partitions for each Spring Framework configuration file of the set and each Spring Bean specified in that Spring Framework configuration file to produce a representation of the Spring Framework software system including subsystems and dependency relationships among the subsystems;
a system representation storage arrangement, coupled to the partitioner and the dependency extractor, that stores the representation of the software system; and
a display output, coupled to the system representation storage arrangement, that provides a graphical display, based on the representation stored in the system representation storage arrangement, of the subsystems in a hierarchy of partitions within a dependency structure matrix, such matrix graphically indicating the dependency relationships among subsystems.

### Claim 27

A computer program product for use on a computer system for managing design of a software system which is comprised of subsystems from a plurality of domains, the computer program product comprising a computer usable medium having computer readable program code thereon, which, when loaded into the computer system, establishes an apparatus, implemented in the computer system, the apparatus comprising:
an input that receives the software system to be managed;
a first dependency extractor, coupled to the input, that extracts atoms and dependencies among the atoms, of a first subsystem in a first domain;
a second dependency extractor, coupled to the input, that extracts atoms and dependencies among the atoms, of a second subsystem in a second domain;
a partitioner, coupled to the first and the second dependency extractors, that creates partitions for each of the first and the second domains based on the respectively extracted atoms and dependencies,
a merge manager that merges the partitions for each of the first and second domains into merged partitions having atoms associated with both the first and the second domains,
wherein the dependency extractors, the partitioner, and the merge manager collectively produce a representation of the database system including the subsystems and dependency relationships among the subsystems as well as the atoms and dependency relationships among the atom;
a system representation storage arrangement, coupled to the dependency extractors, the partitioner, and the merge manager, the system representation storage arrangement storing the representation of the software system; and
a display output coupled to the system representation storage arrangement, such output configured to provide a graphical display, based on the representation of the software system stored in the system representation storage arrangement, of the subsystems in a hierarchy within a dependency structure matrix, such matrix graphically indicating the dependency relationships among subsystems.

### Claim 28 (depends on 27)

A computer program product according to claim 27, wherein the apparatus further comprises a mapping dependency extractor that extracts from a mapping subsystem mapping dependencies between the first and the second domains, and wherein the merge manager merges, based on the mapping dependencies, at least a portion of the dependencies from the first and second domains into a merged partition having atoms associated with both the first and the second domains.

### Claim 29

A computer program product for use on a computer system for displaying relationships among subsystems of a software system, the computer program product comprising a computer usable medium having computer readable program code thereon, which, when loaded into the computer system, establishes an apparatus, implemented in the computer system, the apparatus comprising:
an input for receiving a software system to be analyzed;
a dependency extractor, coupled to the input, and a partitioner, coupled to the dependency extractor, the dependency extractor and a partitioner collectively parsing the software system to produce a representation of the software system including subsystems and dependency relationships among the subsystems, according to a structure of the software system;
a system representation storage arrangement, coupled to the dependency extractor and the partitioner, that stores the representation of the software system;
a display output, coupled to the system representation storage arrangement, that is configured to provide a graphical display of the stored representation of the database system in a hierarchy within a dependency structure matrix;
a graphical interface, configured to receive a user input for marking, in the dependency structure matrix, of at least one subsystem according to a proposed scheme;
wherein the dependency extractor and partitioner are further configured to produce a modified representation of the software system, including only the at least one marked subsystem and related subsystems that are in direct or indirect relationship with the at least one marked subsystem, and dependency relationships among the at least one marked subsystem and the related subsystems; and
wherein a display output is further configured to provide a graphical output, from the computer system, based on the modified stored representation, in which appears a display of the related subsystems and the at least one marked subsystem in a hierarchy within a modified dependency structure matrix, such modified matrix graphically indicating the dependency relationships only among the related subsystems and the at least one marked subsystem.

### Claim 30 (depends on 29)

A computer program product according to claim 29, wherein the graphical interface configured to receive a user input is further configured to receive a user input for marking of at least one subsystem associated with a specific property or metadata.

### Claim 31 (depends on 29)

A computer program product according to claim 29, wherein the dependency extractor and the partitioner are further configured to produce the modified representation of the software system treating as related subsystems any subsystems that either use or are used by the at least one marked subsystem.
