Sign In to Follow Application
View All Documents & Correspondence

Cognitive Recommendation System To Enhance Quality Of Software Delivery

Abstract: This disclosure relates generally to a system and method to identify one or more errors in a software development cycle (SDLC) and to recommend one or more corrective measures corresponding to each identified and prioritized error. The data is collected from various sources and filtered to remove noise based on a set of predefined data filtration parameters. A knowledge graph is constructed using the filtered unstructured data, and a training sample data is extracted from the knowledge graph to train a convolution neural network. The convolution neural network is invoked to identify errors in the module during SDLC and to prioritize the identified errors based on severity of the errors. A recommendation module of the system is configured to recommend one or more corrective measures according to the priority of one or more errors using a cognitive platform. [To be published with FIG. 2]

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
21 February 2019
Publication Number
35/2020
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
kcopatents@khaitanco.com
Parent Application
Patent Number
Legal Status
Grant Date
2023-09-22
Renewal Date

Applicants

Tata Consultancy Services Limited
Nirmal Building, 9th floor, Nariman point, Mumbai

Inventors

1. MANDAL, Indrajit
Tata Consultancy Services Limited, Block -1B, Eco Space, Plot No. IIF/12 (Old No. AA-II/BLK 3. I.T) Street 59 M. WIDE (R.O.W.) Road, New Town, Rajarhat, P.S. Rajarhat, Dist - N. 24 Parganas, Kolkata 700160

Specification

Claims:CLAIMS
We Claim:
1. A processor-implemented method comprising one or more steps of:
collecting a plurality of data from one or more predefined sources, wherein the plurality of data is an unstructured text, image, and charts;
filtering the collected plurality of data from the one or more sources to remove noise based on a set of predefined data filtration parameters;
constructing a knowledge graph using the filtered unstructured data, wherein the knowledge graph comprises one or more data nodes;
extracting a set of training data from the constructed knowledge graph to train a convolution neural network;
invoking the trained convolution neural network to identify one or more errors in a software development cycle, wherein the one or more errors are at a package level;
prioritizing the identified one or more errors based on severity of each of the one or more errors; and
recommending one or more corrective measures corresponding to each of the prioritized one or more errors using a cognitive platform.

2. The method claimed in claim 1, wherein each node of the knowledge graph is expressed by a relation.

3. The method claimed in claim 1, wherein the one or more errors are categorized into low, medium, high priority, and non-trivial.

4. The method claimed in claim 1, wherein the one or more errors in each category are ranked based on ranking of each error.

5. A system comprising:
at least one memory storing a plurality of instructions;
one or more hardware processors communicatively coupled with the at least one memory, wherein the one or more hardware processors are configured to execute one or more modules;
a data collection module configured to collect a plurality of data from one or more predefined sources, wherein the plurality of data is an unstructured text, image, and charts;
a data filtration module configured to filter the collected plurality of data from the one or more sources to remove noise based on a set of predefined data filtration parameters;
a knowledge graph construction module configured to construct a knowledge graph using the filtered unstructured data, wherein the knowledge graph comprises one or more data nodes;
an extraction module configured to extract a training sample data from the knowledge graph to train a convolution neural network;
an invocation module configured to invoke the trained convolution neural network to identify one or more errors in a software development cycle, wherein the one or more errors are at a package level;
a prioritization module configured to prioritize the identified one or more errors based on severity of each of the one or more errors; and
a recommendation module configured to recommend one or more corrective measures corresponding to the prioritized each of the one or more errors using a cognitive platform.

6. The system claimed in claim 5, wherein each node of the knowledge graph is expressed by a relation.

7. The system claimed in claim 5, wherein the one or more errors are categorized into low, medium, high priority, and non-trivial.

8. The system claimed in claim 5, wherein the one or more errors in each category are ranked based on ranking of each error.

Dated this 21st day of February 2019.

Tata Consultancy Services Limited
By their Agent & Attorney

(Adheesh Nargolkar)
of Khaitan & Co
Reg. No. IN/PA-1086 , Description:FORM 2

THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENT RULES, 2003

COMPLETE SPECIFICATION
(See Section 10 and Rule 13)

Title of invention:
COGNITIVE RECOMMENDATION SYSTEM TO ENHANCE QUALITY OF SOFTWARE DELIVERY

Applicant

Tata Consultancy Services Limited
A company Incorporated in India under the Companies Act, 1956
Having address:
Nirmal Building, 9th floor,
Nariman point, Mumbai 400021,
Maharashtra, India

