system
The system addresses inefficiencies in software code optimization, security risk identification, and style consistency using AI-driven analysis and feedback mechanisms, enhancing code review efficiency and quality.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK GROUP CORP
- Filing Date
- 2024-12-18
- Publication Date
- 2026-06-30
AI Technical Summary
Existing technologies face challenges in efficiently optimizing execution speed, identifying security risks, and maintaining style consistency in software code.
A system comprising an analysis unit, optimization unit, identification unit, style unit, and feedback unit, utilizing AI technology to analyze software code, provide optimization suggestions, identify security risks, and maintain style consistency, with a learning unit that improves functionality based on user feedback.
The system optimizes execution speed, identifies security risks, and maintains style consistency in software code, reducing code review time and improving the quality and efficiency of software development.
Smart Images

Figure 2026107989000001_ABST
Abstract
Description
Technical Field
[0006] , , ,
[0005] , ,
[0001] The technology of the present disclosure relates to a system.
Background Art
[0002] Patent Document 1 discloses a method for controlling a persona chatbot, which is performed by at least one processor, and includes steps of receiving a user utterance, adding the user utterance to a prompt including an instruction sentence related to an explanation of a character of the chatbot, encoding the prompt, and inputting the encoded prompt into a language model to generate a chatbot utterance in response to the user utterance.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the conventional technology, it is difficult to efficiently optimize the execution speed of software code, identify security risks, and maintain style consistency, and there is room for improvement.
[0005] The system according to the embodiment aims to make proposals for optimizing the execution speed, identifying security risks, and maintaining style consistency based on the analysis of software code.
Means for Solving the Problems
[0006] The system according to the embodiment comprises an analysis unit, an optimization unit, an identification unit, a style unit, a feedback unit, and a learning unit. The analysis unit analyzes the software code. The optimization unit proposes optimizations for execution speed based on the code analyzed by the analysis unit. The identification unit identifies security risks based on the code analyzed by the analysis unit. The style unit makes suggestions for maintaining style consistency based on the code analyzed by the analysis unit. The feedback unit provides real-time feedback on the content proposed by the optimization unit, identification unit, and style unit. The learning unit improves functionality based on user feedback obtained from the feedback unit. [Effects of the Invention]
[0007] The system according to this embodiment can optimize execution speed, identify security risks, and make suggestions for maintaining style consistency based on software code analysis. [Brief explanation of the drawing]
[0008] [Figure 1] This is a conceptual diagram showing an example of the configuration of a data processing system according to the first embodiment. [Figure 2] This is a conceptual diagram showing an example of the essential functions of a data processing device and a smart device according to the first embodiment. [Figure 3] This is a conceptual diagram showing an example of the configuration of a data processing system according to the second embodiment. [Figure 4] This is a conceptual diagram showing an example of the main functions of a data processing device and smart glasses according to the second embodiment. [Figure 5] This is a conceptual diagram showing an example of the configuration of a data processing system according to the third embodiment. [Figure 6] This is a conceptual diagram showing an example of the main functions of a data processing device and a headset-type terminal according to the third embodiment. [Figure 7] This is a conceptual diagram showing an example of the configuration of a data processing system according to the fourth embodiment. [Figure 8]This is a conceptual diagram showing an example of the main functions of a data processing device and a robot according to the fourth embodiment. [Figure 9] This shows an emotion map where multiple emotions are mapped. [Figure 10] This shows an emotion map where multiple emotions are mapped. [Modes for carrying out the invention]
[0009] Hereinafter, an example of an embodiment of the system relating to the technology of this disclosure will be described with reference to the attached drawings.
[0010] First, let's explain the terminology used in the following explanation.
[0011] In the following embodiments, the signed processor (hereinafter simply referred to as "processor") may be a single arithmetic unit or a combination of multiple arithmetic units. Furthermore, the processor may be a single type of arithmetic unit or a combination of multiple types of arithmetic units. Examples of arithmetic units include CPU (Central Processing Unit), GPU (Graphics Processing Unit), GPGPU (General-Purpose computing on Graphics Processing Units), APU (Accelerated Processing Unit), or TPU (Tensor Processing Unit).
[0012] In the following embodiments, signed RAM (Random Access Memory) is a memory that temporarily stores information and is used as work memory by the processor.
[0013] In the following embodiments, the tagged storage is one or more non-volatile storage devices that store various programs, various parameters, and the like. Examples of non-volatile storage devices include flash memories (SSDs (Solid State Drives)), magnetic disks (e.g., hard disks), or magnetic tapes.
[0014] In the following embodiments, the tagged communication I / F (Interface) is an interface including a communication processor, an antenna, and the like. The communication I / F manages communication between a plurality of computers. Examples of communication standards applied to the communication I / F include wireless communication standards including 5G (5th Generation Mobile Communication System), Wi-Fi (registered trademark), or Bluetooth (registered trademark).
[0015] In the following embodiments, "A and / or B" is synonymous with "at least one of A and B". That is, "A and / or B" means that it may be only A, only B, or a combination of A and B. Also, in this specification, when expressing three or more matters connected by "and / or", the same concept as "A and / or B" is applied.
[0016] [First Embodiment] FIG. 1 shows an example of the configuration of a data processing system 10 according to the first embodiment.
[0017] As shown in FIG. 1, the data processing system 10 includes a data processing device 12 and a smart device 14. An example of the data processing device 12 is a server.
[0018] The data processing device 12 includes a computer 22, a database 24, and a communication I / F 26. The computer 22 includes a processor 28, a RAM 30, and a storage 32. The processor 28, the RAM 30, and the storage 32 are connected to a bus 34. Also, the database 24 and the communication I / F 26 are connected to the bus 34. The communication I / F 26 is connected to a network 54. Examples of the network 54 include a WAN (Wide Area Network) and / or a LAN (Local Area Network).
[0019] The smart device 14 includes a computer 36, a reception device 38, an output device 40, a camera 42, and a communication I / F 44. The computer 36 includes a processor 46, a RAM 48, and a storage 50. The processor 46, the RAM 48, and the storage 50 are connected to a bus 52. Also, the reception device 38, the output device 40, and the camera 42 are connected to the bus 52.
[0020] The reception device 38 includes a touch panel 38A and a microphone 38B, etc., and receives user input. The touch panel 38A receives user input by contact of an indicator (e.g., a pen or a finger, etc.) by detecting the contact of the indicator. The microphone 38B receives user input by voice by detecting the voice of the user. The control unit 46A transmits data indicating the user input received by the touch panel 38A and the microphone 38B to the data processing device 12. In the data processing device 12, a specific processing unit 290 (see FIG. 2) acquires data indicating the user input.
[0021] The output device 40 includes a display 40A and a speaker 40B, and presents data to the user by outputting the data in a form perceptible to the user (e.g., audio and / or text). The display 40A displays visible information such as text and images according to instructions from the processor 46. The speaker 40B outputs audio according to instructions from the processor 46. The camera 42 is a small digital camera equipped with an optical system such as a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor.
[0022] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various types of information between processor 46 and processor 28 via network 54.
[0023] Figure 2 shows an example of the main functions of the data processing device 12 and the smart device 14.
[0024] As shown in Figure 2, in the data processing device 12, a specific processing is performed by the processor 28. A specific processing program 56 is stored in the storage 32. The specific processing program 56 is an example of a "program" related to the technology of this disclosure. The processor 28 reads the specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 operating as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0025] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0026] In the smart device 14, specific processing is performed by the processor 46. The storage 50 stores a specific processing program 60. The specific processing program 60 is used in conjunction with the specific processing program 56 by the data processing system 10. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 operating as a control unit 46A according to the specific processing program 60 executed on the RAM 48. The smart device 14 also has a data generation model 58 and an emotion identification model 59, similar to the data generation model and emotion identification model 59, and can perform processing similar to that of the specific processing unit 290 using these models.
[0027] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device (e.g., a generation server) may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device having the data generation model 58. The data processing device 12 may also be a server device or a terminal device owned by a user (e.g., a mobile phone, robot, home appliance, etc.). Next, an example of processing by the data processing system 10 according to the first embodiment will be described.
[0028] (Example of form 1) The code review support system according to an embodiment of the present invention is a system that utilizes AI technology to support code reviews by software developers. This code review support system analyzes software code and provides recommendations for improving execution speed, strengthening security, and maintaining style consistency. The code review support system reduces code review time, improves the detection rate of security breaches, and enables the application of a consistent coding style. For example, the code review support system uses an AI agent to analyze software code. In this process, machine learning is used to analyze code patterns and make suggestions for optimizing execution time and memory usage. For example, if a particular code block is slowing down execution speed, it makes specific suggestions for optimizing that part. The code review support system also automatically identifies security risks and notifies the developer. For example, it detects potential security vulnerabilities and suggests how to fix them. Furthermore, the code review support system provides recommendations for maintaining code style consistency. For example, it makes suggestions to automatically correct the code formatting based on a style guide. This enables the entire development team to maintain a consistent coding style. In addition, the code review support system performs code analysis and feedback in real time. This allows developers to receive immediate feedback while writing code, enabling efficient code reviews. For example, when a developer adds new code, the code review support system analyzes that code and immediately suggests optimizations and security improvements. This system applies a continuous learning algorithm and improves its functionality based on user feedback. As a result, the code review support system can always keep up with the latest code patterns and security risks. For instance, based on feedback from developers, the code review support system learns new optimization techniques and incorporates them into the next code review. In this way, a code review support system utilizing AI technology can revolutionize the quality and efficiency of software development. This allows developers to deliver high-quality software more quickly and securely.This allows code review support systems to efficiently assist software developers with code reviews, improving the quality and efficiency of the development process.
[0029] The code review support system according to this embodiment comprises an analysis unit, an optimization unit, an identification unit, a style unit, a feedback unit, and a learning unit. The analysis unit analyzes software code. The analysis unit can perform static analysis or dynamic analysis, for example. The analysis unit can check the structure and syntax of the code using static analysis tools. The analysis unit can also analyze runtime behavior using dynamic analysis tools. For example, the analysis unit can detect syntax errors and potential bugs in the code using static analysis tools. The analysis unit can also analyze runtime memory usage and performance using dynamic analysis tools. The optimization unit proposes optimizations for execution speed based on the code analyzed by the analysis unit. For example, the optimization unit can propose reducing execution time and memory usage. The optimization unit makes specific suggestions to improve execution speed using code optimization algorithms. For example, the optimization unit can propose loop optimization and removal of unnecessary code. The optimization unit can also propose data structure optimization and improved memory management to reduce memory usage. The identification unit identifies security risks based on the code analyzed by the analysis unit. The identification unit can perform tasks such as vulnerability scans and security tests. It automatically identifies security risks in the code and notifies the developer. For example, it can detect potential security vulnerabilities and suggest ways to fix them. It can also identify risks that should be prioritized based on their type and impact. The style unit makes suggestions to maintain style consistency based on the code analyzed by the analysis unit. For example, it can suggest automatically correcting code formatting based on a style guide. The style unit checks code indentation, spacing, naming conventions, etc., and makes suggestions to maintain a consistent coding style. For example, it can suggest unifying code indentation or unifying variable naming conventions. The style unit also has the functionality to automatically correct code formatting based on a style guide.The feedback unit provides real-time feedback on the content proposed by the optimization unit, identification unit, and style unit. The feedback unit can provide real-time feedback, for example, while a developer is writing code. The feedback unit displays code analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time. For example, when a developer adds new code, the feedback unit can immediately display the analysis results and optimization suggestions for that code. Through real-time feedback, the feedback unit helps developers conduct code reviews efficiently. The learning unit improves functionality based on user feedback obtained by the feedback unit. For example, the learning unit collects user feedback and improves the system's functionality using machine learning algorithms. Based on user feedback, the learning unit learns new optimization methods and security risk identification methods and reflects them in the next code review. For example, the learning unit learns algorithms to improve the accuracy of optimization suggestions based on feedback from developers. As a result, the code review support system according to the embodiment can perform software code analysis, optimization, security risk identification, style consistency suggestions, real-time feedback, and functionality improvements.
[0030] The analysis unit analyzes software code. For example, the analysis unit can perform static and dynamic analysis. Static analysis checks the structure and syntax of the code before it is executed. Specifically, it uses static analysis tools to detect syntax errors and potential bugs in the code. This includes unused or undefined variables, inconsistent function calls, and type mismatches. Static analysis is an important means of improving code quality and is useful for identifying problems in the early stages of development. Dynamic analysis, on the other hand, analyzes the behavior of the code when it is executed. Dynamic analysis tools can be used to analyze memory usage and performance during execution. For example, it can detect memory leaks, measure the execution time of specific functions, and detect thread race conditions. Dynamic analysis is important for discovering problems in the execution environment and identifying performance bottlenecks. Based on these analysis results, the analysis unit evaluates the code quality and performance and identifies areas for improvement. By combining static and dynamic analysis, the analysis unit can achieve more comprehensive code analysis and provide developers with concrete improvement suggestions.
[0031] The optimization unit proposes optimizations for execution speed based on the code analyzed by the analysis unit. For example, the optimization unit can propose reducing execution time and memory usage. Specifically, it uses code optimization algorithms to make concrete suggestions for improving execution speed. For example, it can propose loop optimization and the removal of unnecessary code. Loop optimization includes techniques to reduce the number of loops and techniques to make calculations within loops more efficient. Removing unnecessary code improves code execution speed by identifying and removing unused variables, functions, and redundant processes. The optimization unit can also propose data structure optimization and improved memory management to reduce memory usage. For example, it can reduce memory usage by reviewing the selection of data structures and adopting more efficient ones. Improving memory management involves optimizing the timing of memory allocation and deallocation to prevent memory leaks. Through these suggestions, the optimization unit can improve code performance and increase the overall efficiency of the system.
[0032] The identification unit identifies security risks based on the code analyzed by the analysis unit. The identification unit can perform vulnerability scans and security tests, for example. Specifically, it automatically identifies security risks in the code and notifies developers. For instance, the identification unit can detect potential security vulnerabilities and suggest remediation methods. This includes common vulnerabilities such as SQL injection, cross-site scripting (XSS), and buffer overflows. The identification unit can also identify risks that should be prioritized based on their type and impact. For example, it can suggest prioritizing the remediation of high-impact vulnerabilities, helping developers implement security measures efficiently. Based on the latest security information, the identification unit constantly updates scan rules and test cases to address new vulnerabilities, maintaining system security. This allows the identification unit to detect code security risks early and improve system safety by taking appropriate measures.
[0033] The Style Department makes suggestions to maintain style consistency based on the code analyzed by the Analysis Department. For example, the Style Department can make suggestions to automatically correct the code formatting based on a style guide. Specifically, it checks code indentation, spacing, naming conventions, etc., and makes suggestions to maintain a consistent coding style. For example, the Style Department can suggest unifying code indentation or unifying variable naming conventions. The Style Department also has a function to automatically correct code formatting based on a style guide. This saves developers the trouble of manually correcting styles. The Style Department can improve code readability and maintain a consistent coding style across the entire team. Furthermore, the Style Department can handle different style guides for each project and can flexibly check and correct styles. In this way, the Style Department can improve code quality and contribute to the efficiency of the development process.
[0034] The feedback unit provides real-time feedback on suggestions made by the optimization, identification, and styling units. For example, the feedback unit can provide real-time feedback while a developer is writing code. Specifically, it displays code analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time. For instance, when a developer adds new code, the feedback unit can immediately display the code analysis results and optimization suggestions. Through real-time feedback, the feedback unit helps developers conduct code reviews efficiently. The feedback unit provides intuitive and easy-to-understand feedback to developers through its user interface. For example, it can color-code errors and warnings, and present specific correction methods in pop-ups. Furthermore, the feedback unit can provide non-intrusive notifications to avoid interrupting the developer's work. This allows the feedback unit to support code quality improvement while maintaining developer productivity.
[0035] The learning unit improves functionality based on user feedback obtained by the feedback unit. For example, the learning unit collects user feedback and uses machine learning algorithms to improve the system's functionality. Specifically, it learns new optimization techniques and methods for identifying security risks based on user feedback and incorporates them into the next code review. For instance, the learning unit learns algorithms to improve the accuracy of optimization suggestions based on feedback from developers. This includes analyzing past feedback data and evaluating the success and failure rates of optimization suggestions. The learning unit also learns new vulnerability information and attack methods to improve the accuracy of security risk identification and updates the scanning rules of the identification unit. Furthermore, to improve the accuracy of the style unit's suggestions, the learning unit learns the differences in style guides for each project and can provide more appropriate style suggestions. As a result, the learning unit can continuously improve the functionality of the entire system and provide developers with higher quality code review support.
[0036] The analysis unit can analyze code patterns using machine learning. For example, the analysis unit can analyze code patterns using supervised or unsupervised learning. Using supervised learning, the analysis unit can learn code patterns based on past code data and apply them to the analysis of new code. For example, the analysis unit can learn specific bug patterns or optimization patterns using past code data and apply them to the analysis of new code. The analysis unit can also perform code clustering and anomaly detection using unsupervised learning. For example, the analysis unit can perform code clustering using unsupervised learning, grouping similar code patterns. This improves the accuracy of code pattern analysis by utilizing machine learning. Some or all of the above processes in the analysis unit may be performed using, for example, generative AI, or without generative AI. For example, the analysis unit can input code data into a generative AI and have the generative AI perform code pattern analysis.
[0037] The optimization unit can propose optimizations for execution time and memory usage. For example, the optimization unit may propose reducing execution time or memory usage. The optimization unit uses code optimization algorithms to make specific suggestions for improving execution speed. For example, the optimization unit may propose loop optimization or removal of unnecessary code. The optimization unit may also propose data structure optimization or improved memory management to reduce memory usage. For example, the optimization unit may propose optimizing data structure selection or memory allocation methods. The optimization unit may also propose garbage collection optimization or memory leak prevention measures. As a result, system performance is improved by proposing optimizations for execution time and memory usage. Some or all of the above processing in the optimization unit may be performed using, for example, a generative AI, or without a generative AI. For example, the optimization unit can input code data into a generative AI and have the generative AI execute the optimization suggestions.
[0038] The identification unit can automatically identify security risks. For example, the identification unit can perform vulnerability scans and security tests. The identification unit can automatically identify security risks in code and notify developers. For example, the identification unit can detect potential security vulnerabilities and suggest ways to fix them. The identification unit can also identify risks that should be prioritized based on their type and impact. For example, the identification unit can identify common security vulnerabilities such as SQL injection and cross-site scripting. The identification unit can evaluate the impact of security risks and identify risks that should be prioritized. This enhances security by automatically identifying security risks. Some or all of the above processes in the identification unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the identification unit can input code data into a generative AI and have the generative AI perform security risk identification.
[0039] The style section can automatically suggest correcting code formatting based on a style guide. For example, the style section checks code indentation, spacing, naming conventions, etc., based on the style guide and makes suggestions to maintain a consistent coding style. The style section can suggest unifying code indentation and unifying variable naming conventions. The style section also has the functionality to automatically correct code formatting based on a style guide. For example, the style section automatically corrects code indentation to conform to the style guide format. The style section automatically corrects variable naming conventions and applies consistent naming conventions. This ensures code consistency by automatically suggesting code formatting corrections based on the style guide. Some or all of the above processes in the style section may be performed using, for example, a generative AI, or not using a generative AI. For example, the style section can input code data into a generative AI and have the generative AI execute style correction suggestions.
[0040] The feedback unit can analyze and provide feedback on code in real time. For example, the feedback unit provides real-time feedback while a developer is writing code. The feedback unit displays code analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time. For example, when a developer adds new code, the feedback unit can immediately display the analysis results and optimization suggestions for that code. Through real-time feedback, the feedback unit helps developers conduct code reviews efficiently. This allows developers to immediately understand areas for improvement by analyzing and providing feedback on code in real time. Some or all of the above processes in the feedback unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the feedback unit can input code data into a generative AI and have the generative AI perform real-time feedback.
[0041] The learning unit can improve functionality based on user feedback. For example, the learning unit collects user feedback and uses machine learning algorithms to improve the system's functionality. Based on user feedback, the learning unit learns new optimization techniques and methods for identifying security risks, and incorporates these into the next code review. For example, based on feedback from developers, the learning unit learns algorithms to improve the accuracy of optimization suggestions. The learning unit can also learn new techniques to improve the accuracy of security risk identification. This improves the system's accuracy by improving functionality based on user feedback. Some or all of the above processes in the learning unit may be performed using, for example, generative AI, or without generative AI. For example, the learning unit can input user feedback data into a generative AI and have the generative AI perform learning for functionality improvement.
[0042] The analysis unit can prioritize the analysis of specific bug patterns by referring to past bug history when analyzing code. For example, the analysis unit can prioritize the analysis of bug patterns that have occurred frequently in the past and propose measures to prevent recurrence. The analysis unit can analyze bug patterns that have occurred frequently in a particular project and propose project-specific improvements. The analysis unit can also analyze the bug history and focus on analyzing code sections in which a specific developer was involved. This allows it to prioritize the analysis of specific bug patterns by referring to past bug history and propose measures to prevent recurrence. Some or all of the above processes in the analysis unit may be performed using, for example, a generation AI, or not using a generation AI. For example, the analysis unit can input bug history data into a generation AI and have the generation AI perform bug pattern analysis.
[0043] The analysis unit can learn the developer's coding style and perform individually optimized analysis when analyzing code. For example, the analysis unit can learn the developer's past code and perform analysis tailored to that style. Based on the developer's coding style, the analysis unit can prioritize the analysis of specific patterns. The analysis unit can also provide optimal feedback tailored to the developer's style. This allows for more appropriate feedback by performing analysis tailored to the developer's coding style. Some or all of the above processes in the analysis unit may be performed using, for example, a generative AI, or without a generative AI. For example, the analysis unit can input the developer's code data into a generative AI and have the generative AI perform coding style learning and optimized analysis.
[0044] The analysis unit can prioritize code analysis by considering the project's progress. For example, in the early stages of a project, the analysis unit prioritizes analyzing basic bugs and style issues. In the middle stages of the project, it can focus on analyzing performance and security issues. In the final stages of the project, the analysis unit analyzes the overall quality as a final check before release. This allows for efficient code review by performing analyses at the appropriate time, taking the project's progress into consideration. Some or all of the above processes in the analysis unit may be performed using, for example, a generative AI, or not. For example, the analysis unit can input project progress data into the generative AI and have the generative AI prioritize the analysis.
[0045] The analysis unit can analyze similar patterns by referring to the codebases of other projects when analyzing code. For example, the analysis unit can refer to bug patterns found in other projects and analyze similar problems. The analysis unit can refer to optimization methods in other projects and propose similar improvements. The analysis unit can also refer to security risks in other projects and analyze similar risks. This allows the analysis unit to analyze similar patterns and propose preventative measures by referring to the codebases of other projects. Some or all of the above processes in the analysis unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the analysis unit can input code data from other projects into a generative AI and have the generative AI perform the analysis of similar patterns.
[0046] The optimization unit can make optimal suggestions by referring to past optimization history when proposing optimizations. For example, the optimization unit can refer to past successful optimization methods and make similar suggestions. The optimization unit can analyze past optimization history and make suggestions based on specific patterns. The optimization unit can also make suggestions at the optimal timing based on past optimization history. In this way, by referring to past optimization history, the optimization unit makes optimal suggestions and improves system performance. Some or all of the above processing in the optimization unit may be performed using, for example, a generative AI, or without a generative AI. For example, the optimization unit can input optimization history data into a generative AI and have the generative AI execute optimization suggestions.
[0047] The optimization unit can make optimization suggestions optimized for a specific hardware environment. For example, the optimization unit can propose code optimized for a specific CPU architecture. The optimization unit can propose code optimized for a specific memory configuration. The optimization unit can also propose code optimized for a specific GPU environment. By making suggestions optimized for a specific hardware environment, the system performance is maximized. Some or all of the above processing in the optimization unit may be performed using, for example, a generative AI, or without a generative AI. For example, the optimization unit can input hardware environment data into a generative AI and have the generative AI execute the optimization suggestion.
[0048] The optimization unit can adjust the timing of its optimization proposals, taking the project schedule into consideration. For example, in the early stages of a project, the optimization unit can make basic optimization proposals. In the middle of the project, it can make optimization proposals to improve performance. In the final stages of the project, the optimization unit can make optimization proposals as final adjustments before release. This allows for optimization proposals to be made at the appropriate time, taking the project schedule into consideration, and enables efficient code review. Some or all of the above processes in the optimization unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the optimization unit can input project schedule data into a generative AI and have the generative AI adjust the timing of optimization proposals.
[0049] The optimization unit can make optimization suggestions by referencing optimization methods used by other developers. For example, the optimization unit can refer to successful optimization methods used by other developers and make similar suggestions. The optimization unit can analyze the optimization history of other developers and make suggestions based on specific patterns. The optimization unit can also make suggestions at the optimal timing based on the optimization methods of other developers. In this way, by referencing the optimization methods of other developers, the optimization unit makes optimal suggestions and improves system performance. Some or all of the above processes in the optimization unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the optimization unit can input optimization method data from other developers into a generative AI and have the generative AI execute optimization suggestions.
[0050] The identification unit can prioritize the identification of specific risks by referring to past security incidents when identifying security risks. For example, the identification unit can refer to past security incidents and prioritize the identification of similar risks. The identification unit can prioritize the identification of security risks that have occurred frequently in a particular project. The identification unit can also analyze the history of security incidents and prioritize the identification of risks based on specific patterns. This allows for the prioritization of specific risks by referring to past security incidents, thereby strengthening security. Some or all of the above processing in the identification unit may be performed using, for example, a generative AI, or without a generative AI. For example, the identification unit can input security incident data into a generative AI and have the generative AI perform risk identification.
[0051] The identification unit can perform risk assessments based on specific industry standards when identifying security risks. For example, the identification unit can perform security risk assessments based on the OWASP Top 10. The identification unit can perform security risk assessments based on NIST guidelines. The identification unit can also perform security risk assessments based on ISO 27001. This improves the accuracy of security risk identification by performing risk assessments based on specific industry standards. Some or all of the above processing in the identification unit may be performed using, for example, a generating AI, or without a generating AI. For example, the identification unit can input industry standard data into a generating AI and have the generating AI perform the risk assessment.
[0052] The identification unit can prioritize security risks by considering the project's progress when identifying them. For example, in the early stages of a project, the identification unit prioritizes identifying basic security risks. In the middle stages of the project, the identification unit can focus on identifying performance and security issues. In the final stages of the project, the identification unit identifies overall security risks as a final check before release. This allows for the identification of risks at the appropriate time by considering the project's progress, enabling efficient security measures. Some or all of the above processing in the identification unit may be performed using, for example, a generative AI, or not. For example, the identification unit can input project progress data into a generative AI and have the generative AI perform the risk prioritization.
[0053] The identification unit can identify security risks by referring to the security history of other projects when identifying security risks. For example, the identification unit can refer to security risks discovered in other projects and identify similar risks. The identification unit can analyze the security history of other projects and identify risks based on specific patterns. The identification unit can also identify risks at the optimal time based on the security risks of other projects. This allows for the identification of risks and the proposal of preventative measures by referring to the security history of other projects. Some or all of the above processing in the identification unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the identification unit can input security history data from other projects into a generative AI and have the generative AI perform risk identification.
[0054] The style department can, when proposing styles, refer to past style guide violation history to prioritize suggesting specific violations. For example, the style department can prioritize suggesting style guide violations that have occurred frequently in the past. The style department can also prioritize suggesting style guide violations that have occurred frequently in a particular project. The style department can also analyze the style guide violation history and make suggestions based on specific patterns. This allows for prioritizing the suggestion of specific violations by referring to past style guide violation history, thereby maintaining style consistency. Some or all of the above processing in the style department may be performed using, for example, a generative AI, or not using a generative AI. For example, the style department can input style guide violation history data into a generative AI and have the generative AI execute violation suggestions.
[0055] The style department can make style suggestions based on specific coding conventions when proposing styles. For example, the style department can make style suggestions based on Google's coding conventions. The style department can make style suggestions based on Airbnb's coding conventions. The style department can also make style suggestions based on coding conventions adopted in a specific project. This ensures style consistency by making suggestions based on specific coding conventions. Some or all of the above processing in the style department may be performed using, for example, a generative AI, or not using a generative AI. For example, the style department can input coding convention data into a generative AI and have the generative AI execute style suggestions.
[0056] The style department can adjust the timing of style proposals, taking into account the project's progress. For example, in the early stages of a project, the style department can make basic style proposals. In the middle of the project, it can make suggestions to maintain style consistency. In the final stages of the project, the style department can make style proposals as final adjustments before release. This allows for timely style proposals and efficient code reviews by considering the project's progress. Some or all of the above processes in the style department may be performed using, for example, a generative AI, or not. For example, the style department can input project progress data into the generative AI and have the generative AI adjust the timing of style proposals.
[0057] The style unit can make style suggestions by referencing the coding styles of other developers. For example, the style unit can refer to the coding styles of other developers that have been successful and make similar suggestions. The style unit can analyze the style history of other developers and make suggestions based on specific patterns. The style unit can also make suggestions at the optimal time based on the coding styles of other developers. This ensures that optimal suggestions are made and style consistency is maintained by referencing the coding styles of other developers. Some or all of the above processes in the style unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the style unit can input coding style data of other developers into a generative AI and have the generative AI execute style suggestions.
[0058] The feedback unit can provide optimal feedback by referring to past feedback history during the feedback process. For example, the feedback unit can refer to past successful feedback methods and provide similar feedback. The feedback unit can analyze past feedback history and provide feedback based on specific patterns. The feedback unit can also provide feedback at the optimal timing based on past feedback history. This improves the accuracy of the system by providing optimal feedback through the referencing of past feedback history. Some or all of the above processing in the feedback unit may be performed using, for example, a generative AI, or without a generative AI. For example, the feedback unit can input feedback history data into a generative AI and have the generative AI execute the optimal feedback.
[0059] The feedback unit can provide feedback tailored to specific project phases. For example, in the early stages of a project, the feedback unit can provide basic feedback. In the middle stages of a project, it can provide feedback for performance improvement. In the final stages of a project, the feedback unit can provide feedback as final adjustments before release. This enables efficient code review by providing feedback tailored to specific project phases. Some or all of the above processes in the feedback unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the feedback unit can input project phase data into a generative AI and have the generative AI adjust the timing of the feedback.
[0060] The feedback unit can adjust the timing of feedback, taking into account the project's progress. For example, the feedback unit can provide basic feedback in the early stages of the project. In the middle stages of the project, it can provide feedback to improve performance. In the final stages of the project, it can provide feedback as a final adjustment before release. This allows for timely feedback and efficient code review by considering the project's progress. Some or all of the above processes in the feedback unit may be performed using, for example, a generative AI, or not. For example, the feedback unit can input project progress data into a generative AI and have the generative AI adjust the timing of feedback.
[0061] The feedback unit can provide feedback by referring to the feedback history of other developers. For example, the feedback unit can refer to successful feedback methods used by other developers and provide similar feedback. The feedback unit can analyze the feedback history of other developers and provide feedback based on specific patterns. The feedback unit can also provide feedback at the optimal timing based on the feedback history of other developers. This allows the system to provide optimal feedback and improve its accuracy by referring to the feedback history of other developers. Some or all of the above processing in the feedback unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the feedback unit can input the feedback history data of other developers into a generative AI and have the generative AI execute the feedback.
[0062] The learning unit can optimize its learning algorithm by referring to past learning data during the learning process. For example, the learning unit can refer to past successful learning data and apply a similar learning algorithm. The learning unit can analyze past learning data and apply a learning algorithm based on specific patterns. The learning unit can also apply the learning algorithm at the optimal timing based on past learning data. This optimizes the learning algorithm by referring to past learning data and improves the accuracy of the system. Some or all of the above processes in the learning unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the learning unit can input past learning data into a generative AI and have the generative AI perform the optimization of the learning algorithm.
[0063] The learning unit can weight the training data during training, taking into account the project's progress. For example, in the early stages of the project, the learning unit may prioritize basic training data. In the middle stages of the project, the learning unit may prioritize training data for performance improvement. In the final stages of the project, the learning unit may prioritize training data as final adjustments before release. This allows for efficient training by weighting the training data at the appropriate time, taking the project's progress into account. Some or all of the above processing in the learning unit may be performed using, for example, a generative AI, or without a generative AI. For example, the learning unit can input project progress data into a generative AI and have the generative AI perform the weighting of the training data.
[0064] The system according to the embodiment is not limited to the example described above, and various modifications are possible, for example, as follows.
[0065] The analysis unit can refer to a developer's past code review history during code analysis to suggest the optimal analysis method for a particular developer. For example, the analysis unit can analyze past code review history and prioritize analyzing mistakes that a particular developer frequently makes. The analysis unit can also adjust the depth of analysis considering the code patterns that a particular developer excels at. This allows for efficient code review by performing analysis optimized for each developer.
[0066] The optimization unit, when proposing code optimizations, can refer to a developer's past optimization history to provide optimal suggestions for that specific developer. For example, the optimization unit analyzes past optimization history and prioritizes suggesting optimization methods that a particular developer excels at. It can also suggest avoiding optimization methods that a particular developer is not comfortable with. This allows for more efficient code reviews by providing optimized suggestions for each developer.
[0067] The identification unit can identify security risks by referencing the developer's past security history, enabling optimal risk identification for specific developers. For example, the identification unit analyzes past security history and prioritizes identifying security mistakes frequently made by a particular developer. The identification unit can also adjust the severity of risks by considering the security measures that a particular developer excels at. This allows for optimized risk identification for each developer, resulting in more efficient security measures.
[0068] The style department can provide optimal style suggestions for specific developers by referencing their past style history when suggesting code styles. For example, it can analyze past style history and prioritize suggesting style errors that a particular developer frequently makes. The style department can also adjust the level of detail of its suggestions, taking into account the style guides that a particular developer is proficient with. This enables efficient code reviews by providing style suggestions optimized for each developer.
[0069] The feedback system can provide optimal feedback to specific developers by referencing their past feedback history when providing code feedback. For example, it can analyze past feedback history and prioritize providing feedback that a particular developer frequently requests. The feedback system can also adjust the level of detail in feedback, taking into account the feedback format that a particular developer excels at. This allows for efficient code reviews by providing feedback optimized for each developer.
[0070] The following briefly describes the processing flow for example form 1.
[0071] Step 1: The analysis unit analyzes the software code. The analysis unit performs static and dynamic analysis to check the code's structure, syntax, and runtime behavior. For example, it uses static analysis tools to detect syntax errors and potential bugs in the code, and dynamic analysis tools to analyze runtime memory usage and performance. Step 2: The optimization unit proposes optimizations for execution speed based on the code analyzed by the analysis unit. The optimization unit proposes reducing execution time and memory usage, and uses specific optimization algorithms to optimize loops, remove unnecessary code, optimize data structures, and improve memory management. Step 3: The identification unit identifies security risks based on the code analyzed by the analysis unit. The identification unit performs vulnerability scans and security tests to detect potential security vulnerabilities and proposes methods for remediation. Based on the type and impact of the security risks, the identification unit identifies risks that should be addressed as priority. Step 4: The Style Department makes suggestions to maintain style consistency based on the code analyzed by the Analysis Department. The Style Department makes suggestions to automatically correct the code formatting based on the style guide, checking code indentation, spacing, naming conventions, etc., and makes suggestions to maintain a consistent coding style. Step 5: The feedback unit provides real-time feedback on the suggestions made by the optimization, identification, and styling units. The feedback unit displays analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time while the developer is writing code, supporting efficient code review. Step 6: The learning unit improves functionality based on user feedback obtained from the feedback unit. The learning unit collects user feedback and uses machine learning algorithms to improve the system's functionality. This allows it to learn new optimization techniques and methods for identifying security risks, which will then be incorporated into the next code review.
[0072] (Example of form 2) The code review support system according to an embodiment of the present invention is a system that utilizes AI technology to support code reviews by software developers. This code review support system analyzes software code and provides recommendations for improving execution speed, strengthening security, and maintaining style consistency. The code review support system reduces code review time, improves the detection rate of security breaches, and enables the application of a consistent coding style. For example, the code review support system uses an AI agent to analyze software code. In this process, machine learning is used to analyze code patterns and make suggestions for optimizing execution time and memory usage. For example, if a particular code block is slowing down execution speed, it makes specific suggestions for optimizing that part. The code review support system also automatically identifies security risks and notifies the developer. For example, it detects potential security vulnerabilities and suggests how to fix them. Furthermore, the code review support system provides recommendations for maintaining code style consistency. For example, it makes suggestions to automatically correct the code formatting based on a style guide. This enables the entire development team to maintain a consistent coding style. In addition, the code review support system performs code analysis and feedback in real time. This allows developers to receive immediate feedback while writing code, enabling efficient code reviews. For example, when a developer adds new code, the code review support system analyzes that code and immediately suggests optimizations and security improvements. This system applies a continuous learning algorithm and improves its functionality based on user feedback. As a result, the code review support system can always keep up with the latest code patterns and security risks. For instance, based on feedback from developers, the code review support system learns new optimization techniques and incorporates them into the next code review. In this way, a code review support system utilizing AI technology can revolutionize the quality and efficiency of software development. This allows developers to deliver high-quality software more quickly and securely.This allows code review support systems to efficiently assist software developers with code reviews, improving the quality and efficiency of the development process.
[0073] The code review support system according to this embodiment comprises an analysis unit, an optimization unit, an identification unit, a style unit, a feedback unit, and a learning unit. The analysis unit analyzes software code. The analysis unit can perform static analysis or dynamic analysis, for example. The analysis unit can check the structure and syntax of the code using static analysis tools. The analysis unit can also analyze runtime behavior using dynamic analysis tools. For example, the analysis unit can detect syntax errors and potential bugs in the code using static analysis tools. The analysis unit can also analyze runtime memory usage and performance using dynamic analysis tools. The optimization unit proposes optimizations for execution speed based on the code analyzed by the analysis unit. For example, the optimization unit can propose reducing execution time and memory usage. The optimization unit makes specific suggestions to improve execution speed using code optimization algorithms. For example, the optimization unit can propose loop optimization and removal of unnecessary code. The optimization unit can also propose data structure optimization and improved memory management to reduce memory usage. The identification unit identifies security risks based on the code analyzed by the analysis unit. The identification unit can perform tasks such as vulnerability scans and security tests. It automatically identifies security risks in the code and notifies the developer. For example, it can detect potential security vulnerabilities and suggest ways to fix them. It can also identify risks that should be prioritized based on their type and impact. The style unit makes suggestions to maintain style consistency based on the code analyzed by the analysis unit. For example, it can suggest automatically correcting code formatting based on a style guide. The style unit checks code indentation, spacing, naming conventions, etc., and makes suggestions to maintain a consistent coding style. For example, it can suggest unifying code indentation or unifying variable naming conventions. The style unit also has the functionality to automatically correct code formatting based on a style guide.The feedback unit provides real-time feedback on the content proposed by the optimization unit, identification unit, and style unit. The feedback unit can provide real-time feedback, for example, while a developer is writing code. The feedback unit displays code analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time. For example, when a developer adds new code, the feedback unit can immediately display the analysis results and optimization suggestions for that code. Through real-time feedback, the feedback unit helps developers conduct code reviews efficiently. The learning unit improves functionality based on user feedback obtained by the feedback unit. For example, the learning unit collects user feedback and improves the system's functionality using machine learning algorithms. Based on user feedback, the learning unit learns new optimization methods and security risk identification methods and reflects them in the next code review. For example, the learning unit learns algorithms to improve the accuracy of optimization suggestions based on feedback from developers. As a result, the code review support system according to the embodiment can perform software code analysis, optimization, security risk identification, style consistency suggestions, real-time feedback, and functionality improvements.
[0074] The analysis unit analyzes software code. For example, the analysis unit can perform static and dynamic analysis. Static analysis checks the structure and syntax of the code before it is executed. Specifically, it uses static analysis tools to detect syntax errors and potential bugs in the code. This includes unused or undefined variables, inconsistent function calls, and type mismatches. Static analysis is an important means of improving code quality and is useful for identifying problems in the early stages of development. Dynamic analysis, on the other hand, analyzes the behavior of the code when it is executed. Dynamic analysis tools can be used to analyze memory usage and performance during execution. For example, it can detect memory leaks, measure the execution time of specific functions, and detect thread race conditions. Dynamic analysis is important for discovering problems in the execution environment and identifying performance bottlenecks. Based on these analysis results, the analysis unit evaluates the code quality and performance and identifies areas for improvement. By combining static and dynamic analysis, the analysis unit can achieve more comprehensive code analysis and provide developers with concrete improvement suggestions.
[0075] The optimization unit proposes optimizations for execution speed based on the code analyzed by the analysis unit. For example, the optimization unit can propose reducing execution time and memory usage. Specifically, it uses code optimization algorithms to make concrete suggestions for improving execution speed. For example, it can propose loop optimization and the removal of unnecessary code. Loop optimization includes techniques to reduce the number of loops and techniques to make calculations within loops more efficient. Removing unnecessary code improves code execution speed by identifying and removing unused variables, functions, and redundant processes. The optimization unit can also propose data structure optimization and improved memory management to reduce memory usage. For example, it can reduce memory usage by reviewing the selection of data structures and adopting more efficient ones. Improving memory management involves optimizing the timing of memory allocation and deallocation to prevent memory leaks. Through these suggestions, the optimization unit can improve code performance and increase the overall efficiency of the system.
[0076] The identification unit identifies security risks based on the code analyzed by the analysis unit. The identification unit can perform vulnerability scans and security tests, for example. Specifically, it automatically identifies security risks in the code and notifies developers. For instance, the identification unit can detect potential security vulnerabilities and suggest remediation methods. This includes common vulnerabilities such as SQL injection, cross-site scripting (XSS), and buffer overflows. The identification unit can also identify risks that should be prioritized based on their type and impact. For example, it can suggest prioritizing the remediation of high-impact vulnerabilities, helping developers implement security measures efficiently. Based on the latest security information, the identification unit constantly updates scan rules and test cases to address new vulnerabilities, maintaining system security. This allows the identification unit to detect code security risks early and improve system safety by taking appropriate measures.
[0077] The Style Department makes suggestions to maintain style consistency based on the code analyzed by the Analysis Department. For example, the Style Department can make suggestions to automatically correct the code formatting based on a style guide. Specifically, it checks code indentation, spacing, naming conventions, etc., and makes suggestions to maintain a consistent coding style. For example, the Style Department can suggest unifying code indentation or unifying variable naming conventions. The Style Department also has a function to automatically correct code formatting based on a style guide. This saves developers the trouble of manually correcting styles. The Style Department can improve code readability and maintain a consistent coding style across the entire team. Furthermore, the Style Department can handle different style guides for each project and can flexibly check and correct styles. In this way, the Style Department can improve code quality and contribute to the efficiency of the development process.
[0078] The feedback unit provides real-time feedback on suggestions made by the optimization, identification, and styling units. For example, the feedback unit can provide real-time feedback while a developer is writing code. Specifically, it displays code analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time. For instance, when a developer adds new code, the feedback unit can immediately display the code analysis results and optimization suggestions. Through real-time feedback, the feedback unit helps developers conduct code reviews efficiently. The feedback unit provides intuitive and easy-to-understand feedback to developers through its user interface. For example, it can color-code errors and warnings, and present specific correction methods in pop-ups. Furthermore, the feedback unit can provide non-intrusive notifications to avoid interrupting the developer's work. This allows the feedback unit to support code quality improvement while maintaining developer productivity.
[0079] The learning unit improves functionality based on user feedback obtained by the feedback unit. For example, the learning unit collects user feedback and uses machine learning algorithms to improve the system's functionality. Specifically, it learns new optimization techniques and methods for identifying security risks based on user feedback and incorporates them into the next code review. For instance, the learning unit learns algorithms to improve the accuracy of optimization suggestions based on feedback from developers. This includes analyzing past feedback data and evaluating the success and failure rates of optimization suggestions. The learning unit also learns new vulnerability information and attack methods to improve the accuracy of security risk identification and updates the scanning rules of the identification unit. Furthermore, to improve the accuracy of the style unit's suggestions, the learning unit learns the differences in style guides for each project and can provide more appropriate style suggestions. As a result, the learning unit can continuously improve the functionality of the entire system and provide developers with higher quality code review support.
[0080] The analysis unit can analyze code patterns using machine learning. For example, the analysis unit can analyze code patterns using supervised or unsupervised learning. Using supervised learning, the analysis unit can learn code patterns based on past code data and apply them to the analysis of new code. For example, the analysis unit can learn specific bug patterns or optimization patterns using past code data and apply them to the analysis of new code. The analysis unit can also perform code clustering and anomaly detection using unsupervised learning. For example, the analysis unit can perform code clustering using unsupervised learning, grouping similar code patterns. This improves the accuracy of code pattern analysis by utilizing machine learning. Some or all of the above processes in the analysis unit may be performed using, for example, generative AI, or without generative AI. For example, the analysis unit can input code data into a generative AI and have the generative AI perform code pattern analysis.
[0081] The optimization unit can propose optimizations for execution time and memory usage. For example, the optimization unit may propose reducing execution time or memory usage. The optimization unit uses code optimization algorithms to make specific suggestions for improving execution speed. For example, the optimization unit may propose loop optimization or removal of unnecessary code. The optimization unit may also propose data structure optimization or improved memory management to reduce memory usage. For example, the optimization unit may propose optimizing data structure selection or memory allocation methods. The optimization unit may also propose garbage collection optimization or memory leak prevention measures. As a result, system performance is improved by proposing optimizations for execution time and memory usage. Some or all of the above processing in the optimization unit may be performed using, for example, a generative AI, or without a generative AI. For example, the optimization unit can input code data into a generative AI and have the generative AI execute the optimization suggestions.
[0082] The identification unit can automatically identify security risks. For example, the identification unit can perform vulnerability scans and security tests. The identification unit can automatically identify security risks in code and notify developers. For example, the identification unit can detect potential security vulnerabilities and suggest ways to fix them. The identification unit can also identify risks that should be prioritized based on their type and impact. For example, the identification unit can identify common security vulnerabilities such as SQL injection and cross-site scripting. The identification unit can evaluate the impact of security risks and identify risks that should be prioritized. This enhances security by automatically identifying security risks. Some or all of the above processes in the identification unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the identification unit can input code data into a generative AI and have the generative AI perform security risk identification.
[0083] The style section can automatically suggest correcting code formatting based on a style guide. For example, the style section checks code indentation, spacing, naming conventions, etc., based on the style guide and makes suggestions to maintain a consistent coding style. The style section can suggest unifying code indentation and unifying variable naming conventions. The style section also has the functionality to automatically correct code formatting based on a style guide. For example, the style section automatically corrects code indentation to conform to the style guide format. The style section automatically corrects variable naming conventions and applies consistent naming conventions. This ensures code consistency by automatically suggesting code formatting corrections based on the style guide. Some or all of the above processes in the style section may be performed using, for example, a generative AI, or not using a generative AI. For example, the style section can input code data into a generative AI and have the generative AI execute style correction suggestions.
[0084] The feedback unit can analyze and provide feedback on code in real time. For example, the feedback unit provides real-time feedback while a developer is writing code. The feedback unit displays code analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time. For example, when a developer adds new code, the feedback unit can immediately display the analysis results and optimization suggestions for that code. Through real-time feedback, the feedback unit helps developers conduct code reviews efficiently. This allows developers to immediately understand areas for improvement by analyzing and providing feedback on code in real time. Some or all of the above processes in the feedback unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the feedback unit can input code data into a generative AI and have the generative AI perform real-time feedback.
[0085] The learning unit can improve functionality based on user feedback. For example, the learning unit collects user feedback and uses machine learning algorithms to improve the system's functionality. Based on user feedback, the learning unit learns new optimization techniques and methods for identifying security risks, and incorporates these into the next code review. For example, based on feedback from developers, the learning unit learns algorithms to improve the accuracy of optimization suggestions. The learning unit can also learn new techniques to improve the accuracy of security risk identification. This improves the system's accuracy by improving functionality based on user feedback. Some or all of the above processes in the learning unit may be performed using, for example, generative AI, or without generative AI. For example, the learning unit can input user feedback data into a generative AI and have the generative AI perform learning for functionality improvement.
[0086] The analysis unit can estimate the user's emotions and adjust the depth of the analysis based on the estimated emotions. For example, if the user is stressed, the analysis unit can reduce the depth of the analysis and provide simple suggestions. If the user is relaxed, the analysis unit can perform a detailed analysis and provide deeper insights. If the user is in a hurry, the analysis unit can prioritize analyzing only the important parts and provide quick feedback. In this way, by adjusting the depth of the analysis according to the user's emotions, the analysis unit can provide analysis results that are appropriate for the user. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. Generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the analysis unit may be performed using a generative AI, or not using a generative AI. For example, the analysis unit can input user emotion data into a generative AI and have the generative AI perform emotion-based depth adjustments.
[0087] The analysis unit can prioritize the analysis of specific bug patterns by referring to past bug history when analyzing code. For example, the analysis unit can prioritize the analysis of bug patterns that have occurred frequently in the past and propose measures to prevent recurrence. The analysis unit can analyze bug patterns that have occurred frequently in a particular project and propose project-specific improvements. The analysis unit can also analyze the bug history and focus on analyzing code sections in which a specific developer was involved. This allows it to prioritize the analysis of specific bug patterns by referring to past bug history and propose measures to prevent recurrence. Some or all of the above processes in the analysis unit may be performed using, for example, a generation AI, or not using a generation AI. For example, the analysis unit can input bug history data into a generation AI and have the generation AI perform bug pattern analysis.
[0088] The analysis unit can learn the developer's coding style and perform individually optimized analysis when analyzing code. For example, the analysis unit can learn the developer's past code and perform analysis tailored to that style. Based on the developer's coding style, the analysis unit can prioritize the analysis of specific patterns. The analysis unit can also provide optimal feedback tailored to the developer's style. This allows for more appropriate feedback by performing analysis tailored to the developer's coding style. Some or all of the above processes in the analysis unit may be performed using, for example, a generative AI, or without a generative AI. For example, the analysis unit can input the developer's code data into a generative AI and have the generative AI perform coding style learning and optimized analysis.
[0089] The analysis unit can estimate the user's emotions and adjust the display method of the analysis results based on the estimated user emotions. For example, if the user is nervous, the analysis unit can provide a simple and highly visible display method. If the user is relaxed, the analysis unit can provide a display method that includes detailed information. If the user is in a hurry, the analysis unit can provide a display method that gets straight to the point. In this way, by adjusting the display method of the analysis results according to the user's emotions, a display method suitable for the user can be provided. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or a generative AI. The generative AI is a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples. Some or all of the above processing in the analysis unit may be performed using a generative AI, for example, or without a generative AI. For example, the analysis unit can input user emotion data into a generative AI and have the generative AI perform the adjustment of the display method based on emotions.
[0090] The analysis unit can prioritize code analysis by considering the project's progress. For example, in the early stages of a project, the analysis unit prioritizes analyzing basic bugs and style issues. In the middle stages of the project, it can focus on analyzing performance and security issues. In the final stages of the project, the analysis unit analyzes the overall quality as a final check before release. This allows for efficient code review by performing analyses at the appropriate time, taking the project's progress into consideration. Some or all of the above processes in the analysis unit may be performed using, for example, a generative AI, or not. For example, the analysis unit can input project progress data into the generative AI and have the generative AI prioritize the analysis.
[0091] The analysis unit can analyze similar patterns by referring to the codebases of other projects when analyzing code. For example, the analysis unit can refer to bug patterns found in other projects and analyze similar problems. The analysis unit can refer to optimization methods in other projects and propose similar improvements. The analysis unit can also refer to security risks in other projects and analyze similar risks. This allows the analysis unit to analyze similar patterns and propose preventative measures by referring to the codebases of other projects. Some or all of the above processes in the analysis unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the analysis unit can input code data from other projects into a generative AI and have the generative AI perform the analysis of similar patterns.
[0092] The optimization unit can estimate the user's emotions and adjust the level of detail of optimization suggestions based on the estimated emotions. For example, if the user is stressed, the optimization unit can provide concise optimization suggestions. If the user is relaxed, the optimization unit can provide detailed optimization suggestions. If the user is in a hurry, the optimization unit can prioritize only important optimization suggestions. In this way, by adjusting the level of detail of optimization suggestions according to the user's emotions, it is possible to provide optimization suggestions that are appropriate for the user. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. Generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the optimization unit may be performed using a generative AI, or not using a generative AI. For example, the optimization unit can input user emotion data into a generative AI and have the generative AI perform the adjustment of the level of detail of optimization suggestions based on emotions.
[0093] The optimization unit can make optimal suggestions by referring to past optimization history when proposing optimizations. For example, the optimization unit can refer to past successful optimization methods and make similar suggestions. The optimization unit can analyze past optimization history and make suggestions based on specific patterns. The optimization unit can also make suggestions at the optimal timing based on past optimization history. In this way, by referring to past optimization history, the optimization unit makes optimal suggestions and improves system performance. Some or all of the above processing in the optimization unit may be performed using, for example, a generative AI, or without a generative AI. For example, the optimization unit can input optimization history data into a generative AI and have the generative AI execute optimization suggestions.
[0094] The optimization unit can make optimization suggestions optimized for a specific hardware environment. For example, the optimization unit can propose code optimized for a specific CPU architecture. The optimization unit can propose code optimized for a specific memory configuration. The optimization unit can also propose code optimized for a specific GPU environment. By making suggestions optimized for a specific hardware environment, the system performance is maximized. Some or all of the above processing in the optimization unit may be performed using, for example, a generative AI, or without a generative AI. For example, the optimization unit can input hardware environment data into a generative AI and have the generative AI execute the optimization suggestion.
[0095] The optimization unit can estimate the user's emotions and determine the priority of optimization suggestions based on the estimated emotions. For example, if the user is stressed, the optimization unit will prioritize important optimization suggestions. If the user is relaxed, the optimization unit can provide detailed optimization suggestions. If the user is in a hurry, the optimization unit will prioritize optimization suggestions that can be quickly implemented. In this way, by determining the priority of optimization suggestions according to the user's emotions, the optimization unit can provide optimization suggestions that are appropriate for the user. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. Generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the optimization unit may be performed using a generative AI, or not using a generative AI. For example, the optimization unit can input user emotion data into a generative AI and have the generative AI perform the priority determination of optimization suggestions based on emotions.
[0096] The optimization unit can adjust the timing of its optimization proposals, taking the project schedule into consideration. For example, in the early stages of a project, the optimization unit can make basic optimization proposals. In the middle of the project, it can make optimization proposals to improve performance. In the final stages of the project, the optimization unit can make optimization proposals as final adjustments before release. This allows for optimization proposals to be made at the appropriate time, taking the project schedule into consideration, and enables efficient code review. Some or all of the above processes in the optimization unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the optimization unit can input project schedule data into a generative AI and have the generative AI adjust the timing of optimization proposals.
[0097] The optimization unit can make optimization suggestions by referencing optimization methods used by other developers. For example, the optimization unit can refer to successful optimization methods used by other developers and make similar suggestions. The optimization unit can analyze the optimization history of other developers and make suggestions based on specific patterns. The optimization unit can also make suggestions at the optimal timing based on the optimization methods of other developers. In this way, by referencing the optimization methods of other developers, the optimization unit makes optimal suggestions and improves system performance. Some or all of the above processes in the optimization unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the optimization unit can input optimization method data from other developers into a generative AI and have the generative AI execute optimization suggestions.
[0098] The identification unit can estimate the user's emotions and adjust the method of notifying users of security risks based on the estimated emotions. For example, if the user is tense, the identification unit can provide a simple and highly visible notification method. If the user is relaxed, the identification unit can provide a notification method that includes detailed information. If the user is in a hurry, the identification unit can provide a notification method that gets straight to the point. In this way, by adjusting the method of notifying users of security risks according to their emotions, a notification method that is appropriate for the user can be provided. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. The generative AI is a text generation AI (e.g., LLM) or a multimodal generation AI, but is not limited to such examples. Some or all of the above processing in the identification unit may be performed using a generative AI, or not using a generative AI. For example, the identification unit can input user emotion data into a generative AI and have the generative AI perform the emotion-based adjustment of the notification method.
[0099] The identification unit can prioritize the identification of specific risks by referring to past security incidents when identifying security risks. For example, the identification unit can refer to past security incidents and prioritize the identification of similar risks. The identification unit can prioritize the identification of security risks that have occurred frequently in a particular project. The identification unit can also analyze the history of security incidents and prioritize the identification of risks based on specific patterns. This allows for the prioritization of specific risks by referring to past security incidents, thereby strengthening security. Some or all of the above processing in the identification unit may be performed using, for example, a generative AI, or without a generative AI. For example, the identification unit can input security incident data into a generative AI and have the generative AI perform risk identification.
[0100] The identification unit can perform risk assessments based on specific industry standards when identifying security risks. For example, the identification unit can perform security risk assessments based on the OWASP Top 10. The identification unit can perform security risk assessments based on NIST guidelines. The identification unit can also perform security risk assessments based on ISO 27001. This improves the accuracy of security risk identification by performing risk assessments based on specific industry standards. Some or all of the above processing in the identification unit may be performed using, for example, a generating AI, or without a generating AI. For example, the identification unit can input industry standard data into a generating AI and have the generating AI perform the risk assessment.
[0101] The identification unit can estimate the user's emotions and adjust the importance of security risks based on the estimated emotions. For example, if the user is stressed, the identification unit will prioritize notifying users of high-priority risks. If the user is relaxed, the identification unit can provide detailed risk information. If the user is in a hurry, the identification unit will quickly notify users of only high-priority risks. This allows for a risk assessment tailored to the user by adjusting the importance of security risks according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. Generative AI may be, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the identification unit may be performed using a generative AI, or not. For example, the identification unit can input user emotion data into a generative AI and have the generative AI perform emotion-based risk importance adjustments.
[0102] The identification unit can prioritize security risks by considering the project's progress when identifying them. For example, in the early stages of a project, the identification unit prioritizes identifying basic security risks. In the middle stages of the project, the identification unit can focus on identifying performance and security issues. In the final stages of the project, the identification unit identifies overall security risks as a final check before release. This allows for the identification of risks at the appropriate time by considering the project's progress, enabling efficient security measures. Some or all of the above processing in the identification unit may be performed using, for example, a generative AI, or not. For example, the identification unit can input project progress data into a generative AI and have the generative AI perform the risk prioritization.
[0103] The identification unit can identify security risks by referring to the security history of other projects when identifying security risks. For example, the identification unit can refer to security risks discovered in other projects and identify similar risks. The identification unit can analyze the security history of other projects and identify risks based on specific patterns. The identification unit can also identify risks at the optimal time based on the security risks of other projects. This allows for the identification of risks and the proposal of preventative measures by referring to the security history of other projects. Some or all of the above processing in the identification unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the identification unit can input security history data from other projects into a generative AI and have the generative AI perform risk identification.
[0104] The style unit can estimate the user's emotions and adjust the level of detail in style suggestions based on the estimated emotions. For example, if the user is stressed, the style unit can provide concise style suggestions. If the user is relaxed, the style unit can provide detailed style suggestions. If the user is in a hurry, the style unit can prioritize only important style suggestions. This allows the style unit to provide style suggestions that are appropriate for the user by adjusting the level of detail in style suggestions according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. Generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the style unit may be performed using a generative AI, or not using a generative AI. For example, the style unit can input user emotion data into a generative AI and have the generative AI perform the adjustment of the level of detail in style suggestions based on emotions.
[0105] The style department can, when proposing styles, refer to past style guide violation history to prioritize suggesting specific violations. For example, the style department can prioritize suggesting style guide violations that have occurred frequently in the past. The style department can also prioritize suggesting style guide violations that have occurred frequently in a particular project. The style department can also analyze the style guide violation history and make suggestions based on specific patterns. This allows for prioritizing the suggestion of specific violations by referring to past style guide violation history, thereby maintaining style consistency. Some or all of the above processing in the style department may be performed using, for example, a generative AI, or not using a generative AI. For example, the style department can input style guide violation history data into a generative AI and have the generative AI execute violation suggestions.
[0106] The style department can make style suggestions based on specific coding conventions when proposing styles. For example, the style department can make style suggestions based on Google's coding conventions. The style department can make style suggestions based on Airbnb's coding conventions. The style department can also make style suggestions based on coding conventions adopted in a specific project. This ensures style consistency by making suggestions based on specific coding conventions. Some or all of the above processing in the style department may be performed using, for example, a generative AI, or not using a generative AI. For example, the style department can input coding convention data into a generative AI and have the generative AI execute style suggestions.
[0107] The style unit can estimate the user's emotions and prioritize style suggestions based on those emotions. For example, if the user is stressed, the style unit will prioritize important style suggestions. If the user is relaxed, the style unit can provide detailed style suggestions. If the user is in a hurry, the style unit will prioritize style suggestions that can be quickly implemented. This allows the style unit to provide style suggestions that are appropriate for the user by prioritizing them according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, such as an emotion engine or generative AI. Generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the style unit may be performed using a generative AI, or not. For example, the style unit can input user emotion data into a generative AI and have the generative AI perform the priority determination of style suggestions based on emotions.
[0108] The style department can adjust the timing of style proposals, taking into account the project's progress. For example, in the early stages of a project, the style department can make basic style proposals. In the middle of the project, it can make suggestions to maintain style consistency. In the final stages of the project, the style department can make style proposals as final adjustments before release. This allows for timely style proposals and efficient code reviews by considering the project's progress. Some or all of the above processes in the style department may be performed using, for example, a generative AI, or not. For example, the style department can input project progress data into the generative AI and have the generative AI adjust the timing of style proposals.
[0109] The style unit can make style suggestions by referencing the coding styles of other developers. For example, the style unit can refer to the coding styles of other developers that have been successful and make similar suggestions. The style unit can analyze the style history of other developers and make suggestions based on specific patterns. The style unit can also make suggestions at the optimal time based on the coding styles of other developers. This ensures that optimal suggestions are made and style consistency is maintained by referencing the coding styles of other developers. Some or all of the above processes in the style unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the style unit can input coding style data of other developers into a generative AI and have the generative AI execute style suggestions.
[0110] The feedback unit can estimate the user's emotions and adjust the content of the feedback based on the estimated emotions. For example, if the user is stressed, the feedback unit can provide concise feedback. If the user is relaxed, the feedback unit can provide detailed feedback. If the user is in a hurry, the feedback unit can prioritize providing only important feedback. In this way, by adjusting the content of the feedback according to the user's emotions, it is possible to provide feedback that is appropriate for the user. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. Generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the feedback unit may be performed using a generative AI, or not using a generative AI. For example, the feedback unit can input user emotion data into a generative AI and have the generative AI adjust the content of the feedback based on the emotion.
[0111] The feedback unit can provide optimal feedback by referring to past feedback history during the feedback process. For example, the feedback unit can refer to past successful feedback methods and provide similar feedback. The feedback unit can analyze past feedback history and provide feedback based on specific patterns. The feedback unit can also provide feedback at the optimal timing based on past feedback history. This improves the accuracy of the system by providing optimal feedback through the referencing of past feedback history. Some or all of the above processing in the feedback unit may be performed using, for example, a generative AI, or without a generative AI. For example, the feedback unit can input feedback history data into a generative AI and have the generative AI execute the optimal feedback.
[0112] The feedback unit can provide feedback tailored to specific project phases. For example, in the early stages of a project, the feedback unit can provide basic feedback. In the middle stages of a project, it can provide feedback for performance improvement. In the final stages of a project, the feedback unit can provide feedback as final adjustments before release. This enables efficient code review by providing feedback tailored to specific project phases. Some or all of the above processes in the feedback unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the feedback unit can input project phase data into a generative AI and have the generative AI adjust the timing of the feedback.
[0113] The feedback unit can estimate the user's emotions and prioritize feedback based on those emotions. For example, if the user is stressed, the feedback unit will prioritize important feedback. If the user is relaxed, the feedback unit can provide detailed feedback. If the user is in a hurry, the feedback unit will prioritize feedback that can be acted on quickly. This allows the system to provide user-appropriate feedback by prioritizing feedback according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, such as an emotion engine or generative AI. Generative AI may be, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the processing described above in the feedback unit may be performed using or without a generative AI. For example, the feedback unit can input user emotion data into a generative AI and have the generative AI perform emotion-based feedback prioritization.
[0114] The feedback unit can adjust the timing of feedback, taking into account the project's progress. For example, the feedback unit can provide basic feedback in the early stages of the project. In the middle stages of the project, it can provide feedback to improve performance. In the final stages of the project, it can provide feedback as a final adjustment before release. This allows for timely feedback and efficient code review by considering the project's progress. Some or all of the above processes in the feedback unit may be performed using, for example, a generative AI, or not. For example, the feedback unit can input project progress data into a generative AI and have the generative AI adjust the timing of feedback.
[0115] The feedback unit can provide feedback by referring to the feedback history of other developers. For example, the feedback unit can refer to successful feedback methods used by other developers and provide similar feedback. The feedback unit can analyze the feedback history of other developers and provide feedback based on specific patterns. The feedback unit can also provide feedback at the optimal timing based on the feedback history of other developers. This allows the system to provide optimal feedback and improve its accuracy by referring to the feedback history of other developers. Some or all of the above processing in the feedback unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the feedback unit can input the feedback history data of other developers into a generative AI and have the generative AI execute the feedback.
[0116] The learning unit can estimate the user's emotions and select training data based on the estimated emotions. For example, if the user is stressed, the learning unit can select concise training data. If the user is relaxed, the learning unit can select detailed training data. If the user is in a hurry, the learning unit can prioritize selecting only the most important training data. This allows the learning unit to provide training data appropriate to the user by selecting training data according to the user's emotions. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. Generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the learning unit may be performed using a generative AI, or not. For example, the learning unit can input user emotion data into a generative AI and have the generative AI perform emotion-based training data selection.
[0117] The learning unit can optimize its learning algorithm by referring to past learning data during the learning process. For example, the learning unit can refer to past successful learning data and apply a similar learning algorithm. The learning unit can analyze past learning data and apply a learning algorithm based on specific patterns. The learning unit can also apply the learning algorithm at the optimal timing based on past learning data. This optimizes the learning algorithm by referring to past learning data and improves the accuracy of the system. Some or all of the above processes in the learning unit may be performed using, for example, a generative AI, or not using a generative AI. For example, the learning unit can input past learning data into a generative AI and have the generative AI perform the optimization of the learning algorithm.
[0118] The learning unit can estimate the user's emotions and adjust the learning frequency based on the estimated emotions. For example, if the user is stressed, the learning unit can lower the learning frequency. If the user is relaxed, the learning unit can increase the learning frequency. If the user is in a hurry, the learning unit can prioritize only important learning. In this way, by adjusting the learning frequency according to the user's emotions, an appropriate learning frequency can be provided to the user. Emotion estimation is achieved using an emotion estimation function, for example, using an emotion engine or generative AI. The generative AI is, but is not limited to, text generation AI (e.g., LLM) or multimodal generation AI. Some or all of the above processing in the learning unit may be performed using a generative AI, or not using a generative AI. For example, the learning unit can input user emotion data into a generative AI and have the generative AI perform emotion-based adjustment of the learning frequency.
[0119] The learning unit can weight the training data during training, taking into account the project's progress. For example, in the early stages of the project, the learning unit may prioritize basic training data. In the middle stages of the project, the learning unit may prioritize training data for performance improvement. In the final stages of the project, the learning unit may prioritize training data as final adjustments before release. This allows for efficient training by weighting the training data at the appropriate time, taking the project's progress into account. Some or all of the above processing in the learning unit may be performed using, for example, a generative AI, or without a generative AI. For example, the learning unit can input project progress data into a generative AI and have the generative AI perform the weighting of the training data.
[0120] The system according to the embodiment is not limited to the example described above, and various modifications are possible, for example, as follows.
[0121] The analysis unit can refer to a developer's past code review history during code analysis to suggest the optimal analysis method for a particular developer. For example, the analysis unit can analyze past code review history and prioritize analyzing mistakes that a particular developer frequently makes. The analysis unit can also adjust the depth of analysis considering the code patterns that a particular developer excels at. This allows for efficient code review by performing analysis optimized for each developer.
[0122] The optimization unit, when proposing code optimizations, can refer to a developer's past optimization history to provide optimal suggestions for that specific developer. For example, the optimization unit analyzes past optimization history and prioritizes suggesting optimization methods that a particular developer excels at. It can also suggest avoiding optimization methods that a particular developer is not comfortable with. This allows for more efficient code reviews by providing optimized suggestions for each developer.
[0123] The identification unit can identify security risks by referencing the developer's past security history, enabling optimal risk identification for specific developers. For example, the identification unit analyzes past security history and prioritizes identifying security mistakes frequently made by a particular developer. The identification unit can also adjust the severity of risks by considering the security measures that a particular developer excels at. This allows for optimized risk identification for each developer, resulting in more efficient security measures.
[0124] The style department can provide optimal style suggestions for specific developers by referencing their past style history when suggesting code styles. For example, it can analyze past style history and prioritize suggesting style errors that a particular developer frequently makes. The style department can also adjust the level of detail of its suggestions, taking into account the style guides that a particular developer is proficient with. This enables efficient code reviews by providing style suggestions optimized for each developer.
[0125] The feedback system can provide optimal feedback to specific developers by referencing their past feedback history when providing code feedback. For example, it can analyze past feedback history and prioritize providing feedback that a particular developer frequently requests. The feedback system can also adjust the level of detail in feedback, taking into account the feedback format that a particular developer excels at. This allows for efficient code reviews by providing feedback optimized for each developer.
[0126] The analysis unit can estimate the user's emotions and adjust the analysis priority based on those emotions. For example, if the user is stressed, it can prioritize the analysis of only the most important parts and provide quick feedback. If the user is relaxed, it can perform a detailed analysis and provide deeper insights. In this way, by adjusting the analysis priority according to the user's emotions, it can provide analysis results that are appropriate for the user.
[0127] The optimization unit can estimate the user's emotions and adjust the timing of optimization suggestions based on those emotions. For example, if the user is stressed, it will provide concise optimization suggestions and prioritize suggestions that can be quickly implemented. If the user is relaxed, it can provide detailed optimization suggestions and deeper insights. By adjusting the timing of optimization suggestions according to the user's emotions, it can provide optimization suggestions that are appropriate for the user.
[0128] The identification unit can estimate the user's emotions and adjust the frequency of security risk notifications based on the estimated emotions. For example, if the user is stressed, only important security risks will be prioritized for notification. If the user is relaxed, detailed security risk information can be provided. In this way, by adjusting the frequency of security risk notifications according to the user's emotions, a notification method that is appropriate for the user can be provided.
[0129] The style section can estimate the user's emotions and adjust the timing of style suggestions based on those emotions. For example, if the user is stressed, it can provide concise style suggestions and prioritize suggestions that can be quickly implemented. If the user is relaxed, it can provide detailed style suggestions that offer deeper insights. By adjusting the timing of style suggestions according to the user's emotions, it can provide style suggestions that are appropriate for the user.
[0130] The feedback unit can estimate the user's emotions and adjust the level of detail in the feedback based on that estimation. For example, if the user is stressed, it can provide concise feedback and prioritize actionable suggestions. If the user is relaxed, it can provide detailed feedback and deeper insights. This allows the system to provide user-friendly feedback by adjusting the level of detail according to the user's emotions.
[0131] The following briefly describes the processing flow for example form 2.
[0132] Step 1: The analysis unit analyzes the software code. The analysis unit performs static and dynamic analysis to check the code's structure, syntax, and runtime behavior. For example, it uses static analysis tools to detect syntax errors and potential bugs in the code, and dynamic analysis tools to analyze runtime memory usage and performance. Step 2: The optimization unit proposes optimizations for execution speed based on the code analyzed by the analysis unit. The optimization unit proposes reducing execution time and memory usage, and uses specific optimization algorithms to optimize loops, remove unnecessary code, optimize data structures, and improve memory management. Step 3: The identification unit identifies security risks based on the code analyzed by the analysis unit. The identification unit performs vulnerability scans and security tests to detect potential security vulnerabilities and proposes methods for remediation. Based on the type and impact of the security risks, the identification unit identifies risks that should be addressed as priority. Step 4: The Style Department makes suggestions to maintain style consistency based on the code analyzed by the Analysis Department. The Style Department makes suggestions to automatically correct the code formatting based on the style guide, checking code indentation, spacing, naming conventions, etc., and makes suggestions to maintain a consistent coding style. Step 5: The feedback unit provides real-time feedback on the suggestions made by the optimization, identification, and styling units. The feedback unit displays analysis results, optimization suggestions, security risk notifications, and style modification suggestions in real time while the developer is writing code, supporting efficient code review. Step 6: The learning unit improves functionality based on user feedback obtained from the feedback unit. The learning unit collects user feedback and uses machine learning algorithms to improve the system's functionality. This allows it to learn new optimization techniques and methods for identifying security risks, which will then be incorporated into the next code review.
[0133] The specific processing unit 290 transmits the result of the specific processing to the smart device 14. In the smart device 14, the control unit 46A causes the output device 40 to output the result of the specific processing. The microphone 38B acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 38B to the data processing device 12. In the data processing device 12, the specific processing unit 290 acquires the audio data.
[0134] Data generation model 58 is a form of so-called generative AI (Artificial Intelligence). An example of data generation model 58 is ChatGPT (registered trademark) (Internet search).<URL: https: / / openai.com / blog / chatgpt> Examples of generative AI include text generation AI, image generation AI, and multimodal generation AI. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and with inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats from audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVMs), k-means clustering, convolutional neural networks (CNNs), recurrent neural networks (RNNs), generative adversarial networks (GANs), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each of the above parts is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example.Furthermore, processing performed by AI, including generative AI, may be replaced with rule-based processing, and rule-based processing may be replaced with processing performed by AI, including generative AI.
[0135] Furthermore, the processing performed by the data processing system 10 described above is carried out by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart device 14, but it may also be carried out by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart device 14. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the smart device 14 or an external device, and the smart device 14 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0136] Each of the multiple elements described above, including the analysis unit, optimization unit, identification unit, style unit, feedback unit, and learning unit, is implemented in at least one of the smart device 14 and the data processing unit 12. For example, the analysis unit is implemented by the processor 46 of the smart device 14 and performs static and dynamic analysis of the software code. The optimization unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for optimizing execution speed. The identification unit is implemented by the control unit 46A of the smart device 14 and identifies security risks. The style unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for maintaining consistency in the code style. The feedback unit is implemented by the control unit 46A of the smart device 14 and provides real-time feedback. The learning unit is implemented by the specific processing unit 290 of the data processing unit 12 and improves functionality based on user feedback. The correspondence between each unit and the device or control unit is not limited to the example described above and can be modified in various ways.
[0137] [Second Embodiment] Figure 3 shows an example of the configuration of the data processing system 210 according to the second embodiment.
[0138] As shown in Figure 3, the data processing system 210 includes a data processing device 12 and smart glasses 214. An example of the data processing device 12 is a server.
[0139] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN and / or LAN.
[0140] The smart glasses 214 include a computer 36, a microphone 238, a speaker 240, a camera 42, and a communication interface 44. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, and camera 42 are also connected to the bus 52.
[0141] The microphone 238 receives voice signals from the user and accepts instructions from the user. The microphone 238 captures the voice signals from the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0142] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, which captures images of the area around the user (for example, an imaging range defined by a field of view equivalent to the field of vision of a typical healthy person).
[0143] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0144] Figure 4 shows an example of the main functions of the data processing device 12 and the smart glasses 214. As shown in Figure 4, the data processing device 12 performs specific processing by the processor 28. The storage 32 stores the specific processing program 56.
[0145] The processor 28 reads a specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 acting as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0146] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0147] In the smart glasses 214, specific processing is performed by the processor 46. The storage 50 stores a specific processing program 60. The processor 46 reads the specific processing program 60 from the storage 50 and executes the read specific processing program 60 on the RAM 48. The specific processing is realized by the processor 46 acting as a control unit 46A according to the specific processing program 60 executed on the RAM 48. The smart glasses 214 also have a data generation model 58 and an emotion identification model 59, similar to the data generation model and emotion identification model 59, and can perform processing similar to that of the specific processing unit 290 using these models.
[0148] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device that has the data generation model 58. Also, the data processing device 12 may be a server device or a terminal device owned by the user (for example, a mobile phone, robot, home appliance, etc.).
[0149] The specific processing unit 290 transmits the result of the specific processing to the smart glasses 214. In the smart glasses 214, the control unit 46A causes the speaker 240 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0150] The data generation model 58 is a so-called generative AI. An example of a data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats such as audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVM), k-means clustering, convolutional neural networks (CNN), recurrent neural networks (RNN), generative adversarial networks (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each part described above is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example. Also, processing performed by an AI including a generative AI may be replaced by rule-based processing, and rule-based processing may be replaced by processing performed by an AI including a generative AI.
[0151] The data processing system 210 according to the second embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 210 is performed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the smart glasses 214, but it may also be performed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the smart glasses 214. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the smart glasses 214 or an external device, and the smart glasses 214 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0152] Each of the multiple elements described above, including the analysis unit, optimization unit, identification unit, style unit, feedback unit, and learning unit, is implemented in at least one of the smart glasses 214 and the data processing unit 12. For example, the analysis unit is implemented by the processor 46 of the smart glasses 214 and performs static and dynamic analysis of the software code. The optimization unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for optimizing execution speed. The identification unit is implemented by the control unit 46A of the smart glasses 214 and identifies security risks. The style unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for maintaining consistency in the code style. The feedback unit is implemented by the control unit 46A of the smart glasses 214 and provides real-time feedback. The learning unit is implemented by the specific processing unit 290 of the data processing unit 12 and improves functionality based on user feedback. The correspondence between each unit and the device or control unit is not limited to the examples described above and can be modified in various ways.
[0153] [Third Embodiment] Figure 5 shows an example of the configuration of the data processing system 310 according to the third embodiment.
[0154] As shown in Figure 5, the data processing system 310 includes a data processing device 12 and a headset terminal 314. An example of the data processing device 12 is a server.
[0155] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN and / or LAN.
[0156] The headset terminal 314 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a display 343. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and display 343 are also connected to the bus 52.
[0157] The microphone 238 receives voice signals from the user and accepts instructions from the user. The microphone 238 captures the voice signals from the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0158] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS (Complementary Metal-Oxide-Semiconductor) image sensor or a CCD (Charge Coupled Device) image sensor, which captures images of the area around the user (for example, an imaging range defined by a field of view equivalent to the field of vision of a typical healthy person).
[0159] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0160] Figure 6 shows an example of the main functions of the data processing device 12 and the headset terminal 314. As shown in Figure 6, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0161] The processor 28 reads a specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 acting as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0162] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0163] In the headset terminal 314, specific processing is performed by the processor 46. The storage 50 stores a specific program 60. The processor 46 reads the specific program 60 from the storage 50 and executes the read specific program 60 on the RAM 48. The specific processing is realized by the processor 46 acting as a control unit 46A according to the specific program 60 executed on the RAM 48. The headset terminal 314 also has a data generation model 58 and an emotion identification model 59, similar to the data generation model and emotion identification model 59, and can perform processing similar to that of the specific processing unit 290 using these models.
[0164] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device that has the data generation model 58. Also, the data processing device 12 may be a server device or a terminal device owned by the user (for example, a mobile phone, robot, home appliance, etc.).
[0165] The specific processing unit 290 transmits the result of the specific processing to the headset terminal 314. In the headset terminal 314, the control unit 46A causes the speaker 240 and display 343 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0166] The data generation model 58 is a so-called generative AI. An example of a data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats such as audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVM), k-means clustering, convolutional neural networks (CNN), recurrent neural networks (RNN), generative adversarial networks (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each part described above is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example. Also, processing performed by an AI including a generative AI may be replaced by rule-based processing, and rule-based processing may be replaced by processing performed by an AI including a generative AI.
[0167] The data processing system 310 according to the third embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 310 is performed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the headset terminal 314, but may also be performed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the headset terminal 314. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the headset terminal 314 or an external device, and the headset terminal 314 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0168] Each of the multiple elements described above, including the analysis unit, optimization unit, identification unit, style unit, feedback unit, and learning unit, is implemented in at least one of the headset terminal 314 and the data processing unit 12. For example, the analysis unit is implemented by the processor 46 of the headset terminal 314 and performs static and dynamic analysis of the software code. The optimization unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for optimizing execution speed. The identification unit is implemented by the control unit 46A of the headset terminal 314 and identifies security risks. The style unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for maintaining consistency in the code style. The feedback unit is implemented by the control unit 46A of the headset terminal 314 and provides real-time feedback. The learning unit is implemented by the specific processing unit 290 of the data processing unit 12 and improves functionality based on user feedback. The correspondence between each unit and the device or control unit is not limited to the example described above and can be modified in various ways.
[0169] [Fourth Embodiment] Figure 7 shows an example of the configuration of the data processing system 410 according to the fourth embodiment.
[0170] As shown in Figure 7, the data processing system 410 includes a data processing device 12 and a robot 414. An example of the data processing device 12 is a server.
[0171] The data processing device 12 comprises a computer 22, a database 24, and a communication interface 26. The computer 22 comprises a processor 28, RAM 30, and storage 32. The processor 28, RAM 30, and storage 32 are connected to a bus 34. The database 24 and the communication interface 26 are also connected to the bus 34. The communication interface 26 is connected to a network 54. An example of the network 54 is a WAN and / or LAN.
[0172] The robot 414 includes a computer 36, a microphone 238, a speaker 240, a camera 42, a communication interface 44, and a controlled object 443. The computer 36 includes a processor 46, RAM 48, and storage 50. The processor 46, RAM 48, and storage 50 are connected to a bus 52. The microphone 238, speaker 240, camera 42, and controlled object 443 are also connected to the bus 52.
[0173] The microphone 238 receives voice signals from the user and accepts instructions from the user. The microphone 238 captures the voice signals from the user, converts the captured voice into audio data, and outputs it to the processor 46. The speaker 240 outputs audio according to the instructions from the processor 46.
[0174] Camera 42 is a small digital camera equipped with an optical system including a lens, aperture, and shutter, and an image sensor such as a CMOS image sensor or CCD image sensor, which captures images of the area around the user (for example, an imaging range defined by a field of view equivalent to the field of vision of a typical healthy person).
[0175] Communication interface 44 is connected to network 54. Communication interfaces 44 and 26 are responsible for the exchange of various information between processor 46 and processor 28 via network 54. The exchange of various information between processor 46 and processor 28 using communication interfaces 44 and 26 is performed in a secure manner.
[0176] The controlled object 443 includes a display device, LEDs in the eyes, and motors that drive the arms, hands, and feet. The posture and gestures of the robot 414 are controlled by controlling the motors of the arms, hands, and feet. Some of the robot 414's emotions can be expressed by controlling these motors. The robot 414's facial expressions can also be expressed by controlling the illumination state of the LEDs in its eyes.
[0177] Figure 8 shows an example of the main functions of the data processing device 12 and the robot 414. As shown in Figure 8, the data processing device 12 performs specific processing using the processor 28. The storage 32 stores the specific processing program 56.
[0178] The processor 28 reads a specific processing program 56 from the storage 32 and executes the read specific processing program 56 on the RAM 30. The specific processing is realized by the processor 28 acting as a specific processing unit 290 according to the specific processing program 56 executed on the RAM 30.
[0179] Storage 32 stores the data generation model 58 and the emotion identification model 59. The data generation model 58 and the emotion identification model 59 are used by the identification processing unit 290. The identification processing unit 290 can estimate the user's emotions using the emotion identification model 59 and perform identification processing using the user's emotions. The emotion estimation function (emotion identification function) using the emotion identification model 59 performs various estimations and predictions regarding the user's emotions, including but not limited to these examples. Furthermore, emotion estimation and prediction also include, for example, emotion analysis.
[0180] In robot 414, specific processing is performed by processor 46. A specific program 60 is stored in storage 50. Processor 46 reads the specific program 60 from storage 50 and executes it on RAM 48. The specific processing is achieved by processor 46 acting as a control unit 46A according to the specific program 60 executed on RAM 48. Robot 414 also has data generation model 58 and emotion identification model 59, similar to those of the robot, and can perform processing similar to that of the specific processing unit 290 using these models.
[0181] Furthermore, other devices besides the data processing device 12 may also have the data generation model 58. For example, a server device may have the data generation model 58. In this case, the data processing device 12 obtains processing results (such as prediction results) using the data generation model 58 by communicating with the server device that has the data generation model 58. Also, the data processing device 12 may be a server device or a terminal device owned by the user (for example, a mobile phone, robot, home appliance, etc.).
[0182] The specific processing unit 290 transmits the result of the specific processing to the robot 414. In the robot 414, the control unit 46A causes the speaker 240 and the controlled object 443 to output the result of the specific processing. The microphone 238 acquires audio indicating user input for the result of the specific processing. The control unit 46A transmits the audio data indicating user input acquired by the microphone 238 to the data processing unit 12. In the data processing unit 12, the specific processing unit 290 acquires the audio data.
[0183] The data generation model 58 is a so-called generative AI. An example of a data generation model 58 is a generative AI such as ChatGPT. The data generation model 58 is obtained by performing deep learning on a neural network. The data generation model 58 is input with prompts containing instructions, and inference data such as audio data representing speech, text data representing text, and image data representing images (e.g., still image data or video data). The data generation model 58 infers from the input inference data according to the instructions indicated by the prompts, and outputs the inference result in one or more data formats such as audio data, text data, and image data. The data generation model 58 includes, for example, text generation AI, image generation AI, and multimodal generation AI. Here, inference refers to, for example, analysis, classification, prediction, and / or summarization. The specific processing unit 290 performs the specific processing described above using the data generation model 58. The data generation model 58 may be a fine-tuned model that outputs inference results from prompts that do not contain instructions, in which case the data generation model 58 can output inference results from prompts that do not contain instructions. In the data processing device 12, etc., there are multiple types of data generation models 58, and the data generation model 58 includes AI other than generative AI. AI other than generative AI includes, for example, linear regression, logistic regression, decision trees, random forests, support vector machines (SVM), k-means clustering, convolutional neural networks (CNN), recurrent neural networks (RNN), generative adversarial networks (GAN), or naive Bayes, and can perform various processes, but is not limited to these examples. Also, the AI may be an AI agent. Furthermore, when the processing of each part described above is performed by the AI, the processing may be performed by the AI in part or in whole, but is not limited to this example. Also, processing performed by an AI including a generative AI may be replaced by rule-based processing, and rule-based processing may be replaced by processing performed by an AI including a generative AI.
[0184] The data processing system 410 according to the fourth embodiment performs the same processing as the data processing system 10 according to the first embodiment. The processing by the data processing system 410 is performed by the specific processing unit 290 of the data processing device 12 or the control unit 46A of the robot 414, but it may also be performed by the specific processing unit 290 of the data processing device 12 and the control unit 46A of the robot 414. In addition, the specific processing unit 290 of the data processing device 12 acquires or collects information necessary for processing from the robot 414 or an external device, and the robot 414 acquires or collects information necessary for processing from the data processing device 12 or an external device.
[0185] Each of the multiple elements described above, including the analysis unit, optimization unit, identification unit, style unit, feedback unit, and learning unit, is implemented in at least one of the robot 414 and the data processing unit 12. For example, the analysis unit is implemented by the processor 46 of the robot 414 and performs static and dynamic analysis of the software code. The optimization unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for optimizing execution speed. The identification unit is implemented by the control unit 46A of the robot 414 and identifies security risks. The style unit is implemented by the specific processing unit 290 of the data processing unit 12 and makes suggestions for maintaining consistency in the style of the code. The feedback unit is implemented by the control unit 46A of the robot 414 and provides real-time feedback. The learning unit is implemented by the specific processing unit 290 of the data processing unit 12 and improves functionality based on user feedback. The correspondence between each unit and the device or control unit is not limited to the example described above and can be changed in various ways.
[0186] Furthermore, the emotion identification model 59, acting as an emotion engine, may determine the user's emotion according to a specific mapping. Specifically, the emotion identification model 59 may determine the user's emotion according to a specific mapping, which is an emotion map (see Figure 9). Similarly, the emotion identification model 59 may also determine the robot's emotion, and the identification processing unit 290 may perform identification processing using the robot's emotion.
[0187] Figure 9 shows the emotion map 400, in which multiple emotions are mapped. In the emotion map 400, emotions are arranged in concentric circles radiating from the center. The closer to the center of the concentric circles, the more primitive the emotions are located. Further out of the concentric circles, emotions representing states and actions arising from mental states are located. Emotion is a concept that includes feelings and mental states. On the left side of the concentric circles, emotions that are generally generated from reactions occurring in the brain are located. On the right side of the concentric circles, emotions that are generally induced by situational judgment are located. Above and below the concentric circles, emotions that are generally generated from reactions occurring in the brain and induced by situational judgment are located. In addition, the emotion of "pleasure" is located on the upper side of the concentric circles, and the emotion of "displeasure" is located on the lower side. Thus, in the emotion map 400, multiple emotions are mapped based on the structure in which emotions arise, and emotions that are likely to occur simultaneously are mapped close together.
[0188] These emotions are distributed at the 3 o'clock position on the Emotion Map 400, and usually fluctuate between feelings of security and anxiety. In the right half of the Emotion Map 400, situational awareness takes precedence over internal feelings, resulting in a calm impression.
[0189] The inside of the Emotion Map 400 represents inner thoughts, while the outside represents actions. Therefore, the further you go from the outside of the Emotion Map 400, the more visible (expressed in actions) your emotions become.
[0190] Here, human emotions are based on various balances, such as posture and blood sugar levels. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. Similarly, in robots, cars, and motorcycles, emotions can be created based on various balances, such as posture and battery level. When these balances deviate from the ideal, it results in discomfort, and when they approach the ideal, it results in pleasure. The emotion map can be generated based, for example, on Dr. Mitsuyoshi's emotion map (Research on a system for analyzing brain physiological signals of speech emotion recognition and emotion, Tokushima University, doctoral dissertation: https: / / ci.nii.ac.jp / naid / 500000375379). The left half of the emotion map contains emotions belonging to a region called "response," where sensation is dominant. The right half of the emotion map contains emotions belonging to a region called "situation," where situational awareness is dominant.
[0191] The emotion map defines two emotions that promote learning. One is the emotion around the middle of the negative "repentance" and "reflection" on the situation side. In other words, it is when the robot experiences negative emotions such as "I never want to feel this way again" or "I don't want to be scolded again." The other is the emotion around the positive "desire" on the reaction side. In other words, it is when the robot has positive feelings such as "I want more" or "I want to know more."
[0192] The emotion identification model 59 inputs user input into a pre-trained neural network, obtains emotion values representing each emotion shown in the emotion map 400, and determines the user's emotion. This neural network is pre-trained based on multiple training data sets, which are combinations of user input and emotion values representing each emotion shown in the emotion map 400. Furthermore, this neural network is trained so that emotions located close together have similar values, as shown in the emotion map 900 in Figure 10. Figure 10 shows an example where multiple emotions such as "reassured," "calm," and "confident" have similar emotion values.
[0193] In the above embodiment, an example was given in which a specific process is performed by a single computer 22. However, the technology of this disclosure is not limited thereto, and a distributed processing method for the specific process may be used, which includes computer 22 and multiple other computers.
[0194] In the above embodiment, an example was given in which the specific processing program 56 is stored in the storage 32, but the technology of this disclosure is not limited thereto. For example, the specific processing program 56 may be stored in a portable, computer-readable, non-temporary storage medium such as a USB (Universal Serial Bus) memory. The specific processing program 56 stored in the non-temporary storage medium is installed in the computer 22 of the data processing device 12. The processor 28 executes specific processing according to the specific processing program 56.
[0195] Alternatively, the specific processing program 56 may be stored in a storage device such as a server connected to the data processing device 12 via the network 54, and the specific processing program 56 may be downloaded and installed on the computer 22 in response to a request from the data processing device 12.
[0196] Furthermore, it is not necessary to store the entirety of the specific processing program 56 in a storage device such as a server connected to the data processing device 12 via the network 54, or to store the entirety of the specific processing program 56 in the storage 32; it is acceptable to store only a portion of the specific processing program 56.
[0197] The following types of processors can be used as hardware resources to perform specific processing. Examples of processors include a CPU, a general-purpose processor that functions as a hardware resource to perform specific processing by executing software, i.e., a program. Other examples of processors include dedicated electrical circuits, such as FPGAs (Field-Programmable Gate Arrays), PLDs (Programmable Logic Devices), or ASICs (Application Specific Integrated Circuits), which have circuit configurations specifically designed to perform specific processing. All of these processors have built-in or connected memory, and all of them perform specific processing by using memory.
[0198] The hardware resource that performs a specific process may consist of one of these various processors, or it may consist of a combination of two or more processors of the same or different types (for example, a combination of multiple FPGAs, or a combination of a CPU and an FPGA). Alternatively, the hardware resource that performs a specific process may consist of a single processor.
[0199] Examples of configurations using a single processor include, firstly, a configuration in which one or more CPUs and software are combined to form a single processor, and this processor functions as a hardware resource that performs a specific process. Secondly, there is a configuration using a processor that realizes the functions of the entire system, including multiple hardware resources that perform a specific process, on a single IC chip, as exemplified by SoCs (System-on-a-chip). In this way, a specific process is realized using one or more of the above types of processors as hardware resources.
[0200] Furthermore, the hardware structure of these various processors can more specifically utilize electrical circuits that combine circuit elements such as semiconductor devices. Also, the specific processing described above is merely an example. Therefore, it goes without saying that unnecessary steps can be deleted, new steps added, or the processing order rearranged, as long as it does not deviate from the main purpose.
[0201] Furthermore, although the above-described examples were divided into four embodiments, some or all of these embodiments may be combined. Also, the smart device 14, smart glasses 214, headset terminal 314, and robot 414 are just examples, and they may be combined, or other devices may be used. Also, although the above-described examples were divided into two embodiments, Embodiment 1 and Embodiment 2, these may be combined.
[0202] The descriptions and illustrations presented above are detailed explanations of the technical aspects of this disclosure and are merely examples of the technical aspects. For example, the above descriptions of the structure, function, operation, and effect are examples of the structure, function, operation, and effect of the technical aspects of this disclosure. Therefore, it goes without saying that you may delete unnecessary parts, add new elements, or replace elements in the descriptions and illustrations presented above, as long as you do not deviate from the essence of the technical aspects of this disclosure. Furthermore, in order to avoid confusion and facilitate understanding of the technical aspects of this disclosure, explanations of common technical knowledge and other things that do not require special explanation to enable the implementation of the technical aspects of this disclosure have been omitted from the descriptions and illustrations presented above.
[0203] All documents, patent applications, and technical standards described herein are incorporated by reference to the same extent as if each individual document, patent application, and technical standard were specifically and individually noted to be incorporated by reference.
[0204] (Note 1) An analysis unit that analyzes software code, An optimization unit proposes an optimization for execution speed based on the code analyzed by the aforementioned analysis unit, An identification unit that identifies security risks based on the code analyzed by the aforementioned analysis unit, A style unit makes suggestions for maintaining style consistency based on the code analyzed by the analysis unit, A feedback unit that provides real-time feedback on the content proposed by the optimization unit, identification unit, and style unit, The system includes a learning unit that improves the function based on user feedback obtained by the feedback unit. A system characterized by the following features. (Note 2) The aforementioned analysis unit, Using machine learning to analyze code patterns The system described in Appendix 1, characterized by the features described herein. (Note 3) The optimization unit, We propose optimizations for execution time and memory usage. The system described in Appendix 1, characterized by the features described herein. (Note 4) The aforementioned identification unit is Automatically identify security risks The system described in Appendix 1, characterized by the features described herein. (Note 5) The aforementioned style section is Suggest automatically correcting code formatting based on style guides. The system described in Appendix 1, characterized by the features described herein. (Note 6) The aforementioned feedback unit is Perform real-time code analysis and feedback. The system described in Appendix 1, characterized by the features described herein. (Note 7) The aforementioned learning unit, We improve features based on user feedback. The system described in Appendix 1, characterized by the features described herein. (Note 8) The aforementioned analysis unit, It estimates the user's emotions and adjusts the depth of the analysis based on the estimated user emotions. The system described in Appendix 1, characterized by the features described herein. (Note 9) The aforementioned analysis unit, When analyzing code, the system prioritizes analyzing specific bug patterns by referring to past bug history. The system described in Appendix 1, characterized by the features described herein. (Note 10) The aforementioned analysis unit, During code analysis, the system learns the developer's coding style and performs individually optimized analysis. The system described in Appendix 1, characterized by the features described herein. (Note 11) The aforementioned analysis unit, It estimates the user's emotions and adjusts how the analysis results are displayed based on the estimated emotions. The system described in Appendix 1, characterized by the features described herein. (Note 12) The aforementioned analysis unit, When analyzing code, prioritize the analysis based on the project's progress. The system described in Appendix 1, characterized by the features described herein. (Note 13) The aforementioned analysis unit, When analyzing code, refer to the codebases of other projects to analyze similar patterns. The system described in Appendix 1, characterized by the features described herein. (Note 14) The optimization unit, It estimates the user's emotions and adjusts the level of detail of optimization suggestions based on the estimated user emotions. The system described in Appendix 1, characterized by the features described herein. (Note 15) The optimization unit, When proposing optimization, the system refers to past optimization history to make the most optimal proposal. The system described in Appendix 1, characterized by the features described herein. (Note 16) The optimization unit, When providing optimization suggestions, we will provide suggestions optimized for a specific hardware environment. The system described in Appendix 1, characterized by the features described herein. (Note 17) The optimization unit, It estimates the user's emotions and prioritizes optimization suggestions based on those estimated emotions. The system described in Appendix 1, characterized by the features described herein. (Note 18) The optimization unit, When making optimization proposals, we adjust the timing of the proposals to take the project schedule into consideration. The system described in Appendix 1, characterized by the features described herein. (Note 19) The optimization unit, When proposing optimizations, refer to the optimization methods of other developers. The system described in Appendix 1, characterized by the features described herein. (Note 20) The aforementioned identification unit is We estimate user sentiment and adjust how security risk notifications are delivered based on that estimated sentiment. The system described in Appendix 1, characterized by the features described herein. (Note 21) The aforementioned identification unit is When identifying security risks, past security incidents are referenced to prioritize the identification of specific risks. The system described in Appendix 1, characterized by the features described herein. (Note 22) The aforementioned identification unit is When identifying security risks, perform risk assessments based on specific industry standards. The system described in Appendix 1, characterized by the features described herein. (Note 23) The aforementioned identification unit is It estimates user sentiment and adjusts the severity of security risks based on the estimated user sentiment. The system described in Appendix 1, characterized by the features described herein. (Note 24) The aforementioned identification unit is When identifying security risks, prioritize risks by considering the project's progress. The system described in Appendix 1, characterized by the features described herein. (Note 25) The aforementioned identification unit is When identifying security risks, refer to the security history of other projects to identify risks. The system described in Appendix 1, characterized by the features described herein. (Note 26) The aforementioned style section is It estimates the user's emotions and adjusts the level of detail in style suggestions based on those estimated emotions. The system described in Appendix 1, characterized by the features described herein. (Note 27) The aforementioned style section is When suggesting styles, refer to past style guide violation history to prioritize suggesting specific violations. The system described in Appendix 1, characterized by the features described herein. (Note 28) The aforementioned style section is When proposing a style, make suggestions based on specific coding conventions. The system described in Appendix 1, characterized by the features described herein. (Note 29) The aforementioned style section is It estimates the user's emotions and prioritizes style suggestions based on those estimated emotions. The system described in Appendix 1, characterized by the features described herein. (Note 30) The aforementioned style section is When proposing styles, we adjust the timing of the proposals considering the project's progress. The system described in Appendix 1, characterized by the features described herein. (Note 31) The aforementioned style section is When proposing a style, refer to the coding styles of other developers. The system described in Appendix 1, characterized by the features described herein. (Note 32) The aforementioned feedback unit is It estimates the user's emotions and adjusts the content of the feedback based on those estimated emotions. The system described in Appendix 1, characterized by the features described herein. (Note 33) The aforementioned feedback unit is When providing feedback, we refer to past feedback history to provide the most appropriate feedback. The system described in Appendix 1, characterized by the features described herein. (Note 34) The aforementioned feedback unit is During the feedback process, provide feedback tailored to the specific project phase. The system described in Appendix 1, characterized by the features described herein. (Note 35) The aforementioned feedback unit is It estimates the user's emotions and prioritizes feedback based on those estimated emotions. The system described in Appendix 1, characterized by the features described herein. (Note 36) The aforementioned feedback unit is When providing feedback, we adjust the timing of the feedback based on the project's progress. The system described in Appendix 1, characterized by the features described herein. (Note 37) The aforementioned feedback unit is When providing feedback, refer to the feedback history of other developers. The system described in Appendix 1, characterized by the features described herein. (Note 38) The aforementioned learning unit, The system estimates the user's emotions and selects training data based on those estimated emotions. The system described in Appendix 1, characterized by the features described herein. (Note 39) The aforementioned learning unit, During training, the learning algorithm is optimized by referring to past training data. The system described in Appendix 1, characterized by the features described herein. (Note 40) The aforementioned learning unit, It estimates the user's emotions and adjusts the learning frequency based on the estimated user emotions. The system described in Appendix 1, characterized by the features described herein. (Note 41) The aforementioned learning unit, During training, the training data is weighted considering the progress of the project. The system described in Appendix 1, characterized by the features described herein. [Explanation of Symbols]
[0205] 10, 210, 310, 410 Data Processing Systems 12 Data Processing Devices 14 Smart Devices 214 Smart Glasses 314 Headset-type terminal 414 Robots
Claims
1. An analysis unit that analyzes software code, An optimization unit proposes an optimization for execution speed based on the code analyzed by the aforementioned analysis unit, An identification unit that identifies security risks based on the code analyzed by the aforementioned analysis unit, A style unit makes suggestions for maintaining style consistency based on the code analyzed by the analysis unit, A feedback unit that provides real-time feedback on the content proposed by the optimization unit, the identification unit, and the style unit, The system includes a learning unit that improves the function based on user feedback obtained by the feedback unit. A system characterized by the following features.
2. The aforementioned analysis unit, Using machine learning to analyze code patterns The system according to feature 1.
3. The optimization unit, We propose optimizations for execution time and memory usage. The system according to feature 1.
4. The aforementioned identification unit is Automatically identify security risks The system according to feature 1.
5. The aforementioned style section is Suggest automatically correcting code formatting based on style guides. The system according to feature 1.
6. The aforementioned feedback unit is Perform real-time code analysis and feedback. The system according to feature 1.
7. The aforementioned learning unit, We improve features based on user feedback. The system according to feature 1.
8. The aforementioned analysis unit, It estimates the user's emotions and adjusts the depth of the analysis based on the estimated user emotions. The system according to feature 1.