Patent ID: 8935663
Filing Date: 2015-01-13
Classification: G06F

Abstract:
1. A computer-implemented method of identifying deprecated routines invoked by a software application implementing subtype polymorphism, said method comprising: receiving a source code corresponding to software instructions constituting said software application, said source code corresponding to said software instructions comprising definitions of a plurality of object types; maintaining a database indicating a second plurality of routines as being deprecated; identifying, by examining said source code, a set of polymorphic data types of said plurality of object types such that a variable defined as being one of said set of polymorphic data types can be assigned an object instance of any of said set of polymorphic data types, wherein invocation of a routine associated with said variable causes invocation of an invoked routine present in one of said set of polymorphic data types based on the polymorphic data type assigned to said variable at a point of invocation of said routine; finding, by examining said source code, a first instruction containing an invocation of a first routine associated with a first variable, said first variable being defined as of a first polymorphic data type of said set of polymorphic data types; determining, a first invoked routine that would be caused to be invoked for the invocation specified in said first instruction, wherein said determining comprises identifying by examining said source code, an assignment specifying that said first variable is assigned a second object instance of a second polymorphic data type of said set of polymorphic data types prior to said first instruction according to execution flow of said software instructions, wherein said first invoked routine is determined to be said first routine specified in said second polymorphic data type based on said assignment; ascertaining whether said first invoked routine is deprecated, wherein said ascertaining includes said first invoked routine in said report only if said first invoked routine is contained in said second plurality of routines; and generating a report indicating the instructions causing invocation of deprecated routines, wherein said report indicates that said first instruction causes invocation of said first invoked routine if said first invoked routine is ascertained to be deprecated, wherein said identifying said set of polymorphic data types, said finding said first instruction and said identifying said assignment are performed by examination of said source code, without having to execute said source code.