Preamble to the Description
The following specification particularly describes the invention and the manner in which it is to be performed.

TECHNICAL FIELD
The disclosure herein generally relates to a field of an interactive cognitive recommender system and, more particularly, to a system and method for identifying one or more errors in a software development life cycle and consequently, recommending one or more corrective measures corresponding to each identified error.

BACKGROUND
In the software development industry, it is highly challenging as well as costly affair to identify the software defects and then rectify the same. By definition, a software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The failures of software products can be of various types. Some of them are functional errors, communication issues, missing commands, syntactic errors, calculation errors, control flow errors and improper handling of the errors.

The quality of software development is an important part of digital enterprise systems for quality engineering. There are several stages in software development that includes General Availability phase (GA), high level design review (I0), low level design review (I1), code inspection (I2), Unit Testing (UT) and Component Test (CT). Primarily, some errors that are caused by missing commands, syntactical errors, improper handling of errors and control flow errors, impacts quality of software at development stage.

Identification of possible defects in the module while coding on a project during the software development phase and during test phase as well with automated approach is a challenge. It incurs huge amount of manpower and cost from current process in Omni-industry scenario. Secondly, the quality engineering during Software Development Life Cycle (SDLC) is a qualitative problem. The subjectivity of human error is a grave challenge in the current SDLC scenarios. It causes a lot of losses due to human negligence especially businesses like software development and service industry and similar others domains. Thirdly, the time consumed for manual bugging process is high. It is a highly time taking process in the software industry and it creates delay in the software delivery and affects the customer experience, consequently affects the business in the long run. If client is unhappy, then it may lead to losing of the client. Fourthly, the accuracy of the predictions made by other available BOTs is not satisfactory. While considering the quality issues especially the accuracy of the algorithms used for pre-empt/prompt/prevent issues/anomalies, compliance alerts, system behaviors, etc. the kind of machine learning algorithms used are robust and reliable in terms of their output. The algorithms need to be tested and verified during the production phase before deployment. Fifth, the loss in revenue due to software errors and failures. Sixth, the customer experience of client is affected badly and also hampers the company reputation and also has long lasting impact on the customer experience.

Thus the present disclosure provides technological improvements as solutions to one or more of the above-mentioned technical problems recognized in conventional systems.

SUMMARY
Embodiments of the present disclosure provides technological improvements as solutions to one or more of the above-mentioned technical problems in conventional systems. For example, in one embodiment, a method and system for identifying one or more errors in a software development life cycle and recommending one or more corrective measures corresponding to each identified error.
A processor-implemented method to identify one or more errors in a software development cycle and to recommend one or more corrective measures corresponding to each identified and prioritized error. The method comprises one or more steps as collecting a plurality of data from one or more predefined sources, filtering the collected plurality of data from the one or more sources to remove noise based on a set of predefined data filtration parameters, constructing a knowledge graph using the filtered unstructured data, selecting a training sample data from the knowledge graph to train a convolution neural network, invoking the trained convolution neural network to identify one or more errors in a software development cycle, prioritizing the identified one or more errors based on severity of each of the one or more errors and finally recommending one or more corrective measures corresponding to prioritized one or more errors using a cognitive platform.

A system is configured to identify one or more errors in a software development cycle and to recommend one or more corrective measures corresponding to each identified and prioritized error in the software development cycle. The system comprising at least one memory storing a plurality of instructions and one or more hardware processors communicatively coupled with the at least one memory. The one or more hardware processors are configured to execute one or more modules comprises of a data collection module, a data filtering module, a knowledge graph construction module, an extraction module, an invocation module, a prioritization module, and a recommendation module.

The data collection module is configured to collect a plurality of data from one or more predefined sources. The collected plurality of data from the one or more sources is filtered at the data filtering module to remove noise based on a set of predefined data filtration parameters. The knowledge graph construction module is configured to construct a knowledge graph using the filtered unstructured data and the extraction module is configured to extract a training sample data from the knowledge graph to train a convolution neural network. The trained convolution neural network is invoked to identify one or more errors in a software development cycle and the prioritization module is configured to prioritize the identified one or more errors based on severity of each of the one or more errors. The recommendation module is configured to recommend one or more corrective measures corresponding to prioritize one or more errors using a cognitive platform.

It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed principles:

FIG. 1 illustrates a system to identify one or more errors in a software development cycle and to recommend one or more corrective measures corresponding to each identified error according to some embodiments of the present disclosure;

