kth.sePublications KTH
Change search
Link to record
Permanent link

Direct link
Publications (10 of 15) Show all publications
Wachter, J., Tiwari, D., Monperrus, M. & Baudry, B. (2026). Serializing java objects in plain code. Journal of Systems and Software, 234, Article ID 112721.
Open this publication in new window or tab >>Serializing java objects in plain code
2026 (English)In: Journal of Systems and Software, ISSN 0164-1212, E-ISSN 1873-1228, Vol. 234, article id 112721Article in journal (Refereed) Published
Abstract [en]

In managed languages, serialization of objects is typically done in bespoke binary formats such as Protobuf, or markup languages such as XML or JSON. The major limitation of these formats is readability. Human developers cannot read binary code, and in most cases, suffer from the syntax of XML or JSON. This is a major issue when objects are meant to be embedded and read in source code, such as in test cases. To address this problem, we propose plain-code serialization. Our core idea is to serialize objects observed at runtime in the native syntax of a programming language. We realize this vision in the context of Java, and demonstrate a prototype which serializes Java objects to Java source code. The resulting source faithfully reconstructs the objects seen at runtime. Our prototype is called PRODJand is publicly available. We experiment with PRODJto successfully plain-code serialize 174, 699 objects observed during the execution of 4 open-source Java applications. Our performance measurement shows that the performance impact is not noticeable. Through a user study, we demonstrate that developers prefer plain-code serialized objects within automatically generated tests over their representations as XML or JSON.

Place, publisher, year, edition, pages
Elsevier BV, 2026
Keywords
Code, Serialization, Objects on disk, Runtime, Java
National Category
Computer Sciences
Identifiers
urn:nbn:se:kth:diva-377410 (URN)10.1016/j.jss.2025.112721 (DOI)001645727500001 ()2-s2.0-105025100490 (Scopus ID)
Note

QC 20260226

Available from: 2026-02-26 Created: 2026-02-26 Last updated: 2026-02-26Bibliographically approved
Gamage, Y., Tiwari, D., Monperrus, M. & Baudry, B. (2026). The design space of lockfiles across package managers. Empirical Software Engineering, 31(3), Article ID 63.
Open this publication in new window or tab >>The design space of lockfiles across package managers
2026 (English)In: Empirical Software Engineering, ISSN 1382-3256, E-ISSN 1573-7616, Vol. 31, no 3, article id 63Article in journal (Refereed) Published
Abstract [en]

Software developers reuse third-party packages that are hosted in package registries. At build time, a package manager resolves and fetches the direct and indirect dependencies of a project. Most package managers also generate a lockfile, which records the exact set of resolved dependency versions. Lockfiles are used to reduce build times; to verify the integrity of resolved packages; and to support build reproducibility across environments and time. Despite these beneficial features, developers often struggle with their maintenance, usage, and interpretation. In this study, we unveil the major challenges related to lockfiles, such that future researchers and engineers can address them. We perform the first comprehensive study of lockfiles across seven popular package managers, npm, pnpm, Cargo, Poetry, Pipenv, Gradle, and Go. First, we highlight the wide variety of design decisions that package managers make, regarding the generation process as well as the content of lockfiles. Next, we conduct a qualitative analysis based on semi-structured interviews with 15 developers. We capture first-hand insights about the benefits that developers perceive in lockfiles, as well as the challenges they face to manage these files. Following these observations, we make five recommendations to further improve lockfiles, for a better developer experience.

Place, publisher, year, edition, pages
Springer Nature, 2026
National Category
Software Engineering
Identifiers
urn:nbn:se:kth:diva-376511 (URN)10.1007/s10664-025-10789-w (DOI)001666653400001 ()2-s2.0-105028279123 (Scopus ID)
Note

QC 20260219

Available from: 2026-02-19 Created: 2026-02-19 Last updated: 2026-02-19Bibliographically approved
Liu, Y., Tiwari, D., Bogdan, C. M. & Baudry, B. (2025). Detecting and removing bloated dependencies in CommonJS packages. Journal of Systems and Software, 230, Article ID 112509.
Open this publication in new window or tab >>Detecting and removing bloated dependencies in CommonJS packages
2025 (English)In: Journal of Systems and Software, ISSN 0164-1212, E-ISSN 1873-1228, Vol. 230, article id 112509Article in journal (Refereed) Published
Abstract [en]

