
are available (make, ant, maven, gradle, ansible, chef,
etc.). However, and maybe because of the great het-
erogeneity of languages used, there is almost no for-
malization of the whole process. We propose here
a very high-level abstraction based on name usage
to improve the level of trust in DevOps management
tools.
Resources offer names to other resources and also
require names from them. This can be seen as con-
tracts. These resources are integrated in a process
whose stages expect rules to be ensured. These rules
are part of the quality process management and could
be managed as assets. Operations could then be
(partly) specified thanks to pre and postconditions
built on these rules.
Beyond the extensions listed in section 5, it should
be possible to provide scope graph extractors, opera-
tions with their transformational semantics on scope
graph, and sets of rules so that a full tooling for De-
vOps improve the trust in using names. We also envi-
sion a background diagnostic process for users of the
operating system. Consistency naming rules or good
practices could be checked to ensure a better file sys-
tem management.
We believe that this approach could pave the way
for a safer, more formalized, critical activity of soft-
ware engineering.
ACKNOWLEDGEMENTS
We would like to thank the anonymous reviewers for
their helpful advice in improving this article.
REFERENCES
Antwerpen, H. v., Neron, P., Tolmach, A., Visser, E., and
Wachsmuth, G. (2016). A constraint language for
static semantic analysis based on scope graphs. In the
2016 ACM SIGPLAN Workshop, pages 49–60, New
York, New York, USA. ACM Press.
Beugnard, A. and Salah Sadou (2007). Method overload-
ing and overriding cause distribution transparency and
encapsulation flaws. Journal of Object Technology,
6(2):33–47.
Journault, M., Miné, A., Monat, R., and Ouadjaout, A.
(2020). Combinations of reusable abstract domains
for a multilingual static analyzer. In Chakraborty, S.
and Navas, J. A., editors, Verified Software. Theories,
Tools, and Experiments, pages 1–18, Cham. Springer
International Publishing.
Ju, Y., Tang, Y., Lan, J., Mi, X., and Zhang, J. (2023). A
Cross-Language Name Binding Recognition and Dis-
crimination Approach for Identifiers. In 2023 IEEE
International Conference on Software Analysis, Evo-
lution and Reengineering (SANER), pages 948–955,
Macao, China. ISSN: 2640-7574.
Kerzazi, N., Khomh, F., and Adams, B. (2014). Why
Do Automated Builds Break? An Empirical Study.
In 2014 IEEE International Conference on Software
Maintenance and Evolution, pages 41–50, Victoria,
British Columbia, Canada. IEEE Computer Society.
Miller, A. (2008). A Hundred Days of Continuous Inte-
gration. In Agile 2008 Conference, pages 289–293,
Toronto, ON, Canada. IEEE.
Mokhov, A., Mitchell, N., and Peyton Jones, S. (2018).
Build Systems à la Carte. Proceedings of the ACM
on Programming Languages, 2(ICFP):1–29.
Mushtaq, Z., Rasool, G., and Shehzad, B. (2017). Multilin-
gual Source Code Analysis: A Systematic Literature
Review. IEEE Access, 5:11307–11336. Conference
Name: IEEE Access.
Neron, P., Tolmach, A., Visser, E., and Wachsmuth, G.
(2015). A theory of name resolution. In Vitek, J.,
editor, Programming Languages and Systems, pages
205–231, Berlin, Heidelberg. Springer Berlin Heidel-
berg.
Paulk, M. C. (2009). A history of the capability maturity
model for software. ASQ Software Quality Profes-
sional, 12(1):5–19.
Pérez-Castillo, R., De Guzmán, I. G.-R., and Piattini, M.
(2011). Knowledge Discovery Metamodel-ISO/IEC
19506: A standard to modernize legacy systems.
Computer Standards & Interfaces, 33(6):519–532.
Schiewe, M., Curtis, J., Bushong, V., and Cerny, T. (2022).
Advancing Static Code Analysis With Language-
Agnostic Component Identification. IEEE Access,
10:30743–30761.
Seo, H., Sadowski, C., Elbaum, S., Aftandilian, E., and
Bowdidge, R. (2014). Programmers’ build errors: a
case study (at google). In the 36th International Con-
ference, pages 724–734, New York, New York, USA.
ACM Press.
Shatnawi, A., Mili, H., Abdellatif, M., Guéhéneuc, Y.-G.,
Moha, N., Hecht, G., Boussaidi, G. E., and Privat, J.
(2019). Static Code Analysis of Multilanguage Soft-
ware Systems. arXiv:1906.00815 [cs].
Sulír, M. and Porubän, J. (2016). A quantitative study of
Java software buildability. In the 7th International
Workshop, pages 17–25, New York, New York, USA.
ACM Press.
Vassallo, C., Schermann, G., Zampetti, F., Romano, D.,
Leitner, P., Zaidman, A., Penta, M. D., and Panichella,
S. (2017). A Tale of CI Build Failures: An Open
Source and a Financial Organization Perspective. In
2017 IEEE International Conference on Software
Maintenance and Evolution (ICSME), pages 183–193,
Shanghai, China. IEEE.
Zwaan, A. and van Antwerpen, Hendrik (2023). Scope
Graphs: The Story so Far. In Schloss Dagstuhl,
pages 32:1–32:13, Leibniz-Zentrum für Informatik,
Dagstuhl Publishing, Germany. Editors: Ralf Läm-
mel, Peter D. Mosses, and Friedrich Steimann.
Making Application Build Safer Through Static Analysis of Naming
449