FIG. 2 is a schematic diagram presents an interactive cognitive BOT as a system is provided in accordance with some embodiments of the present disclosure;

FIG. 3 is a flow diagram to illustrate a method to identify one or more errors in a software development cycle and to recommend one or more corrective measures corresponding to each identified error in accordance with some embodiments of the present disclosure; and

FIG. 4 is a schematic diagram represents an interactive cognitive BOT in identifying and prioritizing the errors in accordance with some embodiments of the present disclosure.

It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems and devices embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.

DETAILED DESCRIPTION OF EMBODIMENTS
Exemplary embodiments are described with reference to the accompanying drawings. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. Wherever convenient, the same reference numbers are used throughout the drawings to refer to the same or like parts. While examples and features of disclosed principles are described herein, modifications, adaptations, and other implementations are possible without departing from the spirit and scope of the disclosed embodiments. It is intended that the following detailed description be considered as exemplary only, with the true scope and spirit being indicated by the following claims.

The embodiments herein provide a method and a system to identify one or more errors in a software development cycle and to recommend one or more corrective measures corresponding to each identified and prioritized error. It is to be appreciated that the cognitive recommender can track the task and behavioral patterns of the user on the system so that it can pre-empt-prompt-prevent errors/anomalies etc. The system is based on the creation of a knowledge graph and Natural Language Processing (NLP) technologies that uses data from project management tools like JIRA, confluence etc. and also data from the users on daily basis. On regular basis, the user needs to be given suitable alerts in case of any erroneous patterns. The system prioritize the one or more identified errors in terms of various categories. Based on priority of one or more errors suitable corrective measures is to be recommended to the user. It is to be noted that the system is based on self-learning wherein it will become better and more accurate over the time.

Generally, there are fixed kind of data available likely unstructured text data and tables and charts in project management tools. All these data points will be parsed by python packages and stored in the database. All these things happens via API and the system doesn’t require any extra documents or data. Thus the system is not giving any pain to user nor any client by asking any extra information.

Referring now to the drawings, and more particularly to FIG. 1 through FIG. 4, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments and these embodiments are described in the context of the following exemplary system and/or method.

Referring now FIG. 1, wherein the system (100) is configured to recommend one or more corrective measures corresponding to each identified and prioritized error. The system (100) comprises at least one memory (102) with a plurality of instructions and one or more hardware processors (104) which are communicatively coupled with the at least one memory (102) to execute modules therein.

The hardware processor (104) may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the hardware processor (104) is configured to fetch and execute computer-readable instructions stored in the memory (102). The one or more hardware processors (104) are configured to execute one or more modules comprising a data collection module (106), a data filtration module (108), a knowledge graph construction module (110), an extraction module (112), an invocation module (114), a prioritization module (116), and a recommendation module (118).

Referring FIG. 2, an interactive Cognitive BOT as a system is provided that can track the task and behavioral patterns of the user, so that it can pre-empt-prompt-prevent issues/anomalies, compliance alerts, system behaviors, etc. The system is based on the creation of a knowledge graph and NLP technologies that uses data from project management tools like JIRA, confluence etc. and also the data from the users on daily basis. While on a regular basis, the user needs to be given suitable alerts in case of any erroneous patterns. The system classifies the defects in terms of various categories. Based on the category of the defects, suitable corrective measure is to be recommended to the user. Also the cognitive BOT will be a self-learning system wherein it will become better and more accurate over the time.

In the preferred embodiment of the disclosure, the data collection module (106) of the system (100) is configured to collect a plurality of data from one or more predefined sources. The plurality of collected data is an unstructured text, Image, and charts. There are various kinds of metrics which can be used to build predictive models that can predict at the sub-class level the quantity of software errors after the software release. The efficacy of these predictive algorithms can be measured by their accuracy. The predicted output of the algorithm is compared against the actual number of errors that happens after the software release.

It would be appreciated that there are several types of variables (directly available or derived) that can be used during the software development cycle. The feature set mainly consists of source code metrics, past development measures and process data (cvs logs data). Some of them are change metrics, CK metrics, object oriented metrics (e.g. number of methods, number of attributes, etc.), number of previous defects, complexity of code change, and churn of CK and object oriented metrics, and entropy of CK and object oriented metrics.