JavaScript packages are notoriously prone to bloat, a factor that significantly impacts the performance and maintainability of web applications. While web bundlers and tree-shaking can mitigate this issue in client-side applications, state-of-the-art techniques have limitations on the detection and removal of bloat in server-side applications. In this paper, we present the first study to investigate bloated dependencies within server-side JavaScript applications, focusing on those built with the widely used and highly dynamic CommonJS module system. We propose a trace-based dynamic analysis that monitors the OS file system, to determine which dependencies are not accessed during runtime. To evaluate our approach, we curate an original dataset of 91 CommonJS packages with a total of 50,488 dependencies. Compared to the state-of-the-art dynamic and static approaches, our trace-based analysis demonstrates higher accuracy in detecting bloated dependencies. Our analysis identifies 50.6% of the 50,488 dependencies as bloated: 13.8% of direct dependencies and 51.3% of indirect dependencies. Furthermore, removing only the direct bloated dependencies by cleaning the dependency configuration file can remove a significant share of unnecessary bloated indirect dependencies while preserving function correctness.

Place, publisher, year, edition, pages
Elsevier BV, 2025
Keywords
CommonJS, Dependency bloat, Dependency management, Node.js, npm
National Category
Software Engineering
Identifiers
urn:nbn:se:kth:diva-366559 (URN)10.1016/j.jss.2025.112509 (DOI)001513620700002 ()2-s2.0-105008213531 (Scopus ID)
Note

QC 20250710

Available from: 2025-07-10 Created: 2025-07-10 Last updated: 2025-09-24Bibliographically approved
Andersson, V., Baudry, B., Bobadilla, S., Christensen, L., Cofano, S., Etemadi, K., . . . Toady, T. (2025). UPPERCASE IS ALL YOU NEED. In: SIGBOVIK: A Record of the Proceedings of SIGBOVIK 2025. Paper presented at SIGBOVIK 2025, Carnegie Mellon University, Pittsburgh, PA, USA, April 4, 2025 (pp. 24-35). SIGBOVIK
Open this publication in new window or tab >>UPPERCASE IS ALL YOU NEED
Show others...
2025 (English)In: SIGBOVIK: A Record of the Proceedings of SIGBOVIK 2025, SIGBOVIK , 2025, p. 24-35Conference paper, Published paper (Other (popular science, discussion, etc.))
Abstract [en]

WE PRESENT THE FIRST COMPREHENSIVE STUDY ON THE CRITICAL YET OVERLOOKED ROLE OF UPPERCASE TEXT IN ARTIFICIAL INTELLIGENCE. DESPITE CONSTITUTING A MERE SINGLE-DIGIT PERCENTAGE OF STANDARD ENGLISH PROSE, UPPERCASE LETTERS HAVE DISPROPORTIONATE POWER IN HUMAN-AI INTERACTIONS. THROUGH RIGOROUS EXPERIMENTATION INVOLVING SHOUTING AT VARIOUS LANGUAGE MODELS, WE DEMONSTRATE THAT UPPERCASE IS NOT MERELY A STYLISTIC CHOICE BUT A FUNDAMENTAL TOOL FOR AI COMMUNICATION. OUR RESULTS REVEAL THAT UPPERCASE TEXT SIGNIFICANTLY ENHANCES COMMAND AUTHORITY, CODE GENERATION QUALITY, AND – MOST CRUCIALLY – THE AI’S ABILITY TO CREATE APPROPRIATE CAT PICTURES. THIS PAPER DEFINITIVELY PROVES THAT IN THE REALM OF HUMAN-AI INTERACTION, BIGGER LETTERS == BETTER RESULTS. OUR FINDINGS SUGGEST THAT THE CAPS-LOCK KEY MAY BE THE MOST UNDERUTILIZED RESOURCE IN MODERN AI.

Place, publisher, year, edition, pages
SIGBOVIK, 2025
National Category
Engineering and Technology
Research subject
Computer Science
Identifiers
urn:nbn:se:kth:diva-287271 (URN)
Conference
SIGBOVIK 2025, Carnegie Mellon University, Pittsburgh, PA, USA, April 4, 2025
Note

QC 20250905

