US20220019413A1 - Architecture diagram analysis tool for software development - Google Patents

Architecture diagram analysis tool for software development Download PDF

Info

Publication number
US20220019413A1
US20220019413A1 US16/933,783 US202016933783A US2022019413A1 US 20220019413 A1 US20220019413 A1 US 20220019413A1 US 202016933783 A US202016933783 A US 202016933783A US 2022019413 A1 US2022019413 A1 US 2022019413A1
Authority
US
United States
Prior art keywords
features
compliant
architecture diagram
vector
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US16/933,783
Other versions
US11237802B1 (en
Inventor
Madhusudhanan Krishnamoorthy
Sreeram Raghavan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of America Corp
Original Assignee
Bank of America Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bank of America Corp filed Critical Bank of America Corp
Priority to US16/933,783 priority Critical patent/US11237802B1/en
Assigned to BANK OF AMERICA CORPORATION reassignment BANK OF AMERICA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KRISHNAMOORTHY, MADHUSUDHANAN, RAGHAVAN, SREERAM
Publication of US20220019413A1 publication Critical patent/US20220019413A1/en
Application granted granted Critical
Publication of US11237802B1 publication Critical patent/US11237802B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • the analysis device 102 is generally configured to analyze the features 302 within an architecture diagram 300 to determine whether the architecture diagram 300 contains any issues. Examples of issues include, but are not limited to, non-compliant features 302 a and non-scalable features 302 b.
  • the analysis device 102 is further configured to identify alternative features 302 for any features 302 that are associated with an issue and to update the architecture diagram with the alternative features 302 .
  • the analysis engine 108 identifies metadata that is associated with the identified features 302 .
  • the analysis engine 108 may also use API calls to request the metadata that is associated with the features 302 that are present in the architecture diagram 300 .
  • the metadata may comprise a feature identifier 120 , location information 118 , information about how a feature 302 is graphically represented, or any other suitable type of information that is associated with a feature 302 .
  • the analysis engine 108 proceeds to step 216 in response to determining that there is at least one non-compliant feature 302 a. In this case, the analysis engine 108 determines that non-compliant features 302 are present in the architecture diagram 300 . The analysis engine 108 will further process the features 302 using a classification analysis to identify the non-compliant features 302 .
  • the analysis engine 108 identifies alternative features 302 that correspond with the identified non-compliant features 302 .
  • the analysis engine 108 may use the feature repository 116 to identify alternative features 302 that correspond with the non-compliant features 302 .
  • the analysis engine 108 may use a feature identifier 120 for a non-compliant feature 302 a as a search token to look up alternative features 302 in the feature repository 116 .
  • the analysis engine 108 may repeat this process to identify alternative features 302 for all of the identified non-compliant features 302 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

A device configured to obtain an architecture diagram that includes features that are configured to form a workflow for a computer system. The device is further configured to identify the features within the architecture diagram and their metadata. The device is further configured to convert the features into vector points based on the metadata and to generate a vector map that associates vector points with their metadata. The device is further configured to input the vector points into a machine learning model and to obtain classification results for the vector points. The device is further configured to identify non-compliant features that correspond with vector points that are associated with a non-compliant classification. The device is further configured to identify alternative features for the non-compliant features, to update the vector map with the alternative features, and to update the architecture diagram based on the updated vector map.

Description

    TECHNICAL FIELD
  • The present disclosure relates generally to software development, and more specifically to an architecture diagram analysis tool for software development.
  • BACKGROUND
  • Existing computer systems are constantly changing to keep up with a consumer's needs. Hardware and software components may be continuously added, removed, or modified as the needs of a computer system evolves. The continuous evolution of a computer system poses a technical challenge because issues may arise as changes are made to the computer system. Identifying and resolving these types of issues in large computer systems is a difficult and time-consuming task which results in a significant amount of downtime for the computer system and reduces the throughput of the computing system while the system is being repaired. Issues within a computer system may be unique to the configuration of components within the system infrastructure and they may arise due to any number of variables. This means that each issue requires a sufficient amount of time to troubleshoot and resolve. This downtime also has a detrimental effect on the performance and throughput of other computer systems that rely on data from the computer system.
  • SUMMARY
  • The system disclosed in the present application provides a technical solution to the technical problems discussed above by detecting issues within a computer system using architecture diagrams and autonomously resolving these issues. For example, a computer system may experience error codes, data errors, data loss, slow response times, an increase in processor usage, a decrease in available memory, a decrease in available bandwidth, a decrease in data throughput, or any other type of decrease of performance. Examples of issue sources include, but are not limited to, non-compliant components and non-scalable components. The disclosed system provides the ability to detect and resolve any issues that affect the performance of the computer system. The disclosed system provides several practical applications and technical advantages which include a process for extracting information from an architecture diagram, using a combination of unsupervised learning and supervised learning techniques to detect issues within a computer system based on the information from the architecture diagram, and identifying solutions for resolving any detected issues. This process allows the computer system to use unsupervised learning on the information from an architecture diagram to initially determine whether any issues are present in the architecture diagram. In response to determining that an issue is present in the architecture diagram, the computer system is then able to use supervised learning to identify the features within the architecture diagram that are associated with an issue and to identify solutions (e.g. alternative features) for resolving any issues.
  • In existing computer systems, the source for issues such as a decrease in performance may not be easily detectable. This means that the computer system will experience a decrease in performance, for example, a decrease in throughput, until the source of the issue has been determined. Once the source of an issue has identified, then the computer system will need to be at least partially shut down to allow a network operator to make repairs to the computer system. This shutdown results in downtime where the computer system may operate in a limited capacity. In contrast, the process disclosed in the present application allows the computer system to quickly detect an issue within the computer system, to identify a source of the issue, and to autonomously implement a solution to resolve the issue. By reducing the amount of time required to detect an issue and its source, the computer system is able to reduce the amount of time that the computer system operates with degraded performance. In addition, by autonomously identifying and implementing a solution, the computer system is able to reduce the amount of time it takes to resolve an issue within the computer system which reduces the amount of downtime that the computer system will experience. By reducing the amount of downtime that the computer system experiences, the computer system is able to spend more time operating at its full capacity so that the computer system can maintain a higher throughput and improve the utilization of the computer system.
  • In one embodiment, the system comprises a device that is configured to obtain an architecture diagram. The architecture diagram is a graphical representation that includes features that are configured to form a workflow for a computer system or a software development project. The features may include software components, hardware components, and communication channels between various components. The device is further configured to identify the features within the architecture diagram and to identify metadata that is associated with the identified features. The metadata may comprise feature identifiers, text associated with the identified features, location information for the identified features within the architecture diagram, or any other suitable type of information that is associated with the features. The device is further configured to convert the identified features into vector points based on the identified metadata. A vector point is a point in an n-dimensional space where the number of dimensions in the n-dimensional space is based on the number of features in the architecture diagram. By converting the features into vector points, the device is able to analyze the features in a common domain which allows the device to determine how the features are associated with each other. The device is further configured to generate a vector map that associates the vector points with their corresponding metadata.
  • The device is further configured to input the vector points into the machine learning model and to obtain classification results for the vector points in response to inputting the vector points into the machine learning model. The machine learning model is trained to determine whether a feature is compliant, non-compliant, scalable, non-scalable, and/or any other suitable type of classification based on its vector point that is provided to the machine learning model. As an example, the device may be configured to identify vector points that are associated with a non-compliant classification and to identify non-compliant features that correspond with the vector points that are associated with a non-compliant classification. The device is further configured to identify alternative features for the non-compliant features, to update the vector map by replacing the non-compliant features with the alternative features, and to update the architecture diagram based on the updated vector map. Once the architecture diagram has been updated, the device may facilitate implementing the updated architecture diagram to resolve any of the issues that were previously detected. For example, the device may provide instructions for replacing features that are associated with issues with the identified alternative features.
  • Certain embodiments of the present disclosure may include some, all, or none of these advantages. These advantages and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
  • FIG. 1 is a schematic diagram of an architecture diagram analysis system;
  • FIG. 2 is a flowchart of an embodiment of an architecture diagram analysis method;
  • FIG. 3 is an example of an architecture diagram;
  • FIG. 4 is an example of results from a clustering analysis of vector points; and
  • FIG. 5 is a schematic diagram of an embodiment of a device configured to analyze an architecture diagram.
  • DETAILED DESCRIPTION System Overview
  • FIG. 1 is a schematic diagram of an architecture analysis system 100. In one embodiment, the system 100 comprises an analysis device 102 that is in signal communication with one or more network devices 104 within a network 106. Examples of network devices 104 include, but are not limited to, computers, laptops, tablets, smartphones, databases, memories, servers, or any other suitable type of networking device. The network devices 104 may be configured to form one or more workflows for processing data for the system 100.
  • The network 106 may be any suitable type of wireless and/or wired network including, but not limited to, all or a portion of the Internet, an Intranet, a private network, a public network, a peer-to-peer network, the public switched telephone network, a cellular network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), and a satellite network. The network 106 may be configured to support any suitable type of communication protocol as would be appreciated by one of ordinary skill in the art. In FIG. 1, the analysis device 102 is shown as a separate device from the network device 104. In other embodiments, the analysis device 102 may be integrated with a network device 104.
  • Analysis Device
  • The analysis device 102 is generally configured to analyze the features 302 within an architecture diagram 300 to determine whether the architecture diagram 300 contains any issues. Examples of issues include, but are not limited to, non-compliant features 302 a and non-scalable features 302 b. The analysis device 102 is further configured to identify alternative features 302 for any features 302 that are associated with an issue and to update the architecture diagram with the alternative features 302.
  • The analysis device 102 comprises an analysis engine 108 and a memory 110. The analysis device 102 may be configured as shown or in any other suitable configuration. Additional information about the hardware configuration of the analysis device 102 is described in FIG. 5. The memory 110 is configured to store machine learning models 112, vector maps 114, a feature repository 116, architecture diagrams 300, an encoder 122, and/or any other suitable type of data.
  • An example of an architecture diagram 300 is shown in FIG. 3. Referring to the example in FIG. 3, an architecture diagram 300 is a graphical representation of a workflow for a computer system (e.g. system 100) or a software development project. For example, an architecture diagram 300 may illustrate the software components (e.g. applications) and hardware components that are associated with performing an operation. For instance, an architecture diagram 300 may illustrate a workflow for the communication between a mobile application and a server. An architecture diagram 300 comprises graphical representations of a plurality of features 302. A feature 302 may correspond with a software component 304, a hardware component 306, or a communication channel 308 between components. Each feature 302 is associated with metadata that provides information about the feature 302. Examples of metadata include, but are not limited to, a feature identifier 120, location information 118 for a feature 302, and/or any other suitable type of information that is associated with a feature 302. The feature identifier 120 is an identifier (e.g. an alphanumeric identifier) that uniquely identifies a feature 302.
  • The encoder 122 is configured to convert a feature 302 into a vector point 402. For example, the encoder 122 may be configured to receive a feature identifier 120 as an input and to output a vector point 402 based on the input feature identifier 120. In one embodiment, the encoder 122 is configured to one-hot encode the features 302 into a vector point 402. For example, using one-hot encoding, a vector point 402 may be represented numerically as an ordered n-bit array of binary values. The number of bits in the array may correspond with the number of features 302 that are present in the architecture diagram 300. In this example, each bit in the bit array corresponds with a different feature 302 from among a list of features 302 that are present in the architecture diagram 300. As an example, the encoder 122 may convert a feature 302 to a vector point 402 by setting the bit that corresponds with the feature 302 to a value of one and setting the bits of the other features 302 to a value of zero. As another example, the encoder 122 may convert a feature 302 to a vector point 402 based on at least a portion of the metadata that is associated with the feature 302. For instance, the encoder 122 may employ pre-contextual word embedding techniques, pre-trained word embedding techniques, or any other suitable techniques with the metadata for a feature 302 to convert the feature 302 into a vector point 402. Vector points 402 are used to determine how a feature 302 is related to other features 302 in an architecture diagram 300. An example of vector points 402 is shown in FIG. 4. An example of using vector points 402 is described in FIG. 2.
  • A vector map 114 is configured to link together information that is associated with features 302 in an architecture diagram 300. In one embodiment, the vector map 114 is configured to associate a feature identifier 120 with location information 118 and a vector point 402. The location information 118 comprises information about where the feature 302 is located within an architecture diagram 300. As an example, the location information 118 may identify a location of a feature 302 with respect to other features 302 in an architecture diagram 300. For instance, the location information 118 may identify other features 302 that are connected as inputs and outputs to a feature 302. In other examples, the location information 118 may comprise any other suitable type of information for locating a feature 302 within an architecture diagram 300. In other embodiments, the vector map 114 may be configured to link together any other suitable type of information that is associated with a feature 302.
  • Examples of machine learning models 112 include, but are not limited to, a multi-layer perceptron or any other suitable type of neural network model. The machine learning model 112 is generally configured to classify features 302 of an architecture diagram 300. The machine learning model 112 is configured to receive a vector point 402 for a feature 302 as an input and to output a classification for the feature 302 based on the input vector point 402. The machine learning model 112 may be configured to classify a feature 302 as compliant, non-compliant, scalable, non-scalable, or any other suitable type of classification. The machine learning model 112 has been previously trained using training data. During the training process, the machine learning model 112 determines weight and bias values that allow the machine learning model 112 to map vector points 402 to different classifications. Through this process, the machine learning model 112 is able to identify how to classify features 302 from an architecture diagram 300. The analysis engine 108 may train the machine learning model 112 using any suitable technique as would be appreciated by one of ordinary skill in the art.
  • A feature repository 116 is configured to associate non-compliant features 302 with compliant features 302. For example, the feature repository 116 may comprise a mapping between feature identifiers 120 of non-compliant features 302 and feature identifiers 120 of compliant features 302. In some embodiments, the feature repository 116 may be generated and updated by system architects. For example, a system architect may initially build the feature repository 116 to create a mapping between non-compliant features 302 and compliant features 302. Over time, the system architect may periodically update the feature repository 116 to include additional mappings or to revise mappings between non-compliant features 302 and compliant features 302.
  • Analysis Engine
  • The analysis engine 108 is generally configured to analyze the features 302 within an architecture diagram 300 by converting the features 302 into vector points 402. The analysis engine 108 is further configured to perform a clustering analysis and/or a classification analysis on the vector points 402 to identify any features 302 that are associated with an issue. The analysis device 102 is further configured to identify alternative features 302 for any features 302 that are associated with an issue and to update the architecture diagram with the alternative features 302. In one embodiment, after the architecture diagram 300 has been updated, the analysis engine 108 may also facilitate implementing the updated architecture diagram 300 to resolve any of the issues that were previously detected. For example, the analysis engine 108 may provide instructions or commands for replacing features 302 that are associated with issues with the identified alternative features 302. An example of the analysis engine 108 in operation is described in FIG. 2.
  • Architecture Analysis Process
  • FIG. 2 is a flowchart of an embodiment of an architecture diagram analysis method 200. The analysis device 102 may employ method 200 to analyze the features 302 within an architecture diagram 300 to determine whether the architecture diagram 300 contains any issues. The analysis device 102 is further configured to identify alternative features 302 for any features 302 that are associated with an issue and to update the architecture diagram with the revised features 302. This process reduces the amount of time it takes to detect an issue within the system 100. By reducing the amount of time required to detect an issue and its source, the analysis device 102 is able to reduce the amount of time that the system 100 operates with degraded performance. In addition, by autonomously identifying and implementing a solution, the analysis device 102 is able to reduce the amount of time it takes to resolve an issue within the system 100 which reduces the amount of downtime that the system 100 will experience. By reducing the amount of downtime that the system 100 experiences, this means that the system 100 is able to spend more time operating at its full capacity which means that the system 100 can maintain a higher throughput and improve the utilization of the system 100.
  • At step 202, the analysis engine 108 obtains an architecture diagram 300. In one embodiment, the analysis engine 108 may receive an architecture diagram 300 from a network device 104 for processing. As an example, the analysis engine 108 may receive the architecture diagram 300 from the network device 104 to determine whether the architecture diagram 300 includes any non-compliant features 302. In other examples, the analysis engine 108 may also determine whether the architecture diagram 300 includes features 302 that are associated with any other kind of issue such as scalability. As another example, the analysis engine 108 may receive the architecture diagram 300 as an input from a user that is using the analysis device 102. As another example, the analysis engine 108 may periodically retrieve an architecture diagram 300 from memory or database for analysis. In this case, the analysis engine 108 may be configured to monitor the architecture diagrams 300 that are stored in memory to determine whether any of the architecture diagrams 300 include features 302 that are associated with an issue. This process allows the analysis engine 108 to monitor the current state of the computer system to detect any issues.
  • At step 204, the analysis engine 108 identifies features 302 within the architecture diagram 300. In one embodiment, the analysis engine 108 may use an Application Programming Interface (API) to communicate with the software that is used to generate the architecture diagram 300. For example, the analysis engine 108 may use API calls to request information about the features 302 that are present in an architecture diagram 300. In some embodiments, the analysis engine 108 may use image processing, natural language processing, or any other suitable techniques to identify the features 302 that are present in the architecture diagram 300.
  • At step 206, the analysis engine 108 identifies metadata that is associated with the identified features 302. In one embodiment, the analysis engine 108 may also use API calls to request the metadata that is associated with the features 302 that are present in the architecture diagram 300. The metadata may comprise a feature identifier 120, location information 118, information about how a feature 302 is graphically represented, or any other suitable type of information that is associated with a feature 302.
  • At step 208, the analysis engine 108 converts the identified features 302 into vector points 402. In one embodiment, the analysis engine 108 uses an encoder 122 to convert a feature 302 into a vector point 402. The encoder 122 is configured to receive a feature identifier 120 as an input and to output a vector point 402 based on the input feature identifier 120. This process allows the analysis engine 108 to one-hot encode the features 302 into a vector point 402. In one embodiment, a vector point 402 may be represented numerically as an ordered n-bit array of binary values. In one example, the number of bits in the array may correspond with the number of features 302 that are present in the architecture diagram 300. In this example, each bit in the bit array corresponds with a feature 302 from among a list of features 302 that are present in the architecture diagram 300. The encoder 122 may convert a feature 302 to a vector point 402 by setting the bit that corresponds with the feature 302 to a value of one and setting the bits of the other features 302 to a value of zero. As another example, the encoder 122 may convert a feature 302 to a vector point 402 based on at least a portion of the metadata that is associated with the feature 302. For instance, the encoder 122 may employ pre-contextual word embedding techniques, pre-trained word embedding techniques, or any other suitable techniques with the metadata for a feature 302 to convert the feature 302 into a vector point 402.
  • At step 210, the analysis engine 108 creates a vector map 114 for the identified features 302. The vector map 114 is configured to associate the generated vector points 402 with their corresponding metadata. For example, analysis engine 108 may create entries in a vector map 114 that associate a feature identifier 120 with its location information 118 and vector point 402. In other examples, the analysis engine 108 may also associate features 302 with any other suitable type of information that is related to a feature 302.
  • At step 212, the analysis engine 108 performs a cluster analysis on the vector points 402. In one embodiment, the analysis engine 108 begins a clustering analysis by plotting the vector points 402 from the vector map 114 within the n-dimensional space 404. Referring to FIG. 4 as an example, a plurality of vector points 402 are plotted within the n-dimensional space 404. The numeric value of a vector point 402 corresponds with the location of the vector point 402 within the n-dimensional space 404. After the vector points 402 have been plotted in the n-dimensional space 404, the analysis engine 108 may use k-nearest neighbors or any other suitable clustering technique to identify clusters 406 among the vector points 402. This process allows the analysis engine 108 to determine the number of clusters 406 that are present within the generated plot. In the example shown in FIG. 4, the analysis engine 108 determines that there are two clusters 406.
  • At step 214, the analysis engine 108 determines whether there are any non-compliant features 302. Here, the analysis engine 108 compares the number of clusters 406 in the plot to a predetermined threshold value to determine whether the number of clusters 406 in the plot exceeds the predetermined threshold value. The predetermined threshold value is a maximum number of clusters 406 that can be present in a plot to have only compliant features 302. As an example, the predetermined threshold value may be set to one. This means that the analysis engine 108 will determine that non-compliant features 302 are present when there is more than one cluster 406 in the plot. In this example, the analysis engine 108 determines that the number of clusters 406 in the plot exceeds the predetermined threshold value which means that there are non-compliant features 302 present. In other examples, the predetermined threshold value may be set to any other suitable value.
  • The analysis engine 108 terminates method 200 in response to determining that there are no non-compliant features 302. In this case, the analysis engine 108 does not identify any non-compliant features 302. This means that all of the features 302 within the architecture diagram 300 are compliant and no further analysis is required.
  • The analysis engine 108 proceeds to step 216 in response to determining that there is at least one non-compliant feature 302 a. In this case, the analysis engine 108 determines that non-compliant features 302 are present in the architecture diagram 300. The analysis engine 108 will further process the features 302 using a classification analysis to identify the non-compliant features 302.
  • At step 216, the analysis engine 108 performs a classification analysis on the vector points 402. The analysis engine 108 may perform a classification analysis on the vector points 402 by inputting the vector points 402 into the machine learning model 112. The analysis engine 108 receives classification results for the vector points 402 in response to inputting the vector points 402 into the machine learning model 112. In the classification results, each vector point 402 is associated with one or more classifications. For example, a vector point 402 may be classified as compliant, non-compliant, scalable, non-scalable, or any other suitable type of classification.
  • At step 218, the analysis engine 108 identifies non-compliant features 302 based on the classification analysis results. Here, the analysis engine 108 identifies features 302 that are associated with a non-compliant classification based on their vector point 402 For example, the analysis engine 108 may identify any vector points 402 that are associated with a non-compliant classification. The analysis engine 108 may then use the identified vector points 402 to look up their corresponding features 302 in the vector map 114. For instance, the analysis engine 108 may use a vector point 402 as a search token with the vector map 114 to identify a feature 302 in the vector map 114 that is linked with the vector point 402. The analysis engine 108 may repeat this process to identify all of the features 302 that are associated with a non-compliant classification.
  • In some embodiments, the analysis engine 108 may highlight the non-compliant features 302 within the architecture diagram 300. For example, the analysis engine 108 may identify location information 118 for the non-compliant features 302 in the vector map 114 and then modify the graphical representation of the non-compliant features 302 in the architecture diagram 300. For instance, the analysis engine 108 may overlay a color onto a non-compliant feature 302 a, modify the font of a non-compliant feature, or use any other suitable technique to distinguish non-compliant features 302 from compliant features 302. This process provides a visual indication to a user about which features 302 in the architecture diagram 300 are non-compliant. Referring again to the example in FIG. 3, the analysis engine 108 may use an overlay to highlight a first non-compliant feature 302 a and a second non-compliant feature 302 a. In other examples, the analysis engine 108 may use any other suitable type of graphical representation to highlight non-compliant features 302 a.
  • Returning to FIG. 2 at step 220, the analysis engine 108 identifies alternative features 302 that correspond with the identified non-compliant features 302. Here, the analysis engine 108 may use the feature repository 116 to identify alternative features 302 that correspond with the non-compliant features 302. For example, the analysis engine 108 may use a feature identifier 120 for a non-compliant feature 302 a as a search token to look up alternative features 302 in the feature repository 116. The analysis engine 108 may repeat this process to identify alternative features 302 for all of the identified non-compliant features 302.
  • At step 222, the analysis engine 108 updates the vector map 114 with the identified alternative features 302. The analysis engine 108 may update the vector map 114 by replacing non-compliant features 302 with a corresponding alternative feature 302. For example, the analysis engine 108 may modify an entry in the vector map 114 to indicate an alternative feature 302 that can be used to replace a non-compliant feature 302 a. For instance, the analysis engine 108 may replace the feature identifier 120 for the non-compliant feature 302 a with a feature identifier 120 for the alternative feature 302. As another example, the analysis engine 108 may append an entry in the vector map 114 with information about the alternative feature 302 that corresponds with a non-compliant feature 302 a.
  • At step 224, the analysis engine 108 updates the features 302 in the architecture diagram 300 based on the updated vector map 114. Here, the analysis engine 108 replaces non-compliant features 302 in the architecture diagram 300 with the compliant alternative features 302. For instance, the analysis engine 108 may identify location information 118 for non-compliant features 302 in the vector map 114. The analysis engine 108 may then identify a graphical representation of a non-compliant feature 302 a in the architecture diagram 300 based on the location information 118 and then replace the graphical representation with a new graphical representation for a compliant alternative feature 302. As an example, the analysis engine 108 may identify a line in the architecture diagram 300 that corresponds with a non-compliant communication channel. The analysis engine 108 may replace the identified line with another line that corresponds with a compliant communication channel. As another example, the analysis engine 108 may identify a shape (e.g. a box) in the architecture diagram 300 that corresponds with a non-compliant component (e.g. software component 304 or hardware component 306). The analysis engine 108 may replace the identified shape with another shape that corresponds with a compliant component. The analysis engine 108 may repeat this process to replace all of the non-compliant features 302 in the architecture diagram 300 with compliant features 302. The analysis engine 108 may send the updated architecture diagram 300 back to the network device 104 that requested the analysis. In some embodiments, the analysis engine 108 will output the updated architecture diagram 300 on a graphical user interface.
  • In one embodiment, after the architecture diagram 300 has been updated, the analysis engine 108 may also facilitate implementing the updated architecture diagram 300 to resolve any of the issues that were previously detected. For example, the analysis engine 108 may provide instructions or commands for replacing features 302 that are associated with issues with the identified alternative features 302. For instance, the analysis engine 108 may send instructions to a network device 104 that identifies non-compliant features 302 and corresponding alternative features 302 that can be used to replace the non-compliant features 302.
  • Analysis Device Hardware Configuration
  • FIG. 5 is a schematic diagram of an embodiment of a device (e.g. analysis device 102) configured to analyze an architecture diagram. The analysis device 102 comprises a processor 502, a memory 110, and a network interface 504. The system healing device 102 may be configured as shown or in any other suitable configuration.
  • The processor 502 comprises one or more processors operably coupled to the memory 110. The processor 502 is any electronic circuitry including, but not limited to, state machines, one or more central processing unit (CPU) chips, logic units, cores (e.g. a multi-core processor), field-programmable gate array (FPGAs), application-specific integrated circuits (ASICs), or digital signal processors (DSPs). The processor 502 may be a programmable logic device, a microcontroller, a microprocessor, or any suitable combination of the preceding. The processor 502 is communicatively coupled to and in signal communication with the memory 110. The one or more processors are configured to process data and may be implemented in hardware or software. For example, the processor 502 may be 8-bit, 16-bit, 32-bit, 64-bit, or of any other suitable architecture. The processor 502 may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components.
  • The one or more processors are configured to implement various instructions. For example, the one or more processors are configured to execute analysis instructions 506 to implement an analysis engine 108. In this way, processor 502 may be a special-purpose computer designed to implement the functions disclosed herein. In an embodiment, the analysis engine 108 is implemented using logic units, FPGAs, ASICs, DSPs, or any other suitable hardware. The analysis engine 108 is configured to operate as described in FIGS. 1 and 2. For example, the analysis engine 108 may be configured to perform the steps of method 200 as described in FIG. 2.
  • The memory 110 comprises one or more disks, tape drives, or solid-state drives, and may be used as an over-flow data storage device, to store programs when such programs are selected for execution, and to store instructions and data that are read during program execution. The memory 110 may be volatile or non-volatile and may comprise a read-only memory (ROM), random-access memory (RAM), ternary content-addressable memory (TCAM), dynamic random-access memory (DRAM), and static random-access memory (SRAM).
  • The memory 110 is operable to store analysis instructions 506, machine learning models 112, vector maps 114, a feature repository 116, architecture diagrams 300, an encoder 122, and/or any other data or instructions. The analysis instructions 506 may comprise any suitable set of instructions, logic, rules, or code operable to execute the analysis engine 108. The machine learning models 112, vector maps 114, feature repository 116, architecture diagram 300, and encoder 122 are configured similar to the machine learning models 112, vector maps 114, feature repository 116, architecture diagrams 300, and encoder 122 described in FIGS. 1 and 2, respectively.
  • The network interface 504 is configured to enable wired and/or wireless communications. The network interface 504 is configured to communicate data between the system healing device 102 and other devices (e.g. network devices 104), systems, or domain. For example, the network interface 504 may comprise a WIFI interface, a LAN interface, a WAN interface, a modem, a switch, or a router. The processor 502 is configured to send and receive data using the network interface 504. The network interface 504 may be configured to use any suitable type of communication protocol as would be appreciated by one of ordinary skill in the art.
  • While several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods might be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated with another system or certain features may be omitted, or not implemented.
  • In addition, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as coupled or directly coupled or communicating with each other may be indirectly coupled or communicating through some interface, device, or intermediate component whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.
  • To aid the Patent Office, and any readers of any patent issued on this application in interpreting the claims appended hereto, applicants note that they do not intend any of the appended claims to invoke 35 U.S.C. § 112(f) as it exists on the date of filing hereof unless the words “means for” or “step for” are explicitly used in the particular claim.

