| System and method for interactive and assisted program development -> Monitor Keywords |
|
System and method for interactive and assisted program developmentUSPTO Application #: 20070245322Title: System and method for interactive and assisted program development Abstract: A system (and method, and method for deploying computing infrastructure) for facilitating fixing program development errors found during different phases of program development using different programming tools, such as compilers, linkers, library managers, and debuggers, and can be integrated into a program development environment encompassing all tools. The exemplary aspects of the present invention can detect a qualified set of problems from which to recover with sufficient information, as typically provided by a user or other intelligent or artificial intelligent means, and upon error detection, can initiate a communication with the user (or other support software), to acquire information that could remedy the problem. (end of abstract) Agent: Mcginn Intellectual Property Law Group, PLLC - Vienna, VA, US Inventors: Ashok Anand, Amitkumar Manoharrao Paradkar, Donald P. Pazel, Beth R. Tibbitts, Pradeep Varma USPTO Applicaton #: 20070245322 - Class: 717140000 (USPTO) Related Patent Categories: Data Processing: Software Development, Installation, And Management, Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool), Translation Of Code, Compiling Code The Patent Description & Claims data below is from USPTO Patent Application 20070245322. Brief Patent Description - Full Patent Description - Patent Application Claims BACKGROUND OF THE INVENTION [0001] 1. Field of the Invention [0002] The present invention generally relates to a system and method for computer program development, program development tools, and program development environments. More particularly, the present invention relates to means for fixing program errors as provided by program development tools, and more particularly, to a system and method that focuses on the practice of program development in building a program across a number of programming tools, whereupon the errors are reviewed, and the errors are fixed. The present invention includes, for example, a method by which errors during program development are better identified and resolved through error coordination and immediate interactive resolution, improving in time and efficacy the program development process. [0003] 2. Description of the Conventional Art [0004] The relationship between programmer and programming tools has essentially remained unchanged in this following aspect: the user executes a programming tool, for example, a compiler, against a body of programming artifacts such as source code or binary output from other phases. The practitioner then reviews potentially extensive error summaries, and selectively and appropriately fixes errors through such means as a text editor. Typically, this applies to the application of one tool at a time, and in many cases, to a single programming artifact, e.g. source file, at a time. [0005] The issue being raised, in the context of the technology so described, is that error management by programming tools or their encompassing environment has been negligible. Typically, as each tool runs, errors are gathered into a list, and simply displayed in total to the user, and for the user to ferret out. As a result, practitioners face the following typical problems: [0006] Many errors indicate simple omissions, such as missing include files. However, a large number of errors are generated based on that missing information, as the compiler carries to completion. [0007] Many variable naming issues have a simple solution. So, when an illegal or conflicting name is used in a program, it is only post-facto. It would be better if a name could be checked for legality or conflict before or during compilation. Similar situations occur in, for example, renaming a C++ class, a variable, a method, a data field, etc. [0008] Linker problems with unresolved symbols often are related to unspecified libraries. [0009] Associating the missing routine to a library is often difficult. At the same time, the practitioner deals with this in the context of all missing library messages, which is difficult to deal with. [0010] Linker errors, such as unresolved symbols, are often based on misspellings or case problems. Since linking does not deal with source code, there is little help in relating the error to the source, especially in the case of name mangling, as often found in C++. [0011] Other classes of errors can be classified as limitations which arise generally from configurations and ancillary input leveraged against individual tools participating in a program development. Such configuration information includes, but is not restricted to, error filtering settings, levels of optimization, and paths to source and libraries. These limitations can be further decomposed into either functional or non-functional limitation errors. [0012] For purposes of this disclosure, functional errors include, for example, incorrect specifications to the development tools such as incorrect files, library locations, or general tool settings related to the specific program development. [0013] For purposes of this disclosure, non-functional errors derive from tool behavioral anomalies despite correct input specification. These can include, for example, performance, excessive computation, etc., which are usually remediated through alternative configurations. For example, optimization levels for compilation may be technically correct, but incur significant computation overhead. Optimization at lesser levels may be sufficient for the developing application while speeding up the build compilations. [0014] In many of these cases, the end user typically endures a potentially large set of repetitious, predictable, but unrelated errors. In many cases, problems span programming tools, and in such cases, the practitioner must deduce that the fix should be applied at earlier phases. SUMMARY OF THE INVENTION [0015] In view of the foregoing and other exemplary problems, drawbacks, and disadvantages of the conventional methods and structures, an exemplary feature of the present invention is to provide a system, method, and framework for computer program development, program development tools, and program development environments. More particularly, the present invention relates to means for fixing program errors as provided by program development tools, and more particularly, to a system and method that focuses on the practice of program development in building a program across a number of programming tools, whereupon the errors are reviewed, and the errors are fixed. [0016] The present invention exemplarily describes this activity in the context of a computer program development execution cycle, or simply "execution cycle", wherein a subset of software tools is executed in some determined order, wherein one or more tools of such subset of tools produce errors. The present invention includes, for example, a method by which errors during a program development cycle are better identified and resolved through error coordination and immediate interactive resolution, improving in time and efficacy the program development process. [0017] One exemplary aspect of the present invention provides a method and apparatus that facilitates fixing (i.e., repairing, correcting) program development errors found during different phases of program development using different programming tools. An exemplary aspect of the present invention applies across program development tools, such as compilers, linkers, library managers, and debuggers, and can be integrated into a program development environment encompassing all tools. The exemplary aspects of the present invention being applied to these tools, and exemplarily described herein, can be based on the tool's ability to detect a qualified set of problems from which it could recover with sufficient information, as typically provided by a user or other intelligent or artificial intelligent means. Characteristically, upon error detection, the tool can initiate a communication with the user (or other support software), to acquire information that could remedy the problem. To assist towards a sound, expeditious, and thorough fix, the tool can highlight alternatives for a problem fix (e.g., alternatives can include sets/libraries; additional field names in a structures/classes, etc., in contrast to altering an existing potentially misspelled date field name), and also structured problem skipping (e.g., inserting comments and temporary placeholder "TODOs", etc.). On input or selections to these choices, the tool can fix the problems, relative to any aspects of its runtime state, and alternatively, can fix related files or scripts related to that problem using the provided information. [0018] The exemplary features of the present invention can provide a flexible and versatile solution that can be applied to many programming tools, such as linkers, library builders, library managers, debuggers, program editors, etc. Although the exemplary features of the present invention can be suited, for example, to program development environments with graphical user interfaces, the scope of this teaching is not dependent on such supporting frameworks. [0019] In one exemplary aspect of the invention, a method (e.g., a computer-implemented method) for integrated software processes in an interactive software system, including remediating an execution cycle of the interactive software system based on identified analytical information from the software processes in the interactive software system prior to a completion of the execution cycle of the interactive software system. The exemplary method can include identifying the analytical information from the software processes in the interactive software system prior to the completion of the execution cycle of the interactive software system. [0020] The analytical information can include at least one of a program development error and a limitation prior to completion of the execution cycle of the interactive software system. The method can include detecting a predetermined set of problems for which information can be obtained to remedy at least one of the problems prior to the completion of the execution cycle of the interactive software system. The exemplary method can initiate communication with at least one of a user and support software to obtain the information to remedy one of the problems prior to the completion of execution cycle of the interactive software system. The exemplary method can continue the execution cycle of the interactive software system after performing the remediating. [0021] In another exemplary aspect of the invention, the method can identify at least one of a functional program development limitation and a non-functional program development limitation during different phases of the execution cycle of the interactive software system, and interactively repair the at least one of the functional program development limitation and the non-functional program development limitation at the different phases of the execution cycle of the interactive software system. [0022] According to an exemplary method, an error policy can be applied to the identified analytical information, and upon acceptance of the identified analytical information according to a qualification by the error policy, an error remediation of the error policy can be applied to fix the identified analytical information. [0023] In another exemplary aspect of the invention, a computer-implemented method for programming tool engagement and enhancement in an interactive program development system, includes detecting a tool-specific condition prior to termination of an execution cycle of a programming tool, and engaging at least one of a user and a support software to obtain information related to the tool-specific condition. Based on a result of the engaging, the exemplary method can invoke ancillary means for processing the tool-specific condition, and continue execution of the programming tool after invoking the ancillary means for processing the tool-specific condition. [0024] In another exemplary aspect of the invention, an interface can be provided for at least one of plugging in different system tools, allowing individual tool-user dialogs to be described to the method, and allowing standardized presentation of diverse dialogs via the interface. [0025] In another exemplary aspect of the invention, an interactive software system for integrated software processes includes an identifying unit that identifies analytical information from the software processes in the interactive software system prior to the completion of an execution cycle of the interactive software system, and a remediating unit that remediates the execution cycle of the interactive software system based on the identified analytical information from the software processes in the interactive software system prior to a completion of the execution cycle of the interactive software system. The exemplary aspects of the system can include a communication unit that initiates communication with at least one of a user and support software to obtain the information to remedy one of the problems prior to the completion of execution cycle of the interactive software system. [0026] In another exemplary aspect of the invention, an interactive software development system, including a plurality of programming tools, can include error detecting means for identifying a software development error prior to completion of an execution cycle of the software development, and error repairing means for repairing the software development error prior to the completion of the execution cycle of the software development. The exemplary aspects of the invention can include interface means for initiating communication with at least one of a user and a support software to obtain information to remedy the identified software development error prior to the completion of the execution cycle of the software development. Continue reading... Full patent description for System and method for interactive and assisted program development Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this System and method for interactive and assisted program development patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like System and method for interactive and assisted program development or other areas of interest. ### Previous Patent Application: Speculative inlining of overridden methods without using profiling information Next Patent Application: Method and system for producing process flow models from source code Industry Class: Data processing: software development, installation, and management ### FreshPatents.com Support Thank you for viewing the System and method for interactive and assisted program development patent info. IP-related news and info Results in 1.94336 seconds Other interesting Feshpatents.com categories: Tyco , Unilever , Warner-lambert , 3m |
||