METHOD AND DEVICE FOR REDUCING THE CARBON FOOTPRINT OF A SOFTWARE APPLICATION
20230289819 · 2023-09-14
Assignee
Inventors
- Padmanabhan Balasubramanian (Chennai, IN)
- Rohini Sitani (Chennai, IN)
- Indumathi Balaji (Chennai, IN)
- Jayakumar Anantharama Kesavan (Chennai, IN)
- Yogeswari Radha (Chennai, IN)
Cpc classification
G06F11/302
PHYSICS
G06F11/3058
PHYSICS
G06Q10/06375
PHYSICS
International classification
Abstract
A method for reducing the carbon footprint of a software application during a test phase including calculating a unitary carbon footprint of each application scenario of a determined set of application scenarios, estimating the number of executions of the each application scenario of the determined set of application scenarios over a predetermined period of time, calculating a total carbon footprint of the each application scenario over the predetermined period of time using the unitary carbon footprint that is calculated and the number of executions that is estimated of the each application scenario. The method also includes determining a subset of the set of application scenarios using at least the total carbon footprint of the each application scenario, and modifying or removing from the software application at least one application scenario of the subset to reduce the carbon footprint of the software application.
Claims
1. A method for reducing a carbon footprint of a software application, said software application being characterized by a set of application features, wherein, for at least one determined set of application scenarios for testing at least some of said set of application features and for each determined set of application scenarios of said at least one determined set of application scenarios, said method comprising: calculating a unitary carbon footprint of each application scenario of the at least one determined set of application scenarios, estimating a number of executions of each application scenario of the each determined set of application scenarios over a predetermined period of time, calculating a total carbon footprint of said each application scenario over said predetermined period of time using the unitary carbon footprint that is calculated and the number of executions that is estimated of said each application scenario, determining a subset of the each determined set of application scenarios using at least the total carbon footprint that is calculated, modifying or removing from the software application at least one application scenario of the subset that is determined to reduce the carbon footprint of the software application.
2. The method according to claim 1, wherein the determining the subset comprises selecting only application scenarios of the at least one determined set of application scenarios for which the total carbon footprint of said each application scenario is lower than a predetermined threshold.
3. The method according to claim 1, further comprising, between the determining the subset and the modifying or removing the at least one application scenario of the subset that is determined, selecting, automatically or manually, the at least one application scenario to be modified or removed based on one or more of a business impact of said at least one application scenario, and the number of executions of said each application scenario expected during use of the software application in production.
4. The method according to claim 1, wherein, said each application scenario being defined as an application scenario definition, the calculating the unitary carbon footprint comprises, for said each application scenario, identifying a set of keywords in the application scenario definition, mapping the set of keywords to at least one reference type, retrieving the carbon footprint of each reference type of said at least one reference type into a knowledge database, calculating the unitary carbon footprint of the each application scenario by summing up carbon footprint values for all reference types that are mapped.
5. The method according to claim 4, wherein the identifying the set of keywords in the application scenario definition comprises reading terms of the application scenario definition in an application case repository, correcting spelling errors in the terms, tokenizing the terms that are corrected, removing stop words and duplicates.
6. The method according to claim 1, wherein the predetermined period of time is equal to one month or one year.
7. The method according to claim 2, wherein the predetermined threshold is predetermined in order to keep at least a predefined percentage of application scenarios in the subset.
8. The method according to claim 1, wherein said method is operated on several different sets of application scenarios of the software application.
9. A non-transitory computer program product comprising a set of program code instructions which, when executed by one or more processors, configure said one or more processors to implement a method for reducing a carbon footprint of a software application, said software application being characterized by a set of application features, wherein, for at least one determined set of application scenarios for testing at least some of said set of application features and for each determined set of application scenarios of said at least one determined set of application scenarios, said method comprising: calculating a unitary carbon footprint of each application scenario of the at least one determined set of application scenarios, estimating a number of executions of each application scenario of the each determined set of application scenarios over a predetermined period of time, calculating a total carbon footprint of said each application scenario over said predetermined period of time using the unitary carbon footprint that is calculated and the number of executions that is estimated of said each application scenario, determining a subset of the each determined set of application scenarios using at least the total carbon footprint that is calculated, modifying or removing from the software application at least one application scenario of the subset that is determined to reduce the carbon footprint of the software application.
10. A device for reducing the carbon footprint of a software application during a test phase, said software application being characterized by a set of application features, wherein, for at least one determined set of application scenarios for testing at least some of said set of application features and for each determined set of application scenarios of said at least one determined set of application scenarios, said device comprising: a computer configured to calculate a unitary carbon footprint of each application scenario of the at least one determined set of application scenarios, estimate a number of executions of each application scenario of the each determined set of application scenarios over a predetermined period of time, calculate a total carbon footprint of said each application scenario over said predetermined period of time using the unitary carbon footprint that is calculated and the number of executions that is estimated of said each application scenario, determine a subset of the each determined set of application scenarios using at least the total carbon footprint that is calculated, modify or remove from the software application at least one application scenario of the subset that is determined to reduce the carbon footprint of the software application.
11. The device according to claim 10, wherein computer is further configured to select, automatically or manually, the at least one application scenario to be modified or removed based on one or more of a business impact of said at least one application scenario, and the number of executions of said each application scenario expected during use of the software application in production.
12. The device according to claim 10, wherein, said each application scenario being defined as an application scenario definition, for calculating the unitary carbon footprint for said each application scenario, the computer is further configured to identify a set of keywords in the application scenario definition, map the set of keywords to a least one reference type, retrieve the carbon footprint of each reference type of said at least one reference type into a knowledge database, calculate the unitary carbon footprint of the each application scenario by summing up carbon footprint values for all reference types that are mapped.
13. The device according to claim 12, wherein, for said identify the set of keywords in the application scenario definition, the computer is further configured to read terms of the application scenario definition in an application case repository, correct spelling errors in the terms, tokenize the terms that are corrected, remove stop words and duplicates.
14. The device according to claim 10, wherein said device is configured to operate on several different sets of application scenarios of the software application.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0064] These and other features, aspects, and advantages of the one or more embodiments of the invention are better understood with the following Detailed Description of the Invention, Claims, and accompanying Figures, where:
[0065]
[0066]
[0067]
DETAILED DESCRIPTION OF THE INVENTION
[0068] The Specification, which includes the Brief Summary of Invention, Brief Description of the Drawings and the Detailed Description of the Invention, and the Claims refer to particular features (including process or method steps) of one or more embodiments of the invention. Those of skill in the art understand that the one or more embodiments of the invention includes all possible combinations and uses of particular features described in the Specification. Those of skill in the art understand that the one or more embodiments of the invention is not limited to or by the description of the one or more embodiments herein. Those of skill in the art also understand that the terminology used for describing one or more embodiments does not limit the scope or breadth of the one or more embodiments of the invention. In interpreting the disclosure, all terms should be interpreted in the broadest possible manner consistent with the context of each term. All technical and scientific terms used in the disclosure herein have the same meaning as commonly understood by one of ordinary skill in the art to which at least one embodiment of the invention belongs unless defined otherwise.
[0069] As described herein, the singular forms “a”, “an”, and “the” include plural references unless the context clearly indicates otherwise. The verb “comprises” and its conjugated forms should be interpreted as referring to elements, components or steps in a non-exclusive manner. The referenced elements, components or steps may be present, utilized or combined with other elements, components or steps not expressly referenced.
[0070] At least one embodiment of the invention encompasses and bounds smaller ranges of the interval subject to any specific exclusion provided. Where the disclosure references a method comprising two or more defined steps, the defined steps can be carried out in any order or simultaneously except where the context excludes that possibility.
[0071] Reference will now be made in detail to one or more embodiments or features, examples of which are illustrated in the accompanying drawings. Wherever possible, corresponding or similar reference numbers will be used throughout the drawings to refer to the same or corresponding parts.
[0072] Moreover, references to various elements described herein are made collectively or individually when there may be more than one element of the same type. However, such references are merely exemplary in nature. It may be noted that any reference to elements in the singular may also be construed to relate to the plural and vice-versa without limiting the scope of the disclosure to the exact number or type of such elements unless set forth explicitly in the claims.
[0073] Aspects of one or more embodiments of the invention are directed to the functional features of an application running on a computing device, such as a server unit or a computer.
[0074]
[0075] The carbon footprint of a software application or digital carbon footprint is defined as the total carbon footprint generated by the execution of transactions including viewing, and processing (in particular the production of data, the use of data and the transfer of data that are operated when running the software application). The operation of the software application triggers the use of one or several features of said software application, depending on the scenario or use case which is run. The carbon footprint of the software application can be either instantaneous, an average over a period of time or a total over a period of time.
[0076] In the framework of at least one embodiment of the invention, the software application is characterized by a set of application features. For example, in at least one embodiment, an application may be characterized by user interfaces (e.g. SMS (Short Message Service) notifications, plain text mails, mails with an image or attachment . . . ).
[0077] In reference to
[0078]
[0079] An application scenario AS may be a single test case or a whole test scenario as known in the art of testing. A test case is used to test one or several determined features independently whereas a test scenario corresponds to a series of features that will be performed by a user when the application will be used in an operational context.
[0080] Each application scenario AS involve the use of one or several application features of the software application and is defined by a plurality of terms (words, alphanumerical characters, codes, etc.) called “the application scenario definition”. The application scenario definition may be a title or a full paragraph. Application scenarios definitions may be stored in an application scenario repository of a memory zone of the device 10 or accessible to the device 10 or in the knowledge database 20.
[0081] The device 10 is configured to calculate the unitary carbon footprint of each application scenario AS of each determined set SET1, SET2 of application scenarios AS.
[0082] In at least one embodiment, in order to calculate the unitary carbon footprint for each application scenario, the device 10 is configured to identify a set of keywords in the application scenario definition, map the set of keyword to one or several categories stored in the knowledge database 20, retrieve the carbon footprint of each category from the knowledge database 20, calculate the unitary carbon footprint of the application scenario AS by summing up the carbon footprint values for all mapped categories.
[0083] For example, in at least one embodiment, the knowledge database 20 may comprise the following sets of keywords, categories and unitary carbon footprint.
TABLE-US-00001 TABLE 1 Unitary Carbon Keywords Category Size Footprint (UCF) Laser Printer Print Direct Single A4 Page 1.0 g PDF Generation Indirect (200 KB) 295.0 g Image-Load Indirect (PNG~100 KB) 147.5 g
[0084] Preferably, in at least one embodiment, the device 10 is configured to identify a set of keywords in an application scenario definition using Natural Language Processing analysis.
[0085] For example, in at least one embodiment, N-gram techniques may be applied to match each keyword with a given reference type stored in the knowledge database 20.
[0086] In at least one embodiment, in order to identify the set of keywords in the application scenario definition, the device 10 is configured to read the terms of the application scenario AS definition in an application case repository (e.g. stored in the device 10 or accessible to the device 10), correct spelling errors, and remove stop words and duplicates to obtain a list of tokens, the mapping to the at least one category being done using said obtained list of tokens. Stemming and/or lemmatization may be applied to find the root element of the tokens and remove duplicates.
[0087] The device 10 is configured to estimate the number of executions of each application scenario AS of a determined set SET1, SET2 of application scenario AS over a predetermined period of time. The period of time may be equal to one month or, preferably, to one year.
[0088] The device 10 is configured to calculate the total carbon footprint of each application scenario AS of a given set SET1, SET2 of application scenarios AS over said predetermined period of time using the calculated unitary carbon footprint and the estimated number of executions of each application scenario AS.
[0089] The device 10 is configured to determine, for each set SET1, SET2 of application scenarios AS, a subset (respectively SSET1, SSET2) of application scenarios AS using at least the calculated total carbon footprint.
[0090] In at least one embodiment, the device 10 is configured to determine the subset SSET1, SSET2 for the application scenario AS for which the total carbon footprint of each application scenario AS is lower than a predetermined threshold.
[0091] The device 10 is configured to modify or remove at least one application scenario AS of the determined subset SSET1, SSET2 from the software application to reduce the carbon footprint of said software application.
[0092] The predetermined threshold allows to determine the application scenarios AS of a set SET1, SET2 which have the least carbon footprints (i.e. the lowest impact on the environment) among the application scenarios of a given set. The predetermined threshold may be a carbon footprint value that correspond to a percentage of the highest carbon footprints that is greater than the threshold (e.g. 500 kg). The predetermined threshold may be different between different set SET1, SET2 of application scenarios AS.
[0093] The device 10 is configured to run the software application only using the application scenarios AS of each determined subset SSET1, SSET2.
[0094] In at least one embodiment, the device 10 is configured to select, automatically or manually, the at least one application scenario AS to be modified or removed based on the business impact of said application scenario AS and/or the number of executions of said application scenario AS expected during the use of the software application in production.
[0095] The device 10 may be operated to configure to operate on several different sets of application scenarios AS of the software application, in particular to test features independently.
[0096] In at least one embodiment, the device 10 is configured to operate simultaneously on several different sets SET1, SET2 of application scenarios AS of the software application.
EXAMPLE OF OPERATION
[0097] An example of the method according to one or more embodiments of the invention will now be described in reference to
[0098] In a step S0, one or several set SET1, SET2 of application scenarios AS for testing at least some of the application features are determined, either by the device 10 or by a user, preferably through the device 10.
[0099] In a step S1, the device 10 calculates the unitary carbon footprint UCF of each application scenario AS of each determined set SET1, SET2 of application scenarios AS.
[0100] In at least one embodiment, the calculation of the unitary carbon footprint UCF comprises the steps, for each application scenario AS, of identifying (S11) a set of keywords in the application scenario definition, mapping (S12) the set of keyword to a least one reference type, retrieving (S13) the carbon footprint of each reference type from the knowledge database 20 and calculating (S14) the unitary carbon footprint of the application scenario AS by summing up the carbon footprint values for all mapped reference types.
[0101] Preferably, in one or more embodiments, the identification of the set of keywords in the application scenario definition comprises reading (S111) the terms of the application scenario definition in an application case repository, correcting (S112) spelling errors, tokenizing (S113) the corrected terms and removing (S114) stop words and duplicates.
[0102] This identification may be done by applying a Natural Language Processing (NLP) technique on the applications features of the given application scenario. The NLP allows to pre-process the text information of the application features by checking and correcting the spelling, removing stop words and applying stemming and lemmatization to improve tokens and remove duplicates.
[0103] In a first example, according to one or more embodiments, an application scenario entitled “Order products on a leading retailer's e-commerce website” may be defined by the following application scenario definition: “The system shall allow for online product ordering by browsing image either by the customer or the sales agent. For customers, this will eliminate the current delay between their decision to buy and the placement of the order”.
[0104] The identification of the set of keywords in the application scenario definition comprises at first reading the terms of the application scenario definition in an application case repository using NLP technique then correcting spelling errors using algorithmic operations such as replacement, deletion, transposition and insertion e.g. as follows: “The system shall allow for on-line product ordering by browsing image either by the customer or the sales agent. For customers, this will eliminate the current delay between their decision to buy and the placement of the order”.
[0105] Then, a tokenization method is applied to split the sentence into smaller units, called tokens, such as words, terms, symbols: “The, system, shall, allow, for, on-line, product, ordering, by, browsing, image, either, by, the, customer, or, the, sales, agent, For, customers, this, will, eliminate, the, current, delay, between, their, decision, to, buy, and, the, placement, of, the, order”.
[0106] The tokens are then processed to remove the most commonly used words (referred to as “stop words”) and duplicates: “agent, allow, browsing, buy, current, customer, decision, delay, either, eliminate, image, on-line, order, ordering, placement, product, sales, system”.
[0107] The tokens are then lemmatized and duplicated tokens are removed to improve the efficacy of them: “agent/agent, allow/allow, browsing/browse, buy/buy, current/current, customer/customer, decision/decision, delay/delay, either/either, eliminate/eliminate, image/image, on-line/on-line, order/order, ordering/order, placement/placement, product/product, sales/sale, system/system”
[0108] The processed tokens are then matched with tokens stored in the knowledge database 20. In this first example, by way of one or more embodiments, the processed tokens are associated to reference tokens corresponding to the function “Image” that allows to generate an image.
[0109] In a second example, by way of at least one embodiment, another application scenario entitled “Print the electronic health record of a patient using a leading Healthcare Technology product” may be defined by the following application scenario definition: [0110] “Double click reportrequest.exe and enter in the username <your account>, password <your password>. Click ‘Ok’ [0111] Within the Report Scope box, ensure that the Report Scope dropdown is set to “Encounter” [0112] In the Name field, type the test patient's last name <ZZZTEST,*> and press enter [0113] Select the test patient and appropriate encounter. Click ‘Ok’ [0114] Under Event Status, click the dropdown arrow and select ‘All results’ [0115] In the bottom left under Template Selection, choose “Master Report with Confidential” for the report type [0116] On the right side in the Purpose section, select “Other” from the drop-down [0117] In the bottom right, Output type should have PDF selected [0118] Click the Print button to save the PDF [0119] Open PDF from saved location. Click Print button to print in A4 format”. [0120] The spelling error correction leads to the following group of terms: [0121] “Double-click reportrequest.exe and enter in the username <your account>, password <your password>. Click ‘Ok’ [0122] Within the Report Scope box, ensure that the Report Scope dropdown is set to “Encounter” [0123] In the name field, type the test patient's last name <ZZZTEST,*> and press enter [0124] Select the test patient and appropriate encounter. Click ‘Ok’ [0125] Under Event Status, click the drop-down arrow and select ‘All results’ [0126] In the bottom left under Template Selection, choose “Master Report with Confidential” for the report type. [0127] On the right side in the Purpose section, select “Other” from the drop-down [0128] In the bottom right, Output type should have PDF selected [0129] Click the Print button to save the PDF. [0130] Open PDF from saved location. Click Print button to print in A4 format”.
[0131] Tokenization leads to the following group of terms: “Double-click, and, in, username, account, your, Click, Within, Report, box, that, Report, dropdown, set, Encounter, In, name, type, test, last, ZZZTEST,*, press, Select, test, and, encounter, Ok, Under, Status, the, arrow, select, results, In, bottom, under, Selection, Master Report with Confidential, the, type, On, right, in, Purpose, select, from, drop-down, In, bottom, Output, should, PDF, Click, Print, to, the, Open, from, location, Print, to, in, format”.
[0132] After removing stop words and duplicates, processed tokens are: “A4, account, All, appropriate, arrow, bottom, box, button, choose, Click, Double-click, dropdown, Encounter, ensure, enter, Event, field, format, last, left, location, Master Report with Confidential, name, Ok, Open, Output, password, patient, PDF, press, Print, Purpose, Report, reportrequestexe, result, right, save, Scope, section, Select, Selection, set, side, Status, Template, test, type, username, Within, ZZZTEST”.
[0133] The processed tokens are then matched with tokens stored in the knowledge database 20. In this second example, by way of at least one embodiment, the processed tokens are associated to reference tokens corresponding to the function “Print”, that allows to print a document on one or several pages of paper, and to the function “PDF” that allows to generate a PDF file.
[0134] Each function is associated in the knowledge database 20 with a unitary carbon footprint value.
[0135] In the first example, by way of at least one embodiment, assuming e.g. that the image has a size of 100 KB, generating an image may e.g. correspond to a unitary carbon footprint value of 147.5 g of carbon dioxide equivalent (CO2e).
[0136] In the second example, by way of one or more embodiments, printing a page may e.g. correspond to a unitary carbon footprint value of 1 g of carbon dioxide equivalent (CO2e) and generating a PDF ay e.g. correspond to a unitary carbon footprint value of 295 g of carbon dioxide equivalent (CO2e).
[0137] Some of the functions have a direct carbon footprint impact as they involve a physical resulting action, such as e.g. printing a page on a paper, while some others have an indirect carbon footprint impact as they are performed inside a computing device or system, such as e.g. generating an image file or a PDF file.
[0138] In a step S2, the device 10 estimates the number of executions NE of each application scenario AS of the determined set SET1, SET2 of application scenarios AS over a predetermined period of time. In the first example, by way of at least one embodiment, it is assumed that 100 images are generated each month. In the second example, by way of one or more embodiments, it is assumed that 200 reports are generated each month and that each report comprises 2 pages, meaning that 400 PDF pages will be generated and 400 pages will be printed on paper each month.
[0139] In a step S3, the device 10 calculates the total carbon footprint TCF of each application scenario AS over the predetermined period of time associated with the set SET1, SET2 using the calculated unitary carbon footprint UFC of said application scenario AS and the estimated number of executions NE of said application scenario AS.
[0140] Considering a period of time of one year, the total carbon footprint TCF for the application scenario AS of the first example is equal to: 100×12×147.5 g=177 000 g=177 kg of carbon dioxide equivalent (CO2e) per year.
[0141] Considering a period of time of one year, the total carbon footprint for the application scenario AS of the second example is equal to: 400×12×1 g+400×12×295 g=4 800 g+708 000 g=4,8 kg+708 kg=712,8 kg of carbon dioxide equivalent (CO2e) per year.
[0142] For example, in at least one embodiment, a suggested way to reduce carbon foot print may be as follows: [0143] “Print Option in A4 Format [0144] Recommendation: Replace [0145] Send a mail with link to the Report [0146] Send a mailer with the contents in the body of the mailer (Non sensitive information) [0147] Send as a mailer as an attachment”.
[0148] In a step S4, the device 10 determines in each set SET1, SET2 of application scenarios AS a subset SSET1, SSET2 of the set of application scenarios AS using the calculated total carbon footprint of each application scenario AS. For example, in at least one embodiment, by selecting each application scenario AS for which the total carbon footprint is lower than a predetermined threshold. In the example of
[0149] In a step S5, one or several application scenarios AS to be modified or removed may be manually selected by a user in each subset SSET1, SSET2. The selection is advantageously based on the business impact of the application features associated with each application scenario (importance/priority of the features in production) and/or the expected number of executions of each application case (corresponding to an application scenario) during production of the software application.
[0150] In a step S6, one or several application scenarios AS in each determined subset SSET1, SSET2 are modified and/or removed from the software application to reduce the carbon footprint of the software application.
[0151] Once modified, the software application may be entered in production phase with a decreased carbon footprint than the one of the originally designed software application. For example, in at least one embodiment, if there are ten application scenarios in a set of application scenarios and that the application scenarios have each respectively the following total carbon footprint: 100 kg, 200 kg, 300 kg, 400 kg, 500 kg, 600 kg, 700 kg, 800 kg, 900 kg and 1000 kg and if the predetermined threshold is e.g. 500 kg, then only the features of the application scenarios having a total carbon footprint values smaller than 500 kg and only the critical features of the application scenarios having a total carbon footprint values greater than 500 kg, for example the ones at 800 kg and 1000 kg, may be kept in the application to limit the carbon emission during the production phase.
[0152] At least one embodiment of the invention allows limiting the carbon footprint during test phase in a simple and efficient way.