Available from: 2025-04-23 Created: 2025-04-23 Last updated: 2025-09-08Bibliographically approved
Tiwari, D. (2024). Augmenting Test Oracles with Production Observations. (Doctoral dissertation). Stockholm: KTH Royal Institute of Technology
Open this publication in new window or tab >>Augmenting Test Oracles with Production Observations
2024 (English)Doctoral thesis, comprehensive summary (Other academic)
Abstract [en]

Software testing is the process of verifying that a software system behaves as it is intended to behave. Significant resources are invested in creating and maintaining strong test suites to ensure software quality. However, in-house tests seldom reflect all the scenarios that may occur as a software system executes in production environments. The literature on the automated generation of tests proposes valuable techniques that assist developers with their testing activities. Yet the gap between tested behaviors and field behaviors remains largely overlooked. Consequently, the behaviors relevant for end users are not reflected in the test suite, and the faults that may surface for end-users in the field may remain undetected by developer-written or automatically generated tests.

This thesis proposes a novel framework for using production observations, made as a system executes in the field, in order to generate tests. The generated tests include test inputs that are sourced from the field, and oracles that verify behaviors exhibited by the system in response to these inputs. We instantiate our framework in three distinct ways.

First, for a target project, we focus on methods that are inadequately tested by the developer-written test suite. At runtime, we capture objects that are associated with the invocations of these methods. The captured objects are used to generate tests that recreate the observed production state and contain oracles that specify the expected behavior. Our evaluation demonstrates that this strategy results in improved test quality for the target project.

With the second instantiation of our framework, we observe the invocations of target methods at runtime, as well as the invocations of methods called within the target methods. Using the objects associated with these invocations, we generate tests that use mocks, stubs, and mock-based oracles. We find that the generated oracles verify distinct aspects of the behaviors observed in the field, and also detect regressions within the system.

Third, we adapt our framework to capture the arguments with which target methods are invoked, during the execution of the test suite and in the field. We generate a data provider using the union of captured arguments, which supplies values to a parameterized unit test that is derived from a developer-written unit test. Using this strategy, we discover developer-written oracles that are actually generalizable to a larger input space.

We evaluate the three instances of our proposed framework against real-world software projects exercised with production workloads. Our findings demonstrate that runtime observations can be harnessed to generate complete tests, with inputs and oracles. The generated tests are representative of real-world usage, and can augment developer-written test suites.

Abstract [sv]

Programvarutestning är processen för att verifiera att ett mjukvarusystem fungerar som det är tänkt att fungera. Betydande resurser investeras i att skapa och underhålla starka testsviter för att säkerställa mjukvarukvalitet. Interna tester återspeglar dock sällan alla scenarier som kan uppstå när ett mjukvarusystem körs i produktionsmiljöer. Litteraturen om automatiserad testgenerering föreslår värdefulla tekniker för att hjälpa utvecklare i deras testaktiviteter. Ändå förbises gapet mellan testade beteenden och beteenden i produktionsmiljöer till stor del. Följaktligen återspeglas inte beteenden som är relevanta för slutanvändare i testsviten, och de fel som kan visas för slutanvändare i reella situationer kan förbli oupptäckta av utvecklarskrivna eller automatiskt genererade tester.

Denna avhandling föreslår ett nytt ramverk för att använda produktionsobservationer, gjorda när ett system exekverar i produktionsmiljö, för att generera tester. De genererade testen inkluderar testindata som kommer från reella användare och orakel som verifierar beteenden som uppvisas av systemet som svar på dessa indata. Vi instansierar vårt ramverk på tre olika sätt.

Först, för ett målprojekt, fokuserar vi på metoder som är otillräckligt testade av den utvecklarskrivna testsviten. Vid körning registrerar vi objekt som är associerade med anropen till dessa metoder. De registrerade objekten används för att generera tester som återskapar det observerade produktionstillståndet och innehåller orakel som anger det förväntade beteendet. Vår utvärdering visar att denna strategi resulterar i förbättrad testkvalitet för målprojektet.

Med den andra instansieringen av vårt ramverk observerar vi anrop till målmetoder vid körning, såväl som anrop till metoder som anropas inom målmetoderna. Med hjälp av objekten som är associerade med dessa anrop genererar vi tester som använder mocks, stubs och mock-baserade orakel. Vi finner att de genererade oraklen verifierar distinkta aspekter av beteenden som observerats i produktionsmiljöer, och även upptäcker regressioner inom systemet.