Claims (20)

1. An architecture diagram analysis device, comprising:
a memory operable to store a machine learning model configured to classify an input as either compliant or non-compliant; and
a processor operably coupled to the memory, configured to:
obtain an architecture diagram comprising graphical representations of a plurality of features that are configured to form a workflow for a computer system, wherein the plurality of features comprises:
a plurality of components comprising software applications and hardware components; and
communication channels between the plurality of components;
identify the plurality of features within the architecture diagram;
identify metadata that is associated with the identified features, wherein:
the metadata comprise text associated with the identified features and location information for the identified features within the architecture diagram; and
the location information comprises information identifying where a feature is located within the architecture diagram;
convert the identified features into vector points based on the identified metadata, wherein:
a vector point is a point in an n-dimensional space; and
the number of dimensions in the n-dimensional space is based on the number of features in the architecture diagram;
generate a vector map, wherein the vector map is configured to associate a vector point with its corresponding metadata;
input the vector points into the machine learning model;
obtain classification results for the vector points in response to inputting the vector points into the machine learning model, wherein the classification results associate each vector point with one of a compliant classification and a non-compliant classification;
identify vector points that are associated with a non-compliant classification;
identify one or more non-compliant features corresponding with the vector points that are associated with a non-compliant classification;
identify alternative features for the one or more non-compliant features, wherein each alternative feature is one of a software application and a hardware component;
update the vector map by replacing the one or more non-compliant features with the alternative features; and
update the architecture diagram based on the updated vector map, wherein updating the architecture diagram replaces graphical representations of the one or more non-compliant features with graphical representations of the alternative features in the architecture diagram.
2. The device of claim 1, wherein:
the processor is further configured to perform a clustering analysis comprising:
generating a plot of the vector points within the n-dimensional space;
determining a number of clusters within the plot;
determining the number of clusters exceeds a predetermined threshold value; and
determining that the vector points comprise one or more non-compliant features in response to determining that the number of clusters exceeds the predetermined threshold value; and
inputting the vector points into the machine learning model is in response to determining that the vector points comprise one or more non-compliant featured based on the clustering analysis.
3. The device of claim 1, wherein:
the memory further comprises a feature repository that is configured to associates non-compliant features with compliant features; and
identifying the alternative features comprises identify compliant features that correspond with the one or more non-compliant features in the feature repository.
4. The device of claim 1, wherein updating the architecture diagram comprises:
identifying location information for a non-compliant feature in the vector map;
identifying a graphical representation of the non-compliant feature in the architecture diagram based on the location information; and
replacing the graphical representation of the non-compliant feature with a graphical representation of an alternative feature in the architecture diagram.
5. The device of claim 1, wherein identifying the one or more non-compliant features corresponding with the vector points that are associated with a non-compliant classification comprises highlighting the one or more non-compliant features in the architecture diagram.
6. The device of claim 5, wherein highlighting the one or more non-compliant features in the architecture diagram comprises:
identifying location information for a non-compliant feature in the vector map; and
modifying the graphical representation of the non-compliant feature in the architecture diagram.
7. The device of claim 1, wherein processor is further configured to output instructions for replacing non-compliant features with alternative features.
8. An architecture diagram analysis method for a computing system infrastructure, comprising:
obtaining an architecture diagram comprising graphical representations of a plurality of features that are configured to form a workflow for a computer system, wherein the plurality of features comprises:
a plurality of components comprising software applications and hardware components; and
communication channels between the plurality of components;
identifying the plurality of features within the architecture diagram;
identifying metadata that is associated with the identified features, wherein:
the metadata comprise text associated with the identified features and location information for the identified features within the architecture diagram; and
the location information comprises information identifying where a feature is located within the architecture diagram;
converting the identified features into vector points based on the identified metadata, wherein:
a vector point is a point in an n-dimensional space; and
the number of dimensions in the n-dimensional space is based on the number of features in the architecture diagram;
generating a vector map, wherein the vector map is configured to associate a vector point with its corresponding metadata;
inputting the vector points into a machine learning model that is configured to classify an input as either compliant or non-compliant;
obtaining classification results for the vector points in response to inputting the vector points into the machine learning model, wherein the classification results associate each vector point with one of a compliant classification and a non-compliant classification;
identifying vector points that are associated with a non-compliant classification;
identifying one or more non-compliant features corresponding with the vector points that are associated with a non-compliant classification;
identifying alternative features for the one or more non-compliant features, wherein each alternative feature is one of a software application and a hardware component;
updating the vector map by replacing the one or more non-compliant features with the alternative features; and
updating the architecture diagram based on the updated vector map, wherein updating the architecture diagram replaces graphical representations of the one or more non-compliant features with graphical representations of the alternative features in the architecture diagram.
9. The method of claim 8, further comprising performing a clustering analysis comprising:
generating a plot of the vector points within the n-dimensional space;
determining a number of clusters within the plot;
determining the number of clusters exceeds a predetermined threshold value; and
determining that the vector points comprise one or more non-compliant features in response to determining that the number of clusters exceeds the predetermined threshold value; and
wherein inputting the vector points into the machine learning model is in response to determining that the vector points comprise one or more non-compliant featured based on the clustering analysis.
10. The method of claim 8, further comprising identifying the alternative features comprises identify compliant features that correspond with the one or more non-compliant features in a feature repository, wherein the feature repository is configured to associate non-compliant features with compliant features.
11. The method of claim 8, wherein updating the architecture diagram comprises:
identifying location information for a non-compliant feature in the vector map;
identifying a graphical representation of the non-compliant feature in the architecture diagram based on the location information; and
replacing the graphical representation of the non-compliant feature with a graphical representation of an alternative feature in the architecture diagram.
12. The method of claim 8, wherein identifying the one or more non-compliant features corresponding with the vector points that are associated with a non-compliant classification comprises highlighting the one or more non-compliant features in the architecture diagram.
13. The method of claim 12, wherein highlighting the one or more non-compliant features in the architecture diagram comprises:
identifying location information for a non-compliant feature in the vector map; and
modifying the graphical representation of the non-compliant feature in the architecture diagram.
14. The method of claim 8, further comprising outputting instructions for replacing non-compliant features with alternative features.
15. A computer program comprising executable instructions stored in a non-transitory computer readable medium that when executed by a processor causes the processor to:
obtain an architecture diagram comprising graphical representations of a plurality of features that are configured to form a workflow for a computer system, wherein the plurality of features comprises:
a plurality of components comprising software applications and hardware components; and
communication channels between the plurality of components;
identify the plurality of features within the architecture diagram;
identify metadata that is associated with the identified features, wherein:
the metadata comprise text associated with the identified features and location information for the identified features within the architecture diagram; and
the location information comprises information identifying where a feature is located within the architecture diagram;
convert the identified features into vector points based on the identified metadata, wherein:
a vector point is a point in an n-dimensional space; and
the number of dimensions in the n-dimensional space is based on the number of features in the architecture diagram;
generate a vector map, wherein the vector map is configured to associate a vector point with its corresponding metadata;
input the vector points into a machine learning model that is configured to classify an input as either compliant or non-compliant;
obtain classification results for the vector points in response to inputting the vector points into the machine learning model, wherein the classification results associate each vector point with one of a compliant classification and a non-compliant classification;
identify vector points that are associated with a non-compliant classification;
identify one or more non-compliant features corresponding with the vector points that are associated with a non-compliant classification;
identify alternative features for the one or more non-compliant features, wherein each alternative feature is one of a software application and a hardware component;
update the vector map by replacing the one or more non-compliant features with the alternative features; and
update the architecture diagram based on the updated vector map, wherein updating the architecture diagram replaces graphical representations of the one or more non-compliant features with graphical representations of the alternative features in the architecture diagram.
16. The computer program of claim 15, further comprising instructions that when executed by the processor causes the processor to perform a clustering analysis comprising:
generating a plot of the vector points within the n-dimensional space;
determining a number of clusters within the plot;
determining the number of clusters exceeds a predetermined threshold value; and
determining that the vector points comprise one or more non-compliant features in response to determining that the number of clusters exceeds the predetermined threshold value; and
wherein inputting the vector points into the machine learning model is in response to determining that the vector points comprise one or more non-compliant featured based on the clustering analysis.
17. The computer program of claim 15, further comprising instructions that when executed by the processor causes the processor to identify the alternative features comprises identify compliant features that correspond with the one or more non-compliant features in a feature repository, wherein the feature repository is configured to associate non-compliant features with compliant features.
18. The computer program of claim 15, wherein updating the architecture diagram comprises:
identifying location information for a non-compliant feature in the vector map;
identifying a graphical representation of the non-compliant feature in the architecture diagram based on the location information; and
replacing the graphical representation of the non-compliant feature with a graphical representation of an alternative feature in the architecture diagram.
19. The computer program of claim 15, wherein:
identifying the one or more non-compliant features corresponding with the vector points that are associated with a non-compliant classification comprises highlighting the one or more non-compliant features in the architecture diagram; and
highlighting the one or more non-compliant features in the architecture diagram comprises:
identifying location information for a non-compliant feature in the vector map; and
modifying the graphical representation of the non-compliant feature in the architecture diagram.
20. The computer program of claim 15, further comprising instructions that when executed by the processor causes the processor output instructions for replacing non-compliant features with alternative features.
US16/933,783 2020-07-20 2020-07-20 Architecture diagram analysis tool for software development Active US11237802B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/933,783 US11237802B1 (en) 2020-07-20 2020-07-20 Architecture diagram analysis tool for software development

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/933,783 US11237802B1 (en) 2020-07-20 2020-07-20 Architecture diagram analysis tool for software development

