Evolving the architecture of a software application
First Claim
Patent Images
1. A system for evolving an architecture of a software application comprising:
- at least one processor operatively coupled to at least one memory providing;
a diagram designer that;
receives a user'"'"'s input to create a first architecture diagram modeling the user'"'"'s perception of an existing software architecture of the software application;
applies an architecture discovery system to an existing codebase of the software application to create a second architecture diagram modeling the existing software architecture based on physical artifacts of the existing codebase, the second architecture diagram showing relationship between physical artifacts;
compares the first architecture diagram and the second architecture diagram to determine if the existing software architecture is structured in accordance with specified rules;
responsive to the determination that the existing software architecture is not structured in accordance with specified rules, modifies the second architecture diagram to create a modified architecture diagram evolving towards modeling the target software architecture, and links the physical artifacts to model elements of the modified architecture diagram;
associates one or more constraints to the physical artifacts linked to the model elements of the modified architecture diagram; and
a validator that;
generates a report of violations of one or more constraints associated with the model elements of the modified architecture diagram based on the association of the one or more constraints to the physical artifacts linked to the model elements of the modified architecture diagram, wherein the diagram designer iteratively further modifies the modified architecture diagram based on the report of the violations of the one or more constraints, and the validator iteratively generates the reports of violations of the one or more constraints to enable the diagram designer to evolve an architecture that models the target software architecture, the diagram designer further modifying the previously modified architecture diagram in accordance with the report associated with the previously modified architecture diagram till the report of violations of the one or more constraints indicates no further violations.
2 Assignments
0 Petitions
Accused Products
Abstract
The logical architecture of an existing or target application or software system is modeled in the form of one or more architecture diagrams. The existing and target diagrams may be compared. A diagram may be modified by associating physical artifacts from an architecture discovery system or by selecting artifacts identified via a query statement. Rules are associated with the diagrams and validation performed based on the rules and the physical artifacts associated with the diagrams. A report may be produced facilitating further modifications to evolve the architecture represented by the diagrams to the target architecture.
-
Citations
20 Claims
-
1. A system for evolving an architecture of a software application comprising:
at least one processor operatively coupled to at least one memory providing; a diagram designer that; receives a user'"'"'s input to create a first architecture diagram modeling the user'"'"'s perception of an existing software architecture of the software application; applies an architecture discovery system to an existing codebase of the software application to create a second architecture diagram modeling the existing software architecture based on physical artifacts of the existing codebase, the second architecture diagram showing relationship between physical artifacts; compares the first architecture diagram and the second architecture diagram to determine if the existing software architecture is structured in accordance with specified rules; responsive to the determination that the existing software architecture is not structured in accordance with specified rules, modifies the second architecture diagram to create a modified architecture diagram evolving towards modeling the target software architecture, and links the physical artifacts to model elements of the modified architecture diagram; associates one or more constraints to the physical artifacts linked to the model elements of the modified architecture diagram; and a validator that; generates a report of violations of one or more constraints associated with the model elements of the modified architecture diagram based on the association of the one or more constraints to the physical artifacts linked to the model elements of the modified architecture diagram, wherein the diagram designer iteratively further modifies the modified architecture diagram based on the report of the violations of the one or more constraints, and the validator iteratively generates the reports of violations of the one or more constraints to enable the diagram designer to evolve an architecture that models the target software architecture, the diagram designer further modifying the previously modified architecture diagram in accordance with the report associated with the previously modified architecture diagram till the report of violations of the one or more constraints indicates no further violations. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A method of evolving an existing software architecture to a target software architecture comprising:
-
applying a user'"'"'s input to a diagram designer to create a first architecture diagram modeling the user'"'"'s perception of the existing software architecture; applying an architecture discovery system to an existing codebase to programmatically create a second architecture diagram modeling the existing software architecture based on physical artifacts of the existing codebase, the second architecture diagram showing relationship between physical artifacts; comparing the first architecture diagram and the second architecture diagram to determine if the existing software architecture is structured in accordance with specified rules; responsive to the determination that the existing software architecture is not structured in accordance with specified rules, modifying the second architecture diagram to create a modified architecture diagram evolving towards modeling the target software architecture, and linking the physical artifacts to model elements of the modified architecture diagram; generating a report of violations of one or more constraints associated with the model elements of the modified architecture diagram by applying the one or more constraints to the physical artifacts linked to the model elements of the modified architecture diagram; iteratively further modifying the modified architecture diagram based on the report of the violations of the one or more constraints; and iteratively generating the reports of violations of the one or more constraints to evolve an architecture that models the target software architecture, by further modifying the previously modified architecture diagram in accordance with the report associated with the previously modified architecture diagram till the report of violations of the one or more constraints indicates no further violations. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A volatile or non-volatile computer-readable storage medium comprising computer-executable instructions which when executed cause a computing environment to:
-
generate a first architecture diagram using a diagram designer, the first architecture diagram modeling a perception of an existing codebase based on user input; generate a second architecture diagram using the diagram designer, the second diagram modeling the existing codebase based on information available from an architecture discovery system provided to the diagram designer; display quality metrics relating to the first architecture diagram or the second architecture diagram, the quality metrics facilitating modification of the first architecture diagram or the second architecture diagram; modify the first architecture diagram or the second architecture diagram based on the quality metrics to create a modified architecture diagram evolving towards a target software architecture. associate physical artifacts with a model element of the modified architecture diagram; associate rules and constraints with the model element of the modified architecture diagram; generate a report of rules and constraints'"'"' violations by applying the rules and constraints associated with the model element to the physical artifacts associated with the model element; iteratively further modify the modified architecture diagram based on the report of the violations; and iteratively generate the reports of the violations to evolve an architecture that models the target software architecture, by further modifying the previously modified architecture diagram in accordance with the report associated with the previously modified architecture diagram till the report indicates no further violations. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification