REVIEW 4 major objections 4 minor 25 references
Towards a Knowledge Base of Common Sustainability Weaknesses in Green Software Development
T0 review · 4 major / 4 minor · reviewed 2026-08-07 · deepseek-v4-flash
Pith's one-line read Existing software weakness catalogs cannot be re-tagged as sustainability weaknesses without per-case energy measurement, as shown by two CWE weaknesses with opposite energy impacts.
desk verdict A plausible position paper whose central empirical demonstration rests on two single-run microbenchmarks—talk about it, but don't treat the CWE-595 verdict as established. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The central object is the sustainability weakness itself, defined as code that hurts energy consumption and can be remedied by an energy-efficient alternative. The argument runs on paired code variants: an unoptimized snippet containing the CWE weakness and an optimized snippet with the recommended fix, statically validated with SonarQube, executed a million times, with energy estimated through psutil and ESAVE. The energy impact percentage is the criterion that decides whether a weakness can be categorized as sustainability-related.
What would settle it
Run the CWE-595 paired snippets repeatedly on several AWS instance types and workloads and record energy each time; if the version using equals() does not consistently consume more energy than the version using ==, the paper's conclusion that this weakness is not sustainability-related would not hold.
Extended reading notes
Core claim
The central discovery is a caution: the sign and size of a weakness's energy impact cannot be inferred from its status in another quality dimension. Using paired unoptimized and optimized Java snippets run a million times on one AWS instance, the paper finds that the performance-oriented fix for CWE-1046 is also an energy win, with a 75.14% reduction, while the reliability-oriented fix for CWE-595 is an energy loss, with a 312.23% increase. On this basis the paper says it is safe to categorize CWE-1046 as a sustainability weakness and not safe to categorize CWE-595 that way, and uses the pair to argue that a sustainability weakness knowledge base must be built from per-weakness measurement rather than from re-tagging existing catalogs.
Load-bearing premise
The paper's classification depends on a single energy reading per code variant on one cloud instance, with no repeated runs or uncertainty estimate.
Editorial extensions
If this is right
- Building a sustainability weakness knowledge base requires empirical energy evaluation of each candidate weakness rather than re-tagging entries from CWE or similar catalogs.
- CWE-1046 (string concatenation in a loop) is safe to categorize as a sustainability weakness on the reported evidence, while CWE-595 (reference comparison instead of content comparison) is not.
- The paired unoptimized and optimized snippet design gives a concrete template for future evaluations of other weaknesses.
- Standard evaluation rules, a weakness repository with measured impacts, and ranking mechanisms are needed before automated green-software analysis tools can be built on such a knowledge base.
Reading between the lines
- The measured results may not transfer across languages, virtual machines, or input sizes; a reliability fix that costs energy on this benchmark could save energy on another workload.
- A certification scheme based only on energy impact could push developers away from reliability fixes, so a multi-criteria view is an open question the paper does not address.
- The paired-snippet design could be scaled to the rest of the CWE catalog, but only with statistical repetition and hardware diversity to turn these demonstrations into a ranked knowledge base.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper argues that the software engineering community lacks a standardized knowledge base of sustainability weaknesses in code, and proposes that existing weakness catalogs such as CWE could serve as a starting point. To support this, the authors present two preliminary experiments, each comparing an unoptimized Java snippet containing a CWE weakness with an optimized variant. For CWE-1046 (string concatenation in a loop), the optimized code reduces energy consumption by about 75%, and the authors classify the weakness as sustainability-relevant. For CWE-595 (comparison of object references instead of contents), the optimized code using equals() consumes about 312% more energy than the unoptimized code using ==, leading the authors to classify CWE-595 as not a sustainability weakness. Based on these two cases, the paper concludes that existing weakness knowledge cannot be re-tagged as sustainability knowledge without significant due diligence, and calls for a community effort to build a sustainability weakness knowledge base.
Significance. If the central empirical claim were robust, the paper would make a useful and cautionary contribution: it would show that converting existing weakness catalogs into sustainability standards requires empirical validation, not mere relabeling. The vision of a community-driven sustainability weakness knowledge base is timely and aligns with current green-software research. The paper is also honest in calling the experiments 'early' and in listing future work such as a standard evaluation framework. However, the significance is currently limited by the thin empirical basis: two unreplicated measurements, no code artifacts, and no calibration for the energy estimator. The paper's main message is largely a position statement, and its demonstrative value depends entirely on the credibility of Table I, which the current manuscript does not establish. The claim that CWE-595 'should not be a concern' for sustainability is a specific falsifiable prediction that, if confirmed by repeated experiments, would be interesting; as presented, it is an overgeneralization from a single microbenchmark.
major comments (4)
- [Section II, Table I] The classification of CWE-595 as not a sustainability weakness rests on a single unreplicated measurement of each variant. Table I reports one execution time and one energy value per variant, with no repetitions, no standard deviation or confidence interval, and no statistical test. Under these conditions, the reported 312.23% energy increase for the optimized variant could plausibly be an artifact of JVM warm-up, CPU frequency scaling, memory allocation state, or measurement order. This measurement is the only empirical support for the paper's central claim that existing weaknesses cannot be re-tagged as-is; as presented, the claim is not demonstrated. Please add repeated runs with variance reporting, a clear measurement protocol (warm-up, ordering, number of iterations), and ideally a cross-machine or cross-JVM check.
- [Section II, CWE-595 paragraph] The conclusion that CWE-595 'should not be a concern while evaluating/certifying a software system for sustainability' overgeneralizes from one microbenchmark. The experiment tests one specific instantiation of the weakness (string comparison in a loop, with the particular data and loop structure chosen by the authors). It cannot establish that all instances of CWE-595 are energy-benign; the relative cost of equals() versus == depends on string contents, string length, interning, and the surrounding code. At most, the result suggests that CWE-595 requires case-by-case analysis. The sentence should be softened to match the evidence, e.g., 'this particular instance showed no energy benefit from the optimization.'
- [Section II, experiment design] The manuscript does not provide enough detail to reproduce the experiments. The code snippets are not shown in the text, an appendix, or an external artifact, and the measurement setup only names psutil and ESA VE without describing how energy is attributed to the process or how the VM's baseline power is handled. The reader cannot assess whether the reported Joule values are meaningful. Please include the full source of both snippet pairs, the instrumentation code, and a description of the run environment (JDK version, JVM flags, isolation, number of iterations), or provide a link to a reproducibility artifact.
- [Section II, measurement tooling] The energy estimator ESA VE is a self-cited tool (reference [19]) and the paper provides no independent calibration or validation of its accuracy on the m5.xlarge instance used here. Since the central argument depends on the relative energy values in Table I, a validation step—comparing ESA VE against a hardware power meter or a published benchmark—would substantially strengthen the evidence. Without this, the absolute and relative energy numbers are unvalidated.
minor comments (4)
- [Introduction, references] References [8] and [9] are identical; the citation of CWE at [9] duplicates [8] and should be corrected.
- [Introduction, grammar] There are small grammatical issues in the abstract and introduction, such as 'become' in 'engineering sustainable software systems become crucial' and the spacing in 'OW ASP'; these should be cleaned up.
- [Table I] The column headers of Table I, especially 'Reference Execution Time (s)', are unclear; the header appears to mix the measured values with a label. Consider simplifying to separate 'Unoptimized' and 'Optimized' columns with clear units.
- [Section II, paragraph 2] The phrase 'the weakness can appear to be reworded depending on the source' is imprecise; it should likely say 'renamed' or 'reinstantiated'. Clarify what 'reworded' means in the context of matching weaknesses across CWE, SonarQube, and ASCQM.
Circularity Check
No circularity: the paper's sustainability-weakness classifications are empirical measurements, not derivations from self-cited premises.
full rationale
The paper makes no first-principles derivation and introduces no fitted parameters. Its central claim — that existing weakness knowledge cannot be re-tagged as sustainability knowledge without due diligence — is supported by direct energy measurements on two CWE examples (Section II, Table I). The classification of CWE-1046 as 'True' and CWE-595 as 'False' follows from the paper's definition of a sustainability weakness as one with detrimental energy impact, applied to the measured direction and magnitude of energy difference. No equation is defined in terms of the conclusion, no fitted parameter is renamed as a prediction, and no uniqueness theorem is imported. The only self-citation is reference [19] (ESA VE), used as an energy-estimation tool; although no independent calibration is given, the measurement itself is external to the paper's definitions and is not equivalent by construction to the result. Any concern about unreplicated single-run measurements is a threat to validity, not circularity. Accordingly, no circular steps are identified.
Assumptions & free parameters
assumptions (4)
- domain assumption Energy measurement via psutil and ESA VE accurately captures the energy difference between code variants at microbenchmark scale.
- ad hoc to paper The two selected CWE weaknesses are representative enough to support a general claim about re-tagging existing weakness catalogs.
- domain assumption The unoptimized and optimized code snippets correctly instantiate the weaknesses and their canonical remediations.
- domain assumption A single execution batch of one million iterations yields stable and reproducible energy results.
Cite this review
Pith. "Pith review of Towards a Knowledge Base of Common Sustainability Weaknesses in Green Software Development." pith.science (2026). https://pith.science/paper/YQHY46FC
@misc{pith2026250608812,
author = {Pith},
title = {Pith review of: Towards a Knowledge Base of Common Sustainability Weaknesses in Green Software Development},
year = {2026},
howpublished = {\url{https://pith.science/paper/YQHY46FC}},
note = {Machine review of arXiv:2506.08812}
}
read the original abstract
With the climate crisis looming, engineering sustainable software systems become crucial to optimize resource utilization, minimize environmental impact, and foster a greener, more resilient digital ecosystem. For developers, getting access to automated tools that analyze code and suggest sustainabilityrelated optimizations becomes extremely important from a learning and implementation perspective. However, there is currently a dearth of such tools due to the lack of standardized knowledge, which serves as the foundation of these tools. In this paper, we motivate the need for the development of a standard knowledge base of commonly occurring sustainability weaknesses in code, and propose an initial way of doing that. Furthermore, through preliminary experiments, we demonstrate why existing knowledge regarding software weaknesses cannot be re-tagged "as is" to sustainability without significant due diligence, thereby urging further explorations in this ecologically significant domain.
Reference graph
Works this paper leans on
-
[19]
Esave: Estimating server and virtual machine energy,
P. Pathania, R. Mehra, V . S. Sharma, V . Kaulgud, S. Podder, and A. P. Burden, “Esave: Estimating server and virtual machine energy,” inProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering, ser. ASE ’22. New York, NY , USA: Association for Computing Machinery, 2023. [Online]. Available: https://doi.org/10.1145/35513...
arXiv 2023
-
[1]
Greenhouse gas emissions in the ict sector: trends and methodologies,
United-Nations-Environment-Programme-Copenhagen-Climate- Centre, “Greenhouse gas emissions in the ict sector: trends and methodologies,” https://c2e2.unepccc.org/wp-content/uploads/sites/3/ 2020/03/greenhouse-gas-emissions-in-the-ict-sector.pdf, Accessed - 10/05/2023
2020
-
[2]
The real climate and transformative impact of ict: A critique of estimates, trends, and regulations,
C. Freitag, M. Berners-Lee, K. Widdicks, B. Knowles, G. S. Blair, and A. Friday, “The real climate and transformative impact of ict: A critique of estimates, trends, and regulations,”Patterns, vol. 2, no. 9, p. 100340, 2021. [Online]. Available: https://www.sciencedirect.com/ science/article/pii/S2666389921001884
2021
-
[3]
Energy efficiency: A new concern for application software developers,
G. Pinto and F. Castor, “Energy efficiency: A new concern for application software developers,”Commun. ACM, vol. 60, no. 12, p. 68–75, nov 2017. [Online]. Available: https://doi.org/10.1145/3154384
doi:10.1145/3154384 2017
-
[4]
Towards a green quotient for software projects,
R. Mehra, V . S. Sharma, V . Kaulgud, S. Podder, and A. P. Burden, “Towards a green quotient for software projects,” in2022 IEEE/ACM 44th International Conference on Software Engineering: Software En- gineering in Practice (ICSE-SEIP), 2022, pp. 295–296
2022
-
[5]
L. Karita, B. C. Mour ˜ao, and I. Machado, “Software industry awareness on green and sustainable software engineering: A state-of-the-practice survey,” inProceedings of the XXXIII Brazilian Symposium on Software Engineering, ser. SBES ’19. New York, NY , USA: Association for Computing Machinery, 2019, p. 501–510. [Online]. Available: https://doi.org/10.11...
arXiv 2019
-
[6]
Challenges and opportunities for sustainable software,
P. Lago, “Challenges and opportunities for sustainable software,” in2015 IEEE/ACM 5th International Workshop on Product Line Approaches in Software Engineering, 2015, pp. 1–2
work page 2015
-
[7]
C. Haupt, M. Meinel, and T. Schlauch, “The software engineering initia- tive of dlr: Overcome the obstacles and develop sustainable software,” in 2018 IEEE/ACM 13th International Workshop on Software Engineering for Science (SE4Science), 2018, pp. 16–19
work page 2018
Show all 25 references
-
[9]
Common weakness enumeration (cwe) status update,
R. A. Martin and S. Barnum, “Common weakness enumeration (cwe) status update,”Ada Lett., vol. XXVIII, no. 1, p. 88–91, apr 2008. [Online]. Available: https://doi.org/10.1145/1387830.1387835
2008
-
[10]
Measuring the structural quality of software systems,
B. Curtis, R. A. Martin, and P.-E. Douziech, “Measuring the structural quality of software systems,”Computer, vol. 55, no. 3, pp. 87–90, 2022
2022
-
[11]
Ascqm - automated source code quality mea- sures,
O. S. D. Organization, “Ascqm - automated source code quality mea- sures,” https://www.omg.org/spec/ASCQM/, Accessed - 10/05/2023
2023
-
[12]
Owasp top-10 2013,
D. Wichers, “Owasp top-10 2013,”OWASP F oundation, February, vol. 12, 2013
2013
-
[13]
Investigating the energy impact of android smells,
A. Carette, M. A. A. Younes, G. Hecht, N. Moha, and R. Rouvoy, “Investigating the energy impact of android smells,” in2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), 2017, pp. 115–126
2017
-
[14]
A blessing in disguise? assessing the relationship between code smells and sustainability,
G. Catolino, “A blessing in disguise? assessing the relationship between code smells and sustainability,” in2020 IEEE International Conference on Software Maintenance and Evolution (ICSME), 2020, pp. 779–780
2020
-
[15]
Spongebugs: Automatically generating fix suggestions in response to static code analysis warnings,
D. Marcilio, C. A. Furia, R. Bonif ´acio, and G. Pinto, “Spongebugs: Automatically generating fix suggestions in response to static code analysis warnings,”Journal of Systems and Software, vol. 168, p. 110671, 2020. [Online]. Available: https://www.sciencedirect.com/ science/a...
2020
-
[16]
Sonarqube,
sonarsource.com, “Sonarqube,” https://www.sonarsource.com/products/ sonarqube/, Accessed - 17/05/2023
2023
-
[17]
Amazon ec2 m5 instances,
Amazon, “Amazon ec2 m5 instances,” https://aws.amazon.com/ec2/ instance-types/m5/, Accessed - 10/05/2023
2023
-
[18]
pypi.org, “psutil,” https://pypi.org/project/psutil/, Accessed - 10/05/2023
2023
-
[20]
Cwe-1046: Creation of immutable text using string con- catenation,
CWE, “Cwe-1046: Creation of immutable text using string con- catenation,” https://cwe.mitre.org/data/definitions/1046.html, Accessed - 10/05/2023
2023
-
[21]
Strings should not be concatenated using ’+’ in a loop,
sonarsource.com, “Strings should not be concatenated using ’+’ in a loop,” https://rules.sonarsource.com/java/type/Code%20Smell/ RSPEC-1643, Accessed - 10/05/2023
2023
-
[22]
Class stringbuilder,
Oracle, “Class stringbuilder,” https://docs.oracle.com/javase/8/docs/api/ java/lang/StringBuilder.html, Accessed - 10/05/2023
2023
-
[23]
Class stringbuffer,
Oracle, “Class stringbuffer,” https://docs.oracle.com/javase/8/docs/api/ java/lang/StringBuffer.html, Accessed - 10/05/2023
2023
-
[24]
Cwe-595: Comparison of object references instead of ob- ject contents,
CWE, “Cwe-595: Comparison of object references instead of ob- ject contents,” https://cwe.mitre.org/data/definitions/595.html, Accessed - 10/05/2023
2023
-
[25]
”==” and
sonarsource.com, “”==” and ”!=” should not be used when ”equals” is overridden,” https://rules.sonarsource.com/java/type/Bug/RSPEC-4973, Accessed - 10/05/2023
2023
-
[26]
Class string,
Oracle, “Class string,” https://docs.oracle.com/javase/8/docs/api/java/ lang/String.html#equals-java.lang.Object-, Accessed - 10/05/2023
2023
Reviewed August 7, 2026 · model on record in the stance chip above.
Discussion (0). Sign in to comment.