Publications (2)

Publication Number Publication Date
US20220019413A1 true US20220019413A1 (en) 2022-01-20
US11237802B1 US11237802B1 (en) 2022-02-01

Family

ID=79293372

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/933,783 Active US11237802B1 (en) 2020-07-20 2020-07-20 Architecture diagram analysis tool for software development

Country Status (1)

Country Link
US (1) US11237802B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451448B1 (en) * 2021-06-09 2022-09-20 Bank Of America Corporation System for cognitive technical architecture integration
US20220342646A1 (en) * 2021-04-23 2022-10-27 Jpmorgan Chase Bank, N.A. System and method for packaging standalone application modules into re-usable application and infrastructure resources
CN115858012A (en) * 2022-12-30 2023-03-28 广州市易鸿智能装备有限公司 Program variable configuration method, device, electronic equipment and storage medium

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113521A (en) * 1988-03-18 1992-05-12 Digital Equipment Corporation Method and apparatus for handling faults of vector instructions causing memory management exceptions
US5325298A (en) * 1990-11-07 1994-06-28 Hnc, Inc. Methods for generating or revising context vectors for a plurality of word stems
US5138694A (en) * 1991-06-28 1992-08-11 United Technologies Corporation Parallel processing qualitative reasoning system
US5371883A (en) 1993-03-26 1994-12-06 International Business Machines Corporation Method of testing programs in a distributed environment
US7251637B1 (en) * 1993-09-20 2007-07-31 Fair Isaac Corporation Context vector generation and retrieval
US5619709A (en) * 1993-09-20 1997-04-08 Hnc, Inc. System and method of context vector generation and retrieval
US5754860A (en) 1996-07-23 1998-05-19 Digital Equipment Corporation Method and apparatus for software testing using a differential testing technique to test compilers
US5930798A (en) 1996-08-15 1999-07-27 Predicate Logic, Inc. Universal data measurement, analysis and control system
US5950146A (en) * 1996-10-04 1999-09-07 At & T Corp. Support vector method for function estimation
US6002869A (en) 1997-02-26 1999-12-14 Novell, Inc. System and method for automatically testing software programs
US6031990A (en) 1997-04-15 2000-02-29 Compuware Corporation Computer software testing management
JP3765949B2 (en) 1999-02-17 2006-04-12 富士通株式会社 Object-oriented software development support apparatus and development support method
US6714925B1 (en) * 1999-05-01 2004-03-30 Barnhill Technologies, Llc System for identifying patterns in biological data using a distributed network
US6721713B1 (en) 1999-05-27 2004-04-13 Andersen Consulting Llp Business alliance identification in a web architecture framework
US6957186B1 (en) 1999-05-27 2005-10-18 Accenture Llp System method and article of manufacture for building, managing, and supporting various components of a system
US6725399B1 (en) 1999-07-15 2004-04-20 Compuware Corporation Requirements based software testing method
US6625760B1 (en) 1999-08-03 2003-09-23 Hewlett-Packard Development Company, L.P. Apparatus and method for generating random tests for program validation using genetic evolution
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
DE19947892C2 (en) 1999-10-05 2003-11-13 Infineon Technologies Ag Process for the implementation of interface definitions and intermediate format table therefor
US7970718B2 (en) * 2001-05-18 2011-06-28 Health Discovery Corporation Method for feature selection and for evaluating features identified as significant for classifying data
US6301701B1 (en) 1999-11-10 2001-10-09 Tenfold Corporation Method for computer-assisted testing of software application components
SE522408C2 (en) 2000-04-27 2004-02-10 Microsoft Corp Computer program and procedure for automated testing of a computer's functionality
US8463718B2 (en) * 2000-08-07 2013-06-11 Health Discovery Corporation Support vector machine-based method for analysis of spectral data
US6601017B1 (en) 2000-11-09 2003-07-29 Ge Financial Assurance Holdings, Inc. Process and system for quality assurance for software
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US6820256B2 (en) 2000-12-13 2004-11-16 Microsoft Corporation System and method for whole-system program analysis
GB2373073A (en) 2001-03-08 2002-09-11 Escher Technologies Ltd Process and system for developing validated and optimised object-oriented software
US6986125B2 (en) 2001-08-01 2006-01-10 International Business Machines Corporation Method and apparatus for testing and evaluating a software component using an abstraction matrix
US7080365B2 (en) 2001-08-17 2006-07-18 Sun Microsystems, Inc. Method and apparatus for simulation system compiler
DE10144050A1 (en) 2001-09-07 2003-03-27 Bosch Gmbh Robert Verification of the software functions of a control unit, e.g. for use in automotive or machine tool applications, by use of a computer simulation model that is used for a experimental control unit and a serial control unit
US20040205508A1 (en) 2002-03-05 2004-10-14 Microsoft Corporation Content replacement in electronically-provided archived material
US7299382B2 (en) 2002-04-29 2007-11-20 Sun Microsystems, Inc. System and method for automatic test case generation
US20040015377A1 (en) 2002-07-12 2004-01-22 Nokia Corporation Method for assessing software development maturity
US7076764B2 (en) 2002-09-05 2006-07-11 Bea Systems, Inc. System and method for software module architecture language and compliance checking
US7334219B2 (en) 2002-09-30 2008-02-19 Ensco, Inc. Method and system for object level software testing
TWI262383B (en) 2003-01-10 2006-09-21 Univ Nat Cheng Kung A generic software testing system and method
US7546575B1 (en) 2003-06-09 2009-06-09 Dillman Frederick J System and method for using blueprints to provide a software solution for an enterprise
US7596778B2 (en) 2003-07-03 2009-09-29 Parasoft Corporation Method and system for automatic error prevention for computer software
US7562338B2 (en) 2003-11-24 2009-07-14 Qwest Communications International Inc. System development planning tool
EP1700210A2 (en) 2003-12-15 2006-09-13 Evolveware Information Tech. (India) Pty. Ltd An apparatus for migration and conversion of software code from any source platform to any target platform
US20050183055A1 (en) 2004-02-04 2005-08-18 Nortel Networks Limited Method and apparatus for automating the design of programmable logic devices
US20050198618A1 (en) 2004-03-03 2005-09-08 Groupe Azur Inc. Distributed software fabrication system and process for fabricating business applications
US20060064570A1 (en) 2004-09-07 2006-03-23 Di Savoia Luigi Alberto Pio Method and apparatus for automatically generating test data for code testing purposes
US7430498B2 (en) 2004-09-07 2008-09-30 The Boeing Company System, method and computer program product for developing a system-of-systems architecture model
US7797673B2 (en) 2004-12-16 2010-09-14 The Mathworks, Inc. Applying coding standards in graphical programming environments
US7653893B2 (en) 2005-03-04 2010-01-26 Microsoft Corporation Methods and apparatus for implementing checkin policies in source code control systems
US7346864B2 (en) 2005-03-31 2008-03-18 Intel Corporation Logic design development tool and method
US7630945B2 (en) * 2005-05-12 2009-12-08 Yahoo! Inc. Building support vector machines with reduced classifier complexity
WO2006130846A2 (en) 2005-06-02 2006-12-07 United States Postal Service Methods and systems for evaluating the compliance of software to a quality benchmark
US20070011654A1 (en) 2005-07-10 2007-01-11 Opperman David B Method and apparatus for reformatting source code appearance
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7716254B2 (en) 2005-09-12 2010-05-11 Infosys Technologies Ltd. System for modeling architecture for business systems and methods thereof
US7599897B2 (en) * 2006-05-05 2009-10-06 Rockwell Automation Technologies, Inc. Training a support vector machine with process constraints
US20080028375A1 (en) 2006-07-26 2008-01-31 International Business Machines Corporation Validator-driven architecture of an xml parsing and validating solution
US8028269B2 (en) 2007-03-09 2011-09-27 International Business Machines Corporation Compliance management method and system
US20080294396A1 (en) 2007-03-23 2008-11-27 Shingchi Hsu System and method for validating design requirements
US8418142B2 (en) 2008-01-22 2013-04-09 Oracle International Corporation Architecture for data validation
US8752005B2 (en) 2008-04-04 2014-06-10 Infosys Limited Concept-oriented software engineering system and method for identifying, extracting, organizing, inferring and querying software system facts
US8397210B2 (en) 2008-06-03 2013-03-12 Microsoft Corporation Evolving the architecture of a software application
WO2010124284A1 (en) * 2009-04-24 2010-10-28 Hemant Virkar Methods for mapping data into lower dimensions
US8677316B2 (en) 2010-05-12 2014-03-18 Microsoft Corporation Enforcement of architectural design during software development
US10853536B1 (en) * 2014-12-11 2020-12-01 Imagars Llc Automatic requirement verification engine and analytics
US20160364909A1 (en) 2015-06-15 2016-12-15 Microsoft Technology Licensing, Llc. Architecture impact analysis
US10373078B1 (en) * 2016-08-15 2019-08-06 Palantir Technologies Inc. Vector generation for distributed data sets
US10838699B2 (en) * 2017-01-18 2020-11-17 Oracle International Corporation Generating data mappings for user interface screens and screen components for an application
US10803392B1 (en) * 2017-03-10 2020-10-13 Amazon Technologies, Inc Deploying machine learning-based models
US10310821B2 (en) * 2017-06-03 2019-06-04 Apple Inc. Integration of learning models into a software development system
US10936962B1 (en) * 2019-11-01 2021-03-02 Kenneth Neumann Methods and systems for confirming an advisory interaction with an artificial intelligence platform

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220342646A1 (en) * 2021-04-23 2022-10-27 Jpmorgan Chase Bank, N.A. System and method for packaging standalone application modules into re-usable application and infrastructure resources
US11531525B2 (en) * 2021-04-23 2022-12-20 Jpmorgan Chase Bank, N.A. System and method for packaging standalone application modules into re-usable application and infrastructure resources
US11451448B1 (en) * 2021-06-09 2022-09-20 Bank Of America Corporation System for cognitive technical architecture integration
CN115858012A (en) * 2022-12-30 2023-03-28 广州市易鸿智能装备有限公司 Program variable configuration method, device, electronic equipment and storage medium

