Including Analysis Of Program Execution Patents (Class 717/131)
  • Patent number: 9170805
    Abstract: The invention relates to a software maintenance supporting device that analyzes and displays the structure of software, and its object is to divide software into clusters including plural variables and illustrate the result of the division. The software maintenance supporting device extracts variable dependence relation data from a source code, and divides software into clusters including plural variables, using a variable dependence relation. Also, an inter-variable dependence relation is illustrated as a directed graph in which a variable is expressed as a node and a dependence relation is expressed as a link, and variables belonging to the same cluster are highlighted.
    Type: Grant
    Filed: July 20, 2010
    Date of Patent: October 27, 2015
    Assignee: Hitachi, Ltd.
    Inventors: Kentaro Yoshimura, Takeshi Fukuda, Yoshitaka Atarashi
  • Patent number: 9158514
    Abstract: Providing change information includes obtaining information of a change track that changes software source code, wherein the change track includes a change item, identifying at least one preliminary candidate change item from the change item, wherein the preliminary candidate change item is a change item causing execution of the source code to change, and inserting an instrument in the source code at a location corresponding to the at least one preliminary candidate change item so information of at least one candidate change item is outputted in testing the source code using a test case. The at least one candidate change item is a change item related to the test case from the at least one preliminary candidate change item. The information of a change track is combined with the information of a candidate change item. The change-related information is provided based on the result of the combination.
    Type: Grant
    Filed: September 24, 2013
    Date of Patent: October 13, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Xiao Feng Guan, Jian Jiang, Cao Lei
  • Patent number: 9158639
    Abstract: A method and apparatus for determining correlation between input and output messages in a system under test (SUT) is provided in the present invention. The SUT is provided with preset watch-points, and the running of the SUT is detected by triggering watch-points in a test platform at its run time. The method includes the steps of: upon detecting a message input operation, finding a variable that stores an input message, associating the variable with a tag of the input message, and adding a watch-point for the variable in the test platform; as well as, upon detecting network output operation, finding a variable that stores an output message of the SUT; and determining correlation between the output message and an input message according to a tag associated with the variable that stores the output message.
    Type: Grant
    Filed: May 29, 2013
    Date of Patent: October 13, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Guoqiang Hu, Li Jun Mei, HuaFang Tan, Bo Yang, Yu Yuan
  • Patent number: 9152529
    Abstract: A plurality of user interface (UI) actions from a particular user is detected via a user interface of the application. The plurality of UI actions is analyzed to determine a usage pattern for the particular user. A modification to the user interface is determined based on the determined usage pattern. The determined modification in the user interface is implemented to customize the user interface of the application for the particular user. The determined modification may be stored in a user profile for subsequent use.
    Type: Grant
    Filed: September 24, 2012
    Date of Patent: October 6, 2015
    Assignee: Adobe Systems Incorporated
    Inventors: William Brandon George, Kevin G. Smith, Edward L. Hewett
  • Patent number: 9135139
    Abstract: Methods and systems to identify and reproduce concurrency bugs in multi-threaded programs are disclosed. An example method disclosed herein includes defining a data type. The data type includes a first predicate associated with a first thread of a multi-threaded program that is associated with a first condition, a second predicate that is associated with a second thread of the multi-threaded program, the second predicate being associated with a second condition, and an expression that defines a relationship between the first predicate and the second predicate. The relationship, when satisfied, causes the concurrency bug to be detected. A concurrency bug detector conforming to the data type is used to detect the concurrency bug in the multi-threaded program.
    Type: Grant
    Filed: June 27, 2012
    Date of Patent: September 15, 2015
    Assignee: Intel Corporation
    Inventors: Youfeng Wu, Justin E. Gottschlich, Gilles Pokam, Shiliang Hu, Ali-Reza Adl-Tabatabai, Cristiano L. Pereira
  • Patent number: 9128789
    Abstract: Systems and methods for implementing cross-cutting actions that cut across many remote procedure calls (RPCs) in an interactive application, such as location-based parallel reality game are provided. In particular, one or more decorators can be associated in a source file, such as a Java source file, with a remote procedure call class defining a plurality of RPC methods for the interactive application. Each decorator can be a set of instructions that gets executed before and after an RPC method and addresses concerns that cut across a plurality of RPC methods for the interactive application.
    Type: Grant
    Filed: July 31, 2013
    Date of Patent: September 8, 2015
    Assignee: Google Inc.
    Inventors: Luiz Otavio Zorzella, Alexander Vladimirov, Neal Kanodia, Chris Hibbert
  • Patent number: 9122791
    Abstract: A method for identifying a storage location for a requested storage address. The method includes receiving a request to view data at a storage address and determining the requested storage address corresponding to a plurality of storage locations. The method includes determining whether the requested storage address identifies memory related to a dump file being analyzed by a dump formatter. Then, in response to determining the requested storage address identifies memory related to the dump file being analyzed by the dump formatter, the method includes identifying one of the plurality of storage locations. The method includes directing the request to the identified storage location.
    Type: Grant
    Filed: March 5, 2013
    Date of Patent: September 1, 2015
    Assignee: International Business Machines Corporation
    Inventors: Stephen J. Burghard, David J. Harman, Mark A. Woolley, Andrew Wright
  • Patent number: 9122540
    Abstract: A method and system for transforming a first computer program having program statements to a second computer program. A parsed first computer program is translated to the second computer program. The first computer program includes a first program statement that includes a first error. The translating includes: (i) identifying a second program statement in the parsed first computer program that includes a second error and has thrown a translation exception with respect to the second error, (ii) rolling back the translating to a predefined check point prior to the second program statement in the parsed first computer program such that the predefined check point is associated with a statement in the parsed first computer program that was successfully translated, and (iii) generating an executable equivalent translation for the second statement. After the translating, a mapping of one or more statements is generated.
    Type: Grant
    Filed: July 10, 2014
    Date of Patent: September 1, 2015
    Assignee: International Business Machines Corporation
    Inventors: Pankaj Dhoolia, Anup K. Ghosh, Sugata Ghosal, Asidhara Lahiri, Mangala G. Nanda, Krishna Nandivada Venkata, Anjan Nandy, Diptikalyan Saha
  • Patent number: 9111038
    Abstract: An information processing system integrates a code coverage tool with a debugger. A debugging process is performed on a set of source code for an application program. A set of code coverage information associated with the set of source code is analyzed with respect to a set of debugging information. The set of code coverage information at least identifies a set of instructions that has been executed. A set of source code lines in the set of source code that correspond to the set of instructions that has been executed is identified based on the analyzing. A user is notified through a user interface that the set of instructions associated with the identified set of source code have been executed.
    Type: Grant
    Filed: December 13, 2013
    Date of Patent: August 18, 2015
    Assignee: International Business Machines Corporation
    Inventor: Joshua B. Wisniewski
  • Patent number: 9110737
    Abstract: Methods, systems, and apparatus, including computer programs encoded on computer storage media, for extracting source code. One of the methods includes receiving, by a newly created process, a request to execute code of an executable file in the newly created process, wherein the request specifies a parameter. The newly created process loads a process interception library. Library initialization code of the process interception library determines whether the parameter should be intercepted. In response to determining that the parameter should be intercepted, the parameter is provided to another process.
    Type: Grant
    Filed: May 30, 2014
    Date of Patent: August 18, 2015
    Assignee: Semmle Limited
    Inventors: Julian Tibble, Pavel Avgustinov, Peter Cawley
  • Patent number: 9110676
    Abstract: The described embodiments present techniques for recovering from syntax errors. These techniques correct potential errors while preserving the shape of the parse tree, and the specific implementation of the techniques can be automatically generated from the grammar. These techniques may operate by looking back at states associated with previously-received tokens to determine pair matching status, when a synchronizing symbol is received. The techniques can respond to the pair matching status determination by potentially adding a synthesized token or by deleting a token that has already been received. The techniques may use a structure referred to herein as a tuple to assist with the evaluation of the pair matching status. Some of the techniques utilize indentation information to evaluate the pair matching status, while other techniques ignore such information. The described embodiments also include a technique for automatically generating the tuples from a set of grammar rules associated with the parser.
    Type: Grant
    Filed: November 15, 2012
    Date of Patent: August 18, 2015
    Assignee: The MathWorks, Inc.
    Inventor: Stephen Curtis Johnson
  • Patent number: 9110680
    Abstract: Methods and systems for avoiding or deferring data copies are disclosed. Using a virtual machine, it is determined whether a set of program code comprises references to a data object after an operation to generate a copy of the data object. If not, a set of optimized program code is generated in which the operation to copy the data object is replaced with an operation to update a reference. Using the virtual machine, it is determined whether the set of program code comprises an operation to generate a copy of a buffer object. If so, a set of further optimized program code is generated, comprising an allocation of one or more memory pages to store the buffer object with a copy-on-write parameter instead of the operation to generate the copy of the buffer object.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: August 18, 2015
    Assignee: Amazon Technologies, Inc.
    Inventor: Jeremy Boynes
  • Patent number: 9081605
    Abstract: A technique for identifying conflicting sub-processes easily in a computer system that processes a plurality of transactions in parallel is provided. In a conflicting sub-process identification method according to the present invention, a comparison is made between processing time periods for which transactions executed in parallel have conflicting parts and for which transactions executed in parallel do not have conflicting parts. This comparison is made for a plurality of transaction processing programs each comprising a plurality of sub-processes. Then, on the basis of correspondence relationships between performance indices obtained from the comparison result, conflicting combination of sub-processes competing for a resource are identified.
    Type: Grant
    Filed: March 24, 2008
    Date of Patent: July 14, 2015
    Assignee: NEC CORPORATION
    Inventor: Takashi Horikawa
  • Patent number: 9075683
    Abstract: A system and method include receiving an in memory database application code update at a program that interfaces with the in memory database, obtaining customization date identifying changes made to the in memory database by a customer, generating a customized application code update to the in memory database as a function of changes identified, and applying the customized application code update to the in memory database to update a complex object running in the memory database without adversely affecting changes made to the in memory database by the customer.
    Type: Grant
    Filed: November 29, 2012
    Date of Patent: July 7, 2015
    Assignee: SAP SE
    Inventor: Andreas Christoph
  • Patent number: 9071661
    Abstract: Described are sequence numbers for client-server communication, to control a client's use of server resources. A server grants the client credits, and the client consumes a credit for sending each command to the server. Each credit corresponds to a sequence number, with the set of sequence numbers forming a valid command window. The server enforces that for each received command, the command includes a sequence number that is within the valid command window and that the sequence number has not been used with another command. The server may also maintain a maximum window size, such that clients with credits cannot send a command with a sequence number that beyond a maximum sequence number. When incorporated into a data communication protocol, quality of service, combating denial of service, detection of message loss, division of server resources, secure message signing, and other numerous benefits result.
    Type: Grant
    Filed: August 29, 2014
    Date of Patent: June 30, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: David Kruse, Ahmed Mohamed, Balan Sethu Raman
  • Patent number: 9069668
    Abstract: A method for monitoring a distributed application for errors includes constructing a transaction path for each request received by the distributed application, detecting a writing action to a log of the distributed application, and annotating the transaction path in accordance with the writing action to produce an annotated transaction path. In another embodiment, a method for building a knowledge base for use in diagnosing an error occurring in a distributed application includes executing the distributed application on a replica of a production server that supports the distributed application, constructing a transaction path for a request received by the distributed application, wherein the transaction path traverses the replica, injecting a fault into the transaction path, detecting a writing action to a log of the distributed application, wherein the writing action is a response to the fault, and storing an association between the fault and the writing action.
    Type: Grant
    Filed: November 14, 2012
    Date of Patent: June 30, 2015
    Assignee: International Business Machines Corporation
    Inventors: Byung Chul Tak, Chunqiang Tang, Long Wang
  • Patent number: 9058423
    Abstract: A continuous build and test system, method, and computer-readable medium, performed by one or more processors is described. The system includes an input for inputting a test specification that imports an environment manager. An environment manager object is created upon processing of the test specification, and delegates management functions to one or more specialized manager objects. The environment manager includes config data that designate paths to one or more binary files, and token settings specifying resources to be used during testing of the binary files. The environment manager selects a test platform to be used in testing the one or more binary files. The specialized manager objects perform testing, including bringing up the one or more binary files in the selected test platform, creating the data resources based on the token settings, performing the instructed tests, and cleaning up created data resources.
    Type: Grant
    Filed: November 18, 2011
    Date of Patent: June 16, 2015
    Assignee: GOOGLE INC.
    Inventors: Matthew Stone, Ravi Mistry, Jonathan Calvert, Michael Bachman, Murat Muth Ozturk, Yizhi Zhao
  • Patent number: 9052980
    Abstract: The embodiments may include an apparatus for measuring code quality using exceptions. The apparatus may include a runtime collector configured to intercept exceptions generated by an application, and collect exception information for each exception, during runtime of the application, based on instrumentation code included within the application. The apparatus may include a collection module configured to store the intercepted exceptions and corresponding exception information in a memory unit, an exception analyzer configured to analyze the intercepted exceptions based on the collected exception information stored in the memory unit, and a report generator configured to generate at least one report based on the analysis. The at least one report may provide an indication of code quality of the application.
    Type: Grant
    Filed: February 20, 2013
    Date of Patent: June 9, 2015
    Assignee: BMC SOFTWARE, INC.
    Inventor: Walter T. Hulick, Jr.
  • Publication number: 20150149985
    Abstract: A system includes reception of an instruction to commit a design-time artifact of a database server application to a repository of a database server, storage of the design-time artifact in the repository of the database server in association with an inactive flag, reception of a request from a user to access the design-time artifact associated with the inactive flag, and, in response to the request, generation of a private runtime representation of the design-time artifact associated with the inactive flag, and deployment of the private runtime representation of the design-time artifact for exclusive use by the user.
    Type: Application
    Filed: June 23, 2014
    Publication date: May 28, 2015
    Inventors: Florian Foebel, Bjoern Friedmann, Boris Gruschko, Christian Mohr, Martin Strenge, Sascha Zorn
  • Patent number: 9043761
    Abstract: Disclosed is a novel computer implemented system, on demand service, computer program product and a method that leverages combined concrete and symbolic execution and several fault-localization techniques to automatically detects failures and localizes faults in PHP Hypertext Preprocessor (“PHP”) Web applications.
    Type: Grant
    Filed: September 1, 2010
    Date of Patent: May 26, 2015
    Assignee: International Business Machines Corporation
    Inventors: Shay Artzi, Julian Dolby, Marco Pistoia, Frank Tip
  • Publication number: 20150143346
    Abstract: A test-centric model of an application is constructed. Each resource specified by each test governing an application is added to the test-centric model. The test or tests specifying an resource are linked to the resource within the test-centric model. A composition of the application is defined using the one or more tests, as the resources specified by the one or more tests, within the test-centric model of the application.
    Type: Application
    Filed: July 31, 2012
    Publication date: May 21, 2015
    Inventors: Oren Gurfinkel, Oleg Verhovsky, Eliraz Busi, Maya Yohay Rafalovich, Malcolm Isaacs
  • Publication number: 20150143345
    Abstract: Implementations of the disclosed subject matter provide systems and methods for providing one or more versions of an application to one or more subsets of users based on measured performance of the one or more versions of the application. A method may include providing a first version of an application to a first subset of users of the application. Next, performance of the first version of the application may be measured and a second subset of users of the application may be selected based on the performance of the first version of the application. As a result, a second version of the application may be provided to the second subset of users of the application.
    Type: Application
    Filed: November 15, 2013
    Publication date: May 21, 2015
    Applicant: Google Inc.
    Inventors: Brian Patton, Nicolas Fortescue, Piotr Krzysztof Swigon, John Ayres, Maximilian RUPPANER, Elizabeth Ireland Powers, Eva-Lotta Lamm, Alan Michael Stokes
  • Publication number: 20150135169
    Abstract: A testing device and a testing method thereof are provided. The testing device is connected to a terminal device running a graphical user interface (GUI). The testing device runs a testing program to start a recording procedure to execute the following steps: detecting a plurality of actions generated in response to operations on the terminal device; detecting a foreground application of the GUI; reading a plurality of pieces of object information of the foreground application; and determining the actions to record an object property operation of the foreground application and a call command. The testing device further stops the recording procedure to generate and store a script file and a reference log file. The script file includes the object property operation and the call command.
    Type: Application
    Filed: January 15, 2014
    Publication date: May 14, 2015
    Applicant: Institute For Information Industry
    Inventor: Ching-Wen LIN
  • Publication number: 20150135168
    Abstract: An apparatus of one embodiment evaluates a software change and includes an interface, a memory, and a processor. The interface is operable to communicate through a network with a mainframe and a database. The memory is operable to store metrics information. The processor is operable to determine that a job has executed on the mainframe, the job including a program on the mainframe that utilizes the software change and causes first database queries to he sent from the mainframe to the database. The processor is also operable to send a message identifying the job to the mainframe, receive job information associated with the first database queries from the mainframe, generate second database queries based on the job information, send the second database queries to the database, receive metrics associated with the first database queries, and determine whether the metrics information meets one or more compliance standards.
    Type: Application
    Filed: November 13, 2013
    Publication date: May 14, 2015
    Applicant: Bank of America Corporation
    Inventors: Bharani Shangar Padmanabhan, Deepan Raja Sachithanandam, Rathi Kaliyan, Vijayakumar Gurusamy Raju, Bhargava Srivathsan Gopalakrishnan, Vimal Vijayasekaran
  • Patent number: 9032375
    Abstract: A computer program product for identifying bottlenecks includes a computer readable storage medium with stored computer readable program instructions. The computer readable program instructions, when executed, provide a data collector module, a mapper module, and an analyzer module that are collectively configured to read mapped data and configuration files, and identify, based upon the mapped data and the configuration files, an undesirable bottleneck condition that causes a computer program to run inefficiently. A method includes reading a configuration file that includes data regarding processor components, and collecting data from hardware activity counters based upon the configuration file.
    Type: Grant
    Filed: April 27, 2011
    Date of Patent: May 12, 2015
    Assignee: International Business Machines Corporation
    Inventors: Prathiba Kumar, Rajan Ravindran, Satish K. Sadasivam, Madhavi G. Valluri
  • Patent number: 9032381
    Abstract: State recovery methods and apparatus for computing platforms are disclosed. An example method includes inserting a first instruction into optimized code to cause a first portion of a register in a first state to be saved to memory before execution of a region of the optimized code; and maintaining a value indicative of a manner in which a second portion of the register in the first state is to be restored in connection with a state recovery from the optimized code.
    Type: Grant
    Filed: June 29, 2012
    Date of Patent: May 12, 2015
    Assignee: Intel Corporation
    Inventors: Abhay S. Kanhere, Saurabh Shukla, Suriya Subramanian, Paul Caprioli
  • Patent number: 9032372
    Abstract: Certain example embodiments of the present invention relate to a runtime environment for non-invasive monitoring of software applications. The runtime environment (10) is configured to: (a) during execution of at least one software application (20) within the runtime environment (10), identify a function call (25) to be executed by the at least one software application (20); and (b) generating monitoring data relating to the identified function call (25).
    Type: Grant
    Filed: August 22, 2012
    Date of Patent: May 12, 2015
    Assignee: Software AG
    Inventors: Michael Münster, Oguzhan Özkut
  • Patent number: 9032376
    Abstract: A method is provided to evaluate impact of a change in code of a depended upon component of a system stored in a computer readable storage device, upon a dependent component of the system, the method comprising: identifying a dependency relationship between a first component stored in a computer readable storage device and a second component stored in the computer readable storage device; in response to a determination that the second component depends upon the first component, configuring a computer system to obtain a first property evaluation corresponding to the first component; and in response to obtaining the first property evaluation corresponding to the first component, configuring the computer system to associate the first property evaluation with the second component, and obtain a second property evaluation corresponding to the second component, wherein the second component is associated with the first property evaluation.
    Type: Grant
    Filed: September 26, 2013
    Date of Patent: May 12, 2015
    Assignee: Synopsys, Inc.
    Inventors: Marat Boshernitsan, Andreas Kuehlmann, Scott McPeak, Philip Chong, Tobias Welp
  • Patent number: 9026720
    Abstract: The invention provides a technique for managing write operations issued to a non-volatile memory included in a wireless device. A monitor software application executes on the wireless device and is configured to determine that a number of write operations issued to the non-volatile memory is greater than or equal to a write operation threshold associated with the non-volatile memory. In response, at least one application is isolated as the application responsible for issuing excessive write operations. The isolation can be carried out locally on the wireless device, or the isolation can be carried out remotely at a server by sending information about the write operations to the server. The monitor then limits additional write operations from being issued to the non-volatile memory so as to protect the non-volatile memory from becoming corrupted or inoperable.
    Type: Grant
    Filed: February 7, 2013
    Date of Patent: May 5, 2015
    Assignee: Apple Inc.
    Inventors: Li Li, Ben-Heng Juang, Arun G. Mathias
  • Patent number: 9027006
    Abstract: A method and an apparatus to execute a code with value profiling are described. The code may include an access to an untyped variable. During the execution, runtime values of the untyped variable may be randomly inspected. A value profile may be established to predict one or more expected types of future runtime values for the untyped variable. The code may be recompiled according to the value profile to optimize the access of the untyped variable for the future runtime values.
    Type: Grant
    Filed: August 23, 2012
    Date of Patent: May 5, 2015
    Assignee: Apple Inc.
    Inventors: Filip J. Pizlo, Gavin Barraclough
  • Patent number: 9026394
    Abstract: The present disclosure generally relates to the automated testing of a system that includes software or hardware components. In some embodiments, a testing framework generates a set of test cases for a system under test using a grammar. Each test case may perform an action, such as provide an input to the system under test, and result in an output from the system under test. The inputs and outputs are then compared to the expected results to determine whether the system under test is performing correctly. The data can then be interpreted in the grammar system or used as input to a fault isolation engine to determine anomalies in the system under test. Based on identified faults, one or more mitigation techniques may be implemented in an automated fashion.
    Type: Grant
    Filed: August 4, 2011
    Date of Patent: May 5, 2015
    Assignee: Wurldtech Security Technologies
    Inventors: Nathan John Walter Kube, Daniel Malcolm Hoffman, Frank Marcus
  • Patent number: 9027132
    Abstract: A system, method and computer program product are provided. In use, execution of a portion of internal code of an interface is identified. Further, in response to the execution of the portion of internal code, at least one aspect of an invocation of the interface is monitored and/or analyzed.
    Type: Grant
    Filed: September 30, 2013
    Date of Patent: May 5, 2015
    Assignee: McAfee, Inc.
    Inventor: Gregory William Dalcher
  • Publication number: 20150121348
    Abstract: A method and device for analyzing an application are provided. The method includes obtaining the application, obtaining at least one of environment information, which is information about an environment where the application is executed, and execution information, which is information about operations of components of the application, obtaining code data to analyze from the application, based on at least one of the environment information and the execution information, obtaining function information, and analyzing the code data, based on the obtained function information.
    Type: Application
    Filed: October 27, 2014
    Publication date: April 30, 2015
    Applicants: SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION, SAMSUNG ELECTRONICS CO., LTD.
    Inventors: Ji-soon PARK, Jin-yung KIM, Yong-ho YOON, Jun-bum SHIN, Kwang-keun YI
  • Patent number: 9021441
    Abstract: An exemplary method includes displaying a graphical user interface configured to facilitate identification of one or more defects in a software instance, receiving data representative of at least one instruction via the graphical user interface to associate one of a plurality of defect severity levels each having one of a plurality of weighted values with each of the one or more defects, and generating a product quality index corresponding to the software instance and that indicates a quality level of the software instance compared to a substantially defect-free software instance. In some examples, the generation of the product quality index is based on the defect severity levels and the weighted values associated with the one or more defects.
    Type: Grant
    Filed: March 30, 2009
    Date of Patent: April 28, 2015
    Assignee: Verizon Patent and Licensing Inc.
    Inventors: Shrirang V. Yawalkar, Balaji Kumar
  • Patent number: 9021449
    Abstract: A method of testing software may include accessing first software that includes multiple execution paths and concretely executing the first software using a test case associated with second software to traverse at least a first execution path of the execution paths. The method may also include capturing concrete execution results produced from concretely executing the first software to record the first execution path and symbolically executing the first software using a symbolic input based on the recorded first execution path.
    Type: Grant
    Filed: August 16, 2012
    Date of Patent: April 28, 2015
    Assignee: Fujitsu Limited
    Inventors: Maarten H. Wiggers, Mukul R. Prasad, Indradeep Ghosh
  • Patent number: 9021439
    Abstract: Novel tools and techniques are provided for implementing green software applications and/or certifying software applications with a green applications efficiency (“GAE”) rating. Implementing green software applications might include performing performance tests of a software application, measuring power consumption of one or more hardware components, in response to execution of the software application during the one or more performance tests, generating a power consumption profile for the software application based on the measure power consumption, and tuning the software application such that power consumption of the one or more hardware components matches a power load caused by execution of the software application, based at least in part on the power consumption profile for the software application.
    Type: Grant
    Filed: July 9, 2013
    Date of Patent: April 28, 2015
    Assignee: CenturyLink Intellectual Property LLC
    Inventors: Vishak Shanmugam Pillai, Darshan Sonbarse, Viswanath Seetharam, Manoj U P
  • Patent number: 9021447
    Abstract: A tracing system may divide trace objectives across multiple instances of an application, then deploy the objectives to be traced. The results of the various objectives may be aggregated into a detailed tracing representation of the application. The trace objectives may define specific functions, processes, memory objects, events, input parameters, or other subsets of tracing data that may be collected. The objectives may be deployed on separate instances of an application that may be running on different devices. In some cases, the objectives may be deployed at different time intervals. The trace objectives may be lightweight, relatively non-intrusive tracing workloads that, when results are aggregated, may provide a holistic view of an application's performance.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: April 28, 2015
    Assignee: Concurix Corporation
    Inventors: Russell S. Krajec, Ying Li
  • Patent number: 9021450
    Abstract: A disclosed method includes accessing one or more seeding specifications and a program including computer-readable code and applying the one or more seeding specifications to the program to identify for analysis seeds including strings for corresponding identified string variables. The method includes tracking flows emanating from the identified seeds. The tracking includes computing an integral offset into a tracked string variable for any statements causing such a computation. The tracking also includes providing a string representation based on the computed integral offset, wherein the provided string representation comprises a value of the integral offset and an indication of the corresponding tracked string variable. The tracking further includes modeling string manipulations of the tracked string variables using the string representations. Apparatus and program products are also disclosed.
    Type: Grant
    Filed: March 11, 2013
    Date of Patent: April 28, 2015
    Assignee: International Business Machines Corporation
    Inventors: Salvatore Angelo Guarnieri, Marco Pistoia, Omer Tripp
  • Patent number: 9021446
    Abstract: Indication of uncoverage information allows tests to be tailored to target those uncovered code units with the most potential to increase coverage of a program. A tool examines coverage information of a program to identify code units of the program that were not covered by test data used to exercise the program. The tool also examines structural information (e.g., control flow) for the program to identify those of the uncovered code units that have direct control flow from a corresponding covered code unit (“root level uncovered code units”). The coverage tool then measures potential impact on coverage for each of the root level uncovered code units.
    Type: Grant
    Filed: June 28, 2006
    Date of Patent: April 28, 2015
    Assignee: Oracle America, Inc.
    Inventors: Raj Prakash, Chester M. Wood
  • Patent number: 9013574
    Abstract: A machine vision system program editing environment including synchronized selection and/or identification of related features in a plurality of different user interface windows is provided. In particular, one of the windows is an editing window where a part program representation is displayed for editing by a user. In one embodiment, a user may select data or another feature of interest in a window that is not the editing window (e.g., a results window, or graphical workpiece inspection feature display window) and the associated part program instruction representation is automatically highlighted and/or selected in the editing window. Conversely, a part program instruction representation may be selected by a user in the editing window and the associated results or feature in another window is automatically highlighted and/or selected. User interface navigation, rapid program quality assessment, and overall part program creation and editing efficiency are significantly enhanced in such an editing environment.
    Type: Grant
    Filed: November 13, 2012
    Date of Patent: April 21, 2015
    Assignee: Mitutoyo Corporation
    Inventors: Barry Saylor, Ryan Northrup, Akira Takada, Kozo Ariga
  • Patent number: 9015674
    Abstract: Various technologies pertaining to answering reachability queries are described herein. A reachability query includes a user-specified destination line of code in source code that is desirably analyzed. A theorem prover is employed to identify an execution path through the source code that reaches the destination line of code. Graphical data is presented to the user that illustrates to the user the execution path through the source code that reaches the destination line of code.
    Type: Grant
    Filed: September 28, 2012
    Date of Patent: April 21, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Robert DeLine, Mike Barnett, Akash Lal, Shaz Qadeer
  • Patent number: 9015667
    Abstract: A fuzz testing system is described herein that represents event sources, channels, processors, and consumers as first-class entities in an application. Abstracting event-related entities allows fuzzing through injecting, dropping, reordering, and delaying events from within the application. This translates into the ability to localize the areas under test and perform fuzzing in a systematic manner. In some embodiments, the fuzz testing system tests concurrent asynchronous and event-based code, and can generate event streams based on a given statistical distribution. Representing events, event sources, processors, and sinks as first-class objects provides easy access to the event handlers and facilitates implementing fuzzing by introducing event processors between the source and the sink. Thus, the fuzz testing system improves the testability of applications and APIs with asynchronous behavior and provides a uniform framework for introducing fuzz testing into such applications.
    Type: Grant
    Filed: October 6, 2010
    Date of Patent: April 21, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Erik Meijer, Dragos A. Manolescu, John Wesley Dyer, Jeffrey van Gogh
  • Patent number: 9009682
    Abstract: Implementations of the present disclosure provide methods including analyzing a plurality of units of a software application to determine a dependency graph defining that at least a first unit depends on a second unit. Each unit includes executable instructions. An execution order is determined for the units based on the dependency graph, wherein the execution order specifies execution of the second unit before the first unit. Unit tests are executed for the units according to the execution order, including executing a unit test of the second unit before the first unit. Executing a unit test for a unit comprises executing the executable instructions of the unit and comparing a resulting value to an expected value.
    Type: Grant
    Filed: December 13, 2010
    Date of Patent: April 14, 2015
    Assignee: SAP SE
    Inventors: Efstratios Tsantilis, Klaus Steinbach
  • Patent number: 9009707
    Abstract: One or more physical RCDs (PRCDs) are shared between one or more workloads in one or more virtual computing environments. Example PRCD sharing operations may include: (1) providing a virtual RCD (VRCD) for one of the workloads, the VRCD being programmed with an IC design representing a hardware implementation of a software hotspot in the workload, (2) allocating one of the PRCDs to the workload by scheduling the programmed VRCD on the PRCD, (3) burning the PRCD with the IC design of the programmed VRCD so that the PRCD becomes a programmed PRCD that is capable of implementing the workload's hotspot in hardware, and (4) invoking the programmed VRCD instead of executing the hotspot as software in order to cause the programmed PRCD to implement the hotspot in hardware.
    Type: Grant
    Filed: November 30, 2013
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventors: Rahul Chandrakar, Anjil R. Chinnapatlolla, Manjunath N. Shanbhag, Venkatesh N. Sripathirao
  • Patent number: 9009679
    Abstract: Embodiments of the invention include a method for setting snapshots in code. The method may occur during the debug of code and may include determining whether to place a snapshot instruction immediately before a machine instruction within a module. The determination may include analyzing parameters associated with the machine instruction.
    Type: Grant
    Filed: June 28, 2012
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Kendrick Wong
  • Patent number: 9009703
    Abstract: One or more physical RCDs (PRCDs) are shared between one or more workloads in one or more virtual computing environments. Example PRCD sharing operations may include: (1) providing a virtual RCD (VRCD) for one of the workloads, the VRCD being programmed with an IC design representing a hardware implementation of a software hotspot in the workload, (2) allocating one of the PRCDs to the workload by scheduling the programmed VRCD on the PRCD, (3) burning the PRCD with the IC design of the programmed VRCD so that the PRCD becomes a programmed PRCD that is capable of implementing the workload's hotspot in hardware, and (4) invoking the programmed VRCD instead of executing the hotspot as software in order to cause the programmed PRCD to implement the hotspot in hardware.
    Type: Grant
    Filed: May 10, 2012
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventors: Rahul Chandrakar, Anjil R. Chinnapatlolla, Manjunath N. Shanbhag, Venkatesh N. Sripathirao
  • Patent number: 9009678
    Abstract: Software debugging with execution match determinations, including: inserting, by a compiler while compiling source code into a debuggable program, a phantom breakpoint at every line of source code; including in the debuggable program, by the compiler, a breakpoint handling module and an exit handler; executing the debuggable program including encountering one or more of the phantom breakpoints and removing, by the breakpoint handling module, each encountered phantom breakpoint; creating, by the exit handler, upon exiting execution of the debuggable program, a copy of the debuggable program that includes only phantom breakpoints not encountered during execution; and providing the copy of the debuggable program to a debugger.
    Type: Grant
    Filed: June 28, 2011
    Date of Patent: April 14, 2015
    Assignee: International Business Machines Corporation
    Inventor: Cary L. Bates
  • Patent number: 9009670
    Abstract: Various embodiments enable automated testing of Application Program Interfaces (APIs) by abstracting API call signatures and processing the abstracted API call signatures utilizing one or more genetic algorithms. Utilizing the inventive approach, test cases are built and then analyzed using a genetic algorithm. This can be done to both identify problems, such as bugs, associated with the APIs, and/or to identify quality improvements.
    Type: Grant
    Filed: July 8, 2011
    Date of Patent: April 14, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew M. Precious, Thomas A. Walton, Anish Swaminathan
  • Patent number: 9003375
    Abstract: In accordance with embodiments disclosed herein, there are provided methods, systems, mechanisms, techniques, and apparatuses for implementing optional logging of debug activities in a real time instruction tracing log. For example, in one embodiment, such means may include an integrated circuit having means for initiating instruction tracing for instructions of a traced application, mode, or code region, as the instructions are executed by the integrated circuit; means for generating a plurality of packets to a debug log describing the instruction tracing; means for initiating an alternative mode of execution within the integrated circuit; and means for suppressing indication of entering the alternative mode of execution. Additional and alternative means may be implemented for selectively causing an integrated circuit to operate in accordance with an invisible trace mode or a visible trace mode upon transition to the alternative mode of execution.
    Type: Grant
    Filed: December 30, 2011
    Date of Patent: April 7, 2015
    Assignee: Intel Corporation
    Inventors: Jason W. Brandt, Peter Lachner, Huy V. Nguyen, Jonathan J. Tyler
  • Patent number: 9003373
    Abstract: Embodiments are directed to identifying, by an apparatus comprising a processing device, a pattern in a graph that has a support value greater than a threshold, wherein: the graph comprises a plurality of weighted nodes coupled to one another by one or more weighted edges, and each of the plurality of nodes is associated with at least one weighted attribute.
    Type: Grant
    Filed: January 2, 2013
    Date of Patent: April 7, 2015
    Assignee: International Business Machines Corporation
    Inventors: Jose N. Amaral, Li Ding, Carolina Simoes Gomes, Joran S. C. Siu