För det tredje anpassar vi vårt ramverk för att registrera de argument med vilka målmetoder anropas, under körning av testsviter och i produktion. Vi genererar en dataleverantör med hjälp av sammansättningen av registrerade argument, som tillhandahåller värden till ett parameteriserat enhetstest härlett från ett utvecklarskrivet enhetstest. Med den här strategin upptäcker vi utvecklarskrivna orakel som faktiskt är generaliserbara till ett större inmatningsutrymme.

Vi utvärderar de tre fallen av vårt föreslagna ramverk mot verkliga programvaruprojekt som körs med produktionsbelastning. Våra resultat visar att körtidsobservationer kan utnyttjas för att generera kompletta tester, med indata och orakel. De genererade testerna är representativa för användning i verkligheten och kan utöka utvecklarskrivna testsviter.

Place, publisher, year, edition, pages
Stockholm: KTH Royal Institute of Technology, 2024. p. ix, 71
Series
TRITA-EECS-AVL ; 2024:87
Keywords
Test generation, Test oracles, Production observations, Testgenerering, Testorakel, Produktionsobservationer
National Category
Software Engineering
Identifiers
urn:nbn:se:kth:diva-356183 (URN)978-91-8106-109-3 (ISBN)
Public defence
2024-12-13, https://kth-se.zoom.us/j/64605922145, Kollegiesalen, Brinellvägen 6, Stockholm, 14:00 (English)
Opponent
Supervisors
Funder
Wallenberg AI, Autonomous Systems and Software Program (WASP)
Note

QC 20241112

Available from: 2024-11-12 Created: 2024-11-12 Last updated: 2024-11-18Bibliographically approved
Baudry, B., Etemadi, K., Fang, S., Gamage, Y., Liu, Y., Liu, Y., . . . Tiwari, D. (2024). Generative AI to Generate Test Data Generators. IEEE Software, 41(6), 55-64
Open this publication in new window or tab >>Generative AI to Generate Test Data Generators
Show others...
2024 (English)In: IEEE Software, ISSN 0740-7459, E-ISSN 1937-4194, Vol. 41, no 6, p. 55-64Article in journal (Refereed) Published
Abstract [en]

High quality data is essential for designing effective software test suites. We propose three original methods for using large language models to generate representative test data, which fit to the domain of the program under test and are culturally adequate.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2024
Keywords
Generators, Cultural differences, Testing, Libraries, Java, Codes, Vectors
National Category
Software Engineering
Identifiers
urn:nbn:se:kth:diva-355309 (URN)10.1109/MS.2024.3418570 (DOI)001329864000010 ()2-s2.0-85197039632 (Scopus ID)
Funder
Wallenberg AI, Autonomous Systems and Software Program (WASP)Swedish Foundation for Strategic Research, chains
Note

QC 20241030

Available from: 2024-10-30 Created: 2024-10-30 Last updated: 2024-12-10Bibliographically approved
Tiwari, D., Monperrus, M. & Baudry, B. (2024). Mimicking Production Behavior with Generated Mocks. IEEE Transactions on Software Engineering, 50(11), 2921-2946
Open this publication in new window or tab >>Mimicking Production Behavior with Generated Mocks
2024 (English)In: IEEE Transactions on Software Engineering, ISSN 0098-5589, E-ISSN 1939-3520, Vol. 50, no 11, p. 2921-2946Article in journal (Refereed) Published
Abstract [en]

Mocking allows testing program units in isolation. A developer who writes tests with mocks faces two challenges: design realistic interactions between a unit and its environment; and understand the expected impact of these interactions on the behavior of the unit. In this paper, we propose to monitor an application in production to generate tests that mimic realistic execution scenarios through mocks. Our approach operates in three phases. First, we instrument a set of target methods for which we want to generate tests, as well as the methods that they invoke, which we refer to as mockable method calls. Second, in production, we collect data about the context in which target methods are invoked, as well as the parameters and the returned value for each mockable method call. Third, offline, we analyze the production data to generate test cases with realistic inputs and mock interactions. The approach is automated and implemented in an open-source tool called RICK. We evaluate our approach with three real-world, opensource Java applications. RICK monitors the invocation of 128 methods in production across the three applications and captures their behavior. Based on this captured data, RICK generates test cases that include realistic initial states and test inputs, as well as mocks and stubs. All the generated test cases are executable, and 52.4% of them successfully mimic the complete execution context of the target methods observed in production. The mock-based oracles are also effective at detecting regressions within the target methods, complementing each other in their fault-finding ability. We interview 5 developers from the industry who confirm the relevance of using production observations to design mocks and stubs. Our experimental findings clearly demonstrate the feasibility and added value of generating mocks from production interactions.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2024
National Category
Software Engineering
Identifiers
urn:nbn:se:kth:diva-356173 (URN)10.1109/tse.2024.3458448 (DOI)001369099900010 ()2-s2.0-85204006940 (Scopus ID)
Funder
Wallenberg AI, Autonomous Systems and Software Program (WASP)
Note