Also Published As

Publication number Publication date
US11237802B1 (en) 2022-02-01

Similar Documents

Publication Publication Date Title
US11237802B1 (en) Architecture diagram analysis tool for software development
US20200257543A1 (en) Aggregate Features For Machine Learning
US11741361B2 (en) Machine learning-based network model building method and apparatus
CN109343857B (en) Method, apparatus and storage medium for deploying machine learning model on line
US20230237088A1 (en) Automatically detecting user-requested objects in digital images
US10127279B2 (en) Eigenvalue-based data query
US11157384B2 (en) Methods, systems, articles of manufacture and apparatus for code review assistance for dynamically typed languages
JP2018181318A (en) Systems and methods for classification of software defect reports
US10769043B2 (en) System and method for assisting user to resolve a hardware issue and a software issue
WO2021151292A1 (en) Corpus monitoring method based on mask language model, corpus monitoring apparatus, device, and medium
US20200333772A1 (en) Semantic modeling and machine learning-based generation of conceptual plans for manufacturing assemblies
US11429890B2 (en) Dynamic pattern recognition and data reconciliation
WO2019100635A1 (en) Editing method and apparatus for automated test script, terminal device and storage medium
US20220244937A1 (en) Utilizing machine learning models for automated software code modification
US20220237057A1 (en) Code consolidation system
US20210019456A1 (en) Accelerated simulation setup process using prior knowledge extraction for problem matching
CN112597124A (en) Data field mapping method and device and storage medium
WO2016093839A1 (en) Structuring of semi-structured log messages
US20220156599A1 (en) Generating hypothesis candidates associated with an incomplete knowledge graph
US11556460B2 (en) Test case generation for software development using machine learning
WO2019164503A1 (en) Ranking of engineering templates via machine learning
WO2022103382A1 (en) Deidentifying code for cross-organization remediation knowledge
US11036613B1 (en) Regression analysis for software development and management using machine learning
US20230368085A1 (en) Automated intelligence facilitation of routing operations
US20230368086A1 (en) Automated intelligence facilitation of routing operations

Legal Events

Date Code Title Description
AS Assignment

Owner name: BANK OF AMERICA CORPORATION, NORTH CAROLINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KRISHNAMOORTHY, MADHUSUDHANAN;RAGHAVAN, SREERAM;REEL/FRAME:053257/0576

Effective date: 20200713

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE