English
Related papers

Related papers: The Software Garden

200 papers

Self-adjusting computation is an approach for automatically producing dynamic algorithms from static ones. The approach works by tracking control and data dependencies, and propagating changes through the dependencies when making an update.…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-05-17 Daniel Anderson , Guy E. Blelloch , Anubhav Baweja , Umut A. Acar

Large language models are redefining software engineering by implementing AI-powered techniques throughout the whole software development process, including requirement gathering, software architecture, code generation, testing, and…

Software Engineering · Computer Science 2024-06-11 Malik Abdul Sami , Muhammad Waseem , Zeeshan Rasheed , Mika Saari , Kari Systä , Pekka Abrahamsson

Nowadays, many individuals and teams involved on projects are already using agile development techniques as part of their daily work. However, we have much less experience in how to scale and manage agile practices in distributed software…

Software Engineering · Computer Science 2017-11-06 Mohammad Abdur Razzak

Fast numerical libraries have been a cornerstone of scientific computing for decades, but this comes at a price. Programs may be tied to vendor specific software ecosystems resulting in polluted, non-portable code. As we enter an era of…

Programming Languages · Computer Science 2019-10-10 Bruce Collie , Philip Ginsbach , Michael F. P. O'Boyle

Bundling, the practice of jointly selling two or more products at a discount, is a widely used strategy in industry and a well examined concept in academia. Historically, the focus has been on theoretical studies in the context of…

Machine Learning · Computer Science 2020-02-04 Madhav Kumar , Dean Eckles , Sinan Aral

Like other engineering disciplines, software engineering should also have principles to guide the construction of sustainable computer applications. Tangible properties include a) unlimited scalability, b) maximal reproducibility, and c)…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-07-23 Justin Shi

During the software lifecycle, a program can evolve several times for different reasons such as the optimisation of a bottle-neck, the refactoring of an obscure function, etc. These code changes often involve several functions or modules,…

Programming Languages · Computer Science 2017-09-18 David Insa , Sergio Pérez , Josep Silva , Salvador Tamarit

A large user base relies on software updates provided through package managers. This provides a unique lever for improving the security of the software update process. We propose a transparency system for software updates and implement it…

Cryptography and Security · Computer Science 2017-11-21 Benjamin Hof , Georg Carle

This paper presents a distributed stochastic model predictive control (SMPC) approach for large-scale linear systems with private and common uncertainties in a plug-and-play framework. Using the so-called scenario approach, the centralized…

Optimization and Control · Mathematics 2019-01-09 V. Rostampour , T. Keviczky

This paper presents a novel approach to the design verification of Software Product Lines(SPL). The proposed approach assumes that the requirements and designs are modeled as finite state machines with variability information. The…

Software Engineering · Computer Science 2012-12-19 Jean-Vivien Millo , S. Ramesh , Shankara Narayanan Krishna , Ganesh Khandu Narwane

Reliable and fast builds are essential for rapid turnaround during development and testing. Popular existing build systems rely on correct manual specification of build dependencies, which can lead to invalid build outputs and…

Software Engineering · Computer Science 2012-03-14 Derrick Coetzee , Anand Bhaskar , George Necula

Modern software systems are often built by leveraging code written by others in the form of libraries and packages to accelerate their development. While there are many benefits to using third-party packages, software projects often become…

Software Engineering · Computer Science 2022-08-30 Jasmine Latendresse , Suhaib Mujahid , Diego Elias Costa , Emad Shihab

Despite many recent advances, reactive synthesis is still not really a practical technique. The grand challenge is to scale from small transition systems, where synthesis performs well, to complex multi-component designs. Compositional…

Logic in Computer Science · Computer Science 2020-10-09 Bernd Finkbeiner , Noemi Passing

Open source software ecosystems consist of thousands of interdependent libraries, which users can combine to great effect. Recent work has pointed out two kinds of risks in these systems: that technical problems like bugs and…

Software Engineering · Computer Science 2022-05-11 William Schueller , Johannes Wachs

The use of packaged libraries can significantly shorten the software development cycle by improving the quality and readability of code. In this paper, we present a recommendation engine called Librarian for open source libraries. A…

Software Engineering · Computer Science 2023-02-08 Lili Tao , Alexandru-Petre Cazan , Senad Ibraimoski , Sean Moran

This paper is motivated by the desire to study package management using the toolkit of the semantics of functional languages. As it transpires, this is deeply related to the semantics of concurrent computation. The models we produce are not…

Logic in Computer Science · Computer Science 2020-04-14 Gershom Bazerman , Raymond Puzio

Production distributed systems are challenging to formally verify, in particular when they are based on distributed protocols that are not rigorously described or fully understood. In this paper, we derive models and properties for two core…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-01-01 Edgar Pek , Pranav Garg , Muntasir Raihan Rahman , Karl Palmskog , Indranil Gupta , P. Madhusudan

Branching is a feature of distributed version control systems that facilitates the ``divide and conquer'' strategy present in complex and collaborative work domains. Branching has revolutionized modern software development and has the…

Human-Computer Interaction · Computer Science 2023-07-07 Kathy Cheng , Phil Cuvin , Alison Olechowski , Shurui Zhou

Program synthesis -- the automatic generation of code given a specification -- is one of the most fundamental tasks in artificial intelligence (AI) and the dream of many programmers. Numerous synthesizers have been developed for program…

Nearly every popular programming language comes with one or more package managers. The software packages distributed by such package managers form large software ecosystems. These packaging ecosystems contain a large number of package…

Software Engineering · Computer Science 2017-10-16 Alexandre Decan , Tom Mens , Philippe Grosjean