QC 20250120

Available from: 2024-11-09 Created: 2024-11-09 Last updated: 2025-01-20Bibliographically approved
Tiwari, D., Gamage, Y., Monperrus, M. & Baudry, B. (2024). PROZE: Generating Parameterized Unit Tests Informed by Runtime Data. In: Proceedings - 2024 IEEE International Conference on Source Code Analysis and Manipulation, SCAM 2024: . Paper presented at 24th IEEE International Conference on Source Code Analysis and Manipulation, SCAM 2024, Flagstaff, United States of America, Oct 7 2024 - Oct 8 2024 (pp. 166-176). Institute of Electrical and Electronics Engineers (IEEE)
Open this publication in new window or tab >>PROZE: Generating Parameterized Unit Tests Informed by Runtime Data
2024 (English)In: Proceedings - 2024 IEEE International Conference on Source Code Analysis and Manipulation, SCAM 2024, Institute of Electrical and Electronics Engineers (IEEE), 2024, p. 166-176Conference paper, Published paper (Refereed)
Abstract [en]

Typically, a conventional unit test (CUT) verifies the expected behavior of the unit under test through one specific input / output pair. In contrast, a parameterized unit test (PUT) receives a set of inputs as arguments, and contains assertions that are expected to hold true for all these inputs. PUTs increase test quality, as they assess correctness on a broad scope of inputs and behaviors. However, defining assertions over a set of inputs is a hard task for developers, which limits the adoption of PUTs in practice. In this paper, we address the problem of finding oracles for PUTs that hold over multiple inputs. We design a system called PROZE, that generates PUTs by identifying developer-written assertions that are valid for more than one test input. We implement our approach as a two-step methodology: first, at runtime, we collect inputs for a target method that is invoked within a CUT; next, we isolate the valid assertions of the CUT to be used within a PUT. We evaluate our approach against 5 real-world Java modules, and collect valid inputs for 128 target methods, from test and field executions. We generate 2,287 PUTs, which invoke the target methods with a significantly larger number of test inputs than the original CUTs. We execute the PUTs and find 217 that provably demonstrate that their oracles hold for a larger range of inputs than envisioned by the developers. From a testing theory perspective, our results show that developers express assertions within CUTs, which actually hold beyond one particular input.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2024
National Category
Software Engineering
Identifiers
urn:nbn:se:kth:diva-356174 (URN)10.1109/SCAM63643.2024.00025 (DOI)2-s2.0-85215285513 (Scopus ID)
Conference
24th IEEE International Conference on Source Code Analysis and Manipulation, SCAM 2024, Flagstaff, United States of America, Oct 7 2024 - Oct 8 2024
Note

Part of ISBN 9798331528508

QC 20241111

Available from: 2024-11-09 Created: 2024-11-09 Last updated: 2025-03-12Bibliographically approved
Tiwari, D., Toady, T., Monperrus, M. & Baudry, B. (2024). With Great Humor Comes Great Developer Engagement. In: Proceedings - 2024 ACM/IEEE 46th International Conference on Software Engineering: Software Engineering in Society, ICSE-SEIS 2024: . Paper presented at 46th ACM/IEEE International Conference on Software Engineering: Software Engineering in Society, ICSE-SEIS 2024, Lisbon, Portugal, Apr 14 2024 - Apr 20 2024 (pp. 1-11). Association for Computing Machinery (ACM)
Open this publication in new window or tab >>With Great Humor Comes Great Developer Engagement
2024 (English)In: Proceedings - 2024 ACM/IEEE 46th International Conference on Software Engineering: Software Engineering in Society, ICSE-SEIS 2024, Association for Computing Machinery (ACM) , 2024, p. 1-11Conference paper, Published paper (Refereed)
Abstract [en]