In the preferred embodiment of the disclosure, the data filtration module (108) of the system (100) is configured to filter the collected plurality of data from the one or more sources to remove noise based on a set of predefined data filtration parameters. The data that arrives may be in the form of statistical numbers, unstructured data and image files etc. The unstructured data will be processed using Natural Language Processing (NLP) to convert to structured format. There are some variables that are derived from the statistical values of the data. For example, entropy may be calculated using other data points that are generated during the software development.

In the preferred embodiment of the disclosure, the knowledge graph construction module (110) of the system (100) is configured to construct a knowledge graph using the filtered unstructured data, wherein the knowledge graph comprises one or more data nodes. The knowledge graph comprises one or more data nodes. The knowledge graph is the brain of the system where the unstructured data is processed. This is efficient in terms of the search engine optimization and handling various kinds of data. The NLP algorithms shall extract the unstructured text that comes from various project management tools and other sources as well. In knowledge graph, the data point is represented by nodes and the relation between the nodes is expressed by a relation. Using SQL query, the required data can be mined and several critical information can be retrieved as well. When a user wants to query the knowledge graph, the user will enter the query in a user interface, then it is converted to SQL injection using python package NLIDB and the required data is fetched from the database.

In the preferred embodiment of the disclosure, the extraction module (112) of the system (100) is configured to extract a training sample data from the knowledge graph to train a convolution neural network.

In the preferred embodiment of the disclosure, the invocation module (114) of the system (100) is configured to invoke the trained convolution neural network to identify one or more errors in a software development cycle, wherein the one or more errors are at a package level. Herein, the one or more identified errors that are caused by missing commands, syntactical errors, improper handling of errors and control flow errors.

In the preferred embodiment of the disclosure, the prioritization module (116) of the system (100) is configured to prioritize the identified one or more errors based on severity of each of the one or more errors. The system is configured to report the kind of each identified error priority with ranking of the errors. Higher the ranking refers to higher importance of one or more identified errors. For each error, the category of error and rank is generated using mathematical function of Bayesian approach. The ranking of each of the one or more errors helps in prioritizing the one or more errors within each category. For example, if there are 20 critical errors, 15 non-critical errors and 10 trivial errors. Now, in the list of 20 critical errors, the ranks will sort the errors according their importance.

In the preferred embodiment of the disclosure, the recommendation module (118) of the system (100) is configured to recommend one or more corrective measures corresponding to prioritized each of the one or more errors using a cognitive platform. The system is able to detect the one or more errors and based on the error type, it recommends possible corrective measures that is most suitable for the given error type. For example, if there are any memory leakage issue in the code, then it will recommend for checking the memory leakage issue at particular module of the software. If there are any kind of variables dependency deadlock situation, then it will be recommended to change the code to eliminate the same.

Referring FIG. 3, a processor-implemented method (200) identify one or more errors in a software development life cycle and to recommend one or more corrective measures corresponding to each identified and prioritized error. The method comprises one or more steps as follows.

Initially, at the step (202), a plurality of data from one or more predefined sources is collected at a data collection module (106) of the system (100). Wherein the plurality of data is an unstructured text, Image, and charts.

In the preferred embodiment of the disclosure, at the next step (204), the collected plurality of data from the one or more sources is filtered based on a set of predefined parameters at a data filtration module (108) of the system (100). The plurality of collected data undergoes data treatment as per predefined set of rules that includes data cleaning and data pre-processing stages. The plurality of collected data may contain extreme and outlier values which needs to be processed with set of rules like replacement of extreme values using moving average values, interpolated using regression method. The raw data needs to be converted to derived variables like computing the entropy of the changes happening during code modification. The measure of information entropy associated with each possible data value is the negative logarithm of the probability mass function for the value:
Entropy= - ?_i¦Pi Log(Pi)

In the preferred embodiment of the disclosure, at the next step (206), constructing a knowledge graph using the filtered unstructured data at a knowledge graph construction module (110) of the system (100).

The knowledge graph comprises one or more data nodes. Knowledge Graph is the brain of the system where the unstructured data is processed. This is highly efficient in terms of the search engine optimization and handling various kinds of data. The NLP algorithms shall extract the unstructured text that comes from various project management tools and other sources as well. In knowledge graph, the data point is represented by nodes and the relation between the nodes is expressed by a relation.

In one example, wherein if the query is “Who was the Prime Minister of India when Sachin Tendulkar was born?” In this case, the query is converted to SQL statements. First, the system finds the year of birth of Sachin Tendulkar and then it tries to check the Prime Minister of India from the database.

In the preferred embodiment of the disclosure, at the next step (208), extracting a set of training data at an extraction module (112) of the system (100) from the constructed knowledge graph to train a convolution neural network. The extraction of the set of training data is based on a set of predefined parameters.

It is to be noted that the data comes from various project tools like JIRA, Confluence etc. in the form of text, graph and tables. These data points are converted from unstructured to structured data points using Natural language Processing (NLP). These data points can be stored in the knowledge graph in the form of nodes and edges. The deep learning model needs to be trained on the dataset available in knowledge graph. A predictive model using convolution neural network is developed to predict the software errors during the software development life cycle.

Referring FIG. 4, wherein tracking the task and behavioral patterns of the user, so that it can pre-empt-prompt-prevent issues/anomalies, compliance alerts, system behaviors, etc. Creating a knowledge graph and NLP technologies that uses data from project management tools like JIRA, confluence etc. and also the data from the users on daily basis. While on a regular basis, the user needs to be given suitable alerts in case of any erroneous patterns. The BOT is used to classify the defects in terms of various categories. Based on the category of the defects, suitable corrective measure is to be recommended to the user. Also the cognitive BOT will be a self-learning system wherein it will become better and more accurate over the time.

In the preferred embodiment of the disclosure, at the next step (210), the trained convolution neural network is invoked at an invocation module (114) to identify one or more errors in a software development cycle. It would be appreciated that the one or more errors are identified at a package level. There are several stages of software development life cycle in sequence like General Availability phase (GA), High Level Design Review (I0), Low level Design Review (I1), Code Inspection (I2), Unit Test (UT) and Component Test (CT).

In the preferred embodiment of the disclosure, at the next step (212), prioritizing the identified one or more errors at a prioritization module (116) of the system (100) based on severity of each of the one or more errors.

In the preferred embodiment of the disclosure, at the last step (214), recommending one or more corrective measures using a recommendation module (118) of the system (100) corresponding to each of the identified and prioritized error.

The written description describes the subject matter herein to enable any person skilled in the art to make and use the embodiments. The scope of the subject matter embodiments is defined by the claims and may include other modifications that occur to those skilled in the art. Such other modifications are intended to be within the scope of the claims if they have similar elements that do not differ from the literal language of the claims or if they include equivalent elements with insubstantial differences from the literal language of the claims.

The embodiments of present disclosure herein addresses unresolved problem of identification of possible defects in the module while coding on a project during the Software Development phase and during test phase as well with automated approach. It incurs huge amount of manpower and cost from current process in Omni-Industry scenario. Secondly, the quality engineering during Software Development Life Cycle (SDLC) is a qualitive problem. The subjectivity of human error is a grave challenge in the current SDLC scenario. It causes a lot of losses due to human negligence especially businesses like software development and service industry and similar others domains. Thirdly, the time consumed for manual bugging process is high. It is a highly time taking process in the software industry and it creates delay in the software delivery and affects the customer experience, consequently affects the business in the long run. If client is unhappy, then it may lead to losing of the client. Fourthly, the accuracy of the predictions made by other available BOTs is not satisfactory. While considering the quality issues especially the accuracy of the algorithms used for pre-empt/prompt/prevent issues/anomalies, compliance alerts, system behaviors, etc. the kind of machine learning algorithms used are robust and reliable in terms of their output. The algorithms need to be tested and verified during the production phase before deployment. Fifth, the loss in revenue due to software errors and failures. Sixth, the customer experience of client is affected badly and also hampers the company reputation and also has long lasting impact on the customer experience.

It is to be understood that the scope of the protection is extended to such a program and in addition to a computer-readable means having a message therein; such computer-readable storage means contain program-code means for implementation of one or more steps of the method, when the program runs on a server or mobile device or any suitable programmable device. The hardware device can be any kind of device which can be programmed including e.g. any kind of computer like a server or a personal computer, or the like, or any combination thereof. The device may also include means which could be e.g. hardware means like e.g. an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination of hardware and software means, e.g. an ASIC and an FPGA, or at least one microprocessor and at least one memory with software modules located therein. Thus, the means can include both hardware means and software means. The method embodiments described herein could be implemented in hardware and software. The device may also include software means. Alternatively, the embodiments may be implemented on different hardware devices, e.g. using a plurality of CPUs.

The embodiments herein can comprise hardware and software elements. The embodiments that are implemented in software include but are not limited to, firmware, resident software, microcode, etc. The functions performed by various modules described herein may be implemented in other modules or combinations of other modules. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments. Also, the words “comprising,” “having,” “containing,” and “including,” and other similar forms are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise.

Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, i.e., be non-transitory. Examples include random access memory (RAM), read-only memory (ROM), volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs, flash drives, disks, and any other known physical storage media.

It is intended that the disclosure and examples be considered as exemplary only, with a true scope and spirit of disclosed embodiments being indicated by the following claims.

Documents

Application Documents

# Name Date
1 201921006825-IntimationOfGrant22-09-2023.pdf 2023-09-22
1 201921006825-STATEMENT OF UNDERTAKING (FORM 3) [21-02-2019(online)].pdf 2019-02-21
2 201921006825-PatentCertificate22-09-2023.pdf 2023-09-22
2 201921006825-REQUEST FOR EXAMINATION (FORM-18) [21-02-2019(online)].pdf 2019-02-21
3 201921006825-FORM 18 [21-02-2019(online)].pdf 2019-02-21
3 201921006825-FER.pdf 2021-10-19
4 201921006825-FORM 1 [21-02-2019(online)].pdf 2019-02-21
4 201921006825-CLAIMS [15-09-2021(online)].pdf 2021-09-15
5 201921006825-FIGURE OF ABSTRACT [21-02-2019(online)].jpg 2019-02-21
5 201921006825-COMPLETE SPECIFICATION [15-09-2021(online)].pdf 2021-09-15
6 201921006825-FER_SER_REPLY [15-09-2021(online)].pdf 2021-09-15
6 201921006825-DRAWINGS [21-02-2019(online)].pdf 2019-02-21
7 201921006825-ORIGINAL UR 6(1A) FORM 26-080419.pdf 2019-11-27
7 201921006825-DECLARATION OF INVENTORSHIP (FORM 5) [21-02-2019(online)].pdf 2019-02-21
8 201921006825-ORIGINAL UR 6(1A) FORM 1-280319.pdf 2019-10-24
8 201921006825-COMPLETE SPECIFICATION [21-02-2019(online)].pdf 2019-02-21
9 201921006825-Proof of Right (MANDATORY) [25-03-2019(online)].pdf 2019-03-25
9 Abstract1.jpg 2019-05-22
10 201921006825-FORM-26 [04-04-2019(online)].pdf 2019-04-04
11 201921006825-Proof of Right (MANDATORY) [25-03-2019(online)].pdf 2019-03-25
11 Abstract1.jpg 2019-05-22
12 201921006825-COMPLETE SPECIFICATION [21-02-2019(online)].pdf 2019-02-21
12 201921006825-ORIGINAL UR 6(1A) FORM 1-280319.pdf 2019-10-24
13 201921006825-DECLARATION OF INVENTORSHIP (FORM 5) [21-02-2019(online)].pdf 2019-02-21
13 201921006825-ORIGINAL UR 6(1A) FORM 26-080419.pdf 2019-11-27
14 201921006825-DRAWINGS [21-02-2019(online)].pdf 2019-02-21
14 201921006825-FER_SER_REPLY [15-09-2021(online)].pdf 2021-09-15
15 201921006825-COMPLETE SPECIFICATION [15-09-2021(online)].pdf 2021-09-15
15 201921006825-FIGURE OF ABSTRACT [21-02-2019(online)].jpg 2019-02-21
16 201921006825-CLAIMS [15-09-2021(online)].pdf 2021-09-15
16 201921006825-FORM 1 [21-02-2019(online)].pdf 2019-02-21
17 201921006825-FER.pdf 2021-10-19
17 201921006825-FORM 18 [21-02-2019(online)].pdf 2019-02-21
18 201921006825-PatentCertificate22-09-2023.pdf 2023-09-22
18 201921006825-REQUEST FOR EXAMINATION (FORM-18) [21-02-2019(online)].pdf 2019-02-21
19 201921006825-STATEMENT OF UNDERTAKING (FORM 3) [21-02-2019(online)].pdf 2019-02-21
19 201921006825-IntimationOfGrant22-09-2023.pdf 2023-09-22

Search Strategy

1 2021-01-2514-26-22E_25-01-2021.pdf

ERegister / Renewals

3rd: 27 Sep 2023

From 21/02/2021 - To 21/02/2022

4th: 27 Sep 2023

From 21/02/2022 - To 21/02/2023

5th: 27 Sep 2023

From 21/02/2023 - To 21/02/2024

6th: 04 Jan 2024

From 21/02/2024 - To 21/02/2025

7th: 09 Jan 2025

From 21/02/2025 - To 21/02/2026