The worldwide collaborative effort for the creation of software is technically and socially demanding. The more engaged developers are, the more value they impart to the software they create. Engaged developers, such as Margaret Hamilton programming Apollo 11, can succeed in tackling the most difficult engineering tasks. In this paper, we dive deep into an original vector of engagement - humor - and study how it fuels developer engagement. First, we collect qualitative and quantitative data about the humorous elements present within three significant, real-world software projects: faker, which helps developers introduce humor within their tests; lolcommits, which captures a photograph after each contribution made by a developer; and volkswagen, an exercise in satire, which accidentally led to the invention of an impactful software tool. Second, through a developer survey, we receive unique insights from 125 developers, who share their real-life experiences with humor in software. Our analysis of the three case studies highlights the prevalence of humor in software, and unveils the worldwide community of developers who are enthusiastic about both software and humor. We also learn about the caveats of humor in software through the valuable insights shared by our survey respondents. We report clear evidence that, when practiced responsibly, humor increases developer engagement and supports them in addressing hard engineering and cognitive tasks. The most actionable highlight of our work is that software tests and documentation are the best locations in code to practice humor.

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2024
Keywords
Culture, Developer engagement, Faking, Humor, Responsibility
National Category
Computer and Information Sciences
Identifiers
urn:nbn:se:kth:diva-350550 (URN)10.1145/3639475.3640099 (DOI)001465576300001 ()2-s2.0-85195164509 (Scopus ID)
Conference
46th ACM/IEEE International Conference on Software Engineering: Software Engineering in Society, ICSE-SEIS 2024, Lisbon, Portugal, Apr 14 2024 - Apr 20 2024
Funder
Wallenberg AI, Autonomous Systems and Software Program (WASP)
Note

Part of ISBN 9798400704994

QC 20240716

Available from: 2024-07-16 Created: 2024-07-16 Last updated: 2025-05-19Bibliographically approved
Soto Valero, C., Tiwari, D., Toady, T. & Baudry, B. (2023). Automatic Specialization of Third-Party Java Dependencies. IEEE Transactions on Software Engineering, 49(11), 5027-5045
Open this publication in new window or tab >>Automatic Specialization of Third-Party Java Dependencies
2023 (English)In: IEEE Transactions on Software Engineering, ISSN 0098-5589, E-ISSN 1939-3520, Vol. 49, no 11, p. 5027-5045Article in journal (Refereed) Published
Abstract [en]

Large-scale code reuse significantly reduces both development costs and time. However, the massive share of third-party code in software projects poses new challenges, especially in terms of maintenance and security. In this paper, we propose a novel technique to specialize dependencies of Java projects, based on their actual usage. Given a project and its dependencies, we systematically identify the subset of each dependency that is necessary to build the project, and we remove the rest. As a result of this process, we package each specialized dependency in a JAR file. Then, we generate specialized dependency trees where the original dependencies are replaced by the specialized versions. This allows building the project with significantly less third-party code than the original. As a result, the specialized dependencies become a first-class concept in the software supply chain, rather than a transient artifact in an optimizing compiler toolchain. We implement our technique in a tool called DepTrim, which we evaluate with 30 notable open-source Java projects. DepTrim specializes a total of 343 (86.6%) dependencies across these projects, and successfully rebuilds each project with a specialized dependency tree. Moreover, through this specialization, DepTrim removes a total of 57,444 (42.2%) classes from the dependencies, reducing the ratio of dependency classes to project classes from 8.7×× in the original projects to 5.0×× after specialization. These novel results indicate that dependency specialization significantly reduces the share of third-party code in Java projects.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2023
Keywords
dependency trees, MAVEN, software debloating, Software specialization, software supply chain
National Category
Software Engineering
Identifiers
urn:nbn:se:kth:diva-347524 (URN)10.1109/TSE.2023.3324950 (DOI)2-s2.0-85174803475 (Scopus ID)
Note

QC 20240611

Available from: 2024-06-11 Created: 2024-06-11 Last updated: 2024-06-11Bibliographically approved
Organisations
Identifiers
ORCID iD: ORCID iD iconorcid.org/0000-0003-0293-2592

Search in DiVA

Show all publications